研0day3------协议论文一篇

研0day3------协议论文一篇 休息了好几天开启新篇章看的这篇论文An Efficient iTreeKEM-Based Group Key Agreement Protocol for Flying Ad-hoc Networks一种高效的基于iTreeKEM的飞行自组织网络群密钥协商协议又是新的好先搜一下iTreeKEM像是什么改进过的果不其然TreeKEM 原理解析-CSDN博客还没看懂 先让gpt老师教我啦一、分析题目1.An Efficient说明作者第一目标提高效率为什么说明以前的方法效率低。2.作者不是重新发明一种密码算法。而是在TreeKEM基础上提出improved TreeKEM简称iTreeKEM3.Group Key Agreement组密钥协商。eg.8架无人机一起执行任务。它们需要共享一个通信密钥。4.Flying Ad-hoc Networks无人机自组织网络。知识点Raft一、Raft 是什么一句话理解Raft 是一种分布式一致性协议Consensus Protocol它负责让很多台机器共同选出一个 Leader并保证所有机器的数据一致。举个生活中的例子。假设有5 架无人机UAV1 UAV2 UAV3 UAV4 UAV5它们需要有一架负责接收命令管理成员更新组密钥于是需要选出Leader问题来了如果没有一个统一的规则可能发生UAV1认为自己是Leader UAV3也认为自己是Leader UAV5也认为自己是Leader整个网络就乱了。Raft 就是解决所有节点如何一致地选出同一个 Leader。二、Raft 的工作过程Raft 把节点分成三种状态。Follower跟随者 Candidate候选者 Leader领导者第一步开始时大家都是 Follower。例如A Follower B Follower C Follower D Follower E Follower没人发号施令。第二步Leader 消失假设Leader 坏了。大家发现很久没有收到 Leader 的消息Heartbeat心跳。例如超过 300 ms。于是某个节点会说我要竞选例如B ↓ Candidate第三步拉票VoteB 会给所有节点发消息Vote for me.其它节点如果觉得B 合法。就投票。例如A → B C → B D → BB 获得3票。超过5/2。于是B ↓ Leader整个系统统一。第四步发送 HeartbeatLeader 会不停广播Heartbeat Heartbeat Heartbeat告诉大家我还活着。Follower 就不会重新竞选。三、Raft 为什么很流行因为它解决了分布式系统最难的问题一致性Consensus例如数据库ZooKeeper、etcd、Kubernetes很多都用 Raft。四、为什么这篇论文不用 Raft这是重点。论文第二个贡献写的是不采用 Raft而采用基于 Hash Ring 和 Smart Contract 的 Leader Election。为什么因为Raft太重。Raft 每次选 Leader需要Leader挂掉 ↓ Candidate ↓ 广播Vote ↓ 大家回复 ↓ 统计票数 ↓ Leader产生整个过程需要很多通信。假设100架无人机通信量非常大。而且无人机网络一直变化。今天A在线。明天A飞远了。Raft需要不断重新选举。非常耗资源。五、作者怎么改作者的方法不用大家投票。而是所有无人机一起计算。例如假设Hash(UAV1)20 Hash(UAV2)80 Hash(UAV3)35 Hash(UAV4)55再根据当前时间计算Reference ↓ 40然后计算距离20→40 20 80→40 40 35→40 5 55→40 15距离最小就是UAV3Leader。所有无人机都会得到一样结果。不用投票。不用广播。所以特别快。这正是论文第 IV-B 节Leader Election的设计思想利用哈希环Hash Ring和当前区块时间戳计算参考值选择距离最近的 UAV 作为 Leader。六、总结Raft本文方案需要投票Vote不需要投票多轮通信基本只需要哈希计算Leader 失效重新选举开销较大Leader 可快速重新确定适合服务器集群更适合资源受限、拓扑变化快的无人机网络看的时候有点疑问为什么要根据时间呢a:不是因为时间本身重要而是作者需要一个所有无人机都能独立计算、且结果完全一致的随机参考值Reference。时间只是其中一种公共输入。作者希望Leader 能够随着时间自动变化。于是就需要一个所有人都知道、所有人都一样、而且不断变化的数字。为什么这样就能换 Leader假设UAV1 Hash 10 UAV2 Hash 30 UAV3 Hash 55 UAV4 Hash 80第一次Reference 40距离10 → 40 30 30 → 40 10 55 → 40 15 80 → 40 40LeaderUAV2第二次时间变了。Reference 70距离10 →70 60 30 →70 40 55 →70 15 80 →70 10LeaderUAV4是不是就自动轮换了而且没有任何投票。所有无人机因为大家看到同一个时间。都会得到同一个 Reference。于是都会认为Leader UAV4q.为什么不用随机数你可能想到为什么不用 random()这是密码协议里面最经典的问题。假设UAV1random() 5UAV2random() 81UAV3random() 22大家得到三个不同随机数。那么Leader三个版本。整个系统崩了。所以不能使用各自生成的随机数。必须所有人输入一样。输出一样。为什么选择时间因为时间满足三个特点。① 所有人都知道例如2026-07-14 21:00所有无人机都知道。② 不需要通信不用A 我生成了40。 ↓ 告诉大家。否则又增加通信。时间天然共享。③ 一直变化所以Leader自然轮换。不用重新投票。不过这篇论文真正使用的是区块链时间这里有一个细节也是很多人第一次读会忽略的。论文不是直接用本地系统时间local clock因为不同无人机的时钟可能不同步。而是利用**区块链上的公共状态例如区块时间戳或区块信息**作为大家共同认可的输入这样所有节点看到的是一致的数据因此计算出的 Reference 也一致避免了因为时钟误差导致不同节点选出不同 Leader。PBFTPractical Byzantine Fault Tolerance实用拜占庭容错算法区块链里面最经典的共识算法之一1. 什么叫拜占庭问题这是一个经典故事。例如有4位将军A B C D他们需要一起进攻。但是其中可能有叛徒。例如A 今晚进攻 ↓ B收到 今晚撤退不同的人收到不同消息。怎么办需要一种算法保证即使有人撒谎大家最后仍然一致。这就是拜占庭容错。2. PBFT怎么工作PBFT 有三步。第一阶段Leader发消息Prepare告诉大家这是我要提交的数据。第二阶段所有节点互相确认Prepare ↓ 收到 ↓ 回复大家确认都一样。第三阶段Commit大家一起提交。于是所有人保存同样数据。最终所有节点数据库一致。3. 为什么PBFT安全PBFT能够容忍3f1 节点 ↓ 最多 f 坏节点例如7台服务器。最多2台坏。仍然正确。4. PBFT有什么缺点最大缺点通信太多。假设100个节点。每个人都要和别人通信。消息数量大约O(n²)100个节点约10000次消息。如果1000节点100万。所以PBFT适合几十个节点。不适合大规模。这也是为什么很多论文不用PBFT。FANETFlying Ad-hoc Network1. 什么是 Ad-hoc NetworkAd-hoc 的意思是没有固定基础设施由节点自己组成网络。我们平时的 WiFi 是这样的手机 ──┐ 电脑 ──┼── 路由器(AP) 平板 ──┘所有设备都依赖路由器。但是 Ad-hoc 网络没有路由器。例如A ---- B ---- C \ | \ | D每个节点既是终端也是路由器。消息可以不断转发。2. 什么是 FANETFANET 就是由无人机(UAV)组成的 Ad-hoc 网络。例如UAV1 / \ UAV2 UAV3 | | UAV4----UAV5所有无人机自己飞自己组网自己转发数据没有基站WiFi中心服务器3. FANET有什么特点论文研究 FANET就是因为它和普通网络不一样。1拓扑变化特别快例如10秒前 A----B----C ↓ 10秒后 A C B因为无人机一直在飞。所以网络连接不断变化。2资源有限无人机不像服务器。只有小CPU小内存电池所以密码算法不能太复杂。3无线通信无线容易被监听被篡改被伪造所以必须加密。4动态成员例如今天 10架 ↓ 执行任务 ↓ 加入2架 ↓ 坏掉1架 ↓ 回来3架所以组密钥必须一直更新。因此FANET 最大的问题就是如何让一群一直移动的无人机安全通信。这就是这篇论文研究的问题。GKA一、什么是 GKAGKA 全称Group Key Agreement中文组密钥协商协议一句话理解让一组成员共同协商出一个只有他们知道的共享密钥Group Key。注意两个词Group组不是两个人而是很多人。Agreement协商不是某个人发钥匙而是大家共同计算出来。二、为什么需要 GKA先不要看论文我们举一个例子。假设有 4 架无人机UAV A UAV B UAV C UAV D它们要一起执行巡逻任务。通信内容敌人坐标 当前位置 飞行路线 攻击命令这些都不能让别人知道。方法一每两架无人机都有一个密钥A-B A-C A-D B-C B-D C-D一共需要6 个密钥如果有10 架无人机需要45 个密钥100 架4950 个密钥是不是越来越复杂管理几乎不可能。方法二所有人共享一个密钥例如Group Key Kgroup所有成员A B C D都知道Kgroup以后所有消息都用AES(Kgroup)加密。这样整个网络只需要一个组密钥。三、为什么叫 Agreement协商很多人第一次都会误会。他们以为Leader随机生成Kgroup然后发给大家。这不是Agreement。这是Key Distribution密钥分发例如Leader ↓ Kgroup ↓ A ↓ B ↓ CLeader知道所有事情。真正的 GKA不是。例如A产生随机数。B产生随机数。C产生随机数。D产生随机数。最后大家一起计算Kgroup没有任何一个人提前知道最终密钥。所以叫Agreement。即共同协商。四、GKA 和 DHDiffie-Hellman的关系其实GKA就是DH 的升级版。两个人AliceBob利用Diffie-Hellman共同得到K这叫Key Agreement。多个人如果10个人。不能一直两两DH。于是发展出了Group Key Agreement。例如Alice Bob Charlie David ... 一起 ↓ Kgroup所以可以理解为GKA 多人版 Diffie-Hellman。五、GKA 应该满足哪些安全要求① Confidentiality机密性攻击者不知道Kgroup因此看不懂消息。② Integrity完整性攻击者不能修改消息。否则MAC验证失败。③ Authentication身份认证只有合法成员才能加入。假无人机不能获得Group Key。④ Forward Secrecy前向安全假设今天A B C后来D加入。D不能知道昨天Group Key。这叫前向安全。⑤ Backward Secrecy后向安全假设B退出。以后新的Group Key。B不知道。不能继续偷听。⑥ Dynamic Membership动态成员现实中无人机一直加入。退出。所以GKA必须快速更新。否则整个系统效率很低。六、GKA 的工作流程一个典型流程如下① 建立组 A B C D ↓ ② 协商 大家交换一些公开信息 ↓ ③ 计算 每个人都计算出 Kgroup ↓ ④ 加密通信 AES(Kgroup) ↓ ⑤ 成员变化 有人加入 ↓ 更新 Group Key ↓ 继续通信所以GKA其实只有两个任务。第一建立Group Key。例如Kgroup第二更新Group Key。例如有人退出。不能继续知道以后通信。所以重新协商。七、这篇论文为什么研究 GKA现在回到论文。作者说FANET具有无线通信节点一直移动成员动态变化所以传统 GKA问题很多。例如有人加入。传统方案可能整棵树重新建立。很慢。所以作者提出iTreeKEM目的就是让GKA更新更快。八、TreeKEM 与 GKA 的关系最重要很多研一都会混淆。一定要区分。GKA 组密钥协商目标 │ ┌─────────────┴─────────────┐ │ │ TreeKEM Burmester–Desmedt │ │ MLS TreeKEM CLIQUES │ iTreeKEM本文这里GKA 是问题。TreeKEM只是一种实现 GKA 的方法。而iTreeKEM又是TreeKEM 的改进版。所以这篇论文提出一种更好的 GKA 实现方案。TreeKEM100个人。传统方法大家一个一个交换密钥很慢。TreeKEM想到用一棵树管理密钥。例如Root / \ Node1 Node2 / \ / \ A B C DRoot就是Group KeyTreeKEM利用这棵树。快速生成、更新Group Key。所以TreeKEM只是实现GKA的一种办法。最后用一句话总结 GKA**GKAGroup Key Agreement组密钥协商是一类密码协议其目标是让多个合法成员通过协商共同建立一个共享的组密钥Group Key并利用该密钥实现安全组通信。相比两方密钥交换GKA 需要支持成员动态加入和退出同时保证机密性、完整性、身份认证以及前向安全、后向安全等安全属性。在这篇论文中作者针对 FANET 中成员频繁变化、资源受限等特点提出了基于 iTreeKEM 的高效 GKA 协议以降低组密钥更新的计算和通信开销。Path Keys路径密钥Copath Public Keys兄弟路径公钥画图吧TreeKEM 将所有成员组织成一棵平衡二叉树每个内部节点保存一个密钥。当某个成员加入、退出或主动更新密钥时只需要更新从该成员到根节点这一条路径上的密钥Path Keys其他成员利用这条路径对应兄弟节点的公钥Copath Public Keys即可计算出新的组密钥因此无需重新更新整棵树从而把密钥更新的计算和通信开销从 O(n) 降低到了 O(log n)。--logarithmic complexity对数复杂度自适应安全1. 先理解普通攻击Static Attack假设一个群组无人机 A B C D攻击者提前决定我要攻击 A。然后研究协议攻击目标 A 攻击方法 窃取 A 的密钥这叫静态攻击Static Attack因为攻击者在开始前目标已经确定。2. 什么叫 Adaptive Attack自适应攻击现在升级。攻击者不是提前决定。而是根据攻击结果不断调整。例如第一步攻击者尝试攻击 A。结果失败。然后攻击者观察发现B 的密钥更新机制比较弱。于是改变策略攻击 B。第一次 攻击 A ↓ 失败 第二次 攻击 B ↓ 成功 第三次 利用 B 的信息攻击 C攻击路线不是固定的。而是动态变化。这就是Adaptive。3. 为什么密码协议害怕这种攻击因为很多安全证明有一个假设例如假设攻击者只能攻击某些固定节点。那么证明容易。比如证明A 不泄露 ↓ 所以系统安全但是自适应攻击攻击者可能先观察系统。然后选择最容易攻击的位置。例如无人机网络UAV1 UAV2 UAV3 UAV4攻击者不知道哪架容易攻击。于是观察发现UAV3电量低通信频繁防护弱。于是选择UAV3。这就是适应环境选择攻击目标。4. 放到 TreeKEM 中理解TreeKEM是一棵树例如Root / \ N1 N2 / \ / \ A B C D每个节点有密钥。假设攻击者提前说我要攻击 A。协议设计者可以针对 A证明安全。但是 Adaptive攻击者可能先攻击 A。拿到一些信息。然后根据结果选择攻击N1。再选择攻击Root。攻击路径动态变化。所以安全证明必须考虑攻击者在任何时间根据已经获得的信息任意选择攻击对象协议仍然安全。这个难很多。5. 一个现实例子无人机FANET无人机不断移动。攻击者监听。例如时间1 UAV1 UAV2 UAV3攻击者不知道哪个容易攻击。时间2发现UAV2离队。信号弱。攻击UAV2。时间3获得UAV2部分密钥。然后利用UAV2的信息攻击UAV1。这就是Adaptive Attack。整体论文把握也是先提出之前别人做的各种问题然后提出一个新的解决方案有关无人机组网的1.算力弱2.带宽有限无人机体积小电池小 3.动态组无人机的状态一直在变4.spof单点故障意思就是有leader并且是固定的所以怎么解决呢提出一个方案有5个步骤计算哈希得到哈希环利用时间戳作为参考选出leader这个leader会进行变化是动态的把伪代码也看了一下 第一个算法也是这个步骤组密钥协商还没有看