転置式暗号って何ぞ?な人へ。
僕のプロフィールはこちら
転置式暗号とは
転置式暗号とは、そのままですが、文字の位置を入れ替える暗号のことです。
平文を別の文字に入れ替えたりするのではなく、あくまで位置を入れ替える方法です。
文字の位置を入れ替えるということは、一種の「アナグラム」とも言えます。
転置式暗号はどうやるの?
転置式暗号は平文の位置を入れ替えるわけですが、平文の文字数はいつも決まっているわけではありません。
なので、よくある方法として、平文をブロックで区切ります。
例えば、「あほぼけかす」という平文に対し、ブロックを2文字と定義した場合、
「あほ / ぼけ / かす」
と区切ります。
で、2文字ずつに区切った文字をそれぞれ入れ替えます。
「ほあ / けぼ / すか」
これで暗号文「ほあけぼすか」ができる感じっすん。
転置式暗号の一般的なルール
転置式暗号を適用する場合、平文が中途半端な場合は注意が必要です。
例えば、平文が「あほぼけかす」で、ブロックを4文字で区切る場合、
「あほぼけ / かす」
となります。
「かす」は半端なので困ったもんですね。
こいつは一般的にはそのままにします。
もしくは、半端な部分だけ別途決まりを定義します。
⇒例えば、最後の「かす」だけ2文字で区切ったと考え転置する、など。
※文字を補う方法を「パディング」と言いますが、パディングは転置式暗号ではおすすめできません。
パディングした内容が暗号文を解読するためのヒントになるため。
転置式暗号の仲間たち
転置式暗号は平文の位置を規則に従って入れ替えているだけなので、そういった類のものはすべて転置式暗号と言えます。
以下は転置式暗号のお仲間たちです。
- 逆順
- シャッフル
- スキュタレー暗号(冗字を使用しない場合)
ナポレオンの転置式暗号
ナポレオンは転置式暗号を使用していたと言われています。
方法としては、先ほど例に出した「2文字をそれぞれ入れ替える方法」を使用していたそう。
転置式暗号のアルゴリズム
転置式暗号の分割文字数を「n」とします。
「n = 1」の場合
これは平文と同じになるため無視します。
「n = 平文の文字数」の場合
平文をシャッフルした状況と同じになります。
「n > 平文の文字数」の場合
多少の工夫が必要です。
パディングはしない方がいいですが、一旦パディングをして暗号化するしか、簡単な方法としてはありません。
「n < 平文の文字数」の場合
「n」がどれだけ小さいかは気を付ける必要があります。
仮に、末尾に半端な文字があり、半端な文字はそのまま暗号文として使うというルールだった場合、末尾の文字はそのまま暗号文に出力されることになります。
転置式暗号の鍵数
アルファベットは全26文字なので、それを前提として考えます。
「n」が仮に「4」だった場合、鍵の総数は以下のようになります。
4! = 4 × 3 × 2 × 1 = 24
また、分割文字数が「4」と分かっていない場合で、「6以下」だということだけが分かっている場合はこうなります。
2! + 3! + 4! + 5! + 6! = 2 + 6 + 24 + 120 + 720 = 872
おすすめ書籍
この本、スーパー分かりやすくて超好き。
まとめ
転置式暗号は意外と簡単ですな。
換字式暗号辺りから鍵数も増えてくるのでよりややこしくなります。
ってことでさいなら。
関連記事
以下の記事も合わせて読まれています。