created_at
updated_at
tags
toc

核融合データの正しい隠し方

もしあなたが、瀕死の天才科学者から「世界を揺るがす核融合データ」を託されたら、どうするだろうか?

アディエルのあの隠し方は、手の込んだ場所に隠した点はよいとして、その方法にかなりの問題がある。

では、アディエルはどうするべきだったのか。いや、そもそもエリシャはどうするべきだったのか。

解説する。

保存するメディア

デジタルデータは劣化しないため、いつまでも保存できると思われがちだ。

しかし、実はデジタルデータを長期保存するのは、ものすごく難しい。

データは無事でも、メディアが壊れてしまうからだ。

アディエルの隠し方を振り返ろう。

鍾乳石に隠されたメディア

彼は、鍾乳石の中にメディアを隠した。

ラップトップに差し込まれる microSD と思われるメディア

このシーンを見て「え microSD ?」と思った人も多いだろう。

すぐにラップトップを用意した黒須も、「生きてろよぉ?」と言いながら差している。

そう、「生きてろよぉ?」なのだ。

SD カードなんて、一時的なファイルの移動などに使っても、長期保存するようなメディアではない。

割と簡単に壊れたり、消えたりした経験が、読者にもあるのではないだろうか?

種類や管理にもよるが、民生品なら通常利用で 2~5 年くらい、無通電/無書き換えで保管するとしても 10 年くらいで怪しくなってくる。

ハヤトは「50 年先の技術が急に現れると、世界が混乱する」と説明していた。エリシャが消さなかったということは「50 年くらいは誰にもバレずに保管したい、そのころなら見つかってもいい」という条件だろうか。

50 年間鍾乳石の中に放置されたら、見つかる頃にはもう開かないだろう。乃木たちが見つけたあの時点で 7 年経っていたのだから、すでに結構ギリギリだった可能性がある。

では、アディエルはどうしたらよかっただろうか?

デバイス選定

デバイスの選定にも、複数の条件がある。

そもそも保管場所が重要だ。データセンターなど厳重に管理され、温度/湿度が一定の暗所に、専用のストレージがあり、定期メンテしたとて、ロストを完全に防ぐのは難しい。

ところが今回は、完全に放置だ。しかも、死の砂漠のド真ん中。洞窟の中とは言え、外が灼熱の嵐だったり、極寒の夜を迎えるなら、完全に一定とはいかないだろう。直射日光は避けられそうだが、水が汲めたということは、湿度はありそうだ。条件は決して良くない。

定期メンテは、年 1 回の墓参り。ノコルが祈っている僅かな時間のみだ。そこでバレないように取り出し、中身を確認し、新しいメディアに入れ替え、戻していたとは思えない。できても鍾乳石の様子の確認くらいだろう。

もし 50 年放置するなら、まず選ばれるのは磁気テープか光ディスクだ。旧式メディアに見えて、コールドバックアップではいまだに現役で使われている。しかし、環境変化にはあまり強くないし、鍾乳石には入らない。

また地味ではあるが盲点として「メディアが生きていても、再生できるデバイスがない」という問題が、50 年のスパンだと起こるかもしれない。Computer History Museum や Internet Archive 的なところで、読み取りデバイスが生きていれば、なんとか読めるかもしれないレベルだ。といっても、国家レベルの機関なら、仕様をもとに再現するくらいできるだろうが。

なにより、そんな大事な情報を「1 箇所」に保存するのに無理がある。

消えてもいいなら、そもそも消せばいい。隠すということは、残したい。残したいなら、単一のメディアへの保存は絶対にしてはいけない。

仮に同じ場所に隠すとしても、複数のタイプのメディア(e.g. テープと光ディスク)に入れ、それをさらに冗長化(e.g. テープ x2 + ディスク x3)などする。

あの条件で、microSD 1 つだけにデータを入れて放置し、50 年後などに取り出して読み出すのは、かなり厳しいと思われる。世界を揺るがす重要データを保存する方式としては、アディエルの選択は妥当とは言えない。

暗号化して鍵を隠す

