哈希碼值是什么_第1頁(yè)
哈希碼值是什么_第2頁(yè)
哈希碼值是什么_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、哈希碼值是什么?什么是哈希碼?默認(rèn)分類(lèi)2010-07-0913:20:44閱讀193評(píng)論0字號(hào):大中小訂閱哈希碼值是什么?什么事哈希碼?哈希值,私鑰加密和公鑰加密1.哈希值哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為固定長(zhǎng)度的較小二進(jìn)制值,這個(gè)小的二進(jìn)制值稱(chēng)為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的哈希都將產(chǎn)生不同的值。要找到散列為同一個(gè)值的兩個(gè)不同的輸入,在計(jì)算上是不可能的。消息身份驗(yàn)證代碼(MAC)哈希函數(shù)通常與數(shù)字簽名一起用于對(duì)數(shù)據(jù)進(jìn)行簽名,而消息檢測(cè)代碼(MDC)哈希函數(shù)則用于數(shù)據(jù)完整性。小紅和小明可按下面的方式使用哈希函數(shù)以確

2、保數(shù)據(jù)完整性。如果小紅對(duì)小明編寫(xiě)一條消息并創(chuàng)建該消息的哈希,則小明可以在稍后散列該消息并將他的哈希與原始哈希進(jìn)行比較。如果兩個(gè)哈希值相同,則該消息沒(méi)有被更改;但是,如果值不相同,則該消息在小紅編寫(xiě)它之后已被更改。為了使此系統(tǒng)運(yùn)行,小紅必須對(duì)除小明外的所有人保密原始的哈希值。.NETFramework提供以下實(shí)現(xiàn)數(shù)字簽名算法的類(lèi):HMACSHA1MACTripleDESMD5CryptoServiceProviderSHA1ManagedSHA256ManagedSHA384ManagedSHA512Managed隨機(jī)數(shù)生成隨機(jī)數(shù)生成是許多加密操作不可分割的組成部分。例如,加密密鑰需要盡可能地隨

3、機(jī),以便使生成的密鑰很難再現(xiàn)。加密隨機(jī)數(shù)生成器必須生成無(wú)法以計(jì)算方法推算出(低于p.05的概率)的輸出;即,任何推算下一個(gè)輸出位的方法不得比隨機(jī)猜測(cè)具有更高的成功概率。.NETFramework中的類(lèi)使用隨機(jī)數(shù)生成器生成加密密鑰。RNGCryptoServiceProvider是隨機(jī)數(shù)生成器算法的實(shí)現(xiàn)。2.私鑰加密私鑰加密算法使用單個(gè)私鑰來(lái)加密和解密數(shù)據(jù)。由于具有密鑰的任意一方都可以使用該密鑰解密數(shù)據(jù),因此必須保護(hù)密鑰不被未經(jīng)授權(quán)的代理得到。私鑰加密又稱(chēng)為對(duì)稱(chēng)加密,因?yàn)橥幻荑€既用于加密又用于解密。私鑰加密算法非常快(與公鑰算法相比),特別適用于對(duì)較大的數(shù)據(jù)流執(zhí)行加密轉(zhuǎn)換。通常,私鑰算法(稱(chēng)為

4、塊密碼)用于一次加密一個(gè)數(shù)據(jù)塊。塊密碼(如RC2、DES、TrippleDES和Rijndael)通過(guò)加密將n字節(jié)的輸入塊轉(zhuǎn)換為加密字節(jié)的輸出塊。如果要加密或解密字節(jié)序列,必須逐塊進(jìn)行。由于n的大小很小(對(duì)于RC2、DES和TripleDES,n=8字節(jié);n=16默認(rèn)值;n=24;對(duì)于Rijndael,n=32),因此必須對(duì)大于n字節(jié)的值一次加密一個(gè)塊?;?lèi)庫(kù)中提供的塊密碼類(lèi)使用稱(chēng)作密碼塊鏈(CBC)的鏈模式,它使用一個(gè)密鑰和一個(gè)初始化向量(IV)對(duì)數(shù)據(jù)執(zhí)行加密轉(zhuǎn)換。對(duì)于給定的私鑰k,一個(gè)未使用初始化向量的簡(jiǎn)單塊密碼將把相同的明文輸入塊加密為同樣的密文輸出塊。如果在明文流內(nèi)有重復(fù)的塊,那么在密

5、文流內(nèi)也會(huì)有重復(fù)的塊。如果未經(jīng)授權(quán)的用戶(hù)知道有關(guān)明文塊的結(jié)構(gòu)的所有信息,就可以使用該信息解密已知的密文塊并有可能獲得您的密鑰。若要克服這個(gè)問(wèn)題,可將上一個(gè)塊中的信息混合到加密下一個(gè)塊的過(guò)程中。這樣,兩個(gè)相同的明文塊的輸出就會(huì)不同。由于該技術(shù)使用上一個(gè)塊加密下一個(gè)塊,因此使用了一個(gè)IV來(lái)加密數(shù)據(jù)的第一個(gè)塊。使用該系統(tǒng),未經(jīng)授權(quán)的用戶(hù)有可能知道的公共消息標(biāo)頭將無(wú)法用于對(duì)密鑰進(jìn)行反向工程??梢晕<坝么祟?lèi)型密碼加密的數(shù)據(jù)的一個(gè)方法是,對(duì)每個(gè)可能的密鑰執(zhí)行窮舉搜索。根據(jù)用于執(zhí)行加密的密鑰大小,即使使用最快的計(jì)算機(jī)執(zhí)行這種搜索,也極其耗時(shí),因此難以實(shí)施。使用較大的密鑰大小將使解密更加困難。雖然從理論上說(shuō)加

