深度解析公開密鑰加密技術(shù)
l976年,Diffie和Hellman首次提非對稱加密出公開密鑰加密體制,即每個人都有一對密鑰,其中一個為公開的,一個為私有的。
發(fā)送信息時用對方的公開密鑰加密,收信者用自己的私用密鑰進行解密。公開密鑰加密算法的核心是運用一種特殊的數(shù)學(xué)函數(shù)一單向陷門函數(shù),即從一個方向求值是容易的。但其逆向計算卻很困難,從而在實際上成為不可行的。公開密鑰加密技術(shù)它不僅保證了安全性又易于管理。其不足是加密和解密的時間長。
公有密鑰技術(shù)依賴于兩個不同的密鑰,一個公有密鑰和一個私有密鑰。公有密鑰用于加密信息,私有密鑰用于解密它們。下圖是一種非對稱加密技術(shù):

實現(xiàn)原理:
Diffie–Hellman key exchange:

現(xiàn)在假設(shè)A和B分別是參與DH式密鑰交換過程的兩方,他們一開始會商議確定一個小質(zhì)數(shù)(一般是2,3,5這樣的小數(shù)字)和一個大質(zhì)數(shù)(有300位以上)作為加密的原始信息。小質(zhì)數(shù)和大質(zhì)數(shù)都可以直接傳輸,不必?fù)?dān)心交換過程中的不安全。需要明白的是,A和B各自都持有著自己的私鑰(100多位的數(shù)),而且也永遠不應(yīng)該共享自己的私鑰。不光是兩人之間,也包括其他不相關(guān)的人都不應(yīng)該擁有這兩組私鑰。網(wǎng)絡(luò)中傳輸?shù)氖撬麄兊乃借€、小質(zhì)數(shù)和大質(zhì)數(shù)混合運算得到的結(jié)果。更確切來說,就是:
? A的結(jié)果 = (小質(zhì)數(shù)A的密碼)% 大質(zhì)數(shù)
? B的結(jié)果 = (小質(zhì)數(shù)B的密碼)% 大質(zhì)數(shù)
? (“%” 符號表示取模運算,即取得除法運算的余數(shù))
所以A使用大質(zhì)數(shù)和小質(zhì)數(shù)加上自己的私鑰運算,就會得出結(jié)果,而B做同樣的計算,也能得到相同的結(jié)果。當(dāng)他們接收到對方的運算結(jié)果時,他們可以由數(shù)學(xué)計算導(dǎo)出會話中所要傳輸?shù)男畔ⅲ簿褪钦f:
A計算的是
? (B的結(jié)果Alice的密碼)% 大質(zhì)數(shù)
而Bob則計算
? (A的結(jié)果Bob的密碼)% 大質(zhì)數(shù)
最后,A和B計算出的結(jié)果相同。
3.RSA算法(質(zhì)數(shù)猜想),真是D-H交換的實現(xiàn),這是一種強大的單向函數(shù)。
把wikipedia上的例子直接搬過來了:
A working example[edit source | editbeta]
Here is an example of RSA encryption and decryption. The parameters used here are artificially small, but one can also use OpenSSL to generate and examine a real keypair.

公開密鑰加密技術(shù)的發(fā)展是整個密碼編碼學(xué)歷史上最大的而且也許是唯一真正的革命。公開密鑰密碼編碼學(xué)與傳統(tǒng)的方法不同:一方面它是基于數(shù)學(xué)函數(shù);更為重要的是,它是非對稱的。公鑰系統(tǒng)對于保密通信、密鑰分配和鑒別等領(lǐng)域有著深遠的影響。









