当前位置:网站首页>8.1 Diffie-Hellman密钥交换
8.1 Diffie-Hellman密钥交换
2022-07-26 17:11:00 【碳烤小肥羊。。。】
Diffie-Hellman密钥交换(DHKE)方案提供了实际中密钥分配问题的解决方案,即它允许双方通过不安全的信道进行交流,得到一个共同密钥。DHKE的基本思想为, Z p ∗ Z^*_p Zp∗内的指数运算(p是素数)是单向函数,并且该指数运算是可交换的,即: k = ( a x ) y = ≡ ( a y ) x m o d p k = (a^x)^y =\equiv (a^y)^x mod p k=(ax)y=≡(ay)xmodp
值 k = ( a x ) y = ≡ ( a y ) x m o d p k = (a^x)^y =\equiv (a^y)^x mod p k=(ax)y=≡(ay)xmodp是一个联合密钥,它可以当做通信双方的会话密钥使用。
Diffie-Hellman密钥交换协议在 Z p ∗ Z^*_p Zp∗的工作方式
这个协议拥有两个参与方,Alice和 Bob,他们将建立一个共享密钥。可能存在一个值得信赖的第三方,该方能恰当地选择密钥交换所需的公开参数。然而,Alice或Bob也可能生成公开参数。严格来讲,DHKE协议由两个协议组成:握手协议和主要协议; 其中主要协议负责执行真正的密钥交换。
Diffie-Hellman握手协议
- 选择一个大素数 p p p。
- 选择一个整数 α ∈ { 2 , 3 , 4 , . . . . , p − 2 } \alpha \in \{2, 3, 4, ...., p-2\} α∈{ 2,3,4,....,p−2}。
- 公开 p p p和 α \alpha α
Diffie-Hellman密钥交换
下面来证明协议的正确性,即 Alice和 Bob实际上计算的都是相同的会话密钥 k A B k_{AB} kAB
证明: Alice计算 B α ≡ ( α b ) a ≡ α a b m o d p B^\alpha \equiv ({\alpha}^b)^a \equiv {\alpha}^{ab} mod p Bα≡(αb)a≡αabmodp
而Bob计算 A b ≡ ( α a ) b ≡ α a b m o d p A^b \equiv ({\alpha}^a)^b \equiv {\alpha}^{ab} mod p Ab≡(αa)b≡αabmodp
因此Alice和 Bob都共享会话密钥 k A B = α a b m o d p k_{AB} = {\alpha}^{ab} mod p kAB=αabmodp。这个密钥可以用来在Alice和 Bob之间建立一个安全的通信,比如将 k A B k_{AB} kAB用作类似AES或3DES等对称算法的密钥。
示例:Diffie-Hellman的域参数为 p = 29 , α = 2 p = 29, α =2 p=29,α=2。此协议的处理过程如下:
双方计算得到的值都是 k A B = 16 k_{AB} = 16 kAB=16, 这个值可以当做联合密钥使用,比如作为对称加密中的会话密钥。
参考资料:《深入浅出密码学》–Christof Paar,Jan Pelzl著
边栏推荐
猜你喜欢

AI zhetianchuan DL regression and classification

第17周自由入侵 指针练习--输出最大值

236. 二叉树的最近公共祖先

Diagram of seven connection modes of MySQL

JS 递归 斐波那契数列 深克隆

【静态代码质量分析工具】上海道宁为您带来SonarSource/SonarQube下载、试用、教程

JS 函数作用域 变量声明提升 作用域链 不加var的变量,是全局变量

ACL experiment demonstration (Huawei router device configuration)

【集训Day1】Spy dispatch

【集训Day3】Reconstruction of roads
随机推荐
PMP Exam details, what changes have been made to the new exam outline?
COSCon'22城市/学校/机构出品人征集令
Quartz trigger rule
openssl
PIP installation module, error
即刻报名|飞桨黑客马拉松第三期盛夏登场,等你挑战
10、 Implementation of parameter modification of parameter server
hosts该文件已设置为只读的解决方法
1、 C language program structure, compilation and operation, data type related
2022河南萌新联赛第(三)场:河南大学
Sequential storage structure of linear table -- sequential table
236. The nearest common ancestor of a binary tree
常用api
Linux安装mysql8.0.29详细教程
有一说一,阿里P7的薪资待遇是真的香
JS 递归 斐波那契数列 深克隆
[cloud native] IVX low code development was introduced into Tencent map and previewed online
Machine learning by Li Hongyi 2. Regression
Overview of the agenda of the keynote speech of apachecon Asia, an international celebrity vs a local open source star
Linux Installation mysql8.0.29 detailed tutorial