C++ で非常に単純な RSA アルゴリズムを実装しようとしていますが、openSSL 関数は使用しませんでした。generateParameter、encryption、およびdecryptionの3 つの関数があります。各機能のタスクは次のとおりです。
- generateParameter関数は、2 つの素数 (p および q)、法 (n)、公開指数 (e)、および非公開指数 (d) を生成し、n、e、および d をファイルに書き込みます。
- 暗号化関数はパラメータ n と e を読み取り、メッセージを暗号化してからファイルに書き込みます。
- 復号化関数は、パラメータ n と d を読み取り、暗号化されたメッセージを読み取り、復号化します。
この機能はすべて、1 台のマシンで実行すると問題なく動作しますが、2 台の異なる仮想マシンで実行したい場合はどうすればよいですか? VM1 で暗号化を実行し、暗号化されたメッセージを (send() 関数を使用して) 送信し、VM2 で復号化します。
パラメータ n と d が VM2 に送信されない場合、VM2 はどのようにしてメッセージを復号化できますか? これらの 2 つのパラメーターは、素数 (p と q) で数学計算を行うことによって生成されますが、素数を送信できないことはわかっています。
それが私の質問です。
よろしく、
デュリパット