SHA-3アルゴリズム

ハッシュ関数とは何ですか?

情報セキュリティは現在、あらゆるデジタル操作の不可欠な部分になっています。情報セキュリティにおける重要な役割は、暗号化機能の概念によって果たされます。暗号化ハッシュ関数は、暗号化での使用に適した特定のプロパティを持つ専用クラスのハッシュ関数です。





ハッシュ関数によって実行される変換は、ハッシュと呼ばれます。元のデータは、入力配列、「キー」または「メッセージ」と呼ばれます。変換結果(出力データ)は「ハッシュ」「ハッシュコード」「ハッシュサム」と呼ばれます。





言い換えると、ハッシュ関数は、未定義のサイズのデータ​​を固定サイズのデータ​​にマップできる計算手法です。または、より簡単に言えば、変換は入力データによって特徴付けられる数値を出力します。暗号化ハッシュ関数は、不可逆的な(一方向の)数学関数を使用して、入力からハッシュ値を生成します。暗号ハッシュを生成する一般的な方法の1つは、ブロック暗号を使用することです。





暗号的に信頼できるハッシュ関数は、次の基本的な要件を満たす必要があります。





  1. ハッシュ関数は一方向関数である必要があります。画像(ハッシュ)から元のプレイメージ(メッセージ)を見つけることは不可能またはほとんど不可能です。





  2. ハッシュ関数は耐衝突性でなければなりません。衝突は、同じ出力値を持つ元のメッセージのペアです。ハッシュアルゴリズムでの衝突の検出が比較的速いと、暗号分析の観点からそのようなアルゴリズムの信頼性が低下すると考えられています。





今日最も安全で効率的なハッシュアルゴリズムの1つを詳しく見ていきましょう。





SHA-3とは何ですか?

SHA-3は、デジタルトランザクションにおける情報のセキュリティとデータの整合性を確保するために不可欠な暗号化アルゴリズムです。MD5、RIPEMD、SHA-0、SHA-1、SHA-2などの最近の安全なハッシュアルゴリズムは非推奨になり、さまざまな種類の攻撃を受けやすいことがわかっています。





SHA-3 (Keccak) – , 2012 . 5 2015 FIPS 202. Keccak SHA-3 2012 . [1] Keccak Sponge (), -, — , MD(x).





MD(x) OR, XOR, AND, NOT. , . , MD(x) - , .





— .





- SHA-3 :





1 :

. , , ( ), .





, , , , , Keccak .





b = 25 * 2 ^ lb =状態\サイズ  \ l = \ {0、1、2、3、4、5、6 \}の値\ \ bの値\ = \ {25、50、100、200、400、800、1600 \}





SHA-3 l 6. , , . , "l", , .





rounds  = 12 + 2 * l

rounds  = 12 + 12 = 24 ; as l = 6

24\ rounds\ in\ total





, SHA-3 1600 , - 24.





, , .





, "r" -.





‘1", "0". " n " , n\ * \ r . :





p = n * r ;

p = length\ of\ message\ after\ padding

n = number\ of\ parts\ in\ which\ we\ divide\ 'p'

r =\ length\ of\ the\ rate





2 :

r ' ' c ' 1600, .





, "r" .(P n r: P0,P1,…,Pn-1)





, , «» (. rate) r, , / , «» (. capacity) c.





: “” “”.





3 :

Pi b (b=r+c) 2 S b. S . — , .





. , SHA-3, «» (XOR), «» (AND) (NOT). - 2. w=2^l(l=6) →w=64 S A 5×5×5.





A[i][j][k] (5i+j)×w+k S





\{θ, ρ, π, χ, ι\} .





A A':





:

i k , 0≤?<5,0≤?<?,





C(i,k) = A[i,0,k]  \oplus A[i,1,k]  \oplus A[i,2,k]  \oplus A[i,3,k]  \oplus A[i,4,k]

