データのDES、トリプルDES、AES、Blowfish暗号化の比較


回答:


245

AESを使用します。

詳細:

  • DESは70年代の古い「データ暗号化標準」です。そのキーサイズは、適切なセキュリティには短すぎます(56有効ビット。これは、10年以上前に実証されたように、ブルートフォースになる可能性があります)。また、DESは64ビットブロックを使用するため、同じキーを使用して数ギガバイトのデータを暗号化する際にいくつかの潜在的な問題が発生します(ギガバイトは現在、それほど大きくありません)。
  • 3DESは、DESの3つのインスタンスを(個別のキーで)カスケードすることにより、DES実装を再利用するトリックです。3DESは、少なくとも " 2 112」のセキュリティ(これは非常に多く、「今日の技術で破壊できない」という領域ではかなり遠いです)。ただし、特にソフトウェアの場合は低速です(DESは効率的なハードウェア実装用に設計されていますが、ソフトウェアを使用し、3DESは3倍も使用します)。
  • Blowfishは、Bruce Schneierによって提案されたブロック暗号であり、いくつかのソフトウェアに導入されています。Blowfishは巨大な鍵を使用でき、DESや3DESと同様に64ビットのブロックサイズを除いて、安全であると考えられています。Blowfishは、少なくとも一部のソフトウェアプラットフォームではソフトウェアで効率的です(キー依存のルックアップテーブルを使用するため、パフォーマンスはプラットフォームがメモリとキャッシュを処理する方法に依存します)。
  • AESは、米国連邦機関向けの標準的な対称暗号化アルゴリズムとして(および他のほとんどすべての人にとっても標準として)DESの後継です。AESは128、192、または256ビットのキーを受け入れ(128ビットはすでに非常に壊れにくい)、128ビットブロックを使用するため(問題がないため)、ソフトウェアとハ​​ードウェアの両方で効率的です。これは、数年間に何百人もの暗号技術者が参加するオープンコンテストを通じて選ばれました。基本的に、それ以上のものはありません。

したがって、疑問がある場合はAESを使用してください。

ブロック暗号は「ブロック」(AESを使用したデータの128ビットのチャンク)を暗号化するボックスであることに注意してください。128ビットより長い可能性のある「メッセージ」を暗号化する場合、メッセージをブロックに分割する必要があります。分割を行う実際の方法は、操作モードまたは「チェーン」と呼ばれます。単純モード(単純分割)はECBと呼ばれ、問題があります。ブロック暗号を適切に使用することは容易ではなく、AESや3DESなどを選択するよりも重要です。


4
少し気が
狂ったので

2
神聖なSh * t、NSAは1976年にDESをクラックすることができましたが、2002年までその使用を奨励し続けました!私を偏執狂と呼んでいますが、AESの推進に恐怖を感じています
Deo博士

25

AESとBlowfishを除くこれらのスキームはすべて既知の脆弱性があるため、使用しないでください。
ただし、BlowfishはTwofishに置き換えられました。


11

説明されている暗号化方式は、対称鍵ブロック暗号です。

Data Encryption Standard(DES)は前身であり、56ビットキーを使用して64ビットブロックでデータを暗号化します。各ブロックは分離して暗号化されますが、これはセキュリティ上の脆弱性です。

トリプルDESは、各ブロックに3つのDES操作を適用することにより、DESのキー長を拡張します。キー0を使用した暗号化、キー1を使用した復号化、およびキー2を使用した暗号化。

DESおよび3DESは通常、レガシーの商用製品およびサービスとのインターフェース時に発生します。

AESは後継者であり、最新の標準と見なされています。http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Blowfishの使用はお勧めできません。

独自の暗号化を実装するのではなく、保存データ用のGPGまたは転送中のデータ用のSSL / TLSなどの高レベルの実装を使用することを強くお勧めします。これは、暗号化の脆弱性に関する優れた地味なビデオですhttp://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/


2
なぜフグの使用は推奨されないのですか?これが最も安全な方法ではありませんか?
yogsma

5
@yogsma:Blowfishのブロックサイズはたったの64ビットです(プロトコルでのDESのドロップイン置換として意図されていたため)。したがって、同じキーで暗号化されたいくつかのデータの後に問題が発生します。
–PaŭloEbermann 2012

@rohannes、フグが推奨され、なぜ、私はパフォーマンスフグの面でどこを読んbrighthub.comこの記事ではAESの外観よりも優れている
ヨーゲッシュ

9

AESは対称暗号アルゴリズムであり、RSAは非対称(または公開鍵)暗号アルゴリズムです。暗号化と復号化は、AESでは1つのキーで行われますが、RSAでは別々のキー(公開キーと秘密キー)を使用します。128ビットのAESキーの強度は、2600ビットのRSAキーとほぼ同じです。


7
この答えを裏付ける数学、または情報源を提供できますか?128ビットのAESが2600ビットのRSAとほぼ同等であるという結論にどうやって至ったか知りたいです(これは古い答えだと思います)
Russell Uhl

3
@RussellUhl-さらに2年間の沈黙の後でも、これらの数字の履歴は興味深い質問であることに同意します。:)これらの数値は、このPDFペーパーから導出できるようです。タイトルはeprint.iacr.org/2013/635.pdfUniversal security - from bits and mips to pools, lakes – and beyondです。
ジェシーチザム

4

TripleDESCryptoServiceProviderは安全で優れた方法ですが、遅すぎます。MSDNを参照したい場合は、TripleDESではなくAESを使用することをお勧めします。以下のリンクを確認してください:http : //msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx この注意は、備考セクションに表示されます。

新しい対称暗号化アルゴリズムであるAdvanced Encryption Standard(AES)を使用できます。TripleDESCryptoServiceProviderクラスの代わりにAesCryptoServiceProviderクラスの使用を検討してください。TripleDESCryptoServiceProviderは、レガシーアプリケーションおよびデータとの互換性のためにのみ使用してください。

幸運を


3
これは面白いMicrosoftはまだ積極的に暗号化(のために、自社製品のいくつかでトリプルDESを使用することを与えられているen.wikipedia.org/wiki/Triple_DES#Usage
トム・ハード

@Tom正解ですが、多くのソフトウェアが古いテクノロジーを使用していることを忘れないでください。新しい方法に適応するには時間がかかります。特にMicrosoftのような大企業の場合、更新が必要であることに同意しますが、会社がいくつかのことを提案したり他のことをしたりすると、これは良くありません。
QMaster

1
マイクロソフトは下位互換性で悪名高いです。彼らがTripleDESを使用することは、「レガシーアプリケーションおよびデータとの互換性のためにのみ」に直接該当します。
Dan Bechard、2016年


0

AESは、現在使用が認められている標準アルゴリズムです(そのため、Advanced Encryption Standardという名前です)。

残りは違います。


3
したがって、名前は?次に、「AES」という名前はそれを使用する必要があることをどのように示していますか?
CodyBugstein

15
データ暗号化規格はどうですか?「名前に<standard>が含まれているため、これを使用する必要があります」というロジックにはかなり欠陥があります。
Zlatin Zlatev

0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow

AESは、特にAES-NIをサポートするCPUで、3DESよりも高速です。(ただし、それがなくても、DESはソフトウェアの実装ではなく、高速のハードウェア実装用に設計されています)(通常のDESは、一部のベンチマークはやや高速ですが、56ビットキーは現在の使用には適していません)
Gert van den Berg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.