私は初心者プログラマーです。Diffie-Hellman 鍵交換を使用して、クライアントとサーバー間のデータ転送を保護するように依頼されました。この問題についてよく検索しましたが、大きな整数p
とg
.
問題は、これらの番号を使用して情報の転送を保護する方法がわからないことです。整数ではなく、クライアントとサーバー間の接続を介して「文字列」を転送したいと思います。これらの数値はどのように役立ちますか? 受講中のコースのこのプロジェクトの締め切りが近づいていますが、本当に助けが必要です。
私は初心者プログラマーです。Diffie-Hellman 鍵交換を使用して、クライアントとサーバー間のデータ転送を保護するように依頼されました。この問題についてよく検索しましたが、大きな整数p
とg
.
問題は、これらの番号を使用して情報の転送を保護する方法がわからないことです。整数ではなく、クライアントとサーバー間の接続を介して「文字列」を転送したいと思います。これらの数値はどのように役立ちますか? 受講中のコースのこのプロジェクトの締め切りが近づいていますが、本当に助けが必要です。
これを読んで理解することをお勧めします: http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
そして、これが役立つPHPコードスニペットです...
GENERATOR=2 と PRIME (300 桁の素数) は定数です
// generate server secret
$privateKey = 0;
for ($i=0; $i<100; $i++) {
if ($i==0) {
$privateKey = mt_rand(1, 9);
} else {
$privateKey .= mt_rand(0, 9);
}
}
// output server public key
echo gmp_strval(gmp_powm(GENERATOR, $privateKey, PRIME));
// calculate server secret key
$secretKey = md5(
gmp_strval(
gmp_powm($_POST['public_key'], $privateKey, PRIME)
)
);