dh密鑰交換演算法
⑴ 簡述DH演算法
DH組的本質是使用非對稱密鑰來加密對稱密鑰。 DH演算法過程: 1、相互產生密鑰對 2、交換公鑰 3、用對方的公鑰和自己的私鑰運行DH演算法——得到另外一個密鑰X
⑵ linux 密鑰交換演算法DH是不是算雙方生成了密鑰
我自己寫了個DH秘鑰的demo代碼, 以前加密用過AES的加密,全套代碼寫下來太費時間又沒技術含量。
如果你需要AES的加密代碼可以留個郵箱給我。
⑶ 什麼是dh演算法
DH組的本質是使用非對稱密鑰來加密對稱密鑰。
DH演算法過程:
1、相互產生密鑰對
2、交換公鑰
3、用對方的公鑰和自己的私鑰運行DH演算法——得到另外一個密鑰X(這里的奇妙之處是這個值兩端都是一樣的)
4、A產生對稱加密密鑰,用密鑰X加密這個對稱的加密密鑰——發送到B
5、B用密鑰X解密——得到對稱的加密密鑰
6、B用這個對稱的加密密鑰來解密A的數據
⑷ 求C或C++實現Diffie-Hellman密鑰交換和RSA演算法的加解密
找個大數軟體包,比如NTL或者GMP,用來實現DH或者RSA很容易。
⑸ 網站設置https時,出現伺服器支持弱Diffie-Hellman(DH)密鑰交換參數,降級為B或降級為6,如何解決
建議你聯系空間服務商進行設置,一般ssl和空間伺服器是搭配提供配置的
⑹ 公鑰加密的常見演算法
RSA、ElGamal、背包演算法、Rabin(Rabin的加密法可以說是RSA方法的特例)、Diffie-Hellman (D-H) 密鑰交換協議中的公鑰加密演算法、Elliptic Curve Cryptography(ECC,橢圓曲線加密演算法)。使用最廣泛的是RSA演算法(由發明者Rivest、Shmir和Adleman姓氏首字母縮寫而來)是著名的公開金鑰加密演算法,ElGamal是另一種常用的非對稱加密演算法。
⑺ dh交換密鑰,為什麼還要兩端都配置共享秘鑰
共享密鑰是用來通過演算法計算公私鑰的。不用來做數據加密
⑻ 如何對diffie-hellman密鑰交換協議
DH演算法的最終目的是為了完成通信雙方對稱秘鑰的交互,但是它牛逼在即使處在不安全的環境(有人偵聽)也不會造成秘鑰泄露。
這里舉一個最簡單的反面例子:A和B要進行銀行密碼的交換,他們需要一個秘鑰來加密自己的信息,A發給B 『2』 作為暗號,B再回一個『2』,OK,以後他們發的所有信息都將加2(假設信息都是數字且運算不會溢出)。現在C偷聽到了,A發一個『456』給B,那麼完蛋了,C知道A的銀行密碼是『234』了。
有了DH就不一樣了,A和B協定用23和5運算,A想了一個6(這個數字不用發給B),用23和5算出來一個8,發給B; B想了一個15(這個數字也不用發給A),算出來一個19又發給A;
現在A用B發過來的19可以算出2,B用A發過來的8算出來也是2,所以他們以後發的信息都是加2的。
假設C一直在偷聽,那麼他知道一開始用的是23和5,還有發送過程中的8和19,然而這並沒有什麼卵用,因為他有生之年算不出最後這個2,所以之後A和B交換的銀行密碼』456』 他也就沒法破解了。
至於「為什麼要選擇23和5、8和19還有最後的2是怎麼算出來的、為什麼C有生之年都算不出來」見wiki-迪菲-赫爾曼密鑰交換
⑼ DH演算法問題。
DH組的本質是使用非對稱密鑰來加密對稱密鑰。 DH演算法過程: 1、相互產生密鑰對 2、交換公鑰 3、用對方的公鑰和自己的私鑰運行DH演算法——得到另外一個密鑰X
⑽ 如何改進DH演算法,使其抵禦中間人攻擊
改進DH演算法使其抵禦中間人攻擊的方法是:在途中根據需要修改它們的密文,使得A和B都不知道他們在和C共享通信。
DH演算法的缺點是沒有提供雙方身份的任何信息.。它是計算密集性的,因此容易遭受阻塞性攻擊,即對手請求大量的密鑰。受攻擊者花費了相對多的計算資源來求解無用的冪系數而不是在做真正的工作.,沒辦法防止重演攻擊。
容易遭受中間人的攻擊,第三方C在和A通信時扮演B;和B通信時扮演A.A和B都與C協商了一個密鑰,然後C就可以監聽和傳遞通信量。
(10)dh密鑰交換演算法擴展閱讀:
基於原根的定義及性質,可以定義Diffie-Hellman密鑰交換演算法.該演算法描述如下:
1、有兩個全局公開的參數,一個素數q和一個整數a,a是q的一個原根。
2、假設用戶A和B希望交換一個密鑰,用戶A選擇一個作為私有密鑰的隨機數XA(XA<q),並計算公開密鑰YA=a^XA mod q。A對XA的值保密存放而使YA能被B公開獲得。類似地用戶B選擇一個私有的隨機數XB<q,並計算公開密鑰YB=a^XB mod q。B對XB的值保密存放而使YB能被A公開獲得。
3、用戶A產生共享秘密密鑰的計算方式是K = (YB)^XA mod q.同樣,用戶B產生共享秘密密鑰的計算是K = (YA)^XB mod q.這兩個計算產生相同的結果:
K = (YB)^XA mod q = (a^XB mod q)^XA mod q = (a^XB)^XA mod q = a^(XBXA) mod q = (a^XA)^XB mod q = (a^XA mod q)^XB mod q = (YA)^XB mod q 因此相當於雙方已經交換了一個相同的秘密密鑰。