暗号技術の基礎ガイド — ハッシュ関数・暗号化・デジタル署名の仕組み

1. ハッシュ関数 — 一方向の指紋

ハッシュ関数は任意の長さのデータから固定長の「ハッシュ値(ダイジェスト)」を生成する一方向関数です。同じ入力からは常に同じハッシュ値が得られますが、ハッシュ値から元のデータを復元することは計算上不可能です。

アルゴリズム出力長安全性(2024年時点)主な用途
MD5128bit❌ 破られているレガシーシステム(非推奨)
SHA-1160bit❌ 衝突発見済みGit(移行中)
SHA-256256bit✅ 安全SSL証明書・ブロックチェーン
SHA-3可変✅ 安全次世代標準
bcrypt184bit✅ 安全パスワード保存専用

⚠️ 注意:MD5とSHA-1は衝突攻撃(異なる入力から同じハッシュ値を生成する攻撃)が現実的なコストで可能になっているため、新規のシステムでは使用しないでください。

2. 暗号化 — 秘密を守る技術

共通鍵暗号(対称暗号):送信者と受信者が同じ鍵を使う。AES(Advanced Encryption Standard)が現在の標準。処理が高速。

公開鍵暗号(非対称暗号):公開鍵で暗号化、秘密鍵で復号する。RSAやECDSAが代表的。鍵の配送問題を解決するが処理が遅い。

実際の通信(HTTPS等)では、公開鍵暗号で共通鍵を交換し、その共通鍵でデータを暗号化する「ハイブリッド暗号」が使われています。

3. デジタル署名 — 改ざん検知と本人確認

デジタル署名は「データの送信者が本物か」「データが改ざんされていないか」を検証する技術です。送信者が秘密鍵でデータのハッシュ値を暗号化(署名)し、受信者が公開鍵で復号して検証します。SSL証明書・ソフトウェアの署名・電子契約に使われています。

暗号技術の歴史——シーザー暗号からAES-256まで

暗号の歴史は紀元前にまで遡ります。ジュリアス・シーザーが使った「文字をN文字ずらす」シーザー暗号から、第二次世界大戦のエニグマ暗号機、そして現代のAES-256まで、暗号技術は常に「破る側」との戦いの中で進化してきました。

対称鍵暗号と公開鍵暗号の違い

対称鍵暗号(AES、DESなど)は「暗号化と復号に同じ鍵を使う」方式です。高速ですが、「鍵をどうやって安全に相手に渡すか」という鍵配送問題があります。

公開鍵暗号(RSA、楕円曲線暗号など)は「公開鍵で暗号化、秘密鍵で復号」という非対称な方式です。鍵配送問題を解決しましたが、対称鍵暗号より処理が遅いため、実際のHTTPS通信では「公開鍵暗号で対称鍵を安全に共有し、以降の通信は対称鍵暗号で行う」というハイブリッド方式が採用されています。

方式代表的アルゴリズム速度主な用途
対称鍵暗号AES-256, ChaCha20高速データ暗号化、VPN、ディスク暗号化
公開鍵暗号RSA-2048, Ed25519低速鍵交換、デジタル署名、SSL/TLS

ハッシュ関数——暗号化とは違う「一方向変換」

ハッシュ関数は暗号化のように「元に戻す」ことを前提としていません。任意の長さのデータを固定長の「指紋」(ハッシュ値)に変換する一方向関数です。

⚠️ パスワードを平文やMD5で保存しているサービスは危険です。漏洩時に全ユーザーのパスワードが即座に露出します。Argon2やbcryptを使用した安全なハッシュ化が必須です。

量子コンピュータ時代の暗号——ポスト量子暗号

現在のRSAや楕円曲線暗号は、量子コンピュータが実用化されると数分で解読される可能性があります。これに備えて、NIST(米国国立標準技術研究所)は2024年にポスト量子暗号の標準規格を策定しました。

ML-KEM(CRYSTALS-Kyber)やML-DSA(CRYSTALS-Dilithium)といった格子ベースの暗号は、量子コンピュータでも効率的に解けない数学的問題に基づいています。GoogleやAppleはすでにiMessageやChromeにポスト量子暗号の実装を開始しています。

よくある質問(FAQ)

Q. SSL/TLSとHTTPSの関係は?

A. HTTPS = HTTP + TLS です。TLS(Transport Layer Security)はSSLの後継プロトコルで、Webサイトとブラウザ間の通信を暗号化します。現在「SSL証明書」と呼ばれているものは、技術的にはTLS証明書です。

Q. エンドツーエンド暗号化(E2EE)とは?

A. 送信者と受信者だけが内容を復号できる暗号化方式です。サービス提供者(LINEやWhatsApp)ですら内容を見ることができません。Signal、WhatsApp、LINEの「レターシーリング」がE2EEを実装しています。

まとめ

暗号技術はインターネットのセキュリティの基盤です。ハッシュ関数はデータの整合性検証、暗号化は秘密情報の保護、デジタル署名は改ざん検知と本人確認に使われます。