本日も暗号の種類を紐解いていきます。
過去分はこちら。
↓↓↓
暗号: ラインセグメント日記
本日は転置式暗号といって、これまでの換字式暗号とは異なる分類の暗号に進みます。
転置式暗号は平文を並び替えた文字列を暗号文とする暗号方式です。
転置式暗号 - Wikipedia
その歴史は長く、簡易な発想からコンピュータで計算するものまで様々な方法で転置式暗号が実現されています。
そもそも、平文を転置する'場合の数'が$n$文字に対して$n!$通りあって、見かけが平文と全然異なるものだけで数えても膨大な数になります。
そのうち、どれがいいかを詳しく調べることはコンピュータに委ねる訳ですが、充分ごちゃ混ぜにする手段は古来からいくつか考えられてきました。
おそらく有名ですが、暗号文を書いた細長い紙を棒に巻きつけて、棒の方向に読むと文章になっている暗号はテレビなどでご存知の方もいらっしゃるのではないでしょうか。
それが今回詳解する「スキュタレー(Scytale)」です。
この棒の方法(=スキュタレー)の説明は、いくつか考え方があります。
・平文の長さを$\ell$、棒の太さを$key$、$n=\left[\displaystyle\frac{\ell}{key}\right]+1$として、平文を$n$文字ごとに区切って1つの行としていく行列の1列目から行を下がって読んでいくと暗号文になる。
・平文の1文字目から$n$文字ごとに読んでいき、平文の最後に着くと、平文の最初から2文字目から$n$文字ごとに読んでいき、$\cdots$読んでいくと暗号文になる。
いかなる説明方法が考えられても、根本的には棒に巻きつける方法の表現となります。
色々考えておくとプログラミングのときや、他の暗号に接したときに分かるヒントになるかと思います。
すこし整理しますと、細長い紙の状態では暗号文であり、棒に巻きつけたときが平文です。
棒からほどくことが暗号化で、棒に巻き付けることが復号化です。
よし←。
ちなみに、スキュタレーの(暗黙の)前提条件として、棒の太さや紙に書かれた文字の間隔は一定だということです。
これを踏まえてスキュタレーの工夫可能性を書いてみます。
・棒の太さや紙上の文字間隔をところどころ変えて、巻きつけ位置も指定する。
簡易でなく、暗号化・復号化に慎重さが求められるようになると思います。
しかし、実際の棒と紙で行う場合には、それらが相手の手に渡ってしまっても、解読のハードルが少し上がります。
プログラムとしては、その棒の特徴を入力する必要があり、少々面倒なことは分かります。
ということで、一定の太さの棒・一定間隔の文字で暗号化・復号化するアプリケーションを作成しました。
↓↓↓
スキュタレーで暗号化
過去分はこちら。
↓↓↓
暗号: ラインセグメント日記
本日は転置式暗号といって、これまでの換字式暗号とは異なる分類の暗号に進みます。
転置式暗号は平文を並び替えた文字列を暗号文とする暗号方式です。
転置式暗号 - Wikipedia
その歴史は長く、簡易な発想からコンピュータで計算するものまで様々な方法で転置式暗号が実現されています。
そもそも、平文を転置する'場合の数'が$n$文字に対して$n!$通りあって、見かけが平文と全然異なるものだけで数えても膨大な数になります。
そのうち、どれがいいかを詳しく調べることはコンピュータに委ねる訳ですが、充分ごちゃ混ぜにする手段は古来からいくつか考えられてきました。
おそらく有名ですが、暗号文を書いた細長い紙を棒に巻きつけて、棒の方向に読むと文章になっている暗号はテレビなどでご存知の方もいらっしゃるのではないでしょうか。
それが今回詳解する「スキュタレー(Scytale)」です。
この棒の方法(=スキュタレー)の説明は、いくつか考え方があります。
・平文の長さを$\ell$、棒の太さを$key$、$n=\left[\displaystyle\frac{\ell}{key}\right]+1$として、平文を$n$文字ごとに区切って1つの行としていく行列の1列目から行を下がって読んでいくと暗号文になる。
・平文の1文字目から$n$文字ごとに読んでいき、平文の最後に着くと、平文の最初から2文字目から$n$文字ごとに読んでいき、$\cdots$読んでいくと暗号文になる。
いかなる説明方法が考えられても、根本的には棒に巻きつける方法の表現となります。
色々考えておくとプログラミングのときや、他の暗号に接したときに分かるヒントになるかと思います。
すこし整理しますと、細長い紙の状態では暗号文であり、棒に巻きつけたときが平文です。
棒からほどくことが暗号化で、棒に巻き付けることが復号化です。
よし←。
ちなみに、スキュタレーの(暗黙の)前提条件として、棒の太さや紙に書かれた文字の間隔は一定だということです。
これを踏まえてスキュタレーの工夫可能性を書いてみます。
・棒の太さや紙上の文字間隔をところどころ変えて、巻きつけ位置も指定する。
簡易でなく、暗号化・復号化に慎重さが求められるようになると思います。
しかし、実際の棒と紙で行う場合には、それらが相手の手に渡ってしまっても、解読のハードルが少し上がります。
プログラムとしては、その棒の特徴を入力する必要があり、少々面倒なことは分かります。
ということで、一定の太さの棒・一定間隔の文字で暗号化・復号化するアプリケーションを作成しました。
↓↓↓
スキュタレーで暗号化