3

私はC#と暗号化に比較的慣れていないので、ご容赦ください。私は、かなりの量のデータを格納するビジネス アプリケーション (C#、.NET 4.0、VS 2010) に取り組んでおり、大量のデータを読み取り、それを表示するためにフィルター処理する必要があります (ほとんどの場合、 datagridview、時にはいくつかの計算...)。いずれにせよ、データは暗号化する必要があり、データ ファイルの一部のみを暗号化および復号化できる必要があります (ランダムな位置から書き込みおよび読み取りを行うため)。速度は不可欠です (ユーザーはデータの読み込みと表示を待つべきではありません)。セキュリティは二の次です。これが実行されるコンピューターは、少なくとも 2GB RAM を搭載した、少なくともデュアル コア 2.0+ Ghz です。

実行時に計算される比較的大きな (約 1MB) xor パッドを使用することを考えました。xor と組み合わせたバイナリのカスタム ファイル設計は、比較的優れたセキュリティと速度を提供するはずだと思います。しかし今、私はより強力なものを使用することを考え始めました。それでも十分に高速であれば、AES (おそらく .NET 実装: Rijindael または Serpent または Twofish) を使用することを考え始めました。では、何がベストだと思いますか?そのような場合、他の企業/開発者は通常何を使用しますか? AES の速度はどのくらいですか? I/O 操作はすでに非常に遅く、AES が事態をさらに悪化させるのか、それとも気づかないのかさえわかりません。

または、データを十分に高速に暗号化する方法について、他に何かアイデアはありますか?

ps 誰かがコードを正常に (!) デバッグまたは逆アセンブルした場合、データを復号化できることを知っています。

編集:私は顧客向けのカスタムアプリケーションを開発しているだけなので、より良いハードウェアを強制することはできません。より良いハードウェアをお勧めできます. 私のソフトウェアは、主に 3 つの部分、POS、サーバー、およびある種のマネージャーで構成されます。私の最初のアイデア (ある種の xor) が役に立たず、より良い暗号化を使用する必要があると思われる場合は、少なくとも、どのような種類のハードウェア (最小) が望ましい結果を提供するかを見積もってみてください (「十分に高速」 = 復号化はすべきではありません)。データ表示への影響。たとえば、データをロードして datagridview に表示するのに 1 秒かかる場合、復号化で同じことを行うのに 1.2 ~ 1.3 秒以上かかることはありません)。

4

4 に答える 4

6

セキュリティは二の次

速度とセキュリティに反する決定を下さないでください。両方持ってみてください!

Blowfish や Rijndael/AES などの暗号化アルゴリズムは非常に高性能です ( 「 」を参照)。より良いハードウェアに間違いなく投資してください!サーバーのセットアップは、実際には最先端ではありません。実際、私のノートブックはサーバーのセットアップよりもはるかに強力です;)

ハードウェアは、開発者の時間よりもはるかに安価です。標準的で十分に承認された暗号化技術に固執してください! ハードウェアが最先端であり、暗号化/復号化中にまだボトルネックに直面している場合は、頭を悩ませる時が来ました。前ではありません。

ちょうど私の2セント。

アップデート

より優れたハードウェアを購入するよう顧客に強く勧めます。どの量のデータの暗号化/復号化に対してどの速度が許容されるかを実際に指定していないため、 「どのハードウェアで十分か」に対する答えを実際に与えることはできません(非常に多くの状況に依存するため、これは答えるのが非常に困難です)。因子)。あなた (またはあなたの会社) にハードウェアをレンタルして、標準の暗号化技術でパフォーマンス テストを行うことをお勧めします。ニーズに合った優れたパフォーマンスを備えた適切なハードウェア セットアップを見つけたら、これらのパフォーマンス測定値を顧客に提供します。

于 2011-02-20T13:29:23.920 に答える
4

まず第一に、一般的なアルゴリズムによるオーバーヘッドが本当に問題になるかどうかを調査する必要があります。.NET でのアルゴリズムの実装は高速で、50 ~ 400 MB/s の生データを処理できると予想されます (当然、非常に大まかな数値です...)。データ ソースが SQL クエリの場合 (多くの場合そうです)、通常はデータ ソースがはるかに低いレートでデータを提供するため、暗号化/復号化のパフォーマンスへの影響が制限されます。

パフォーマンスの詳細については、アプリケーションで試してみる必要があります。

私はより良いハードウェアを購入し、代わりにキー管理やその他のトリッキーな問題に焦点を当てます.そうしないと、セットアップが簡単に破られてしまう場合、暗号化が完全にスキップされる可能性があります.

于 2011-02-20T13:18:27.123 に答える
2

2.0 GHz Core2 PC は、シングル コアでOpenSSLの実装を使用して、120 MB/秒 (毎秒 120 メガバイト) を超えるレートで AES を使用してデータを暗号化または復号化できる必要があります。これは、最新のハードディスクやギガビット イーサネット リンクよりも高速です。

セキュリティに関して言えば、再利用可能な「xor パッド」というあなたの考えはまったくのがらくたです。そんなことしたらダメ。

于 2011-02-21T13:36:16.517 に答える
0

おそらく、この記事はあなたを助けることができます。

また、十分に速く定義する必要があります...それは相対的な用語であるため、測定可能にします。

于 2011-02-20T13:19:38.247 に答える