Module_038
「さあさあさあっ! ここがこの商会の心臓部、精霊工房よ!」
「うわっ……ホントにあるよ……」
ユーリアとイルネから話を聞いたセロは、早速彼女らに案内され、商会内のある一室に通される。二人に促されて中に入ると、そこはまるで物置のような部屋であった。
部屋の中央には大きなテーブルが設置され、その上にユーリアが持ってきたものと同じ包みが山と積まれている。50という数は冗談ではないらしく、机の上に乗り切らない包みが机の縁に立てかけるようにして置かれていた。
また、床には製作の過程で記録された精霊構文のメモが散らばり、壁際の書棚には関連書籍がぎゅうぎゅうに押し込まれている。中にはそこから引っ張り出したと思われる書籍がページを開いたまま机の上に置かれていた。
(工房というより、どこぞの研究室って感じだな……)
室内の雑然とした様子に、セロはそっと心の内にぽろりと言葉を漏らした。
「フッフッフッ……驚いたぁ? この部屋こそが商会の要であり、私の工房でもある部屋よ! ゆっくり説明したいんだけど、さすがに時間が惜しいからね。詳しい説明は後にして、早速作業に取り掛かろうか」
(アンタがこの部屋の管理者なのかよ……何というか、ダメな大人の見本みたいな部屋だな)
まるで片付けられていない工房内を見回したセロは、小さくため息を吐いた。そんなセロの心の内を察したのか、傍らに立っていたユーリアがそっと彼の肩に手を置きながら何度も小さく頷く。
(苦労してるんだな、アンタも……)
ほろりと涙が出そうになるのを堪えつつ、セロはイルネの呼びかけに応じて彼女の隣へと進み出るのだった。
「……セロ、先ほどユーリアが言ったように、これらの精霊武具には安易にその中身が書き換えられないようにロックが施されているの。精霊武具のメンテナンスだけならばまだしも、このロックを解除するのが一番の難題でね。解除するための専用の道具をまずは製作しないといけないわね」
イルネはそう言いながら机の上に広げられていた書類を退けてスペースを確保すると、そこに一枚の大きな紙を広げた。
「それで……これがその解除するための精霊導具」
彼女が机の上に広げたのは、精霊導具の設計図であった。この設計図によれば、ロック機構の解除を組み込んだ箱のような本体から伸びる二本の端子があり、それを対象の武具に繋げて起動させる仕組みになっている。
また、肝心なロック解除の仕掛けだが、それは、オーソドックスな「ブルートフォースアタック(総当たり攻撃)」が用いられているのが設計図上から分かった。
ブルートフォースアタックとは、全ての文字・ないしは数字で、考えられる全ての組み合わを、 順々にひたすら試していく方法である。仕掛けとしては単純であるものの、パスワードの文字列が長い場合や使用する文字種が多い場合には、解除するまでに時間がかかってしまうというデメリットも存在する。
(まぁ、聞く限り使用するのは数字のみだし、桁数もそれほど多くはない。これなら比較的短時間でーー)
だが、イルネと一緒にその設計図を眺めたセロはーー
「……って、オイ。いくら何でもコレは大掛かり過ぎだろ。第一、解除のための精霊構文が長すぎる」
一瞬ピシリと表情を強張らせると、次には呆れた顔で彼女の設計図にダメ出しをする。
「大掛かり過ぎる? 構文が長すぎる……ですって? だけど、解除するための構文はこれ以外にーー」
「いや、仕掛け自体はこれでいいだろうさ。でも、解除するといっても、単に数字を当て嵌めていくだけなんだろ? なのに、何でいちいち全てのパターンを構文内に記述する必要があるんだ?」
さも当然だと言わんばかりに告げたセロの言葉に、イルネは目を丸くして聞き返す。
「えっ? いや……8桁もあるのよ? 考えられるパターンは『00000000』から『99999999』までの1,000,000,000通りになるじゃない。その中で、たった一つの組み合わせしか解除できない。だからこうして構文内にその記述をーー」
そこまで聞いたセロは盛大なため息を吐きながらイルネに告げる。
「もしかして、その気の遠くなるような数字の組み合わせを書くためだけに俺が必要なのか?」
「えっ? ち……違う、の?」
キョトンとした顔で発せられたイルネの言葉に、セロは顔を手で覆いながら呻く。
(あぁ、うん。そうだった……この世界のプログラミング技術はこのレベルなんだっけか。変数化の概念や基本構文の概念が無いと、一つの処理を記述するのにエライ時間がかかるんだよな……)
かつて初めて精霊構文を目にした時の落胆を思い起こしながら、セロは「仕方がない」と思い直してイルネに説明する。
「いいか? そのやり方じゃあ残りわずかの時間でどうにかできるはずもないだろ。こういう『総当り攻撃』の仕掛けは、こうするんだ」
ガリガリと頭を掻いたセロは、広げられた設計図を裏返すと、机の端に置かれたペンを持ち、まるでスイッチが入ったかのように猛烈な勢いで構文を書き連ねていく。
「ーー変数の定義域、初期設定域、処理構文の設定域は……こんなもんだろ。あとはキモになる反復処理と、条件分岐、エラー処理を組み合わせて……」
イルネが横で驚く様を見ることなく、セロは流れるように一気に精霊構文を書き終えた。
「……よし、こんなもんか。それで、だ。コイツのキモは、入力するパスワードを『変数化』することと、『反復処理』にある」
「変数化と反復処理……?」
セロの言葉に、イルネは眉根を寄せつつ鸚鵡返しで呟く。対するセロは、彼女の表情から理解しきれていないことを察すると、さらに詳しい説明を始めた。
「いいか? 今回のパスワードは全て数字だ。なら、その初期値を変数化してしまえば、あとは今の数字に1ずつ足せばいいだけだ。パスワードと合致した組み合わせが出たら、反復処理から抜けるようにすれば、その後は照合しなくて良くなるから、時間も短く済む。また、処理構文そのものが短くなってるから、解除するまでの時間も短縮できるはずだ。まだ試していないので分からないが……おそらく一件あたり20秒もかからないくらいで終わると思うぞ?」
ざっと書き終えた構文の見直しを終えると、セロは口をポカンと開けたまま立つイルネに、つらつらと自分の組み上げた精霊構文を説明していく。
彼の言うように、この処理方法ならばイルネが当初見せたものよりも大幅な時間短縮が見込められる。
なぜならば、0から9という順番でアタックしていったために、最後の組み合わせまで試さなくても正しいパスワードが見つかるからだ。また、入力するパスワードも単純にカウントアップとしているほか、パスワードを当て嵌める工程においても、反復処理を一つ記述して終えているため、いちいち構文内に8桁の組み合わせ全てを記述する必要もない。
「今回幸いだったのは、使用する文字種が特定できていたのが大きいな。総当たり攻撃で解読する場合、パスワードがどんな文字種を利用しているかがわかると、解読が容易になる……つまりは検索数が減るからな。ここまでくれば、あとはどうにかなるだろう?」
「えっ!? えぇ……一番の難所はーーアッサリと終わってしまったからね」
説明を終えたセロに、イルネは言葉を詰まらせつつもなんとか返事をする。
「ざっと見た感じ、精霊構文そのものが半分以下にまで押さえられたから、装置自体も小型化するのが可能だよな?」
「そ、そう……ね。加えて、小型化したことで動力源となる精霊結晶も当初より少なく済みそう」
改めてセロの書いた精霊構文を眺めたイルネは、嬉しそうに呟く。
「なら、結構な量もあるから、半分ずつにしないか? 装置の仕組みは把握したから、こっちはこっちで作れるし」
「お願いしていいかしら。持ち込まれた精霊武具は大きなものもあるの。ここを二人で使うには狭いだろうから、別々の部屋で作業するのが効率的よね」
「了解。なら、俺は別室で作業することななするよ。ここより狭くても構わないから、作業できる部屋を教えてくれ。後で装置の材料とメンテナンスする武具を取りに来るから」
セロの提案にイルネも頷き、彼女はユーリアへ案内するように頼む。ほどなくしてユーリアに連れられ、工房から出たセロの姿が見えなくなった。




