2011-07-27 8 views
0

私は、暗号化やセキュリティ上の任意のクラスを取ったことがないと私は自分自身にいくつかの基本を教えるしようとしているので、これは愚かな質問であるなら、私を許して(私は敏感何に取り組んでいないよ、心配しないでください)ファイルに署名するときに鍵の長さがどのように違うのですか?

私はCrypto ++で遊んでいますので、ファイルの署名をして、私以外の誰かがファイルを編集したかどうか確認できます。ライブラリに付属のテストアプリケーションは、自分のプログラムでやりたいことを正確に行うオプション(rsとrv)を持っているようです(ファイルの署名の完全性を確認してください)。もちろん、それを行う前に私は公開鍵と秘密鍵を生成する必要があります。テストアプリケーションのgオプションでこれを行うと、キーの長さをビット単位で指定するように求められます。キーの長さはどのような違いがありますか?

答えて

2

鍵の長さは、誰かがあなたの暗号を解読するのがどれほど難しいかを決定します。デジタル署名の場合、誰かが偽の署名を生成することがどれほど難しいかを意味します。

RSAのために1024ビットの鍵長は、非機密情報には十分であるが、それはほんの数年前から使用して、新しいキーで置き換える必要があります。 2048ビットが強く、4096ビットは強くなります。キーの長さに単一のビットを追加する素朴なブルートフォース攻撃のために

は、彼らはあなたの鍵を侵害するために必要な作業量を倍増します。しかし、RSAのようなアルゴリズムは、このように拡張できません:2048ビットのRSA鍵は(攻撃者が本当に愚かでない限り)1024ビットキーとして壊れにくくとして2^1024倍ではありません。それらが異なる数学的性質に依存しているため

一般公開鍵アルゴリズム(例えばRSA)は、対称鍵アルゴリズム(例えばAES)よりもはるかに大きなキーを必要とします。

暗号化に関する優れたプライマーについては、Peter Gutmann's godzilla crypto tutorialをチェックしてください。これはかなり読みやすく、さまざまな形式で暗号がどのように機能するかをよく理解しています。