暗号通信の歴史とHTTPS 〜なぜブラウザに「鍵マーク」がつくのか?〜

2026-11-04 / シリーズ「コンピューティングの芯」第15話

1. 素朴な疑問:なぜ普通のブログにまで「鍵マーク」が強制されるの?

スマホやPCでWebサイトを見ていると、アドレスバーのURLの左端に、小さな**「鍵(南京錠)のマーク」**がついているのが当たり前になりました。 URLの先頭も、昔の「http://」ではなく、必ず「https://」になっています。

しかし、昔からネットを使っている人なら、こう思ったことはないでしょうか?

「昔は、銀行の振込画面やAmazonの決済画面のような『超重要ページ』にしか鍵マークはついていなかったはず。なぜ今や、お金も個人情報も扱わない個人ブログや、ただの天気予報サイトにまで、世界中で鍵マークが100%強制されているの?」

「通信を暗号化している」とは聞くけれど、誰に見られても困らない趣味のブログまで暗号化する必要があるのでしょうか? そもそも、地球の裏側にある「一度も会ったことがない見知らぬサーバー」と、どうやって通信を始めた瞬間のわずか0.1秒で誰にも破られない秘密の暗号を作って通信しているのでしょうか?

その裏側には、古代ローマ時代から2000年以上続いた「暗号の歴史」と、人類の数学者たちが辿り着いた**「美しすぎるハイブリッドの奥義」**が隠されています。


2. 概念の芯:暗号の2000年史と「鍵配送問題」という絶望

暗号の歴史は、そのまま「秘密の合言葉をどう隠すか」の戦いでした。

ブレッチリー・パークに展示されているエニグマ暗号機。キーボードとランプ盤、前面のプラグボードが見える
ブレッチリー・パークに展示されているドイツ軍のエニグマ暗号機。キーを押すたびにローターが回り、文字のずらし方が毎回変わった。写真:Christine Matthews(CC BY-SA 2.0/Wikimedia Commons)
ブレッチリー・パークに展示されている暗号解読機Bombeの再現機。色付きリングのドラムが何十個も並んでいる
エニグマ解読のためにチューリングらが開発した解読機「Bombe」の再現機。並んだドラムの回転で、ローターの組み合わせを機械的に総当たりした。写真:Vintage Fan 5678(CC BY-SA 4.0/Wikimedia Commons)
合言葉『リンゴ』で暗号化 同じ合言葉『リンゴ』で元に戻す 平文『秘密』 暗号文『#%&!』 平文『秘密』 ⚠️ 送信者と受信者が「まったく同じ合言葉」を持つ必要がある!

これらはすべて、暗号化するときも、元に戻すときも「同じ1つの合言葉」を使う**「共通鍵暗号」です。 現代でも、アメリカ政府標準のAES(Advanced Encryption Standard)**という超強力な共通鍵暗号が世界中で使われています。

しかし、共通鍵暗号には、有史以来どうしても解決できなかった**「たった1つの致命的な弱点」がありました。 それが、第6話でも触れた「鍵配送問題(合言葉をどうやって届けるのか?)」**です。

「見知らぬ相手と秘密通信をするには、事前に合言葉を共有しなければならない。しかし、合言葉をネットで送ったら、その合言葉を盗聴されて終わりじゃないか!」

通信を安全にするための合言葉を、安全に送る手段がない。この絶望的な矛盾に、人類は数千年間縛られ続けていたのです。


3. 本題:天才のひらめき「ハイブリッド暗号方式」

1970年代、この数千年の呪いを解いたのが、第6話で学んだ**「公開鍵暗号(南京錠と鍵を分ける方式)」**でした。

これを使えば、事前に合言葉を打ち合わせていなくても、世界中の誰からでも安全に秘密の手紙を受け取ることができます。

「なんだ、じゃあインターネットの通信を全部、この公開鍵暗号でやれば解決じゃないか!」と思いますよね。 ところが、ここで物理と数学の残酷な壁が立ちはだかりました。

公開鍵暗号の致命傷:「計算が重すぎる」

