"暗号"ってロマンがありますよね。
かくいう私もそのロマンに惹かれ、いつしか「自分で暗号を作ってみたい」と思うようになりました。
そして今年の夏、一つのアイデアを思いつきました。
「これはすごいものを思いついてしまったかもしれない…!」とウキウキで実用性を調査すると、残念ながら思いのほか低かったです。
しかし、一度思いついたアイデアを実現しないのはもったいないとの思いから、ここに実用性の低い暗号を解読するツールを作成しました。
①GitHub Pagesで公開している、https://sotomono.github.io/Flick-Code_DecryptionTool/ にアクセスしてください。
②暗号入力フォームが開かれますので、そこに解読したい暗号文を打ち込んでください。
③少し待つと復元された元の文章が表示されます。復元パターンが多い場合、表示が遅くなります。
-
サイト閲覧の推奨環境について:開発はmac bookでGoogle Cromeで行いました。そしてAndroidのスマホでテストもしました。他のデバイスやブラウザは試していません。もしかしたらうまく表示されないかもしれません。
-
フリック暗号作成の推奨環境について:Gboardアプリを使った文字入力のみ対応しています。
私が思いついた暗号は「フリック暗号」と名付けました。一体なんなのかというと、「スマホを使って簡単に作れる暗号」です。
作り方は単純。
①まずスマホを開き、②文字入力画面を開く。③英語入力に切り替える。④普段日本語入力でするようにフリック入力する。
この操作を行うと、「こんにちは」は「2:khm」に、「ハローワールド」は「m9;';y4」となり、一見すると謎の文字列に変換されます。
簡単に作れて解読が難しそう。なかなかいい暗号ではないでしょうか。しかし深く追求すると、いくつもの難点が見出され、ボロの多い暗号であることが分かりました。
日本語のフリック入力ができるかつ、画面を見ずに入力できるほど慣れていないと、操作は難しいです。
実はスマホのキーボードアプリにはいくつか種類があり、アプリごとに動き・配置・判定は違います。私が使っているGboardというアプリでは「こんにちは」は「2:khm」になりますが、他のアプリでは全く異なってしまいます。
Gboardでは、か行のフリック入力は
タップで「か」、左スライドで「き」、上スライドで「く」、右で「け」、下で「こ」
となっており、英語入力では「ABC」キーがか行の位置にあります。そして「ABC」キーのフリック入力は、
タップで「A」、左で「B」、上で「C」、下で「2」となっており、右スライドに文字がありません。しかし、一応右スライドをすると「2」を入力したことになります。
つまり、フリック暗号では、か=A、き=B、く=C、け=2、こ=2となり、暗号を解読する時、「2」とあったら「け」と「こ」が該当するため、完全な復元が難しいのです。
これは英語入力で右スライドをするときによく起こります。
先程、英語入力では右スライドに文字が存在しないことがある例を挙げましたが、これはほとんどの英語キーで同様です。
そしてそのキーを右スライドすると、打ち込んでいる文章の青いマーカー(文字変換候補)から外へ出てしまうのです。 これにより、「むねん」のフリック暗号を作る時、自然に入力すると「r:5」となってしまいます。(本来は「r5:」)
・・・このように、フリック暗号には難点が多く存在し、実用的とは言えない暗号です。
ですが、せっかく思いついた暗号です。解読ツールもあることですし、使う機会があれば(無い)、積極的に使っていきたいと思います。
・index.html
・script.js
・ assetsフォルダ
このプロジェクトは、JavaScriptのコードをChatGPTによって生成しましたが、
MITライセンス のもとで公開しています。
自由にご利用ください。(詳しくは「LICENSE」ファイルをご覧ください。)
また、このプロジェクトにはTurboWarpというツール(ScratchのMOD)を使用しました。TurboWarpのライセンスについては「script.js」のファイルをご確認ください。
作ったひと:sotomono(19)
今年(2025年)、プログラミング言語を勉強しようと思い立ち、試行錯誤の末 一つのWebサイトを作ったものの、未だ使いこなせる言語はゼロ。 厳密にはScratchでプログラミングができます。今回のツールも、大部分はScratchで作りました。 来年こそはプログラミング言語習得に力を入れます。