暗号とは

暗号化とは、コード化されたアルゴリズム、ハッシュ、および署名の使用を通じて情報を保護する方法です。情報は、保管中 (ハードドライブ上のファイルなど)、転送中 (2 名以上のユーザー間で行われる電子通信など)、または使用中 (データの計算中) の場合があります。暗号化の目標は主に 4 つあります。

  • 機密性 – 許可されたユーザーのみが情報を利用できるようにします。
  • 完全性 – 情報が操作されていないことを保証します。
  • 認証 – 情報の真正性またはユーザーの本人性を確認します。
  • 否認防止 – ユーザーが以前のコミットメントまたはアクションを否定できないようにします。

暗号化では、いくつかの低レベルの暗号化アルゴリズムを使用して、これらの情報セキュリティの目標を 1 つ以上達成します。これらのツールには、暗号化アルゴリズム、デジタル署名アルゴリズム、ハッシュアルゴリズム、および他の機能が含まれます。このページでは、最も一般的に使用される低レベルの暗号化アルゴリズムのいくつかについて説明します。

暗号化の用途

暗号化のルーツは、軍関係者と政治関係者の間で機密情報を送信することにあります。メッセージを暗号化して、意図した受信者以外にはランダムなテキストに見えるようにすることができます。

現在、暗号化の元の技術は完全に破られています。それは一部の新聞のパズルのセクションでしか見られないほどです。幸い、この分野ではセキュリティが大幅に進歩しており、現在使用されているアルゴリズムは、厳密な分析と数学を利用してセキュリティを確保しています。

セキュリティが進歩するにつれて、暗号化の分野が拡大し、より広範なセキュリティ目標が含まれるようになりました。これらには、メッセージ認証、データの整合性、安全な計算などがあります。

暗号は現代社会の基盤です。これは、Secure Hypertext Transfer Protocol (HTTPS) を介した無数のインターネットアプリケーション、安全なテキストおよび音声通信、さらにはデジタル通貨の基盤です。

暗号化とは

暗号化アルゴリズムは、平文のメッセージを暗号化された暗号文に変換する手順です。最新のアルゴリズムは、高度な数学と 1 つ以上の暗号化キーを使用します。これらにより、メッセージの暗号化は比較的簡単になりますが、キーを知らずにメッセージを復号化することは実質的に不可能になります。

暗号化技術は、キーがどのように機能するかに基づいて、対称と非対称の 2 つのカテゴリに分類されます。

対称鍵暗号とは

対称鍵暗号アルゴリズムは、平文の暗号化と暗号文の復号化の両方に同じ暗号キーを使用します。対称暗号化では、意図したすべてのメッセージ受信者が共有キーにアクセスできる必要があります。

次の図は、すべての当事者が同じキーを共有していると仮定して、暗号化と復号化が対称キーとアルゴリズムでどのように機能するかを示しています。

最初の図では、対称キーとアルゴリズムを使用して平文メッセージを暗号文に変換しています。2 番目の図では、暗号文を平文に戻すために使用する同じシークレットキーと対称アルゴリズムを示しています。                

  

最も一般的なブロック暗号の 1 つは、Advanced Encryption Standard (AES) です。このブロック暗号は、128、192、または 256 ビットのキーをサポートします。AES は Galois/Counter Mode (GCM) と組み合わされることが多く、AES-GCM として知られ、認証された暗号化アルゴリズムを作成します。

AES は、世界中で行われている暗号化の業界標準です。そのセキュリティは十分に理解されており、効率的なソフトウェアとハードウェアの実装を広く行えます。

非対称 (パブリックキー) 暗号とは

 

非対称 (またはパブリックキー)暗号化は、幅広いアルゴリズムセットで構成されています。これらは、一方向に実行するのは比較的簡単ですが、簡単に元に戻すことはできない数学的問題に基づいています。

このタイプの問題の有名な例の 1 つは因数分解の問題です。慎重に選択された素数 pq について、積 N=p*q を素早く計算できます。ただし、N しか与えられていないため、pq を復元するのは非常に困難です。

因数分解問題に基づく一般的なパブリックキー暗号アルゴリズムは、Rivest-Shamir-Adleman (RSA) 関数です。適切なパディングスキームと組み合わせると、非対称暗号化を含む複数の目的に RSA を使用できます。

暗号化スキームは、1 つのキー (パブリックキー) を使用してデータを暗号化し、数学的に関連する別のキー (プライベートキー) を使用してデータを復号化する場合、「非対称」と呼ばれます。

知っているのがパブリックキーだけである場合、プライベートキーを決定することは計算上実行不可能でなければなりません。したがって、パブリックキーは広く配布できますが、プライベートキーは秘密にかつ安全に保たれます。これらのキーをまとめてキーペアと呼びます。

