暗号化 [セクション 3: 対称暗号-DES\AES]

序文

暗号化では、暗号化アルゴリズムは双方向暗号化と一方向暗号化に分類されます。一方向暗号化には、MD5 や SHA などの元に戻せないダイジェスト アルゴリズムが含まれます。双方向暗号化には対称暗号化と非対称暗号化があり、対称暗号化には AES 暗号化、DES 暗号化などが含まれます。双方向暗号化は元に戻すことができ、暗号文へのキーが存在します。AES アルゴリズムは DES アルゴリズムに代わるもので、現在最も人気のある暗号化アルゴリズムの 1 つです。

目次

序文

1.DES暗号化アルゴリズム

DES暗号化アルゴリズムとは

DES暗号化アルゴリズムの原理

2. AES暗号化アルゴリズム

AES暗号化アルゴリズムとは

AES暗号化アルゴリズムの原理

3. DES と AES の違いの比較

AES アルゴリズムと DES アルゴリズムの主な違い

4. 推奨される暗号化および復号化ツール


1.DES暗号化アルゴリズム

DES暗号化アルゴリズムとは

DES 暗号化アルゴリズムは、対称暗号化アルゴリズムの 1 つです。これは 1970 年代初頭に IBM によって開発され、その後1977 年に米国国家標準局によってデータ暗号化標準として採用されました(DES の正式名称は、Data Encryption Standard から来ています)。DES は、最も優れたものの 1 つでもあります。現在一般的な暗号化アルゴリズム。

DES暗号化アルゴリズムの原理

DES は、ブロックと呼ばれる固定長のデータ セグメントを毎回処理するブロック暗号化アルゴリズムでもあります。DES パケットのサイズは 64 ビットですが、暗号化されたデータの長さが 64 ビットの倍数でない場合は、特定の規則に従ってビットを埋め込むことができます。

DESは64ビットの平文を単位として暗号化するため、64ビットを超えるデータは64ビットの固定サイズにまとめる必要があり、その分割パターンは多数あります。DES で使用される鍵の長さは 64 ビットですが、7 ビットごとにパリティ ビットが設定されるため、実際の鍵の長さは 56 ビットになります(8 ビット目、16 ビット目、24 ビット目、32 ビット目、40 ビット目、48 ビット目、56 ビット目、64 ビット目はチェック ディジットで、各キーには奇数の 1 があります) パリティ チェックは最も単純なエラー検出コードであり、バイナリ コードのセット内の 1 の数が奇数か偶数かに基づいてエラーを検出します。

グループ化された平文グループと 56 ビットの鍵がビットごとに置換または交換されて、暗号文グループの暗号化方式が形成されます。 

全体のプロセスを整理する

ステップ 1: 初期キー (64 ビット、実際には 54 ビットが使用される) を 16 個のサブキー (48 ビット) に変換し、平文を変換します (平文は 64 ビットのグループである必要があります)。

ステップ 2: グループ化された平文を 32 ビットの 2 つのグループに分割し、キーで暗号化します。

ステップ 3: 暗号化のための置換または交換を 16 ラウンド実行し、各ラウンドで 1 つのサブキーを使用します。

ステップ 4: 暗号文を取得します (グループごとに取得され、各グループは 64 ビットです)

詳細なプロセス原理と実装については、兄貴の記事「データ暗号化アルゴリズム - DES 暗号化アルゴリズムの原理と実装の詳細な説明 - DreamGo - Blog Park (cnblogs.com)」を参照してください。 

2. AES暗号化アルゴリズム

AES暗号化アルゴリズムとは

AES は Advanced Encryption Standard であり、暗号化におけるラインダール暗号化とも呼ばれ、米国連邦政府によって採用されたブロック暗号化標準です。この標準は、元の DES を置き換えるために使用され、世界中で広く使用されていると同時に、対称キー暗号化で最も人気のあるアルゴリズムの 1 つになりました。

AES暗号化アルゴリズムの原理

AES はブロック暗号です。ブロック暗号は平文を同じ長さのグループに分割し、平文全体が暗号化されるまで一度に 1 つのデータ グループを暗号化します。AES 標準仕様では、パケット長は 128 ビットのみです (不十分な場合はパディングが使用されます)。つまり、各パケットは 16 バイト (1 バイトあたり 8 ビット) です。キーの長さは 128 ビット、192 ビット、または 256 ビットです。次の表に示すように、キーの長さが異なり、推奨される暗号化ラウンド数も異なり、各ラウンドにはサブキーが必要です。

AES キーの長さ (32 ビット ワード) パケット長(32ビットワード) 暗号化ラウンド数
AES-128 4 4 10
AES-192 6 4 12
AES-256 8 4 14

ヒント: 通常、AES128、AES192、および AES256 と呼ばれるものは、実際には、異なる長さのキーに対する AES アルゴリズムの使用を指します。 

