現代密碼學之加密雜湊函式與訊息認證碼

Jifu_M發表於2021-01-04

什麼是雜湊函式?

雜湊函式表示為:
在這裡插入圖片描述
其中n是一個安全引數,比如128、160、256或512。
讓x代表一些資訊。h(x)稱為message digest。

基本要求
–message digest的長度是固定的,而資料的長度可以是任意的。
–給定x,很容易計算h(x)。
–建議的message diges長度(位):128(MD5)、160(SHA-1)、224/256/384/512(SHA-2)、224/256/384/512(SHA-3)

總結來說,雜湊函式就是輸入任意長度(*)的input,總會輸出固定長度(n)的output.

加密雜湊函式-安全屬性

一共有三大屬性:

1. Pre-image resistance

給定一個雜湊函式h: X–>Y, y∈Y,沒有有效的機制來發現 x∈X 使得h(x) = y。

這個屬性與單向函式(one-way functions)相同。雜湊函式是一種特殊的單向函式。

2. Second pre-image resistance

給定一個雜湊函式h: X–>Y,x∈X沒有有效的機制來發現x’∈X使得X‘≠X且h(x’) = h(X)。

3. Collision resistance

給定一個雜湊函式h: X–>Y,x∈X沒有有效的機制來發現x,x’∈X使得x‘≠x且h(x’) = h(X)。

第二條和第三條看起來很相似,但是我們要清楚的明白兩者的區別。
2是已知一個x很難找另一個得出相同雜湊值的x’,
3是很難找到一對不同但是得到相同雜湊值的x和x‘。

雜湊函式可以用來幹什麼?

•用於儲存密碼

•完整性(如HMAC)。

•在數字簽名中,用於身份驗證。

•針對高熵資料的關鍵推導

•proof-of-work
什麼是proof-of-work?
一個雜湊函式(例如SHA-256)接受一個資料塊作為輸入,並生成一個“隨機”固定大小輸出。
-在區塊中包含一個可變的鹽值。
-目標:找到一個在輸出開頭有N個0的雜湊(比特幣,區塊鏈相關)。
//區塊鏈技術就是用的雜湊函式。在後面會介紹這一部分。

The Random-Oracle Model(黑盒模型)

假設雜湊函式是一個黑盒隨機函式。
只能讓oracle訪問雜湊函式,這意味著他們沒有公式或演算法來確定自己的雜湊值。
隨機oracle(黑盒)以隨機響應響應每個查詢(響應必須一致)。

隨機Oracle模型是一種用於安全證明的理想雜湊函式模型。

訊息認證碼 Message Authentication Code (MAC)

訊息完整性和真實性的對稱工具
•生成加密校驗
•常見結構
–基於雜湊函式
–基於Block cipher.

什麼是訊息完整性?
防止未經授權修改資料

與錯誤檢測的區別
–錯誤檢測是為了無意中修改資料(例如,由於噪聲)

•兩者都涉及校驗和
–完整性檢查值基於訊息和金鑰
–糾錯/檢測碼不使用金鑰

MAC
在這裡插入圖片描述
The receiver receives a message (M.t). It uses the key K and M to calculate MAC K (M) and compare it with t. If the two match, the received message is accepted as authentic.

MAC也被稱為密碼校驗和

A MAC is secure if forging (M,MAC K (M)) without knowing K is hard.
如果在不知道key的情況下偽造(M,MAC K (M))很困難,那麼我們就認為這個MAC是安全的。

在這裡插入圖片描述

HMAC

在各種安全標準中應用最廣泛的MAC.
使用雜湊函式作為構建塊例如MAC-MD5、MAC-SHA1等等。
它也可以被認為是一個偽隨機函式 (PRF)。
在這裡插入圖片描述
HMAC(K,M) = H( K ⊕ opad || H((K ⊕ ipad) || M) )

Pseudo-random function (PRF)偽隨機函式

A family of functions K x X -->Y
– X: message space
– K: key space
– Y: output space
輸出空間有固定的大小.
F k () for a fixed k defines a function/map from X -->Y

PRF 的安全性

We call a function family F: K x X -->Ypseudorandom if the function F k () (for a uniform k chosen from K) is indistinguishable from a random function RF: X -->Y

就是說,如果我們認為這個PRF安全,那麼他將與真正的隨機函式沒有任何區別(不可分辨)。

PRF和MAC

定義:
如果 F: K x X -->Y is a secure PRF family, then F k () with a uniform k chosen from K is a secure MAC.

Reference

  1. Wenbo Mao, Modern Cryptography, Prentice-Hall, 2003.
  2. Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 2nd Edition, CRC Press, 2015.
  3. W Stallings, Cryptography and Network Security, Fourth (or later) Edition, Prentice Hall, 2006.
  4. J. Pieprzyk, T, Hardjono and J. Seberry, Cryptography: an introduction to computer security,
    Springer Verlag, 2003.
  5. Guo, F., Susilo, W., Mu, Y. Introduction to Security Reduction, Springer, 2018.

相關文章