公鑰加密,也叫非對(duì)稱(密鑰)加密(public key encrypTIon),屬于通信科技下的網(wǎng)絡(luò)安全二級(jí)學(xué)科,指的是由對(duì)應(yīng)的一對(duì)唯一性密鑰(即公開密鑰和私有密鑰)組成的加密方法。它解決了密鑰的發(fā)布和管理問題,是目前商業(yè)密碼的核心。在公鑰加密體制中,沒有公開的是私鑰,公開的是公鑰。
常見算法
RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以說是RSA方法的特例)、Diffie-Hellman (D-H) 密鑰交換協(xié)議中的公鑰加密算法、EllipTIc Curve Cryptography(ECC,橢圓曲線加密算法)。使用最廣泛的是RSA算法(由發(fā)明者Rivest、Shmir和Adleman姓氏首字母縮寫而來)是著名的公開金鑰加密算法,ElGamal是另一種常用的非對(duì)稱加密算法。
非對(duì)稱是指一對(duì)加密密鑰與解密密鑰,這兩個(gè)密鑰是數(shù)學(xué)相關(guān),用某用戶密鑰加密后所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個(gè),并不能計(jì)算出另外一個(gè)。因此如果公開了一對(duì)密鑰中的一個(gè),并不會(huì)危害到另外一個(gè)的秘密性質(zhì)。稱公開的密鑰為公鑰;不公開的密鑰為私鑰。
如果加密密鑰是公開的,這用于客戶給私鑰所有者上傳加密的數(shù)據(jù),這被稱作為公開密鑰加密(狹義)。例如,網(wǎng)絡(luò)銀行的客戶發(fā)給銀行網(wǎng)站的賬戶操作的加密數(shù)據(jù)。
如果解密密鑰是公開的,用私鑰加密的信息,可以用公鑰對(duì)其解密,用于客戶驗(yàn)證持有私鑰一方發(fā)布的數(shù)據(jù)或文件是完整準(zhǔn)確的,接收者由此可知這條信息確實(shí)來自于擁有私鑰的某人,這被稱作數(shù)字簽名,公鑰的形式就是數(shù)字證書。例如,從網(wǎng)上下載的安裝程序,一般都帶有程序制作者的數(shù)字簽名,可以證明該程序的確是該作者(公司)發(fā)布的而不是第三方偽造的且未被篡改過(身份認(rèn)證/驗(yàn)證)。
對(duì)稱密鑰密碼體制
所謂對(duì)稱密鑰密碼體制,即加密密鑰與解密密鑰是相同的密碼體制。
數(shù)據(jù)加密標(biāo)準(zhǔn)DES屬于對(duì)稱密鑰密碼體制。它是由IBM公司研制出,于1977年被美國(guó)定為聯(lián)邦信息標(biāo)準(zhǔn)后,在國(guó)際上引起了極大的重視。ISO曾將DES作為數(shù)據(jù)加密標(biāo)準(zhǔn)。
DES是一種分組密碼。在加密前,先對(duì)整個(gè)的明文進(jìn)行分組。每一個(gè)組64位長(zhǎng)的二進(jìn)制數(shù)據(jù)。然后對(duì)每一個(gè)64位二進(jìn)制數(shù)據(jù)進(jìn)行加密處理,產(chǎn)生一組64位密文數(shù)據(jù)。
最后將各組密文串接起來,即得出整個(gè)的密文。
常見的加密算法可以分成三類,對(duì)稱加密算法,非對(duì)稱加密算法和Hash算法。