#!/usr/bin/python import sys def hack(p, g, X, Y): print 'Get: p=%d g=%d X=%d Y=%d' %(p,g,X,Y) x = y = A = B = k1 = k2 = 0 while (A != X or B != Y or k1 != k2): if (A != X): x = x+1 A = g**x%p if (B != Y): y = y+1 B = g**y%p k1 = Y**x%p k2 = X**y%p print 'Found: x=%d y=%d k=%d' %(x,y,k1) def main(): if (len(sys.argv) > 4): p = int(sys.argv[1]) g = int(sys.argv[2]) X = int(sys.argv[3]) Y = int(sys.argv[4]) hack(p, g, X, Y) else: print 'Forgot arguments' main()