このような場合、そもそもデータそのものを隠すのは筋が悪い。

筆者なら、ファイルを暗号化してしまうだろう。

正確なファイルサイズはわからないが、microSD に収まるくらいのデータなら、zip にかためて AES-256-GCM で暗号化できるだろう。

暗号化したファイルは、そのままではただのバイナリの塊だ。それだけを手に入れても、何もわからない。

ロシア、中国、日本の政府が、AI やらスパコンやらをフル稼働しても、量子コンピュータが進歩しても、しばらくは解読できないと NIST, NSA ともに概ね同じ評価をしている。

AES に対して、今は知られていない超画期的な解読法、つまり致命的な脆弱性でもみつからない限りは大丈夫だ。これが見つかる可能性は、洞窟がバレる可能性よりは低いだろう。(ハヤトはハッシュを復号化?? できるらしいので、とんでもチートで解かれてしまうかもしれないが、、)

すると、バイナリは複数の場所にコピーして分散保存できる。それ自体はバレてもいいので、そこまで機密性の高い場所でなくても良い。つまり、最後のシーンの金庫程度でも良いのだ、多重化さえすれば。

この場合、アディエルが隠すべきは、その 256bit = 32byte の秘密鍵だけで済む。

32byte の秘密鍵は、16 進数なら 64 文字に収まる。

9f2c4a71b8e306d5a12f907c4d68e3b27a1d5c90e4f826b3c09a71d5e2f6480b

base64 なら 44 文字だ。

nyxKcbjjBtWhL5B8TWjjsnodXJDk+CazwJpx1eL2SAs=

こうなるとかなり小さい。

これを洞窟に隠すなら、バイナリデータをデジタルメディアに収める必要はない。

より堅牢な保管方法は「鉄板に刻む」つまりドッグタグだ。ああいった種類の人間なら、馴染みもあるし、怪しまれずに手に入る。

ドッグタグ

これなら、洞窟の鍾乳石の中だろうと、50 年は余裕で保つだろう。

研究データの暗号化ファイルが AES-256-GCM であることがわかるようになっていれば、この鍵で復号すればいいことは自明になる。

手元に 32byte の乱数と暗号化されたファイルが揃ったら、Blue Walker どころか東条、いや乃木や黒須だって AES は試すだろう。

また、ドッグタグになっていれば、このタグを取り合う攻防戦を描くことができ、ドラマ的にも都合が良さそうだ。

スパイ映画は「マクガフィン」を奪い合ってこそだ。

プリシャが可哀想

そもそも、エリシャは「プリシャのお尻にディスクを埋めた」と言っていた。

microSD はどう考えてもディスクではないが、5 センチくらいの切開で埋められるディスクもピンとこない。

おそらくあの microSD は、そのままプリシャのお尻に埋まっていたものを、アディエルが隠したんだろう。ディスクと言ったのは、大衆ドラマ的なわかりやすさだと思われる。

つまり、2 歳のプリシャのお尻に、microSD を埋め込んだことになる。

どうしてそうなった。

人間にデバイスを埋め込むとなると、RFID インプラントがある。スウェーデンでの鉄道利用などが報道されたアレは、2mm x 10mm くらいのカプセルだ。

RFID Implant

microSD なんてデカいものを、皮下に埋め込んだりなんかしたら、人体に影響がないとは思えないし、見た目的にもボコっと盛り上がるだろう。

そもそもケース無しで埋め込んだら、体液が染み込んで壊れる。プリシャには、金属アレルギーや炎症などが起こる可能性がある。埋め込むには人体に沿うケースかコーティングが必要になり、もっと大きくなる。

プリシャが成長しなくたって、入れた日に気づくだろう。お尻が痛いと泣きわめき、シンシーにも簡単にバレると思われる。

つまり、そもそもエリシャが隠した方法自体がかなりの悪手だった。

娘のお尻を手術する程度の余裕があるなら、状況的にそれしか無かったという感じでもなさそうだ。

やりようはもっとある。

エリシャの鍵の隠し方

