椭圆曲线密钥协议 - ElGamal

时间:2016-04-08 09:32:31

标签: java cryptography bouncycastle elliptic-curve

我正在尝试使用ECKA-EG协议为给定密钥生成共享密钥,但是 我没有这样做,我试图使用这样的代码:

 KeyAgreement keyAgreement = KeyAgreement.getInstance("ECDH", PROVIDER);
    keyAgreement.init(secretKey);
    BCECPrivateKey ecKey = (BCECPrivateKey) secretKey;
    ECParameterSpec ecSpec = ecKey.getParameters();
    PublicKey pubKey = extractECPublicKey(ecSpec, publicKey);
    keyAgreement.doPhase(pubKey, true);
    return keyAgreement.generateSecret("AES").getEncoded();

但结果共享的秘密不是我所期待的......

这意味着我有一些来自外部机器的加密值(共享机密应该在计算并发送bakc后加密),加密密钥由我的服务器给我,更多我有样本共享密码:

  Shared Secret =    0x3F33EC720C06043647195589EA8182AC3F7190DAF8CBE2A3972E9DA6FB160CAF 

Result = 0x1ACF5F4B5633FA391D3E91CC2E12201F

如果我将这个共享密码硬编码到我的应用程序,结果是可以的,所以只有失败的一点是生成共享密钥,根据规范它应该是ECKA-EG。

我应该如何在java中执行ECKA-EG? 感谢。

0 个答案:

没有答案