暗号学では、何も隠していない数とは、その構成上、隠れた特性があると疑われることのない数のことである。これらは、ハッシュや暗号などの暗号関数を作成する際に使用される。これらのアルゴリズムでは、ミキシングや初期化のためにランダムな定数が必要になることが多い。暗号作成者は、不正な目的、たとえばアルゴリズムへのバックドアを作成する目的で定数が選択されていないことを示すような方法で、これらの値を選択することを望む場合がある。[1]こうした懸念は、調整の余地がほとんどない方法で作成された数を使用することで和らげることができる。一例としては、数πの最初の桁を定数として使用することがあげられる。[2]小数点以下何百万桁ものπの桁を使用することは、アルゴリズム設計者が、後で利用できる秘密の弱点を作成するためにその開始点を選択した可能性があるため、信頼できるとは見なされない。ただし、一見自然な選択の場合でも、考えられる選択肢には十分なエントロピーが存在するため、これらの数の有用性が疑問視されてきた。
π、e、無理数根などの実数の位置表現の数字は、等頻度で出現すると考えられています(正規数を参照)。このような数は、ランダムに見えますが情報エントロピーが非常に低いという点で、チャイティン・コルモゴロフ乱数の対極として考えることができます。その使用は、米国政府の 1975 年のデータ暗号化標準をめぐる初期の論争がきっかけでした。この標準は、 S ボックスで使用される定数について説明がなかったため批判を浴びました(ただし、それらの定数は、当時機密扱いされていた差分解読法から保護するために慎重に選択されたものであることが後に判明しました)。[3]そのため、暗号化で使用される定数を生成するための、より透明性の高い方法の必要性が感じられました。