一般的な非対称暗号化スキームの 1 つは RSA-OAEP です。これは、RSA 関数と Optimal Asymmetric Encryption Padding (OAEP) パディングスキームを組み合わせたものです。RSA-OAEP は通常、少量のデータの暗号化にのみ使用されます。低速であり、暗号文が平文よりもはるかに大きいためです。

ハイブリッド暗号化とは

RSA-OAEP のようなパブリックキーアルゴリズムは対称アルゴリズムよりも効率が悪いため、データを直接暗号化するために一般的に使用されることはありません。ただし、キー交換の手段を提供することにより、暗号化エコシステムで重要な役割を果たします。

対称暗号化を使用するには、当事者がキーを共有する必要があります。このキーは既存の暗号化されたチャネルを介して送信できますが、安全なチャネルが既にある場合は、新しいキーは必要ありません。代わりに、パブリックキー暗号を使用してキー交換の問題を解決します。

対称キーを交換するための 2 つの一般的な方法を次に示します。

  • 非対称暗号化 一方の当事者が対称キーを生成し、RSA-OAEP などのアルゴリズムを使用してそのキーを別の当事者のパブリックキーに暗号化します。受信者は、プライベートキーを使用して暗号文を復号化し、対称キーを復元できます。
  • Diffie-Hellman Key Exchange – (DH)。Diffie-Hellman は、安全なチャネルがない場合に当事者が対称キーに同意できるように特別に設計された、別の種類のパブリックキー暗号化アルゴリズムです。Diffie-Hellman は、RSA 関数とは異なる数学的問題に基づいており、RSA ほど柔軟性がありません。ただし、より効率的な構造を備えているため、一部のユースケースでは推奨されます。

キー交換用のパブリックキー暗号化とバルクデータ暗号化用の対称暗号化のこの組み合わせは、ハイブリッド暗号化として知られています

ハイブリッド暗号化は、対称暗号化の効率性を用いて信頼されていないチャネルを介して秘密情報を交換するために、パブリックキー暗号化の独自のプロパティを使用します。これにより、実用的なエンドツーエンドソリューションが実現し、データプライバシーを確保できます。

ハイブリッド暗号化は、Transport Layer Security (TLS) など、ウェブのデータ転送プロトコルで広く使用されています。HTTPS (TLS を使用したセキュアな HTTP) を使用するウェブサイトに接続すると、ブラウザは接続を保護する暗号化アルゴリズムをネゴシエートします。これらには、キー交換、対称暗号化、およびデジタル署名のアルゴリズムが含まれます。

デジタル署名とは

デジタル署名方式は、データの整合性、信頼性、および否認防止を保証するパブリックキー暗号方式の一種です。

署名プロセスは、プライベートキーを使用してファイルを暗号化するのと同じように考えることができます。署名者は自分のプライベートキーを使用して、ファイルやコードなどのデジタルドキュメントに「署名」を作成します。

この署名は、ドキュメントとプライベートキーのペアに固有であり、ドキュメントに添付して、署名者のパブリックキーで検証できます。デジタル署名の 2 つの一般的なアルゴリズムは、Probabilistic Signature Scheme を使用した RSA (RSA-PSS) と Digital Signature Algorithm (DSA) です。

メッセージ認証コードとは

メッセージ認証コード (MAC) は、デジタル署名の対称バージョンです。MAC では、2 者以上の当事者がキーを共有します。一方の当事者は、デジタル署名の対称バージョンである MAC タグを作成し、ドキュメントに添付します。別の当事者は、タグの作成に使用されたのと同じキーを使用して、メッセージの完全性を検証できます。

複数の当事者が MAC タグの作成に使用されるキーを共有することに注意してください。そのため、どの当事者がタグを作成したかが明確でないため、MAC を認証または否認防止に使用することはできません。

MAC は、Hash-based Message Authentication Code (HMAC) などのスタンドアロンアルゴリズムにすることができます。ただし、メッセージの整合性はほとんど常に貴重な保証であるため、AES-GCM などの対称暗号化アルゴリズムに統合されることがよくあります。

暗号化におけるハッシュとは

暗号化ハッシュ関数は、任意のデータを固定長の「フィンガープリント」に変換するツールです。ハッシュ関数は、同じフィンガープリントを持つ 2 つの異なる入力を見つけるのが難しく、フィンガープリントが固定値と一致するメッセージを見つけるのが難しいように設計されています。

暗号化方式、署名方式、および MAC とは異なり、ハッシュ関数にはキーがありません。誰でも特定の入力のハッシュを計算でき、ハッシュ関数は常に同じ入力に対して同じ出力を生成します。

ハッシュ関数は、より大規模な暗号化アルゴリズムおよびプロトコルの重要なビルディングブロックです。これらには、デジタル署名アルゴリズム、専用 MACアルゴリズム、認証プロトコル、およびパスワードストレージが含まれます。

楕円曲線暗号とは

楕円曲線暗号 (ECC) は、楕円曲線の数学的理論に基づくパブリックキー暗号技術です。

