|
BLAKEは、Jean-Philippe Aumasson, Luca Henzen, Willi Meier, and Raphael C.-W. Phanによってアメリカ国立標準技術研究所 (NIST)によるSHA-3の公募に提出された暗号学的ハッシュ関数である。ダニエル・バーンスタインによって設計されたストリーム暗号であるChaChaをベースとしたものであり、ChaChaのラウンドの前にラウンド定数との排他的論理和を取った入力ブロックの置換コピーが加えられている。BLAKEはSHA-3公募において5つの最終候補のうちの1つに残った。 SHA-2と同様に、BLAKEには4つのバリエーションが存在する。32ビットのワード長を持ち256ビットのハッシュを出力するBLAKE-256およびそれを切り詰め224ビットの出力としたBLAKE-224、64ビットのワード長を持ち512ビットのハッシュを出力するBLAKE-512およびそれを切り詰め384ビットの出力としたBLAKE-384の4つである。 == アルゴリズム == ChaChaでは4×4アレイのワードを操作し、BLAKEでは16のメッセージワードと8ワードのハッシュ値を連結することで、ChaChaの出力を切り詰めて次のハッシュ値の計算に用いる。 中核となる変換では入力の16ワードと16の変数を組み合わせるが、ブロック間では8ワード(256あるいは512ビット)しか保持されない。 BLAKEでは、16の固定ワード(πのフラクタル部の先頭の512あるいは1024ビット)と、16要素間での置換テーブル10個を用いる。 σ = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 σ = 14 10 4 8 9 15 13 6 1 12 0 2 11 7 5 3 σ = 11 8 12 0 5 2 15 13 10 14 3 6 7 1 9 4 σ = 7 9 3 1 13 12 11 14 2 6 5 10 4 0 15 8 σ = 9 0 5 7 2 4 10 15 14 1 11 12 6 8 3 13 σ = 2 12 6 10 0 11 8 3 4 13 7 5 15 14 1 9 σ = 12 5 1 15 14 13 4 10 0 7 6 3 9 2 8 11 σ = 13 11 7 14 12 1 3 9 5 0 15 4 8 6 2 10 σ = 6 15 14 9 11 3 0 8 12 2 13 7 1 4 10 5 σ = 10 2 8 4 7 6 1 5 15 11 9 14 3 12 13 0 中核の操作はChaChaの1/4ラウンドと同等の操作であり、4ワードのカラムあるいは対角線上において2ワードのメッセージ m // Index computations スポンサード リンク
|