| 12345678910111213141516171819202122232425 |
- import java.math.BigInteger;
- import java.util.Random;
-
- class DiffieHellman {
-
- private Random random = new Random();
-
- BigInteger privateKey(BigInteger primeP) {
- BigInteger privateKey;
- do {
- privateKey = new BigInteger(primeP.bitLength(), random);
- } while (privateKey.compareTo(BigInteger.ZERO) == 0 || privateKey.compareTo(primeP) >= 0);
- return privateKey;
- }
-
- BigInteger publicKey(BigInteger primeP, BigInteger primeG, BigInteger privateKey) {
- return primeG.modPow(privateKey, primeP);
- }
-
- BigInteger secret(BigInteger primeP, BigInteger publicKey, BigInteger privateKey) {
- return publicKey.modPow(privateKey, primeP);
- }
-
- }
|