|
SHA-2は、アメリカ国家安全保障局 (NSA)によって設計され、2001年にアメリカ国立標準技術研究所 (NIST)によってFIPS PUB 180-4として標準化された暗号学的ハッシュ関数である。SHAは「Secure Hash Algorithm」の略である。SHA-2は、前規格であるSHA-1から多くの改良が加えられている。SHA-2にはSHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256の6つのバリエーションがあり、ハッシュ長は224、256、384、512ビットのいずれかである。 SHA-256とSHA-512は、それぞれ32ビット、64ビットのワード長から計算されるハッシュ関数である。シフト量と追加定数が異なるが、構造自体は本質的に同一であり、ラウンド数のみが異なる。SHA-224とSHA-384は、それぞれSHA-256とSHA-512を単純に切り詰めたバージョンであり、初期値のみが異なる。SHA-512/224とSHA-512/256は、SHA-256ではなくSHA-512を切り詰めたバージョンである。SHA-2シリーズは によってカバーされているが、アメリカ合衆国は、この特許をロイヤリティフリーで開放している。 2004年にMD5とSHA-0の強衝突耐性が突破され、SHA-1も攻撃法の研究が進む、といった事態が起きたため、それら強度が低下した関数の非推奨化といった「過去を向いた対策」と同時に、新たな構造を持つようなSHA-3の公募などといった「未来を向いた対策」も進められたが、SHA-2にはSHA-1と類似する点もあるものの、後述するように当時憂慮されたような事態にはなっていない(2015年6月現在)ため、SHA-3をSHA-2の代替とするような動きは無い。 2014年1月現在、SHA-1に有効な攻撃をSHA-2に拡張することは達成されていない。原像攻撃ではSHA-256にて52ラウンドまで、SHA-512にて57ラウンドまで、衝突攻撃ではSHA-256の46ラウンドまでが最良の攻撃法である〔〔。 SHA-2は、日本のCRYPTRECおよびヨーロッパのNESSIEにおいて、推奨暗号として採用されている。 == SHA-2 ハッシュ関数 == 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も含まれている〔Federal Register Notice 02-21599, Announcing Approval of FIPS Publication 180-2 〕。 2004年2月、FIPS PUB 180-2のChange Noticeとして、鍵を2つ用いるトリプルDESの鍵長に合うように定義されたSHA-224が追加された〔FIPS 180-2 with Change Notice 1 〕。2008年10月、FIPS PUB 180-3が制定されたが、これはSHA-224をChange Noticeから標準自体に取り込むほかには本質的な変化はなかった。この更新は、ハッシュ関数のセキュリティ情報の更新と、これらSHA-2をSpecial Publications 800-107および800-57において使用することを推奨するためのものであった〔Federal Register Notice E8-24743, Announcing Approval of FIPS Publication 180-3 〕〔FIPS SP 800-107 Recommendation for Applications Using Approved Hash Algorithms 〕〔FIPS SP 800-57 Recommendation for Key Management: Part 1: General 〕。詳細なテストデータとハッシュの例が標準から除去され、別文書とされた〔NIST Algorithm Examples, Secure Hashing 〕。 2011年1月、NISTはSP800-131Aを発表した。これは、連邦政府組織におけるセキュリティ強度の下限について、それまでの80ビット(SHA-1によって得られる強度)の使用を2013年末までに限定し、それ以降は112ビット(SHA-224によって得られる強度)を下限とするものである〔FIPS SP 800-131A Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths 〕。 2012年3月、FIPS PUB 180-4が制定され、SHA-512を切り詰めたバージョンとしてSHA-512/224とSHA-512/256が追加された。また、入力データのパディングをハッシュ計算の前に行なうこととしていた制限が撤廃され、リアルタイムでの音声や映像などにおけるハッシュ計算をコンテンツ生成と同時に行うことが可能となった。最終ブロックのパディングのみは、引き続きハッシュ出力の前に行なうこととされている〔Federal Register Notice 2012-5400, Announcing Approval of FIPS Publication 180-4 〕。 2012年7月、NISTは暗号鍵管理に関するガイドラインであるSP800-57を改訂した。これは、2007年版のおいて112ビット未満の電子署名の生成を2010年末までとしていたものを2013年までに変更するものである〔。2012年8月にはSP800-107にも同様の変更がなされた〔。 NISTは2012年に、かねてからコンペティションを進行させていたSHA-3の選出を行った〔NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition 〕。コンペティションの趣旨により(詳細はSHA-3の記事などを参照)SHA-3はSHA-2(およびそれ以前の関数)とは類似しないものになっている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「SHA-2」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 SHA-2 」があります。 スポンサード リンク
|