公鑰算法是基於數學函數而不是基於替換和置換
公鑰密碼是非對稱的
公鑰密碼僅用於密鑰管理和簽名
關於公鑰密碼的誤解:
- 從密碼分析的角度看,公鑰密碼比傳統密碼更安全
- 公鑰密碼是一種通用的方法,所以傳統密碼已經過時
- 用公鑰密碼實現密鑰分配更簡單
一、公鑰密碼體制的基本原理
公鑰密碼學的概念是爲了解決傳統密碼中兩個問題提出來的:密鑰分配和數字簽名
公鑰密碼體制的6個組成部分:明文、加密算法、公鑰、私鑰、密文、解密算法
公鑰密碼體制的應用:
- 加密、解密:發送方用接收方的公鑰對消息加密、用接收方的私鑰解密
- 數字簽名:發送方用自己的私鑰對消息進行簽名,用發送方的公鑰驗證簽名
- 密鑰交換:通信雙方交換會話密鑰
對公鑰密碼的要求:
公鑰密碼分析:
- 公鑰密碼也易受窮舉攻擊,解決方法是使用長密鑰
爲了抵抗窮舉攻擊,密鑰必須足夠長,爲了方便加解密,密鑰又必須足夠短。 - 另一種攻擊:找出一種從給定的公鑰計算出私鑰的方法。目前還沒有在數學上證明對一特定公鑰算法這種攻擊不可行
- 公鑰體制特有的攻擊:本質上是窮舉消息攻擊,解決方法:在要發送的消息後附加上一個隨機數
二、RSA算法
自誕生之日起就成爲被廣泛接受且被實現的通用公鑰加密算法
RSA體制是一種分組密碼,其明文和密文均是0至某n-1之間的整數,通常n的大小爲1024位二進制數或309位十進制數。