2013-06-18 13 views
14

C#のRijndaelManagedクラスがAES暗号化と同等かどうかを確認するためにこの質問をしています。私が読んできたことから、RijndaelManagedはAESの暗号化を実装するために選択されたアルゴリズムでした。誰かがこれを確認できますか?アルゴリズム - C#のRijndaelManagedクラスはAES暗号化と同等ですか?

RijndaelManagedアルゴリズムはウェブプロジェクトで安全に使用できますか?感謝:)

+1

私はそのアルゴリズムはAES暗号化 –

+0

のために使用することができると思うおかげMERT Akkaya :) – Matthew

答えて

18

AESアルゴリズムは、NISTが1997年から2000年に開催した競技会で選ばれました。勝者はRijndaelというアルゴリズムでした。

NISTは、AESアルゴリズムが128ビットブロックサイズであると指定しました。 Rijndaelは128,160,192,224、および256ビットのブロックサイズをサポートしているため、最終的なAES仕様はその点で元のRijndael仕様とは異なります。言い換えれば、 "AES"と "Rijndael"は同じアルゴリズムですが、 "AES"は128ビットのブロックサイズに制限されています。

ブロックサイズはキーサイズとは関係ありません。問題のアルゴリズムは、128,192、および256ビットのキーをサポートしています。 AESには特定の理論上のweaknessesがあるので、長いキーは必ずしも「強い」とは限りません。いずれにしても、128ビットキーは近い将来十分な長さです。

EkoostikMartinによると、AESは現在までに解読できません。しかし、暗号化は難しく、専門家でも毎回正しいことはしません。あなたが行っていることを正確に知らずに生の暗号プリミティブを使用することは、おそらく何か悪い結果をもたらすでしょう。別の言い方をすれば、暗号は「セキュリティ・チェーン」における最も弱いリンクであることはごくまれです。

6

あなたはAESを使用したい場合は、単にAesManagedクラスを使用する - あなたが参照http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged%28v=vs.100%29.aspx

RijndaelManagedクラスは、まさにそれは限りブロックサイズなどのオプションを与えるほとんど以来、AESの仕様に適合しません。 AesManagedは指定された128ビットブロックサイズを使用します。

ウェブプロジェクトにとって「安全」である限り、非常に強力な暗号化方法です(私が知る限りでは決して破られていませんが)何かのように正しく使用する必要があります。

+0

おかげで:)だから、AesManagedよりも強いRijndaelManagedされます?私はそれが256ビットの鍵サイズをサポートできることを読んだ。 – Matthew

+0

'AesManaged'は256ビット鍵をサポートしています - http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged.keysize(v=vs.100)。aspx – EkoostikMartin

+2

@Matthew RijndaelManagedは、AESと互換性のない方法で使用することができます。したがって、セキュリティがより低いと見なされる必要がないため、使用しないでください。 – jbtule

0

ブロックサイズとキーサイズを変更できる点にはいくつか違いがあります。あなたがラインダールでCFBを使用している場合
は、ブロックサイズを使用すると、128

のブロックサイズを保証することはできません。つまり、フィードバックの大きさに調整します(AESは、私の知る限りでは128の固定ブロックサイズを使用しています)同等性を保証するには、ブロックサイズを128に設定し、CFBを回避するか、フィードバックサイズも128にする必要があります。

注:CFBで静的IVを使用する場合は、暗号は決定論的になります。これを回避すると、接頭辞付きのIVを簡単に識別してデータの復号化に使用できます。

(古いスレッドを上げて申し訳ありませんが、この情報ここではなかった)