暗号化 あんごうか
簡単に言うとこんな感じ!
データを「鍵がないと読めないスクランブル状態」に変換することだよ! 手紙を封筒に入れるんじゃなくて、鍵を持っている人しか読めない「謎の暗号文」に書き換えちゃうイメージ。盗み見されても意味不明な文字列にしか見えないから安心なんだ!
暗号化とは
**暗号化(Encryption)とは、データを特定のアルゴリズム(計算手順)と鍵(Key)を使って、第三者が読み取れない形式に変換するプロセスのことです。変換されたデータを暗号文(Ciphertext)と呼び、元のデータは平文(Plaintext)と呼びます。正しい鍵を持つ相手だけが暗号文を元の平文に戻す復号(Decryption)**を行えます。
インターネット上でパスワードやクレジットカード番号、社内の機密文書などをやり取りする際、データはさまざまな中継地点を経由します。そのどこかで盗み見されたとしても、暗号化されていれば情報は守られます。現代のビジネスでオンラインバンキング・クラウドストレージ・テレワークが当たり前になった今、暗号化はあらゆるITシステムの「最後の砦」とも言える技術です。
暗号化の強度は、アルゴリズムの設計と鍵長(Key Length)に大きく依存します。鍵長が長いほど総当たり攻撃(ブルートフォース攻撃)への耐性が高まります。現在はAES-256やRSA-2048以上が一般的な推奨水準です。
暗号化の2大方式
暗号化には大きく分けて「共通鍵暗号方式」と「公開鍵暗号方式」の2種類があります。それぞれ特性が異なるため、現実のシステムでは組み合わせて使われます。
| 項目 | 共通鍵暗号方式 | 公開鍵暗号方式 |
|---|---|---|
| 別名 | 対称鍵暗号 / Symmetric | 非対称鍵暗号 / Asymmetric |
| 鍵の本数 | 1本(送受信者で共有) | 2本(公開鍵+秘密鍵) |
| 代表アルゴリズム | AES、DES、3DES | RSA、ECDSA、EdDSA |
| 処理速度 | 速い ✅ | 遅い ⚠️ |
| 鍵の配送問題 | あり(事前に共有が必要) | なし(公開鍵は公開してよい) |
| 主な用途 | 大量データの暗号化 | 鍵交換・デジタル署名 |
🔑 覚え方:「共通は1本・公開は2本」
共通鍵は「合鍵を1本コピーして渡す」イメージ。公開鍵は「誰でも投入できるポスト(公開鍵)と、自分だけ開けられる鍵(秘密鍵)」のイメージで覚えると混乱しにくいです。
ハイブリッド暗号:いいとこ取りの実践
TLSなど実際の通信では、ハイブリッド暗号が使われます。「公開鍵暗号で共通鍵を安全に交換し、以降の通信は速い共通鍵暗号で行う」という2段構えです。
①公開鍵暗号で「共通鍵」を安全に受け渡し
[クライアント] ──公開鍵で暗号化──▶ [サーバー]
◀──秘密鍵で復号──
②以降は共通鍵暗号で高速通信
[クライアント] ══共通鍵で暗号化══ [サーバー]
歴史と背景
- 古代〜近代:カエサル暗号(文字をずらす)やエニグマ(第二次大戦の機械式暗号機)など、暗号は戦争・外交の道具として発展
- 1977年:IBMが開発した DES(Data Encryption Standard) が米国政府標準に。56ビット鍵の共通鍵暗号
- 1977年:Rivest・Shamir・Adleman の3名が RSA 公開鍵暗号を発表。鍵配送問題を革命的に解決
- 1990年代:インターネット普及に伴い、SSL(後のTLS)が登場。Webでの暗号化通信が一般化
- 2001年:DESの後継として AES(Advanced Encryption Standard) が米国標準に採用。現在も主流
- 2010年代〜:スマートフォン・クラウド時代にあわせ、楕円曲線暗号(ECC)が普及。同じ安全強度でも鍵が短く、モバイルに最適
- 2020年代〜:量子コンピュータの発展を見越した耐量子暗号(Post-Quantum Cryptography) の標準化が進行中(NISTが2024年に最初の標準を公開)
共通鍵 vs 公開鍵:仕組みの対比
暗号化が使われている身近な場面
| 場面 | 使われている暗号化 | 見分け方 |
|---|---|---|
| Webサイト閲覧 | TLS(AES + 公開鍵) | URLが https:// で始まる |
| Wi-Fi接続 | WPA3(AES-128/256) | Wi-Fi設定の「セキュリティ」欄 |
| スマホのロック画面 | AES-256(端末ストレージ) | iPhoneはデフォルトで有効 |
| メール(機密) | S/MIME または PGP | メールクライアントの鍵設定 |
| クラウドストレージ | AES-256(保存時) | サービスの「セキュリティ仕様」欄 |
| VPN通信 | AES-256-GCM など | VPNアプリのプロトコル設定 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 5246 | TLS 1.2 — Webの暗号化通信の標準(現在はTLS 1.3に移行推奨) |
| RFC 8446 | TLS 1.3 — 現行のWebセキュリティ通信標準 |
| RFC 3447 | PKCS #1 — RSA暗号の実装仕様 |
| RFC 5652 | CMS(Cryptographic Message Syntax) — S/MIMEなどで使われる暗号メッセージ形式 |
| RFC 4880 | OpenPGP — メール暗号化・署名の標準 |