AES暗号化はどのように機能しますか?

AESは対称キー暗号化暗号であり、一般にデータ暗号化の「ゴールドスタンダード」と見なされています.

AESはNIST認定であり、「安全な」データを保護するために米国政府によって使用されています。これにより、ほぼ全員が選択する標準の対称キー暗号としてAESがより一般的に採用されています。これは、パブリック、プライベート、商用、または非商用の使用に自由に使用できるオープンスタンダードです。.

AES暗号化の概要

AESは対称鍵暗号化暗号です。これは、データの暗号化に使用されたのと同じキーがデータの復号化に使用されることを意味します。これにより問題が発生します。キーを安全な方法で送信するにはどうすればよいですか?

非対称暗号化システムは、誰でも利用できる公開鍵を使用してデータを保護することにより、この問題を解決します。正しい秘密鍵を保持している目的の受信者のみが復号化できます.

これにより、送信者は受信者の秘密キーを知る必要がないため、送信中のデータの保護において非対称暗号化がはるかに優れています。良い例はRSA暗号化です。これは、安全なHTTPS Webサイトに接続するときに必要なTLSキー交換を保護するために使用されます.

したがって、AESのような対称暗号は、ハードドライブに保存されている場合など、保存中のデータの保護に優れています。この目的のために、非対称暗号より優れています:

  • 彼らははるかに少ない計算能力を必要とします。これにより、対称暗号化を使用したデータの暗号化と非暗号化が、非対称暗号化を使用した場合よりもはるかに高速になります。観点から、対称暗号は一般に非対称暗号よりも「約1000倍高速」であると言われています。.
  • また、対称暗号は高速であるため、大量のデータを一括暗号化する場合に非常に便利です。 RSAなどの非対称暗号は、対称キー暗号化の保護に使用されるキーなど、少量のデータの暗号化にのみ実際に使用されます.

もちろん、今日の接続された世界では、ハードドライブに置かれているデータの使用は限られています。幸いなことに、リモートサーバーに安全に接続するために必要なリモートキー交換の処理に使用される非対称暗号化と組み合わせて、インターネット経由で安全に転送できます。.

たとえば、OpenVPNは非対称暗号で生データを保護します。通常は最近AESです。暗号化されたデータをPCとVPNサーバー間で安全に転送するために、非対称TLSキー交換を使用してサーバーへの安全な接続をネゴシエートします.

AES暗号化は最適な暗号化タイプですか?

AESは、これまでに発明された中で最も安全な対称キー暗号化暗号と広く見なされています。有名な暗号学者ブルース・シュナイアーが共同開発したTwofishな​​ど、高度に安全であると考えられている他の対称鍵暗号も存在します.

ただし、このような暗号は、AESのように戦闘テストされていません。そして、もし米国政府がAESがその「安全な」データを保護するための最良の暗号だと考えているなら、誰が主張しているのでしょうか?ただし、これを問題と考える人もいます。以下のNISTに関するセクションを参照してください.

広く採用されたことで、AESは他の方法で恩恵を受けました。現在、ほとんどのCPUメーカーは、AES命令セットを自社のプロセッサに統合しています。ハードウェアブーストにより、多くのデバイスでAESパフォーマンスが向上し、サイドチャネル攻撃に対する耐性が向上します.

128ビットのAES暗号化を破ることができますか?

AES自体は、適切に実装されている場合は壊れません.

2011年の最速のスーパーコンピューターは富士通Kでした。これは、10.51ペタフロップスのRmaxピーク速度を実現しました。この数値に基づいて、128ビットのAESキーを強制的に解読するには、富士通K 1.02 x 10 ^ 18-約10億(1兆)-年かかります。これは宇宙の年齢(137億5,000万年)より古い.

2017年に世界で最も強力なスーパーコンピューターは、中国のSunway TaihuLightでした。この獣は、93.02ペタフロップスのピーク速度が可能です。これは、世界で最も強力なコンピューターが128ビットAESキーをブルートフォースするために、まだ885兆年かかることを意味します。.

