ちょっとコーヒー淹れてくる

ゲームとかハマってる事をちょくちょく書きます

強化版国家機密お手軽流出キット

さて、昨日はこんな記事を書いた。

gearppuccino.hatenablog.com

こんなことをして喜んでいたいが、やはりどうしても元号が4文字だった時代がある以上、その可能性も網羅しなければ完璧な国家機密は作れない。というかまず、私一人が今この瞬間に元号を制定せよと言われたら絶対3文字の元号を考え、世間の予想や偽の流出情報を見てニヤニヤするだろう。そんなひねくれ者が内閣府の担当にいるかどうかは知らないが、まあとにかく元号法に文字数についてや同じ漢字の使用について記述されていない以上、国家機密というにはどうも不十分な気がする。

そこで今回は0文字から4文字の可能性を網羅した国家機密お手軽流出キットの作成を考える。5文字以上の可能性は流石に国民からの評判が悪いし、達筆な安倍総理がのびのびと色紙に書いてお披露目するには少々文字数が多いだろうからないものとする。まあそういうことでぱぱっと書いてしまおう。

gist.github.com

よぅしできたぞ。特定機密保護法違反だ。

とここまではいいが、私は利口だ。2136個の順列の幅を気軽に増やすとどうなるか知っている。爆発だよ、爆発。成果物がどんだけの容量になるのか全く見当がつかない。ということで一応どのくらいになるか計算してみることにした。

gist.github.com

k_sizeは漢字のバイト数、n_sizeは改行のバイト数である。常用漢字UTF-8内の3バイトで済むの領域に収まっているような気がしたのでそういうことにしておいた。改行もわざわざ変数を設定してあるのは\r\nか\nかちょっと自信を持てなかったからなのだが、どうも\nだけだったらしい。これを実行するとこうなる。

0 :    1.00 B
1 :    8.34KB
2 :   30.47MB
3 :   90.79GB
4 :  246.21TB

要するに常用漢字2136個の4文字の順列を出力させると250TB近くなるらしい。これはだめだ。私の手元には大容量記憶装置をかき集めたところでせいぜい10TB程度しか工面することができない。国家機密を流出させるのはなかなか容易ではないな。

とは言えここで白旗を上げるのは悔しいので、一応3文字までのやや強化版を作り妥協することにした。

f:id:gearppuccino:20190317165432p:plain
外付けHDDを持ってきていざ流出!

f:id:gearppuccino:20190317170306p:plain
2時間もかかった。実はpythonバイトコードのお作法をよく知らないのだがまあこんなものだろう

f:id:gearppuccino:20190317170330p:plain
できた。概ね予想通りの容量だ

f:id:gearppuccino:20190317170405p:plain
こんなもの、メモ帳では到底開けない。

というわけで私はやや強化版国家機密で我慢することにしたが、もし自宅に250TB近い記憶容量があったり、クッソでかいオンラインストレージを借りてたりする兄貴たちは気軽に挑戦してみてほしい。兵庫県警が遊びに来てくれるかもしれないぞ。まあそもそも並列処理でもさせない限り4/1の発表に間に合わないかもしれないがな。

ちなみに私の一押しは「珍珍感謝」だよ。

追記 :

4/1に滞りなく新元号が発表されていたので、確認したところ、ちゃんと流出できていたので満足した。

$ time cat kokkakimitsu.txt | grep "令和"
令和
亜令和
哀令和
挨令和

~~~(中略)~~~

枠令和
湾令和
腕令和

real    13m12.556s
user    0m48.202s
sys     1m17.170s