第27話 New Method of Prime Factorization

「慈道さん。こんなときになんですが、あなたのコンピューター能力の低さは私もよく分かっているので、ここは柴山先輩にお願いします」

 慈道の勇気も虚しくアリサは冷静な返しをする。確かにTeXファイルを見ただけで吐き気を催すほどの電子アレルギーには荷が重い。

「柴山はやりたくないと言っているんだ。だったら、俺がやるしかないだろう」

 慈道はどたどたと歩いて柴山の隣に座り、ノートパソコンを自分の方に寄せた。二人の命を預かる男は意外に口元を緩めながら静観している。慈道の男気を評価しているのかもしれない。照準は合わせたままだが、慈道の行動を妨げようとする気配はなかった。そんな男の態度に合わせて、アリサは腕を組んで成り行きを見守ることにしたようだ。

「ちなみに慈道さん。パソコンやUSBを破壊しようなんて思わないでくださいね。メモリー内のデータはバックアップ済みですから。念の為」

 アリサが釘を刺した。

「それはどうも。そんなこと考えもしなかったよ。柴山、さあどうすればいい。教えてくれ」

「……そ、それじゃあ、結局私がやったも同然じゃないですか」

「同じなもんか。お前は俺に命令されてただそれに従っただけだ。アリサではなくこの俺にだ。ならばすべての責任は俺にあるだろう。お前はなんにも悪くない」

 慈道なりの論理で柴山の枷を外そうとしている。決して名案とは言えないが、銃口を向けられるというリスクを背負ってまで慈道は柴山の苦しみを和らげようとしている。柴山はコンピューターの画面と格闘するそんな慈道の横顔を見て、たまらず目尻を指でこすった。

「これが、暗号化された論文か」

 慈道は、 print(lines) によって出力された暗号文


   Out[11]: [4602474115253746969400559906044147290742

       0126035173068637842073407396853944404119

       5802481715860062675757351028375666390145

       5855341049251453880135905487115143068444

       8509518807221567539797139427380479541880

       5968188862603658954677096581072603093131

       0890304113472624399364402403109504121542

       8460195668777049449185122627188320252188

       4137597756345352130005176488452028269471

       7454621888400787829065925151369131191524

       4519806204392223063017300686226840957968

       1291045256391343061201897798103169325791

       9386631384975328477893320846491473790060

       7455400902179401266592845618230009357985

       9862448651418341309895356259417662584503

       6971187927439008768111570783179820980214

       2888452107580061599161090479889691322959

       1215442624829192660453220363256746908336

       2525721, ……,

       6157489398937063215465068541124080594436

       8427745635583461799720124465335478997412

       2814025762501522176328777442987110794239

       7376650119884924179342121421934280461314

       3012050508694327489856413709162156407366

       0142111181425391027309857432393488036804

       7733704473540345313107215491915129622255

       7212567294229023509642083751933880643080

       7511447667434754539729303319992332103573

       7737921159464346244947231234218572139826

       7535920996001709291241099384367880606933

       4211217237243937592912670114184876317424

       9852491885749468104000333783692002251623

       4625590027054527164226542993467691551162

       6207572232614088243718740201974917037521

       3841004037653642808658579722120074876850

       1936608922042657951635153450564938286527

       3284627103567386549752195053878047262491

       5209442]


をスクロールさせて確認している。

「聞きたいんだが、 N はいくつだ?」

「shiftを押しながらNと打ってください。大文字のNがタイプされます。そしたらshiftを押しながらenterです」

「こうか」

 慈道は左の人差し指でシフトキーを押し、右の人差し指でNキーを押す。タイピングなどまるでしたことがない慈道は、人差し指ですべてまかなおうとする。

「なるほど。まさしく728桁の巨体数だ」

「秘密鍵の d は、こうすればいいんだな」

 慈道は 727 桁の復号に用いる d を画面に出力する。


   In [14]: d

   Out[14]: 7571080994154604362684783647206398152797

       4616897496789956306220311956539940367049

       2959607149192390840343601295392019038577

       6571122709360318604299170601702521982190

       5679941100183026304236690133555443660127

       4409004778990845292453652936329099130019

       7789947760118205039481339872547351992223

       3857896049400773900507487095805128560466

       6882726747944532966635162753771730414537

       8357763778884819112367820446160952663328

       5155281884519454808985186170225803446577

       7333070655491884677682286747755153260362

       2000801900391032515365653473824725631572

       1638560859530946303244399201200253956672

       9212815971847924724260627419198936192670

       6193555988681492452076657721388105917942

       1615204860681699457546284709286477357055

       8111816048672764152689721175774062029799

       0066873


