ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 2 ΕΠΙΜΕΛΕΙΑ :ΣΤΟΥΚΑ ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΜΕΤΑΠΤΥΧΙΑΚΟ:ΜΠΛΑ

Σχετικά έγγραφα
Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Κρυπτογραφία Δημοσίου Κλειδιού

Αριθμοθεωρητικοί Αλγόριθμοι

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

Chapter 12 Cryptography

Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Στοιχεία Θεωρίας Αριθμών

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2

Εφαρμοσμένη Κρυπτογραφία Ι

Πρόβληµα 2 (15 µονάδες)

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

project RSA και Rabin-Williams

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Cryptography and Network Security Chapter 9. Fifth Edition by William Stallings

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

Εφαρμοσμένη Κρυπτογραφία Ι

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Κρυπτογραφία. Εργαστηριακό μάθημα 11 (Επαναληπτικές ασκήσεις)

Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA

Κρυπτογραφία. Εργαστηριακό μάθημα 9 (Πρωτόκολλα πιστοποίησης ταυτότητας μηδενικής γνώσης Fiat-Shamir)

Εφαρμοσμένη Κρυπτογραφία Ι

Ασφάλεια Πληροφοριακών Συστημάτων

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Εφαρμοσμένη Κρυπτογραφία Ι

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

Αλγόριθµοι δηµόσιου κλειδιού

Πρόβληµα 2 (12 µονάδες)

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Κρυπτογραφία. Κρυπτοσυστήματα ροής. Πέτρος Ποτίκας. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Επιθέσεις και Ασφάλεια Κρυπτοσυστημάτων

UP class. & DES και AES

ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

PSEUDORANDOM GENERATORS- PREDICATES & ZK PROOFS

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

W i. Subset Sum Μια παραλλαγή του προβλήματος knapsack είναι το πρόβλημα Subset Sum, το οποίο δεν λαμβάνει υπόψιν την αξία των αντικειμένων:

Κρυπτογραφία. Μονόδρομες συναρτήσεις - Συναρτήσεις σύνοψης. Άρης Παγουρτζής - Πέτρος Ποτίκας

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ.

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

Μοντέλα και Αποδείξεις Ασφάλειας στην Κρυπτογραφία

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

KΕΦΑΛΑΙΟ 3 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Κρυπτοσυστήματα Δημοσίου Κλειδιού

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

CSC 314: Switching Theory

Κρυπτογραφία. Θεωρία Αριθμών 2/4/2014. Θεωρία Αριθμών

Το κρυπτοσύστημα RSA

Κρυπτογραφία. Συναρτήσεις μονής κατεύθυνσης - Συναρτήσεις κατακερματισμού. Άρης Παγουρτζής - Πέτρος Ποτίκας

Το κρυπτοσύστημα RSA

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Θεωρία αριθμών Αλγεβρικές δομές. Χρήστος Ξενάκης

Ασφάλεια ικτύων (Computer Security)

Πρόσφατες κατευθύνσεις

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Τυχαιότητα (Randomness) I

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Chapter 7, 8 : Time, Space Complexity

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Εφαρμοσμένη Κρυπτογραφία Ι

Υπολογισμός της δύναμης z=x b modn

Σειρά Προβλημάτων 5 Λύσεις

Υπολογιστικά & Διακριτά Μαθηματικά

Κρυπτογραφία. Ψευδοτυχαιότητα - Κρυπτοσυστήματα ροής. Άρης Παγουρτζής - Πέτρος Ποτίκας

Θεωρία Υπολογισµού Theory of Computation

Αννα Νταγιου ΑΕΜ: 432. Εξαμηνο 8. Ερώτηση 1. Πληκτρολογήστε την εντολή: openssl help Παρατηρήστε τις πληροφορίες που λαµβάνετε.

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

conp and Function Problems

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού

Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Transcript:

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 2 ΕΠΙΜΕΛΕΙΑ :ΣΤΟΥΚΑ ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΜΕΤΑΠΤΥΧΙΑΚΟ:ΜΠΛΑ

Η Alice θέλει να στείλει ένα μήνυμα m(plaintext) στον Bob μέσα από ένα μη έμπιστο κανάλι και να μην μπορεί να το διαβάσει άλλος εκτός από τον Bob.

Η Alice θέλει να στείλει ένα μήνυμα m(plaintext) στον Bob μέσα από ένα μη έμπιστο κανάλι και να μην μπορεί να το διαβάσει άλλος εκτός από τον Bob. Έχουν ανταλλάξει από πριν ένα κλειδί μυστικό k.