公開鍵暗号(RSAなど)は、数百桁の素数の掛け算や余りの計算を繰り返すため、コンピュータにとって猛烈に頭を使う重たい計算です。 どれくらい重いかというと、共通鍵暗号(AES)に比べて、なんと「約1,000倍」も計算に時間がかかるのです。

📺 YouTubeの4K動画データ(全部を公開鍵暗号で送ると…) 🧮 巨大な素数計算を何億回も回す! 💥 スマホのCPUが100%に張り付いて火を噴く!🔥 バッテリーが5分で蒸発し、動画がカクついて止まる!

もし、YouTubeの動画や重たい画像データをすべて公開鍵暗号で暗号化して送ったら、スマホやサーバーのCPUが悲鳴を上げ、あっという間に熱暴走してしまいます。

解決策:2つの暗号を合体させた「ハイブリッド暗号」

そこでエンジニアたちは、息を呑むほどエレガントな**「合わせ技(ハイブリッド暗号方式)」**を編み出しました。

「重たい公開鍵暗号は、通信の最初の一瞬だけ使おう! 『今回だけの使い捨ての合言葉(共通鍵)』を1回だけ南京錠に入れて安全に手渡し、合言葉が届いたら公開鍵はお役御免。以後の何ギガバイトもの本番通信は、超高速で軽い共通鍵暗号でやり取りしよう!」

(最初の一瞬だけ) ① 🏢 サーバー → 💻 ブラウザ:「うちの開いた南京錠(公開鍵)をあげるよ」 💻 ブラウザ:今回限りの使い捨ての合言葉(共通鍵)を手元で生成! ② 💻 ブラウザ → 🏢 サーバー:合言葉を南京錠に入れてカシャッと閉めて送る 🏢 サーバー:自分だけの秘密鍵で開けて、合言葉をゲット! 🤝 共有完了 → ③ あとは超高速な共通鍵暗号で爆速通信!🚀
  1. 安全な合言葉の受け渡し = 安全だが重い**「公開鍵暗号」**が一瞬だけ担当。
  2. その後の実際のWeb通信 = 軽くて速い**「共通鍵暗号」**が全力で担当。

この天才的な役割分担によって、**「事前の打ち合わせなしで、誰とでも」「コンピュータに負荷をかけず、超高速に」**安全な通信を行う道が開かれたのです。


4. 仕組みの種明かし:0.1秒の「TLSハンドシェイク」と「認証局の署名」

このハイブリッド暗号を使って、ブラウザとサーバーが通信の合言葉を決める0.1秒の儀式のことを、専門用語で**「TLSハンドシェイク(TLS握手)」と呼びます。 (※昔はSSLと呼ばれていましたが、弱点が見つかって改良され、現在の正式規格はTLS**です)。

しかし、ここで最後の、そして最大の疑問が残ります。

「サーバーから送られてきた『南京錠(公開鍵)』は、本当に本物のGoogleのものなのか? 途中のハッカーがすり替えた偽物の南京錠だったら、合言葉をハッカーに盗まれてしまうのでは?」

この「なりすまし」を防ぐために存在するのが、世界中から信頼されている中立の第三者機関**「認証局(CA:Certificate Authority)」**です。

🏢 Webサーバー(Google等)→ 🏛️ 認証局(CA):「私の公開鍵です」 🏛️ 認証局:身元を審査し、デジタル署名(ハンコ)を押す 📜 デジタル証明書 [サーバーの公開鍵 + 認証局のお墨付き印] 📜 証明書が、アクセスしてきた 💻 あなたのブラウザへ提示される ⭕ ブラウザが内蔵の認証局の鍵で検証 →『確かに本物のGoogleだ!』
  1. サーバーはあらかじめ、認証局に手数料を払って**「デジタル証明書(電子署名付きのお墨付き)」**を発行してもらいます。
  2. ブラウザがアクセスしたとき、サーバーは南京錠と一緒にこの「証明書」を提示します。
  3. あなたのスマホやWindowsの中には、最初から**「世界の信頼できる親分認証局(ルート認証局)」の公開鍵(印鑑帳)**が最初から埋め込まれています。
  4. ブラウザは手元の印鑑帳と照合し、「よし、確かに本物の認証局のハンコが押されているな!」と確認できて初めて、鍵マークを画面に灯すのです。

