Path: blob/master/Discrete-Logarithm-Problem/Challenges/Baby-DLP/Server/server.py
1402 views
# Python 31from signal import alarm2from Crypto.Util.number import *34p = 1606349506133028587819955069029384126253773602495599153794914922743263592608068318238217114412041220604152863517114110138834005100414117821764679406784641612052043912471376896787943670491978241197172789237539409840840594507043788281237806788837773062395004807930444607962563065578930614579564796241637711942015g = 267bits = size(p)89with open("flag", "r") as f:10flag = f.readline().strip().encode("latin1")11m = bytes_to_long(flag)1213def run(fin, fout):14alarm(1200)15try:16while True:17line = fin.readline()[:4+bits//4]18s = int(line, 16) # Note: input is HEX19c = pow(g, m ^ s, p)20fout.write(hex(c) + "\n")21fout.flush()22except:23pass2425if __name__ == "__main__":26run(sys.stdin, sys.stdout)272829