D(i, k) = C[(i - 1)\ mod\ 5, k]\ \oplus \ C[(i + 1)\ mod\ 5, (k - 1)\ mod \ w]

(i,j,k) 0≤i<5,0≤j<5,0≤k<W:

A'[i,j,k]=a[i,j,k]\ \oplus \ D[i,k]





:

k, , 0≤k<w:\ A′[0,0,k]=A[0,0,k]

(i,j)=(1,0). t 0 23:





  1. k, 0 ≤k<w, A'[i,j,k]=A[i,j,(k-(t+1)(t+x)/2)\ mod \ w]





  2. (i, j) = (j, (2i+3j)\ mod \ 5)





:

(i,j,k), , 0≤i<5,0≤j<5,0≤k<w:\ A′[i,j,k]=A[(i+3j)\ mod\ 5,i,k]





:

(i,j,k), , 0≤i<5,0≤j<5,





A '[i、j、k] = A [i、j、k] \ \ oplus \((A [(i + 1)\ mod \ 5、j、k] \ oplus1)\ * \ A [(i +2)\ mod \ 5、j、k])





:

rc(t), - t





rc(t) :





  1. t \ mod \ 255 = 0, 1





  2. R = [10000000]





  3. t 1 255:





    1. R = 0 \ || \ R





    2. R [0] = R [0] \ \ oplus \ R [8]





    3. R [4] = R [4] \ \ oplus \ R [8]





    4. R [5] = R [5] \ \ oplus \ R [8]





    5. R [6] = R [6] \ \ oplus \ R [8]





    6. R = Trunc_8 [R]





  4. R [0]





:

i_r-





  1. (i、j、k), , 0≤i<5、0≤j <5、0≤l <w:\ A '[i、j、k] = A [i、j、k]





  2. RC- w,





  3. 私 0 l: RC [2 ^ i-1] = rc(i + 7i_r)





  4. A ' S ' b





:

  1. S A





  2. i_r 12 + 2l-n_r 12 + 2l-1:\ A '=ι(χ(π(ρ(θ(A))))、i_r)





  3. A ' S ' b





4 :





d( d— -), r S S . d .





d





SHA-3

- Keccak SHA-3 2008 [5]. 2012 Keccak SHA-3. SHA-3 - c (XOFs) SHAKE128 SHAKE256, Keccak.





Keccak, , . Keccak- Keccak -224 KECCAK -256, 4 , Dinur l.[3] 2012 [4]. 5- KECCAK -256. 4. Keccak, Keccak challenge [6] . 160 80 4 (state size 1 ) , 12 .. l 0 1 . 2^80 . , 4 SHA-3, . Dinur l. KECCAK -256 2 ^ {115} . , SHA-3, 5 .





32 AMD. [2]





Keccak, χ f. SHA-3 , , 2 ^ 2 - . ≤r-2 , (r − 1)- 1,





, , . , , 4, χ .





( ) χ Keccak. , r − 1 Keccak-f ( ).





c = br , , “” r − 1. .





, . .





, Sbox . , .





SHAKE128 (M、x)- SHA-3, Keccak [r = 1344、c = 256], バツ(SHA3-X 1) SHAKE128 (M、128), SHAKE128 .





[7]





a [i、j] 私=0,2 j=0,1,2,3 , , . 10. A [0、4] , M . - . , , :





[7]





6×64 , , 2 ^ {128}. , , 128- -.





64 , 0.75 ^ {64} = 2 ^ {-26.6}. 2 ^ {26.6} , A [0.4]. , 2 ^ {26.6}





一般に、衝突検索結果と説明されているプリイメージ攻撃は、今日、SHA-3 / Keccakアルゴリズムが最も安全で最も効率的なハッシュアルゴリズムの1つであることを示しています。今後20〜30年はハッキングされないと主張する人もいます。量子コンピューティングの世界の進歩はこの時間枠を短縮するかもしれませんが、これまでのところ、このアルゴリズムは人類が現在持っている最高のハッシュアルゴリズムの1つです。












All Articles