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は適切ですか?
2
A
答えて
-4
独自の暗号化を行わないでください。あなたがそのような質問をしなければならない場合、あなたはそれを正しく行うことはほとんどありません。ライブラリを使用してください。
例えば、this post、次にthis follow up、特に、blogを参照してください。
たとえば、ECBはCFBよりも安全ではありません。彼らはさまざまな目的のために使用され、間違った目的のために他のものを選択することは、同じように安全ではないでしょう。
3
AFAIK、CFBは他のモードと同じように安全です。ストリームモードの利点は他の領域(並列化、ランダムアクセスなど)にあります。
他のポスターは、暗号化自体が意味をなさないほど正確です。細部まで細かいことがありますが、いくつか見逃す可能性があります。
一方、私はECB/CFBコメントに同意しません。 ECBはデータのパターンを公開することができ、弱いスキームをより弱くすることができます。私はそれを「安全ではない」と書いておくことをあまりにも躊躇しないでしょう。
0
ストリーム暗号を組み合わせたモードを使用する代わりに、cipher text stealing (CTS)という手法とCBCのようなモードで問題にアプローチできますが、これは16バイト以上のデータサイズでのみ機能します。
1
CFBはストリーム暗号のコンテキストではCTRと同じくらい安全です.CTRは並列化できますが、CFBでは並列化できません。独自の暗号化ストリーム暗号を実装することはおそらくセキュリティ上の問題を抱えてしまうという警告に注意してください。可能であれば、RubyからOpenSSLへのCバインディングを行うのが最善の策です。
関連する問題
- 1. AES暗号化はノーパディング</p> <p>「<strong>AES/CFB/NoPadding</strong>」でCFBモードでAESを使用して、データをファイルから読み込み、暗号化しようとしていますCFBモード
- 2. RijndaelをCFBモード、ブロックサイズ256ビット、Bouncycastleで暗号化するにはどうすればよいですか?
- 3. 暗号/ 3DES/CFB/JavaとPHP
- 4. PHPでAES CBC + CTS(暗号文の盗用)モードを使用してデータを暗号化/復号化するにはどうすればよいですか?
- 5. 適切なPHP mcrypt暗号化方式ですか?
- 6. ECBモードの暗号を使用しないでください
- 7. password_requiredの適切な場所を判断しますか? before_saveパスワードの暗号化
- 8. JavaでCBCモードでBlowfishを使用した暗号化
- 9. 静的モードでAudioTrackを使用する適切な方法は何ですか?
- 10. PHPでCBC暗号化モードを使用する方法
- 11. 使用する暗号化方式はどれですか?
- 12. Java暗号化:どのアルゴリズムを使用すべきですか?
- 13. サーバーから暗号化し、クライアントで暗号化を解除します(クライアントでは暗号化しません)。
- 14. ECB暗号モードを使用することはこれまで勧められていますか?
- 15. .NET FormsAuthentication.Encrypt()メソッドはどの暗号化方式を使用しますか?
- 16. SQL Server CEはどのような暗号化アルゴリズムを使用しますか?
- 17. ハドソンはどのパスワード暗号化方式を使用していますか?
- 18. MsOfficeはファイル暗号化にどのようなアルゴリズムを使用しますか?
- 19. TLS暗号化でDefaultNetworkCredentialを使用しますか?
- 20. spring-ws(wss4j)で暗号化/復号化を追加する適切な方法は何ですか?
- 21. サウンドを使用してファイルを暗号化しますか?
- 22. Bouncy Castleのパスワードベースの暗号化でABCをCBCモードで使用する
- 23. ハッシュとしてのSkeinのセキュリティは、ブロック暗号としてのThreefishのセキュリティを暗示しますか?
- 24. AES暗号化のためのIPhoneの異なるパディングモードと暗号モードは何ですか?
- 25. 暗号化されたNFSにはどのような暗号が使用されていますか?
- 26. AndroidでBouncy Castle暗号APIを使用できますか?
- 27. mcryptとsha-512を使用して復号化を暗号化しますか?
- 28. カスタムMembershipProviderのパスワードの使用を暗号化/復号化しますか?
- 29. 暗号化sqliteDBは何も暗号化していないDBを使用していますか?
- 30. C#で複数のブロックをRSA暗号化/復号化する
はい、データを暗号化するのに十分な重要性がある場合は、十分にテストされたコードを使用することをお勧めします。そこに自由と商業のオプションがたくさんあります。 –
あなたはなぜこのように反応するのか分かりません。私は自分自身の暗号アルゴリズムや実装を改革するつもりはない。代わりに、OpenSSLの暗号化機能を使用しています。あるいは、私が暗号化を使用するソフトウェアを書いているという事実を指しているかもしれません。似たようなソフトウェアがないので、私はこれを書いています。 – Hongli
香港、私はあなたやそのような何かを嘲るわけではありません。私は私が与えることができる最高のアドバイスであると考えるものを提供しています。投稿したリンク、特に最後のリンクを読んでいない場合、あなたは有用な情報を前にしています。また、同様のソフトウェアがないと言います。あなたが必要な目的のためにライブラリがある場合、StackOverflowでここに尋ねましたか?そうであれば、この質問にリンクを入れてください。他の人に助言するのに役立ちます。もしそうでなければ、それはより良い質問でしょう。 –