[解決済み] 非対称暗号化における暗号化と署名の違いは何ですか?[クローズド]
質問内容
あるデータを暗号化することと、あるデータに署名することの違いは何ですか(RSAを使用)?
単純に公開鍵と秘密鍵の役割が逆になっているだけなのか?
例えば、自分の秘密鍵を使ってメッセージを生成し、自分だけが送信者になれるようにしたいとします。 私の公開鍵はメッセージを読むのに使い、誰が読んでも構わないようにしたい。 ある情報を暗号化し、それを自分のソフトウェアのプロダクトキーとして使いたい。 私が気にするのは、これらを生成できるのが私一人であることだけです。 私の公開鍵を私のソフトウェアに含めて、鍵の署名を復号したり読んだりしたい。 私は、誰が鍵のデータを読むことができるかは気にせず、私がそれらを生成できる唯一の検証可能な人間であることだけを気にします。
このような場合、署名は有効でしょうか?
どのように解決するのですか?
暗号化するときは 相手の公開鍵 を使ってメッセージを書き、相手は 秘密鍵 を読み取ることができます。
署名を行う際には あなたの秘密鍵 を使ってメッセージの署名を書き、相手は あなたの公開鍵 本当に自分のものかどうかを確認するためです。
<ブロッククオート自分の秘密鍵を使ってメッセージを生成し、自分だけが送信者になれるようにしたい。
私の公開鍵はメッセージを読むのに使われ、誰が読んでも構わないようにしたい。
これは サイン 秘密鍵を用いて行われます。
<ブロッククオートある情報を暗号化し、ソフトウェアのプロダクトキーとして使用できるようにしたい。
私はこれを生成できるのが自分だけであることだけを気にしています。
自分だけが知っていればいいのであれば、わざわざ鍵をいじらなくてもできることです。ランダムなデータを生成して、データベースに保存しておくだけでもよいでしょう。
しかし、その鍵が本当に自分のものであることを人々に知ってもらいたいのであれば、ランダムなデータを生成し、そのデータをデータベースに保存し、自分の鍵で署名する必要があるのです。
<ブロッククオート自分の公開鍵をソフトウェアに含めて、鍵の署名を解読/読み取りたいのですが。
ベリサインやThawteなどの商用プロバイダーから公開鍵の証明書を購入し、あなたのソフトウェアを偽造してあなたの公開鍵を彼らのものに置き換えた人がいないことを確認できるようにする必要があるでしょう。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】署名をチェックできない:公開鍵が見つからない
-
[解決済み] 暗号化/パスワード保護機能付きSQLite
-
[解決済み] AES暗号化 - 鍵とIVの比較
-
[解決済み] エンコードと暗号化の違い
-
[解決済み] AES暗号化モード(CBC ECB CTR OCB CFB)の選択方法は?
-
[解決済み] 公開/非公開のDSAキーペアをどのようにテストするのですか?
-
[解決済み] JPEGを再圧縮せずにEXIFデータを削除する方法を教えてください。
-
[解決済み] gnupg: このキーが指定されたユーザーに属している保証はありません。
-
[解決済み] 複数キーによる暗号化・復号化
-
[解決済み] 短いハッシュを生成するハッシュ関数?