雙鑰密碼

雙鑰密碼,是一種密碼算法。又稱公鑰密碼算法,是指加密密鑰和解密密鑰為兩個不同密鑰的密碼算法。

基本介紹

  • 中文名:雙鑰密碼
  • 用途:計算
雙鑰密碼算法,又稱公鑰密碼算法:是指加密密鑰和解密密鑰為兩個不同密鑰的密碼算法。公鑰密碼算法不同於單鑰密碼算法,它使用了一對密鑰:一個用於加密信息,另一個則用於解密信息,通信雙方無需事先交換密鑰就可進行保密通信。其中加密密鑰不同於解密密鑰,加密密鑰公之於眾,誰都可以用;解密密鑰只有解密人自己知道。這兩個密鑰之間存在著相互依存關係:即用其中任一個密鑰加密的信息只能用另一個密鑰進行解密。若以公鑰作為加密密鑰,以用戶專用密鑰(私鑰)作為解密密鑰,則可實現多個用戶加密的信息只能由一個用戶解讀;反之,以用戶私鑰作為加密密鑰而以公鑰作為解密密鑰,則可實現由一個用戶加密的信息而多個用戶解讀。前者可用於數字加密,後者可用於數字簽名
在通過網路傳輸信息時,公鑰密碼算法體現出了單密鑰加密算法不可替代的優越性。對於參加電子交易的商戶來說,希望通過公開網路與成千上萬的客戶進行交易。若使用對稱密碼,則每個客戶都需要由商戶直接分配一個密碼,並且密碼的傳輸必須通過一個單獨的安全通道。相反,在公鑰密碼算法中,同一個商戶只需自己產生一對密鑰,並且將公開鑰對外公開。客戶只需用商戶的公開鑰加密信息,就可以保證將信息安全地傳送給商戶。
公鑰密碼算法中的密鑰依據性質劃分,可分為公鑰和私鑰兩種。用戶產生一對密鑰,將其中的一個向外界公開,稱為公鑰;另一個則自己保留,稱為私鑰。凡是獲悉用戶公鑰的任何人若想向用戶傳送信息,只需用用戶的公鑰對信息加密,將信息密文傳送給用戶便可。因為公鑰與私鑰之間存在的依存關係,在用戶安全保存私鑰的前提下,只有用戶本身才能解密該信息,任何未受用戶授權的人包括信息的傳送者都無法將此信息解密。
RSA公鑰密碼算法是一種公認十分安全的公鑰密碼算法。它的命名取自三個創始人:Rivest、Shamir和Adelman。RSA公鑰密碼算法是目前網路上進行保密通信數字簽名的最有效的安全算法。RSA算法的安全性基於數論中大素數分解的困難性,所以,RSA需採用足夠大的整數。因子分解越困難,密碼就越難以破譯,加密強度就越高。
RSA既能用於加密又能用於數字簽名,在已提出的公開密鑰算法中,RSA最容易理解和實現的,這個算法也是最流行的。RSA的安全基於大數分解的難度。其公開密鑰和私人密鑰是一對大素數(100到200個十進制數或更大)的函式。從一個公開密鑰和密文中恢復出明文的難度等價於分解兩個大素數之積。為了產生兩個密鑰,選取兩個大素數,p和q。為了獲得最大程度的安全性,兩數的長度一樣。計算乘積: ,然後隨機選取加密密鑰e,使e和(p-1)(q-1)互素。最後用歐幾里得擴展算法計算解密密鑰d,以滿足
則,
注意:d和n也互素。e和n是公開密鑰,d是私人密鑰。兩個素數p和q不再需要,它們應該被捨棄,但絕不可泄露。
加密訊息m時,首先將它分成比n小的數據分組(採用二進制數,選取小於n的2的最大次冪),也就是說,p和q為100位的素數,那么n將有200位,每個訊息分組 應小於200位長。加密後的密文c,將由相同長度的分組 組成。加密公式簡化為
解密訊息時,取每一個加密後的分組ci並計算:
由於: ,全部(mod n)這個公式能恢復出明文。
公開密鑰 n:兩素數p和q的乘積(p和q必須保密) e:與(p-1)(q-1)互素
私人密鑰
加密
解密

相關詞條

熱門詞條

聯絡我們