もし途中でハッカーが偽の証明書を割り込ませても、印鑑が一致しないため、ブラウザは即座に**「警告:この先は安全ではありません! 攻撃者がパスワードを盗もうとしている可能性があります!」**という真っ赤な画面を出して通信を力ずくで遮断します。

触って試す:TLSハンドシェイクのステップ体験

🤝 TLSハンドシェイクのステップ体験

「次へ」を押すと、ブラウザとサーバーの0.1秒の握手が1段ずつ進みます。各段で「何を確認しているか」に注目してください。

「次へ」を押して握手を始めましょう。


5. 現実世界のドラマ:かつてのカフェWi-Fi地獄と「Let’s Encrypt」革命

なぜ、現代ではすべてのWebサイトにHTTPSが強制されるようになったのでしょうか?

時計の針を2010年頃に戻しましょう。 当時、Webの9割以上はまだ暗号化されていない「http://」でした。 その結果、世界中のスターバックスや空港のフリーWi-Fiで、戦慄の事件が起きていました。

カフェで隣の人のTwitterが乗っ取られた「Firesheep事件」

2010年、ある技術者が「Firesheep(ファイア・シープ)」というブラウザの拡張機能を公開しました。 カフェの無料Wi-Fiに繋ぎ、このツールのボタンを1回押すだけで、同じWi-Fi電波を使っている周囲の客が送受信している「第7話で学んだCookie(セッション通行手形)」が、電波の海から丸見えで手元に降ってきたのです。

ハッカーはパスワードを知らなくても、画面に並んだ他人のアイコンを1クリックするだけで、隣の席でコーヒーを飲んでいる人のTwitterやFacebookのアカウントを、その場で一瞬で乗っ取ることができました。通信が平文(暗号化なし)だったため、電波を拾える人間にはすべてが丸見えだったのです。

昔の平文通信(HTTP) 暗号化なし(平文) 誰でも傍受可能! 📱 あなたのスマホ 📡 カフェのWi-Fi電波 😈 悪意ある隣人 パスワードやCookieが丸見え!💥 現代の暗号化通信(HTTPS) ハイブリッド暗号で完全暗号化 傍受されても… 📱 あなたのスマホ 📡 カフェのWi-Fi電波 😈 悪意ある隣人 『#%&!』という無意味な砂嵐に見える🛡️

世界を変えた「Let’s Encrypt」の登場

「すべてのWebサイトをHTTPSにして暗号化しなければ、人類のプライバシーは守れない!」 Googleやブラウザ開発者たちは立ち上がりました。

しかし、当時のサーバー証明書は、専門の業者から**「1枚あたり年間数万円〜数十万円」**で購入する高級品でした。大企業なら払えますが、個人ブロガーや趣味のサイト運営者が払える金額ではありません。

この壁を打ち砕いたのが、2015年に登場した非営利団体**「Let’s Encrypt(レッツ・エンクリプト)」です。 彼らは、「世界中のすべてのサーバーに、完全無料で、しかも全自動で証明書を配る」**というとんでもないシステムを稼働させました。

これに呼応して、Google Chromeなどの主要ブラウザは、 「これからは、暗号化されていないHTTPのサイトには『保護されていない通信』と赤字で警告を出し、検索順位も落とす!」 と宣言しました。

こうして、暗号通信は「大企業が特別なときだけ使うもの」から、「インターネットを歩くすべての人が身にまとうべき最低限の服」へと変わったのです。 あなたが今日、誰にも覗き見されずに安心してWebを閲覧できるのは、数千年に及ぶ暗号数学の進化と、Webの安全を信じて無料化を成し遂げた技術者たちの情熱のおかげなのです。


📝 3行で頭に入る「試験・実務の要点まとめ」


確認クイズ

📝 確認クイズ(3問)