Η Alice θέλει να στείλει ένα μήνυμα m(plaintext) στον Bob μέσα από ένα μη έμπιστο κανάλι και να μην μπορεί να το διαβάσει άλλος εκτός από τον Bob. Έχουν ανταλλάξει από πριν ένα κλειδί μυστικό k. Η Alice θα χρησιμοποιήσει μία συνάρτηση κρυπτογράφησης συνήθως πολυωνυμικού χρόνου και θα στείλει κρυπτογραφημένο το m σαν ciphertext c= E(m,k).

Η Alice θέλει να στείλει ένα μήνυμα m(plaintext) στον Bob μέσα από ένα μη έμπιστο κανάλι και να μην μπορεί να το διαβάσει άλλος εκτός από τον Bob. Έχουν ανταλλάξει από πριν ένα κλειδί μυστικό k. Η Alice θα χρησιμοποιήσει μία συνάρτηση κρυπτογράφησης συνήθως πολυωνυμικού χρόνου και θα στείλει κρυπτογραφημένο το m σαν ciphertext c= E(m,k). O Bob θα λάβει c και θα βρει m με συνάρτηση αποκρυπτογράφησης m=d(c,k).

Η Alice θέλει να στείλει ένα μήνυμα m(plaintext) στον Bob μέσα από ένα μη έμπιστο κανάλι και να μην μπορεί να το διαβάσει άλλος εκτός από τον Bob. Έχουν ανταλλάξει από πριν ένα κλειδί μυστικό k. Η Alice θα χρησιμοποιήσει μία συνάρτηση κρυπτογράφησης συνήθως πολυωνυμικού χρόνου και θα στείλει κρυπτογραφημένο το m σαν ciphertext c= E(m,k). O Bob θα λάβει c και θα βρει m με συνάρτηση αποκρυπτογράφησης m=d(c,k). Οι συναρτήσεις Ε και D θεωρούνται γνωστές σε κάποιον που προσπαθεί να βρει m.

Η Alice θέλει να στείλει ένα μήνυμα m(plaintext) στον Bob μέσα από ένα μη έμπιστο κανάλι και να μην μπορεί να το διαβάσει άλλος εκτός από τον Bob. Έχουν ανταλλάξει από πριν ένα κλειδί μυστικό k. Η Alice θα χρησιμοποιήσει μία συνάρτηση κρυπτογράφησης συνήθως πολυωνυμικού χρόνου και θα στείλει κρυπτογραφημένο το m σαν ciphertext c= E(m,k). O Bob θα λάβει c και θα βρει m με συνάρτηση αποκρυπτογράφησης m=d(c,k). Οι συναρτήσεις Ε και D θεωρούνται γνωστές σε κάποιον που προσπαθεί να βρει m. H ασφάλεια έγκειται στο μυστικό κλειδί k που είναι γνωστό μόνο στην Alice και τον Bob.

Plaintext m=(m 0 m 2,..m n-1 ) m i є {o,1} Key= k=(ko,k 1,,k n-1 ) k i є{0,1} Ciphertext c=(c 0,..,c n-1 ) c i є {0,1} Encryption : c i =XOR(m i,k i )= m i +k i mod2 Decryption m i =XOR(c i,k i ) Aν ισχύει Pr(k i =0)=Pr(k i =1)=1/2 τότε έχουμε ότι Pr(C=c M=m i )=Pr(C=c M=m j ) για κάθε m i,m j є M και για κάθε c є C ( τέλεια μυστικότητα κατά Shannon)

Plaintext m=(m 0 m 2,..m n-1 ) m i є {o,1} Key= k=(ko,k 1,,k n-1 ) k i є{0,1} Ciphertext c=(c 0,..,c n-1 ) c i є {0,1} Encryption : c i =XOR(m i,k i )= m i +k i mod2 Decryption m i =XOR(c i,k i ) Aν ισχύει Pr(k i =0)=Pr(k i =1)=1/2 τότε έχουμε ότι Pr(C=c M=m i )=Pr(C=c M=m j ) για κάθε m i,m j є M και για κάθε c є C ( τέλεια μυστικότητα κατά Shannon) Δηλαδή ο επιτιθέμενος δεν παίρνει καμία πληροφορία από c i για m i,αφού το συγκεκριμένο c i μπορεί να είναι ciphertext οποιουδήποτε plaintext αν έχει χρησιμοποιηθεί το ανάλογο κλειδί.

