已解决
密码学Python
使用椭圆曲线Diffie-Hellman和辅助因子密钥生成对称密钥10
我是ECDH的新手,想要在Java中生成一个密钥。 我想使用椭圆曲线Diffie-Hellman和辅助因子密钥推导。 我正在使用P-256曲线进行椭圆曲线运算。 我打算使用生成的秘密作为我的分组密码的对称密钥。
我一直在研究这个问题,并提供以下工作样本。 这会生成密钥。Provider BC = new org.bouncycastle.jce.provider.BouncyCastleProvider();
ProviderList.newList(BC);
ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("P-256");
KeyPairGenerator g = (KeyPairGenerator) KeyPairGenerator.getInstance(
"ECDH",BC);
g.initialize(ecSpec, new SecureRandom());
KeyPair aKeyPair = g.generateKeyPair();
KeyAgreement aKeyAgree = KeyAgreement.getInstance("ECDH", BC);
aKeyAgree.init(aKeyPair.getPrivate());
KeyPair bKeyPair = g.generateKeyPair();
KeyAgreement bKeyAgree = KeyAgreement.getInstance("ECDH", BC);
bKeyAgree.init(bKeyPair.getPrivate());
aKeyAgree.doPhase(bKeyPair.getPublic(), true);
bKeyAgree.doPhase(aKeyPair.getPublic(), true);
byte[] aSecret = aKeyAgree.generateSecret();
byte[] bSecret = bKeyAgree.generateSecret();
System.out.println(new String(aSecret));
System.out.println(new String(bSecret));
我担心我使用的是短暂的私钥和公钥而不是静态密钥。 请告诉我如何使用静态私钥和公钥生成密钥。
阿斯顿法国
2019.06.11
4076
收藏