Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ashutosh1206
GitHub Repository: ashutosh1206/crypton
Path: blob/master/RSA-encryption/Factorisation-Fermat/Challenges/Crafted-RSA/encrypt.py
1403 views
1
from Crypto.Util.number import *
2
from Crypto.PublicKey import RSA
3
import gmpy2
4
import random
5
from secret import num_size
6
7
seed = 0
8
9
def genPrime(sz):
10
global seed
11
while True:
12
if seed == 0:
13
pr = getPrime(sz)
14
while size(pr) < 1024:
15
pr *= getRandomNBitInteger(16)
16
i = 2
17
while i<1000 and size(pr)==1024:
18
if isPrime(pr+i) and size(pr+i) == 1024:
19
seed = pr+i
20
return pr+i
21
i += 1
22
else:
23
pr = seed + random.randint(2**100,2**300)
24
if isPrime(pr) and size(pr) == 1024:
25
seed = pr
26
return pr
27
28
p = genPrime(num_size)
29
q = genPrime(num_size)
30
e = 2**16 + 1
31
phin = (p-1)*(q-1)
32
n = p*q
33
34
print "n: ", n
35
print "p: ", p
36
print "q: ", q
37
38
flag = open("flag.txt", 'r').read()
39
flag = int(flag.encode("hex"),16)
40
41
ciphertext = hex(pow(flag, e, n))[2:].replace("L","")
42
print ciphertext
43
obj1 = open("ciphertext.txt", 'w').write(ciphertext)
44
45