1. 序章

このチュートリアルでは、暗号化の簡単な定義と、そもそも暗号化が必要な理由を説明します。 その後、いくつかの暗号化アルゴリズム、DES(データ暗号化標準)、3DES(トリプルDES)、AES(高度暗号化アルゴリズム)、およびBlowfishをいくつかの評価メトリックの観点から比較します。

2. 暗号化とは何ですか?

暗号化は、許可された関係者のみがデータを解釈できるように情報を保護するための手法です。 何が起こるかというと、暗号化は平文に変換を提供し、それを人間が読めない暗号文に変換します。

デジタル時代だけでなく、暗号も歴史を通じて広く使用されてきました。下の図に、暗号の分類の概観を示します。 これまで見てきたように、暗号をいくつかの特性の観点から、またはその使用法に従って分類します。 それらは主に2つの異なるタイプに分けられます。 古典的および現代的なクラス。 最も一般的でデジタルで使用されているのはモダンクラスです。 これは、対称および非対称暗号という、より詳細なクラスへの道を開く動的および静的暗号技術によるものです。

対称暗号化では、データの暗号化と復号化に1つのキーしかありませんが、非対称暗号化では、2つの異なるキーを使用します。暗号化には公開キーを使用し、復号化には秘密キーを使用します。 公開鍵と秘密鍵は異なりますが、相互に関連しているため、鍵のペアと呼びます。 DES、3DES、AES、およびBlowfishは、対称鍵ブロック暗号クラスのメンバーであり、これらについて説明し、記事全体で相互に比較します。

3. 暗号化アルゴリズム

これらの各アルゴリズムを詳しく見ていきましょう。

3.1. DES

DESはIBMによって開発され、 HorstFeistelによる設計に基づいています。 これは、最初にリリースされたとき、広く使用され、公に利用可能な暗号化システムの1つでした。 最初のデビューは70年代ですが、後に米国国立標準技術研究所(NIST)に採用されました。 これは、デジタルデータを暗号化するための対称鍵アルゴリズムです。

ブロックサイズは64ビットで、構造としてFeistelネットワークを使用します。 それは遅く、ソフトウェアでは使用されません。

それは暗号の進歩に大きな影響を与えました。 ただし、キーの長さが56ビットと短いため、アプリケーションにとっては安全ではありません。 1999年、distributed.netは22時間15分でDESキーを解読しました。 これらの種類のイベントの後、NISTはこのアルゴリズムを標準として撤回します。 3DESは、DESの脆弱性の後に出現しました。

3.2. 3DES

Triple DES、3DES、またはTDESは、正式にはTriple DataEncryptionAlgorithmです。 これは対称鍵ブロック暗号であり、DESアルゴリズムを各ブロックに3回適用します。 ブロックサイズは64ビットで、キーの長さは112ビットまたは168ビットです。 また、DESに基づいているため、Feistelネットワークを使用します。

DESのような最新の暗号化技術とスーパーコンピューティングにより、3DESにもいくつかの深刻な脆弱性があります。そのため、NISTは2017年に新しいアプリケーションと2023年までにすべてのアプリケーションでDESと3DESを非推奨にしました。

その結果、AESが登場し、これらの暗号化アルゴリズムに取って代わりました。

3.3. ふぐ

Blowfishは、DES暗号化アルゴリズムの代替として1993年に BruceSchneierによって設計されたもう1つの対称鍵暗号化技術です。 したがって、DESよりも大幅に高速で、優れた暗号化率を提供します。 キーの長さは446ビットで、DESや3DESよりもはるかに優れています。 したがって、フグの鍵を割るのはより困難です。 また、64ビットのブロックサイズがあります。 ソフトウェアでも使用できます。

ただし、AESは今日より注目を集めており、SchneierはBlowfishの代わりにTwofishを推奨しています。 それは無料のライセンスを持っており、すべての用途に利用できます。

3.4. AES

