1
如何進一步使用Diffie hellman密鑰交換生成的共享密鑰來獲得密鑰導出函數。diffie hellman密鑰交換生成共享密鑰的密鑰導出函數
這是我的代碼:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("ECDH", "BC");
ECGenParameterSpec ecsp;
ecsp = new ECGenParameterSpec("secp192r1");
keyGen.initialize(ecsp, new SecureRandom());
// Generate RSA Assymetric KeyPair
KeyPair alice_pair = keyGen.generateKeyPair();
// Extract Public Key
PublicKey alice_pub = alice_pair.getPublic();
// Extract Private Key
PrivateKey alice_pvt = alice_pair.getPrivate();
KeyAgreement alice_agreement = KeyAgreement.getInstance("ECDH","BC");
alice_agreement.init(alice_pair.getPrivate());
alice_agreement.doPhase(bob_pub, true);
byte[] alice_secret = alice_agreement.generateSecret();
SecretKeySpec alice_aes = new SecretKeySpec(alice_secret, "AES");
// Create KeyAgreement for Bob
KeyAgreement bob_agreement = KeyAgreement.getInstance("ECDH","BC");
bob_agreement.init(bob_pvt);
bob_agreement.doPhase(alice_pub, true);
可以共享的祕密可以是ECC曲線點?
謝謝@vojta,但通過執行上述代碼中顯示的密鑰協議,我得到了16字節字符串的共享密鑰。任何關於如何獲得共享祕密的建議。 –