データの暗号化の方式と種類:暗号化ビギナーズガイド
Security Chrissy Kiddデータの暗号化は、多くの組織がデータを保護するために使用している方法の1つです。暗号化は、平文(読んで理解できるデータ)を、一意の暗号化キーを使わなければ理解できない暗号文(ランダム化されたデータ)に変換します。
言い換えれば、暗号化はデータを難読化し、閲覧権限がある人のみがその内容を読めるようにするセキュリティ対策の1つです。
暗号化には多くの種類があり、組織のセキュリティ要件に適した暗号化アルゴリズムと方式を選択することが重要です。この記事では以下のトピックを取り上げます。
- 対称暗号化方式と非対称暗号化方式の特徴
- 一般的な暗号化アルゴリズムの概要とそれぞれの用途
- データ暗号化のヒントとベストプラクティス
ではさっそく始めましょう。
データ暗号化の仕組み
データを暗号化する目的は、閲覧権限がない人に情報が見られるのを防ぐことです。実際には、ランダムデータに見せかけて無意味な内容と思わせることで情報を隠す方法の1つです。暗号化を適用するのは、データが主に次の3つの状態にあるときです。
- 移動/転送中
- 保存中
- エンドツーエンド(データライフサイクル全体)
組織は、データベース、ファイル、ドキュメント、メッセージ、その他の通信チャネルで、ネットワークを通じて機密情報をやり取りするときにデータを暗号化できます。
忘れてはならない重要な点は、暗号化が資産を保護するという正当な目的以外に、悪い目的にも使用されることです。実際、今日急増しているランサムウェア攻撃では、これまで以上に多くのファイルを「人質」にするために、高速な暗号化方式が使われています。Splunkのサイバーセキュリティ調査チームであるSURGeは、最新調査の中で次のように報告しています。
暗号化の種類
さまざまなデータタイプやセキュリティユースケースに応じて、暗号化には数多くの方式が存在します。データの暗号化方式には、大きく分けて「対称暗号化」と「非対称暗号化」の2種類があります。
対称暗号化
対称暗号化方式では、平文の暗号化と暗号文の復号化に1つの秘密鍵を使用します。送信者は、非公開の手段を使って受信者に秘密鍵を渡します。秘密鍵は、閲覧権限がある受信者のみに渡します。対称暗号化は、秘密鍵暗号化とも呼ばれます。
対称暗号化でよく使われるアルゴリズムには次のものがあります。
- AES (Advanced Encryption Standard)
- DES (Data Encryption Standard)
- TDES (Triple DES)
- Twofish
各アルゴリズムについては後ほど取り上げます。
非対称暗号化
非対称暗号化は、公開鍵暗号化とも呼ばれます。この方式では、公開鍵と秘密鍵の2つの鍵を使用します。暗号化と復号化に異なる鍵を使うのが特徴です。
- 公開鍵は、その名前が示すとおり公開されている鍵であり、閲覧権限のある受信者と共有する鍵です。
- 公開鍵で暗号化されたデータを復号化するには、対応する 秘密鍵 が必要です。この場合、同じ公開鍵を使ってデータを復号化することはできません。
非対称暗号化を使えばオンラインでデータを安全に転送できるため、セキュリティレベルが上がります。非対称暗号化方式でよく使われるアルゴリズムには、RSA (Rivest Shamir Adleman)やECC (Elliptic Curve Cryptography)があります。
対称暗号化方式と非対称暗号化方式の違い
対称暗号化と非対称暗号化では、使用する鍵の種類が異なる以外にも、いくつかの相違点があります。
- 非対称暗号化は、対称暗号化よりも新しい方式で、秘密鍵を受信者と共有する必要がありません。ただし、重要な点として、この方式は対称暗号化よりも時間がかかります。
- 対称暗号化は大規模なデータセットの暗号化に最適です。この方式では、元の平文ファイルに比べて暗号文が小さくなります(非対称暗号化の場合は逆に大きくなります)。
非対称暗号化方式と対称暗号化方式ではそれぞれ独自のアルゴリズムが使われ、アルゴリズムごとに、機密データを隠すための技法が異なります。次のセクションでは、この点について説明します。
クイックメモ:ハッシュ化の仕組み
ハッシュ化は、数学関数を使って、あらゆるサイズの入力テキスト(ファイル、メッセージなど)を固定長の値に変換するための技法です。
ハッシュ化と暗号化は混同されがちですが、きちんと区別することが重要です。ハッシュでは鍵を使用しないため、秘匿性は高くありません。また、ハッシュは再生成が可能です。
ハッシュ化は通常、データの格納と取り出しの手段として暗号化とともに使われます。一般的な用途には次のものがあります。
- ドキュメントの検証
- デジタル署名
- 整合性管理
一般的なデータ暗号化アルゴリズムと技法
暗号化方式は、以下を含むさまざまな要因によって区別されます。
- 使用する鍵のタイプ
- 暗号鍵の長さ
- 暗号化するデータブロックのサイズ
ここからは、ビジネスの機密データの保護によく使われる7つの暗号化アルゴリズムについて見ていきます。
1. AES (Advanced Encryption Standard)
AESは、世界で最もよくデータの暗号化に使われている対称暗号化アルゴリズムです。データ暗号化のゴールドスタンダードとも言われ、米国を含む世界中の多くの政府機関で使われています。
AESでは、一度に128ビットのデータブロックが暗号化され、次の用途で使用されます。
- ファイルやアプリケーションの暗号化
- Wi-Fiセキュリティ
- VPN
- SSL/TLSプロトコル
2. TDES (Triple Data Encryption Standard)
TDESは、「トリプルDES」や「3DES」とも呼ばれ、56ビットの鍵を使ってデータブロックを暗号化する対称暗号化アルゴリズムです。このアルゴリズムは、DES (Data Encryption Standard)アルゴリズムを進化させてセキュリティを強化したものです。その名前が示すとおり、TDESではデータの各ブロックにDES暗号化が3回適用されます。
TDESは、FirefoxやMicrosoft Officeなどのアプリケーションで採用され、次のようなデータの暗号化に使われます。
- ATMの暗証番号
- UNIXパスワード
- 決済システム
今日、一部の大手IT企業が特定のツールや製品で、今後TDESの使用を廃止することを表明しています。NISTによると、セキュリティの点でTDESよりもAESの方が全体的に優れています。
3. RSA (Rivest Shamir Adleman)
RSAは、非対称暗号化アルゴリズムです。インターネット経由の通信でデータを暗号化するときに使われ、ランダムな2つの大きな素数の素因数分解を利用します。その計算によって大きな素数を生成することで、元の素数を知っている人だけがメッセージを復号化できるようにします。
元の素数を割り出すのが非常に難しいため、この暗号化技法は組織内の機密データをハッキングから守るために効果的です。このアルゴリズムにはいくつかの制約もあります。特に影響があるのは、データのサイズが大きいほど暗号化に時間がかかることです。それでも、次のデータの暗号化にRSAがよく使われます。
- 小規模なドキュメントシステム
- ファイル
- メッセージ
- 決済
4. Blowfish
Blowfishは対称暗号化アルゴリズムで、もともとはDESの代替として設計されました。このアルゴリズムでは、64ビットのブロックサイズが個別に暗号化されます。
Blowfishは、柔軟性、スピード、レジリエンスに優れているのが特徴です。また、パブリックドメインであるため幅広く利用されていることも魅力の1つです。次のセキュリティ対策でよく使われています。
- eコマースプラットフォーム
- パスワード管理システム
- メールデータの暗号化ツール
5. Twofish
Twofishは、Blowfishの次世代版で、128ビットのデータブロックを暗号化する対称暗号化アルゴリズムです。鍵スケジュールがより複雑で、暗号鍵のサイズに関係なく16ラウンドでデータを暗号化します。前身のBlowfishと同じくパブリックドメインですが、Blowfishよりもずっと高速で、ハードウェアとソフトウェアの両方に適用できます。
Twofishはファイルやフォルダーの暗号化に特によく使われます。
6. FPE (Format-Preserving Encryption)
FPEも対称暗号化アルゴリズムです。「Format-Preserving Encryption (フォーマット保持暗号化)」の名前が示すとおり、暗号化の際にデータの形式(と長さ)が維持されます。たとえば電話番号で考えてみましょう。元の番号が「012-345-6789」の場合、暗号文では、形式はそのままで番号だけがランダム化され、「313-429-5072」のようになります。
FPEは、クラウド管理のソフトウェアやツールのセキュリティ保護に使われることがあります。Google Cloudやアマゾン ウェブ サービス(AWS)などの人気の高いクラウドプラットフォームでは、クラウドデータの暗号化にこのアルゴリズムが使われています。
7. ECC (Elliptic Curve Cryptography)
ECCは、比較的新しい非対称暗号化アルゴリズムです。ある方程式の解となる点に沿った曲線を使用する、非常に複雑な技法です。RSA暗号化と比べて、鍵が短いにもかかわらず高速かつ強力です。ECCは以下の用途に利用できます。
- Web通信のセキュリティ(SSL/TLSプロトコル)
- 一方向のメール暗号化
- ビットコインなどの仮想通貨やNFTのデジタル署名
データの暗号化方式の課題
暗号化方式のメリットは明らかですが、欠点もいくつかあります。とはいえ、後述のベストプラクティスを適切に取り入れれば、これらの課題を克服または緩和できます。
鍵の管理
組織内でデータの暗号化方式を運用する場合の大きな課題の1つは、鍵の管理です。復号化に必要な鍵は、どこかに保存する必要があります。残念ながら、その場所は思ったよりも安全性が低いことがよくあります。サイバー攻撃者は、鍵の情報が保管されている場所の見当をつけるのが得意で、その場所が見つかってしまえば組織とネットワークのセキュリティに大きな脅威をもたらします。
鍵の管理ではバックアップとリストアも考慮する必要があるため、その点でも手間がかかります。災害の発生時には、鍵の取得やバックアッププロセスによって業務の復旧が遅れる場合もあります。
(関連記事:脆弱性や脅威と全体的なリスクとの関係)
ブルートフォース攻撃
ブルートフォース攻撃に対する脆弱性は、暗号化への脅威としてはあまり一般的ではありませんが、深刻な問題です。ブルートフォース攻撃では、攻撃者が復号鍵を 推測 して攻撃を試みます。現代のコンピューターシステムでは、考えられる文字列のパターンを何百万、何十億単位で生成できるため、暗号鍵は複雑であるほど強力になります。
今日の暗号化アルゴリズムと強力なパスワードを組み合わせれば、通常はこの種の攻撃に耐えられます。ただし、コンピューティング技術は進化し続けており、将来的にはデータの暗号化方式に実質的な脅威をもたらすことになるでしょう。
データの暗号化戦略のベストプラクティス
データの暗号化は、組織のデータを保護するための最善の方法の1つです。とはいえ、多くのことがそうであるように、暗号化の効果を得るには、入念に戦略を立てて適切に実行する必要があります。このセクションでは、データの暗号化アルゴリズムと技法の効果を最大限に得るためのベストプラクティスをご紹介します。
1. セキュリティ要件を定義する
組織の全体的なセキュリティ態勢を把握することは、暗号化戦略を立てるための重要な一歩です。暗号化は技法によって強度も処理能力もさまざまであるため、ソリューションを購入する前に現在のセキュリティニーズを評価することが大切です。
セキュリティ態勢の評価では、次のような作業を行います。
- 脅威評価を実施して、システムに残る脆弱性を洗い出します。
- チームや関係者と話し合って、戦略に影響を与える可能性のあるビジネス上の意思決定、現在の状況、コンプライアンス規制について確認します。
- 実績のあるサイバーセキュリティフレームワークなど、規範となる資料を参照します。
2. データを分類する
最初のステップを終えたら、次に、現在保管または送受信しているデータのタイプを調査します。これには、顧客情報から、財務データ、組織内のアカウントの詳細、さらには組織の機密情報まで、あらゆる種類のデータが含まれます。その後、各タイプのデータを次の基準で分類します。
- 機密度
- 規制の対象かどうか、どの規制の対象か
- 使用/要求頻度
(関連記事:データ構造、データレイクとデータウェアハウスの違い)
3. 適切な暗号化ソリューションを選定する
データの優先度とセキュリティ要件を確認したら、ニーズに適したデータ暗号化ツールを選定します。通常は、データベース、ファイル、アプリケーションで使われるさまざまな形式のデータを保護するために、異なる暗号化アルゴリズムと方式を導入する必要があります。以下の機能を備えたデータ暗号化ソリューションがお勧めです。
- オンプレミスとクラウドで複数のレベル(アプリケーション、データベース、ファイル)のデータを暗号化できる
- データの暗号化や暗号鍵のポリシー設定と管理のための一元的なダッシュボードが用意されている
- オンプレミスとクラウドの両方で暗号鍵のライフサイクルプロセスを自動化できる
- コンプライアンス対策に役立つ監査ログ、共有グループ、ロールベースのアクセス制御(RBAC)などの機能を備えている
メールセキュリティプラットフォーム、クラウドセキュリティソフトウェア、決済ゲートウェイなどの一般的なセキュリティソリューションに加えてデータ暗号化ツールを導入すれば、データを暗号化してセキュリティレベルを高めることができます。
4. 導入の障害となる要因について検討する
どの組織でも、既存のセキュリティ戦略に新たな要素を追加して全体を見直すことは重大な変化です。そのため、データ暗号化ソリューションとアプリケーションのバックエンドやレガシーシステムとの統合など、発生する可能性のある問題について対策を講じることが重要です。
ソリューションを導入する際には、問題を解決するための十分な時間を確保し、サードパーティのITプロバイダーに協力を求めてITチームを支援することも検討しましょう。
5. セキュリティの文化を醸成し、協力体制を築く
データの暗号化戦略を本当の意味で成功させるには、従業員にセキュリティの文化を受け入れてもらう必要があります。暗号鍵の管理とベストプラクティスに関する教育とトレーニングは、上述のように、鍵を不適切な場所に保管するといった人的ミスを最小限に抑えて、重要なデータを危険にさらす可能性を低減するために重要です。
6. データの暗号化の限界を認識する
暗号化の目的は、機密情報への不正アクセスを防ぐことです。ただし、サイバー攻撃を防ぐには、他のサイバーセキュリティソリューションも必要です。具体的には、ファイアウォール、エンドポイントセキュリティ対策、VPNなどです。
暗号化戦略は、既存の強力なサイバーセキュリティ戦略にシームレスに組み込むことが重要です。
データ暗号化の未来
効果的なデータ暗号化戦略は、あらゆる組織に不可欠なセキュリティ対策です。ただし、これまで見てきたように、それで絶対に安全というわけではありません。サイバー攻撃がますます巧妙化し、コンピューティングシステムがさらに進化する中で、暗号化アルゴリズムと技法も進化する必要があります。幸い、次世代の耐量子アルゴリズムや準同型暗号化などのイニシアチブが進み、データの暗号化も進化し続けています。テクノロジーが進歩すれば、さらなる進化も期待できるでしょう。
現時点では、組織独自のセキュリティニーズに対応する効果的なデータ暗号化ソリューションを選定し、ITチーム、運用チーム、管理チームと協力して導入を進めることが、組織のデータを保護するための最善の方法の1つです。
関連記事

SaaSセキュリティガイド:SaaS保護のベストプラクティス

metadataとtstatsを活用した脅威ハンティング
