| 一般的な | |
|---|---|
| デザイナー | ジャン=フィリップ・オーマソン、ダニエル・J・バーンスタイン、ウォード・ビューレンス、クリストフ・ドブラウニグ、マリア・アイヒルゼーダー、スコット・フリューラー、ステファン=ルーカス・ガスダーグ、アンドレアス・ヒュルシング、パノス・カンパナキス、ステファン・ケルブル、ターニャ・ランゲ、マーティン・M・ラウリドセン、フロリアン・メンデル、ルーベン・ニーダーハーゲン、クリスチャン・レヒベルガー、ジューストライネフェルト、ピーター シュワーベ、バス ヴェスターバーン |
| 初版 | 2017年11月30日 ( 2017-11-30 ) |
| 由来 | スフィンクス |
| 詳細 | |
| セキュリティに関する主張 | 2 64署名の署名を偽造するために必要な作業が、必要なセキュリティレベルを下回るまで |
| 構造 | ハッシュベースの暗号化 |
SPHINCS +は、正式にはSLH-DSA [1]としても知られ、NISTが量子耐性標準化プロセスのFIPS 205標準に選択した量子 耐性署名方式です。
デザイン
SPHINCS +は、WOTS +(ウィンターニッツワンタイム署名方式の修正版)と呼ばれるワンタイム署名方式、FORS(ランダムサブセットの森)と呼ばれる数回署名方式、およびマークル木に基づいています。[2]
署名の際、メッセージはFORS鍵で署名されます。FORS鍵は、マークルツリーの葉であるWOTS +鍵で署名されます。ツリーのルートは、別のWOTS +鍵で署名されますが、この鍵もまた別のツリーの葉です。そのツリーのルートは、再びWOTS +鍵で署名されます。ツリーの階層数は、アルゴリズムの一部として指定されるパラメータです。この「ツリーのツリー」はハイパーツリーと呼ばれます。最上位のツリーのルートは公開鍵です。署名は、FORS鍵とその署名、WOTS +鍵とその署名、マークルツリーの包含証明、そしてハイパーツリーのパスを生成するために使用されたRと呼ばれるランダム値で構成されます。 [2]
署名を検証するために、検証者はまず最初のWOTS +鍵の包含証明を公開鍵と照合し、次に次のルート鍵の署名を検証します。そして、次のWOTS +鍵の包含証明を新しいルート鍵と照合します。この処理は最後のWOTS +鍵に到達するまで続けられ、最後のWOTS +鍵はFORS鍵の検証に使用されます。そして、この鍵はメッセージの署名を実際に検証するために使用されます。[2]
すべてのWOTS +鍵とFORS鍵は、秘密鍵から決定論的に生成されます。署名時に、署名者はRと呼ばれるランダムなビット列を生成し、それをメッセージと共にハッシュします。得られたハッシュの一部はハイパーツリーのパスを選択するために使用され、残りの部分はFORS鍵で署名されます。[2]
安全
SPHINCS +は、そのセキュリティが基礎となるハッシュ関数の原像と衝突耐性のみに依存しているため、NISTによって「保守的な」選択と呼ばれています。 [3] [4]
特定のSHA256インスタンスに対する理論的な偽造攻撃が報告されています。この攻撃は、大量の正当な署名と実行不可能な量の計算を必要とします。この攻撃はSHA256のMerkle-Damgård構造[a]を利用し、各セキュリティクレームを40ビット削減します。この攻撃の作者たちは、この攻撃が「SPHINCS +設計の全体的な健全性に疑問を投げかけるものではない」と考えており、緩和策も提案されています。[2]
歴史
SPHINCS +は、 EUROCRYPT 2015で発表されたSPHINCSスキームに基づいています。[6]
SPHINCSは、公開鍵と秘密鍵のサイズが1kBと大きく、署名のサイズが41kBと大きいのが特徴です。[6]
SPHINCS +は2017年に初めてリリースされました[7]。これは、SPHINCSが「ハッシュベース署名におけるマルチターゲット攻撃」と呼ばれる脆弱性を抱えていたためです。この脆弱性は2016年の論文で対処されています。さらに、検証可能なインデックス選択(ツリー構造を通るパス)がないため、別の種類のマルチターゲット攻撃が可能になります。SPHINCS +は、これらの問題すべてに対処し、ツリーレスWOTS +鍵圧縮、署名時のRパラメータの追加、そしてFew-Time署名方式のFORSへの置き換えによって鍵と署名のサイズを削減するように設計されました[8] [9] 。
SPHINCS +は、 2024年8月にNISTによってFIPS 205標準でSLH-DSAとして標準化され、 [1] NIST標準化の2つの量子耐性署名方式の1つとなり、もう1つはML-DSAです。[10] [11] [12]
インスタンス
SLH-DSAは、ハッシュ関数(SHA256またはSHAKE256)、タイプ(署名時間が速い場合はf、署名が短い場合はs)、セキュリティレベル(例えば128は署名の偽造がAES-128の解読と同じくらい難しいことを意味する)に基づいて、以下のインスタンスを指定する:[1] [13]
| 名前 | セキュリティレベル | タイプ | ハッシュ関数 | 公開鍵のサイズ | 秘密鍵のサイズ | 署名サイズ |
|---|---|---|---|---|---|---|
| SPHINCS+-SHA2-128s | 1 [b] | 小さい | SHA256 | 32 | 64 | 7856 |
| SPHINCS+-SHAKE-128s | シェイク256 | |||||
| スフィンクス+-SHA2-128f | 速い | SHA256 | 17088 | |||
| スフィンクス+-シェイク-128f | シェイク256 | |||||
| SPHINCS+-SHA2-192s | 3 [c] | 小さい | SHA256 | 48 | 96 | 16224 |
| SPHINCS+-SHAKE-192s | シェイク256 | |||||
| スフィンクス+-SHA2-192f | 速い | SHA256 | 35664 | |||
| スフィンクス+-シェイク-192f | シェイク256 | |||||
| SPHINCS+-SHA2-256s | 5 [d] | 小さい | SHA256 | 64 | 128 | 29792 |
| SPHINCS+-SHAKE-256s | シェイク256 | |||||
| スフィンクス+-SHA2-256f | 速い | SHA256 | 49856 | |||
| スフィンクス+-シェイク-256f | シェイク256 |
実装
- ボタン[14]
- バウンシーキャッスル[15]
- RustCrypto、 Trail of Bits著[16]
- オープンクォンタムセーフ[17]
外部リンク
- 公式サイト
参考文献
- ^ abc ステートレスハッシュベースデジタル署名標準(レポート). ワシントンD.C.: 米国国立標準技術研究所(NIST). 2024年8月13日. doi : 10.6028/nist.fips.205 .
- ^ abcde 「SHA-256でカテゴリー5のSPHINCS+を破る」。2025年5月12日閲覧。
- ^ 「SPHINCS+の厳密なセキュリティ証明の回復」(PDF). 2025年6月29日閲覧。
- ^ 「SPHINCS+の厳密なセキュリティ証明、形式的に検証済み」PQShield . 2025年1月30日. 2025年6月30日閲覧。
- ^ “Keccak Team”. Keccak Team . 2025年10月24日閲覧。
- ^ ab "SPHINCS: Introduction". SPHINCS . 2013年7月18日. 2025年6月29日閲覧。
- ^ 「SPHINCS+のNISTポスト量子プロジェクトへの提出」(PDF) 。 2025年6月29日閲覧。
- ^ 「SPHINCS+ – 小型SPHINCS」. Andreas Hülsing . 2017年12月4日. 2025年6月29日閲覧。
- ^ 「ハッシュベース署名におけるマルチターゲット攻撃の緩和」(PDF) . 2025年6月29日閲覧。
- ^ Valenta, Luke; Gonçalves, Vânia; Westerbaan, Bas; Rosenberg, Michael; Kipp, Kevin; Dincer, Renan; Araya, Felipe Astroza; Galicer, Mari; Meunier, Thibault (2024年8月20日). 「NIST初のポスト量子標準」. Cloudflareブログ. 2025年6月29日閲覧。
- ^ "SPHINCS+". Open Quantum Safe . 2022年6月10日. 2025年6月29日閲覧。
- ^ Boutin, Chad (2024年8月13日). 「NIST、最終版のポスト量子暗号規格3案を発表」. NIST . 2025年6月29日閲覧。
- ^ 「セキュリティ(評価基準)」CSRC . 2017年1月3日. 2025年6月29日閲覧。
- ^ 「randombit/botan: Cryptography Toolkit」. GitHub . 2013年3月6日. 2025年6月29日閲覧。
- ^ 「PQCと軽量暗号化のアップデート」Bouncycastle . 2025年1月24日. 2025年6月29日閲覧。
- ^ Hess, Tjaden (2024年8月15日). 「私たちはコードを書いた、そしてコードが勝った」. The Trail of Bits Blog . 2025年6月29日閲覧。
- ^ 「open-quantum-safe/liboqs: 量子耐性暗号のプロトタイプ作成と実験のためのCライブラリ」GitHub . 2016年8月12日. 2025年6月29日閲覧。