2012-03-09 13 views
0

私はCUDA開発者です。私は学部学生がGPUでAESを実装するのを手伝っています。 彼らは暗号について多くの知識を持っていませんが、これは初めて私が作業している時です。もし誰かが答えることができたら、私はいくつかの質問があります。CUDAを使用したGPU上の高度な暗号化標準

  1. 私はAESをどのように実装すればよいですか?GPUで暗号化してスピードアップを表示するには、どのようなデータを最適にする必要がありますか?私たちはいくつかのCDを暗号化すべきですか?クレジットカード番号などの機密データですか?要するに、私たちのデータソースは何でしょうか?

  2. AESのどのような動作モードがGPUに適していますか?

  3. 生徒は入力ビットストリームレートについて質問しましたが、誰でもこのビットを明かすでしょうか?私が思ったように、それはデータサイズに依存するはずです。その比較は、データサイズに基づいてGPUとCPUの間で行うことができます。

ありがとうございます。

答えて

1

私はGPUを搭載した、本当に慣れていないよ、そう本当に他の二つのために、しかし、質問2.に答えることはできません。

ポイント1. AESを使用すると、暗号化し気にしない、それだけでビットです。統計的に重要なスピードアップを表示できるように、大きなファイルを見つけるだけです。数バイトを暗号化することで、実装のスピードアップ(可能性)について多くのことを証明することはできません。もちろん、これは「機能的な」速度のためです。実装の速さによっては、RAMやディスク転送速度によって実際に制限されることがあります。したがって、その場で生成するデータを暗号化するのにかかる時間(カウンタのように)を取ることで、ディスク/ RAMからデータを読み取る必要がなくなります。

ポイント3. AESはブロック暗号で、入力サイズは128ビット(16バイト)に固定されていますが、変更することはできません。入力データレートは、純粋にデータを処理する速度に依存します。

+0

AESは16バイトのチャンクを使用していますが、通常は大きなものを暗号化するときには、チェーンを使用するかどうかを指定できます。 GPUを使用するときは並列化したいので、同時にたくさんのチャンクをスクランブルする必要があります。これはPCでは不可能です。できるだけ簡単な方法はECBに固執することです(各16バイトが独立してスクランブルされていますが、チェーンはありません) – Bruce

+0

あなたのフィードバックに感謝しますので、映画やDVD(大物)を使用して、デモンストレーションのために。それで十分だろうか? – Bilal

+1

ECBは完全に安全ではないモードであり、あなたの暗号文に関する膨大な情報が漏れるので、絶対に使用すべきではありません。一般的に、必要なのは秘密です.CBCモードで十分です。しかし、CBCは並列化できません。 GCMモードをチェックしてください。これは並列化が可能で、認証と機密性を提供します。 – Darhuuk

0
  1. あなたは気にしない:通常、ランダムのISOまたは600メガバイトのような大きな何かが、良いです

  2. GPUはECBに最高のスティックを並列化を使用していますので、あなた。それ以外の場合、アルゴリズムは並列化できません。

  3. レートはデータのサイズに依存しません。サイズ/処理時間です。 Cudaの場合は、デバイス/プロセス/転送への転送を考慮する必要があります(メモリコピーは処理の段階では小さいからは程遠い)=>並列化が大量でなければ、勝つのではなく時間を失う。

+0

ご意見ありがとうございます.CTRはこれでうまく機能しませんか? それで、レートの権利について心配するべきではないということですか?私が焦点を当てなければならないことは、データサイズとデータの暗号化に要した時間です。もちろん、あなたが言ったように、データが十分に大きければ、レイテンシは圧倒されるでしょう。 – Bilal

+1

CTRも同様に機能します。並列化が可能なもの。私は通常ECBやCBCに固執するので、他のモードについては決して考えない。ウィキペディアはこの問題を助けるだろう。あなたはただいくつかのモードが復号化のために並列化できることに注意する必要があります – Bruce

+2

ECBはいいえ、誰もそれを使用すべきではありませんので、実装がECBで速いことを証明するのは本当に役に立ちません。セキュアで並列化できる他のモードもあり、メッセージ認証も可能です。詳細は私の答えを見てください。 – Darhuuk

関連する問題