1

C++ で非常に単純な RSA アルゴリズムを実装しようとしていますが、openSSL 関数は使用しませんでした。generateParameterencryption、およびdecryptionの3 つの関数があります。各機能のタスクは次のとおりです。

  1. generateParameter関数は、2 つの素数 (p および q)、法 (n)、公開指数 (e)、および非公開指数 (d) を生成し、n、e、および d をファイルに書き込みます。
  2. 暗号化関数はパラメータ n と e を読み取り、メッセージを暗号化してからファイルに書き込みます。
  3. 復号化関数は、パラメータ n と d を読み取り、暗号化されたメッセージを読み取り、復号化します。

この機能はすべて、1 台のマシンで実行すると問題なく動作しますが、2 台の異なる仮想マシンで実行したい場合はどうすればよいですか? VM1 で暗号化を実行し、暗号化されたメッセージを (send() 関数を使用して) 送信し、VM2 で復号化します。

パラメータ n と d が VM2 に送信されない場合、VM2 はどのようにしてメッセージを復号化できますか? これらの 2 つのパラメーターは、素数 (p と q) で数学計算を行うことによって生成されますが、素数を送信できないことはわかっています。

それが私の質問です。

よろしく、

デュリパット

4

1 に答える 1