ネット通販もLINEも、裏では暗号が働いています。盗み見されても中身を守る、セキュリティの土台を見ていきましょう。
暗号=鍵でかける南京錠
暗号は、データに「鍵」をかけて**読めない形(暗号文)**に変えること。正しい鍵を持つ人だけが元に戻せます(復号)。
← 図は横にスクロールできます →
共通鍵と公開鍵
共通鍵暗号
- かける鍵と開ける鍵が同じ
- 高速だが鍵を安全に渡すのが課題
- 大量データの暗号化向き
公開鍵暗号
- 公開鍵でかけ、秘密鍵で開ける
- 鍵を公開して配れる
- 鍵の受け渡し・署名に使う
公開鍵暗号の賢いところは、「かける鍵(公開鍵)」を誰に見られてもよいこと。相手の公開鍵で暗号化すれば、相手の秘密鍵でしか開けません。だから初対面同士でも安全に通信できます。下のデモで、公開鍵でかけた暗号が「正しい秘密鍵でしか開かない」ことを実際に確かめられます(本物のRSA計算・小さな鍵で動かしています)。共通鍵暗号の代表であるAESを実際にPythonで動かす手順はPython AES暗号化の実装で解説しています。
🗝️ 公開鍵暗号を体験
「公開鍵」でかけた暗号は、対になる「秘密鍵」でしか開けません。試してみましょう
公開鍵(かける鍵)は配ってOK。秘密鍵を持つ本人だけが開けられる——これがHTTPSやパスキーを支える仕組みです
ハッシュ:戻せない「指紋」
暗号と並んでもう一つ大事なのがハッシュ。データを固定長の値に変換する一方通行の計算で、元には戻せません。同じ入力からは必ず同じ値が出て、1文字でも違うと値がまるごと変わります(雪崩効果)。パスワードの保管や、ファイルが改ざんされていないかの確認に使われます。下で実際に打ち込んで確かめてみましょう。
🔑 ハッシュ体験(SHA-256)
文字を打つと即ハッシュ化。上下でたった1文字違うだけで、値がどれだけ変わるか見てみましょう
…
…
AとBのハッシュは 0% の文字が違います
青い文字が「異なる桁」。入力が1文字違うだけで、ほぼ全体が別物に変わります(雪崩効果)
ハッシュは一方通行:値から元の文字は戻せません。だからパスワード保管や改ざん検知に使われます
署名にも使える
逆に秘密鍵で処理すれば「本人が確かに作った」証明(デジタル署名)になります。公開鍵暗号はHTTPSやパスキーを支える縁の下の力持ちです。
HTTPSは「暗号化された通り道」
Webの通信は、途中でたくさんの機器を経由します。そのままだと、途中で**盗み見(盗聴)や書き換え(改ざん)**が可能。HTTPSは通信を暗号化し、中身を守ります。
← 図は横にスクロールできます →
HTTP と HTTPS の違い
HTTP(鍵なし)
- 通信が丸見え
- 盗み見・改ざんの危険
- パスワード入力は危険
HTTPS(鍵あり)
- 通信を暗号化
- 盗み見されても読めない
- 相手が本物かも確認できる
HTTPSなら公衆Wi-Fiでも安全?
カフェのWi-Fiは他人と同じ回線を使うので、HTTPだと危険。でもHTTPSなら中身は暗号化されているので、盗み見されても読めません。とはいえ、より安全にするならVPNの併用も有効です。
鍵マーク=安全、ではない
鍵マークは「通信が暗号化されている」印であって、「そのサイトが善良」という意味ではありません。偽サイトもHTTPSを使えます。鍵マークだけでなくURLのドメインも必ず確認を。
耐量子暗号(PQC):なぜ今の暗号が危ないのか
現在のHTTPSやパスキーは、公開鍵暗号(RSAや楕円曲線)に支えられています。これらは「大きな数の分解が難しい」ことが安全の根拠。ところが量子コンピュータのショアのアルゴリズムは、これを高速に解いてしまう可能性があります。
Harvest Now, Decrypt Later
「今のうちに暗号化データを盗んでおき、量子計算機が実用化したら後で解読する」——この"収穫先取り"の脅威があるため、まだ量子計算機が無くても今から備える必要があります。
耐量子暗号はNISTが新標準を制定
米国の標準化機関NISTが、量子でも破れない新しい暗号を標準化しました。
ML-KEM
鍵交換(FIPS 203)
ML-DSA
デジタル署名(FIPS 204)
SLH-DSA
ハッシュ署名の予備(FIPS 205)
耐量子暗号への移行スケジュール
米政府機関は2027年から耐量子暗号の調達を開始し、2033年までに全面移行を求めています。企業も、長期間秘密にすべきデータを扱うほど、早めの移行検討が必要です。
つながる分野
「暗号を破る側」の量子コンピュータと「守る側」の耐量子暗号は表裏一体。くわしくは姉妹サイトゆるふわ量子コンピュータもどうぞ。
📚 もう少し詳しく(背景)気になる人向け・タップで開く
つぎに読むなら
- HTTPSのしくみ
- 耐量子暗号(PQC)
- 多要素認証