256ビット暗号をブルートフォースするために必要な操作の数は3.31 x 10 ^ 56です。これは、宇宙の原子の数にほぼ等しい!

2011年に、暗号学の研究者はAESの弱点を特定しました。これにより、以前よりも4倍速くアルゴリズムを解読できました。しかし、当時の研究者の一人が指摘したように:

「これを観点に入れると、1秒間に10億個のキーをテストできる1兆台のマシンで、AES-128キーを回復するには20億年以上かかります。」

この攻撃に対応して、AES-128暗号化プロセスに追加の4ラウンド(後述)が追加され、安全マージンが増加しました。.

サイドチャネル攻撃

そのため、すべての意図と目的に対して、AES自体は適切に実装された場合に壊れません。しかし、常に適切に実装されているわけではありません.

サイドチャネル攻撃は、追加情報を見つけるために、AES暗号化を実装するコンピューターシステムからの手がかりを探します。これは、AESをブルートフォースするために必要な可能な組み合わせの数を減らすのに役立ちます。.

これらの攻撃は、タイミング情報(コンピューターが計算を実行するのにかかる時間)、電磁リーク、音声の手がかり、さらに高解像度カメラを使用して取得した光学的な手がかりを使用して、システムがAES暗号化を処理する方法に関する追加情報を発見します.

AESに対するよく知られたサイドチャネル攻撃は、プロセッサのキャッシュテーブルの暗号の共有使用を注意深く監視することにより、AES-128暗号化キーを推定することに成功しました.

適切に実装されたAESは、データが漏洩する可能性のある方法(ハードウェアベースのAES命令セットの使用が役立つ場合)を防ぎ、暗号化によって保護されたデータと漏洩したデータとの関係を排除することにより、サイドチャネル攻撃を軽減しますサイドチャネル攻撃を使用して収集できる.

安全でないパスワード

AES暗号化は、そのキーと同じくらい安全です。これらのキー自体はパスワードを使用して安全に保護されており、人間が安全なパスワードを使用するのがどれほどひどいことか知っています。ウイルス、ソーシャルエンジニアリング攻撃などによって導入されたキーロガーも、AESキーを保護するパスワードを侵害する効果的な方法です。.

パスワードマネージャーを使用すると、双方向ファイアウォール、優れたウイルス対策ソフトウェア、およびセキュリティ問題に関するより高度な教育の使用と同様に、この問題が大幅に軽減されます。.

AES暗号化の簡単な歴史

子供の頃、メッセージの1文字を別の文字に置き換えて「秘密のメッセージ」を作成したゲームをプレイしましたか?あなたが選んだ式に従って置換が行われました.

たとえば、元のメッセージの各文字をアルファベットの後ろの3文字に置き換えた可能性があります。他の誰かがこの式が何であるかを知っていた場合、またはそれを解決できた場合、彼らはあなたの「秘密のメッセージ」を読むことができるでしょう。

暗号用語では、非常に単純な数学的アルゴリズムに従ってメッセージ(データ)を「暗号化」していました.

暗号化は、古くから機密データを隠すために使用されてきましたが、実際には20世紀に独自の方法で登場しました。第二次世界大戦中、ドイツ人は有名なエニグママシンを使用して通信を確保しました。コードは、ブレッチリーパークのアランチューリングによって同様に有名に解読されました。.

DES暗号化とは

データ暗号化標準(DES)は、1970年代半ばに米国政府の通信を保護するために作成されました。これは、最初の近代的で公開された自由に利用可能な暗号化アルゴリズムとなり、そのため、ほぼ片手で暗号化の近代的な分野を作成しました。.

IBMによって開発されましたが、DESは米国国立標準局(NBS、後にNISTになりました)の発案者でした.

NSAによる干渉に関する懸念にもかかわらず、DESは1976年に米国政府によって採用されました。 "敏感だが分類されていない" トラフィック。これには、個人情報、財務情報、物流情報などが含まれます.

