數(shù)字簽名相當(dāng)于現(xiàn)實(shí)世界中的蓋章、簽字的功能,數(shù)字簽名可以識(shí)別篡改、偽裝、防止否認(rèn)。
1、從消息認(rèn)證碼到數(shù)字簽名
消息認(rèn)證碼:因?yàn)槊荑€是共享的,兩方都可以知道。對于第三方來說,你無法確定是誰的
數(shù)字簽名:
●生成消息簽名的行為
發(fā)送者對消息進(jìn)行簽名(簽名密鑰)
●驗(yàn)證消息簽名的行為
接收者驗(yàn)證簽名(驗(yàn)證密鑰)
以上兩個(gè)行為,需要各自專用的密鑰來完成。
驗(yàn)證密鑰無法生成簽名
●簽名密鑰只有簽名的人才可持有。
驗(yàn)證密鑰則可以任何驗(yàn)證的人都可持有。
●(這不是和第五章講的公鑰密碼嗎?。?/p>
簡而言之,數(shù)字簽名就是通過將公鑰密碼“反過來用”而實(shí)現(xiàn)的。
(這不是和第五章講的公鑰密碼嗎?。?/p>
簡而言之,數(shù)字簽名就是通過將公鑰密碼“反過來用”而實(shí)現(xiàn)的。
2、公鑰密碼與數(shù)字簽名
反過來:兩者是反過來的。數(shù)字簽名:私鑰加密(生成簽名),公鑰解密(驗(yàn)證簽名)
●公鑰密碼中,任何人都可以加密
●數(shù)字簽名中,任何人都可以驗(yàn)證
3、數(shù)字簽名的方法
1、直接對消息簽名的方法(一般不會(huì)用)
2、對消息的散列值簽名的方法(一般都使用這種方法)
第一種需要對整個(gè)消息進(jìn)行加密,非常耗時(shí)
(想到了單向散列函數(shù))我們直接把消息轉(zhuǎn)換成散列值,再加密
一些問題:
●數(shù)字簽名的作用本來就不是保證機(jī)密性的。如果需要也可以直接加密后發(fā)送。關(guān)于密碼和簽名的組合方法,第十三章會(huì)講到
●簽名能不能被復(fù)制不重要,重要的是特定的簽名者與特定的消息綁定在一起了這一事實(shí)
●如果拿著私鑰的人說我的私鑰被竊取了怎么辦?第十章會(huì)進(jìn)行討論
4、數(shù)字簽名的應(yīng)用實(shí)例
●安全信息公告
●軟件下載
●公鑰證書
●SSL/TLS
5、對數(shù)字簽名的攻擊
1、中間人攻擊
對公鑰密碼的攻擊方式
對發(fā)送者偽裝成接收者,對接收者偽裝成發(fā)送者
防止:對公鑰的認(rèn)證。一般情況下是先計(jì)算出散列值,然后電話溝通。也可用后面要講的“證書”
2、對單向散列函數(shù)的攻擊
使用散列值的話,必須要有抗碰撞性
3、利用數(shù)字簽名攻擊公鑰密碼
(簽名的操作實(shí)際上是對消息的解密)絕對不要對意思不清楚的消息進(jìn)行簽名
解決方式:
對散列值進(jìn)行簽名比較安全
公鑰密碼和數(shù)字簽名最好使用不同的密鑰對
4、潛在偽造
對一個(gè)無意思的消息,沒有私鑰的情況下,能生成合法的數(shù)字簽名
RSA-PASS
5、其他攻擊
暴力破解、對RSA的N進(jìn)行質(zhì)因數(shù)分解等
6、各種密碼技術(shù)的對比
7、數(shù)字簽名無法解決的問題
●可以識(shí)別出篡改、偽裝、防止否認(rèn)
●前提:公鑰必須屬于真正的發(fā)送者
●我們需要使用“證書”。公鑰基礎(chǔ)設(shè)施(PKI)
原標(biāo)題:密碼筆記 | 數(shù)字簽名