要約

  • RFC 3607 は 2003 年に公開された Informational RFC であり、当時のネットワーク規模と複数の仮定を用いて、大量の汎用ホストが暗号解析の経済性を変える可能性を検討した歴史的モデルである。
  • 候補値の検証は、その値が成功条件を満たすことだけを示す。誰が仕事を命じ、どの機械が動き、所有者が同意し、どれだけ重複のない範囲を調べ、誰が損失を負ったかは別の証拠を要する。

受信側の手順だけを見れば、証拠は強い。候補値を取り出し、公開された検証条件へ入力し、同じ結果を再現する。提出者を信用する必要はない。ところが、その強さを計算過程へ広げた瞬間に誤りが生じる。検証器は候補値を評価できても、その値を生んだ数百万の判断を逆再生できない。

RFC 3607 は 2003 年 9 月、「Chinese Lottery Cryptanalysis Revisited: The Internet as a Codebreaking Tool」として Informational 区分で公開された。Code Red の急速な拡散が示したインターネット上のホスト規模を背景に、広く分散した計算能力が暗号解析コストへ与える影響を考察する。標準化された実装仕様でも、作戦の承認書でも、実在の計算集団を測定した監査報告でもない。

文書は条件文として読む必要がある。ホスト母数、そのうち使える割合、一台あたりの処理率、稼働時間、調整損失、対象暗号などを置き、条件が成立した場合の所要時間を考える。計算式の出力が具体的であっても、入力の仮定が観測済みに変わるわけではない。

最初に分けるべきなのは、感染の観測と有効な計算集団である。CAIDA は Code Red について、十四時間未満に 359,000 を超える感染ホストを観測したと記録した。これは特定の時期、ワーム、観測方法についての歴史的事実である。同じ全ホストが同時にオンラインで、均一な性能を持ち、同じ管理者の下で安定して別の仕事を完了できたことを示してはいない。

アドレス数も作業者数ではない。一台がアドレスを変えれば複数に見え、NAT の背後に複数台があれば一つに見える。タスクを受け取る前に消えるホスト、同じ範囲を繰り返すホスト、壊れた結果を返すホストもある。母数にベンチマークを掛けると推計は得られるが、実行記録は得られない。

次に、課題の公開と資源の権限を分ける。公開チャレンジは成功条件を共有する。誰でも答えを検査できるという意味である。しかし、第三者の CPU を利用する権限までは共有しない。課題の発行者と機器所有者は別の主体であり、それぞれの同意には別の証跡が必要だ。

同じ数学的な答えは、ボランティア、契約済みのクラウド、組織所有の設備、侵害された端末のいずれからも出得る。答えのビット列だけを見ても区別できない。結果が正しいからといって、その生成過程が遡って承認されることはない。

三番目は、申告された総量と重複のない探索範囲である。有限範囲の大部分を調べたと主張するなら、作業単位の一意性、割当先、発行時刻、完了時刻、検証結果、重複、タイムアウト、再割当を追跡する台帳が要る。単一のスループット値は、重複計算、未完了領域、虚偽の完了、破損出力を隠してしまう。

正しい候補が見つかっても、その台帳は復元されない。探索は最初の成功で停止できるため、候補は全範囲の探索を示さない。別の経路、事前知識、独立した第三者から答えが届いた可能性もある。結果の正しさと過程の完全性は別の軸である。

四番目は、秘匿と帰属である。提出者を保護する暗号化された返送経路には合理的な目的がある。しかし、その経路は計算来歴を証明する経路ではない。受信者は答えに確信を持ちながら、誰が委託し、誰が調整し、どの機関が資源を出し、誰の端末が無断で使われたかを証明できない場合がある。

結果を最初に公表した者が発見者とは限らない。調整者が機械を所有しているとも限らず、所有者は作業を知らないかもしれない。検証組織は生成に関与していない可能性がある。功績、責任、損害を「答えを持っていた」という一つの関係から推定してはならない。

五番目は時間である。RFC 3607 の算術は 2003 年の暗号、ハードウェア、ネットワークの条件に属する。NIST はその後 DES を撤回し、現行 AES は異なる鍵長と前提を持つ。MD5 と SHA-1 に関する後続 RFC も安全性の指針を更新した。歴史的なホスト数だけを残し、現代のアルゴリズム名へ置き換えることは分析ではない。

専用ハードウェア、アルゴリズム上の改善、電力、メモリ、帯域、調整費用、防御側の移行によってコストは変わる。対象が無作為鍵、パスワード由来の秘密、プロトコル記録、実装欠陥のどれかでも意味が異なる。「インターネット規模」は普遍的な係数ではない。

RFC 3766 は鍵長を攻撃コストとシステム文脈で考える。RFC 4086 は乱数のラベルではなく、源と構成を調べるよう求める。RFC 7696 は、前提が崩れたときに移行できるアルゴリズム俊敏性を扱う。歴史モデルが現在の防御レビューを促すことはあっても、現在の全システムへ無条件の結論を配ることはない。

証拠鎖は少なくとも五つに分ける。課題層では原文、アルゴリズム識別子、対象資料、成功条件、公開時刻を保存する。権限層では、課題発行者、資源承認者、参加形態、有効期間、撤回手段を保存する。実行層では、一意な作業単位、限定された作業者証明、割当と完了、失敗、重複、再試行を保存する。

検証層では候補、検証ソフトウェア、版、検証者、環境、実行記録を保存する。意思決定層では、どのシステムに何の措置を適用し、どの不確実性が残るかを記す。「解読成功」という一つの状態へ圧縮してはいけない。

不明は不明のまま表示する。ホストを特定できなければ不明、同意を証明できなければ未証明、独立範囲を復元できなければ推計と台帳欠落を並記する。匿名経路を使ったなら、時刻や保有者からもっともらしい帰属を作らない。

公開検証は弱いのではない。提出者を信用せず誤答を排除できる点で極めて強い。ただし証明範囲が明確である。候補と成功条件の関係は証明するが、計算を巡る社会的、運用的、法的な歴史までは証明しない。

RFC 3607 の長期的な教訓は、大量の汎用機が専用設備の経済性を揺さぶり得ることだ。その警告を保つには、仮定も同じ強さで保たなければならない。答えは正しく、計算の来歴は不明。この二つを同時に記録できる組織だけが、検証可能性を過信せずに利用できる。