通信を行うと、途中で情報を盗まれるリスクが存在しています。情報を盗まれた場合に、その内容が分からないようにする方法として暗号は昔から使われてきました。
暗号の技術を使うと、情報の機密性(アクセスする権限がある人だけアクセスし、それ以外の人には公開されないこと)を維持することができます。
暗号化と復号
暗号化とはもともとの文(これを平文といいます)を、意味の分からない文(暗号文)に変えることをいいます。
これに対して、意味の分からない文を、平文に戻すことを復号といいます。
漢字に注意してください。それと、暗号化には「化」が付きます。復号には化が付きません。
暗号技術
暗号技術は古くから使われてきました。例えば古典暗号として
- シーザー暗号
- ビジュネル暗号
などがあります。現代暗号には
- 共通鍵方式
- 公開鍵方式
などがあります。
暗号の方式に限らず大事なキーワードとして、アルゴリズムとパラメータという2つのものがあります。
まずは、シーザー暗号を例にとって説明します。
シーザー暗号
シーザー暗号は古典的な暗号の一つです。
平文に対して、何文字かずらした文字を暗号文とする方法です。
シーザー暗号では、〇文字ずらすというのが暗号化のやり方です。〇文字ずらしたということを知っていれば復号することができます。
暗号の解読
シーザー暗号のような簡単なやり方では、いくつかの平文と暗号文のセットを手に入れれば、暗号化の方法を予測することができます。つまり暗号の解読ができてしまいます。
それでは困ります。どうしたらよいでしょうか?
違う暗号化の方法を用意すればいいでしょうか?
もちろんそれでもいいでしょう。ただし、新しい暗号化の方法を考えるのは大変なことですし、暗号文で通信する人同士でたくさんの暗号化に対応することも面倒です。
鍵とアルゴリズム
そこで、現代の暗号化では鍵とアルゴリズムという2つのものを用意して、暗号の解読がしにくいような工夫をしています。
例えば、シーザー暗号では
①「ずらす」というやり方と②何文字ずらすかという2つを決定することで暗号化を行うことができます。
また、この2つを知っていれば、暗号文を復号することができます。
この時の①をアルゴリズム、②をパラメータ(鍵)と呼びます。
①アルゴリズムを変えなくても②のパラメータ(鍵)を変えると、暗号文が変わることが分かるでしょうか?
同じアルゴリズムでもカギを変えることで、暗号化の結果が変わるので、解読しづらくなります。