ハッシュ関数の標準化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/14 07:21 UTC 版)
SHA-2シリーズの圧縮関数の1回分の繰り返し Ch ( E , F , G ) = ( E ∧ F ) ⊕ ( ¬ E ∧ G ) {\displaystyle \operatorname {Ch} (E,F,G)=(E\land F)\oplus (\neg E\land G)} Ma ( A , B , C ) = ( A ∧ B ) ⊕ ( A ∧ C ) ⊕ ( B ∧ C ) {\displaystyle \operatorname {Ma} (A,B,C)=(A\land B)\oplus (A\land C)\oplus (B\land C)} Σ 0 ( A ) = ( A ⋙ 2 ) ⊕ ( A ⋙ 13 ) ⊕ ( A ⋙ 22 ) {\displaystyle \Sigma _{0}(A)=(A\!\ggg \!2)\oplus (A\!\ggg \!13)\oplus (A\!\ggg \!22)} Σ 1 ( E ) = ( E ⋙ 6 ) ⊕ ( E ⋙ 11 ) ⊕ ( E ⋙ 25 ) {\displaystyle \Sigma _{1}(E)=(E\!\ggg \!6)\oplus (E\!\ggg \!11)\oplus (E\!\ggg \!25)} これらの値はSHA-256のものであり、SHA-512では異なる値が用いられる。 ⊞ {\displaystyle \color {red}\boxplus } :addition modulo 232. FIPS PUB 180-2において、3つのハッシュ関数がSHAシリーズに追加された。これらは出力されるハッシュ長のビット数からそれぞれSHA-256、SHA-384、SHA-512と呼ばれ、SHA-2と総称される。 アルゴリズムは2001年のFIPS PUB 180-2の草稿にて発表され、レビューやコメントが寄せられた。2002年8月、FIPS PUB 180-2は新たな標準 "Secure Hash Standard" として認定され、1995年に制定されたFIPS PUB 180-1を置き換えた。FIPS PUB 180-2には、180-1で規定されたSHA-1も含まれている。 2004年2月、FIPS PUB 180-2のChange Noticeとして、鍵を2つ用いるトリプルDESの鍵長に合うように定義されたSHA-224が追加された。2008年10月、FIPS PUB 180-3が制定されたが、これはSHA-224をChange Noticeから標準自体に取り込むほかには本質的な変化はなかった。この更新は、ハッシュ関数のセキュリティ情報の更新と、これらSHA-2をSpecial Publications 800-107および800-57において使用することを推奨するためのものであった。詳細なテストデータとハッシュの例が標準から除去され、別文書とされた。 2011年1月、NISTはSP800-131Aを発表した。これは、連邦政府組織におけるセキュリティ強度の下限について、それまでの80ビット(SHA-1によって得られる強度)の使用を2013年末までに限定し、それ以降は112ビット(SHA-224によって得られる強度)を下限とするものである。 2012年3月、FIPS PUB 180-4が制定され、SHA-512を切り詰めたバージョンとしてSHA-512/224とSHA-512/256が追加された。また、入力データのパディングをハッシュ計算の前に行なうこととしていた制限が撤廃され、リアルタイムでの音声や映像などにおけるハッシュ計算をコンテンツ生成と同時に行うことが可能となった。最終ブロックのパディングのみは、引き続きハッシュ出力の前に行なうこととされている。 2012年7月、NISTは暗号鍵管理に関するガイドラインであるSP800-57を改訂した。これは、2007年版において112ビット未満の電子署名の生成を2010年末までとしていたものを2013年までに変更するものである。2012年8月にはSP800-107にも同様の変更がなされた。 NISTは2012年に、かねてからコンペティションを進行させていたSHA-3の選出を行った。コンペティションの趣旨により(詳細はSHA-3の記事などを参照)SHA-3はSHA-2(およびそれ以前の関数)とは類似しないものになっている。
※この「ハッシュ関数の標準化」の解説は、「SHA-2」の解説の一部です。
「ハッシュ関数の標準化」を含む「SHA-2」の記事については、「SHA-2」の概要を参照ください。
- ハッシュ関数の標準化のページへのリンク