AESは、悪意のある第三者からデータを保護する別の種類の暗号です。 現在利用可能な最も強力な暗号化アルゴリズムの1つです。AESは速度とセキュリティを適切に組み合わせているため、中断することなくオンラインアクティビティを続行できます。

AESはデータの暗号化と復号化の両方に同じキーを使用するため、対称型の暗号化でもあります。 AES暗号化キーの長さには、128、192、および256ビットの3つのタイプがあります。 各キーの長さには、異なる可能なキーの組み合わせがあります。 他の暗号化アルゴリズムとは構造が異なり、置換置換ネットワークを使用します。

AES暗号化方式のキーの長さはさまざまですが、そのブロックサイズは128ビットまたは16バイトに固定されています。

4. DES vs 3DES vs Blowfish vs AES

前のセクションで説明したように、また下の表でわかるように、DESは十分に安全ではありません。 キーの長さが短く、ブルートフォース攻撃で簡単に解読できるためです。 したがって、3DESは別の代替手段ですが、十分に安全ではありません。

Blowfishは優れた代替手段の1つですが、そのブロックサイズはAESとして十分ではありません。 AESは、組織の対称鍵暗号化アルゴリズムとしてのDESの後継と見なされます。 さまざまなキーサイズ、128、192、または256ビットを受け入れます。 ソフトウェアとハードウェアの両方で効率的です。

1秒あたり500億キーですべての可能なキーをチェックするのに必要な時間を見ると、AESの効率を確認できます。その結果は、キーサイズを128ビットとして使用しても、他の暗号化アルゴリズムよりもはるかに優れています。 。

5. その他の評価指標

文献には、暗号化アルゴリズムのいくつかを評価および比較する多くの調査研究があります。 そして、これらの研究では、比較中に通常焦点を当てる特定の指標があります。 実際、これらのメトリックには、主に暗号化と復号化の時間、メモリ使用量、場合によってはエントロピー、アバランシェ効果、および最適なエンコードに必要なビット数が含まれます。

5.1. 暗号化時間

平文を暗号文に変換するのにかかる時間です。 暗号化プロセスの長さは、キーサイズ、プレーンテキストブロックサイズ、およびモードによって決まります。 システムの速度と応答性を高めるには、暗号化時間を短縮する必要があります。

5.2. 復号化時間

暗号文から平文を取得するのにかかる時間。 システムを高速化するには、暗号化時間のようにしないでください。

5.3. メモリ使用量

暗号化アルゴリズムが異なれば、実装に必要なRAMの量も異なります。 メモリ使用量は、キーサイズ、操作の種類、操作の数、および初期化ベクトルによって異なります。

5.4. アバランシェ効果

これは、暗号化アルゴリズムの望ましい特性です。 ブロック暗号と暗号化ハッシュ関数。入力が1ビットを反転するようにわずかに変更されると、出力が大幅に変化します。 キーまたはプレーンテキストのこのような小さな変更は、高品質のブロック暗号の暗号文に大きな変更をもたらす必要があります。 このフレーズはホルストファイステルによって造られましたが、概念はシャノンの拡散にまでさかのぼります。

6. 結論

この記事では、DES、3DES、Blowfish、およびAESに関するいくつかの情報を簡単に説明しました。 また、いくつかの指標の観点からそれらを比較および評価しました。

暗号化アルゴリズムは理論と実践の両方でデータを保護すると考えていますが、マルウェア、キー検索、ブルートフォース、フィッシング、サイドチャネルなどのさまざまな攻撃があることに注意してください。 これらの攻撃は、システムをハッキングする方法を見つけることを目的としています。

要約すると、すべての暗号化アルゴリズムには短所と長所がありますが、そのうちのいくつかは時間の経過とともに信頼性を失う可能性があります。 したがって、暗号化アルゴリズムを選択するときは注意が必要です。 アプリケーションと暗号化アルゴリズムの詳細の両方を考慮する必要があります。