T

Text Machine

強力なテキストツールを、ブラウザで

スキュタレー暗号

古代スパルタの棒を使う暗号であり、史上最古の軍事暗号装置でもあるスキュタレー暗号を暗号化・復号しましょう。選んだ太さの棒にメッセージを巻き付け、棒に沿って書き込み、かき混ぜられた順序で読み出します。直径を調整すると、グリッドがリアルタイムに形づくられる様子を眺められます。すべての処理はブラウザ上で実行されます。

棒の設定

直径

4

直径が暗号のキーです: 棒の周りに一周で何文字が巻き付くか、すなわちグリッドの列数を決めます。送信者と受信者は同じ直径を使わなければなりません。

平文
暗号文

上にテキストを入力すると、スキュタレー暗号の結果がここに表示されます。

スキュタレーのグリッド図

メッセージ IAMHURTVERYBADLYHELP を4文字分の棒に巻き付けた例です。上にあなた自身のテキストを入力すると、グリッド上で確認できます。

1
2
3
4
I
A
M
H
U
R
T
V
E
R
Y
B
A
D
L
Y
H
E
L
P

スキュタレー暗号 の使い方

  1. 1

    暗号化か復号かを選ぶ

    平文をスキュタレー暗号文に変えるなら暗号化を、暗号文から元のメッセージを復元するなら復号を選びます。

  2. 2

    棒の直径を設定する

    直径を選びます。これは棒の周りに何文字が巻き付くか、したがってグリッドが何列使うかを決めます。復号するには、暗号化に使われたのと同じ直径を設定してください。

  3. 3

    テキストを入力または貼り付ける

    メッセージを入力します。入力すると同時に暗号が自動で実行され、下のグリッド図が、あなたのテキストが棒にどう巻き付くかを正確に示すように更新されます。

  4. 4

    結果を読み、確認し、共有する

    変換されたテキストが即座に表示されます。グリッド図を開いて列がどう読まれるかを確認し、結果をコピーしたり、テキストファイルとしてダウンロードしたり、あなたの設定とテキストをそのままにツールを開き直すリンクで共有したりできます。

スキュタレー暗号を理解する

スキュタレー暗号とは何ですか?

スキュタレー (スキタレーとも綴られます) は、古典的な転置式暗号であり、歴史に知られる最古の暗号装置です。古代ギリシア人、とりわけスパルタ人が、紀元前7世紀ごろから軍事暗号として用いました。スキュタレーとは、決まった太さの木の棒にすぎません: 羊皮紙や革の細長い帯をその周りに螺旋状に巻き付け、棒の長さに沿ってメッセージを書き、帯をほどくと文字はばらばらの順序で残り、同じ直径の棒に巻き付けたときにのみ再び意味をなします。

あらゆる転置式暗号と同じように、スキュタレーは換字式暗号のように文字を別の文字に置き換えることは決してありません。すべての文字をそのまま保ち、順序だけを変えるため、暗号文は常に元のメッセージのアナグラムになります。送信者と受信者が共有する唯一の秘密は、棒の太さです。

スキュタレー暗号の仕組み

棒を紙の上で再現する最も簡単な方法はグリッドを使うことです。棒の直径が、一周で周りに何文字収まるかを決め、その数がそのまま列数になります。メッセージはグリッドに1行ずつ、左から右へと書き込み、次の行に移る前に各行を埋めていきます — まさに帯が棒に螺旋状に巻き付いていくのに沿って書いていくのと同じです。メッセージ全体を配置したら、最初の列をまっすぐ下へ、続いて2列目へ、と読み進め、列をつなぎ合わせて暗号文を作ります。

すべての文字が関与するため、スペースや句読点もそのままの位置に残されることなく、文字と同じようにあちこちへ移動します。文字数は決して変わらず、これが転置式暗号の特徴です。行に沿って埋めたグリッドの列を下へと読むことが、かき混ぜられた順序を生み出します — そしてそれは、物理的な帯をほどく動作とまったく同じものです。

実例で見る

メッセージ IAMHURTVERYBADLYHELP を、周りに4文字を収める棒で取り上げましょう。すると、グリッドは4列になります。20文字を行ごとに書き込むと5行が埋まります: IAMH、次に URTV、次に ERYB、次に ADLY、次に HELP。これが棒に沿って書かれたメッセージです。

