データの暗号化の方式と種類:暗号化ビギナーズガイド

Security Chrissy Kidd

データの暗号化は、多くの組織がデータを保護するために使用している方法の1つです。暗号化は、平文(読んで理解できるデータ)を、一意の暗号化キーを使わなければ理解できない暗号文(ランダム化されたデータ)に変換します。

言い換えれば、暗号化はデータを難読化し、閲覧権限がある人のみがその内容を読めるようにするセキュリティ対策の1つです。

暗号化には多くの種類があり、組織のセキュリティ要件に適した暗号化アルゴリズムと方式を選択することが重要です。この記事では以下のトピックを取り上げます。

ではさっそく始めましょう。

データ暗号化の仕組み

データを暗号化する目的は、閲覧権限がない人に情報が見られるのを防ぐことです。実際には、ランダムデータに見せかけて無意味な内容と思わせることで情報を隠す方法の1つです。暗号化を適用するのは、データが主に次の3つの状態にあるときです。

組織は、データベース、ファイル、ドキュメント、メッセージ、その他の通信チャネルで、ネットワークを通じて機密情報をやり取りするときにデータを暗号化できます。

忘れてはならない重要な点は、暗号化が資産を保護するという正当な目的以外に、悪い目的にも使用されることです。実際、今日急増しているランサムウェア攻撃では、これまで以上に多くのファイルを「人質」にするために、高速な暗号化方式が使われています。Splunkのサイバーセキュリティ調査チームであるSURGeは、最新調査の中で次のように報告しています。

「…ランサムウェアの亜種は、中央値で約10万個、サイズにして合計53.93GBのファイルを42分52秒で暗号化できます。ランサムウェアに感染すると、組織は重要な知的財産、社員情報、顧客データにアクセスできなくなる可能性があります」– Ryan Kovar、2022年3月

暗号化の種類

さまざまなデータタイプやセキュリティユースケースに応じて、暗号化には数多くの方式が存在します。データの暗号化方式には、大きく分けて「対称暗号化」と「非対称暗号化」の2種類があります。

対称暗号化

対称暗号化方式では、平文の暗号化と暗号文の復号化に1つの秘密鍵を使用します。送信者は、非公開の手段を使って受信者に秘密鍵を渡します。秘密鍵は、閲覧権限がある受信者のみに渡します。対称暗号化は、秘密鍵暗号化とも呼ばれます。

対称暗号化でよく使われるアルゴリズムには次のものがあります。

各アルゴリズムについては後ほど取り上げます。

非対称暗号化

非対称暗号化は、公開鍵暗号化とも呼ばれます。この方式では、公開鍵と秘密鍵の2つの鍵を使用します。暗号化と復号化に異なる鍵を使うのが特徴です。

非対称暗号化を使えばオンラインでデータを安全に転送できるため、セキュリティレベルが上がります。非対称暗号化方式でよく使われるアルゴリズムには、RSA (Rivest Shamir Adleman)やECC (Elliptic Curve Cryptography)があります。

対称暗号化方式と非対称暗号化方式の違い

対称暗号化と非対称暗号化では、使用する鍵の種類が異なる以外にも、いくつかの相違点があります。

非対称暗号化方式と対称暗号化方式ではそれぞれ独自のアルゴリズムが使われ、アルゴリズムごとに、機密データを隠すための技法が異なります。次のセクションでは、この点について説明します。

クイックメモ:ハッシュ化の仕組み

ハッシュ化は、数学関数を使って、あらゆるサイズの入力テキスト(ファイル、メッセージなど)を固定長の値に変換するための技法です。

ハッシュ化と暗号化は混同されがちですが、きちんと区別することが重要です。ハッシュでは鍵を使用しないため、秘匿性は高くありません。また、ハッシュは再生成が可能です。

ハッシュ化は通常、データの格納と取り出しの手段として暗号化とともに使われます。一般的な用途には次のものがあります。

一般的なデータ暗号化アルゴリズムと技法

暗号化方式は、以下を含むさまざまな要因によって区別されます。

ここからは、ビジネスの機密データの保護によく使われる7つの暗号化アルゴリズムについて見ていきます。

1. AES (Advanced Encryption Standard)

