蔡澤禹提示您:看後求收藏(品書網www.vodtw.tw),接著再看更方便。
時間來到了1976年,兩位美國計算機學家威特菲爾德·迪菲(whitfield diffie)和馬丁·赫爾曼(martin hellman),首次證明可以在不直接傳遞金鑰的情況下,完成解密。這被稱為“diffie-hellman金鑰交換演算法”。
dh演算法的出現有著劃時代的意義:從這一刻起,啟示人們加密和解密可以使用不同的規則,只要規則之間存在某種對應關係即可。
這種新的模式也被稱為“非對稱加密演算法”:
(1)乙方生成兩把金鑰,公鑰和私鑰。公鑰是公開的,任何人都可以獲得,私鑰則是保密的。
(2)甲方獲取乙方的公鑰,用它對資訊加密。
(3)乙方得到加密後的資訊,用私鑰解密。
公鑰加密的資訊只有私鑰解得開,只要私鑰不洩漏,通訊就是安全的。
就在dh演算法發明後一年,1977年,羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)在麻省理工學院一起提出了RSA演算法,RSA就是他們三人姓氏開頭字母拼在一起組成的。
新誕生的RSA演算法特性比dh演算法更為強大,因為dh演算法僅用於金鑰分配,而RSA演算法可以進行資訊加密,也可以用於數字簽名。另外,RSA演算法的金鑰越長,破解的難度以指數倍增長。
因為其強大的效能,可以毫不誇張地說,只要有計算機網路的地方,就有RSA演算法。
RSA演算法是這樣工作的?
第一步,隨機選擇兩個不相等的質數p和q。
第二步,計算p和q的乘積n。n的長度就是金鑰長度,一般以二進位制表示,一般長度是2048位。位數越長,則越難破解。
第三步,計算n的尤拉函式φ(n)。
第四步,隨機選擇一個整數e,其中是1< e <φ(n),且e與φ(n)互質。
第五步,計算e對於φ(n)的模反元素d。所謂“模反元素”就是指有一個整數d,可以使得ed被φ(n)除的餘數為1。
第六步,將n和e封裝成公鑰(n,e),n和d封裝成私鑰(n,d)。