Message Authentication
每說到文件識別技術,我們通常關心三件事:
- 送出的訊息是否完整且正確 (protect integrity)
- 你不會希望在匯款時多送了幾個 0
- 發訊人的身分是不是正確的 (validate identity)
- 防止有人假冒你幹些雞鳴狗盜的勾當
- 發訊人不可否認曾做過的事 (Non-repudiation)
- 沒辦法切割幹過的壞事
- CBC - residue , CMAC(Cipher-based MAC):在區塊加密時進行鑑別
- HMAC :另外用個雜湊函式(Hash) 進行鑑別
什麼是MAC
是Message Authentication code的縮寫,它是文件經過某些演算法(MAC algorith)產生的,能夠擷取出文件訊息,從加解密的而言,我們可以把它當成一個Checksum,用其進行完整性或身分檢查。要使用MAC,傳送方跟接受方需要共享一把鑰匙,這可以視為MAC演算法的一個參數。每當傳送方發送文件時,會經由演算法送出MAC,並附在文件中,接收方在收到文件後,會對收到的文件再做一次演算,如果兩方得出的MAC是相同的,可以假定這份文件沒被修改過。
CBC - Residue
使用了2把Key,一把用於進行CBC模式,一把用於產生MAC(Residue)。CBC - Residue在加密過程幾乎沒有改變,唯一的不同是在最後的明文Pn的加密,他分成兩個部份,我們把Pn和密文Cn-1做XOR產生的東東叫做Xn好了,一是Xn用Key1加密產生最後一份密文Cn,二是Xn用Key2加密產生一個渣渣,這個渣渣跟密文一點關係都沒有,我們把他當做一個校正碼。因為CBC特有的雪崩效應,使得先前的加密有ㄧ些小改變就會造成後續一連串的錯誤,所以我們才能把這個渣渣用做比對。HMAC
1.什麼是 Hash ?Hash是一個單向函式,假設有一個Hash函式H,H(X) = A, 你無法透過A得到X,從加解密而言,Hash做到的只有加密,而沒辦法解密,因此Hash只會用來做驗證及比較。
2.HMAC
道理很簡單,我們有相同鑰匙,相同算法,那麼對相同明文,Hash出來的東西就該相同。
Authenticated Encryption
加密做的是:保證資料的安全驗證做的是:保證資料的完整
而雙管齊下就是Authenticated encryption,直觀來看有這幾種型式:
但是他們都有一個缺點,就是對於N個區塊而言,他們往往要進行2N次的處理。為了解決這個問題,出現了IAPM與OCB這兩種新模式。
IAPM
S0~SM是用做擾亂資料,因為這是個近似ECB的模式。Sigma P 是由P1XorP2...XorPm-1得出的,Cm即為產生的校正碼。
OCB (Offset codebook Mode)
OCB參考資料
Checksum = M1 ⊕…⊕ Mn
沒有留言:
張貼留言