データ暗号化
約 4 分で読めます
最終更新: 2026-03-05
データ暗号化とは
データ暗号化とは、平文 (読める状態のデータ) を暗号アルゴリズムと鍵を用いて暗号文 (読めない状態のデータ) に変換する技術です。正しい鍵を持つ者だけがデータを復号して元の平文に戻せるため、データの機密性を保護する最も基本的な手段です。
暗号化は大きく 2 つの場面で使われます。1 つは「保存時の暗号化」(Encryption at Rest) で、ストレージに保存されたデータを暗号化します。ディスクの盗難やストレージへの不正アクセスに対する防御です。もう 1 つは「通信時の暗号化」(Encryption in Transit) で、ネットワーク上を流れるデータを暗号化します。TLS/SSL がその代表例です。
現代のセキュリティ設計では、この両方を組み合わせることが標準的な要件となっています。
共通鍵暗号と公開鍵暗号の仕組み
暗号方式は大きく共通鍵暗号 (対称鍵暗号) と公開鍵暗号 (非対称鍵暗号) に分類されます。
共通鍵暗号は、暗号化と復号に同じ鍵を使います。代表的なアルゴリズムは AES (Advanced Encryption Standard) で、128 ビット、192 ビット、256 ビットの鍵長を選択できます。処理速度が速く、大量のデータの暗号化に適しています。課題は鍵の共有方法です。通信相手に安全に鍵を渡す手段が必要になります。
公開鍵暗号は、暗号化用の公開鍵と復号用の秘密鍵という異なる 2 つの鍵を使います。RSA や楕円曲線暗号 (ECC) が代表的です。公開鍵は誰にでも配布でき、秘密鍵を持つ者だけが復号できるため、鍵配送問題を解決します。ただし共通鍵暗号に比べて処理が遅いため、大量データの暗号化には向きません。
実際の通信では、公開鍵暗号で共通鍵を安全に交換し、その共通鍵でデータ本体を暗号化するハイブリッド方式が標準です。TLS/SSL はまさにこの方式で動作しています。
暗号化の実装パターンと選定基準
実務で暗号化を導入する際の主要なパターンを整理します。
ディスク暗号化: OS レベルでストレージ全体を暗号化します。Windows の BitLocker、macOS の FileVault、Linux の LUKS が代表的です。デバイス暗号化として端末の紛失・盗難対策に有効です。
ファイル単位の暗号化: 特定のファイルやフォルダだけを暗号化します。エンドツーエンド暗号化に対応したクラウドストレージや、PGP/GPG によるファイル暗号化がこのパターンです。
データベース暗号化: TDE (Transparent Data Encryption) でデータベースファイル全体を暗号化する方式と、カラム単位で特定のフィールドだけを暗号化する方式があります。カラム暗号化はアプリケーション側での実装が必要ですが、DBA にも平文を見せない強力な保護を実現します。
選定基準として、保護対象の範囲、パフォーマンスへの影響、鍵管理の運用負荷、コンプライアンス要件 (クラウドストレージセキュリティの基準等) を総合的に評価してください。
鍵管理の重要性と実践
暗号化の安全性は、アルゴリズムの強度だけでなく鍵管理の適切さに大きく依存します。どれほど強力な暗号アルゴリズムを使っても、鍵が漏洩すればデータは復号されてしまいます。
鍵管理の基本原則は、(1) 鍵と暗号化データを同じ場所に保管しない、(2) 鍵のローテーション (定期的な更新) を実施する、(3) 鍵へのアクセスを最小権限の原則で制御する、(4) 鍵のバックアップと復旧手順を整備する、の 4 点です。
クラウド環境では、AWS KMS、Azure Key Vault、Google Cloud KMS などのマネージド鍵管理サービスを利用するのが現実的です。これらのサービスは HSM (Hardware Security Module) で鍵を保護し、鍵のローテーション、アクセス制御、監査ログを統合的に提供します。
鍵を紛失するとデータを永久に復号できなくなるため、鍵のバックアップは暗号化戦略の中で最も重要な要素の 1 つです。
よくある誤解
- HTTPS で通信しているからサーバー上のデータも暗号化されている
- HTTPS (TLS) は通信経路の暗号化であり、サーバーに到達したデータは復号された状態で処理・保存されます。サーバー上のデータを保護するには、保存時の暗号化を別途実装する必要があります。
- 暗号化すればデータ漏洩のリスクはゼロになる
- 暗号化はデータの機密性を保護しますが、鍵の漏洩、実装の脆弱性、サイドチャネル攻撃などのリスクは残ります。また、暗号化はデータの改ざん検知や可用性の保護には直接寄与しません。多層防御の一要素として位置づけてください。
共通鍵暗号と公開鍵暗号の比較
共通鍵暗号 (AES 等)
暗号化と復号に同じ鍵を使用。処理速度が速く大量データに適する。鍵の安全な共有が課題。鍵長 128/256 ビットが主流。
公開鍵暗号 (RSA/ECC 等)
公開鍵と秘密鍵のペアを使用。鍵配送問題を解決するが処理が遅い。デジタル署名にも利用可能。RSA 2048 ビット以上または ECC 256 ビット以上が推奨。