數(shù)字簽名技術(shù)
信息摘要算法德迹、對稱加密毕荐、非對稱加密的著眼點(diǎn)都在于信息本身的編解碼钮热,將信息轉(zhuǎn)換為一種不易被識別的序列米酬,通過對此序列的反向鑒別來鑒定信息的完整性并解密真實(shí)的信息项鬼。
- 信息摘要技術(shù):解決了信息完整性的鑒定問題渣淤;
- 對稱加密:解決了大數(shù)據(jù)加密的問題户誓;
- 非對稱加密:解決了密碼交換的問題尚洽。
在實(shí)際使用中,我們需要一種更加實(shí)用的身份識別技術(shù)绒疗,這種技術(shù)類似簽字畫押侵歇,一旦我們簽出的信息發(fā)布后,任何人都可以鑒別這條信息是經(jīng)我們簽發(fā)的吓蘑。數(shù)字簽名技術(shù)就是解決此類問題產(chǎn)生的技術(shù)惕虑,數(shù)字簽名技術(shù)產(chǎn)生的信息:具有不可抵賴性的。
數(shù)字簽名技術(shù)是現(xiàn)代網(wǎng)絡(luò)中常用的認(rèn)證技術(shù)磨镶,這是一種帶有密鑰的信息摘要算法溃蔫,主要用途是抗否認(rèn)。數(shù)字簽名技術(shù)包對信息摘要使用私鑰加密琳猫,任何人拿到公鑰都可以解密并驗(yàn)證信息伟叛。因此可以把數(shù)據(jù)簽名技術(shù)看成是非對稱加密技術(shù)和信息摘要技術(shù)的合體技術(shù)。
特點(diǎn)
數(shù)字簽名算法是公鑰基礎(chǔ)設(shè)施
(Public Key Infrastructure 脐嫂, PKI)的基礎(chǔ)统刮,算法要求:可以驗(yàn)證數(shù)據(jù)的完整性、有消息账千,認(rèn)證數(shù)據(jù)的來源侥蒙,起到抗否認(rèn)的作用。
- 密鑰對:數(shù)字簽名技術(shù)融合了非對稱加密技術(shù)匀奏,包含一對密鑰辉哥,私鑰簽名,公鑰驗(yàn)證攒射;
- 核心算法:數(shù)字簽名技術(shù)的核心算法是消息摘要算法醋旦;
- 輔助:非對稱加密技術(shù)是輔助手段;
- 結(jié)果表示:簽名值常用十六進(jìn)制表示会放;
和信息摘要技術(shù)的不同
數(shù)字簽名技術(shù)本質(zhì)上還是信息摘要算法饲齐,信息摘要算法只是計算出了信息的唯一串,也就是摘要相同的數(shù)據(jù)咧最,明文數(shù)據(jù)肯定相同捂人。信息摘要只能做到信息的完整性,但是無法強(qiáng)有力的保證信息的抗抵賴性矢沿。信息摘要的痛點(diǎn):
- 竊聽方:攔截傳輸數(shù)據(jù)滥搭,利用社工學(xué)等手段探聽,摘要算法和salt捣鲸。
- 竊聽方:修改數(shù)據(jù)并用同樣算法和salt來產(chǎn)生簽名串瑟匆,將新數(shù)據(jù)發(fā)送到信息需求方;
- 需求方:僅能確定數(shù)據(jù)在傳輸過程中沒有被篡改栽惶,無法確定是否被替換愁溜;
數(shù)據(jù)簽名技術(shù)在摘要只是對摘要數(shù)據(jù)做加密疾嗅,保證只有信息產(chǎn)生方才產(chǎn)生此簽名串,具體做法如下:
- 產(chǎn)生方:使用信息摘要技術(shù)對信息計算摘要冕象;
- 產(chǎn)生方:使用自己的私鑰對摘要數(shù)據(jù)加密代承;
- 產(chǎn)生方:公布自己的公鑰,并傳輸數(shù)據(jù)和簽名到需求方渐扮;
- 需求方:使用公鑰對簽名串解密论悴,并計算信息的摘要,比較摘要是否相同墓律;
- 竊聽方:僅能了解雙方傳遞了什么數(shù)據(jù)膀估,但是無法篡改、替換相關(guān)數(shù)據(jù)只锻;
數(shù)字簽名技術(shù)的本質(zhì)是:利用私鑰加密玖像、公鑰解密的特性對信息的摘要做加密產(chǎn)生不可抵賴的簽名串紫谷。
算法家族
美國NIST
公布過DSS( digital signa )
美國國家標(biāo)準(zhǔn)技術(shù)局(NIST)在1991年提出過 DSS
(數(shù)字簽名標(biāo)準(zhǔn)齐饮,全稱:Digital Signature Standard)作為FIPS
(美國聯(lián)邦信息處理標(biāo)準(zhǔn))。其中DSS
僅僅只是一個標(biāo)準(zhǔn)笤昨,里面指定采用DSA
作為簽名算法祖驱。
前面提到數(shù)字簽名
的核心是信息摘要算法
、輔助是非對稱加密算法
瞒窒,因此一般我們提到數(shù)字簽名都需要表明采用了哪些算法捺僻,如:MD5WithRSA
、SHA1withDSA
等崇裁。
在數(shù)字簽名中匕坯,其安全性是依賴非對稱加密算法
的。所以通常情況下拔稳,我們不是很關(guān)注使用的摘要算法葛峻,所以,會有如下劃分:
-
RSA
算法:使用RSA
作為加密算法巴比; -
DSA
算法:美國國家安全局開發(fā)的專門用在數(shù)字簽名技術(shù)中的算法术奖; -
ECDSA
算法:使用橢圓曲線密碼(ECC
)對數(shù)字簽名算法(DSA
)的模擬。ECDSA
于1999年成為ANSI標(biāo)準(zhǔn)轻绞,并于2000年成為IEEE和NIST標(biāo)準(zhǔn).
ECDSA簽名算法采记,JDK1.7之后才有實(shí)現(xiàn)。
算法比較
RSA
政勃、DSA
唧龄、ECDSA
沒有哪一方有決定優(yōu)勢可以將其他競爭對手擊敗:
- 創(chuàng)建簽名串兒時:DSA比RSA快奸远;
- 在驗(yàn)證簽名時:RAS比DSA快选侨;
- DSA解密速度快掖鱼,加密速度慢一些,RSA正好相反援制;
一般在數(shù)字簽名中優(yōu)先推薦使用DSA戏挡,如果有其他標(biāo)準(zhǔn)應(yīng)該先遵循
國際標(biāo)準(zhǔn) -> 國家標(biāo)準(zhǔn) -> 行業(yè)標(biāo)準(zhǔn) -> 內(nèi)部標(biāo)準(zhǔn)