轉:
一、公鑰加密
假設一下,我找了兩個數字知给,一個是1井厌,一個是2。我喜歡2這個數字,就保留起來,不告訴你們(私鑰),然后我告訴大家咱扣,1是我的公鑰。
我有一個文件涵防,不能讓別人看闹伪,我就用1加密了。別人找到了這個文件壮池,但是他不知道2就是解密的私鑰啊偏瓤,所以他解不開,只有我可以用
數字2椰憋,就是我的私鑰厅克,來解密。這樣我就可以保護數據了橙依。
我的好朋友x用我的公鑰1加密了字符a证舟,加密后成了b,放在網上窗骑。別人偷到了這個文件女责,但是別人解不開,因為別人不知道2就是我的私鑰创译,
只有我才能解密抵知,解密后就得到a。這樣软族,我們就可以傳送加密的數據了刷喜。
二、私鑰簽名
如果我用私鑰加密一段數據(當然只有我可以用私鑰加密立砸,因為只有我知道2是我的私鑰)掖疮,結果所有的人都看到我的內容了,因為他們都知
道我的公鑰是1仰禽,那么這種加密有什么用處呢氮墨?
但是我的好朋友x說有人冒充我給他發(fā)信纺蛆。怎么辦呢吐葵?我把我要發(fā)的信规揪,內容是c,用我的私鑰2温峭,加密猛铅,加密后的內容是d,發(fā)給x凤藏,再告訴他
解密看是不是c奸忽。他用我的公鑰1解密,發(fā)現果然是c揖庄。
這個時候栗菜,他會想到,能夠用我的公鑰解密的數據蹄梢,必然是用我的私鑰加的密疙筹。只有我知道我得私鑰,因此他就可以確認確實是我發(fā)的東西禁炒。
這樣我們就能確認發(fā)送方身份了而咆。這個過程叫做數字簽名。當然具體的過程要稍微復雜一些幕袱。用私鑰來加密數據暴备,用途就是數字簽名。
總結:公鑰和私鑰是成對的们豌,它們互相解密涯捻。
公鑰加密,私鑰解密望迎。
私鑰數字簽名障癌,公鑰驗證。
舉例
比如有兩個用戶Alice和Bob擂煞,Alice想把一段明文通過雙鑰加密的技術發(fā)送給Bob混弥,Bob有一對公鑰和私鑰,那么加密解密的過程如下:
Bob將他的公開密鑰傳送給Alice对省。
Alice用Bob的公開密鑰加密她的消息蝗拿,然后傳送給Bob。
Bob用他的私人密鑰解密Alice的消息蒿涎。
上面的過程可以用下圖表示哀托,Alice使用Bob的公鑰進行加密,Bob用自己的私鑰進行解密劳秋。
例子和圖出自《網絡安全基礎 應用與標準第二版》
RSA算法
RSA公鑰加密算法是1977年由Ron Rivest仓手、Adi Shamirh和LenAdleman在(美國麻省理工學院)開發(fā)的胖齐。RSA取名來自開發(fā)他們三者的名字。RSA是目前最有影響力的公鑰加密算法嗽冒,它能夠抵抗到目前為止已知的所有密碼攻擊呀伙,已被ISO推薦為公鑰數據加密標準。RSA算法基于一個十分簡單的數論事實:將兩個大素數相乘十分容易添坊,但那時想要對其乘積進行因式分解卻極其困難剿另,因此可以將乘積公開作為加密密鑰。