? ? ? ? ?D-H不是一種加密算法,而是一種密鑰交換算法哑舒。其思想是基于離散對(duì)數(shù)的植榕,具體原理請(qǐng)參考Google或百度百科,本文只講解具體操作過程庇配。
加入現(xiàn)有雙方A和B要進(jìn)行秘鑰交換:
有兩個(gè)公開的數(shù)g和p,其中p為素?cái)?shù)斩跌,g是p的一個(gè)元根。
First有自己的私鑰a,Second有自己的私鑰b,a,b均小于p,且私鑰絕對(duì)保密捞慌。
交換過程如下:
1.First用私鑰a生成A,過程如下:A = g^a mod p,然后通過信道發(fā)送出去耀鸦。
2.Second用私鑰b生成B,過程如下:B= g^b mod p卿闹,然后通過信道發(fā)出去揭糕。
3.Frist收到B后執(zhí)行 B^a mod p = Fkey。
4.Second收到A后執(zhí)行 A^b mod p =Skey锻霎。
5.Fkey = Skey (因?yàn)檎w執(zhí)行下來 Fkey = (g^b)^a mod p ,而Skey=(g^a)^b mod p著角,故相等。 )
進(jìn)而達(dá)到共享秘鑰的目的旋恼,二者通信可通過Fkey這個(gè)公共秘鑰加密后面的通訊內(nèi)容吏口。
整個(gè)過程中因?yàn)橹挥術(shù) , p,A,B是公開的奄容,私鑰a,b保密的,故基于離散對(duì)數(shù)運(yùn)算产徊,敵人很難破解公共秘鑰昂勒。