ECC の最大の利点は、より小さなキーとより高速な操作で、従来の技術と同様のレベルの保護を行えることです。ECC は効率が高いため、携帯電話などの計算能力が比較的低いデバイスでの使用に適しています。

ECC は、Diffie-Hellman (ECDH) の楕円曲線バリアントを使用した効率的なキー交換、または Elliptic Curve Digital Signature Algorithm (ECDSA) を使用したデジタル署名に使用できます。その速度と柔軟性により、ECC はインターネット上の多くのアプリケーションで広く利用されています。

暗号通貨とは

暗号通貨は、中央集権的な機関ではなく、分散型システムによってトランザクションが検証され、記録が維持されるデジタル通貨です。暗号通貨は、暗号化の応用例です。

暗号通貨は、さまざまな低レベルの暗号化アルゴリズムを使用して、信頼できる安全なプラットフォームを作成します。暗号通貨は、このページで説明されている多くの概念 (楕円曲線暗号、デジタル署名、ハッシュ関数など) を使用しています。これらのアルゴリズムを組み合わせることで、中央集権的な権限がなくても、信頼と説明責任を構築できます。

ポスト量子暗号とは

過去数十年にわたって、量子コンピューティングに多額の投資が行われてきました。量子コンピュータは量子物理学を使用し、因数分解問題など、従来のコンピュータでは計算不可能な数学的問題を解くことができます。

大規模な量子コンピュータは、Rivest-Shamir-Adleman (RSA) 関数に基づく暗号システムなど、今日使用されているパブリックキー暗号システムを破ることでしょう。これらのアルゴリズムが破れると、今日使用している多くのアプリケーションやプロトコルの機密性と認証が失われることになります。

現在、小さな量子コンピュータは存在しますが、暗号アルゴリズムを破るには小さすぎます。暗号関連の量子コンピュータ (CRQC) が利用可能になるかどうか、またいつ利用可能になるかは不明です。CRQC を開発するには、重要な科学的ブレークスルーが必要です。

ポスト量子暗号 (PQC) は、現在使用しているコンピュータで実行される暗号アルゴリズムを指します。これは大規模な量子コンピュータに対して脆弱であることは知られていません。

AWS ポスト量子暗号で、耐量子暗号プロジェクトや、世界の暗号コミュニティとのワーキンググループへの AWS の研究とエンジニアリングの参加についての詳細をご覧ください。

暗号コンピューティングとは

これまでにご紹介したツールにより、保存時の暗号化と転送時の暗号化を利用できます。従来、データは計算で使用する前に復号化する必要がありました。暗号コンピューティングは、暗号で保護されたデータを直接操作するツールを提供することで、このギャップを埋めます。

暗号コンピューティングという用語は、安全なマルチパーティ計算、準同型暗号化、検索可能な暗号化など、幅広いテクノロジーをカバーしています。詳細は異なりますが、これらのテクノロジーは、データの機密性を維持しながら、保護されたデータに対して計算を実行できるようにデータを暗号化して保護します。

AWS が顧客に提供する暗号化サービス

AWS の暗号化サービスは、保管中または転送中のデータの整合性を保証できる幅広い暗号化およびストレージテクノロジーを利用しています。AWS は、暗号化操作用のツールをいくつか提供しています。

多くの AWS のサービスは、データの転送または保存中にこれらの暗号化サービスを利用しています。そのようなサービスのリストと、暗号化手法の使用方法の概要については、「AWS のその他のサービス」を参照してください。

AWS は、次のように、オープンソースの暗号化ライブラリも提供しています。

  • AWS libcrypto (AWS-LC) は、AWS 暗号化チームが AWS とその顧客のために管理する汎用暗号化ライブラリを提供します。これは、Google BoringSSL プロジェクトと OpenSSL プロジェクトのコードに基づいています。AWS-LC には、TLS および一般的なアプリケーションに必要なアルゴリズムの移植可能な C 実装が含まれています。パフォーマンスが重要なアルゴリズムについては、x86 および ARM 用に最適化されたアセンブリバージョンが含まれています。
  • s2n-tls は、シンプル、小型、高速で、セキュリティを優先するように設計された TLS/SSL プロトコルの実装を提供します。

Amazon サイエンスブログAWS セキュリティブログもご覧ください。ブログでは、暗号研究の開発、ベンチマーク、およびプロトタイプ作成のために行っていることが詳述されています。暗号コンピューティング、ポスト量子暗号、検証済み暗号コードなどについて投稿しています。

政府または専門家の規制に準拠した暗号化サービスを AWS で使用する方法

AWS 暗号化サービスは、幅広い暗号化セキュリティ標準に準拠しているため、政府や専門家の規制を気にすることなく、データを簡単に保護できます。AWSデータセキュリティ標準のコンプライアンスの完全なリストについては、AWS コンプライアンスプログラムをご覧ください。

AWS 暗号化の次のステップ

無料のアカウントにサインアップする

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで構築を始めましょう。

サインイン