「どうしたんですか? 見ているだけじゃ復号はできませんよ」

 アリサはもたもたしている慈道を急かす。

「分かってる。少し黙っててくれ」

 慈道はひたいから噴き出る汗をロングTシャツの袖で拭う。慈道は目の疲れか、拭いきれていない汗が侵食したのか、指で瞳を乱暴にこすってから、何度もまばたきを繰り返す。普段から電子機器に慣れていない慈道は、液晶から放射される光の刺激が強すぎるのかもしれない。そして眉間に皺を寄せながら、なにかが傷口に染みこんで激痛をともなっているかのような渋い表情を見せる。そして再び額を拭う。慈道の背中は発汗でTシャツと同化していた。秋にも関わらず脱水症状を起こしてもおかしくない。

 このような男に復号をゆだねてよいのか。アリサの表情からはそういった心の声が容易に読み取れる。静観していた男もあくびをして、一歩だけ前進する。

 銃口が近づいたことに気付きもしない慈道は、思うことがあったのか再び、 print(lines) で表示された暗号文をなめるように見る。そして、0から9で構成されたランダムとしか思えない文字列を、目を剥いて恐ろしい形相で凝視し始めた。コンピューターに取り込まれているというよりも、まるで、暗号を自らの瞳に取り込んでいるようであった。

「最終試練……」

 唐突に慈道は柴山にだけ聞こえるくらいの細い声で呟いた。

「え?」

 柴山も小さく言った。

「いや、なんでもない」

 慈道は首を振って頬を両手で叩いた。

「柴山。終わらせるぞ」

 華奢でずぼらな慈道ではあるが、今この時だけは、そこで銃を構えた小綺麗に髪や眉を整えた大男よりも遥かに屈強で美しいアウラをまとっていた。

「はい」

 柴山は慈道が最後に絞り出した微かな勇気を分けてもらっていたらしい。

「まず、 f = open('a.tex', 'w') と打って、shift、enterです」

 柴山はコードを一文字一文字告げ、慈道はキーボードと画面を交互に見ながらゆっくりタイプする。

「それで?」

「次は、えっと……


   for c in lines:

     f.write(int2str(decrypt(c, d, N)))

   f.close()


と打ってください」

 たった3行のコードであるが、慈道にとっては大作である。

「これで復号されたTeXファイルが出来上がります」

「……たったこの3行でか」

「はい」

 慈道は左人差し指でシフトキーを押した。そして、震えながら右の指でリターンキーを押そうとすると、唐突に柴山が手首を掴んだ。

「本当にこれで、いいんですよね。こうするしかないんですよね。これで復号がすべて完了します……」

 二人は向き合った。柴山の不安に駆られた儚くていじらしい瞳が慈道の心に突き刺さる。とても目線を合わせていられない慈道は画面の方にぼんやりと視線を移す。

「お前はなにも考えるな。責任は、俺がすべてとる。それが師匠の役目だろ。もし……もしこれでRSA暗号が破綻しても、俺が絶対に破られない暗号方式を作り出してセキュアな世界を作り出す。そのために、毛嫌いしていたコンピューターともしっかり向き合おう。おそらく、素因数分解の困難性は、多変数多項式の因数分解の困難性にも通づるはずだ。もしかしたら多項式環の自己同型でも似たようなことはできるかもしれない……これは俺にとっての試練。今こそ、俺進化の時なんだ」

「先輩……」

 慈道の思いを受け取った柴山はそっと掴んでいた手をほどいた。

「行くぞ」

「ええ」

 慈道はリターンキーを押した。怒涛のforループが走り始め、復号された文が“a.tex”に蓄積され始める。今回用いられる秘密鍵 d は 727 桁の整数で、2進数にして2415桁である。1行復号するのに繰り返し2乗法をもってしても高々4830回の演算を要する。柴山のもつノートパソコンのスペックではそれなりの時間が必要であった。

