私はC#で以下を実装しようとしています:
公開鍵暗号化ルーチンを内部に格納する Generator が必要です。(通常は以下で説明するクライアントによって) 提供されたバイト配列を取得し、秘密鍵で暗号化できます。
クライアントは、ジェネレータと共有する公開鍵を持っています。Generator から結果を取得し、公開鍵を使用して復号化します。最初に Generator に提供したバイト配列を取得し、結果を比較してそれらが一致しているかどうかを確認します。両者が一致すれば、暗号化されたバイトを生成した人物が秘密鍵を所有していることをある程度確実に検証できるという考えです。また、特定の暗号化された値が提供されたデータに対応していることを確認することもできます。
私が見ている組み込みの C# 公開鍵暗号ライブラリのほとんどは、秘密鍵を復号化に関連付けたいと考えています (RSACryptoServiceProvider など)。多くのシナリオでは、暗号化ではなくプロセスの復号化側を保護する必要があるため、その理由はわかります。暗号化プロセスを簡単に保護できる C# ライブラリはありますか? 午前中ずっと Bouncy Castle を見てみましたが、基本的なシナリオでさえ機能させるのに苦労しています。ドキュメントには、何かが望まれています...
繰り返しますが、私の主な目標は、暗号化によって生成されたものに秘密鍵が含まれていることを確認することです。クライアントが、ジェネレーターの結果が提供された情報に対応していることを確認できることも必要です。利用可能なライブラリによりよく適合する可能性のある、私が見逃している代替アプローチがある場合、私はすべて耳にします:)