主要な拡張: その複雑さは、アルゴリズムのセキュリティを確保する上で重要な部分です。キーの長さが 128 ビットの場合、AES 暗号化アルゴリズムは合計 10 ラウンド反復され、10 個のサブキーが必要になります。AES キー拡張の目的は、入力 128 ビット キーを 11 個の 128 ビット サブキーに拡張することです。AES 鍵拡張アルゴリズムは、基本単位 (1 ワードは 4 バイト) としてワードを使用します。これは、まさにキー行列の 1 列です。したがって、4 ワード (128 ビット) キーを 11 個のサブキー、合計 44 ワードに拡張する必要があります。

最初の鍵追加層での鍵ブリーチングにもサブ鍵が必要となるため、生成されるサブ鍵の数は AES アルゴリズムのラウンド数より 1 つ多くなります。キー ブリーチングとは、AES の入力と出力の両方で使用されるサブキーの XOR 加算を指します。サブキーはすべて、グラフ内の W[0]、W[1]、...、W[43] に格納されます。配列。k1 ~ k16 は元のキーに対応するバイトを表します

AES 暗号化アルゴリズムには、バイト置換 (SubBytes)、行シフト (ShiftRows)、列混同 (MixColumns)、およびラウンド キー加算 (AddRoundKey) の 4 つの操作が含まれます。次の図は、AES 暗号化と復号化のプロセスを示しています。

全体のプロセスを整理する

最初のステップ: 鍵が拡散され、平文がグループ化されます

ステップ 2: 暗号化アルゴリズム プロセスを実行します: バイト置換、行置換、列シャッフル、ラウンド キーの追加

ステップ 3: 暗号文を生成する

 詳細なプロセス原則については、著者による記事をお読みください。

AES 暗号化アルゴリズムの原理 (暗号化プロセス) - Shawn_Michaels - Blog Park (cnblogs.com)


 

3. DES と AES の違いの比較

AES アルゴリズムと DES アルゴリズムの主な違い

AES と DES の主な違いは暗号化プロセスです。DES では、平文はさらなる処理の前に 2 つの半分に分割されますが、AES では、ブロック全体が分割されず、ブロック全体が一緒に処理されて暗号文が生成されます。比較的に、AES は DES よりもはるかに高速で、DES に比べて数秒で大きなファイルを暗号化できます。

DES で使用される共有キーのビット サイズが小さいため、DES は AES よりも安全性が低いと考えられています。DES はブルート フォース攻撃に対してより脆弱であると考えられていますが、AES はこれまでのところ深刻な攻撃に遭遇していません。

アルゴリズムの実装を柔軟性に基づいて評価すると、AES は 128、192、256 ビットなどのさまざまな長さのテキストを許可するのに対し、DES は 64 ビットの固定テキストの暗号化を許可するため、DES よりも柔軟性が高くなります。

DES ラウンド処理で使用される関数は、拡張、並べ替え、置換、ラウンド キーによる XOR 演算ですが、AES ラウンドで使用される関数は、サブバイト、行のシフト、列の混合、およびラウンド キーの追加です。AES は実際にはハードウェア実装とソフトウェア実装の両方で効率的ですが、DES は当初ハードウェアでのみ効率的でした。

DES アルゴリズムの欠点:

グループ化が比較的短く、キーが短すぎ、パスワードのライフサイクルが短く、操作速度が遅い。

DES アルゴリズムの利点:

DES アルゴリズムは非常に安全性が高く、これを攻撃するには今のところ全数探索法以外に有効な手法は見つかっていません。

AES アルゴリズムの欠点:

現在、完全バージョンの AES アルゴリズムに対する攻撃は成功していませんが、その簡略化されたアルゴリズムに対する攻撃は提案されています。

AES アルゴリズムの利点:

1. 計算速度が速く、メモリ要件が非常に低く、制限された環境に適しています。

2. パケット長とキー長の設計は柔軟です。AES 規格は可変パケット長をサポートしています。パケット長は 32 ビットの任意の倍数に設定できます。最小値は 128 ビット、最大値は 256 ビットです。

3. AES の鍵長は DES よりも長く、32 ビットの任意の倍数に設定でき、最小値は 128 ビット、最大値は 256 ビットであるため、徹底的な方法。

4. 差分暗号解読および線形暗号解読に対して優れた耐性を持っています。

全体として、AES アルゴリズムと DES アルゴリズムの違いは暗号化プロセスです。どちらのアルゴリズムにも独自の長所と短所があります。相対的に言えば、AES は DES よりも安全で高速です。

4. 推奨される暗号化および復号化ツール

オンライン AES 暗号化/復号化ツール、暗号化と復号化のキーを入力でき、元に戻せる暗号化と復号化操作をサポートしています。テストできます: https://md5.cn/

おすすめ

転載: blog.csdn.net/weixin_62421736/article/details/133026916