美文网首页密码学专题
10. 密码学专题 - 密钥交换算法

10. 密码学专题 - 密钥交换算法

作者: furnace | 来源:发表于2020-05-10 11:07 被阅读0次

密码学专题 - 密钥交换算法

10. 密钥交换算法

10.1 Diffie-Hellman 算法

Diffie-Hellman 算法是第一个公开密钥算法,早在 1976 年就发明了。其安全性源于在有限域上计算离散对数比计算指数更为困难。Diffie-Hellman 算法能够用于密钥分配 (Alice 和 Bob 能用它产生秘密密钥),但是它不能用于加密或解密消息。

数学原理很简单。首先,Alice 和 Bob 协商一个大的素数 ngg 是模 n 的本原元。这两个整数不必是秘密的,故 Alice 和 Bob 可以通过即使是不安全的途径协商它们。它们可在一组用户中公用。

协议如下:

  1. Alice 选取一个大的随机整数 x,并发送给 Bob:X=g^x \ mod \ n
  2. Bob 选取一个大的随机整数 y,并发送给 Alice:Y=g^y \ mod \ n
  3. Alice 计算 k = Y^x \ mod \ n
  4. Bob计算 k' = X^y \ mod \ n

kk' 都等于 g^{xy} \ mod \ n。即使线路上的窃听者也不可能计算出这个值,他们只知道 ngXY。除非他们计算离散对数,恢复 xy,否则无济于事。因此 k 是 Alice 和 Bob 独立计算的秘密密钥。

gn 的选取对系统的安全性有很大的影响。(n-1)/2 也应该是一个素数。最重要的是 n 应该很大:因为系统的安全性取决于与 n 同样长度的数的因子分解的难度。可以选择任何满足模 n 的本原元 g,没有理由不选择所能选择的最小 g —— 通常只是个 1 位数 (实际上 g 不必是素数,但它必须能产生一个大的模 n 的乘法组子群)。

10.2 三方或多方 Diffie-Hellman

Diffie-Hellman 密钥交换协议很容易扩展到三人或更多的人。在下例中,Alice、Bob 和 Carol 一起产生秘密密钥。

  1. Alice 选取一个大的随机整数 x,并发送给 Bob:X=g^x \ mod \ n
  2. Bob 选取一个大的随机整数 y,并发送给 Carol:Y=g^y \ mod \ n
  3. Carol 选择一个大的随机整数 z,并发送给 Alice:Z=g^z \ mod \ n
  4. Alice 发送给 Bob:Z' = Z^x \ mod \ n
  5. Bob 发送给 Carol:X' = X^y \ mod \ n
  6. Carol 发送给 Alice:'Y' = Y^z \ mod \ n'。
  7. Alice 计算 k = Y'^x \ mod \ n
  8. Bob 计算 k = Z'^y \ mod \ n
  9. Carol 计算 k = X'^z \ mod \ n

秘密密钥 k = g^{xyz} \ mod \ n,没有其他人能计算出 k 值,这个协议很容易扩展到四人或更多的人中,只是增加更多的人和增加计算的轮数。

项目源代码

项目源代码会逐步上传到 Github,地址为 https://github.com/windstamp

Contributor

  1. Windstamp, https://github.com/windstamp

相关文章

  • 10. 密码学专题 - 密钥交换算法

    密码学专题 - 密钥交换算法 10. 密钥交换算法 10.1 Diffie-Hellman 算法 Diffie-H...

  • 私有加密协议设计思路

    术语解释: ECC(椭圆曲线密码学)一种建立公开密钥加密的算法,基于椭圆曲线数学ECDHE基于ECC的密钥交换算法...

  • 非对称加密算法

    扩展欧几里得算法 DH密钥交换 ECC椭圆曲线加密原理参考1 椭圆曲线密码学简介 椭圆曲线密码学的简单介绍 RSA...

  • Node.js 加密算法模版代码

    ???本文是通过 Node.js 实现密码学中所涉及到的哈希算法、对称加密算法、非对称加密算法、密钥交换算法、数字...

  • Https:TLS 握手协议

    一、相关知识 (一) 密钥交换算法 TLS 中密钥交换算法有6种:无效(没有密钥交换)、RSA、匿名Diffie-...

  • 常用加密算法

    对称密钥算法&非对称式密码学 对称密钥算法(英语:Symmetric-key algorithm)又称为对称加密、...

  • 密码学------密钥、随机数

    密码学基础-------密码和认证 密钥--秘密的精华 Diffie-Hellman密钥交换IMG_3339.JP...

  • [ 加密 ] DH 安全地传输密钥 要想人不知?

    如何传递密钥? 密钥交换算法即DH算法:Diffie-Hellman算法应运而生。 DH算法是一个密钥协商算法,双...

  • 11. 密码学专题 - 密钥管理

    密码学专题 - 密钥管理 11. 密钥管理 11.1 PKI 公钥密码使密钥管理变得简单,但是 Alice 仍要获...

  • HTTPS ECDHE 握⼿解析

    HTTPS常⽤的密钥交换算法有两种,分别是RSA和ECDHE算法。 其中,RSA是⽐较传统的密钥交换算法,它不具备...

网友评论

    本文标题:10. 密码学专题 - 密钥交换算法

    本文链接:https://www.haomeiwen.com/subject/pnuxqhtx.html