そもそも暗号化とは
暗号化とは、第三者に読まれても意味が分からないように、情報を一定のルールで変換する技術です。元の文を「平文」、変換後を「暗号文」と呼び、変換のルールを「鍵」と言います。古代ローマのカエサルは「3文字ずらして書く」というシーザー暗号を使っていたとされ、暗号の歴史は2,000年以上あります。現代の暗号は数学を使っていて、スーパーコンピュータでも数百〜数千年かかるレベルの強さがあります。
暗号化の目的は「秘密にすること」だけではありません。通信相手が本物かを確かめる、途中で内容が改ざんされていないかを確認する、送った本人があとから否定できないようにする、といった役割もあります。Web、SNS、ネット銀行、ゲームのログイン、学校のクラウドサービスまで、暗号化は見えないところで毎日動いています。
共通鍵暗号と公開鍵暗号
共通鍵暗号は、暗号化と復号で同じ鍵を使う方式(AES等)。処理が速い反面、相手に鍵をどう安全に渡すかが課題です。公開鍵暗号は、公開鍵と秘密鍵のペアを使い、公開鍵で暗号化したものは秘密鍵でしか開けない仕組み(RSAやECC)。これにより、相手の公開鍵さえ知っていれば、誰にも見られずに秘密のメッセージを送れます。インターネットの安全はこの仕組みに支えられています。
HTTPSが安全な理由
HTTPSは、最初の鍵交換だけ公開鍵暗号で安全に行い、本番のデータは速い共通鍵暗号で送る、ハイブリッド方式を採用しています。これにより「速さ」と「安全な鍵交換」を両立しています。URL欄の鍵マークは、サーバーの身元証明(証明書)が認証局によって発行されたものであるサインです。
ただし、鍵マークは「そのサイトとの通信が暗号化されている」ことを示すだけです。偽サイトでもHTTPSを使うことはできます。たとえば、銀行に似せた偽サイトが鍵マーク付きで表示されることもあります。安全確認では、鍵マークだけでなく、URLのドメイン名が本物か、メールやSNSのリンクから直接入っていないかも見ます。
身近な暗号化の例
LINEのメッセージは「エンドツーエンド暗号化(E2EE)」で守られていて、LINE社のサーバーですら中身が読めない仕組み(送信者と受信者の端末でしか復号できない)になっています。WhatsAppやSignalも同じです。Apple のiMessage、メッセンジャーアプリの一部もE2EEを採用。さらに、PCのストレージ全体を暗号化する機能(WindowsのBitLocker、MacのFileVault)も標準で利用できます。
パスワード管理でも暗号の考え方が使われます。ただし、サービス側がパスワードを保存するときは、元に戻せる暗号化ではなく、元に戻せない「ハッシュ化」を使うのが基本です。ユーザー本人が忘れたパスワードをサービス会社が教えられないのは、安全な設計では元のパスワードを保存していないからです。
気をつけたい落とし穴
- 「鍵マークがあるサイトは絶対安全」と思い込む。HTTPS自体は通信路の暗号化で、サイトの中身が悪意あるかは別問題
- 古い暗号(DES、MD5など)を今でも使う。現在のPCで簡単に破られるので、AES・SHA-256以上を使う
- パスワードを「暗号化」と「ハッシュ化」を混同する。パスワード保存は不可逆のハッシュ化が正解
将来どう役立つ?
暗号化はインターネットの基盤技術なので、ITエンジニアは全員ある程度の知識が必要です。特にWebエンジニア、セキュリティエンジニア、クラウドエンジニア、ブロックチェーン技術者では深い理解が求められます。今のうちにシーザー暗号や公開鍵の概念を理解しておくと、大学の情報科学やCTF(セキュリティ大会)で学びやすくなります。
今日からできること
- 普段使うサイトのURL欄を見て、鍵マークとhttpsを確認する習慣をつける
- 大事なZIPファイルを送るとき、AES暗号化対応の7-Zipなどでパスワードをかける
- 「シーザー暗号」「RSA暗号」をネットで検索し、紙とペンで簡単な暗号化体験をしてみる
まとめ
確認 暗号化の目的は?