もしエリシャ自身が「暗号化データ」と「鍵」に分けていたなら、暗号化データはシンシーに取られても良かったことになり、エリシャを拷問する理由は「鍵を吐かせる」ことになった。

きっとエリシャくらい優秀なら、32byte の乱数を「記憶」することもできたかもしれないが、そもそも記憶しない方がいい。

その場合、鍵はなんらかの方法で隠し、拷問の理由は「鍵の隠し場所」になる。この鍵による認証は「記憶」ではなく「所有」の要素になる。

もしエリシャがプリシャに鍵を隠したいなら、すぐ思いつくのは「入れ墨」だ。

プリシャのお尻に 32byte の乱数を彫り入れる、、

身体への影響は microSD よりは低いとしても、さすがにあからさま過ぎてすぐバレそうだし、入れ墨なら人道的かと言うとまったくそんなことはない。

そんなことしなくても、32byte の鍵なら RFID インプラントのようなデバイスにも保存できる。これならプリシャの負担を減らして埋め込むことは可能だろうし、本人も気づかない。

少なくとも microSD よりよっぽど良いが、RFID の寿命もだいたい 10 年くらいとされている。

エリシャがプリシャと引き離されたのが 7 年前。

乃木たちが現れなければ、未だにプリシャに会えていなかったことを考えると、結構ギリギリになる。

アディエルはプリシャも上手に隠していたので、10 年は余裕で見つからなかった可能性もある。

やっぱり娘の体に隠すのは、筋があまり良くない。良いわけがない。

ところで、認証には「記憶」「所有」「生体」の 3 種類がある。「プリシャがいると開く鍵」を「プリシャの所有」と抽象化できるが、そのプリシャは人間なので、「生体」認証ができる。

つまり、プリシャの生体情報をソースとして、そこから秘密鍵ができれば、RFID を埋め込む必要はないのだ。

すると、ディスク(と呼ばれている microSD)を開くとき、プリシャの指紋認証があったことを思い出す。あれはなんだったのか?

何のための指紋だったのか?

ディスクを手に入れても、プリシャの指紋がないと開かない。

だから「最後のキーはプリシャだ」という話だったとする(もっと別の意味が劇場版では出そうだが)。

ただ、あからさまに「指紋で開きます」という謎の UI が勝手に立ち上がったので、普通に考えれば「ってことはエリシャかプリシャだよな」と、素人でもなるだろう。

あれはおそらく、指紋のパターンマッチ、つまり「事前に登録しておいた特徴と、かざした指紋が一致するか」を調べるタイプの認証と考えられる。

しかし、もし AES-256 の鍵を生成するソースとして指紋情報を使うなら、あんな UI を出さず「指紋から鍵を作っている」事実も隠しておけば良い。

それなら、32byte をドッグタグに刻むより、プリシャの指紋の特徴量を抽出して 32byte の鍵を作り、それを使って AES を復号する方法も考えられる。

ところがこれも上手くいくか自信がない。

あの指紋を登録した時点でプリシャは 2 歳だ。想定している 50 年を考えると、52 歳のプリシャでしか復号できないのは、かなり厳しそうに思える。

指紋は基本的に変わらないとされているが、2 歳で取得した指紋の特徴量を、52 歳で再取得できるだろうか?

シワ以外に傷ができたりもする。あんな世界だから、シンシーに捕らえられたプリシャの指が切り落とされている可能性もある。もっと言えば、あの 2 歳の時点で母親と一緒に殺されていた可能性もある。アディエルに助けられていたとしても、アディエルと一緒に 1st Season の爆破で死んでいた可能性もある。

50 年保管したいなら、生体認証を入れるのは、パターンマッチ生体認証でも、鍵のソースにするにしても、あまり得策じゃないだろう。

エリシャが乃木に言ったセリフ

一方、クレデンシャルっぽいものとして、急に RPG の「お告げ」みたいなセリフがエリシャから乃木に託された。

3 か国語での短文。つまむと VIVANT になる、みたいな考察が飛び交うあれだ。調べるとこうらしい。

Ve'ata Ioresh-tikva (お前は希望の子)

