暗号化
情報を、鍵を持つ者だけが元に戻せる形に変える技術です(英語では encryption)。元に戻すことを復号と呼びます。
機密性を守る代表的な手段です。
暗号化が守るもの、守らないもの
| 性質 |
暗号化との関係 |
| 機密性 |
主な目的。鍵を持たない者に中身を読ませない |
| 完全性 |
暗号化だけでは確かめられない。改ざんの検知には、認証付き暗号、メッセージ認証コード、デジタル署名を使う |
| 可用性 |
直接は関係しないが、鍵を失うと、暗号化したデータは誰にも読めなくなる |
暗号化は
アクセス制御の代わりにはなりません。復号できる権限を持つ者(や、その者になりすました攻撃者)には、中身が見えます。
2つの型
暗号の教科書『Handbook of Applied Cryptography』は、暗号の手法を、共通鍵(対称鍵)と公開鍵の2つの型に分けています。
| 型 |
しくみ |
特徴 |
| 共通鍵暗号 |
暗号化と復号に同じ鍵を使う |
速く、大量のデータに向く。鍵を相手と安全に共有する必要がある |
| 公開鍵暗号 |
公開してよい公開鍵と、本人だけが持つ秘密鍵の組(鍵ペア)を使う |
鍵の共有の問題を解きやすいが、処理は重い |
公開鍵暗号は、用途によって使うアルゴリズムが違います。CRYPTREC 暗号リスト(最終更新 2026年3月30日)の電子政府推奨暗号リストも、用途ごとに分けて載せています。
| 用途 |
電子政府推奨暗号リストの例 |
| 守秘(暗号化) |
RSA-OAEP |
| 鍵共有 |
DH、ECDH |
| 署名 |
ECDSA、EdDSA、RSA-PSS など(デジタル署名) |
共通鍵暗号では、128ビットのブロック暗号の AES と Camellia、認証暗号の ChaCha20-Poly1305 などが載っています。
組み合わせて使う
実際の通信では、2つの型を組み合わせます。たとえば
TLS 1.3(RFC 8446)では、接続の始めの手順(ハンドシェイク)で、使う方式を決め、相手を認証し、共有の鍵の材料を作ります。その後のデータは、作った鍵と共通鍵の認証付き暗号(AEAD)で守ります(
TLS)。
どこに使うか
- 通信の暗号化:ネットワーク上の盗聴や改ざんを防ぐ(通信の暗号化・TLS・VPN)
- 保存時の暗号化:ディスクやデータベースに保存したデータを守る(保存時暗号化)。読む権限を持つ者には自動で復号される方式では、その権限を乗っ取られると守りにならない点に注意する
鍵が暗号化の成否を決める
アルゴリズムが強くても、鍵が漏れれば意味を失い、鍵を失えばデータを失います。鍵の生成・保管・ローテーション・廃棄は
鍵管理、鍵を守る専用の機器は
HSMを参照してください。暗号化したデータと同じ場所に鍵を平文で置くのは、典型的な誤りです。
選び方と見直し
- 評価された暗号と鍵長を選ぶ。独自の暗号を作らない(CRYPTREC 暗号リストなど)
- 解析が進むと推奨は変わる。CRYPTREC は、推奨すべき状態ではなくなった暗号を「運用監視暗号リスト」に移している(共通鍵ブロック暗号への攻撃モデル)
- 量子計算機に備えた置き換えも始まっている(耐量子計算機暗号)
関連するページ
出典
確認日:2026年10月15日
最終更新:2026年10月15日 14:38