表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
凛として駒娘──裏見香子の大学将棋物語  作者: 稲葉孝太郎
第51章 失われた葉書(2017年5月26日金曜)
323/489

314手目 開発現場の嘆き

※ここからは、松平まつだいらくん視点です。前話の前日の話になります。

 人通りの少なくなった、深夜の大通り。

 俺とばんは、首都工しゅとこう近くのコンビニへ買い出しに出かけていた。

 明日も講義はある。だが磐は、今日中にプログラムを組むと言って聞かなかった。

「松平、こういうのは気分の問題だぜ」

 磐はローラーブレードで滑走しながら、買ったばかりのアイスコーヒーを飲んだ。

「だけど仕様もまだだろ」

 俺がそう言うと、磐は急ブレーキをかけて半回転した。

 危ない。

「俺の頭のなかでは、だいたいできあがってる」

 マジか?

 俺はどういうふうに組むのかたずねた。

「言語はCかC++でいこう。文字を数値計算できるし、そこそこ速い」

「それならCにしてくれ。制御で触ってる」

「オッケー。基本的な発想は単純だ。暗号文に対して、鍵候補を……」


 a -> ... z -> aa -> ... -> zz -> aaa -> ...


「という風に、回してやればいい」

 そこは昼間の会議で出たアイデアだ。

 さすがに俺も工学部だから、どういう感じで組み始めるかもみえた。

「暗号文に鍵を当てる関数を組んで、それをfor文で繰り返せばいい」

「なんだ、松平もわかってるじゃん」

「問題は平文のチェックだ。でたらめな文字列かどうかを、見分けないといけない」

 ようするに、こうだ。今からやる作業は、アルファベットをAから順番に総当たりさせる。仮に鍵が8文字だとしても、26の8乗。俺の計算では──


 2088億2706万4576通り


 という、とんでもない組み合わせになる。これを人間の目でチェックするのは不可能。平文がきちんとした文章になっているかどうかも、コンピュータにチェックさせるしかない。そのチェック方法が思いつかなかった。

 ところが磐は、この点に自信があるらしかった。

「そんなに心配するほどじゃない。とりあえず、平文は英語か日本語にしぼるぞ」

「ほかの言語の可能性は考えないのか?」

「バージニアがヒントなら、英語が第一候補だろ」

 そこは反論できないが……まあ、地球上の言語全部はどうせチェックできない。

 どこかで妥協するしかなかった。

「まず、どうやって英語をチェックさせるんだ?」

「英文校正アプリを使うのさ」

 俺は、なるほど、となった。

 正しい英文かどうか、調べるアプリはいくらでもありそうだ。

「だけどアクセス規制されないか? 1秒で何十、何百とチェックさせるわけだろ?」

「あー、それじゃ足りないな。仮に1秒で100個チェックさせても、1日で800万と6400。これで26の8乗を割ったら、だいたい2万4000日かかる。俺たちが先に死んじまう」

 俺は脳内で暗算してみた──たしかにそれくらいになる。

「逆算すると……2週間で終わらせるには、1秒で17万以上処理させないといけない。1ヶ月でも9万弱。そんなアクセスを許すアプリやWebツールがあるとは思えないが」

「だいじょうぶ。さっき検索したら、英文校正ツールのオープンソースをみつけた。機能は誤字チェックしかないが、俺たちの目的はそれだけだから十分だ。それを電動研のメモリ64ギガバイトPCちゃんたちで、並列処理させればいい。爆熱になるが、水冷式だからノープロブレム」

「部屋が真夏日になりそうだな」

「エアコンの電気代も、どうせ大学持ちだ」

 だいじょうぶか?

 あとで大学から大目玉を食らうのだけは、かんべんして欲しい。

 とはいえ背に腹は代えられないから、その案を俺は飲んだ。

 ここでサークル棟に到着。俺たちは電動研の部室にもどった。灯りはつけっぱなし。パソコンのディスプレイには、テキストエディタの黒い画面が見えた。

 俺はカップラーメンにお湯を注ぎ、それから会話を再開した。

 今度は日本語だったときのケースをたずねる。

「日本語ならヘボン式ローマ字だろ? ヘボン式ローマ字の校正ツールってあるのか? しかもオープンソースで?」

「ヘボン式ローマ字は統計的に解析できる」

「というと?」

 磐はホワイトボードに一文を書いた。


 BANKAZUMAHASYUTOKOUNOACEDESU


 こういうところでアピールしなくてもいいだろ。

「この文章がどうしたんだ?」

 磐は赤ペンで一定の文字に矢印をつけた。

