AES暗号化とは何ですか?働く|パフォーマンス|安全
- Advanced Encryption Standard(AES)は、現在最も人気があり、広く採用されている対称暗号化アルゴリズムです。
- これは、2人のベルギーの暗号学者、VincentRijmenとJoanDaemenによって開発されました。
- 適切に実装されていれば、現時点ではアルゴリズムを破ることはできません。
暗号化は、機密データを保護するための最も一般的な方法です。これは、データを元の意味がマスクされ、許可されたユーザーのみが解読できる形式に変換することで機能します。
これは、キーと呼ばれる数値に基づく数学関数でデータをスクランブリングすることによって行われます。データのスクランブルを解除(復号化)するために、プロセスは同じまたは異なるキーを使用して予約されています。
暗号化と復号化の両方に同じキーが使用されている場合、このプロセスは対称と呼ばれます。異なるキーが使用されている場合、プロセスは非対称になります。
Advanced Encryption Standard(AES)は、現在最も一般的で広く採用されている対称暗号化アルゴリズムです。 2001年に米国国立標準技術研究所(NIST)によって設立されました。
2002年に、AESは連邦政府の標準として有効になりました。現在のところ、これは極秘プロジェクトのためにNSA(国家安全保障局)によって承認された唯一の公的にアクセス可能な暗号です。
AESを開発したのは誰ですか?その理由は?
1990年代半ば、米国政府はさまざまな種類の暗号化技術を分析するプロジェクトを計画しました。実際、彼らは安全で効率的に実装できる標準を探していました。
NISTは、さまざまな研究チームや組織から提出された何百ものアルゴリズムを分析しました。最後に、2001年後半に選択しました。新しいAdvanced EncryptionStandardアルゴリズムとして「Rijndael」を選択しました。
これは、2人のベルギーの暗号学者、VincentRijmenとJoanDaemenによって提出されました。
Rijndaelは、暗号化/復号化プロセスの効率と信頼性について、ANSI、Java、およびC言語で厳密にテストされました。彼らは、新しいアルゴリズムがソフトウェア中心のシステムとハードウェア中心のシステムの両方での主要な攻撃に耐えることを保証しました。
なぜ彼らは新しい暗号化方式を探していたのですか?
1976年、米国国立標準局(NBS)は、政府の機密データを暗号化するためにデータ暗号化標準(DES)を採用しました。これは、IBMによって構築された対称鍵アルゴリズムでした。
このアルゴリズムは20年間その目的をかなり果たしましたが、より強力なプロセッサの登場により、いくつかのセキュリティ上の懸念が浮上し始めました。
実際、一部の研究者は、力ずくの方法を使用して、48時間以内にDESをクラックできる技術を開発することができました。このような攻撃は非常に費用がかかり、実装が非常に困難でしたが、DESがすぐに信頼できなくなることを証明するには十分でした。
その結果、NISTはDESの後継アルゴリズムの必要性を発表し、1997年にAESの開発を開始しました。これは、世界中でロイヤリティフリーで利用できるようにすることを目的としています。
AES暗号化はどのように機能しますか?
DES(比較的短い56ビットのキーサイズを使用)とは異なり、AESは128、192、または256ビットのいずれかのキーサイズを使用してデータを暗号化/復号化します。
AESは、置換置換ネットワークに基づく反復暗号です。これには、入力を特定の出力に置き換える(置換)、ビットをシャッフルする(順列)など、一連のリンクされた操作が含まれます。
アルゴリズムが最初に行うことは、プレーンテキスト(入力データ)を128ビットのブロックに分割することです。すべての計算はバイト(128ビット=16バイト)で実行されるため、各ブロックサイズを4 * 4マトリックスに変換してさらに処理します。
AESアルゴリズムに関連する5つの主要なステップがあります:
1. ラウンドキーの追加: 初期キー(暗号化が実際に適用されるときに構造化されたプロセスから派生)がプレーンテキストのブロックに追加されます。これは、排他的論理和(XOR)と呼ばれる追加の暗号化アルゴリズムを適用することによって行われます。
2. バイトの置換: 入力バイトは、所定のテーブルを検索することで置き換えられます。
3. シフト行: 行列の2行目は1桁左にシフトされ、3行目は2桁左にシフトされ、4行目は3桁左にシフトされます。結果の行列には同じ16バイトが含まれますが、相互にシフトされます。
4. 列の混合: アルゴリズムは、特別な数学関数を使用して、行列の各列を変換します。この関数は、元の列を完全に新しいバイトに置き換えます。
5. ラウンドキーの追加: マトリックスは128ビットと見なされ、128ビットのラウンドキーにXORされます。
それだと思ったら、間違いないでしょう。データはステップ2、ステップ3、ステップ4、およびステップ5に戻ります。つまり、ステップ2からステップ5はループで実行されます。
しかし、ループは何回実行されますか?これは、AES暗号鍵のサイズによって異なります。128ビット鍵を使用すると、ループは9回実行されます。 192ビットキーを使用すると、ループは11回実行されます。 256ビットキーを使用すると、13回実行されます。
ラウンドを追加するたびに、アルゴリズムが強化されます。ループの終了後、バイト置換、行シフト、およびキー加算ラウンドを含む1つの追加ラウンドが実行されます。
この時点では、データが変更されず、コンピューティングリソースが不必要に消費され、暗号化の効率が低下するため、列の混合手順は除外されています。
AESの暗号化と復号化に関連する手順
復号化データ
復号化プロセスは比較的簡単です。すべての操作は逆の順序で実行されます。このプロセスは、逆加算ラウンドキー、逆行シフト、および逆バイト置換から始まります。
そして、各ラウンドで、4つのプロセスが逆の順序で実行されます。つまり
- 逆ラウンドキー
- 逆混合カラム
- 逆シフト行
- 逆バイト置換
最後に、逆加算ラウンドキー(暗号化のステップ1)が実行されます。このプロセスが完了すると、元のメッセージが表示されます。
パフォーマンス
AESは、以前のDESよりも大幅に高速で指数関数的に強力であるため、高スループットまたは低遅延を必要とするさまざまなアプリケーション、ハードウェア、およびファームウェアに最適です。
このアルゴリズムは、高性能コンピューターから8ビットスマートカードまで、幅広いハードウェアで非常に優れたパフォーマンスを発揮します。
AMDやIntelを含むほとんどのCPUメーカーは、AES命令セットをプロセッサに統合しています。これにより、多くのデバイスでAESのパフォーマンスが向上し、サイドチャネル攻撃に対する耐性が向上します。
AMDRyzenおよびIntelCore i7 / i5 / i3 CPUでは、AES暗号化により10GB /秒を超えるスループットが得られます。 Pentium Mなどの古いプロセッサでは、スループットは約60 Mbit / sです。
AESアルゴリズムはどの程度安全ですか?
暗号技術者は、2000年に標準が完成して以来、AESの弱点を分析してきました。これまでに、AES-128に対する理論的攻撃とサイドチャネル攻撃を公開しています。
2009年、研究者のグループがAES-128の8キーラウンドバージョンをターゲットにしました。暗号化の内部構造を理解することは、既知の鍵による攻撃でした。ただし、標準の10ラウンドバージョンではなく、8ラウンドバージョンのAES-128に対してのみであったため、比較的軽微な脅威と見なされます。
同じ年に一連の関連キー攻撃があり、研究者はさまざまなキーの下で暗号がどのように機能するかを分析することで暗号を解読しようとしました。ただし、これらの攻撃は、正しく実装されていないプロトコルのみに対する脅威であることが判明しました。
主なリスク:サイドチャネル攻撃
サイドチャネル攻撃は、実装されたアルゴリズム自体の弱点ではなく、システムの実装から得られたデータに基づいています。たとえば、消費電力、タイミング情報、さらには電磁リークでさえ、悪用される可能性のある追加のデータソースを提供する可能性があります。
あるケースでは、研究者はプロセッサのメモリキャッシュの状態を注意深く監視することにより、AES-128キーを推定することに成功しました。ただし、データが漏洩する可能性を防ぐか、漏洩した情報がアルゴリズムプロセスに関連付けられていないことを確認することで、このようなケースを減らすことができます。
読む:研究者は3500万コア時間で最大の暗号化キー[RSA-240]を解読する
潜在的なサイドチャネル攻撃と現在の理論上の攻撃にもかかわらず、AESのすべてのバージョンは非常に安全なままです。適切に実装されたAESアルゴリズムは、現時点では破られません。
実際、世界で最も強力なコンピューターは、128ビットのAESキーを総当たり攻撃するのに800兆年以上かかるでしょう。 256ビット暗号をブルートフォースするために必要な計算数は3.31x 10 56 です。 、これは宇宙の原子の数とほぼ同じです。
アプリケーション
AESは、私たちが常に使用しているプログラムに含まれています。たとえば、WinZip、RAR、およびUltraISOは、Rijndaelアルゴリズムを使用してデータを暗号化します。
BitLocker、CipherShed、DiskCyptor、VeraCrypt、およびFileVaultは、AESで暗号化されたドライブイメージを作成します。ワイヤレスネットワークのセキュリティメカニズムを指定するIEEE標準であるIEEE802.11iは、CCMモードでAES-128を使用します。
読む:プライベートデータを保存するための8つの最も一般的な暗号化技術
Facebook Messenger、Signal、WhatsApp、Google Alloなどの最も人気のあるメッセージングアプリのいくつかは、AESを使用して送信者と受信者の間のメッセージを暗号化します。
産業技術