Upgrade to Pro — share decks privately, control downloads, hide ads and more …

勉強会 #4

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for titech.crypto titech.crypto
May 27, 2018
320

勉強会 #4

ハッシュ関数について②

Avatar for titech.crypto

titech.crypto

May 27, 2018
Tweet

Transcript

  1. MD変換(基本形) • 圧縮関数 固定長 (> )の入力を固定長の出力()に圧縮 ()からがわからないようにする(攪拌・一方向性) • MD変換の手順 パディング・分割・圧縮でハッシュ関数を実現する

    1. の長さをの整数倍にパディングする(′) 2.′を長さnのブロックに分割(* ,, , …, .) 3. ℎ0 = 0… 0(長さ)と* を繋げて (入力 + ,出力) に掛ける (ℎ0 ||* ) = ℎ* 4. (ℎ5 ||56* ) = ℎ56* を繰り返して ℎ = ℎ. を出力する
  2. MD変換(一般形) • MD変換(一般形) 基本形同様、パディング・分割・圧縮をする 1.の長さ||をの整数倍にパディングする (′, 7 = + )

    2.′を長さnのブロックに分割(* ,, , …, .) 3. ℎ0 = 000… 0(長さ + )と* を繋げて (入力 + + ,出力)に掛ける (ℎ0 ||||* ) = ℎ* 4. (ℎ5 ||||56* ) = ℎ56* を繰り返す 5. .6* = 0… 0||()とし、 (ℎ. ||1||.6* ) = ℎ.6* を出力する
  3. PGV法 • ブロック暗号(AESなど)を使った圧縮関数 • 入力:ℎCD*,C( ℎCD* = C = )

    • 攪拌: , , ∈ ℎCD*,C,ℎCD* ⊕ C,0… 0 とし , をブロック暗号アルゴリズム()に入力そ の出力との排他論理和をℎC とする ℎC = , ⊕ = = = = • 出力:ℎC( ℎC = )
  4. 算術的圧縮関数 • 算術演算ベースの圧縮関数(論理演算は使わない) • 素数, = 2 + 1とし、をの原始元(P =

    − 1), ∈ {1, … , − 1}とする. • 入力:ℎCD* , C ∈ {1, … , − 1} • 攪拌:ℎC = ℎCD* , C = TUVWXU • 出力: ℎC ∈ {1, …, − 1}