公開鍵暗号プロバイダーにて暗号化=秘密鍵と復号化=公開鍵という組み合わせでは使用するには?

解決


ハヤテ  2016-05-15 00:57:29  No: 73904  IP: [192.*.*.*]

CryptAPI、CNG、KSPの公開鍵暗号プロバイダーでは暗号化=公開鍵と復号化=秘密鍵に固定されていて、暗号化=秘密鍵と復号化=公開鍵という組み合わせでは使用できないのでしょうか?
一般的に入手可能で暗号化=秘密鍵と復号化=公開鍵の組み合わせができるプロバイダーはあるのでしょうか?
100バイト程のデータを秘密鍵で暗号化し、対の公開鍵がある別PCで復号化する事を想定しています。
ご教示よろしくお願い致します。

編集    削除
YuO  2016-05-15 13:09:38  No: 73905  IP: [192.*.*.*]

暗号化側が秘密鍵を使いたい,というのはどういう理由なのでしょうか。


公開鍵暗号において,
・公開鍵で暗号化
・秘密鍵で復号
は当然のことです。

公開鍵暗号は,「その鍵の持ち主のみが読み取れるデータを暗号化によって作り出す」ものだからです。
例えば,PGP/GnuPGにおいて,公開鍵は全世界に公開することが出来ます。
私の場合,
http://pgp.nic.ad.jp/pks/lookup?op=get&search=0x2F63A095
を公開鍵として公開しています。
これを使って,私宛に「誰でも」暗号化したデータを送信することが出来ます。

さて,秘密鍵で暗号化し,公開鍵で復号するということは,
・その暗号化されたデータを秘密鍵を持った人のみが作成きる
・暗号化されたデータの復号はだれでもできる
ということであり,後者を見れば明らかなように,暗号化する意味がありません。
前者を保証したい場合,利用するのは「署名」です。
・秘密鍵で署名したいデータ(のハッシュ)を暗号化する
・署名を復号し,データ(のハッシュ)と同じであることで署名を検証する
という流れです。
# 暗号化における鍵ペアと署名における鍵ペアは別物。

提示されている状況に関して言えば,
・復号したい側のPCが秘密鍵を保持
・データを暗号化する側は,公開鍵で暗号化
することになります。

編集    削除
ハヤテ  2016-05-16 01:30:18  No: 73906  IP: [192.*.*.*]

YuO様
ご教示ありがとうございます。
署名は送りたい平文のハッシュ値だけが対象だと思い込んでいました。
おかげ様で署名を用いて解決できました。

編集    削除