• 浅析Diffie–Hellman


    一、作者

    这个密钥交换方法,由惠特菲尔德·迪菲(Bailey Whitfield Diffie)、马丁·赫尔曼(Martin Edward Hellman)于1976年发表。

    二、说明

    它是一种安全协议,让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。DH数学原理是base离散对数问题。做类似事情的还有非对称加密类算法,如:RSA。

    三、应用场景

    其应用非常广泛,在SSH、VPN、Https...都有应用,勘称现代密码基石。

    四、DH算法描述

    DH算法是相当简单、直观的,我直接把wikipedia的描述拿过来了:

    上图中,Alice和Bob通过DH算法生成秘钥K
    其中:

    • g、p是2个非私密数据
    • a、b是私密数据
    • A是根据:g、p、a算出来的非私密数据;B是根据:g、p、b算出来的非私密数据
    • 把A从a传到b,根据求K公式,b得到秘钥k;a同理;

    注:

    • p是一个大素数。p的位数决定了攻击者破解的难度
    • g则不需要很大,并且在一般的实践中通常是2或者5。

    再来个直观的图说明下:


    五、安全与风险

    • 爆破成本

    How enormous a computation, you ask? Possibly a technical feat on a scale (relative to the state of computing at the time) not seen since the Enigma cryptanalysis during World War II. Even estimating the difficulty is tricky, due to the complexity of the algorithm involved, but our paper gives some conservative estimates. For the most common strength of Diffie-Hellman (1024 bits), it would cost a few hundred million dollars to build a machine, based on special purpose hardware, that would be able to crack one Diffie-Hellman prime every year.
    美国NSA几亿美元的破译机,每年可以破一个1024bit的Diffie-Hellman素数。不过呢,一个1024bit素数的破解也是很致命的......而512bit,现在被认为是非常容易破解的。
    ```

    • 泄密风险:私密数据a,b在生成K后将被丢弃,因此不存在a,b过长时间存在导致增加泄密风险。
    • 中间人攻击:由于DH在传输p,g时并无身份验证,所以有机会被实施中间人攻击,替换双方传输时的数据。

    六、参考引用

  • 相关阅读:
    Java代码规范
    使用规则执行器替换IF条件判断
    设计模式六大设计原则
    MySQL学习笔记
    LintCode 550 · Top K Frequent Words II
    LeetCode 260. Single Number III
    LeetCode 162. Find Peak Element
    牛客_线段重合问题
    [福州大学2021春软件工程实践|S班]助教总结
    MacOS sublimetext 安装 packagecontrol 失败
  • 原文地址:https://www.cnblogs.com/hyddd/p/7689132.html
Copyright © 2020-2023  润新知