RSA加密算法介紹
RSA又叫非對稱加密算法冕茅,這類加密算法有2個秘鑰伤极,你可以選擇一個作為私鑰(自己保存,重要)嵌赠,另一個作為公鑰(對外公開塑荒,誰都可以知道)熄赡。其中用私鑰加密的內(nèi)容只能用對應的公鑰解密姜挺,同理用公鑰加密的內(nèi)容也只能用對應的私鑰解密。
RSA加密過程
假設(shè)A生成了一對秘鑰彼硫,私鑰自己保存炊豪,公鑰對外公開,且B獲得了A的公鑰拧篮。在A和B通信的過程中:
A向B發(fā)送信息:A用自己的私鑰加密词渤,B可以用其公鑰解密;
B向A發(fā)送信息:B用(A給的)公鑰加密數(shù)據(jù)串绩,A可以用自己的私鑰解密缺虐;
這樣就保證了數(shù)據(jù)的安全傳輸;但是這中間存在問題礁凡,如果B向A發(fā)送數(shù)據(jù)的過程中被C攔截了高氮,且C也獲得了A的公鑰,這樣C就可以用公鑰重新加密一份數(shù)據(jù)發(fā)送給A顷牌,這樣就篡改了B發(fā)送給A的數(shù)據(jù)剪芍。為了辨別這種情況,就要說到數(shù)字簽名的作用了窟蓝。
私鑰簽名(公鑰驗簽)
因為在數(shù)據(jù)傳輸過程中有可能被篡改罪裹,因此我們要使用數(shù)字簽名技術(shù)來校驗發(fā)送方的身份,并且事后發(fā)送方無法抵賴。這里還以A和B為例状共,來看下數(shù)字簽名的主要過程:
A向B發(fā)送信息時套耕,用提前約定好的摘要(HASH)算法,從信息生成一個
摘要
峡继,同時A用自己的私鑰對這個摘要進行(RSA)加密箍铲,生成的加密摘要
就叫做A的簽名
;A把原始的信息外加簽名S一塊發(fā)送給B鬓椭;
B收到A發(fā)送的信息后颠猴,對原始信息采用相同的摘要算法,計算出一個本地摘要S1小染,接著B用公鑰解密A發(fā)送過來的簽名S翘瓮,得到一個明文摘要S2(這一步其實就是驗簽的過程摄咆,能解出S2說明消息確實是A發(fā)出的)蔬胯,對比這個
明文摘要S2和本地摘要S1
,如果相同說明該信息未被篡改過愿伴。