暗号化:内容を読めない形に変えて、鍵を持つ人だけが戻せる
暗号化は、内容を決まった規則で読めない形に変えることです。元に戻すには鍵が必要で、鍵の配り方によって2種類あります。共通鍵暗号は閉めるのと開けるのが同じ鍵(速いが、鍵を安全に渡すのが難しい)。公開鍵暗号は閉める鍵(公開鍵)と開ける鍵(秘密鍵)が別なので、鍵を公開しても安全です。https はこの2つを組み合わせています。
このページで学べること
- 暗号化が何を守るのかわかる
- 共通鍵暗号と公開鍵暗号の違いがわかる
- httpsで守られる範囲・守られない範囲がわかる
- 簡単な暗号を自分で作れる
前提知識
まずは簡単な暗号で考える
アルファベットを決まった数だけずらす暗号です。3つずらすと A→D、B→E、C→F。この「3」が鍵にあたります。CAT → FDW。
受け取った人は同じ「3」を知っていれば、3つ戻して元の文に復号できます。これは共通鍵暗号の考え方そのものです。速くて簡単ですが、鍵そのものを相手にどう渡すかという問題が残ります。鍵を盗まれたら、暗号の意味がなくなってしまいます。
そこで考えられたのが公開鍵暗号です。南京錠を配るイメージで理解できます。誰でも使える「開いた南京錠(公開鍵)」を配っておき、送り手はそれで箱を閉めて送る。開けられるのは鍵を持つ受け取り手だけ(秘密鍵)。鍵を渡す必要がないので、初めての相手とも安全にやりとりできます。
実際の https では、まず公開鍵暗号で「共通鍵」を安全に共有し、そのあとは速い共通鍵暗号で本文をやりとりします。相手が本物かどうかは電子証明書で確認します。
共通鍵:閉める鍵 = 開ける鍵 / 公開鍵:閉める鍵 ≠ 開ける鍵図でイメージする(公開鍵は南京錠を配る)
例題(くわしい手順)
シーザー暗号(3つずらす)で DOG を暗号化します。
- 1文字ずつずらす:D → E → F → G。
- 同じように:O → P → Q → R。G → H → I → J。
- 並べる:暗号文は GRJ。
復号は逆に3つ戻すだけ(G→D、R→O、J→G)。ずらす数がわかると簡単に破られるため、実際の暗号ではもっと複雑な計算を使います。
共通鍵暗号と公開鍵暗号の違い
| くらべること | 共通鍵暗号 | 公開鍵暗号 |
|---|---|---|
| 鍵 | 閉めると開けるが同じ | 閉める(公開鍵)と開ける(秘密鍵)が別 |
| 鍵の受け渡し | 安全に渡すのが難しい | 公開してよいので簡単 |
| 処理の速さ | 速い | 遅い |
| 使いどころ | 本文の暗号化 | 共通鍵の受け渡し・電子署名 |
https は「公開鍵で鍵を渡し、共通鍵で速く通信する」という両方の良いところを使う方式です。
よくある間違い
https が守るのは通信の中身だけです。偽サイトでも https は使えます。鍵マークがあっても、ドメイン名が本物かを必ず確認しましょう(情報セキュリティ)。
公開鍵は公開してよい鍵です。秘密にするのは秘密鍵だけ。ここを逆にすると、公開鍵暗号の利点がなくなります。
パスワードは本人かどうかを確かめるためのもの、暗号化は内容を読めなくするためのものです。目的が違うので、両方が必要です。
練習問題
まず自分で解いてから解説を開きましょう。
シーザー暗号で3つうしろにずらすとき、CAT はどう暗号化されますか。
解答・解説を見る
答え:FDW
C→F、A→D、T→W と、それぞれ3つずらします。
アルファベットを決めた数だけずらすのがシーザー暗号です。Z を超えたら A に戻ります(Y+3=B)。規則が分かれば戻せるので、現代の暗号としては使いません。
共通鍵暗号のいちばん大きな課題は何ですか。
解答・解説を見る
答え:鍵を安全に相手へ渡すこと
同じ鍵を共有する必要があるため、その受け渡しで盗まれると暗号の意味がなくなります。公開鍵暗号はこの問題を解決します。
公開鍵で暗号化されたデータは、何を使えば元に戻せますか。
解答・解説を見る
答え:対応する秘密鍵
公開鍵で閉めたものは秘密鍵でしか開けられません。だから公開鍵は誰に配ってもかまいません。
ブラウザの鍵マーク(https)は何を保証していますか。
解答・解説を見る
答え:通信が暗号化されていること(+証明書で相手のドメインが確認されていること)
保証されるのは通信路の安全とドメインの確認までです。そのサイトが誠実であることは保証しません。
よくある質問
Q. 暗号化とは何ですか?
内容を決まった規則で読めない形に変えることです。元に戻す(復号する)には鍵が必要で、鍵を持たない人には意味のわからないデータになります。
Q. 共通鍵暗号と公開鍵暗号の違いは何ですか?
共通鍵暗号は閉めるのと開けるのが同じ鍵で、速い代わりに鍵の受け渡しが難しいです。公開鍵暗号は閉める鍵(公開鍵)と開ける鍵(秘密鍵)が別なので、鍵を公開しても安全にやりとりできます。
Q. httpsなら安全だと言えますか?
通信の中身は暗号化されますが、サイト自体が安全とはかぎりません。偽サイトもhttpsを使えるため、ドメイン名が本物かどうかの確認が欠かせません。
Q. 共通鍵暗号と公開鍵暗号はどちらが速いですか?
共通鍵暗号のほうが速いです。実際の通信では「公開鍵で共通鍵を安全に渡し、そのあとは共通鍵で速くやりとりする」という組み合わせが使われます。
次に学ぶ内容
高等学校「情報I」および基本的なIT知識の範囲を参照し、オリジナルに作成(実在試験問題の転載はありません)。正確性は編集・監修フローで確認しています(仕様書 第11章)。