掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
秘密鍵で暗号化し、公開鍵で復号化するには? (ID:73907)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
度々と申し訳ありません。 http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+201605/16050001.txtで解決済としましたが勘違いでした。 下記コードの様な署名/検証では別PCでの検証時にもsrcDataが必要なので、srcDataを秘匿(暗号化)して別PCに渡すという目的では使用できないと推測しています。 それともsrcDataを別PCに渡さなくても検証時にsignDataと公開鍵からsrcDataを導き出す方法が用意されているのでしょうか? BYTE srcData[120];//別PCに秘匿して送信したいデータ BYTE signData[512]; ULONG signSize=512,srcSize=120; BCRYPT_KEY_HANDLE hKey; /*** 前処理 ***// // BCRYPT_ECDSA_P384_ALGORITHMでアルゴリズムハンドルを取得 /*** 送信PCでの署名処理 ***// // BCRYPT_ECCPRIVATE_BLOBで hKey に秘密鍵をインポート BCryptSignHash(hKey,NULL,srcData,srcSize,signData,512,&signSize,0);//ハッシュではなくsrcData自体を署名(秘密鍵で暗号化) /*** 受信PCでの検証処理 ***// // BCRYPT_ECCPUBLIC_BLOBで hKey に公開鍵をインポート NTSTATUS status=BCryptVerifySignature(hKey,NULL,srcData,srcSize,signData,signSize,0); if(status==0) //検証成功 公開鍵で暗号化して秘密鍵で復号化する方法では別PCに秘密鍵情報をエクスポートする必要があり、その情報から対の公開鍵を導出できる様なので別PCからsrcDataを改変されてしまいます。 エクスポートされた公開鍵情報から秘密鍵を導出する事はできない様なので、CryptAPIやCNGやKSPを用いて100バイト前後のsrcDataを公開鍵暗号の秘密鍵で暗号化し、対の公開鍵がある別PCで復号化したいです。 srcDataを共通鍵暗号で暗号化し、共通鍵を公開鍵暗号の秘密鍵で暗号化して別PCに渡す方法も検討しましたが上記と同じ理由で秘匿して渡す事ができません。 ご教示よろしくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.