Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

PD

Project: RSA
Path: PD.sagews
Views: 23
print "How do you want to input p, q?" print "1 - input from keyboard and assume it's correct" print "2 - input from keyboard and check if correct" print "3 - generate automatically" x=input("Choice: ") if(x==1): p=int(raw_input("P:")) while(is_prime(p)!=true): print "P not prime. Input new p" p=int(raw_input("P:")) q=int(raw_input("Q:")) while(is_prime(p)!=true): print "Q not prime. Input new q" q=int(raw_input("Q:")) e=int(raw_input("E:")) d=int(raw_input("D:")) n=p*q f=(p-1)*(q-1) if(x==2): p=int(raw_input("P:")) while(is_prime(p)!=true): print "P not prime. Input new p" p=int(raw_input("P:")) q=int(raw_input("Q:")) while(is_prime(q)!=true): print "Q not prime. Input new q" q=int(raw_input("Q:")) e=int(raw_input("E:")) d=int(raw_input("D:")) n=p*q f=(p-1)*(q-1) while(gcd(e,f)!=1): print "Input different e" e=int(raw_input("E:")) while(d!=inverse_mod(e,f)): print "Input different d" d=int(raw_input("D:")) if(x==3): p=randint(1,500) while(is_prime(p)!=true): p=randint(1,500) q=randint(1,500) while(is_prime(q)!=true): q=randint(1,500) n=p*q f=(p-1)*(q-1) e=previous_prime(f) d=inverse_mod(e, f) print "p:" p print "q:" q print "e:" e print "d:" d print "" m=([2,5,7,8,11,3,6,8,9,10]) m print "Szyfrowanie" for i in range(10): a=m[i] m[i]=power_mod(a,e,n) m print "Deszyfrowanie" for i in range(10): a=m[i] m[i]=power_mod(a,d,n) m
How do you want to input p, q? 1 - input from keyboard and assume it's correct 2 - input from keyboard and check if correct 3 - generate automatically
Choice:
P:
Q:
E:
D:
[2, 5, 7, 8, 11, 3, 6, 8, 9, 10] Szyfrowanie [22, 20, 7, 8, 1, 13, 6, 8, 29, 20] Deszyfrowanie [8, 20, 28, 22, 1, 27, 6, 22, 29, 20]