1. ホーム
  2. encryption

[解決済み] 非対称暗号化における暗号化と署名の違いは何ですか?[クローズド]

2022-03-14 03:50:37

質問内容

あるデータを暗号化することと、あるデータに署名することの違いは何ですか(RSAを使用)?

単純に公開鍵と秘密鍵の役割が逆になっているだけなのか?

例えば、自分の秘密鍵を使ってメッセージを生成し、自分だけが送信者になれるようにしたいとします。 私の公開鍵はメッセージを読むのに使い、誰が読んでも構わないようにしたい。 ある情報を暗号化し、それを自分のソフトウェアのプロダクトキーとして使いたい。 私が気にするのは、これらを生成できるのが私一人であることだけです。 私の公開鍵を私のソフトウェアに含めて、鍵の署名を復号したり読んだりしたい。 私は、誰が鍵のデータを読むことができるかは気にせず、私がそれらを生成できる唯一の検証可能な人間であることだけを気にします。

このような場合、署名は有効でしょうか?

どのように解決するのですか?

暗号化するときは 相手の公開鍵 を使ってメッセージを書き、相手は 秘密鍵 を読み取ることができます。

署名を行う際には あなたの秘密鍵 を使ってメッセージの署名を書き、相手は あなたの公開鍵 本当に自分のものかどうかを確認するためです。

<ブロッククオート

自分の秘密鍵を使ってメッセージを生成し、自分だけが送信者になれるようにしたい。

私の公開鍵はメッセージを読むのに使われ、誰が読んでも構わないようにしたい。

これは サイン 秘密鍵を用いて行われます。

<ブロッククオート

ある情報を暗号化し、ソフトウェアのプロダクトキーとして使用できるようにしたい。

私はこれを生成できるのが自分だけであることだけを気にしています。

自分だけが知っていればいいのであれば、わざわざ鍵をいじらなくてもできることです。ランダムなデータを生成して、データベースに保存しておくだけでもよいでしょう。

しかし、その鍵が本当に自分のものであることを人々に知ってもらいたいのであれば、ランダムなデータを生成し、そのデータをデータベースに保存し、自分の鍵で署名する必要があるのです。

<ブロッククオート

自分の公開鍵をソフトウェアに含めて、鍵の署名を解読/読み取りたいのですが。

ベリサインやThawteなどの商用プロバイダーから公開鍵の証明書を購入し、あなたのソフトウェアを偽造してあなたの公開鍵を彼らのものに置き換えた人がいないことを確認できるようにする必要があるでしょう。