Venture Amid blessings (祝福の中を歩め)

Nihayetsiz Tarihlerce (いつまでも)

この「お告げ」が何を意味していたのかは、まだ回収されていない。

ところがこの文脈では、32byte の秘密鍵を乱数から生成する代わりに、ニーモニック(覚えやすい単語)から生成する手法が使える。「お告げ」をそのまま UTF-8 にして SHA256 にかけてしまえばいいだけだ。

$ printf '%s' "Ve'ata Ioresh-tikvaVenture Amid blessingsNihayetsiz Tarihlerce" | shasum -a 256
097d37c170cc8a62ddbc63d377815aa81e905d5a567ffefaf1c58e99c6d08a33

通常は暗号学的に安全な乱数生成器から鍵を作るべきであり、そこと比べるとエントロピーは下がる。こじ開けようとする機関が、「鍵は文章由来かもしれない」という仮説を立てて、その範囲から総当りすれば、探索範囲は減らせるからだ。

しかし、このケースでは乱数よりは扱いやすく、あえて 3 か国語での短文にした理由も、「一言一句正確に」のフリも効いてくる。なにより、プリシャの体を 1 つも傷つける必要がない。

この場合は「記憶」になるので、拷問されたエリシャが話してしまう可能性はあるが、そもそもエリシャは拷問されても「プリシャのお尻にある」とは吐かなかった。

つまり拷問は耐えられているので、アディエルには「お告げ」を伝え、アディエルは「お告げ」を隠すだけでよくなる。

あの「お告げ」なら、ドッグタグにして鍾乳石に入れる必要もない。鍾乳洞はお墓になっていたので、石板に刻んで飾っておいても違和感なさそうだ。

microSD ならば、見つけたら開けようと試みられるが、お墓にお告げの書かれた石板が飾ってあってもありがたいだけだ。

石板に刻むのは、この世で最も寿命の長い保管方法と言われている。

どこかで復号するのはプリシャだろうと考えると、アディエルは毎年の墓参りにプリシャも連れて行き、「何かあったらこの言葉を思い出せ」的なことを毎年教えておくのが良いだろう。

結論

筆者ならどうしたかをまとめる。

まず前提を以下のように置く。

  • 世界をゆるがすデータだから隠したい
  • でも 50 年後くらいには掘り出され、復元されたい
  • その期間、ロストはしたくない

エリシャは

  • 研究データはまるっと zip にし、AES-256-GCM で暗号化する
  • あの「お告げ」を UTF-8 -> SHA256 したものを鍵とする
  • 暗号化データは、複数バックアップを取っておく
  • シンシーには暗号化データの場所を隠す(これはバレてもよい)
  • その場所がわかれば手に入るとシンシーに思わせる
  • 拷問には耐える(ドラマどおり)
  • プリシャには何もしない

アディエルには

  • 暗号化データの場所を伝える
  • バックアップを取るように言う
  • 「お告げ」を伝え、正確に保管するようにだけ言う

アディエルは

  • 暗号化データを回収しテントに複数バックアップする
  • 「お告げ」を石板に刻んで、鍾乳洞のお墓にありがたそうな感じで堂々と飾る
  • プリシャを毎年墓参りに連れていき、「何かあったらこの言葉を思い出せ」と教える

こんな感じだろうか。

復元条件と期間、対象範囲などが曖昧だが、あのドラマの範囲なら、このくらいが落としどころだろう。

まとめ

実はこの方法は、1Password の Vault と Secret Key の関係と同じだ。

Master Password と Secret Key があれば復元できるので、筆者は前者を記憶し、後者をドッグタグに刻んで防災カバンに付けている。

他にも、実家や会社の机など、いくつかの場所にドッグタグ相当を保管していることで、ディザスタリカバリしている。

Secret Key だけを盗まれても入られるリスクはないが、これが無ければ被災してすべてを失ったときに 1Password に入れなくなるからだ。

娘のお尻に Secret Key のタトゥーを彫ろうと思っている人は、ぜひ参考にして欲しい。