「まだか?」

 慈道が柴山に尋ねた。

「はい。そのアスタリスク記号が消えるまで待っててください」

 あとは時間の問題だと理解したアリサは、ソファーに座っている二人の背後から画面を注視している。

「お、アスタリスクが消えたぞ」

 およそ三分を要した。

「そのようですね」

「次はどうする?」

「ウィンドウを切り替えてターミナルにしてください」

 慈道は慣れない手つきでGUIを操作する。ターミナルは jupyter notebook を実行中である。

「+のボタンを押してタブを開き、 cd Documents/nmopf/ と打ってください。そこで、 pdftex a.tex とすれば、PDFファイルが出来上がります。そしたらファインダー上でアイコンをダブルクリックして確認してみてください」

 慈道はこの本の数分で、一生分のコンピューター操作をしたのかもしれない。次第にではあるが、手際も良くなっているようである。

「これだな」

 慈道は、ついにPDFファイルを開いた。井上昭一が命をすり減らして遺した論文との対面である。当然だが、すべて英語である。

「どこかにプログラムのコードはありませんか?」

 アリサは言った。

「先輩、下の方を見てください」

「ああ」

 それらしい所にC言語で書かれたソースコードがあった。

「きっとそれですね。テキストエディットっていうソフトを開いて、そこにコピペを……」

「ファイル名は?」

「適当に。pf.cでいいと思います。再びターミナルで、 gcc pf.c です」

 コンパイルは一瞬で終わった。

「それで?」

「…… ./a.out と入力してください」

「分かった」

 ターミナルには“n?”と表示された。

「きっと、素因数分解したい数を入力すれば素因数分解してくれるんだと思います」

 慈道は 360 と入力した。すると、


   {2: 3, 3: 2, 5: 1}


と表示された。

「なるほど。 2^3・3^2・5 を表しているわけだな」

「もっと大きな数で試してもらえますか」

 アリサが慈道に命令する。

「だったら……例の公開鍵を試してみたらどうでしょうか? Safariの画面に戻って下さい」

「N をコピーすればいいんだな」

 慈道はもう一度“./a.out”を実行して、そこに公開鍵 N の値を貼り付けた。

「ここでEnterを押せば分かるんだな?」

「はい」

「これで素因数分解ができたら……」

「……RSAに脆弱性が見つかります」

 慈道は深呼吸をして画面と向き合う。

「慈道さん。早くお願いします」

 当然だが、アリサの方も急かしにくる。

「分かってる」

 慈道は、震えながらリターンキーを押しこんだ。

 しばらくは何も起こらない。

「だめか!」

 慈道は鼻息を荒げなら言った。

「いえ、まだプログラムは実行中です。本来だったら世紀をまたぐような計算です。これがもし、1時間とかでできたら、それだけでも大発見ですよ」

 落ち着かない慈道に対して、柴山の方が冷静であった。

「そ、そうだな」

 アリサは腕時計を見た。

「アリサ。どうする?」

 銃を構えた男が言った。

「少し待ちましょう。その間に二人を縛るわ」

「傷つけないって言ったよな」

 慈道はアリサを睨みつけながら言った。

「はい。だけど、ロープのあざくらいは勘弁してください」

 アリサは奥から井上の椅子を持ってきて、柴山に座るよう命じた。柴山は慈道に確認すると、黙ったまま頷かれた。柴山が抵抗することなく椅子に座ると、ロープを投げ渡され足首を縛るように言われた。柴山は渋々足首を縛る。その後、アリサは柴山に近づき、両手首、腹回りの順に縛り上げていく。

「本当に残念」

 柴山が切り出した。

「……私もです」

「あなたがいなくなったら、お義父さんはどうなるの?」

「……お願いですから、そこだけは触れないで下さい。これでも苦渋の決断だったんです」

「まだ間に合うんじゃないかしら。真実をお母さんに告白させて……三人でやり直せばいいじゃない」

「ここまできたら無理ですよ。彼もこのために手を汚し、苦汁を嘗めています」

「たとえ、不適切な経緯があったとはいえ、両親があなたを心の底から愛していることは変わらないわ」

 アリサはしばらく口をつぐんで、柴山の脚回りを縛り、ガムテープで口を塞ぐ。

