Implementation of Diffie-Hellman Algorithm in Java

In this tutorial, we are going to learn about the Diffie-Hellman Algorithm in Java.
First of all, we will learn what is Diffie-Hellman Algorithm key exchange algorithm.

The Diffie-Hellman Algorithm

Diffie-Hellman key exchange Algorithm was discovered by Whitfield Diffie and Martin Hellman.

First, take a as primitive root of a prime number that is p,

If a is one of the primitive roots of prime number p, then the numbers, a mod p, a2 mod p, …….., ap-1 mod p are distinct and also consist of the integers that are from 1 through p1 in some permutation.

Here, we will implement it using a Java program.
#Java program.

implement Diffie-Hellman Algorithm in Java

Now we will implement the Algorithm in Java. So below is our code to do this task:

import java.util.*;
 class DiffieHellman { 
public static void main(String args[]) 
Scanner sc=new Scanner(;
 System.out.println("Enter the value of modulo(p)"); 
int p=sc.nextInt(); 
System.out.println("Enter the root of "+p);
 int g=sc.nextInt(); 
System.out.println("select 1st secret no of Alice"); 
int a=sc.nextInt();
 System.out.println("select 2nd secret no of Bob"); 
int b=sc.nextInt(); 
int A = (int)Math.pow(g,a)%p; 
int B = (int)Math.pow(g,b)%p; 
int S_A = (int)Math.pow(B,a)%p; 
int S_B =(int)Math.pow(A,b)%p; 
if(S_A==S_B) {
 System.out.println("They shared a secret key is = "+S_A); } 
else { System.out.println("Alice and Bob cannot exchange information with each other");
enter the value of modulo(p)
enter the root of 7
select 1st secret no of Alice
select 2nd secret no of Bob
They shared a secret key is =9.


Finally, we will see some Applications of the Diffie-Hellman key exchange algorithm.

  1. It is used in Secure Sockets Layer(SSL).
  2. also, used in secure shell and internet protocol security.

Also, read: Check if a number is special or not in Java

Leave a Reply

Your email address will not be published. Required fields are marked *