当時はこのようなものはなかったため、データを保護するために暗号化を必要とする営利企業にすぐに広く採用されました。そのため、DES(56ビットキーを使用)は、ほぼ20年にわたってデフォルトの主力暗号化標準になりました.

このほぼ遍在的な採用は、DESが連邦情報処理標準(FIPS)ステータスを授与されたことにより大いに助けられました。米国のすべての非軍事政府機関および民間政府の請負業者は、FIPS標準のみを使用する必要があります.

しかし、1990年代半ばまでに、DESはその年齢を示し始めました。現時点では、NSAがDESをブルートフォースクラックできると広く信じられていました。1998年、Electronic Frontier Foundation(EFF)によって構築された220,000ドルのマシンがわずか2日でDESをブルートフォースできました。それは明らかに新しい標準の時でした.

AESの由来

1997年、米国国立標準技術研究所(NIST)は、DESに代わるものを探していると発表しました。 2001年11月、受賞者:AES、以前は共同作成者の1人の後にRijndaelとして知られていました.

NISTの推奨により、新しい暗号は米国連邦政府によって正式に採用され、2002年5月に有効に使用されました。以前のDESと同様に、AESはFIPSステータスを授与されました。米国政府は、すべてのAES鍵サイズが、機密情報までは十分であると見なしています "秘密" レベル、 "トップシークレット" AES-192またはAES-256を必要とする情報.

AESは、デフォルトの主力対称暗号化標準として、DESを完全に世界中で置き換えました。.

AES暗号化の仕組み?

AES暗号化アルゴリズムは、128ビットのブロックでデータを暗号化および復号化します。 128ビット、192ビット、または256ビットのキーを使用してこれを行うことができます。 128ビットキーを使用するAESは、しばしばAES-128と呼ばれます。.

次の図は、AESプロセスの簡単な概要を示しています…

AES暗号化の仕組み

平文

これは、暗号化する機密データです.

秘密鍵

これは、アルゴリズムによって作成された128ビット、192ビット、または256ビットの変数です。.

暗号

次に、実際のAES暗号は、プレーンテキストと秘密キーを開始点として使用して、一連の数学変換を実行します。順序は次のとおりです。

  1. キーの拡張。これは、元のシークレットキーを使用して、ラインダールのキースケジュールアルゴリズムを使用して一連の新しい「ラウンドキー」を導出します。.
  2. 混合。各ラウンドキーは、加算型XORアルゴリズムを使用してプレーンテキストと結合されます.

    AES暗号化roundKey

  3. 置換テーブルを使用した結果データの置換。このステップは、原則として(実際にもっと複雑な場合)子供として作成した置換暗号に非常に似ています.SubBytes AES暗号化

  4. 行をシフトします。 128ビットブロックを構成する16バイトの4 x 4列の各バイトが右にシフトされる.AES暗号化shiftRows

5.列を混ぜます。さらにアルゴリズムが各列に適用されます.

立ち上がり、繰り返します。このプロセスは何度も繰り返され、各繰り返しはラウンドと呼ばれます。各ラウンドは、キー拡張中に生成されたラウンドキーの1つを使用して再暗号化されます(ステップ1).

実行されるラウンドの数は、使用されるキーの長さによって異なります。 AES-128は10ラウンド、AES-192は12ラウンド、AES-256は14ラウンドを使用します.

追加された各ラウンドは、2011年までにAES-128を攻撃するために使用された種類のショートカット攻撃の可能性を減らします。.

暗号文

これは、指定されたラウンド数を通過した後の暗号からの暗号化された出力です.

AES暗号化を解読する方法

AESの復号化は簡単です。逆のラウンドキーから始めて、上記の手順をすべて逆にするだけです。もちろん、各逆ラウンドキーを使用してプロセスを逆にするには、元の秘密キーが必要です.

ファイルを暗号化すると大きくなりますか?

はい。通常。 AESは16バイトの固定ブロックサイズを使用します。ファイルがブロックサイズの倍数でない場合、AESはパディングを使用してブロックを完了します.