「もう一つ椅子を持ってくるわ」

 アリサはそう男に告げると部屋を出て、縛るのに適した椅子をこしらえてくる。慈道は銃で脅されながら、いとも簡単に縛り上げられ、柴山と同様に口を塞がれてしまう。

 二人を縛り終えたアリサと男は一息つく。男は机に置いてある灰皿の横に座り煙草をふかし始め、アリサはソファーに座り、慈道が飲んでいたウイスキーの飲み残しに手をつけながら、ノートパソコンの画面を見つめていた。

 プログラムが動き出して30分ほど経過した時、ターミナルの画面に変化が起こった。

「あ!」

 アリサは声を上げる。

「ついにやったのか?」

 アリサはノートパソコンを持ち上げて、柴山に画面を見せる。ターミナルには


   {5858750904014301194923422446599664605418323: 1,

   192699477309773456265692929522049173728202541351

   244235619750379560452058567337595303328466380167

   493272058251645008821995843437415915867894758483

   712000072419639579783638985223409434535584219241

   491435852697972529577481968461335865670030294340

   033382099881950319086278357200328146950614428131

   830867517412264521636463089863090246500484552031

   059054518840189257106970826300528440517355265267

   370079204061269823713183017507084660487194670000

   702941613149149294088363548304949436623846690696

   231476865483426854334080207886483721723791995547

   015446736608185864904101184317040718974289227428

   357223374145277712575249912148213891770864556506

   674237589462138784540331734292612258094728170807

   6482638380083: 1}


という画面が出力されていた。

「これでいいのね?」

 柴山は悔しそうに頷いてみせた。

「やったわ」

 アリサはノートパソコンをソファーの上に置いて、男と向き合う。

「成功なんだな?」

「ええ。ついにやったわ」

 アリサは男に抱きつき、見境なく激しい口づけをしあう。

 慈道と柴山はなんとも複雑な心境でその二人の淫らな行為を見守っている。

 ふと柴山と目が合ったアリサは、口づけをやめた。そして、柴山に近づきガムテープをゆっくりと、痛覚に限りなく激を与えないように剥がす。

「柴山先輩。最後に迷惑をかけますが、このパソコンは頂いていきます。このプログラムは決してシェアしてはいけないので」

「う、嘘……」

「勿論、ただとは言わないぜ。迷惑料だ」

 そう言って男はポケットから万札の束をテーブルに置いた。

「100万だ」

 50億が手に入るのだから安い手間賃であろう。

「先輩。最後に、このパソコンのパスワードだけ教えてくれませんか?」

「……」

「それさえ教えてくれれば、二度と二人の前に姿を表すことはありませんから」

「……」

「先輩。お願いします」

「そ、その……今、私がパスワードを変えるっていうのは?」

「? 申し訳ないですけど、今、このパソコンに触れさせるわけにはいきません」

「ほら、さっさと言っちまえよ」

 男が痺れを切らして慈道に銃口を向けた。

「……p」

 反射的に柴山はパスワードの第一文字を呟いた。

「それだけはないでしょう?」

 柴山は決まりが悪そうに口を開いた。

「……a、i、s、e、n、0、6、2、8。以上よ」

 柴山は顔を真っ赤にしている。

「なるほど」

 アリサは無邪気に笑い出した。慈道はテープを貼られて言葉を発することができず、呆れたように宙を仰いでいる。自分の名前や誕生日ではなく、他人の名前でもない。ある意味で割り出すことが難しいセキュアなパスワードといえる。

「こんな状況で言うのもなんですけど、お二人は本当にお似合いのカップルだと思いますよ」

 アリサは愉快そうな、それでいて淋しそうな表情を見せる。

「え?」

 そんなアリサの発言に柴山は硬直する。

「二人には巻き込んでしまって本当に申し訳なく思ってます。明日から普通の生活を送ってください。そして、どうか末永く……」

 アリサがそう言ってノートパソコンを回収すると、男は荒々しくガムテープを柴山の口に貼り直した。そしてバッグの中から薬品の瓶とガーゼを取り出す。クロロホルムである。

 慈道と柴山はそのガーゼを当てられて気絶してしまった。

 アリサと男は部屋の照明を消して、井上昭一の旧邸を後にした。もすっかり落ち込んでいた。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る