Diffie-Hellman Key Exchange
CSC-327 · Semester V · Cryptography
#include <stdio.h> long power_mod(long base, long exp, long mod) { long result = 1; base = base % mod; while (exp > 0) { if (exp % 2 == 1) result = (result * base) % mod; base = (base * base) % mod; exp = exp / 2; } return result; } int main() { long p = 23, g = 5; long a = 6, b = 15; long A = power_mod(g, a, p); long B = power_mod(g, b, p); long secretA = power_mod(B, a, p); long secretB = power_mod(A, b, p); printf("Alice sends A = %ld\n", A); printf("Bob sends B = %ld\n", B); printf("Alice secret = %ld\n", secretA); printf("Bob secret = %ld\n", secretB); return 0; }
Write some code, then press Run. Stdout and errors appear here.