Plaintext m=(m 0 m 2,..m n-1 ) m i є {o,1} Key= k=(ko,k 1,,k n-1 ) k i є{0,1} Ciphertext c=(c 0,..,c n-1 ) c i є {0,1} Encryption : c i =XOR(m i,k i )= m i +k i mod2 Decryption m i =XOR(c i,k i ) Aν ισχύει Pr(k i =0)=Pr(k i =1)=1/2 τότε έχουμε ότι Pr(C=c M=m i )=Pr(C=c M=m j ) για κάθε m i,m j є M και για κάθε c є C ( τέλεια μυστικότητα κατά Shannon) Δηλαδή ο επιτιθέμενος δεν παίρνει καμία πληροφορία από c i για m i,αφού το συγκεκριμένο c i μπορεί να είναι ciphertext οποιουδήποτε plaintext αν έχει χρησιμοποιηθεί το ανάλογο κλειδί. Προσοχή: αυτό ισχύει αν το κλειδί χρησιμοποιηθεί μία φορά.

Plaintext m=(m 0 m 2,..m n-1 ) m i є {o,1} Key= k=(ko,k 1,,k n-1 ) k i є{0,1} Ciphertext c=(c 0,..,c n-1 ) c i є {0,1} Encryption : c i =XOR(m i,k i )= m i +k i mod2 Decryption m i =XOR(c i,k i ) Aν ισχύει Pr(k i =0)=Pr(k i =1)=1/2 τότε έχουμε ότι Pr(C=c M=m i )=Pr(C=c M=m j ) για κάθε m i,m j є M και για κάθε c є C ( τέλεια μυστικότητα κατά Shannon) Δηλαδή ο επιτιθέμενος δεν παίρνει καμία πληροφορία από c i για m i,αφού το συγκεκριμένο c i μπορεί να είναι ciphertext οποιουδήποτε plaintext αν έχει χρησιμοποιηθεί το ανάλογο κλειδί. Προσοχή: αυτό ισχύει αν το κλειδί χρησιμοποιηθεί μία φορά. Αν και το σύστημα έχει τέλεια ασφάλεια το αρνητικό είναι ότι απαιτείται κλειδί όσο με το μήκος του plaintext,οπότε αφού μπορούν να ανταλλάξουν Alice και Bob τόσο μεγάλο κλειδί γιατί να μην ανταλλάξουν και plaintext?

Στην περίπτωση που η Alice και ο Bob δεν έχουν κάποιο μυστικό κοινό κλειδί από πριν μπορεί να ακολουθηθεί η παρακάτω διαδικασία :1)Ο Bob παράγει ένα ζευγάρι (p b,s b ),δημοσιεύει p b,το οποίο είναι το public key του και κρατάει μυστικό το s b,το οποίο είναι το private key του και το ξέρει μόνο εκείνος. 2)Η Αlice του στέλνει το c=e(p b,m),που είναι το κρυπτογράφημα του m 3) O Bob παίρνει το m =D(s b,c) 4) Η ασφάλεια έγκειται στο γεγονός ότι να υπολογιστεί το s b από p b είναι υπολογιστικά δύσκολο,όπως και ο υπολογισμός του m από το c, χωρίς το s b.

