以前から暗号には興味がありました。
AESやRSAやPkQ(PkQってご存知?)をJavaで作ったことがきっかけで、AESをJavaScriptでも作ってみたりしました。
JavaScriptによるAESの実装化
そこで、趣味で色々な暗号を調べていこうと思います。
他の暗号に関する記事はこちら。
↓↓↓
暗号: ラインセグメント日記
今回は、たしか「東大王」という番組のクイズに出てきたアトバシュ暗号を調べてみました。
番組中では、アトバシュ暗号の要領で変換された文字を見て暗号化の方法を知り、他の文字を暗号化するという問題でした。
アトバシュ暗号とは、
決められた順序の中での文字の位置をもとに、逆位置の文字に変換するものです。
復号化は、同じ順序内で逆位置を取ります。
「決められた順序」とは具体的にはアルファベット順のことです。
「逆位置」とは、aをzに、bをyに、cをxに、、、変換します。
復号化のときは、zをaに、yをbに、xをcに、、、変換します。
変換表を作ると、下記のようになります。
AESやRSAやPkQ(PkQってご存知?)をJavaで作ったことがきっかけで、AESをJavaScriptでも作ってみたりしました。
JavaScriptによるAESの実装化
そこで、趣味で色々な暗号を調べていこうと思います。
他の暗号に関する記事はこちら。
↓↓↓
暗号: ラインセグメント日記
今回は、たしか「東大王」という番組のクイズに出てきたアトバシュ暗号を調べてみました。
番組中では、アトバシュ暗号の要領で変換された文字を見て暗号化の方法を知り、他の文字を暗号化するという問題でした。
アトバシュ暗号とは、
決められた順序の中での文字の位置をもとに、逆位置の文字に変換するものです。
復号化は、同じ順序内で逆位置を取ります。
「決められた順序」とは具体的にはアルファベット順のことです。
「逆位置」とは、aをzに、bをyに、cをxに、、、変換します。
復号化のときは、zをaに、yをbに、xをcに、、、変換します。
変換表を作ると、下記のようになります。
変換前 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
変換後 | z | y | x | w | v | u | t | s | r | q | p | o | n | m | l | k | j | i | h | g | f | e | d | c | b | a |
おそらく、大文字→大文字、小文字→小文字というように大小は変えないです。
アトバシュ暗号は工夫する方法がいくつか考えられます。
・大文字と小文字を合わせて、52文字の順序とする。
・AaBbCc・・・のように、大文字と小文字を組み合わせた順序とする。
・ひらがな、カタカナも入れる。
・記号も入れる。
上記のいずれも順序の約束が必要であり、暗号化する人と復号化する人の間で、そのルールを事前に共有しておく段階が必要となります。
ですが、通常の(?)アトバシュ暗号が「アトバシュ暗号で!」と言うだけで通じるものとすれば、そのときにローカルルールも定めておくことで上記の工夫も実現されます。
この暗号自体は変換のルールが非常に簡単なものですが、平文を1文字ずつ取り出して、あるルールにしたがって変換していくという意味で、暗号への大事な一歩のような暗号だと思います。
変換こそ、アルファベットの中を隣り合わせで進んでいく単調なものですが、ここに数学の理論を入れていくことで、現代の暗号が出来ていくんだなぁと思いました。
余談)チューリング以来、群論がよく使われているそうですが、群論は対称性を取り扱う数学で、今後、暗号を見ていく中で、対称性の存在を知るときが来たらいいなと。
余談2)ラングランズ・プログラムは対称性の概念で数学のあらゆる分野をつなげる試みですが、このプログラムの進展で、量子コンピュータに負けない(?)暗号につながれば、、、とも思います。
最後に、大文字と小文字を保存するアトバシュ暗号のアプリケーションを作成しました。
使用できるのは、アルファベットのみとなります。(全角もいけます)
↓↓↓
アトバシュ暗号で暗号化
・大文字と小文字を合わせて、52文字の順序とする。
・AaBbCc・・・のように、大文字と小文字を組み合わせた順序とする。
・ひらがな、カタカナも入れる。
・記号も入れる。
上記のいずれも順序の約束が必要であり、暗号化する人と復号化する人の間で、そのルールを事前に共有しておく段階が必要となります。
ですが、通常の(?)アトバシュ暗号が「アトバシュ暗号で!」と言うだけで通じるものとすれば、そのときにローカルルールも定めておくことで上記の工夫も実現されます。
この暗号自体は変換のルールが非常に簡単なものですが、平文を1文字ずつ取り出して、あるルールにしたがって変換していくという意味で、暗号への大事な一歩のような暗号だと思います。
変換こそ、アルファベットの中を隣り合わせで進んでいく単調なものですが、ここに数学の理論を入れていくことで、現代の暗号が出来ていくんだなぁと思いました。
余談)チューリング以来、群論がよく使われているそうですが、群論は対称性を取り扱う数学で、今後、暗号を見ていく中で、対称性の存在を知るときが来たらいいなと。
余談2)ラングランズ・プログラムは対称性の概念で数学のあらゆる分野をつなげる試みですが、このプログラムの進展で、量子コンピュータに負けない(?)暗号につながれば、、、とも思います。
最後に、大文字と小文字を保存するアトバシュ暗号のアプリケーションを作成しました。
使用できるのは、アルファベットのみとなります。(全角もいけます)
↓↓↓
アトバシュ暗号で暗号化