アプリ版:「スタンプのみでお礼する」機能のリリースについて

電子署名について教えてください
電子署名は公開鍵暗号方式ですが公開鍵で最初に暗号化してから秘密鍵で相手が復号するんですか?

質問者からの補足コメント

  • ミラさん、回答ありがとうございます

    調べれば調べるほど理解出来なくなっていたので回答とても感謝しています
    公開鍵暗号方式自体は公開鍵で暗号化、秘密鍵で復号が普通であるが電子署名は様々な人に対して信頼性を証明する必要があるために秘密鍵で暗号化して公開鍵で誰でも見れるようになっているという解釈で合っていますか?

      補足日時:2023/05/03 15:05

A 回答 (3件)

えっと、「最初」とはどういうプロトコルを意識しての言葉でしょう? (^^;


電子署名の基本的仕組みはどういう考えで出来ているかを、まずはWikipediaの「電子署名」の解説記事の「電子署名のモデル」と「電子署名方式の定義」という項目を読んで理解してください。

「最初」と言われているのは後者の内容のことでしょうか?
でしたらご質問に対する答えは「いいえ違います。考え方が逆です」が回答です。

(1) 秘密鍵と公開鍵のペアを生成する。
(2) 文書(平文)を秘密鍵で暗号化し署名文(暗号化データ)を得る。
(3) 文書(平文)と署名文(暗号化データ)を配信する。
(4) 配信を受けた側では文書(平文)と署名文(暗号化データ)と公開鍵から文書(平文)が改ざんされていないかどうかを検証する。

ネット上にある「電子署名」の解説や「公開鍵暗号方式」の解説を読まれるとこの辺の基本的なところを理解し、具体的なイメージを持つことができるかと思います。
もちろん本屋さんへ行けば説明した本も入手できます。

参考まで。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
公開鍵暗号方式についてある程度分かっていたつもりですが理解が及んでいない場所がありましたようで申し訳ないです
Wikipediaの方拝見しました
公開鍵暗号方式についてイメージがしやすくなったように思えます
分かりやすい回答ありがとうございました。

お礼日時:2023/05/03 16:00

電子署名は公開鍵暗号方式を使用していますが、公開鍵で暗号化してから秘密鍵で復号するわけではありません。



電子署名において、ファイルの署名者は、まず自分自身の秘密鍵を使用して、ファイルのハッシュ値を暗号化します。このハッシュ値は、ファイルの内容を圧縮して生成される固定長のデジタルデータです。次に、ファイルと一緒に、ハッシュ値の暗号化に使用された公開鍵も一緒に送信されます。受信者は、ファイルとハッシュ値を受け取った後、署名者の公開鍵を使用して、ハッシュ値を復号化します。そして、ファイルのハッシュ値を計算して、復号化されたハッシュ値と比較します。ハッシュ値が一致した場合、署名者の秘密鍵を使用して暗号化されたハッシュ値とファイルの一致が証明されるため、ファイルが正規の署名者によって署名されていることが証明されます。

このプロセスで、署名者の秘密鍵を使用して署名されたファイルは、公開鍵を使用して検証されます。したがって、電子署名は、公開鍵暗号方式の一種であると言えますが、暗号化と復号ではなく、秘密鍵と公開鍵のペアを使用して署名と検証が行われます。
    • good
    • 1
この回答へのお礼

補足含め2回の回答ありがとうございます
暗号化と復号など所々言葉の使い方が正しくなかったようでお詫び申し上げます
ハッシュ値はあまり理解できていなかったので質問する時に触れなかったのですがハッシュ値についての説明までして頂いて感謝しています
分かりやすい回答ありがとうございました。

お礼日時:2023/05/03 15:58

はい、電子署名は一般的に公開鍵暗号方式を使用します。

電子署名のプロセスでは、まず電子文書のハッシュ値を計算します。ハッシュ値は電子文書の一意の識別子のようなものであり、文書内容から計算された数字の羅列です。

次に、このハッシュ値を署名者の秘密鍵で暗号化し、暗号化されたハッシュ値を電子文書に付加します。これにより、ハッシュ値が署名者の秘密鍵で暗号化されたのであれば、誰でもその暗号化を公開鍵で解読し、元のハッシュ値と照合することができます。

最後に、電子文書を受け取った人は、その電子文書のハッシュ値を再度計算し、電子文書に付加された署名者の暗号化されたハッシュ値を公開鍵で解読します。そして、解読したハッシュ値と、再度計算したハッシュ値が一致すれば、電子文書が署名者によって改ざんされていないことが証明されます。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!