AESは、世界で最もよくデータの暗号化に使われている対称暗号化アルゴリズムです。データ暗号化のゴールドスタンダードとも言われ、米国を含む世界中の多くの政府機関で使われています。

AESでは、一度に128ビットのデータブロックが暗号化され、次の用途で使用されます。

2. TDES (Triple Data Encryption Standard)

TDESは、「トリプルDES」や「3DES」とも呼ばれ、56ビットの鍵を使ってデータブロックを暗号化する対称暗号化アルゴリズムです。このアルゴリズムは、DES (Data Encryption Standard)アルゴリズムを進化させてセキュリティを強化したものです。その名前が示すとおり、TDESではデータの各ブロックにDES暗号化が3回適用されます。

TDESは、FirefoxやMicrosoft Officeなどのアプリケーションで採用され、次のようなデータの暗号化に使われます。

今日、一部の大手IT企業が特定のツールや製品で、今後TDESの使用を廃止することを表明しています。NISTによると、セキュリティの点でTDESよりもAESの方が全体的に優れています。

3. RSA (Rivest Shamir Adleman)

RSAは、非対称暗号化アルゴリズムです。インターネット経由の通信でデータを暗号化するときに使われ、ランダムな2つの大きな素数の素因数分解を利用します。その計算によって大きな素数を生成することで、元の素数を知っている人だけがメッセージを復号化できるようにします。

元の素数を割り出すのが非常に難しいため、この暗号化技法は組織内の機密データをハッキングから守るために効果的です。このアルゴリズムにはいくつかの制約もあります。特に影響があるのは、データのサイズが大きいほど暗号化に時間がかかることです。それでも、次のデータの暗号化にRSAがよく使われます。

4. Blowfish

Blowfishは対称暗号化アルゴリズムで、もともとはDESの代替として設計されました。このアルゴリズムでは、64ビットのブロックサイズが個別に暗号化されます。

Blowfishは、柔軟性、スピード、レジリエンスに優れているのが特徴です。また、パブリックドメインであるため幅広く利用されていることも魅力の1つです。次のセキュリティ対策でよく使われています。

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は以下の用途に利用できます。

データの暗号化方式の課題

暗号化方式のメリットは明らかですが、欠点もいくつかあります。とはいえ、後述のベストプラクティスを適切に取り入れれば、これらの課題を克服または緩和できます。

鍵の管理

組織内でデータの暗号化方式を運用する場合の大きな課題の1つは、鍵の管理です。復号化に必要な鍵は、どこかに保存する必要があります。残念ながら、その場所は思ったよりも安全性が低いことがよくあります。サイバー攻撃者は、鍵の情報が保管されている場所の見当をつけるのが得意で、その場所が見つかってしまえば組織とネットワークのセキュリティに大きな脅威をもたらします。

鍵の管理ではバックアップとリストアも考慮する必要があるため、その点でも手間がかかります。災害の発生時には、鍵の取得やバックアッププロセスによって業務の復旧が遅れる場合もあります。

(関連記事:脆弱性や脅威と全体的なリスクとの関係)

ブルートフォース攻撃

ブルートフォース攻撃に対する脆弱性は、暗号化への脅威としてはあまり一般的ではありませんが、深刻な問題です。ブルートフォース攻撃では、攻撃者が復号鍵を 推測 して攻撃を試みます。現代のコンピューターシステムでは、考えられる文字列のパターンを何百万、何十億単位で生成できるため、暗号鍵は複雑であるほど強力になります。

今日の暗号化アルゴリズムと強力なパスワードを組み合わせれば、通常はこの種の攻撃に耐えられます。ただし、コンピューティング技術は進化し続けており、将来的にはデータの暗号化方式に実質的な脅威をもたらすことになるでしょう。

データの暗号化戦略のベストプラクティス

データの暗号化は、組織のデータを保護するための最善の方法の1つです。とはいえ、多くのことがそうであるように、暗号化の効果を得るには、入念に戦略を立てて適切に実行する必要があります。このセクションでは、データの暗号化アルゴリズムと技法の効果を最大限に得るためのベストプラクティスをご紹介します。

1. セキュリティ要件を定義する

