iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
Security

資訊安全之加密理論大雜燴系列 第 12

Day 12 雜湊函數

  • 分享至 

  • xImage
  •  

在電腦科學中,雜湊(hashing)的應用幾乎無所不在,而在密碼學中,雜湊函數有其獨有的特殊含義以及必須滿足的性質,因此在接下來的介紹中,可以先暫時忘掉之前學過或聽過有關雜湊的概念

特性

一個 加密雜湊函數(cryptographic hash function) h(x) 必須滿足以下所有條件

  • 壓縮性:對於任意大小的輸入值x,y = h(x)必須要很小,例如不論輸入是多大的位元,輸出固定為160位元
  • 效率性:h(x)的計算必須要足夠簡單,不可花太長時間
  • 單向性:給定一輸出值y,無法透過計算得到x使得y = h(x);亦即無法進行反向雜湊
  • 弱抗碰撞力:給定x以及其雜湊值h(x),無法透過計算找出與x雜湊值相等的y
  • 強抗碰撞力:無法透過計算找出雜湊值相等的兩數

我們考慮輸入空間為所有150位元的數字,其大小為https://chart.googleapis.com/chart?cht=tx&chl=2%5E%7B150%7D ,欲將其透過雜湊函數產出128位元的數字,其大小為https://chart.googleapis.com/chart?cht=tx&chl=2%5E%7B128%7D

平均而言,單一個雜湊值會可以反向對回https://chart.googleapis.com/chart?cht=tx&chl=2%5E%7B150%7D%20%2F%202%5E%7B128%7D%20%3D%202%5E%7B22%7D ,大約四百萬個150位元的數
因此碰撞一定會發生

雜湊函數的要求是要讓所有的碰撞非常難找到,這看起來似乎很難實現
不過一些很聰明的方法確實能夠找出滿足以上困難要求的函數,因此我們只需要相信這些加密雜湊函數確實存在

有名的雜湊函數

著名的雜湊函數有MD5、SHA-1,其設計及計算方式都很複雜,我們只需知道他們都很有名,並且可以達成以上所述的加密雜湊函數性質

這個網站 可以提供線上計算雜湊值,並同時提供MD5和SHA-1的計算結果

比如我將這段文字以上的文章內容複製,到這個網站 可以計算文字的大小約莫為4KB=4000個位元組=32000位元

其生成的MD5如下:
3a3fa84938f60adb79e2654f0ce4b3ac

生成的SHA-1如下:
d3dc6ca295901d4e1cd9aaa65ef112982ad620e6

兩者皆是以16進位表示的數字
我們可以至數字轉換將兩個結果轉換至二進位表示,檢查其雜湊值輸出的位元

128位元的MD5:
00111010001111111010100001001001001110001111011000001010110110110111100111100010011001010100111100001100111001001011001110101100

160位元的SHA-1:
1101001111011100011011001010001010010101100100000001110101001110000111001101100110101010101001100101111011110001000100101001100000101010110101100010000011100110

可以看到320000位元的字串可以在極短的時間壓縮至128或160位元,各位可以試試壓縮更大容量的輸入值

由於SHA-1的雜湊值位元較多,因此某種意義上來說比MD5要來得安全,不過相對而言其計算量也比MD5大


上一篇
Day 11 RSA公鑰加密!
下一篇
Day 13 加密雜湊函數的應用
系列文
資訊安全之加密理論大雜燴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言