「袖の中に何も隠していない」はマジシャンに関連したフレーズで、マジシャンは手品を始める前に袖を開いて、中に何も隠していないことを示すことがあります。
例
- ロン・リベストはπを使ってMD2ハッシュのSボックスを生成した。[4]
- ロン・リベストは三角関数の正弦関数を使って、広く使われているMD5ハッシュの定数を生成した。[5]
- 米国国家安全保障局は、最初の8つの素数の平方根を使用して、「セキュアハッシュアルゴリズム」関数であるSHA-1とSHA-2のハッシュ定数を生成しました。[6] SHA-1は、初期ハッシュ値として0123456789ABCDEFFEDCBA9876543210F0E1D2C3も使用します。
- Blowfish暗号化アルゴリズムは、π − 3のバイナリ表現を使用してキースケジュールを初期化します。[2]
- RFC 3526 では、 πから生成されるインターネット鍵交換用の素数についても説明しています。
- NewDES暗号のSボックスはアメリカ合衆国独立宣言に由来する。[7]
- AES候補 DFCは、Sボックスのすべてのエントリを含むすべての任意定数をeの2進展開から導出します。[8]
- ARIAのキースケジュールでは1/ πの2進展開が使用される。[9]
- RC5暗号の鍵スケジュールはeと黄金比の両方の2進数を使用する。[10]
- TEAやRed Pikeを含む複数の暗号では、 2654435769 または 0x9e3779b9 が使用されています。これはfloor(2 32 / φ )であり、φは黄金比です。
- SHA-3 コンテストのファイナリストである BLAKE ハッシュ関数は、πの小数部の先頭 512 ビットまたは 1024 ビットである 16 個の定数ワードのテーブルを使用します。
- KASUMI暗号のキースケジュールでは、変更されたキーを導出するために 0x123456789ABCDEFFEDCBA9876543210 が使用されます。
- Salsa20ファミリーの暗号は、ブロック初期化プロセスにおいて定数としてASCII文字列「expand 32-byte k」または「expand 16-byte k」を使用します。[11]
- OpenBSD Bcryptは初期化文字列として「OrpheanBeholderScryDoubt」という文字列を使用する[12] [13]
反例
- ストリーボグハッシュ関数Sボックスはランダムに生成されると主張されていたが、リバースエンジニアリングの結果、いくつかの「不可解な」弱点を持つアルゴリズム的に生成されることが証明された。[14]
- データ暗号化規格(DES)には、NSAによって公開された定数が使用されています。これらの定数はランダムとは程遠いものでしたが、当時は公に知られていなかった差分暗号解読法に対してアルゴリズムを耐性のあるものにしました。 [3]
- NIST推奨の暗号疑似乱数ビット生成器であるDual_EC_DRBGは、アルゴリズムで使用するために推奨された定数が、過去に生成された値のサンプルに基づいて将来の出力を予測できるような方法で選択される可能性があるため、2007年に批判を浴びました。[1] 2013年9月、ニューヨーク・タイムズは、「元NSA契約職員のエドワード・スノーデンによって漏洩された内部メモによると、NSAは2006年のNIST標準で使用された乱数生成器の1つ(Dual EC DRBG標準と呼ばれる)を生成し、NSA用のバックドアが含まれていた可能性がある」と報じました。[15] [16]
- ANSSI FRP256v1は全く説明されていないパラメータを使用しています。[17]
操作可能だが簡単ではない
ANSI X9.62は、いわゆる「検証可能ランダム」な楕円曲線の選択を使用していると主張しています。これは実際には、暗号ハッシュ関数を任意のデータに適用した結果に過ぎません。これは全くランダムではなく、せいぜい疑似ランダムです。改ざん耐性は、選択されたハッシュ関数が再イメージ化攻撃に耐性があること、つまり、ハッシュ値が特定の値になるデータを生成することの相対的な難しさのみに基づいています。それでもなお、可能な選択肢の集合は無制限であり、攻撃者がランダムに生成された多数の値を試し、悪用可能な特性を持つ値を見つける可能性は十分に考えられます。実際、IEEE P1363およびNIST 186規格はこれらの曲線を継承していますが、生成手順に関する主張は控えめになっています。[17]
このクラスで最も一般的に使用されるパラメータは、楕円曲線暗号のNIST P曲線です。これらの曲線の係数は、説明のつかない乱数シードにSHA-1を適用することで生成されます。例えば、
- P-224:
bd713447 99d5c7fc dc45b59f a3b9ab8f 6a948bc5. - P-256:
c49d3608 86e70493 6a6678e1 139d26b7 819f7e90. - P-384:
a335926a a319a27a 1d00896a 6773a482 7acdac73.
とはいえ、上記の方法は、単に値を出して、特定の特性(曲線上の点の数)が満たされるまで「繰り返しランダムに生成される」と主張するよりも確かに改善されています。これは、X9.62がこの方法を用いて置き換えようとしたNSA提供の楕円曲線に対する、全く検証不可能な説明です。このような説明は、「自明に操作可能な」曲線を生み出します。[17]
Dual_EC_DRBGに関する暴露は、楕円曲線パラメータの説明を分析することへの新たな関心を呼び起こしました。この文脈において、P曲線の説明は不十分であると考えられました。前述の完全にランダムではない問題に加え、「効率性上の理由」による他のパラメータの選択は、最新の研究を考慮すると最適ではないことが示されましたが、それでも当時のECCの効率的な実装に関する公知事項とほぼ一致していました。P曲線にバックドアが存在するかどうかについては、いかなる証拠も残っていません[18]が、不完全な説明は懸念を引き起こします[19] 。 それ以来、多くのプロトコルはP-256を、より適切に説明されたパラメータを持ち、迅速かつ正確に実装しやすい新しい曲線であるCurve25519に置き換えることを可能にしました。DJ BernsteinによるSafeCurvesは、当時比較的人気があったいくつかの曲線を分析し、どの曲線がCurve25519の「優れた」特徴を共有しているかを特定しています。[18]
制限事項
バーンスタインと共著者らは、楕円曲線などの暗号オブジェクトを生成する複雑な手順において、何も隠していない数値を出発点として用いるだけでは、バックドアの挿入を防ぐのに十分ではない可能性があることを実証している。例えば、π、e、オイラーガンマ、√2、 √3 、√5 、 √7 、log(2)、 (1 + √5 )/2、ζ(3 )、 ζ(5) 、sin(1) 、sin(2)、cos(1)、cos(2)、tan(1)、tan(2)など、一見無害で「面白みのない」単純な数学定数の候補は数多く存在する。これらの定数には、選択可能な複数の異なる2進表現も存在する。定数をランダム シードとして使用する場合、選択できるハッシュ関数の候補も多数存在し、たとえば SHA-1、SHA-256、SHA-384、SHA-512、SHA-512/256、SHA3-256、SHA3-384 などがあります。
オブジェクト選択手順に十分な調整可能なパラメータがある場合、組み合わせ爆発により、可能な設計選択肢と一見単純な定数の宇宙が十分に大きくなり、可能性の自動検索によって、望ましいバックドア特性を持つオブジェクトを構築できるようになります。[20]
脚注
- ^ ab Bruce Schneier (2007年11月15日). 「NSAは新しい暗号化標準に秘密のバックドアを仕掛けたのか?」Wired News .
- ^ ab “Blowfish Paper”. 2011年9月6日時点のオリジナルよりアーカイブ。2010年6月9日閲覧。
- ^ ab Bruce Schneier . Applied Cryptography、第2版、John Wiley and Sons、1996年、289ページ 「DESの暗号は、たまたま差分暗号解読法に対して最適化されていたのです...」。
- ^ 「MD2ハッシュ関数のSテーブルは円周率からどのように構築されるのか?」Cryptography Stack Exchange . Stack Exchange. 2014年8月2日. 2021年5月23日閲覧。
- ^ RFC 1321 セクション3.4
- ^ FIPS 180-2: セキュアハッシュ標準 (SHS) Archived 2012-03-12 at the Wayback Machine ( PDF , 236 kB) – セキュアハッシュ標準 (SHA-1、SHA-224、SHA-256、SHA-384、および SHA-512) の現在のバージョン、2002年8月1日、2004年2月25日改訂
- ^ “NEWDES改訂版、ロバート・スコット、1996年”. 2012年11月8日時点のオリジナルよりアーカイブ。2010年6月9日閲覧。
- ^ Henri Gilbert; M. Girault; P. Hoogvorst; F. Noilhan; T. Pornin; G. Poupard; J. Stern; S. Vaudenay (1998年5月19日). 「Decorrelated Fast Cipher: an AES candidate」(PDF/ PostScript ) . 2008年4月9日時点のオリジナルよりアーカイブ。 2010年6月9日閲覧。
- ^ A. Biryukov、C. De Cannière、J. Lano、B. Preneel、SB Örs (2004年1月7日). ARIA ( PostScript )のセキュリティとパフォーマンス分析(レポート). バージョン1.2—最終レポート.ルーヴェン・カトリック大学. 2011年7月16日時点のオリジナルよりアーカイブ。 2010年6月9日閲覧。
- ^ Rivest, RL (1994). 「RC5暗号化アルゴリズム」(PDF) .第2回高速ソフトウェア暗号化国際ワークショップ(FSE) 1994e 議事録. pp. 86– 96.
- ^ バーンスタイン、ダニエル J.、Salsa20 仕様(PDF)、p. 9
- ^ “src/lib/libc/crypt/bcrypt.c - diff - 1.3”. cvsweb.openbsd.org . 2022年7月5日時点のオリジナルよりアーカイブ。 2022年7月5日閲覧。
- ^ 「ハッシュ - BCryptのテキストが「OrpheanBeholderScryDoubt」なのはなぜですか?」Information Security Stack Exchange。2023年7月10日時点のオリジナルよりアーカイブ。 2022年7月5日閲覧。
- ^ ビリュコフ、アレックス;ペリン、レオ。ウドヴェンコ、アレクセイ (2016)。 「Streebog、Kuznyechik、STRIBOBr1 の S-box のリバース エンジニアリング (完全版)」。Iacr-Eurocrypt-2016。土井:10.1007/978-3-662-49890-3_15。 2023-08-02 のオリジナルからアーカイブされました。2019年3月26日に取得。
- ^ 「NSAはインターネット上のほとんどの暗号化を破っている - シュナイアーのセキュリティ論」www.schneier.com 2013年9月5日。2017年12月15日時点のオリジナルよりアーカイブ。 2015年5月20日閲覧。
- ^ Perlroth, Nicole (2013年9月10日). 「政府、暗号化標準への信頼回復に向けた措置を発表」. The New York Times . 2015年4月23日時点のオリジナルよりアーカイブ。 2013年9月11日閲覧。
- ^ abc Bernstein, DJ. 「剛性」. SafeCurves .
- ^ ab “SafeCurves: Introduction”. 2017年9月5日時点のオリジナルよりアーカイブ。2017年5月2日閲覧。
- ^ Maxwell, Gregory (2013年9月8日). 「[tor-talk] NIST、Torの暗号を承認か?」 オリジナルより2014年10月2日アーカイブ。 2015年5月20日閲覧。
- ^ 曲線基準の操作方法:ブラックハットのためのホワイトペーパー Archived 2016-03-08 at the Wayback Machine Daniel J. Bernstein、Tung Chou、Chitchanok Chuengsatiansup、Andreas Hülsing、Eran Lambooij、Tanja Lange、Ruben Niederhagen、Christine van Vredendaal、2015年9月27日、2016年6月4日アクセス
参考文献
- ブルース・シュナイアー著『応用暗号学』第2版、ジョン・ワイリー・アンド・サンズ、1996年。
- イーライ・ビハム、アディ・シャミール(1990). DES型暗号システムの差分暗号解析. 暗号学の進歩 – CRYPTO '90. シュプリンガー出版. 2–21.