Παραγωγή μεγάλων πρώτων αριθμών

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

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

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

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

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

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

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

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

Blum Blum Shub Generator

project RSA και Rabin-Williams

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

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

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

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

Διαιρετότητα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία. Ακέραια διαίρεση. Διαιρετότητα. ΜΚΔ: χρήσιμες ιδιότητες

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

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

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ PRIMES P. Από τα αριστερά προς τα δεξία Saxena, Kayal και Agrawal. Επιµέλεια : Γεωργίου Κωνσταντίνος.

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

2.1 Διαιρετότητα, ισοϋπόλοιποι αριθμοί. q Z, a = b q + r.

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

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

Υπολογιστικά Προβλήματα και Αλγόριθμοι στην Κρυπτογραφία

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

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

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

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

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

Εισαγωγή στον Προγραμματισμό

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9

Μια µικρή υπενθύµιση από τη θεωρία Galois

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

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

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

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

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Αλγόριθμος Metropolis. Γ. Θεοδώρου 1

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

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

Εθνικό Μετσόβιο Πολυτεχνείο

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 9

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Σχεδίαση & Ανάλυση Αλγορίθμων

F 5 = (F n, F n+1 ) = 1.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9

ΔΙΑΓΩΝΙΣΜΑ ΣΤΟ ΜΑΘΗΜΑ Α.Ε.Π.Π. ΟΝΟΜΑ

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Προσομοίωση Συστημάτων

Πρωτόκολλα Ελέγχου προσπέλασης μέσου

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

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

* * * ( ) mod p = (a p 1. 2 ) mod p.

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 24/04/2019

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

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

Μαθηματικά Γ Γυμνασίου. Επαναληπτικές Ασκήσεις στο Κεφάλαιο 1: Μονώνυμα - Πολυώνυμα - Ταυτότητες

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 6

Ολοκλήρωση - Μέθοδος Monte Carlo

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

Σχεδίαση και Ανάλυση Αλγορίθμων

Αλγόριθµοι Οπισθοδρόµησης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΓΛΩΣΣΟΜΑΘΕΙΑ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Ανάλυση και Υλοποίηση Σύγχρονων Αλγορίθμων Εντοπισμού Πρώτων Αριθμών ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Ασκήσεις1 Πολυώνυμα. x x c. με το. b. Να βρεθούν όλες οι τιμές των a, Να βρεθεί ο μκδ και το εκπ τους

Κρυπτογραφία και Πολυπλοκότητα

Transcript:

Παραγωγή μεγάλων πρώτων αριθμών

Πώς υπολογίζουμε μεγάλους πρώτους αριθμούς? Μεγάλοι πρώτοι αριθμοί χρειάζονται στην πλειοψηφία των αλγορίθμων Δημοσίου κλειδιού Γιαναεξετάσεικανείςανέναςαριθμόςn είναι πρώτος, θα πρέπει να εξετάσει για όλους τους αριθμούς 2,3,4, n αν διαιρούν τον n (με δεδομένο ότι ο n είναι περιττός, στην ουσία κοιτάμε μόνο τους περιττούς αριθμούς). Κάτι πιο αποδοτικό?

Γενική προσέγγιση 1. Δημιουργία τυχαίου περιττού αριθμού n Τυχαία επιλογή Κατασκευή με κάποιον τρόπο (υπάρχουν γνωστές κατασκευές δεν θα μελετηθούν εδώ) 2. Εξετάζουμε αν οn είναι πρώτος Με ελέγχους βάση πιθανότητας (Probabilistic tests) Γνήσιοι έλεγχοι (True primality tests) 3. Αν στο βήμα 2 αποφαινόμαστε ότι ο n είναι σύνθετος, επιστρέφουμε στο βήμα 1.

Πρώτοι αριθμοί Κατανομή Έστω π(x) το πλήθος των πρώτων αριθμών στο διάστημα [2,x]. Τότε, π(x) ~ x ln x Άρα: δεν είναι δύσκολο να βρούμε πρώτους αριθμούς (έχουν μία αρκετά ομοιόμορφη κατανομή):

Probabilistic primality tests Σύνολο «πειστηρίων» (witnesses) W(n), ορίζεται ως εξής: Για κάποιο a Z n, εάν ο a W(n), τότε ο a καλείται witness (πειστήριο ή μάρτυρας) για το ότι ο n είναι σύνθετος. Ο έλεγχος για το αν ο a είναι πειστήριο, μπορεί να γίνει σε πολυωνυμικό χρόνο. Εάν ο n είναι πρώτος, τότε W(n)=φ (κενό σύνολο) Εάν ο n είναι σύνθετος, τότε #W(n) 2 n

Probabilistic primality tests Fermat s test Γνωρίζουμε ότι αν ο n είναι πρώτος και 1 a n 1, τότε a n-1 1 (mod n) Τότε αν ο n είναι σύνθετος, υπάρχει a τέτοιο ώστε a n-1 1 (mod n) τότε ο a είναι ένα πειστήριο για τον n. Εάν a n-1 1 (mod n), τότε ο a ονομάζεται liar (όχι πειστήριο) για τον n For i = 1 to t choose random a, 2 a n-2 r = a n-1 mod n if r 1, return composite return prime Το t είναι παράμετρος, που πρέπει να είναι αρκετά μεγάλη ώστε να μειώνει τις πιθανότητες εσφαλμένης απόφασης

