Scratchで
暗号文をつくろう!
アンズテック やまだ
じつは、ブラウザでインターネットを見ているとき、通信内容が暗号化されているのをご存知でしたか?
パスワードを入力するときも、友だちにメッセージを送るときも、他の人に盗み見されないように、暗号文になっているのです。
今回は、そんな身近な暗号化技術について、実際に暗号文を作ってみることで学ぶことにしました!
たぬき暗号
まずは、平文(ひらぶん)の途中に、「た」の文字を0〜2文字ランダムではさんでいくだけの、単純なたぬき暗号を作ることにしました。
平文(ひらぶん)・・・暗号にする前の文章のこと
【平文】
こんにちは!
【暗号文】
こんたにちたたはた!
たぬき暗号
もともと、平文の中に「た」の文字が含まれていたときは、そのまま「た」にしようかと思ったのですが、それだと後から復号(ふくごう)できないと気付いたので、
元の文字が「た」のときは、「☆」の記号に置き換えることにしました。
復号(ふくごう)・・・暗号文を、もとの平文(ひらぶん)に戻すこと
【暗号文】
おたたなたかすい☆
【平文】
おなかすいた
復号の仕方
暗号文から平文に戻すには、以下のルールで戻すことができます。
【暗号文】
おたたなたかすい☆
【平文】
おなかすいた
シーザー暗号
文字を、あらかじめ決めておいた文字数ぶんずらして置き換える暗号です。
例えば、アルファベットの「A」を3文字分ずらすと「D」、「B」を3文字分ずらすと「E」になります。
【暗号文】
DEFGH
【平文】
ABCDE
アルファベットを3文字ずらす
シーザー暗号
Scratchでは、アルファベットや日本語を何文字ずらすといった処理に対応していないので、代わりに今回は暗号表リストを作りました。
←リストの1番目にある「あ」を3文字ずらすと、4番目の「え」になる
シーザー暗号
この方法だと、日本語の漢字の種類が多すぎて、リストの登録がたいへんだったので、漢字は扱わないことにしました。
復号の仕方
暗号にしたひとから、何文字ずらしたか教えてもらって、暗号表を見ながら1文字ずつ対応する文字を探します。
感想
シーザー暗号のほうは、何文字ずらしたかわからないと復号できないので、たぬき暗号よりも、解読するのが難しいと思いました。
また、シーザー暗号は手動で復号するのがとても時間がかかるので、プログラムを使えば簡単だと思いました。
これを応用すれば、復号するためのプログラムも組めそうです。
そして、自分で新しい暗号化の仕組みを考えると楽しいと思いました。