Day103 - 生成AIで作るセキュリティツール200
Acrostic CipherLabは、複数行テキストから特定位置の文字を抽出し、隠されたメッセージ(アクロスティック)を可視化する教育向けツールです。
行頭文字の抽出だけでなく、行末からの位置指定や記号を基準とした抽出にも対応しており、CTFや暗号解読の学習に活用できます。
👉 https://ipusiron.github.io/acrostic-cipherlab/
ブラウザーで直接お試しいただけます。
CypherのSTEGANOGRAPHY PUZZLE 01を解読
アクロスティック(Acrostic) とは、詩や文章の各行の先頭文字(または特定位置の文字)を縦に読むと、別の単語やメッセージが浮かび上がる技法です。 古代ギリシャ・ローマ時代から用いられ、文学的表現や秘密通信の手段として活用されてきました。
暗号学の観点では、アクロスティックは分置式暗号(Transposition Cipher)の位置抽出型の一種に分類されます。 分置式暗号は文字の並び替えによって秘匿を行う方式であり、アクロスティックはその中でも「特定位置の文字を抽出して秘密メッセージを構成する」手法に該当します。
なお、分置式暗号については以下も参考になります。
あしたは晴れるかな
いつもの道を歩く
しずかな朝の空気
てんきがいいといいな
各行の先頭文字を抽出すると「あいして」というメッセージが現れます。
本ツールは2つのタブで構成されています。
各行の行頭1文字を抽出して連結する基本的なアクロスティック解読機能です。
- 入力テキストを行ごとに分割
- 各行の先頭1文字を取得して連結
- 空行はスキップ
より柔軟な位置指定による文字抽出が可能です。
| モード | 説明 |
|---|---|
| 行頭から n 文字目 | 各行の先頭から n 番目の文字を抽出 |
| 行末から前に n 文字目 | 各行の末尾から n 番目の文字を抽出 |
| カンマ・ピリオド前の n 文字目 | 最初に見つかった , または . の n 文字前を抽出 |
- タブを選択(「アクロスティック」または「拡張アクロスティック」)
- テキストエリアに複数行のテキストを入力
- 拡張タブの場合は、抽出モードとnの値を設定
- 「抽出する」ボタンをクリック
- 結果が出力欄に表示される
入力テキスト:
あいうえお
かきくけこ
さしすせそ
基本タブの結果: あかさ(各行の1文字目)
拡張タブ(行頭から2文字目)の結果: いきし
本ツールは、ワードサーチパズルで縦方向に隠された単語を探す用途にも利用できます。 「行頭からn文字目」モードでnを指定すれば、グリッドの任意の列を縦に読み取ることが可能です。
CATXYZ
OPQRST
DEABCD
EFGHIJ
上記で「行頭から1文字目」を抽出すると CODE が得られます。
CTF競技のステガノグラフィー問題やミスク問題では、テキストに隠されたフラグを探す場面があります。 本ツールを使えば、各行の特定位置から文字を素早く抽出し、隠しメッセージの有無を確認できます。
SNSや掲示板では、一見普通の文章に見せかけて各行の先頭文字で別のメッセージを伝える「縦読み」がしばしば用いられます。 本ツールで行頭文字を抽出すれば、そうした隠しメッセージを簡単に発見できます。
acrostic-cipherlab/
├── index.html # メインHTMLファイル
├── script.js # JavaScriptコード
├── style.css # スタイルシート
├── README.md # 本ドキュメント
├── CLAUDE.md # Claude Code用ガイド
├── LICENSE # MITライセンス
├── .gitignore # Git除外設定
├── .nojekyll # GitHub Pages設定
└── assets/ # 画像リソース
└── screenshot.png # スクリーンショット
- ソースコードのライセンスは
LICENSEファイルを参照してください。
本ツールは、「生成AIで作るセキュリティツール200」プロジェクトの一環として開発されました。 このプロジェクトでは、AIの支援を活用しながら、セキュリティに関連するさまざまなツールを100日間にわたり制作・公開していく取り組みを行っています。
プロジェクトの詳細や他のツールについては、以下のページをご覧ください。