Στην περίπτωση που η Alice και ο Bob δεν έχουν κάποιο μυστικό κοινό κλειδί από πριν μπορεί να ακολουθηθεί η παρακάτω διαδικασία :1)Ο Bob παράγει ένα ζευγάρι (p b,s b ),δημοσιεύει p b,το οποίο είναι το public key του και κρατάει μυστικό το s b,το οποίο είναι το private key του και το ξέρει μόνο εκείνος. 2)Η Αlice του στέλνει το c=e(p b,m),που είναι το κρυπτογράφημα του m 3) O Bob παίρνει το m =D(s b,c) 4) Η ασφάλεια έγκειται στο γεγονός ότι να υπολογιστεί το s b από p b είναι υπολογιστικά δύσκολο,όπως και ο υπολογισμός του m από το c, χωρίς το s b. To public key cryptosystem ανήκει στο FNP(Αν μου δώσουν (m,c), μπορώ σε πολυωνυμικό ντετερμινιστικό χρόνο να ελέγξω αν c=e(p b,m).

Στην περίπτωση που η Alice και ο Bob δεν έχουν κάποιο μυστικό κοινό κλειδί από πριν μπορεί να ακολουθηθεί η παρακάτω διαδικασία :1)Ο Bob παράγει ένα ζευγάρι (p b,s b ),δημοσιεύει p b,το οποίο είναι το public key του και κρατάει μυστικό το s b,το οποίο είναι το private key του και το ξέρει μόνο εκείνος. 2)Η Αlice του στέλνει το c=e(p b,m),που είναι το κρυπτογράφημα του m 3) O Bob παίρνει το m =D(s b,c) 4) Η ασφάλεια έγκειται στο γεγονός ότι να υπολογιστεί το s b από p b είναι υπολογιστικά δύσκολο,όπως και ο υπολογισμός του m από το c, χωρίς το s b. To public key cryptosystem ανήκει στο FNP(Αν μου δώσουν (m,c), μπορώ σε πολυωνυμικό ντετερμινιστικό χρόνο να ελέγξω αν c=e(p b,m). Επιθυμούμε να μην ανήκει στο FP.

Oρισμός : one way συνάρτησης:1) Η f είναι μία συνάρτηση από strings σε strings. 2)Είναι 1-1 και για όλα τα χєσ * x 1/k για κάποιο k>0 3)f Є FP. 4)f -1 δεν ανήκει στο FP αλλά στο FNP. Δεν γνωρίζουμε αν υπάρχει one way function. f(x) x k

Fmult(p,C(p),q,C(q))=p q, n=p q Eώς τώρα δεν έχει βρεθεί αποδοτικός αλγόριθμος εύρεσης παραγόντων του n αν p,q μεγάλοι πρώτοι. Ένας αλγόριθμος που επιλύει αυτό το πρόβλημα είναι η μέθοδος P του Pollard,που στηρίζεται στην ιδέα ότι αν x i και x j στοιχεία του Zn διαφορετικά μεταξύ τους και gcd(x i -x j,n)>1 τότε gcd(x i -x j,n)=p ή gcd(x i -x j,n)=q.

Fmult(p,C(p),q,C(q))=p q, n=p q Eώς τώρα δεν έχει βρεθεί αποδοτικός αλγόριθμος εύρεσης παραγόντων του n αν p,q μεγάλοι πρώτοι. Ένας αλγόριθμος που επιλύει αυτό το πρόβλημα είναι η μέθοδος P του Pollard,που στηρίζεται στην ιδέα ότι αν x i και x j στοιχεία του Zn διαφορετικά μεταξύ τους και gcd(x i -x j,n)>1 τότε gcd(x i -x j,n)=p ή gcd(x i -x j,n)=q. Fexp(p,C(p),r,x)=(p, C(p),r x mod p) Το πρόβλημα του διακριτού λογαρίθμου θεωρείται δύσκολο σε υποομάδα του Zp* τάξης μεγάλου πρώτου αριθμού.π.χ αν p=2 q+1 μια τέτοια υποομάδα είναι <g (p-1)/q > τάξης q.

Frsa (x,e,p,c(p),q,c(q))=(x e modp q,p q,e) 1)Εύρεση πρώτων p,q μεγάλου μήκους(έλεγχος αν είναι πρώτος με μέθοδο Miller Rabin) 2)Υπολογίζουμε n=p q και φ(n)=(p-1) (q-1) 3)Βρίσκουμε e є U(Zφ(n)): gcd(e,φ(n))=1 4)Υπολογίζουμε d τω e d=1 mod φ(n) με επεκταμένο ευκλείδειο αλγόριθμο που είναι αποδοτικός. Public key :e,n Private key :d Encryption : enc(m)=m e mod n,όπου m ανήκει στο Zn Decryption:dec(c)=c d mod n Παρατηρούμε ότι για κάθε m στο Zn έχουμε ορθότητα.

1) m є U(Zn),δηλαδή gcd(m,n)=1.τότε m e d modn=m 1+kφ(n) mod n=m mod n=m,αφού ισχύει m φ(n) modn=1modn από θεώρημα Euler 2)p διαιρεί m και q δεν διαιρεί m. Τότε ισχύει m 0 modp,άρα m e d mod p=m mod p και m e d mod q= (m (q-1) k ) p-1 m mod q =m mod q,από θεώρημα Fermat,αφού gcd (q,m)=1.άρα m e d mod n=m mod n=m. 3) p, q διαιρεί m,άρα και n διαιρεί m.τότε m e d modn=m mod n =m,αφού m 0modn.

