「SHA-1」の版間の差分
削除された内容 追加された内容
Claw of Slime (会話 | 投稿記録) m編集の要約なし |
伸長攻撃の説明が間違っていたので訂正 |
||
18行目:
}}
'''SHA-1'''は、[[アメリカ国家安全保障局]] (NSA) によって設計され、[[アメリカ国立標準技術研究所]] (NIST) によって[[連邦情報処理標準|FIPS]] PUB 180-4として標準化された[[暗号学的ハッシュ関数]]である。
SHA-1は、160ビット(20バイト)のハッシュ値を生成する。そのハッシュは、[[十六進法]]40桁で表現されることが多い。
69行目:
暗号研究者によって、SHA-0については衝突ペアが発見され、SHA-1についても当初想定されていた 2<sup>80</sup> の試行よりもずっと少ない試行で衝突を発生させうるアルゴリズムが発見された。
そのブロック構造、繰り返し構造と、追加的な最終ステップの欠如により、SHAシリーズは[[伸長攻撃]]およびpartial-message collision attacksに対して脆弱である<ref>[http://www.schneier.com/book-ce.html Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno, Cryptography Engineering], John Wiley & Sons, 2010. ISBN 978-0-470-47424-2</ref>。これらの攻撃
=== 攻撃 ===
114行目:
=== 公式認定 ===
FIPSに認定されたすべての関数の実装は、NISTとCommunications Security Establishment Canada (CSEC) によるCryptographic Module Validation Programの認定を申請することが可能である。2013年現在、SHA-1については2000以上の実装が認定されている<ref>[http://csrc.nist.gov/groups/STM/cavp/documents/shs/shaval.htm SHS Validation List]</ref>。
== ハッシュ値の例 ==
208行目:
hh = (h0 '''leftshift''' 128) '''or''' (h1 '''leftshift''' 96) '''or''' (h2 '''leftshift''' 64) '''or''' (h3 '''leftshift''' 32) '''or''' h4
hh はメッセージダイジェストであり、十六進法 (base 16) あるいは[[Base64]]エンコードで表現される。
定数は "nothing up my sleeve number" として選択される。4つのラウンド定数 <code>k</code> はそれぞれ 2、3、5、10の平方根の 2<sup>30</sup> 倍の値である。状態値のうち <code>h0</code> から <code>h3</code> まではMD5と同じであり、<code>h4</code> は類似したものである。
|