インターネットでは、私たちが送るデータが途中で誰かに盗み見られる危険(=盗聴)があります。中には、クレジットカードの番号など、絶対に見られたくない情報もあるかと思います。

じゃあ、どうやって守るの?
ここで使われるのが、「暗号化」という技術です!
🤔暗号化って何?
暗号化とは、データを「見ても意味がわからない形」に変えることです。
例えば
「こんにちは、ねこまるです」 → 「%@#9d*+18$&」のようなデータに変換!
インターネットは誰でも使える「オープンな通路」ですが、こうすれば、誰かがこっそり見ても内容はわかりません。
そして、変換されたデータをもとに戻す(=復号)ことは、正しい鍵をもっている人だけなんです。金庫を開けて中身を見ることができるのは、鍵をもっている人だけというイメージに似ています。
暗号化と復号のイメージ
暗号化と復号は、「アルゴリズム(計算のルール)」と「鍵(キー)」を組み合わせて動きます。
🔐 暗号化の流れ


暗号化アルゴリズムに「元のデータ」と「鍵(キー)」を入れると、暗号化されたデータが計算されます。
ちなみに「暗号化アルゴリズム」とは、データを暗号化するための計算方法のことです。
🔓 復号の流れ


復号アルゴリズムに「暗号化されたデータ」と「鍵(キー)」を入れると、元のされたデータが計算されます。
ちなみに暗号化されたデータから、元のデータに戻すことを「復号」と呼びます。「復号アルゴリズム」とは、暗号化されたデータを復号するための計算方法のことです。
ここでのポイントは、「正しい鍵がないともとには戻せない」ということです。つまり、通信中のデータが盗み見られたとしても、鍵を持っていない人には意味不明なデータにしか見えないというわけです。
暗号化アルゴリズムの例:シーザー暗号
暗号化アルゴリズムや復号アルゴリズムって難しそうだし、なんかピンとこないって人もいると思います。ですが、実は昔の人が使っていたカンタンな暗号があります。
その名も「シーザー暗号」。古代ローマのカサエル(シーザー)が使っていたとされるアルゴリズムです。
アルゴリズムはとってもシンプルで、アルファベットを「決まった文字数分ずらす」だけです。例えば、ずらす文字数が3の場合、以下の図の通り、”ABC” → “DEF” になります。


また、元に戻すには、各文字を3文字分逆戻りさせます。


シーザー暗号を例で考えると、暗号化と復号のアルゴリズムは「文字をずらす」、鍵は「3」となります。
実際の暗号化アルゴリズムはもっと複雑!
インターネットの通信で暗号化を行うときは、事前にどの暗号化方式を使うか通信相手と決めておきます。その上で、「鍵」を交換しておけば、通信中のデータは安全に守ることができます。
シーザー暗号はとてもシンプルなアルゴリズムですが、実際に使われている暗号化方式は複雑な数式やロジックが使われています。そのため、鍵がない他のユーザーは解読できません。
しかし、基本的な仕組みは同じ!
実際に使われている暗号化方式は、アルゴリズムの仕組みが知られていたとしても、「鍵」がなければ復号できないように作られています。
逆に、鍵がなくても解読できてしますような暗号化方式は使い物になりません。シーザー暗号は鍵が26パターンしかないので、簡単に解読できてしまう暗号化方式です。
暗号化方式の種類
インターネットで使われている暗号化方式は、ざっくり分けると以下の2つ
それぞれの特性ごとに、メリットとデメリットがあり、うまく使い分けられています。
次の記事では、このうちの「共通鍵暗号方式」について説明していきます。
コメント