列転置暗号ツール
キーワードとメッセージを入力すると、ツールはキーの下にメッセージを行ごとに書き、列をアルファベット順に番号付けして、その順に読み出します。すべての格子が描かれます。復号では、埋めの有無にかかわらず、長さだけから格子を組み立て直します。2つ目のキーを使うと二重転置になります。
キーワードの各文字が1つの列の先頭になります。列は、キーの文字のアルファベット順に読まれ、重複する文字は左から順に番号が付けられます。数字も使えます(3142)。
暗号化したときと同じ設定で復号してください。ここで残した文字は、すべて格子の一部になります。
格子
格子1:ZEBRASの下に、メッセージを行ごとに書きます
| Z | E | B | R | A | S |
|---|---|---|---|---|---|
| 順序 6 | 順序 3 | 順序 2 | 順序 4 | 順序 1 | 順序 5 |
| W | E | A | R | E | D |
| I | S | C | O | V | E |
| R | E | D | F | L | E |
| E | A | T | O | N | C |
| E |
列を順番に読みます: EVLN · ACDT · ESEA · ROFO · DEEC · WIREE
列転置暗号ツールの使い方
- 1. モードとキーワードを選びます。 キーワードの各文字が1つの列の先頭になります。列は、文字のアルファベット順に番号が付けられます。重複する文字は左から順に番号が付きます。数字も使えます。
- 2. 最後の行の終わり方を決めます。 短いままにする(不規則な列)か、Xで埋めてすべての列を同じ長さにするかを選びます。送信側と受信側で同じ選択をしなければなりません。
- 3. 移動させるものを選びます。 初期設定では、文字だけを大文字にして移動させます。これが伝統的な方法です。スペース、句読点、小文字もチェックすると一緒に移動します。復号も同じ設定で行ってください。
- 4. 二重転置にする場合は2つ目のキーを加え、 結果をコピーします。五文字のグループでコピーすることもできます。作業欄には、各格子が列番号付きで表示されます。
列転置のしくみ
転置暗号は、すべての文字を保ち、その順番だけを変えます。列転置では、キーワードと同じ幅の行にメッセージを書き、列ごとに読み出します。左から右ではなく、キーワードの文字のアルファベット順に読みます。
ZEBRASでは、アルファベット順は A、B、E、R、S、Z なので、6つの列は 6 3 2 4 1 5 の順に読まれます。最初はAの列です。メッセージ We are discovered. Flee at once. は25文字で、完全な行が4つと、5行目の1文字に分かれます。
キーワード ZEBRAS の格子
Z E B R A S 6 3 2 4 1 5 ----------- W E A R E D I S C O V E R E D F L E E A T O N C E
列を番号順に読むと EVLN、ACDT、ESEA、ROFO、DEEC、WIREE が得られ、EVLNA CDTES EAROF ODEEC WIREE として送られます。これはツールのサンプルです。最後の行をXで埋めると、EVLNX ACDTX ESEAX ROFOX DEECX WIREE になり、受信者が復号後に取り除く埋め字が5つ残ります。
復号:格子を組み立て直す
受信者は長さ(25)と、キー(6列)を知っています。25 = 4 × 6 + 1 なので、完全な行が4つと、余った1文字があります。そのため、左端の列は5文字、残りは4文字になります。列を番号順に埋めると(Aの下に EVLN、Bの下に ACDT、というように、Zの下に WIREE まで)、行を横に読むことでメッセージが復元されます。埋めがある場合は、すべての列の長さが同じになるので、計算はさらに単純になります。
二重転置
その結果を2つ目の格子に通すと、はるかに徹底的に並べ替えられます。EVLNACDTESEAROFODEECWIREE を STRIPE(列の順番 5 6 4 2 3 1)の下に書き、読み出すと CAEEN SOIAE DRLEF WEDRE EVTOC が得られます。復号では、まず2つ目の格子を元に戻し、次に1つ目を戻します。埋めを有効にした場合、このツールは最初の格子だけを埋めるので、2つ目の格子は常に長さだけから元に戻せます。
歴史
転置は古い考えです。スパルタのスキュタレは、書字材料の帯を棒に巻き付けました。ジョン・ファルコナーの Cryptomenysis Patefacta(1685)は、埋めとなるヌル文字を伴う、キーによる列転置について、英語で書かれた最も早い説明の一つを与えています。第一次世界大戦でドイツ軍は、フランス人が「Übchi」と呼んだ二重列転置を使いました。フランス側は、その成功が新聞 Le Matin で報じられるまで、定期的に解読していました。ドイツ軍は1914年11月18日にそれを置き換えました。第二次世界大戦では、二重転置は英国の特殊作戦執行部(SOE)、米国のOSS、オランダのレジスタンス、フランスのマキが使った野戦暗号であり、ドイツ陸軍と海軍の緊急暗号でもありました。
列転置はどれほど安全か
単一の転置は弱いものです。その文字の頻度は、普通の英語の頻度とまったく同じです。そのため分析者は、文字が置き換えられたのではなく移動されたことをすぐに知ります。分析者は列の数を推測し、暗号文を列に切り分けて、互いに滑らせることで単語が現れるまで並べ替えられます(アナグラム)。不規則な列は、埋めのある列より攻撃を難しくします。二重転置は、戦場では1950年代まで信頼されていましたが、同じキーで同じ長さの2つのメッセージは一緒にアナグラムできます。2013年には、ジョージ・ラズリーが、作者が解読不能と考えていた二重転置の課題を、コンピューターで解きました。転置の仕組みを学ぶために使うことはできますが、秘密を守るためには使わないでください。
よくある質問
- 列転置暗号とは何ですか?
- メッセージをキーワードの下に行ごとに書き、キーワードの文字のアルファベット順に、列ごとに読み出す暗号です。メッセージのすべての文字は暗号文に残り、変わるのは順番だけです。キーワードを知っている受信者は、格子を組み立て直して行を読みます。
- キーワードからどのように列の順番が決まりますか?
- キーワードの文字をアルファベット順に番号付けします。ZEBRASは 6 3 2 4 1 5 になります。Aが最初で、Zが最後だからです。文字が重複する場合は、左から順に番号が付けられます。そのため LETTER は 3 1 5 6 2 4 になります。3142 のような数字のキーは、数値の順で読まれます。
- 最後の行はXで埋めるべきですか?
- どちらでも、両側が同意していれば機能します。埋めると、すべての列が同じ長さになり、手作業では扱いやすくなりますが、復号後に埋め字を取り除かなければならず、埋め字は格子の形を分析者に教えてしまいます。最後の行を短いままにする(不規則な列)と埋め字は出ず、攻撃されにくくなります。
- キーがなくても列転置を復号できますか?
- 列の数を推測します。埋めがあれば、列の数はメッセージの長さを割り切れる数です。暗号文をその長さの列に書き、行が単語として読めるまで列を並べ替えます。TH、HE、IN のような一般的な文字の組み合わせは、どの列が隣り合うべきかを示します。二重転置は、手作業では解読を防ぎますが、コンピューターでは解けます。
- 二重転置とは何ですか?
- 列転置を2回適用したもので、通常は異なる2つのキーワードを使います。1回目の格子の出力が、2回目の格子への入力になります。1回の転置よりはるかに強力で、第二次世界大戦のレジスタンス網やSOE、OSSのエージェントが頼りにしていました。しかし、現代のコンピューターによる攻撃に対しては安全ではありません。
- 転置と換字の違いは何ですか?
- 換字暗号は、各文字を別の文字に置き換え、順番は保ちます。転置は文字を保ち、順番を変えます。そのため転置は、平文の文字頻度をそのまま残します。歴史的には両者がしばしば組み合わされ、第一次世界大戦のADFGVX暗号がその例です。