
暗号鍵は、デジタルデータの取り扱いにおける暗号化を実現する際に利用するデータです。名前の通り暗号化における「鍵」の役割を果たす、情報セキュリティ対策において重要な技術の一つといえます。
暗号鍵にも複数の種類があるため、利用にあたってはそれぞれの仕組み、特徴を把握して使いわけることが重要です。また、暗号鍵を利用する場合、作成した鍵のライフサイクルまでを管理する必要もあります。
本記事では、暗号鍵の仕組みや方式、活用例、運用時の管理方法などを解説します 。
暗号鍵とは?
暗号鍵とは、電子データを暗号化するために用いられる暗号アルゴリズムのルールや手順などを記載した文字列です。
コンピューターおよびソフトウェア、インターネットなどのネットワーク上のあらゆる情報はデジタルデータとして扱われます。デジタルデータはコピーや加工などがしやすく非常に利便性が高いですが、その反面データが流出した時のリスクも大きいという特徴を持ちます。特に加工していないデータは平文とも呼ばれ、サイバー攻撃による流出が即時被害の発生へとつながる可能性が高いです。
デジタルデータの悪用を防ぐことができる技術がデータの暗号化と復号化です。暗号化とは、データを特定のルールや手順により簡単に解読できない形に変換することを意味します。また、復号とは暗号化されたデータをもとの解読可能な状態に変換しなおすことです。
暗号化・復号化のルールについては容易に解読できてはならず、また広く知れ渡っていては役に立ちません。そこで、暗号化を行う際に暗号鍵という個別のルールとなる文字列を発行し、データの機密性を高めます。
暗号鍵の中にも、鍵の共有相手の範囲により秘密鍵、公開鍵などの種類があり、代表的な方式については次項で紹介します。
暗号鍵の仕組みと種類
暗号鍵を用いた通信では、データの送受信者の両方が特定の暗号化アルゴリズムを用いて暗号化・復号化を行うことを前提とします。さらに暗号鍵の公開範囲により利用者に制限を設けてデータを保護しています。
鍵の公開範囲の違いから、下記の暗号方式に分けることができます。
公開鍵暗号方式(非対称暗号方式)
公開鍵暗号方式では、公開鍵と秘密鍵という鍵を用いて、データの暗号・複号化を行います。
データを受信する側が公開鍵と秘密鍵を生成し、公開鍵は誰でも取得できる状態にします。一方の秘密鍵は厳重に保管し、受信時に復号化に用います。秘密鍵が無ければ暗号化されたデータの中身を参照できないため、機密性が保たれるという仕組みです。暗号化と復号化の鍵が別々のため、非対称暗号方式とも呼ばれます。
代表的な暗号化のルール(アルゴリズム)として、RSA、DSA、ECDSAなどがあげられます。
著名な用途としては、Web通信における暗号化技術のSSL(Secure Sockets Layer)やデジタル署名などに利用されています。
共通鍵暗号方式(対称鍵暗号方式)
共通鍵暗号方式では、暗号化に利用する鍵と復号の際に利用する鍵が同一です。
データの通信者が暗号鍵を作成し、暗号化する側と復号化する側で鍵を共有します。通信の際に鍵を用いて暗号化を行い、受信側は鍵を用いて復号します。このため、対称鍵暗号方式とも呼ばれます。
共通鍵暗号方式は、暗号・復号に用いる鍵が同一のため、高速で大容量のデータの処理に向く特徴を持ちます。一方で、データの通信対象ごとに暗号鍵を生成するため、通信対象とともに暗号鍵も増えて管理が煩雑になるというデメリットもあります。
代表的な暗号化のルール(アルゴリズム)には、DES、AES、RC4があげられます。
幅広く利用されている技術で、メールやメッセージツール、ファイル暗号化などでも使われています。
ハイブリッド暗号方式
ハイブリッド暗号方式は、公開鍵暗号方式と共通鍵暗号方式を組み合わせた方式です。公開鍵暗号方式の機密性の高さと共通鍵暗号方式の高速な処理の両方のメリットを持ちますが、その分、処理は複雑となります。
代表的な利用例としては、インターネット通信暗号化技術のSSLの後継となるプロトコルTLS(Transport Layer Security)などで利用されています。
暗号鍵の管理方法
暗号鍵を用いたセキュリティ対策を実施する場合、漏えいに注意して取り扱う必要があります。鍵の流出がすぐにデータの流出へとつながってしまうためです。
暗号鍵の管理については、暗号鍵管理システム(CKMS :Cryptographic Key Management System)の設計、構築および運用・管理が以下のガイドラインにて示されています。
独立行政法人情報処理推進機構(IPA)「暗号鍵管理ガイドライン」
https://www.ipa.go.jp/security/crypto/guideline/ckms.html
暗号鍵管理ガイドラインは下記のような項目に分かれており、段階的にCKMSを用いた管理方法などを準備することが可能です。
- 暗号鍵の利用目的の明確化
- 方針、ポリシーの策定
- 目的にあった暗号方式、暗号アルゴリズムの選定
- 暗号鍵のライフサイクルの明確化
- 暗号鍵管理オペレーション
- 管理デバイスのセキュリティ対策
- アクセスコントロール など
暗号鍵の管理においては、以下を組み合わせてセキュリティを確保することが一般的です。
- 安全な生成(Secure Generation)
- 安全な保存(Secure Storage)
- 安全な配布とアクセス制御(Secure Distribution and Access Control)
- 鍵のローテーション(Key Rotation)
- 鍵のバックアップとリカバリ(Backup and Recovery)
- 鍵の安全な廃棄(Secure Destruction)
- 監査と監視(Auditing and Monitoring)
暗号鍵の用途
暗号鍵の利用には、「機密性確保」、「完全性確保」、「認証」という大きく3つの目的があります。
暗号鍵の用途については、米国国立標準技術研究所(NIST)のNIST Special Publication 800-130で下記のような例が挙げられています。
- データ の暗号化/復号(Encryption/Decryption)
- 鍵ラッピング(Key Wrapping)
- 鍵配送(Key Transport)
- 鍵合意(Key Agreement)
- 署名(Signature)
- 認証(Authentication)
- 認可(Authorization)
- 乱数生成(Random Number Generator(RNG))
- マスタ鍵(Master Key)
これらの用途に加え、公開(Public)、プライベート(Private)、対称(Symmetric)の三つの特性や静的(Static)、一時的(Ephemeral)のオプションを組み合わせることで、さらに細かな鍵タイプやメタデータに分かれます。
より具体的な暗号鍵の用途としては、下記が挙げられます。
- インターネット通信
- メール
- メッセージツール
- 電子署名
- デバイスへのデータの格納
- ファイル共有
- 仮想通貨
- 決済ソリューション など
いずれの用途においても、暗号鍵の特徴を理解したうえで、正しく使い分けることが肝要です。