姓名:何瑞 ????????? 學(xué)號:17021211237
原文連接:https://blog.csdn.net/u014419512/article/details/26408029
【嵌牛導(dǎo)讀】:數(shù)字簽名最欠、數(shù)字證書等技術(shù)截驮,是現(xiàn)代信息安全的核心技術(shù),可謂使用面十分廣泛。其基本理論本身并不復(fù)雜,本文希望通過深入淺出的介紹,能夠讓大家有一些基本了解。
【嵌牛鼻子】:信息摘要、數(shù)字簽名
【嵌牛提問】:什么是信息摘要左刽?什么是數(shù)字簽名?
【嵌牛正文】
信息摘要酌媒、數(shù)字簽名
基于上篇文章欠痴,我們介紹了的非對稱密鑰算法
現(xiàn)在我們可以繼續(xù)我們的場景:
假設(shè)有一天,Alice收到了一份署名為Bob的文件秒咨。Alice希望能夠確認(rèn)這份文件一定是來自Bob喇辽;另外Alice希望能夠確信,這份文件在傳輸過程中并沒有被它人篡改雨席。那么基于非對稱密鑰算法我們應(yīng)該怎么做菩咨?
確認(rèn)文件一定來自于Bob,其實(shí)就是Bob無法否認(rèn)自己發(fā)送過這份文件陡厘。信息安全中稱作不可抵賴性抽米;另一方面,確信文件并沒有中途被篡改糙置,則稱作不可篡改性云茸。
在非對稱密鑰算法中提到,公鑰加密的內(nèi)容使用私鑰可以解密谤饭。同樣的查辩,基于私鑰加密的內(nèi)容使用公鑰也可以解密胖笛,兩者一一對應(yīng)。因此我們可以很容易想到宜岛。如果Bob利用自己手里的私鑰對文件進(jìn)行加密后,傳輸給Alice功舀。Alice再通過公鑰庫中Bob的公鑰進(jìn)行解密萍倡,則可以證明文件一定是由Bob發(fā)出(由于只有Bob持有私鑰)。另外辟汰,因?yàn)閭鬏數(shù)氖敲芪牧星茫绻軌蚴褂霉€解密,同時(shí)也證明了文件并沒有中途被篡改帖汞。這樣的做法其實(shí)已經(jīng)同時(shí)滿足了不可抵賴性和不可篡改性戴而。
然而,由于傳輸?shù)奈募赡芎艽篝嬲海瑸榱俗C明文件的不可抵賴性和不可篡改性所意,需要對整個(gè)文件進(jìn)行加密,由于非對稱算法效率較低催首,這樣做的代價(jià)太大扶踊。因此常規(guī)的做法是用到信息摘要和數(shù)字簽名的方式。
所謂信息摘要郎任,其實(shí)就是某種HASH算法秧耗。將信息明文轉(zhuǎn)化為固定長度的字符,它具有如下特點(diǎn):
①無論輸入的消息有多長舶治,計(jì)算出來的消息摘要的長度總是固定的分井;
②用相同的摘要算法對相同的消息求兩次摘要,其結(jié)果必然相同霉猛;
③一般地尺锚,只要輸入的消息不同,對其進(jìn)行摘要以后產(chǎn)生的摘要消息也幾乎不可能相同韩脏;
④消息摘要函數(shù)是單向函數(shù)缩麸,即只能進(jìn)行正向的信息摘要,而無法從摘要中恢復(fù)出任何的消息赡矢;
⑤好的摘要算法杭朱,沒有人能從中找到“碰撞”,雖然“碰撞”是肯定存在的吹散。即對于給定的一個(gè)摘要弧械,不可能找到一條信息使其摘要正好是給定的】彰瘢或者說刃唐,無法找到兩條消息羞迷,是它們的摘要相同。
一般的画饥,我們將信息的摘要也稱作信息的指紋衔瓮。如同指紋的含義,相同的信息一定會得相同的指紋抖甘,而僅通過指紋又無法還原出原始信息热鞍。目前主要的摘要算法有MD5和SHA1。
當(dāng)有了信息摘要技術(shù)以后衔彻,基于Bob向Alice發(fā)送文件的場景薇宠,我們可以進(jìn)行如下的操作:
第一步:
① Bob將原始的信息進(jìn)行一次信息摘要算法,得到原始信息的摘要值艰额;
② Bob使用自己的私鑰澄港,對該摘要值進(jìn)行加密。得到信息摘要的密文柄沮;
③ Bob將原始文件和摘要值的密文一起發(fā)送給Alice回梧。
④ 一般的,我們將原始文件和摘要密文稱作Bob對原始文件的簽名結(jié)果铡溪。
第二步:
① 當(dāng)Alice接收到Bob傳輸?shù)男畔ⅲㄔ嘉募畔⒄芪模┖螅褂肂ob的公鑰將摘要密文解密棕硫,得到信息摘要明文髓涯;
② 使用信息摘要算法,取原文的摘要信息哈扮,獲取原始文件摘要信息纬纪;
③ Alice比較解密后的摘要信息和取得的摘要信息。如果相同滑肉,則可以證明文件一定由Bob發(fā)送包各,并且中途并沒有經(jīng)過任何篡改。一般將這個(gè)過程稱作驗(yàn)簽靶庙。
所謂數(shù)字簽名问畅,就是對原始文件的“指紋”進(jìn)行了私鑰加密。這樣六荒,即可保證文件的特征(摘要值)一定經(jīng)過了私鑰的加密护姆。同時(shí)由于信息摘要的長度普遍不長(MD5為128位,SHA1主要為256位)掏击,也并沒有帶來太大的開銷卵皂。
如同對稱密鑰算法,在大部分開發(fā)語言中砚亭,基于非對稱算法的數(shù)字簽名灯变,數(shù)字加密算法殴玛。也都進(jìn)行了一定的封裝。