Probabilistic primality tests Fermat s test Γιατί είναι Probabilistic test? Αν αποφανθούμε ότι ο n δεν είναι πρώτος, τότε αυτό ισχύει εγγυημένα. Όμως, είναι πιθανό ο n να μην είναι πρώτος και μέσω του Fermat s test να αποφανθούμε ότι είναι (υπάρχει πιθανότητα λανθασμένης απόφασης) Τέτοια τεστ ονομάζονται «yes-biased Monte Carlo»

Probabilistic primality tests Είναι καλό το Fermat s test? Οι αριθμοί Carmichael numbers είναι σύνθετοι ακέραιοι με την ιδιότητα a n-1 1 (mod n) για όλους τους ακέραιους a τέτοιους ώστε gcd(a,n) = 1 Παρόλο που οι αριθμοί Carmichael είναι λίγοι, αποδεικνύουν πως το Fermat s test δεν είναι μία ασφαλής επιλογή. Ο μικρότερος αριθμός Carmichael είναι ο 561 = 3 x 11 x 17.

Probabilistic primality tests Miller-Rabin Για n πρώτο αριθμό, έστω n-1 = 2 s r (όπου ο r είναι περιττός αριθμός). Έστω a οποιοσδήποτε ακέραιος τέτοιος ώστε gcd(a,n)=1. Τότε είτε a r 1 (mod n) είτε κάποιο j, 0 j s-1. j 2 a r n 1mod n για Η παραπάνω παρατήρηση μας οδηγεί στον ακόλουθο ορισμό:

Probabilistic primality tests Έστω n σύνθετος περιττός αριθμός με n-1=2 r s, όπου ο s είναι περιττός. Έστω a ακέραιος στο διάστημα [1,n-1]. Αν a r j 2 1 (mod n) και a r n 1mod n για όλα τα j στο διάστημα [0,s-1], τότε ο a είναι ισχυρό πειστήριο (strong witness) για το ότι ο n είναι σύνθετος. Διαφορετικά, εάν ισχύει είτε a r 1 (mod n) j 2 είτε a r n 1mod n για κάποιο j στο διάστημα [0,s-1], τότε ο n λέγεται «ισχυρός ψευδο-πρώτος» ως προς το a. O αλέγεται«ισχυρό μη πειστήριο» (strong liar) για το ότι ο n είναι σύνθετος.

Πώς κατασκεύαζεται το Miller- Rabin test? Εάν ο n είναι σύνθετος, τότε το πολύ το ¼ τωναριθμώναπότοδιάστημα [0..n-1] είναι ισχυρά μη-πειστήρια. Για την ακρίβεια, μη-πειστήρια είναι το πολύ φ(n)/4 στοιχεία (εάν n 9).

Παράδειγμα Έστω ο σύνθετος αριθμός n=91 (7 x 13). Έχουμε 91-1=90=2 x 45, δηλαδή s=1, r=45. Ισχύει 9 r = 9 45 1 mod 91, οπότε ο 91 είναι ισχυρός ψευδοπρώτος ως προς τον 9. Όλα τα ισχυρά μη-πειστήρια για τον 91 (πλην του 9 που ήδη είδαμε) είναι: {1, 9, 10, 12, 16, 17, 22, 29, 38, 53, 62, 69, 74, 75, 79, 81, 82, 90). Τοπλήθοςτουςείναι 18=φ(91)/4.

Probabilistic primality tests Miller-Rabin test Find s,r st. n-1 = 2 s r For i = 1 to t choose random a, 2 a n-2 y = a r mod n if y 1 and y n-1 j=1 return prime while j s-1 and y n-1 y=y 2 mod n if y=1 return composite j=j++ if y n-1 return composite

Ανάλυση του Miller-Rabin Εάν ο αλγόριθμος αποφαίνεται ότι ο n είναι σύνθετος, τότε πράγματι είναι Εάν ο n είναι πρώτος, ο αλγόριθμος αποφαίνεται πως ο n είναι πρώτος Υπάρχει περίπτωση ο n να είναι σύνθετος, αλλά το τεστ να αποφανθεί λάθος ότι είναι πρώτος. Η πιθανότητα αυτή είναι μικρότερη από (1/4) t Για t=10, η πιθανότητα να μην κάνει λάθος ο Miller-Rabin είναι μεγαλύτερη από 0.999999

Probabilistic primality tests To Miller-Rabin τεστ είναι το καλύτερο όλων (ακόμα και από το, επίσης γνωστό και διαδεδομένο, Solovay-Strassen test). Πάντα όμως υπάρχει μια, έστω και πάρα πολύ μικρή, πιθανότητα λάθους

True Primality Tests Για s>1, κάθε αριθμός της μορφής n=2 s -1 ονομάζεται αριθμός Mersenne (εάν επιπλέον είναι πρώτος, ονομάζεται Mersenne πρώτος). Για s>2 ένας αριθμός Mersenne είναι πρώτος αν και μόνο αν ισχύουν: Ο s είναι πρώτος u s-2 =0 where u 0 =4, u k+1 =(u k2-2) mod n for k 0 Lucal-Lehmer primality test for Mersenne numbers Εξαντλητικός έλεγχος για το αν o s είναι πρώτος Αν όχι, return composite u = 4 for k = 1 to s-2 u=(u 2-2) mod n if u=0 return prime return composite

True Primality Tests Χρονοβόρα συνήθως, πριν εφαρμοστούν σε έναν αριθμό, πρώτα αυτός εξετάζεται με κάποιο probabilistic primality test. Άλλα true primality tests Factorization of n-1 Elliptic curves Jacobi sum test

Για πολύ περισσότερα Κεφάλαιο 4 του Handbook of Applied Cryptography