では、各列を順にまっすぐ下へ読みます。1列目は IUEAH、2列目は ARRDE、3列目は MTYLL、4列目は HVBYP と綴られます。つなぎ合わせると暗号文は IUEAHARRDEMTYLLHVBYP になります。元のすべての文字がそのまま残っており、新しい順序にかき混ぜられているだけで、結果は入力とまったく同じ長さです。

スキュタレー暗号を復号する方法

復号するには、同じ直径の棒 — つまり同じ列数 — が必要です。暗号文の長さとその列数から、グリッドの高さがどれだけだったか、そして各列に何文字属するかが、メッセージがちょうどの長方形を埋めなかったときのわずかに短い列も含めて正確にわかります。暗号文をそれらの列に切り分け、横に並べ、グリッドを行に沿って読み戻すと、元のメッセージを復元できます。

このツールはそのすべてをあなたの代わりに行います。復号に切り替え、暗号化に使われたのと同じ直径を設定し、暗号文を貼り付けてください。直径がわからない場合は、それぞれの値を順に試すだけで構いません — 妥当なものはほんの数えるほどしかありません — 出力が意味の通る言葉として読めるようになるまで試してください。

直径とキー

棒の直径が、スキュタレー暗号のキーそのものです。太い棒はその円周の周りにより多くの文字を収め、列数が増えて異なるかき混ぜを生みます。細い棒はより少なく収めます。周りに1文字だけしか収まらない直径は何もしません。1列だけでは並べ替えるものがないからです。したがって有用な範囲は2から始まります。

この暗号には巧妙な双対性が隠れています: ある長さのメッセージをある直径で暗号化することは、対応する行数で復号することと同じです。グリッドを列に沿って下へ読むことと、行に沿って読むことが、互いに逆の操作だからです。これこそが、送信者と受信者が一つの数 — 二人がともに持つ棒の太さ — についてだけ合意すればよい理由です。

スキュタレー暗号を破る方法

スキュタレーの鍵空間はごくわずかです。唯一の秘密は一つの小さな数だけなので、攻撃者は単に妥当なあらゆる直径 — 2、次に3、次に4、と — を試し、それぞれで復号して、意味の通る結果を読み取ればよいのです。この総当たり探索は手作業でもほんの一瞬で済み、コンピュータなら一瞬です。メッセージの長さが試す価値のある列数を制限するため、作業量は最初に見えるよりもさらに小さくなります。

この暗号は純粋な転置なので、文字そのものは手つかずのまま残り、暗号文の文字頻度は通常の言語とぴったり一致します。それ自体が手がかりです: 文字の統計が完全に正常でありながら意味をなさないテキストは、スキュタレーのような転置式暗号が使われている強い兆候であり、解析者はそこで文字ではなく順序の復元に集中できます。

スキュタレー暗号は安全ですか?

いいえ。一つの小さな数だけをキーとし、総当たりで素早く破られるスキュタレーは、秘密に保たれなければならない情報に対して実質的な保護をまったく提供しません。古代におけるその価値は、強度ではなく、戦場での速さと手軽さにありました。一部の歴史家は、その主な利点は秘匿性と同じくらい認証と素早い取り扱いにあったと論じています。

今日、スキュタレーは教育と娯楽のために重んじられています。転置という考え方を紹介する理想的な方法であり、パズルや脱出ゲーム、キャプチャー・ザ・フラッグの課題にとって満足のいく仕組みであり、暗号史の手に取れる一片でもあります。本物の安全性のためには、代わりに AES のような現代的なアルゴリズムが使われます。

よくある質問

