データの暗号化とデータの署名(RSA を使用)の違いは何ですか?
公開鍵と秘密鍵の役割を単純に逆転させるだけでしょうか?
たとえば、私は自分の秘密鍵を使ってメッセージを生成し、自分だけが送信者になれるようにしたい。公開鍵を使ってメッセージを読みたいが、誰が読んでもかまわない。特定の情報を暗号化して、自分のソフトウェアのプロダクト キーとして使用したい。私が気にするのは、これらを生成できるのは自分だけであること。自分の公開鍵をソフトウェアに組み込み、鍵の署名を復号化/読み取りたい。鍵内のデータを誰が読めるかは気にしないが、私がそれらを生成できる唯一の検証可能な人物であることだけを気にする。
このシナリオでは署名は役に立ちますか?
ベストアンサー1
暗号化する場合、メッセージの書き込みには公開鍵を使用し、メッセージの読み取りには秘密鍵を使用します。
署名するときは、秘密鍵を使用してメッセージの署名を書き込み、公開鍵を使用して、それが本当にあなたのものかどうかを確認します。
自分だけが送信者になれるように、秘密鍵を使用してメッセージを生成したいです。
私は自分の公開鍵を使ってメッセージを読みたいのですが、誰が読んでも構いません
これは署名であり、秘密鍵を使用して行われます。
特定の情報を暗号化し、それをソフトウェアのプロダクト キーとして使用できるようにしたいと考えています。
私が気にしているのは、これらを生成できるのは私だけであるということだけです。
自分だけが知る必要がある場合は、これを行うためにキーを操作する必要はありません。ランダムなデータを生成してデータベースに保存するだけで済みます。
しかし、キーが本当に自分のものであることを人々に知らせたい場合は、ランダムなデータを生成し、それをデータベースに保存し、自分のキーで署名する必要があります。
キーの署名を復号化/読み取るために、ソフトウェアに公開キーを含めたいと思います。
おそらく、誰かがあなたのソフトウェアを偽造して公開鍵を他人のものに置き換えていないことを確認できるように、Verisign や Thawte などの商用プロバイダーから公開鍵の証明書を購入する必要があるでしょう。