ハッシュ機能、それはなんですか?

親愛なる読者へのご挨拶!





今日は、ハッシュ関数とは何か、その主な特性に触れ、使用例を示し、2015年に米国連邦情報処理規格として公開された最新のSHA-3ハッシュアルゴリズムの概要を説明したいと思います。





一般情報

暗号化ハッシュ関数は、任意のサイズのデータ​​を固定サイズのビットマップにマップする数学アルゴリズムです。





, -, «-» «», «».





- :





) - ̆, -

b) -

c) ̆ , -

d) ̆ -

e) ,





- SHA3-256.





256 , 256 , .





, 64 . , 256 .





: " , , 256 ?"





: 256 !

, 256 - 2 ^ {256} , 2 ^ {256} .

, , :





2 ^ {256} \約1.158 \×10 ^ {77}





, , !





.





- .

̆ - ̆:





Pre-image resistance





h, m , h =ハッシュ(m)





Second pre-image resistance





m_1, ̆ m_2,





ハッシュ(m_1)=ハッシュ(m_2)





Collision resistance





m_1 m_2,





ハッシュ(m_1)=ハッシュ(m_2)





m_1 m_2 -





.





Collision resistance. , , ̆ . , - ̆̆ , , . , ̆ - ̆ , , . - ̆ , , ̆.





, -̆ ̆ , ̆ .





Pre-image resistance. . - , , , . , . .





Second pre-image resistance. . , - . , , , , . , , , ハッシュ(m_1)= h、 m_2 , ハッシュ(m_2)= h





, . -, , .





, , .





, , , .





, - , .





-

-:







- ̆, , , - ̆.







. , . , . -, .







, , . . , -.





:





, . , , . , ( ). , , , . , -, .





SHA-3.





SHA-3

(NIST) 2007—2012 -, SHA-1 SHA-2.





, :

















,









, ISA





5 :





• BLAKE





• Grøstl





• JH





• Keccak





• Skein





SHA-3 Keccak.





Keccak .





Keccak

- ̆ Keccak ̆ , ̆ «» , Z «» .





Keccak Keccak-f、 Keccak-f [b], b \ in \ {25、50、100、200、400、800、1600 \}





Keccak-f ̆ , . n_r n_r = 12 + 2l、 2l = b / 25





SHA-3 Keccak-f[1600], n_r = 24





Keccak-f [1600]





, .





1600 , r c , .





, , SHA3-256 r = 1088、c = 512





SHA-3 S 5 \回5 w = 64, 5 \倍5 \倍64 = 1600 . Keccak w, 2.





- :





• M P ̆ r





• P n r:P_0、P_1、...、P_ {n-1}





• «»: ̆ P_ {i} b (b = r+c) 2 S, f S, 2 P_ {i + 1} f. S 0.





• «»: Z d, d - -, r S Z. f «» , d.





, :









SHA-3 10...1: 1, 0 r - 1 1.





r - 1 , ̆ r - 1 . , r - 1 .





M r, , ̆ ̆ , r - 2 . , , , - .





, - ̆, , .





12 + 2l :





  1. \シータ





  2. \ rho





  3. \ pi





  4. \カイ





  5. \ iota





, , , ,





:





S 5 \倍5 \倍64, a [x] [y] [z]





A [x] [y] [z]





ROT(a、d), :









ROT(a [x] [y] [z]、d)= a [x] [y] [z + d \:\:mod \:w]



ROT(a、d) - , z z + d \:\:mod \:w,





w- (64 )





, .





\シータ





\シータ : a [x] [y] [z] a [x-1] [\ cdot] [z] a [x + 1] [\ cdot] [z-1]





:





:





\ rho





\ rho ( z).





:





\ pi





\ pi :





\カイ





\カイ Keccak-f





:





\ iota





\ iota . Keccak-f , , . l .





RC [i] w = 64





:





r [x、y] :





, -

SHA-3 Keccak, Secure Hash Algorithm





すべてが明確で興味深いものであったことを願っています





ご清聴ありがとうございました!












All Articles