公钥密码--Diffie-Hellman密钥协商算法
公鑰密碼--Diffie-Hellman密鑰協(xié)商算法
- 算法過(guò)程
- 正確性
- 安全性
博主是初學(xué)公鑰密碼,本意是想整理一些經(jīng)典的密碼系統(tǒng),加深記憶也方便日后查找;整理成一個(gè)系列公鑰密碼,方便檢索。
如果有錯(cuò),歡迎指正。
Diffie-Hellman密鑰協(xié)商算法是由Whitfield Diffie,Martin E.Hellman在1976年發(fā)表的“New Directions in Cryptography”一文中提出。Diffie-Hellman算法的思想是通過(guò)交換信息,來(lái)協(xié)商出只有雙方知道的密鑰。
算法過(guò)程
全局公開(kāi)(敵手可以看到)兩個(gè)參數(shù):
- 素?cái)?shù)ppp
- 整數(shù)aaa,aaa是ppp的原根
A,BA,BA,B雙方進(jìn)行協(xié)商,希望得到一個(gè)只有雙方知道的密鑰。
- AAA選擇隨機(jī)數(shù)XAX_AXA?,XA<pX_A<pXA?<p,計(jì)算YA=aXAY_A=a^{X_A}YA?=aXA? mod ppp,公開(kāi)YAY_AYA?
- BBB選擇隨機(jī)數(shù)XBX_BXB?,XB<pX_B<pXB?<p,計(jì)算YB=aXBY_B=a^{X_B}YB?=aXB? mod ppp,公開(kāi)YBY_BYB?
現(xiàn)在全局公開(kāi)的參數(shù)多了兩個(gè):
- YAY_AYA?
- YBY_BYB?
現(xiàn)在A,BA,BA,B可以用YA,YBY_A,Y_BYA?,YB?進(jìn)行計(jì)算,得到協(xié)商密鑰:
- AAA計(jì)算YBXAY_B^{X_A}YBXA?? mod ppp
- BBB計(jì)算YAXBY_A^{X_B}YAXB?? mod ppp
通過(guò)下面的正確性證明,我們可以知道YBXAY_B^{X_A}YBXA?? mod p=YAXBp=Y_A^{X_B}p=YAXB?? mod ppp,則A,BA,BA,B協(xié)商出了只有雙方知道的密鑰。
正確性
- 要證YBXAY_B^{X_A}YBXA?? mod p=YAXBp=Y_A^{X_B}p=YAXB?? mod ppp
因?yàn)?/p>
- YB=aXBY_B=a^{X_B}YB?=aXB? mod p→YBXAp\rightarrow Y_B^{X_A}p→YBXA?? mod p=(aXBp=(a^{X_B}p=(aXB? mod p)XAp)^{X_A}p)XA? mod p=aXBXAp=a^{X_BX_A}p=aXB?XA? mod ppp
- YA=aXAY_A=a^{X_A}YA?=aXA? mod p→YAXBp\rightarrow Y_A^{X_B}p→YAXB?? mod p=(aXAp=(a^{X_A}p=(aXA? mod p)XBp)^{X_B}p)XB? mod p=aXAXBp=a^{X_AX_B}p=aXA?XB? mod ppp
證畢。
安全性
根據(jù)原根定義,aia^iai可生成1……p?11……p-11……p?1的所有數(shù),即aaa mod ppp, a2a^2a2 mod ppp,……ap?1a^{p-1}ap?1 mod ppp是p?1p-1p?1個(gè)互不相同的整數(shù)。
- 離散對(duì)數(shù):對(duì)于任意b,1≤b≤p?1b,1\le b\le p-1b,1≤b≤p?1,有b=aib= a^ib=ai mod ppp,iii被稱為bbb的以aaa為底數(shù)的模ppp的離散對(duì)數(shù)。
- 離散對(duì)數(shù)問(wèn)題: 已知b,a,pb,a,pb,a,p,計(jì)算iii。
離散對(duì)數(shù)問(wèn)題屬于NPNPNP復(fù)雜性類。
Diffie-Hellman密鑰協(xié)商算法的安全性基于離散對(duì)數(shù)問(wèn)題的困難假設(shè)。
因?yàn)閿呈种荒芸吹饺止_(kāi)的四個(gè)參數(shù)p,a,YA,YBp,a,Y_A,Y_Bp,a,YA?,YB?,基于離散對(duì)數(shù)問(wèn)題的困難性,敵手幾乎無(wú)法在多項(xiàng)式時(shí)間內(nèi)算出XA,XBX_A,X_BXA?,XB?,則我們認(rèn)為Diffie-Hellman密鑰協(xié)商算法是安全的。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的公钥密码--Diffie-Hellman密钥协商算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 现代密码学3.4--CPA安全,多次加密
- 下一篇: 公钥密码--Elgamal