Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ashutosh1206
GitHub Repository: ashutosh1206/crypton
Path: blob/master/RSA-encryption/Attack-Hastad-Broadcast/Challenges/Multicast/generate.sage
1403 views
1
nbits = 1024
2
e = 5
3
flag = open("flag.txt").read().strip()
4
assert len(flag) <= 64
5
m = Integer(int(flag.encode('hex'),16))
6
out = open("data.txt","w")
7
8
for i in range(e):
9
while True:
10
p = random_prime(2^floor(nbits/2)-1, lbound=2^floor(nbits/2-1), proof=False)
11
q = random_prime(2^floor(nbits/2)-1, lbound=2^floor(nbits/2-1), proof=False)
12
ni = p*q
13
phi = (p-1)*(q-1)
14
if gcd(phi, e) == 1:
15
break
16
17
while True:
18
ai = randint(1,ni-1)
19
if gcd(ai, ni) == 1:
20
break
21
22
bi = randint(1,ni-1)
23
mi = ai*m + bi
24
ci = pow(mi, e, ni)
25
out.write(str(ai)+'\n')
26
out.write(str(bi)+'\n')
27
out.write(str(ci)+'\n')
28
out.write(str(ni)+'\n')
29
30