簡述DH加密算法

DH加密算法全稱為Diffie-Hellman密鑰交換協(xié)議/算法,是由Whitfield Diffie與Martin Hellman在1976年提出的,屬于非對稱加密算法。

DH算法

DH算法的用途

DH加密算法主要用于密鑰的交換,能夠?qū)崿F(xiàn)了在非安全網(wǎng)絡(luò)下通信雙方密鑰的安全建立,從而使通信雙方能夠使用這個密鑰進(jìn)行消息的加密解密,從而實現(xiàn)通信的安全。

DH算法的原理

DH算法的基本原理就是通過共享的參數(shù)協(xié)商一個對稱秘鑰,然后用這個對稱秘鑰加密后面的通信。這里用到了離散對數(shù)函數(shù),這樣即使中間人截獲了公鑰,也無法計算出各自的私鑰。

DH算法

DH算法的流程

假設(shè)Ali和Bob需要互相通信并共享秘鑰

  1. Ali先給Bob一個明文共享參數(shù)P、G,此信息可以被任何人識別。
  2. Ali 自己生成一個隨機數(shù)A(Ali的私鑰),并不將A告訴包括Bob在內(nèi)的任何人。
  3. Bob自己生成一個隨機數(shù)B(Bob的私鑰),并不將B告訴包括Ali在內(nèi)的任何人。
  4. Ali通過自己的私鑰A對G、P進(jìn)行加密后(G^AmodP)的值傳送給Bob。
  5. Bob通過自己的私鑰B對Ali通過第4步發(fā)送給Bob的信息(G^AmodP)進(jìn)行加密得到(G^AmodP)^BmodP=G^AxBmodP=S。
  6. 同理,Bob通過自己的私鑰B對G、P進(jìn)行加密后(G^BmodP)的值傳送給Ali。
  7. Ali通過自己的私鑰A對Bob通過第6步發(fā)送給Bob的信息(G^BmodP)進(jìn)行加密得到(G^BmodP)^AmodP=G^B×AmodP=G^A×BmodP=S。
  8. 因此Ali和Bob得到了他們協(xié)議后的公鑰S,及他們各自的私鑰A和私鑰B。

在這一過程中P必須是一個非常大的質(zhì)數(shù),才能保證在第4步、第6步中相互傳遞加密信息之后,私鑰 A 和私鑰B不會被第三方攻擊者猜出來。

DH加密算法

DH算法的缺點

DH算法雖然可以保護(hù)通信信息安全,但卻無法確認(rèn)通信雙方的真實身份,很難防范中間人的攻擊。所以在日常使用中,DH算法經(jīng)常輔以其他的數(shù)字簽名算法(如RSA等)一同使用,用于驗證通信雙方的真實身份。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。