為什么hash函數應用于數字簽名舉例?
hash(摘要)函數提供了這樣一種計算過程:輸入一個長度不固定的字符串,它會返回一串固定長度的字符串,又稱HASH值(摘要值)。單向HASH函數用于產生信息摘要。HASH函數主要可以解決以下兩個問題:在某一特定的時間內,無法查找經HASH操作后生成特定HASH值的原報文;也無法查找兩個經HASH操作后生成相同HASH值的不同報文。這樣在數字簽名中就可以解決驗證簽名和用戶身份驗證、不可抵賴性的問題。 信息摘要簡要地描述了一份較長的信息或文件,它可以被看作一份長文件的“數字指紋”。信息摘要用于創建數字簽名,對于特定的文件而言,信息摘要是唯一的。信息摘要可以被公開,它不會透露相應文件的任何內容。目前常用的摘要算法為MD5、sha1、SHA256等。 如果不用hash,則如果源數據是10M、100M、甚至更大,那么用私鑰做運算會花費很大量的時間,而且生成的數字簽名會很大(一般不小于源數據大小),這都是不可容忍的。 而我們知道無論多大的數據量,只要做hash,就會生成一個固定大小的信息,如sha1會統一生成20字節。在效率和數據量上,都很好,而且效果(認證、抗抵賴)是一樣的。