【2017年整理】单向杂凑函数.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】单向杂凑函数

PAGE PAGE 28 單向雜湊函數 密碼學上的雜湊函數(Cryptographic Hash Function),為一種可以將任意長度的輸入訊息加以濃縮、轉換,成為一相當短的固定長度輸出訊息的函數,此一輸出訊息一般稱為文件摘要(Message Digest)或雜湊值(Hash Value)。 設計或使用雜湊函數於密碼學系統上的主因是因為利用公開金鑰密碼系統簽章時,因其運算速度較慢,若對整份文件加以簽章則效率不彰。因此加以變通,使用由該文件經過雜湊函數運算所產生之長度較短,但足以區別該文件的文件摘要(Message Digest),或稱文件的數位指紋(Digital Fingerprint),來加以簽章,取代原先對整份文件簽章的方式,以加速數位簽章的應用。 雜湊函數與加密演算法一樣,均是將訊息加以隱藏。但其不同點在於加密演算法的結果可以藉由適當的方式加以還原,而雜湊函數則必須具單向與不可逆(One-Way)的特性。因此使得給定文件時,順向計算該文件的雜湊值相單簡單快速,但經過雜湊函數濃縮、運算後的文件摘要,無法反向還原成先前的訊息。 密碼學中所使用的單向雜湊函數(One-Way Hash Function)必須具備以下兩個特性: 當給定一特定的雜湊輸出值後,欲找出任何文件可以輸出此一特定的雜湊值,為計算上的不可行,此為抗拒事先描繪的特性(Preimage Resistance)。 即使給定一份文件及其雜湊值後,找出第二份文件可以輸出此一特定的雜湊值,為計算上的不可行,此為抗拒第二事先描繪的特性(Second Preimage Resistance)。 一個單向雜湊函數必須利用有限的資料量(通常為128或160位元)來區別所有文件,必定存在兩份以上的文件具有相同的雜湊值,此即碰撞、衝突或重複(Collision)的現象。因此,一個可以抗拒碰撞(Collision-Resistance)的單向雜湊函數條件更為嚴苛,除了上述兩條件外,必須使得攻擊者欲找出兩份不相同的文件具有相同的雜湊值,為計算上的不可行。 理想中,一個長度為n位元的文件摘要,應可區別份文件,但在生日攻擊法(Birthday Attack)的威脅下,已使得此一文件數量大幅減少成為,亦即輸出長度為128位元(16位元組)的文件摘要函數只能區別份文件,換言之,攻擊者即使利用地毯式搜尋(Brute-force Attack),在最壞的情況下也只要經過次運算,即可找出具有相同文件摘要的兩份文件,由此看來,有必要將訊息彙記的輸出長度提升至160位元(10位元組)以上。 大部分的單向雜湊函數或訊息彙記函數之設計理念均極類似,均以固定長度的區塊處理來運作。先將輸入訊息後端不足區塊長度的部份,加以填補(Padding)成為一完整長度的區塊,再利用一個壓縮函數(Compress Function),反複地將兩個固定長度的區塊訊息資料利用壓縮(Compress)、邏輯轉換(AND, NOT, OR, XOR)及旋轉移位(Rotate or Cycle Shift)等處理,產生一個單一的結果,稱為鏈結變數(Chaining Variable),作為下一回合的輸入值,並反覆使用上述壓縮函數至訊息處理完畢為止,其最後的壓縮函數值即為文件摘要,請參考下圖之說明。 圖 STYLEREF 1 \s 6 SEQ 圖 \* ARABIC \s 1 1 文件彙記產生示意圖 常見的單向雜湊函數有RSA公司MD家族之MD2、MD4、MD5,美國國家標準與技術協會(National Institute of Science and Technology,NIST)的SHA、SHA-1、與歐盟(European Union)RIPE專案之RIPEMD、RIPEMD -128、RIPEMD -160等,在以下各個小節我們將分別介紹這些單向雜湊函數。 MD 家族 RSA公司之MD家族包括了MD2、MD4及MD5,都是由設計RSA公開金鑰密碼系統的三位發明人(Rivest、Shamir、Adleman)其中的Rivest所設計發展的,此三個文件摘要函數的內部結構大致相同,均可將任意長度的訊息轉換輸出為128位元的文件摘要,其中MD2是針對8位元的環境予以最佳化,MD4與MD5則是充份利用32位元的環境予以最佳化。 MD2 MD2由Rivest發展於1989年,其運作方式如下:[Kaliski92] 將輸入訊息填補成16位元組(128位元)長區塊的整數倍大小。 利用基於圓周率(π)的非線性轉換,計算出一個核對總和值(Checksum)附加於其後。 將上述訊息切割為16位元組長的區塊,配合一個固定的初始值,反覆計算其函數值,產生一個16位元組(128位元)的文件摘要。 目前已經可以找出其壓縮函數的 “碰撞”,

文档评论(0)

love87421 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档