密码学07——密码协议
Diffie-Hellman 密钥交换
Diffie-Hellman密钥交换协议
- 密钥交换是实现安全通信的基础
- 商用加密算法AES和DES需要在安全通信之前, 实现通信双方的密钥共享。
- 密钥交换的方法:
- 基于RSA的密钥交换;
- 基于KDC技术 (Key Distributed Center,密钥分发中心);
- Diffie-Hellman密钥交换(简称: DH算法);
- 基于物理层的密钥交换。
DH算法是不安全信道下实现安全密钥共享的一种方法, 由 W. Diffie 和 M. Hellman 在1976年提出的第一个公开的公钥密码算法。
DH算法
![[DH算法.png]]
DH协议的例子
- 假设素数
,其基本元 - 若用户A 和用户B 选取的随机数分别为:
- 用户A 计算:
- 用户B 计算:
- 用户A 计算密钥:
- 用户B 计算密钥:
- 用户A 计算:
Diffie-Hellman密钥交换中的安全问题
安全性分析
-
攻击者可利用的信息包括 素数
、本原元 、中间值 和 -
若攻击者想获取密钥
,就必须通过 和 计算 和 ,这是一个离散对数求解问题 -
因此,算法的安全性基于球离散对数的困难性
-
[?] 除了破获密钥外,攻击者还有其他的攻击方式吗?
DH算法存在的安全问题
- 容易遭受阻塞攻击:因为幂运算是计算密集性的,当敌手发起大量的密钥请求,受攻击者将花费较大计算资源来做幂运算;
- 容易遭受中间人攻击:敌手可分别冒充用户A和B中的一方,与另一方交换密钥(敌手就可以监听和传递A和B的秘密信息而不被发现)。
中间人攻
![[中间人攻击.png]]
课后调研
了解一下奥克利(Oakley)协议是什么?
奥克利协议(Oakley Protocol) 是一种用于 密钥交换 的加密协议,旨在为计算机网络中的通信双方提供安全的会话密钥交换。它由 Thomas M. (Todd) Oakley 在 1991 年提出,是 Diffie-Hellman 密钥交换协议 的一种改进方案,解决了基于 Diffie-Hellman 协议的某些安全性问题。
1. 背景
在早期的 Diffie-Hellman 密钥交换协议中,虽然协议能够实现两方安全地生成共享密钥,但它并未解决身份认证的问题,即协议本身并没有机制来验证参与方的身份,因此容易受到中间人攻击(Man-in-the-Middle Attack)。
为了解决这一问题,奥克利协议引入了一些改进,增强了安全性并且确保了通信双方的身份验证。奥克利协议的设计目标是确保密钥交换过程中的机密性、完整性和身份验证。
2. 奥克利协议的主要特点
奥克利协议的核心目标是为 Diffie-Hellman 密钥交换增加身份验证,从而抵御中间人攻击。它通过以下几个机制来实现:
2.1 身份验证
奥克利协议为密钥交换过程提供了身份验证机制。通过结合公钥加密和数字签名,确保通信双方能够验证对方的身份。这通常通过 数字证书 或 公钥基础设施(PKI) 来实现。
2.2 防止中间人攻击
传统的 Diffie-Hellman 协议没有提供对通信方身份的验证,这就为中间人攻击留下了漏洞。奥克利协议通过引入身份认证,确保在密钥交换过程中双方都是经过验证的,从而防止中间人攻击。
2.3 使用多轮密钥交换
奥克利协议通过多轮交换过程增加了安全性,每轮交换都涉及到不同的密钥生成步骤。这样,即使某一轮密钥交换被破解,其他轮次的密钥交换仍然可以提供额外的安全保障。
2.4 保护机密性
奥克利协议使用了 加密算法 和 哈希函数 来保护消息的机密性,确保通信双方交换的内容不会被第三方窃听或篡改。
3. 奥克利协议的工作原理
奥克利协议通常包含多个阶段,以下是一个大致的工作流程:
-
初始密钥交换(Diffie-Hellman):
- 双方通过 Diffie-Hellman 协议交换公钥部分,生成共享的会话密钥。由于没有身份验证,仍然有可能受到中间人攻击。
-
身份验证:
- 通过使用公钥基础设施(PKI)和数字签名进行身份验证。每一方会向对方提供数字证书或公钥,使用这些信息验证对方的身份,确保密钥交换的合法性。
-
加密和哈希:
- 在交换密钥的过程中,消息内容被加密或哈希处理,以防止数据被窃取或篡改。
-
共享密钥生成:
- 双方通过 Diffie-Hellman 协议得到的共享密钥被用于加密后续的通信内容。
-
完成密钥交换:
- 一旦双方都完成身份验证并成功生成共享密钥,通信就可以开始了,使用该密钥加密后续的通信内容。
4. 奥克利协议与其他协议的比较
-
与 Diffie-Hellman 协议的比较:
- Diffie-Hellman 协议的主要缺点是缺乏身份验证机制,因此容易受到中间人攻击。奥克利协议解决了这一问题,通过结合身份验证和多轮交换来加强安全性。
-
与 SSL/TLS 协议的比较:
- SSL/TLS 协议使用类似的密钥交换方法,但在奥克利协议的基础上引入了更多的加密算法、身份验证和消息完整性检查。因此,SSL/TLS 协议在实际应用中更加复杂和完善,且在互联网通信中得到广泛应用。
5. 应用场景
奥克利协议作为密钥交换协议的核心之一,在很多安全协议中都有应用,尤其是 SSL/TLS 和 IPsec 等协议。通过在密钥交换过程中增强身份验证,奥克利协议使得这些协议能够提供更加安全的通信通道。
6. 奥克利协议的总结
- 奥克利协议为传统的 Diffie-Hellman 密钥交换 提供了改进,解决了身份验证和中间人攻击的问题。
- 它通过结合 公钥加密、数字签名 和 多轮密钥交换 等机制,增强了安全性。
- 奥克利协议在许多安全协议(如 SSL/TLS 和 IPsec)中得到了广泛应用,成为现代网络安全中不可或缺的一部分。
7. 奥克利协议与现代加密技术
今天的加密协议如 SSL/TLS 和 IPsec 都在某种程度上借鉴了奥克利协议的理念,尤其是在密钥交换和身份验证方面。尽管奥克利协议本身并不是广泛应用的协议,但它为后来的许多加密通信协议奠定了基础,特别是在保障通信双方安全、身份验证和抵御中间人攻击等方面。
Shamir秘密共享
秘密共享的概念
- 问题1:
- 保险柜中存放有10个人的共有财产,要从保险柜中取出物品,必须有半数以上的人在场才可取出,半数以下则不行。如何构造锁的设计方案?
- 问题2:
- 导弹的发射控制、重要安保场所的通行检验,通常需要多人同时参与才能生效。因此,需要将秘密分给多人掌管,并且由一定掌管秘密的人数同时到场才能恢复秘密。方案如何设计?
秘密分割门限方案的定义
- 秘密
(通过某种方案)被分为 个部分,每个部分称为份额(share) 或影子(shadow),由一个参与者持有,使得- 由
个或多于 个参与者所持有的部分信息可重构 ; - 由少于k个参与者所持有的部分信息则无法重构s,称该方案为
秘密分割门限方案, 称为门限值。少于 个参与者所持有的部分信息得不到s的任何信息称该门限方案是完善的。
- 由
- ![[秘密分割门限方案.png]]
Shamir秘密共享方案
Shamir门限方案的构造思路
![[Shamir门限方案的构造思路.png]]
一般的,设
若把秘密
- [i]
表示的是 有限域 除去零元后的集合,通常称为 非零元素集合。
Shamir门限方案
- 设
为大素数 生成的有限域,其中 - 秘密
是 上均匀选取的随机数,即 . - 在
上构造一个 次多项式 ,其中: 个参与者 ,其中, 的份额为 。任意 个参与者要得到秘密 ,可使用
由Lagrange插值公式:
Shamir门限方案的完善性
- 如果
个参与者想获得s,可构造 个方程,有 个未知量。 - 对任意
,设 . 这样可以得到第 个方程,得到 。 - 对每个
都有唯一的多项式满足,所有由 个份额得不到任何 的信息。 - 因此,该方案是完善的。
例子:(3,5) 门限方案
设
则
计算可知:
若已知
故,
或者,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】