2

MDanterのPHPECCパッケージを使用して、公開鍵と秘密鍵のペアを生成し、メッセージを暗号化するにはどうすればよいですか?

このライブラリはここで見つかりました:https ://github.com/mdanter/phpecc しかし、チュートリアルや説明は提供されていません。

次のことを試しましたが、動作しますが、公開鍵しか持っていないため、秘密鍵の入手先と鍵の長さの変更方法がわかりません。

$g = NISTcurve::generator_192();

$Alice = new EcDH($g);
$Bob = new EcDH($g);

//Alice and bob generate their private keys and public Point
$pubPointA = $Alice->getPublicPoint();

$pubPointB = $Bob->getPublicPoint();

//Alice sends Bob her public key and vice versa
$Alice->setPublicPoint($pubPointB);

$Bob->setPublicPoint($pubPointA);

//key_A == key_B
$key_A = $Alice->calculateKey();

$key_B = $Bob->calculateKey();

//String to encrypt
$str='My test msg.';

echo 'encoding '.$str;
//Alice encrypt the string
$Ae = $Alice->encrypt($str);
echo $Ae;

echo '<hr>';
//Bob receive the string and decrypt it
$Bd = $Bob->decrypt($Ae);
echo 'Bob decrypt '.$Bd;

どんな助けでもありがたいです、ありがとう

4

1 に答える 1

0

投稿したコードサンプルは、対称暗号化の鍵を導出するための鍵共有プロトコルであるDiffie-Hellman用です。これでは、公開/秘密鍵を生成できません。

投稿したパッケージには、署名アルゴリズムであるECDSAも含まれています。実際には暗号化には使用できません。

非対称暗号化の場合、RSAを使用することをお勧めします。Elliptic Curve Cryptographyで何かを使用したい場合は、ElGamal-ECアルゴリズムの実装を見つけることができますが、PHP用の実装はよくわかりません。

于 2013-01-24T17:07:13.707 に答える