加密和解密
通俗的講,RSA的公鑰和私鑰都可以用來加密或解密--只要能保證用A加密,就用B解密就行。至于A是公鑰還是私鑰,不同的情形下不同。
舉兩個例子:
1、把某個消息發(fā)給老王,不想被其他人知道,就可以用老王的公鑰加密消息。因為只有他知道自己私鑰,所以這個消息只有他本人才能用私鑰解密消息;
2、自己想發(fā)布一個消息,需要通過一個技術(shù)手段來保證是自己發(fā)布,而不是別人偽造的??梢杂米约旱?b>私鑰加密發(fā)布的消息。其他人收到消息后,用自己的公鑰解密消息,看看解密的內(nèi)容是否一致。如果一致的話,則確定是自己發(fā)布的消息。因為只有自己的公鑰才能解開你的私鑰加密的內(nèi)容。
數(shù)字簽名
數(shù)字簽名的目的:
1、確保消息是本人發(fā)送;
2、確保消息內(nèi)容完整---沒有經(jīng)過任何形式的篡改(替換、缺少、新增)。
其實,上面關(guān)于“消息”的內(nèi)容,已經(jīng)證明了第一點:證明這消息是本人所發(fā)。
那么要保證第二點很簡單,把消息的原文做一次哈希(md5或者sha1都行),然后用私鑰加密這段哈希并作為簽名,并一起公布出去。當(dāng)別人收到消息時,他可以用公鑰解密簽名,如果解密成功,并且解密出來的哈希值確實消息原文一致,那么就證明了兩點:這消息確實是本人所發(fā)的,且消息沒有經(jīng)過篡改。