RSA decrypt (c,e,n) FindSecrExp(e,n) φ(n)-computation factoring (n) RSA decrypt (c,e,n) FindSecrExp(e,n). Αυτό ισχύει γιατί αν γνωρίζουμε d μπορούμε να κάνουμε αποκρυπτογράφηση με τη συνάρτηση decr. FindSecrExp(e,n) φ(n)- computation. Aυτό ισχύει γιατί αν ξέρω φ(n) βρίσκω d,που είναι ο αντίστροφος του e στην U(Zφ(n)) με επεκταμένο αλγόριθμο του Ευκλείδη. φ(n)- computation factoring (n),γιατί φ(n)=(p-1) (q-1) Factoring(n) φ(n)- computation,γιατί αν ξέρω φ(n) το σύστημα n=p q και φ(n)=(p-1) (q-1) έχει δύο αγνώστους p και q. Αν ξέρω d τότε μπορώ με πολυωνυμικό πιθανοτικό αλγόριθμο να υπολογίσω παραγοντοποίηση. Ο αλγόριθμος στηρίζεται στην ιδέα του Miller Rabin και στο γεγονός ότι αν βρω u διάφορο του ±1 τω k 2 =1mod n τότε gcd(k-1,n)=p ή q.

Ορισμός :unambiguous ονομάζουμε την μη ντετερμινιστική μηχανή Τuring με τον περιορισμό ότι για κάθε input υπάρχει το πολύ ένα μονοπάτι που οδηγεί σε YES. UP είναι η κλάση των γλωσσών που είναι decidable από πολυωνυμικές unambiguous μηχανές Turing. UP=(!/ ) coup=( /!) Ισχύει P UP NP Αν ορίσουμε το RSAdecryption σαν πρόβλημα απόφασης δηλαδή να έχει input <n,e,c,kєzn> και output YES αν dec(n,e,c)= c d mod n=m k και NO αλλιώς, τότε τι σχέση έχει με τη UP και την coup?

Θα αποδείξουμε το αντιθετοαντίστροφο,δηλαδή θα υποθέσουμε ότι υπάρχει μια one way function f και θα βρούμε γλώσσα L f που ανήκει στη UP και δεν ανήκει στην P.

Θα αποδείξουμε το αντιθετοαντίστροφο,δηλαδή θα υποθέσουμε ότι υπάρχει μια one way function f και θα βρούμε γλώσσα L f που ανήκει στη UP και δεν ανήκει στην P. Αρχικά ορίζουμε λεξικογραφική διάταξη για να μπορούμε να συγκρίνουμε strings :0<1<00<01<10<11<000<..

Θα αποδείξουμε το αντιθετοαντίστροφο,δηλαδή θα υποθέσουμε ότι υπάρχει μια one way function f και θα βρούμε γλώσσα L f που ανήκει στη UP και δεν ανήκει στην P. Αρχικά ορίζουμε λεξικογραφική διάταξη για να μπορούμε να συγκρίνουμε strings :0<1<00<01<10<11<000<.. L f ={(x,y):υπάρχει z τω f(z)=y και z x} Ξέρουμε ότι z y k,αφού f είναι one way function.

Θα αποδείξουμε το αντιθετοαντίστροφο,δηλαδή θα υποθέσουμε ότι υπάρχει μια one way function f και θα βρούμε γλώσσα L f που ανήκει στη UP και δεν ανήκει στην P. Αρχικά ορίζουμε λεξικογραφική διάταξη για να μπορούμε να συγκρίνουμε strings :0<1<00<01<10<11<000<.. L f ={(x,y):υπάρχει z τω f(z)=y και z x} Ξέρουμε ότι z y k,,αφού f είναι one way function. L f є UP.Φτιάχνουμε μία μη ντετερμινιστική μηχανή Turing που μαντεύει τυχαίο z μήκους y k, και ελέγχουμε αν y=f(z).aν δεν ισχύει εκτυπώνει NO,αν ισχύει ελέγχει αν z χ και αναλόγως εκτυπώνει YES ή ΝΟ.Αυτή η μηχανή είναι unambiguous γιατί f είναι 1-1.

