G
2a) Program: package java_cryptography; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.SecureRandom; import javax.xml.bind.DatatypeConverter; public class Asymmetric { private static final String RSA= "RSA"; public static KeyPair generateRSAKkeyPair() throws Exception { SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(RSA); keyPairGenerator.initialize(2048, secureRandom); return keyPairGenerator.generateKeyPair(); } public static void main(String args[]) throws Exception { KeyPair keypair = generateRSAKkeyPair(); System.out.println("Public Key is: " + DatatypeConverter.printHexBinary( keypair.getPublic().getEncoded())); System.out.println("Private Key is: " + DatatypeConverter.printHexBinary( keypair.getPrivate().getEncoded())); } } 2b) Program: class DiffieHellman { private static long power(long a, long b, long p) { if (b == 1) return a; e...