diffie.java
26 linesjava
DOWNLOAD
1// Aim: Program to perform Diffie-Hellman key exchange (Diffie-Hellman Key Exchange).
2import java.util.*;
3import java.math.BigInteger;
4public class diffie {
5    public static void main(String[] args) {
6        Scanner sc = new Scanner(System.in);
7        System.out.print("Enter a prime number (q): ");
8        BigInteger q = sc.nextBigInteger();
9        System.out.print("Enter a primitive root :");
10        BigInteger a = sc.nextBigInteger();
11        System.out.print("Enter private key for user A :");
12        BigInteger xA = sc.nextBigInteger();
13        System.out.print("Enter private key for user B :");
14        BigInteger xB = sc.nextBigInteger();
15        BigInteger yA = a.modPow(xA, q);
16        BigInteger yB = a.modPow(xB, q);
17        System.out.println("Public key for user A : " + yA);
18        System.out.println("Public key for user B : " + yB);
19        BigInteger kA = yB.modPow(xA, q);
20        BigInteger kB = yA.modPow(xB, q);
21        System.out.println("Secret key for user A : " + kA);
22        System.out.println("Secret key for user B : " + kB);
23        sc.close();
24    }
25}
26