「AAUAAUO……母音?」

 そうだ、と言って、磐は赤ペンでホワイトボードを叩いた。

「日本語は子音+母音の繰り返しが多い。これを統計的に調べる」

 俺は感心した。

 もちろん子音+母音でないケースもある。NKは子音が連続しているし、OUは母音が連続している。だが、統計的には子音+母音が多い。その割合を調べて、誤差を設定し、その範囲に収まっているものに限定すればいい。

 さらに、俺にもアイデアが浮かんだ。

「QQ、XXみたいに、ヘボン式ローマ字でありえないのは弾いてもいいな」

「たしかに。そういうフィルターも入れておくか」

 俺たちは夜食のカップラーメンを食べて、さっそく作業にとりかかった。

 ふたりで1台ずつパソコンを使い、開発プラットホームでコミットしながら作業した。

 日付が変わる頃には、鍵を回すプログラムが完成した。

 8割方、磐のおかげだった。

 しかしここからが問題だった。英語と日本語のチェックシステムを構築しないといけない。このレベルになると、俺にはよくわからなくなってきた。

 オープンソースの中身を見ても、なにをしているのか判然としないのだ。

 とりあえず磐の指示に従って、依頼された変更をほどこしていく。

 ところがそれもだんだん行き詰まって、俺はギブアップした。

「すまん、俺の実力だとここが限界だ」

「おいおい、丸投げか?」

 俺はもういちど謝って、のこりの部分は引き受けてもらうことになった。

 カタカタと、キーボードを打つ音だけが聞こえる。

 なにもしないのはさすがに悪いと思って、ヘボン式ローマ字で使わない文字列リストを作った。

 BBBみたいな同じ子音の3連続は、わりと弾ける。NNNは例外だ。

 2連続の同じ子音は、なるべく残しておいた。SHIPPAIは日本語だがPP。

 QとXはどうするか……1文字くらいは紛れ込む可能性があるか?

 例えば会社名が出てくるかもしれない。弾くのはQQとかXXあたりにしておこう。

 俺はリストがけっこうな量になったので、

「案外、総当たりでも時間はかからないかもな。パターンはだいぶ減らせる」

 と告げた。

 すると磐は、ディスプレイとにらめっこしたまま、

「なあ、松平、折口研おりぐちけんってなに作ってるんだ?」

 と、いきなり質問を飛ばしてきた。

「医療用ナノマシンの研究をしてるらしい……が、俺は直接関わってない」

 俺が担当しているのは、シミュレーションデータを収集したり、3Dプリンタで大きめの見本を製作して、それを学外のひとに見せたりする役だった。2年生で、まだろくな回路も書けないのだから、しょうがないと言えばしょうがない。1年の平賀ひらがのほうが、まだマシなものを作れる、というレベルだった。

 それを聞いた磐は、

「カネはある感じなんだな」

 と言った。

「カネ? 予算のことか? 医療系だから出やすいとは聞いた」

 科研費以外にも、外部資金をいくつか取っている、という話だった。

 磐は手を休めて、大きく背伸びをした。椅子にもたれかかる。

「首都工だと、卒研は4年生からだしなあ。俺も大学の機器を使い倒したいぜ」

「うちもそうだぞ。正式な卒研は4年生だけだ」

「そうなのか? だったら違法じゃね?」

「ボランティアだからな。単位は出ない」

 コピペレポートがバレた結果なことは、黙っておく。

 磐はテーブルを指でこづいて、リズムをとった。

 ずいぶんと古びたテーブルだったから、脚の部分がガタガタと揺れた。

「なんで日本は、研究費をこんなにケチってるんだろうな。首都工の施設もボロボロだ」

「そりゃ経済が伸びてないし、高齢化で医療費がかさんでるからじゃないか」

 磐は椅子にもたれかかったまま、キャスターをくるくるさせて回転した。

 視線は虚空を見つめている。

「……こうなったら、N資金で一発当てるしかない」

 おいおい、俺はタメ息をついた。

「N資金なんて詐欺話だと思うがな」

「松平も、ちょっとくらい期待してるだろ」

「してない」

「ほんとに? 10億あったら、ひとり1億はもらえる」

 俺は夜食のチョコレートのふくろを開けた。

 磐に向けて、一個放り投げる。

 磐はうまくキャッチした。

「俺と裏見うらみ大谷おおたにで、もう話し合ってある。金が実在しても着服はしない。銀行に眠ってようが山に埋めてあろうが、手を出したら犯罪だ」

 磐は肩をすくめた。

「たしかに……それじゃ、開発現場は割り当てられた仕事だけやりますか」

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
cont_access.php?citi_cont_id=891085658&size=88
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