數(shù)字簽名

讀阮一峰數(shù)字簽名總結(jié)梳理:

B:生成公鑰B、私鑰B
A:持有公鑰B
CA(certificate authority):生成公鑰CA、私鑰CA

A與B之間信息傳遞

A寫信給B

A:contentA + publickeyB = 秘文A
B:秘文A + privateKeyB= contentA
只要B的privateKeyB不泄漏,這封信就是安全的,即使落在別人手里,也無法解密

數(shù)字簽名

B回信給A (該情況只能證明contentB未被修改,并不能證明contenB是B所發(fā))

B:contentB + Hash = digestB
digestB +privateKeyB = signatureB
signatureB 和contentB 一起發(fā)送給A
A:signatureB + publicKeyB = digestB
contentB + Hash = digest
digest == digestB ? contentB未被修改 : contentB被修改

注意:但是這種情況下如果有人冒充B,冒充者C將A持有的公鑰B替換為公鑰C,此時A收到C的信息后,只能證明contentC未被修改,但并不能證明contentC是否是B所發(fā)。所以A需要想辦法證明自己持有的公鑰是B的,所以需要CA為公鑰B做認(rèn)證

B回信給A

CA(證書中心)為公鑰做認(rèn)證
CA: publickKeyB+其他相關(guān)信息+CA 私鑰 = 數(shù)字證書(Digital Certificate)
B持有:數(shù)字證書
A持有:CA公鑰
B:contentB + Hash + privateKey = signatureB
數(shù)字證書 、signatureB 以及 contentB 一起發(fā)送給A
A:數(shù)字證書 + CA公鑰 = publicKeyB(證明是B的公鑰)
signatureB + publickeyB = digestB
contentB + Hash = digest
digest == digestB ?contentB未被修改 : contentB被修改

參考鏈接

http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

RSA加密+AES加密
RSA:非對稱加密,生成公私鑰
AES:對稱加密,生成AES密鑰
客戶端:用AES對content進行加密,RSA公鑰對AES密鑰進行加密
服務(wù)端:RSA私鑰進行解密得到AES密鑰,從而得到content

摘要算法:可以將任意長度的文本轉(zhuǎn)化為固定長度的文本
摘要算法具有以下重要特性:

  • 只要源內(nèi)容不同,計算得到的結(jié)果,必然不同。
  • 無法通過摘要算法可逆拿到源內(nèi)容

典型的摘要算法有大名鼎鼎的MD5SHA。摘要算法主要用于比對信息源是否一致,因為只要源內(nèi)容發(fā)生變化,得到的摘要必然不同;而且通常結(jié)果要比源短很多,所以稱為“摘要信息”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容