版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、然而它太慢了非對稱加密算法有一個缺點加密速度慢,或者說得更拽一些,編碼率比較低。例如在上一篇里我給Clark 傳的那個 1GB 的,進行非對稱加密足足用了 66 小時。那個借條小一些吧,也用了將近 2 分鐘。所以在實際使用非對稱加密的時候,往往不直接對文件進行加密,而是使用摘要算法與非對稱算法相結(jié)合(適用于數(shù)字簽名)或?qū)ΨQ加密和非對稱加密相結(jié)合(適用于加密傳輸文件)的辦法來解決或者說繞過非對稱加密算法速度慢。摘要算法摘要算法,又叫作Hash 算法或散列算法,是一種將任意長度的輸入濃縮成固定長度的字符串的算法,注意是“濃縮”而不是“壓縮”,因為這個過程是不可逆的。它的特點是:1. 不同內(nèi)容的文件
2、生成的散列值一定不同;相同內(nèi)容的文件生成的散列值一定相同。由于這個特性,摘要算法又被形象地稱為文件的“數(shù)字”。2. 不管文件多?。ɡ缰挥幸粋€字節(jié))或多大(例如幾百 GB),生成的散列值的長度都相同,而且一般都只有幾十個字符。這個神奇的算法被廣泛應(yīng)用于比較兩個文件的內(nèi)容是否相同散列值相同,文件內(nèi)容必然相同;散列值不同,文件內(nèi)容必然不同。如果您用過 BT 或eMule,應(yīng)該對散列值比較熟悉了,右圖分別是BT 和eMule 的文件詳細信息的截圖。細心的朋友可能已經(jīng)注意到了,BT 和eMule 的散列值的長度不一樣,這是因為它們所使用的摘要算法不同,目前比較流行的摘要算法主要有 MD5 和SHA-1
3、,您可以在.Net 的System.Security.Cryptography 命名空間找到它們的身影。另,由于本篇是只重理解和應(yīng)用的白話文,所以上面對摘要算法的并不十分全面嚴謹,喜歡看文言文的朋友可以看這篇Hash 算法及其應(yīng)用。還有就是 MD5 和SHA-1 算法已經(jīng)從理論上被山東大學(xué)教授及其研究小組(向中國的科學(xué)家致敬?。贿^并不是這兩個算法從此就不能用了。實際對文件作數(shù)字簽名的方法由于非對稱加密的速度實在太慢了,所以在實際對文件作數(shù)字簽名的時候,例如對上一篇中我用Word 寫給Clark 的借條進行簽名,總是先生成這個借條的散列值,然后用私鑰對這個散列值進行非對稱加密,然后把加密后的
4、散列值(就叫它“散列值密文”吧)和借條一同發(fā)送到 Clark 那里。Clark 在收到借條和散列值密文后,用從網(wǎng)上公鑰將散列值,然后 C的lark 自己再生成一次借條的散列值,比對這兩個散列值是否相同,如果相同,就叫作驗證簽名成功。由于散列值只有幾十個字節(jié),所以簽名的速度還可以忍受。看下圖會更直觀一些。思考題雖然只是對借條的散列值進行了非對稱加密,但是此過程仍然具有防篡改、防抵賴的作用,為什么?又太麻煩了費了好大的勁終于解決了數(shù)字簽名速度慢。但是上面那個復(fù)雜的簽名過程用戶能接受嗎?當然不能!所以須要開發(fā)出一個數(shù)字簽名的程序來簡化簽名過程,最好讓數(shù)字簽名看起來就跟傳統(tǒng)的蓋章差不多。這樣的程序已經(jīng)
5、有了,叫作電子簽章程序。 它是一個桌面程序,一般以Word 或Excel 插件的形式存在。下面就演示一下用電子簽章程序?qū)钘l進行簽名的過程。1. 安裝了電子簽章程序后,Word 和Excel 中就會多出一個簽名用的工具條。2. 寫好借條,存盤。然后用鼠標點擊“添加電子簽章”按鈕。然后在需要顯示的位置上再按一次鼠標左鍵。3. 電子簽章程序會彈出一個框,注意在這步一定要勾選“簽章后鎖定文件”復(fù)選框,至于為什么要這樣,稍后再講。然后點擊確定按鈕。4. 在上一步按確定按鈕后,電子簽章程序還會提示要求我輸入存放私鑰的USB-Key 的使用,然后Word中就會出現(xiàn)一個了。這個是我提供給數(shù)字中心,在制作US
6、B-Key的時候就燒錄在USB-Key之中的。5. 之后我把借條發(fā)送給Clark。Clark 想驗證簽名的話只要按“驗證所有”就可以了。電子簽章會彈出如左圖所示的框。是不是即直觀又簡單?那么諸如“散列值”、“公鑰”這些東東都跑到哪里去了呢?它們都被電子簽章程序到Word 文檔中的某個特定的地方了,如果你熟悉Word 文檔的結(jié)構(gòu),是不難找到它們的。電子簽章程序的Bug電子簽章程序本來可以支持兩種用法:1. 在上面的第 3 步不勾選“簽章后鎖定文件”復(fù)選框,這樣在進行了數(shù)字簽名之后,仍然可以更改Word 文檔的內(nèi)容。當然如果在進行了數(shù)字簽名之后又更改了Word 文檔的內(nèi)容,驗證簽名操作就會失敗。這
7、時需要再次進行簽名操作。2. 在上面的第 3 步勾選“簽章后鎖定文件”復(fù)選框,這樣在進行了簽名操作后,Word 文檔的內(nèi)容就再也無法更改了。但是,電子簽章程序有一個ug在進行了簽名操作后,如果只是更改了文字的顏色,驗證簽名操作仍然會成功。這就意味著,如果我在 Word 中寫到“向公司借款 2000 元”,然后把“2000”的最后一個 0 的顏色改為白色,在看來就是“向公司借款 200 元”。欣然簽章,然后我再把那最后一個 0 的顏色改為黑色,就又變成了“向公司借款 2000 元”,而且驗證簽名居然會成功。這也是為什么我在上面的第 3 步要強調(diào)一定要勾選“簽章后鎖定文件”復(fù)選框了。我猜測造成這個
8、Bug 的原因很可能是因為電子簽章程序僅僅對文檔中的純文本生成散列值,而不是對文本+全部格式信息一同生成散列值。大家在電子簽章程序前一定要作這方面的測試。數(shù)字信封可以通過使用信息摘要技術(shù)解決數(shù)字簽名的速度問題,那么數(shù)字加密的速度問題怎么解決呢?相信除了我和Clark 以外,很少有人愿意為傳送一個而等待 66 個小時。其實這個問題也簡單,可以用對稱加密與非對稱加密相結(jié)合的方式來解決這個問題。對稱加密速度快,但是必須在傳送密文的同時傳送密鑰;非對稱加密速度慢,但是不需要傳送密鑰。把兩個技術(shù)一起使用,各取優(yōu)點,就 OK 了。方法是,先把用對稱加密算法加密,然后把的密文與密鑰的密文同時傳送給 Clar
9、k。Clark 收密鑰用非對稱加密算法加密。再將到這兩樣?xùn)|西后,先用自己的私鑰將密鑰的密文,得到密鑰,再用密鑰將小電的明文。Clark 收到的這兩樣?xùn)|西影的密文,就得到了的密文和密鑰的密文加在一起就叫作數(shù)字信封??聪聢D會更直觀一些。數(shù)字非對稱加密的公鑰和私鑰的長度都很長,一般都在 1024 位以上。這么長且無規(guī)律的,用戶是記不住的,所以只能保存在文件中啦。保存了公鑰的文件就叫作數(shù)字。且慢,這個定義是十分錯誤的!為什么呢?想第 1 篇里的那個我給Clark 發(fā)送的例子。例子中我在網(wǎng)上了Clark 的公鑰(也就是數(shù)字),然后用它對進行非對稱加密,然想只有擁有Clark 的私鑰的Clark 才能Cl
10、ark 的老婆一定沒轍啦。沒想到螳螂捕蟬,黃雀在后,我Clark 的公鑰的那個是Clark 的老婆制作的!里面的公鑰統(tǒng)統(tǒng)都是Clark 的老婆的公鑰!,用Clark 的私鑰解不開,反倒是只有用Clark老婆的私鑰才能解開,用Clark 的話來說,就是“無語了”。所以聰明的你一定想到了,數(shù)字之所以可以稱之為“”,就一定要有“防偽”功能。方法是,數(shù)字里不但要包含Clark的公鑰,還要包含Clark 的自然信息(、等),并且最重要的,要有頒發(fā)部門對頒發(fā)部門也都有自己的數(shù)字稱之為根和與之配這些信息的數(shù)字簽名(每個對使用的私鑰)。這樣我就可以驗證數(shù)字的真?zhèn)瘟?。所以,讓重新定義數(shù)字,數(shù)字是由一個機構(gòu)的,至
11、少包含一個公開密鑰、持有人(或)的名稱以及中心對這些信息的數(shù)字簽名的文件。一般情況下中還包括密鑰的有效時間,發(fā)證機關(guān)(證書中心)的名稱,該的序列號等信息,的格式遵循ITUT X.509 國際標準。您可以使用IE的菜單“工具|ernet選項.- 內(nèi)容 -.- 受信任的根頒發(fā)機構(gòu)”來查看 IE 中已經(jīng)安裝的根。點擊“導(dǎo)入.”按鈕可以導(dǎo)入新的根。的解決方案USB Key已經(jīng)知道, 非對稱加密的密鑰很長,一般都在 1024 位以上,所以只能保存在文件里。好,我把私鑰文件保存在了硬盤上,卻難保哪天這個文件不會被某個壞蛋拷貝走。然后,在這個“沒有人知道你是一條狗”的網(wǎng)絡(luò)世界里,他就變成了我他可以冒充我寫借
12、條甚至向;的合同;他甚至可以冒充我簽署契,300 塊錢就把他可以冒充我跟別的公司簽署上億我賣了而我卻懵然不知。直到有一天,我突然發(fā)現(xiàn)自己突然增加了幾百萬外債、公司把我 Fire 了、一個 9 歲的小.拿著契等在我家門口聲稱我已經(jīng)是所以千萬不能把私鑰保存在硬盤上。那么保存在U 盤上,并且把U 盤放在的口袋里怎么樣呢?好像好了一些,但是你在簽名的時候還是得把U 盤插在電腦上吧?可知道你的電腦中有多少木馬程序正在用For 循環(huán)掃描你的USB 端口,就等著拷貝你的私鑰?需要的是無論如何也不可能被別人的私鑰保存方案,USB Key 應(yīng)運而生。USB Key是一種USB 設(shè)備,外形就跟U 盤一樣,只不過無
13、法用它來存取文件。會使用特殊燒錄到USB Key 中。你無法的設(shè)備將你的數(shù)字、私鑰和電子簽章程序所要使用的使用資源管理器或木馬程序取得USB Key 中的私鑰,當需要用私鑰進行簽名時,直接通過USB Key 的驅(qū)動程序提供的API 將明文傳輸?shù)経SB Key 中,由USB Key 中的加密對明文進行加密,加密結(jié)果會以API 函數(shù)的返回值的形式返回,這樣就可以有效解決私鑰被壞蛋了。還有就是 USB Key 本身還有一個簡短的使用,每次加密前使用者必須輸入正確的使用方能使用,這樣即使USB Key 不慎丟失,也不用擔(dān)心了。USB Key 的缺點USB Key 有一個不大不小的缺點速度有點慢。例如我手里正在試用的這款 USB Key,連續(xù)簽 10 個像“1234”這樣的數(shù)據(jù)需要約 13 秒。這意味著如果你的信息系統(tǒng)只提供一次一條數(shù)據(jù)的簽名方式,那么這 1 秒鐘的延遲用戶根本感覺不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《綿陽求職招聘技巧》課件
- 2020-2021學(xué)年遼寧省沈陽市郊聯(lián)體高一下學(xué)期期末考試歷史試題
- 小學(xué)一年級10以內(nèi)數(shù)字的分與合
- 小學(xué)數(shù)學(xué)新人教版一年級下冊20以內(nèi)口算練習(xí)題大全
- 小學(xué)三年級數(shù)學(xué)三位數(shù)加減法口算題
- 《汽車行業(yè)概述》課件
- 《運輸與包裝》課件
- 吉他行業(yè)客服工作總結(jié)用心服務(wù)打造音樂快樂
- 《光纖通信基礎(chǔ)知識》課件
- 酒店招聘與人才引進策略
- 2024年導(dǎo)游服務(wù)技能大賽《導(dǎo)游綜合知識測試》題庫及答案
- 高中化學(xué)實驗開展情況的調(diào)查問卷教師版
- 期末全真模擬測試卷2(試題)2024-2025學(xué)年二年級上冊數(shù)學(xué)蘇教版
- 《聲聲慢(尋尋覓覓)》課件 統(tǒng)編版高中語文必修上冊
- 初中物理-:八年級上學(xué)期競賽題
- 生物治療與再生醫(yī)療應(yīng)用
- 2024年1月廣東省高中學(xué)業(yè)水平考試物理試題(附答案)
- 帕金森患者生活質(zhì)量問卷(PDQ-39)
- 汽車電器DFMEA-車載終端
- 安全教育年度計劃養(yǎng)老院
- 挖掘機、裝載機崗位風(fēng)險告知卡
評論
0/150
提交評論