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