理論的には、これは必ずしも暗号化されたデータのサイズの増加を意味するわけではありません(暗号文の盗用を参照)が、ブロックを埋めるためにデータを追加するだけで通常ははるかに簡単です。暗号化されるデータ量が増加します.

事例証拠は、AESで暗号化された1 MBを超えるファイルは、暗号化前よりも約35%大きくなる傾向があることを示唆しています.

AES暗号化のキーサイズはどれくらい重要ですか?

暗号の強度を測定する最も粗い方法は、キーのサイズです。キーが大きいほど、可能な組み合わせが多くなります.

AESは、126ビット、192ビット、または256ビットのキーサイズで使用できます。元のRijndael暗号は追加のキー長を受け入れるように設計されましたが、これらはAESに採用されませんでした.

ブルートフォース攻撃

アルゴリズムが複雑になるほど、ブルートフォース攻撃を使用した暗号の解読が難しくなります。この非常に原始的な形式の攻撃は、完全なキー検索とも呼ばれます。基本的には、正しいキーが見つかるまで、可能な数字のあらゆる組み合わせを試してみます。.

ご承知のとおり、コンピューターは2進数(ゼロと1)を使用してすべての計算を実行します。そして、私たちが見てきたように、暗号の複雑さはビット単位の鍵サイズに依存します-アルゴリズムを表現するのに必要な1と0の生の数。0または1はそれぞれ1ビットで表されます.

これはキーの長さとして知られ、任意の暗号に対してブルートフォース攻撃を正常に実行する実際的な実現可能性も表します。.

可能な組み合わせの数(したがって、ブルートフォースの難易度)は、キーサイズとともに指数関数的に増加します。 AESの場合:

既に説明したように、AES-128キーさえも強制的にクラックするには、宇宙の時代よりも長い世界最速のスーパーコンピューターが必要です。!

暗号化ラウンド

また、既に説明したように、AESで使用されるキーが長いほど、暗号化のラウンドが多くなります。これは主に、暗号の計算の複雑さを軽減できるショートカット攻撃を防止するためであり、したがって、暗号のブルートフォースが容易になります。.

暗号解読者のブルース・シュナイアーがAES-128に対する2011年のショートカット攻撃について断言したように,

「暗号とは安全性に関するものです。暗号のnラウンドを分割できる場合、2nまたは3nラウンドで設計します。」

彼はAESに各キーサイズのラウンドを追加することを推奨しましたが、NISTは現在のレベルで十分であると考えています.

なぜAES-128以上を使用するのか?

いずれも疑問を投げかけます。もしAES-128をクラックするのに宇宙の時代よりも時間がかかるなら、なぜAES-192またはAES-256を使用するのが面倒でしょうか?シュナイアーが指摘したように:

「AES-256を使用しないことをお勧めします。 AES-128は、近い将来に十分なセキュリティマージンを提供します。ただし、すでにAES-256を使用している場合は、変更する理由はありません。」

実際、シュナイアーは過去にAE-128はAESよりも安全であると主張してきました。.

AES-256が対称キー暗号化のゴールドスタンダードとして支持されている理由?

安全マージン

2011年のショートカット攻撃は、専門家が暗号アルゴリズムをどのように安全に考えても、発明者は誰もそれを弱めるとは考えていない方法を常に見つけることを示しています.

使用されるラウンドの数と同様に、キーサイズが大きいほど、クラックに対する安全マージンが高くなります.

ブリン

AES-256暗号化の遍在性を考慮する場合、マーケティングの効果を無視しないでください。 AES-256が世界で最も安全な対称暗号化暗号として広く認識されているという単純な事実により、AES-256は多くの人にとってナンバーワンの選択肢となっています。.

つまり、AES-128が優れていれば、AES-256の方が優れているはずだということを正当化するだけです?

米国政府がAES-256を使用して最も機密性の高いデータを保護しているという事実は、その「ブリング」価値に追加するだけであり、VPN企業などが「軍用」暗号化を使用することを主張できる.

