SHA-3
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/03/26 03:10 UTC 版)
一般 | |
---|---|
設計者 | Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche. |
初版発行日 | 2015-08-05[2] |
認証 | FIPS PUB 202[1] |
詳細 | |
ダイジェスト長 |
224, 256, 384, 512 bits または可変 (SHAKE128, SHAKE256) |
速度 | Core 2 上にて 12.5 en:Cycles_per_byte [r=1024,c=576][3] |
SHA-3は、2004年のCRYPTOにはじまる、MD5への攻撃成功の確認[7]とSHA-1への攻撃の理論的確立[8]という急速に進んだ在来の関数の危殆化を動機とした、アメリカ国立標準技術研究所(NIST)によるこれらに類似した構造を持たないハッシュ関数を求めたコンペティションによるものである。しかしその後、SHA-2への攻撃法の研究は進んだものの、2017年初頭時点では効率的な(有効な)攻撃法の報告はまだ無いことなどのため、結果としてSHA-2の代替の用意が重要ではなくなるなど、状況が変化している[9]。(なおその一方でSHA-1については、2017年2月には衝突攻撃(強衝突耐性の突破)の成功が現実に示され、SHA-2への移行は2017年現在、喫緊の要求となっている)
2012年10月2日、Keccakがコンペティションの勝者として選ばれ[4]、2015年8月5日に正式版が FIPS PUB 202 として公表された[2]。
Keccakはスポンジ構造[10][11]を採用しており、メッセージのブロックは状態の初期ビットとのXORを取ったのちに後述のブロック置換が行われる。SHA-3で用いられているバージョンでは、状態は64ビットのワード長の5×5アレイから構成され、総計で1600ビットである。設計者によれば、KeccakはIntel Core 2で12.5 cycles per byteの速度が出ると主張している[3]。また、ハードウェア実装では他のどの最終候補よりも高速であった[12]。
Keccakの設計者は、認証付き暗号や特定のアーキテクチャにおいてより高速のハッシュ計算を実現する「木」構造のハッシュなど、標準化されていない関数の利用法を提唱している[13]。Keccakでは、2の冪で表現できる任意のワード長を使うことができる(最小のワード長は w=20 = 1 であり、そのときの状態は25ビット)。小さい状態長は暗号研究でのテストに有用であり、中間的な状態長(w=4のとき100ビット、w=32のとき800ビット)は、実用的な軽量の代替実装として利用できる。
- ^ a b c d “SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”. FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION. NIST (2015年8月). 2015年8月6日閲覧。
- ^ a b “SHA-3 Standardization”. Computer Security Division - Computer Security Resource Center. NIST. 2015年8月6日閲覧。
- ^ a b Keccak implementation overview Version 3.2 http://keccak.noekeon.org/Keccak-implementation-3.2.pdf
- ^ a b “NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition”. NIST. 2014年1月2日閲覧。
- ^ “The Keccak sponge function family: Specifications summary”. 2014年1月2日閲覧。
- ^ 「当初の目的」としたほうが正確かもしれない。
- ^ Xiaoyun Wang; Dengguo Feng, Xuejia Lai, Hongbo Yu (2004年8月17日). “Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD”. 2015年8月6日閲覧。
- ^ Vincent Rijmen; Elisabeth Oswald (2005年1月14日). “Update on SHA-1”. 2015年8月6日閲覧。
- ^ Dennis Fisher (2012年9月24日). “Forthcoming SHA-3 Hash Function May Be Unnecessary”. Threatpost. 2015年8月6日閲覧。
- ^ “Sponge Functions”. Ecrypt Hash Workshop 2007. 2014年1月2日閲覧。
- ^ “On the Indifferentiability of the Sponge Construction”. EuroCrypt 2008. 2014年1月2日閲覧。
- ^ Guo, Xu; Huang, Sinan; Nazhandali, Leyla; Schaumont, Patrick (Aug. 2010), “Fair and Comprehensive Performance Evaluation of 14 Second Round SHA-3 ASIC Implementations”, NIST 2nd SHA-3 Candidate Conference: 12 2014年1月2日閲覧。 Keccak is second only to Luffa, which did not advance to the final round.
- ^ NIST, Third-Round Report of the SHA-3 Cryptographic Hash Algorithm Competition, sections 5.1.2.1(「木」構造), 6.2(認証付き暗号), 7(将来標準化されるかもしれない「追加」)
- ^ “Keccak parameter changes for round 2”. 2014年1月2日閲覧。
- ^ “Simplifying Keccak's padding rule for round 3”. 2014年1月2日閲覧。
- ^ John Kelsey. “SHA3, Where We've Been, Where We're Going”. RSA Conference 2013. 2014年1月3日閲覧。
- ^ John Kelsey. “SHA3, Past, Present, and Future”. CHES 2013. 2014年1月2日閲覧。
- ^ “Schneier on Security: Will Keccak = SHA-3?”. 2014年1月2日閲覧。
- ^ “LShift: Why I support the US Government making a cryptography standard weaker”. 2014年1月3日閲覧。
- ^ “Yes, this is Keccak!”. 2014年1月2日閲覧。
- ^ “A concrete proposal”. 2014年1月2日閲覧。
- ^ “Moving Forward with SHA-3”. 2015年7月5日閲覧。
- ^ a b “DRAFT FIPS 202, SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”. 2015年8月6日閲覧。
- ^ Guido Bertoni; Joan Daemen, Michaël Peeters, Gilles Van Assche. “SAKURA: a flexible coding for tree hashing”. 2016年6月20日閲覧。
- ^ “Crypto++ 5.6.0 Benchmarks”. 2014年1月1日閲覧。
- ^ AMD Opteron 8354 2.2 GHzプロセッサと64ビット版Linuxによる計測[25]
- ^ “Announcing the first SHA1 collision”. 2017年2月23日閲覧。
- ^ “The Sponge Functions Corner”. 2016年1月28日閲覧。
- ^ “The Keccak sponge function family”. 2016年1月28日閲覧。
- SHA-3のページへのリンク