0

私は暗号化やセキュリティに関するクラスを受講したことがなく、いくつかの基本を自分自身に教えようとしているので、これがばかげた質問である場合は許してください(心配しないでください、私は機密性の高いものに取り組んでいません)

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

4

1 に答える 1

2

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

RSA の場合、非機密情報には 1024 ビットのキーの長さで十分ですが、数年間のみ使用してから新しいキーに置き換える必要があります。2048 ビットはより強力で、4096 ビットはさらに強力です。

単純なブルート フォース攻撃者の場合、キーの長さに 1 ビットを追加すると、キーを侵害するために必要な作業量が 2 倍になります。ただし、RSA のようなアルゴリズムは、このようには拡張できません。2048 ビットの RSA キーは、1024 ビットのキーの 2^1024 倍も解読しにくいわけではありません (攻撃者が本当に愚かでない限り)。

一般に、公開鍵アルゴリズム (RSA など) は、対称鍵アルゴリズム (AES など)よりもはるかに大きな鍵を必要とします。これは、異なる数学的特性に依存しているためです。

暗号化の優れた入門書として、Peter Gutmann の godzilla crypto tutorialを確認してください。非常に読みやすく、暗号がさまざまな形でどのように機能するかの概要を説明しています。

于 2011-07-27T04:25:00.310 に答える