Mathman.gr

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Κρυπτογράφηση RSA

 

 

 rsa

Δείτε επίσης τους κρυπταλγόριθμους :

 



Ακολουθεί ο κώδικας εισόδου (input) που παραθέσαμε στο παραπάνω έγγραφο. Όσοι έχουν το λογισμικό Mathematica μπορούν να τον αντιγράψουν και να τον επικολλήσουν. Πιθανώς να χρειαστεί να μετατραπεί το format από text σε input (αφού έχει μαρκαριστεί πρώτα το αντίστοιχο «κελί»). Στη συνέχεια κάνουμε Shift +Enter, όπου συναντάμε κενή γραμμή κατά την αντιγραφή.

 

ΠΜ[n_]:=Module[{k=n+1},

While[!PrimeQ[k],k++];k]

 

p=ΠΜ[456676566334456546464645694578461258564672136784531245848451345245795356126798766549727626957264324657976426978829582751323457987654879997981688979784989786731264]

 

q=ΠΜ[987876765633768768767657672154879324548754964531984375469785632465495767985426876832163464987664267976576874632125978654798433365149871657354645987777776431433448]

 

n=p*q

 

φ(n)=(p-1)(q-1)

 

e=ΠΜ[239974662553452978507984788798652135654567984346764567]

 

e=Random[Integer,phi-1];

While[GCD[e,phi]!=1,e=Random[Integer,phi-1]];e

 

d=PowerMod[e,-1,(p-1)(q-1)]

 

Κωδικοποίηση[μήνυμα_String]:=

FromDigits[Flatten[Map[IntegerDigits[

ToCharacterCode[#]+100]&,Characters[μήνυμα]]]]

 

m= Κωδικοποίηση["ΥΠΟΛΟΓΙΣΤΗΣ ΚΑΙ ΜΑΘΗΜΑΤΙΚΑ"]

 

c=PowerMod[m,e,n]

 

k=PowerMod[c,d,n]

 

Αποκωδικοποίηση[n_Integer]:=Module[{a,b,i},

a=Partition[IntegerDigits[n],3];b={};

For[i=1,i<=Length[a],

AppendTo[b,FromCharacterCode[FromDigits[Part[a,i]]-100]];

i++];Apply[StringJoin,b]]

 

Αποκωδικοποίηση[k]

 

 

sideBar



You are here: Mathman