import java.io.*; import java.math.*; import java.util.*; public class Main { public static double gcd(double a, double h) { /* * This function returns the gcd or greatest common * divisor */ double temp; while (true) { temp = a % h; if (temp == 0) return h; a = h; h = temp; } } public static void main(String args[]) { double p = 3; double q = 7; // Stores the first part of public key: double n = p * q; // Finding the other part of public key. // double e stands for encrypt double e = 2; double phi = (p - 1) * (q - 1); while (e < phi) { /* * e must be co-prime to phi and * smaller than phi. */ if (gcd(e, phi) == 1) break; else e++; } int k = 2; // A constant value double d = (1 + (k * phi)) / e; // Message to be encrypted double msg = 12; System.out.println("Message data = " + msg); // Encryption c = (msg ^ e) % n double c = Math.pow(msg, e); c = c % n; System.out.println("Encrypted data = " + c); // Decryption m = (c ^ d) % n double m = Math.pow(c, d); m = m % n; System.out.println("Original Message Sent = " + m); } }
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)