Θα αποδείξουμε το αντιθετοαντίστροφο,δηλαδή θα υποθέσουμε ότι υπάρχει μια one way function f και θα βρούμε γλώσσα L f που ανήκει στη UP και δεν ανήκει στην P. Αρχικά ορίζουμε λεξικογραφική διάταξη για να μπορούμε να συγκρίνουμε strings :0<1<00<01<10<11<000<.. L f ={(x,y):υπάρχει z τω f(z)=y και z x} Ξέρουμε ότι z y k,,αφού f είναι one way function. L f є UP.Φτιάχνουμε μία μη ντετερμινιστική μηχανή Turing που μαντεύει τυχαίο z μήκους y k, και ελέγχουμε αν y=f(z).aν δεν ισχύει εκτυπώνει NO,αν ισχύει ελέγχει αν z χ και αναλόγως εκτυπώνει YES ή ΝΟ.Αυτή η μηχανή είναι unambiguous γιατί f είναι 1-1. L f δεν ανήκει στο P.Για να το αποδείξουμε θα υποθέσουμε ότι ανήκει στο P και θα εφαρμόσουμε με δυαδική αναζήτηση αλγόριθμο για να αντιστρέψουμε f.

Θα αποδείξουμε πάλι το αντιθετοαντίστροφο.

Θα αποδείξουμε πάλι το αντιθετοαντίστροφο. Έστω ότι UP διάφορο του P.Τότε υπάρχει L Є UP/P και U η unambiguous μηχανή Turing που την κάνει decide.τότε ορίζουμε την one way f u τέτοια ώστε αν χ είναι η αναπαράσταση ενός υπολογισμού της U για input y που καταλήγει σε ΥΕS τότε f u (x)=1y, αλλιώς σε κάθε άλλη περίπτωση f u (x)=0x.

Θα αποδείξουμε πάλι το αντιθετοαντίστροφο. Έστω ότι UP διάφορο του P.Τότε υπάρχει L Є UP/P και U η unambiguous μηχανή Turing που την κάνει decide.τότε ορίζουμε την one way f u τέτοια ώστε αν χ είναι η αναπαράσταση ενός υπολογισμού της U για input y που καταλήγει σε ΥΕS τότε f u (x)=1y, αλλιώς σε κάθε άλλη περίπτωση f u (x)=0x. f u είναι 1-1

Θα αποδείξουμε πάλι το αντιθετοαντίστροφο. Έστω ότι UP διάφορο του P.Τότε υπάρχει L Є UP/P και U η unambiguous μηχανή Turing που την κάνει decide.τότε ορίζουμε την one way f u τέτοια ώστε αν χ είναι η αναπαράσταση ενός υπολογισμού της U για input y που καταλήγει σε ΥΕS τότε f u (x)=1y, αλλιώς σε κάθε άλλη περίπτωση f u (x)=0x. f u είναι 1-1 f u єfp, αφού το χ περιέχει και την αναπαράσταση του y άρα το y μπορεί να ανακτηθεί γρήγορα από χ.επίσης χ και y είναι πολυωνυμικά σχετιζόμενα αφού κάθε μονοπάτι U είναι πολυωνυμικό.

Θα αποδείξουμε πάλι το αντιθετοαντίστροφο. Έστω ότι UP διάφορο του P.Τότε υπάρχει L Є UP/P και U η unambiguous μηχανή Turing που την κάνει decide.τότε ορίζουμε την one way f u τέτοια ώστε αν χ είναι η αναπαράσταση ενός υπολογισμού της U για input y που καταλήγει σε ΥΕS τότε f u (x)=1y, αλλιώς σε κάθε άλλη περίπτωση f u (x)=0x. f u είναι 1-1 f u єfp, αφού το χ περιέχει και την αναπαράσταση του y άρα το y μπορεί να ανακτηθεί γρήγορα από χ.επίσης χ και y είναι πολυωνυμικά σχετιζόμενα αφού κάθε μονοπάτι U είναι πολυωνυμικό. f -1 δεν ανήκει στη FP,γιατί αλλιώς για input y θα βρίσκαμε με πολυωνυμικό ντετερμινιστικό τρόπο πρότυπο του 1y ή του 0y μέσω της fu και θα κάναμε decide L με ντεντερμινιστική πολυωνυμική μηχανή Τuring,άτοπο(L δεν ανήκει στο P).

Μια συνάρτηση f:{0,1}* ->{0,1}* πολυωνυμική είναι one way function αν για κάθε probabilistic polynomial time αλγόριθμο Α υπάρχει μία negligible function e:ν->[0,1],έτσι ώστε για κάθε n να ισχύει Pr(A(y)=x ώστε f(x )=y] <e(n),όπου χ є R {0,1} n και y=f(x).