Introduction to hash & generic birthday attack
這里講的是 Hash 函數(shù)的一個(gè)基本性質(zhì)..我就不寫了.

用hash保證integrity的好處主要在于,我們不需要一個(gè)密鑰
Birthday Attack


在生日悖論中,平均分布是最壞的結(jié)果;而每個(gè)值的獨(dú)立性也是證明中非常重要的性質(zhì)



Merkle-Damgard Paradigm
本小節(jié)目標(biāo):給定針對(duì)于短消息的C.R.函數(shù),我們要構(gòu)建針對(duì)于長(zhǎng)消息的C.R.函數(shù).

有理論支撐,只要h滿足collision resistance,那么H也會(huì)滿足collision resistance的條件。
Constructing Compression Functions
本章節(jié)的目標(biāo)是構(gòu)建壓縮函數(shù) .
我們可以從blockcipher來(lái)構(gòu)建壓縮函數(shù)(Compression Function).



除了上述的構(gòu)建方法,我們還可以構(gòu)建出可證明的壓縮函數(shù)。雖然函數(shù)的正確性可以通過(guò)證明來(lái)解決,但是主要的問題在于構(gòu)建的速度過(guò)慢,在實(shí)際中無(wú)法得到應(yīng)用。

HMAC:a MAC from SHA-256
直接由MD Hash Function生成的MAC是有問題的,我們是可以在結(jié)尾附加上任何 ,然后直接生成對(duì)應(yīng)的
. 具體的原理見下面的框圖:



Timing attacks on MAC verification
這里主要的講的是一個(gè)經(jīng)典的時(shí)序攻擊。即服務(wù)器在驗(yàn)證的時(shí)候,是按照一位一位bit的順序去進(jìn)行驗(yàn)證的,一旦出現(xiàn)錯(cuò)誤的信息,就會(huì)停止檢查。這個(gè)操作的邏輯沒有任何問題,但是會(huì)被攻擊者所利用。攻擊者可以觀察服務(wù)器的檢查時(shí)間,判斷自己前信息是否正確。然后一位一位地去檢測(cè)。
防御的方法有兩個(gè):
固定檢查時(shí)間,讓攻擊者無(wú)法進(jìn)行攻擊;缺點(diǎn)在于,優(yōu)化過(guò)的編譯器可能會(huì)忽略這個(gè)過(guò)程,還是會(huì)有運(yùn)行時(shí)間的差距;
不對(duì)兩個(gè)目標(biāo)值進(jìn)行進(jìn)行比較,而是通過(guò)間接的方式..比如,再hash一次
所以說(shuō),這里Dan又一次勸我們不要自己試圖實(shí)現(xiàn)復(fù)雜的密碼學(xué)過(guò)程,因?yàn)榭赡軙?huì)出現(xiàn)各種各樣的問題...