Webページを見ていると
暗号化されているページ、
暗号化されていないページ、
というワードを見かけることがあります。
例えば、下のように表示されるページは暗号化されています。
では、暗号化というのは何をしているのでしょうか、
そして、何のために暗号化が必要なのでしょうか。
暗号化の必要性
私たちは、普段あまり意識していませんが、
インターネットで特定のサイトにアクセスする時、
いくつもの地点を経由して、そのサイトのサーバーに接続しています。
当然、サーバーとの間のやり取りも、それらの地点を経由して行うので、
間に誰が入っているかも分からないまま、やり取りを垂れ流しています。
そんな状態で、例えばログインのためにパスワードを入力すると、
誰かがそのパスワードを見てしまう可能性があります。
そのため、自分とサーバー以外には分からない形で、
文章を暗号化し、
他の人が見たとしても、
パスワードなどの情報が漏れないように、
しておく必要があります。
暗号化されているサイトにアクセスしている時は、
常に、暗号化された状態でやり取りを行います。
つまり、インターネットに情報を送り出す側が暗号化し、
インターネットから情報を受け取った側は暗号を元に戻します(復号化)。
これをサイトへのアクセスが終わるまで常に続けることで、
自分とサーバー以外には情報が漏れることがありません。
暗号の鍵
では、暗号化とはどのように行っているのでしょう。
最も簡単な暗号化は、特定の文字を入れ替えるというものでしょう。
例えば、「パスワード」をローマ字に直して「pasuwa-do」として、
次の表で文字を入れ替えます。
元の文字 | 入れ替え後の文字 |
---|---|
p | o |
a | s |
s | d |
u | y |
w | e |
- | 0 |
d | f |
o | i |
すると、暗号「osdyes0fi」を得ます。
実は先ほどの画像の暗号は、このルールに則って作られたものです。
文字を入れ替える暗号は換字式暗号と呼ばれます。
この場合、上の表のように、対応を決めると、
具体的に暗号を作ったり、逆に暗号を読み解くことができます。
この暗号を作ったり、暗号を読み解く時に必要となる情報を暗号の鍵と呼びます。
共通鍵暗号
上の換字式暗号では、どの文字とどの文字を入れ替えるのかが分かってしまえば、
暗号を作ることも、復号することも両方できてしまいます。
つまり、暗号化する側も、復号化する側も同じ表を使うことになります。
このように、暗号化側と復号化側で同じ鍵を使う暗号を、
共通鍵暗号と呼びます。
共通鍵暗号では、鍵を持っている人が、
メッセージのやり取りに参加することができます。
逆に、第三者に鍵が知られてしまうと、
その人にメッセージの内容を読み取られてしまいます。
そのため、メッセージのやり取りをする前に、
安全な方法で、やり取りをする相手と鍵を共有しておく必要があります。
このため、共有鍵暗号とも呼ばれます。