スキュタレー暗号とは何ですか?
スキュタレーは、古典的な転置式暗号であり、知られる限り最古の暗号装置です。古代スパルタ人は、決まった太さの棒に羊皮紙の帯を巻き付け、棒に沿ってメッセージを書き、帯をほどいて文字をかき混ぜられた順序に落とし込みました。文字を置き換えることはなく、順序を並べ替えるだけなので、暗号文は平文のアナグラムになります。
スキュタレー暗号はどう動きますか?
棒を、その列数が棒の周りに収まる文字数に等しいグリッドとして再現します。メッセージをグリッドに1行ずつ書き込み、続いて各列を順にまっすぐ下へ読み、列をつなぎ合わせて読み戻します。行ごとのグリッドを列ごとに読むこのやり方が順序をかき混ぜます。帯をほどく動作とまったく同じです。
スキュタレーの例を見せてもらえますか?
周りに4文字を収める棒を使うと、メッセージ IAMHURTVERYBADLYHELP は IUEAHARRDEMTYLLHVBYP になります。行ごとに書くと IAMH、URTV、ERYB、ADLY、HELP という行になり、4列を下へ読むと IUEAH、ARRDE、MTYLL、HVBYP が得られます。元のすべての文字がそのまま残り、ただかき混ぜられているだけで、長さは変わりません。
スキュタレー暗号はどうやって復号しますか?
復号に切り替え、暗号化に使われたのと同じ直径を設定してから、暗号文を貼り付けます。暗号文の長さと直径から、ツールは各列がどれだけ高かったかを割り出し、暗号文を列に切り分け、横に並べ、グリッドを行に沿って読み戻して元のメッセージを復元します。
スキュタレー暗号における直径とは何ですか?
直径がキーです。一周で棒の周りに何文字が巻き付くか、すなわちグリッドの列数を決めます。太い棒は列が増えて異なるかき混ぜを生み、細い棒は列が減ります。直径が1のときは何もしないので、有用な範囲は2から始まり、送信者と受信者はともに同じ値を使わなければなりません。
なぜスキュタレーは転置式暗号と呼ばれるのですか?
転置式暗号は、新しい文字を代入するのではなく、文字の順序を変えることでメッセージを隠します。スキュタレーはまさにそれを行います: 元のすべての文字を保ちつつ、帯を棒に巻き付けることで決まる新しい位置へとそれを移すため、結果は同じ文字の並べ替えになります。
スキュタレー暗号はスペースや句読点を変えますか?
はい。転置式暗号であるため、すべての文字が関与し、スペース・数字・句読点もそのままの位置に残されることなく、文字とともに並べ替えられます。文字の総数は常に同じままです。歴史上の多くの利用者はまずスペースを取り除きましたが、このツールはそれらを保つので、復号するとあなたのテキストがそっくり復元されます。
スキュタレーとレールフェンス暗号の違いは何ですか?
どちらも小さな数をキーとして文字を並べ替える転置式暗号で、どちらもグリッドとして描けます。スキュタレーはグリッドを行に沿って埋め、列を下へ読みます — 列を自然な順序のままに保つ純粋な縦列転置です。レールフェンスは代わりに、一組のレールの上を上下にジグザグになぞります。同じテキストから異なるかき混ぜを生みます。
スキュタレー暗号はどうやって破りますか?
鍵空間はごくわずかなので、妥当なそれぞれの直径 — 2、次に3、次に4、と — で復号を試し、読めるものを残すだけです。この総当たり探索は手作業でも素早く済みます。正常な文字頻度と、かき混ぜられて読めないテキストの組み合わせは、スキュタレーのような転置式暗号が使われている強い手がかりです。
スキュタレー暗号は安全ですか?
いいえ。一つの小さな数だけをキーとするため、数秒で総当たりにより破られ、機微な情報に対して実質的な安全性を提供しません。教育とパズルのための暗号、そして暗号史の一片として理解するのが最もよいでしょう。本物の保護のためには、代わりに AES のような現代的なアルゴリズムを使うべきです。
入力したテキストはサーバーに送信されますか?
いいえ。すべての暗号化と復号はブラウザ内だけで実行されるため、あなたのテキストがアップロード・記録・保存されることはありません。共有リンクでさえ、テキストを URL のハッシュ以降の部分に保持しますが、ブラウザはこの部分をサーバーに決して送信しないため、自分で共有を選ぶまで非公開のまま保たれます。
スキュタレー暗号をコードで書くにはどうすればよいですか?
メッセージを、棒の周りに収まる文字ごとに1列を持つグリッドへと、行ごとに埋めながら並べます。暗号化するには、グリッドを各列ごとに下へ読み、列をつなぎ合わせます。復号するには、暗号文の長さと列数から各列の高さを割り出し、暗号文をそれらの列に切り分け、行に沿って読み戻します。このブラウザ内ツールはまさにそのやり方を用い、コードポイント単位で完全な Unicode を扱います。

関連ツール

こちらの便利なツールもどうぞ

レールフェンス暗号

縦列転置式暗号

シーザー暗号

ヴィジュネル暗号

アトバシュ暗号

プレイフェア暗号