この「見せかけの知覚」が(ほぼ)正確であることを考えると、AES-256の人気にほとんど害はありません(ただし、以下のNISTに関する注意事項を参照してください).

AESおよびOpenVPN

ただし、特にVPNユーザーは注意が必要です。ほとんどのVPNサービスはAES-256を使用してOpenVPNプロトコルによって送信されるデータを保護しますが、これはOpenVPNがデータを保護するために使用するさまざまなメカニズムの1つです。.

TLS接続は、AESが使用する暗号化キーの転送を保護し、OpenVPNの使用時にデータを保護します。そのため、OpenVPN TLS(制御チャネル)設定が弱い場合、AES-256を使用して暗号化されているにもかかわらず、データが危険にさらされる可能性があります。詳細については、VPN暗号化の究極のガイドをご覧ください。.

AES-CBC対AES-GCM

最近まで、VPNの世界で遭遇する可能性があったAES暗号は、AES-CBC(暗号ブロック連鎖)だけでした。これは、ブロック暗号モードを指します。これは、実際にここに入る価値のない複雑な主題です.

CBCには理論的にはいくつかの脆弱性がありますが、CBCは安全であるというコンセンサスがあります。実際、CBCはOpenVPNマニュアルで推奨されています.

OpenVPNはAES-GCM(ガリオ/カウンターモード)もサポートするようになりました。 GCMは認証を提供し、HMAC SHAハッシュ関数の必要性を取り除きます。また、ハードウェアアクセラレーション(複数のプロセッサコアへのスレッド化による)を使用するため、CBCよりもわずかに高速です。.

AES-CBCは一般的に最も一般的なモードのままですが、AES-GCMの人気が高まっています。 GCMの利点を考えると、この傾向は続く可能性が高いだけです。ただし、暗号化の観点からは、AES-CBCとAES-GCMの両方が非常に安全です.

NIST

AESはNIST認定の標準です。これは、独自の承認により、暗号の開発においてNSAと密接に連携する団体です。.

バックドアを弱めたり、国際的な暗号化標準に組み込むためのNSAの体系的な取り組みについて現在知っていることを考えると、NISTアルゴリズムの整合性を疑問視する理由はすべてあります。もちろん、NISTはそのような主張に強く反論します。

「NISTは、暗号化標準を故意に弱めることはありません。」

また、一般大衆の信頼を高めることを目的とした、今後予定されている多数の暗号化標準への一般参加も招待しています。.

しかし、New York Timesは、検出不能なバックドアを導入するか、アルゴリズムを弱めるために公共開発プロセスを破壊することにより、NISTが承認した暗号化標準を回避しているとNSAを非難しました。.

この不信感は、RSA Security(EMCの一部門)が、NSAによって設計された欠陥を含むとされる暗号化アルゴリズムの使用を停止するようにお客様に非公開に告げられたときにさらに強化されました。このアルゴリズムは、NISTによって承認されていました.

さらに、Dual_EC_DRBG(Dual Elliptic Curve Deterministic Random Bit Generator)は、NISTが設計した暗号化標準です。長年にわたって安全でないことが知られています.

2006年、オランダのアイントホーフェン工科大学は、それに対する攻撃は「普通のPC」で起動するのに十分簡単であると指摘しました。Microsoftのエンジニアは、アルゴリズムに疑わしいバックドアも報告しました。.

NISTがリードするこれらの懸念にもかかわらず、業界はそれに続きます。これは主に、NIST標準への準拠が米国政府契約(FIPS)を取得するための前提条件であるという事実によるものです。.

AESなどのNIST認定の暗号化標準は、プライバシーに依存する業界およびビジネスのすべての分野で、世界中でほぼ遍在しています。これにより、状況全体がかなり冷たくなります.

おそらく、これらの標準に大きく依存しているからこそ、暗号の専門家は問題に直面することを嫌がっています。.

画像クレジット:xkcd.com/538.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me