6、密不會(huì)使對(duì)手無(wú)法檢索加密的數(shù)據(jù),但它確實(shí)極大增加了這樣做的成本。如果執(zhí)行徹底搜索來(lái)檢索只在幾天內(nèi)有意義的數(shù)據(jù)需要花費(fèi)三個(gè)月的時(shí)間,那么窮舉搜索的方法是不實(shí)用的。私鑰加密的缺點(diǎn)是它假定雙方已就密鑰和IV達(dá)成協(xié)議,并且互相傳達(dá)了密鑰和IV的值。并且,密鑰必須對(duì)未經(jīng)授權(quán)的用戶(hù)保密。由于存在這些問(wèn)題,私鑰加密通常與公鑰加密一起使用,來(lái)秘密地傳達(dá)密鑰和IV的值。假設(shè)小紅和小明是要在不安全的信道上進(jìn)行通信的雙方,他們可能按以下方式使用私鑰加密。小紅和小明都同意使用一種具有特定密鑰和IV的特定算法(如Rijndael)。小紅撰寫(xiě)一條消息并創(chuàng)建要在其上發(fā)送該消息的網(wǎng)絡(luò)流。接下來(lái),她使用該密鑰和IV加密該文本,

7、并通過(guò)Internet發(fā)送該文本。她沒(méi)有將密鑰和IV發(fā)送給小明。小明收到該加密文本并使用預(yù)先商定的密鑰和IV對(duì)它進(jìn)行解密。如果該傳輸被截獲,截獲者將無(wú)法恢復(fù)原始消息,原因是截獲者不知道密鑰或IV。在這個(gè)方案中,密鑰必須保密,但I(xiàn)V不需要保密。在一個(gè)實(shí)際方案中,將由小紅或小明生成私鑰并使用公鑰(不對(duì)稱(chēng))加密將該私鑰(對(duì)稱(chēng))傳遞給對(duì)方。有關(guān)更多信息,請(qǐng)參見(jiàn)“公鑰加密”。.NETFramework提供以下實(shí)現(xiàn)私鑰加密算法的類(lèi):DESCryptoServiceProviderRC2CryptoServiceProviderRijndaelManagedTripleDESCryptoServicePro

8、vider3.公鑰加密公鑰加密使用一個(gè)必須對(duì)未經(jīng)授權(quán)的用戶(hù)保密的私鑰和一個(gè)可以對(duì)任何人公開(kāi)的公鑰。公鑰和私鑰都在數(shù)學(xué)上相關(guān)聯(lián);用公鑰加密的數(shù)據(jù)只能用私鑰解密,而用私鑰簽名的數(shù)據(jù)只能用公鑰驗(yàn)證。公鑰可以被任何人使用;該密鑰用于加密要發(fā)送到私鑰持有者的數(shù)據(jù)。兩個(gè)密鑰對(duì)于通信會(huì)話都是唯一的。公鑰加密算法也稱(chēng)為不對(duì)稱(chēng)算法,原因是需要用一個(gè)密鑰加密數(shù)據(jù)而需要用另一個(gè)密鑰來(lái)解密數(shù)據(jù)。公鑰加密算法使用固定的緩沖區(qū)大小,而私鑰加密算法使用長(zhǎng)度可變的緩沖區(qū)。公鑰算法無(wú)法像私鑰算法那樣將數(shù)據(jù)鏈接起來(lái)成為流,原因是它只可以加密少量數(shù)據(jù)。因此,不對(duì)稱(chēng)操作不使用與對(duì)稱(chēng)操作相同的流模型。雙方(小紅和小明)可以按照下列方式

9、使用公鑰加密。首先,小紅生成一個(gè)公鑰/私鑰對(duì)。如果小明想要給小紅發(fā)送一條加密的消息,他將向她索要她的公鑰。小紅通過(guò)不安全的網(wǎng)絡(luò)將她的公鑰發(fā)送給小明,小明接著使用該密鑰加密消息。(如果小明在不安全的信道如公共網(wǎng)絡(luò)上收到小紅的密鑰,則小明必須同小紅驗(yàn)證他具有她的公鑰的正確副本。)小明將加密的消息發(fā)送給小紅,而小紅使用她的私鑰解密該消息。但是,在傳輸小紅的公鑰期間,未經(jīng)授權(quán)的代理可能截獲該密鑰。而且,同一代理可能截獲來(lái)自小明的加密消息。但是,該代理無(wú)法用公鑰解密該消息。該消息只能用小紅的私鑰解密,而該私鑰沒(méi)有被傳輸。小紅不使用她的私鑰加密給小明的答復(fù)消息,原因是任何具有該公鑰的人都可以解密該消息。如果小紅想要將消息發(fā)送回小明,她將向小明索要他的公鑰并使用該公鑰加密她的消息。然后,小明使用與他相關(guān)聯(lián)的私鑰來(lái)解密該消息。在一個(gè)實(shí)際方案中,小紅和小明使用公鑰(不對(duì)稱(chēng))加密來(lái)傳輸私(對(duì)稱(chēng))鑰,而對(duì)他們的會(huì)話的其余部分使用私鑰加密。公鑰加密具有更大的密鑰空間(或密鑰的可能值范圍),因此不大容易受到對(duì)每個(gè)可能密鑰都進(jìn)行嘗試的窮舉攻擊的影響。由于不必保護(hù)公鑰,因此它易于分發(fā)。公鑰算法可用于創(chuàng)建數(shù)字簽名以驗(yàn)證數(shù)據(jù)發(fā)送方的標(biāo)識(shí)。但是,公鑰算法非常緩慢(與私鑰算法相比),不適

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論