The challenge description starts ‘My buddies Whitfield and Martin were trying to share a secret key’, so googling something like ‘Whitfield Martin cipher’ seems like a good place to begin. Immediately we get results for the Diffie–Hellman key exchange, which fortunately can be described in terms of A, B, p, g, and s (the value of the secret key we need).

Scripts to brute-force this secret key are easy to find on GitHub. We used this script to get the flag utflag{53919}, although there are some much faster alternatives. Try this script to get the flag yourself:


# Based on

p = 69691
g = 1001
A = 17016
B = 47643

for x in range(1, p):  # or (g**x) % p == B
if (g**x) % p == A:
a = x

s = (B**a) % p  # or (A**b) % p