#!/usr/bin/python from random import randrange is_even = lambda x : x % 2 == 0 square = lambda x : x*x def expmod(base, exp, m): """Calcuates base**exp modulo m.""" if exp == 0: return 1 elif is_even(exp): return square(expmod(base, exp / 2, m)) % m else: return (base * (expmod(base, exp-1, m))) % m n = 21967608700894359473408781171922272451 e = 12565401870538259349397318250721943231 c = randrange(0, 2<<12) m = c*(n>>32)+12345678 codetable = "123456789ABCDEFGHJKLMNOPRSTUVWXY" k = expmod(m,e,n) key = "" keycount = 0 while(k): if keycount % 5 == 0 and keycount != 0: key += "-" key += codetable[k % 32] k = k >> 5 keycount += 1 print key