組織の全体的なセキュリティ態勢を把握することは、暗号化戦略を立てるための重要な一歩です。暗号化は技法によって強度も処理能力もさまざまであるため、ソリューションを購入する前に現在のセキュリティニーズを評価することが大切です。

セキュリティ態勢の評価では、次のような作業を行います。

2. データを分類する

最初のステップを終えたら、次に、現在保管または送受信しているデータのタイプを調査します。これには、顧客情報から、財務データ、組織内のアカウントの詳細、さらには組織の機密情報まで、あらゆる種類のデータが含まれます。その後、各タイプのデータを次の基準で分類します。

(関連記事:データ構造データレイクとデータウェアハウスの違い)

3. 適切な暗号化ソリューションを選定する

データの優先度とセキュリティ要件を確認したら、ニーズに適したデータ暗号化ツールを選定します。通常は、データベース、ファイル、アプリケーションで使われるさまざまな形式のデータを保護するために、異なる暗号化アルゴリズムと方式を導入する必要があります。以下の機能を備えたデータ暗号化ソリューションがお勧めです。

メールセキュリティプラットフォーム、クラウドセキュリティソフトウェア、決済ゲートウェイなどの一般的なセキュリティソリューションに加えてデータ暗号化ツールを導入すれば、データを暗号化してセキュリティレベルを高めることができます。

セキュリティソリューション

4. 導入の障害となる要因について検討する

どの組織でも、既存のセキュリティ戦略に新たな要素を追加して全体を見直すことは重大な変化です。そのため、データ暗号化ソリューションとアプリケーションのバックエンドやレガシーシステムとの統合など、発生する可能性のある問題について対策を講じることが重要です。

ソリューションを導入する際には、問題を解決するための十分な時間を確保し、サードパーティのITプロバイダーに協力を求めてITチームを支援することも検討しましょう。

5. セキュリティの文化を醸成し、協力体制を築く

データの暗号化戦略を本当の意味で成功させるには、従業員にセキュリティの文化を受け入れてもらう必要があります。暗号鍵の管理とベストプラクティスに関する教育とトレーニングは、上述のように、鍵を不適切な場所に保管するといった人的ミスを最小限に抑えて、重要なデータを危険にさらす可能性を低減するために重要です。

6. データの暗号化の限界を認識する

暗号化の目的は、機密情報への不正アクセスを防ぐことです。ただし、サイバー攻撃を防ぐには、他のサイバーセキュリティソリューションも必要です。具体的には、ファイアウォール、エンドポイントセキュリティ対策、VPNなどです。

暗号化戦略は、既存の強力なサイバーセキュリティ戦略にシームレスに組み込むことが重要です。

データ暗号化の未来

効果的なデータ暗号化戦略は、あらゆる組織に不可欠なセキュリティ対策です。ただし、これまで見てきたように、それで絶対に安全というわけではありません。サイバー攻撃がますます巧妙化し、コンピューティングシステムがさらに進化する中で、暗号化アルゴリズムと技法も進化する必要があります。幸い、次世代の耐量子アルゴリズムや準同型暗号化などのイニシアチブが進み、データの暗号化も進化し続けています。テクノロジーが進歩すれば、さらなる進化も期待できるでしょう。

現時点では、組織独自のセキュリティニーズに対応する効果的なデータ暗号化ソリューションを選定し、ITチーム、運用チーム、管理チームと協力して導入を進めることが、組織のデータを保護するための最善の方法の1つです。

このブログはこちらの英語ブログの翻訳です。

関連記事

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

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

この記事では、SaaSのセキュリティについて取り上げ、SaaSの内容、SaaSに対する最も一般的な脅威、およびSaaSアプリケーションを保護するために実行可能なベストプラクティスをご紹介します。
metadataとtstatsを活用した脅威ハンティング
セキュリティ
5 分程度

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

metadataコマンドとtstatsコマンドの力を見よ!これらのコマンドを使えば、ハンティングを始める前にホストとソースタイプの状況をすばやく把握できます。
脅威ハンティングの始め方:ビギナーガイド
セキュリティ
8 分程度

脅威ハンティングの始め方:ビギナーガイド

脅威ハンティングをこれから始める方も、新しいデータ環境で脅威ハンティングを行う方も、まずはここから始めましょう!このブログ記事では脅威ハンティングの基礎をご紹介します。