2009-07-16 7 views
2

AESを使用して任意の長さのデータを暗号化したいと思っています。ブロック暗号モードを使用する必要があります。 http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.htmlは、CTRモードでAESを推奨しています。私はRuby on Railsプラグインを書いていますが、残念ながらOpenSSL(Rubyは標準バインディングを持っています)はCTRをサポートしていません。サードパーティの暗号ライブラリをインストールすることなく、皆さんのために自分のコードを実装したいので、今はCFBを使用しています。 CFBは受け入れられますか? CTRや他のモードとどのように比較しますか(私が知っているECBは例外ではありません)。どのブロック暗号モードを使用しますか? CFBは適切ですか?

答えて

-4

独自の暗号化を行わないでください。あなたがそのような質問をしなければならない場合、あなたはそれを正しく行うことはほとんどありません。ライブラリを使用してください。

例えば、this post、次にthis follow up、特に、blogを参照してください。

たとえば、ECBはCFBよりも安全ではありません。彼らはさまざまな目的のために使用され、間違った目的のために他のものを選択することは、同じように安全ではないでしょう。

+0

はい、データを暗号化するのに十分な重要性がある場合は、十分にテストされたコードを使用することをお勧めします。そこに自由と商業のオプションがたくさんあります。 –

+2

あなたはなぜこのように反応するのか分かりません。私は自分自身の暗号アルゴリズムや実装を改革するつもりはない。代わりに、OpenSSLの暗号化機能を使用しています。あるいは、私が暗号化を使用するソフトウェアを書いているという事実を指しているかもしれません。似たようなソフトウェアがないので、私はこれを書いています。 – Hongli

+0

香港、私はあなたやそのような何かを嘲るわけではありません。私は私が与えることができる最高のアドバイスであると考えるものを提供しています。投稿したリンク、特に最後のリンクを読んでいない場合、あなたは有用な情報を前にしています。また、同様のソフトウェアがないと言います。あなたが必要な目的のためにライブラリがある場合、StackOverflowでここに尋ねましたか?そうであれば、この質問にリンクを入れてください。他の人に助言するのに役立ちます。もしそうでなければ、それはより良い質問でしょう。 –

3

AFAIK、CFBは他のモードと同じように安全です。ストリームモードの利点は他の領域(並列化、ランダムアクセスなど)にあります。

他のポスターは、暗号化自体が意味をなさないほど正確です。細部まで細かいことがありますが、いくつか見逃す可能性があります。

一方、私はECB/CFBコメントに同意しません。 ECBはデータのパターンを公開することができ、弱いスキームをより弱くすることができます。私はそれを「安全ではない」と書いておくことをあまりにも躊躇しないでしょう。

0

ストリーム暗号を組み合わせたモードを使用する代わりに、cipher text stealing (CTS)という手法とCBCのようなモードで問題にアプローチできますが、これは16バイト以上のデータサイズでのみ機能します。

1

CFBはストリーム暗号のコンテキストではCTRと同じくらい安全です.CTRは並列化できますが、CFBでは並列化できません。独自の暗号化ストリーム暗号を実装することはおそらくセキュリティ上の問題を抱えてしまうという警告に注意してください。可能であれば、RubyからOpenSSLへのCバインディングを行うのが最善の策です。

関連する問題