Ελλειπτικές καμπύλες. Παναγιώτης Γροντάς 11/12/2018. ΕΜΠ - Κρυπτογραφία ( ) Elliptic Curves - Pairings 1 / 65

Σχετικά έγγραφα
Κρυπτοσυστήματα Διακριτού Λογαρίθμου

Κρυπτοσυστήματα Διακριτού Λογαρίθμου

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

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

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

Γενικά Μία μέθοδος κρυπτογραφίας δημοσίου κλειδιού Αντί για δακτύλιους της μορφής Z n χρησιμοποιεί ελλειπτικές καμπύλες ορισμένες σε πεπερασμένα σώματ

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

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

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

Κεφάλαιο 12. Προηγμένα Θέματα Κβαντική Κρυπτογραφία Κβαντικοί Υπολογισμοί

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

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

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

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

Public Key Cryptography. Dimitris Mitropoulos

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

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

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

Ψηφιακές Υπογραφές. Παναγιώτης Γροντάς - Άρης Παγουρτζής. ΕΜΠ - Κρυπτογραφία - ( ) 28/11/2017. Digital Signatures 1 / 57

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

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

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

Κρυπτογραφικά Πρωτόκολλα

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

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους

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

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

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

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

Ψηφιακές Υπογραφές. Παναγιώτης Γροντάς - Άρης Παγουρτζής 09/12/2016. ΕΜΠ - Κρυπτογραφία - ( )

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

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

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

Κρυπτοσυστήματα Διακριτού Λογαρίθμου

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

πυθαγόρειες τριάδες, τριγωνομετρία και υπολογισμός ολοκληρωμάτων.

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

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

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

Βασικές Έννοιες Κρυπτογραφίας

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

Αποδείξεις Μηδενικής Γνώσης

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

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

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

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

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

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

Copyright Κωνσταντίνος Γ. Χαλκιάς, Αύγουστος 2006

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

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

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

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

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

Παύλος Εφραιμίδης. προηγμένα κρυπτογραφικά πρωτόκολλα. Ασφ Υπολ Συστ

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΒΑΣΙΣΜΕΝΗΣ ΣΕ ΕΛΛΕΙΠΤΙΚΕΣ ΚΑΜΠΥΛΕΣ ΠΑΝΩ ΣΕ BINARY EXTENSION GALOIS FIELDS GF(2 N )

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

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

Το κρυπτοσύστημα RSA. Παναγιώτης Γροντάς - Άρης Παγουρτζής 20/11/2018. ΕΜΠ - Κρυπτογραφία ( ) RSA 1 / 51

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

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

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

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

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

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

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

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

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

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

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

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

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

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

Γραμμική Αλγεβρα ΙΙ Διάλεξη 1 Εισαγωγή Χρήστος Κουρουνιώτης Πανεπισ τήμιο Κρήτης 19/2/2014 Χ.Κουρουνιώτης (Παν.Κρήτης) Διάλεξη 1 19/2/ / 13

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

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

ΕΡΩΤΗΣΕΙΣ ΜΑΘΗΤΩΝ. Ερώτηση 1. Αν το x o δεν ανήκει στο πεδίο ορισμού μιας συνάρτησης f, έχει νόημα να μιλάμε για παράγωγο της f. στο x = x o?

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

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

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

ΣΗΜΕΙΩΣΕΙΣ. x A αντιστοιχίζεται (συσχετίζεται) με ένα μόνο. = ονομάζεται εξίσωση της

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

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

Αποδείξεις Μηδενικής Γνώσης

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

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

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

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

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

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

Αλγεβρικές Δομές και Αριθμοθεωρία

a = a a Z n. a = a mod n.

Ψηφιακές Υπογραφές. Άρης Παγουρτζής Στάθης Ζάχος. Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

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

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

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

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

Transcript:

Ελλειπτικές καμπύλες Παναγιώτης Γροντάς 11/12/2018 ΕΜΠ - Κρυπτογραφία (2018-2019) Elliptic Curves - Pairings 1 / 65

Περιεχόμενα Η ομάδα ελλειπτικών καμπυλών Κρυπτογραφικά πρωτόκολλα Pairings Εφαρμογές PBC Elliptic Curves - Pairings 2 / 65

Μαθηματικό υπόβαθρο

Ελλειπτικές καμπύλες Γενικά Πλούσιο σε ιστορία μαθηματικό αντικείμενο Πρώτη εμφάνιση Διόφαντος 3 αιώνας πχ (ρητές ρίζες της y 2 = x 3 x + 9) Μελέτη εδώ και 300 έτη Κρυπτογραφία: 80s (Neil Koblitz, Victor Miller) Βασίζεται στο πρόβλημα του Διακριτού Λογάριθμου Αντικατάσταση του Z p με σημεία τους Μόνο γενικευμένοι αλγόριθμοι DLP O(2 λ 2 ) - όχι υποεκθετικοί Ίδια επίπεδα ασφάλειας με μικρότερη παράμετρο - καλύτερη απόδοση RSA EC 1024 160 2048 224 3072 256 Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 3 / 65

Γενική μορφή Έστω F ένα σώμα. Ορισμός E(F) Mια ελλειπτική καμπύλη E πάνω από το F είναι το σύνολο των σημείων (x, y) F, που ικανοποιούν την εξίσωση Weierstrass y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 a 1, a 2, a 3, a 4, a 5, a 6 F και ένα στοιχείο O, (- σημείο στο άπειρο) Πρακτικά y 2 = x 3 + ax + b, a, b F Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 4 / 65

Ελλειπτικές καμπύλες στο R (μορφή) y 2 = x 3 1 y 2 = x 3 + 1 y 2 = x 3 x + 1 2 y 2 = x 3 3 2 x Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 5 / 65

Παρατηρήσεις στη μορφή ελλειπτικών καμπυλών Συμμετρία ως προς άξονα x Συμπίεση σημείου: Αποθηκεύουμε τετμημένη και 1 bit για πάνω ή κάτω από τον άξονα των x (δηλ. (x, 0) ή (x, 1)) Προς αποφυγή Singular καμπύλες: Πολλαπλές ρίζες, σημεία τομής Πρέπει 4a 3 + 27b 2 0 Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 6 / 65

Ομάδα Σημείων Ελλειπτικής καμπύλης Τα σημεία μιας ελλειπτικής καμπύλης αποτελούν αβελιανή ομάδα ως προς την πρόσθεση ουδέτερο στοιχείο O αντίθετο σημείου P στην E(R): Αν P = O, τότε P = O Αν P = (x, y) τότε P = (x, y) (ανήκει στην E λόγω συμμετρίας) πρόσθεση: Για τρία σημεία P, Q, R στην ίδια ευθεία: P + Q + R = O πρόσθεση: προσεταιριστική και αντιμεταθετική Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 7 / 65

Πρόσθεση Σημείων i (Γεωμετρική) Ερμηνεία Tο άθροισμα P + Q Αν P = O, τότε O + Q = Q Αν Q = P, τότε P + Q = O. Το σημείο O. υπάρχει σε κάθε κατακόρυφη Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 8 / 65

Πρόσθεση Σημείων ii Αν P = Q τότε: Θεωρούμε την εφαπτομένη στο P Βρίσκουμε το σημείο τομής R με την E. Βρίσκουμε το αντίθετο Elliptic Curve point addition Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 9 / 65

Πρόσθεση Σημείων iii Αν P Q τότε: Θεωρούμε την PQ Αν υπάρχει σημείο τομής R με την E: Βρίσκουμε το αντίθετο Αν δεν υπάρχει σημείο τομής: Σε ένα εκ των P, Q η PQ θα εφάπτεται με την E Βρίσκουμε το αντίθετο Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 10 / 65

Πρόσθεση Σημείων iv Αλγεβρική αναπαράσταση Συντελεστής ευθείας PQ: m = y P y Q x P x Q Εύρεση σημείου τομής (x R, y R ) με ελλειπτική καμπύλη Επίλυση τριτοβάθμιας εξίσωσης Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 11 / 65

Πολλαπλασιασμός σημείου με ακέραιο np = P + P + + P Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 12 / 65

Double and add Υπολογισμός np Απαιτούνται n 1 προσθέσεις Λύση: Square and multiply - Double and add 17P = P + 16P 2P = P + P 4P = 2P + 2P 8P = 4P + 4P 16P = 8P + 8P Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 13 / 65

Ελλειπτικές καμπύλες στο F p Ορισμός E(F p ) E = O {y 2 = x 3 + ax + b (x, y) F 2 p, (a, b) F 2 p : 4a 3 + 27b 2 0 (mod p), (mod p)} Παράδειγμα: y 2 = x 3 x + 1 2 (mod 131) Discrete Elliptic Curve Plotter Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 14 / 65

Πρόσθεση σημείων στο F p Η ευθεία που συνδέει τα P, Q, R επαναλαμβάνεται Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 15 / 65

Η ομάδα των σημείων E(F p ) i Εύρεση τάξης ομάδας Εκθετικός αλγόριθμος Δοκιμές όλων των x {0,, p 1} για το ποια ικανοποιούν την εξίσωση της καμπύλης Το πολύ 2p + 1 σημεία (συμμετρία + ) Hasse bound p + 1 2 p E(F p ) p + 1 + 2 p Υπολογισμός Αλγόριθμος Schoof σε O(log(p)) με βελτιώσεις Elkiens, Atkin (SEA) Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 16 / 65

Η ομάδα των σημείων E(F p ) ii Κυκλικές υποομάδες Κάθε σημείο μιας καμπύλης E(F p ) παράγει μια κυκλική υποομάδα Υπολογισμός τάξης υποομάδας σημείου στην E(F p ) Θεώρημα Lagrange:Η τάξη κάθε υποομάδας διαιρεί την τάξη της ομάδας Υπολογισμός τάξης υποομάδας με σημείο βάσης (γεννήτορα) P Εύρεση τάξη ομάδας με αλγόριθμο Schoof Εύρεση των διαιρετών της τάξης, d Εύρεση min{d : dp = O} Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 17 / 65

Η ομάδα των σημείων E(F p ) iii Εύρεση σημείων βάσης Θέλουμε γεννήτορες μεγάλων υποομάδων Επιλογή τάξης υποομάδας (μεγάλος πρώτος q): q E Υπολογισμός cofactor h = E q Επιλογή τυχαίου σημείου P Υπολογισμός G = hp Αν G = O επανάληψη Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 18 / 65

Άλλα είδη καμπυλών Βελτιστοποίηση πρόσθεσης σημείων και πολλαπλασιασμού σημείου με ακέραιο Koblitz curves: y 2 + xy = x 3 + ax 2 + 1, a {0, 1} Binary curves: y 2 + xy = x 3 + x 2 + b, b Z Edwards curves: y 2 + x 2 = 1 + dx 2 y 2, d {0, 1} (προστασία από side channels) Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 19 / 65

Πρόβλημα ECDLP Δίνονται: Μία ελλειπτική καμπύλη E ορισμένη πάνω από το F p (p, a, b, #E) Μία μεγάλη υποομάδα της με τάξη q ένα σημείο βάσης G και ένα σημείο Y. Ζητείται: Να βρεθεί, αν υπάρχει, ακέραιος x τέτοιος ώστε xg = Y. Εικασία Το πρόβλημα ECDLP είναι υπολογιστικά απρόσιτο Όχι σε κάθε καμπύλη: MOV s attack (pairings) - υποεκθετικό DLP Smart s attack (#E(F p ) = p) - πολυωνυμικό DLP Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 20 / 65

Επιλογή Καμπύλης Συνέπεια: Δεν προτείνεται η παραγωγή καμπυλών, αλλά η χρήση έτοιμων Πρόβλημα: Μια καμπύλη (p, a, b, #E, q, G) - είναι ασφαλής (;) Επαληθευσιμότητα: Εγγύηση ότι δεν είναι πειραγμένη Επιλογή τυχαίου αριθμού s Υπολογισμός h = H(s) Παραγωγή των a, b, G από το h Επαληθεύσιμο, αλλιώς a, b, G από αντιστροφή της σύνοψης Αλλά: Πρέπει το s να είναι πραγματικά τυχαίο! Nothing up my sleeve Το s προέρχεται από ψηφία του π, e, αριθμών τριγωνομετρικών Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 21 / 65

Πρότυπες καμπύλες i Πρότυπο NIST FIPS186-3 15 ελλειπτικές καμπύλες. Οι πιο γνωστές: NIST P-256 ή secp256r1 y 2 = x 3 3x + b mod (2 256 2 224 + 2 192 + 2 96 1) με b =41 058 363 725 152 142 129 326 129 780 047 268 409 114 441 015 993 725 554 835 256 314 039 467 401 291 NIST P-384 y 2 = x 3 3x + b mod (2 384 2 128 2 96 + 2 32 1) με b =27 580 193 559 959 705 877 849 011 840 389 048 093 056 905 856 361 568 521 428 707 301 988 689 241 309 860 865 136 260 764 883 745 107 765 439 761 230 575 Φόβοι για υπονόμευση Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 22 / 65

Πρότυπες καμπύλες ii Χρήση στην γεννήτρια τυχαιότητας Dual_EC_DRBG (NIST) Dual_EC_DRBG Δίνεται η καμπύλη NIST P-256, γεννήτορας P, σημείο Q, seed s Θέσε r = x sp Θέσε s = x rp Θέσε t = x rq Επιστροφή LSB 16 (t) Επανάληψη με s = s Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 23 / 65

Πρότυπες καμπύλες iii Προβλήματα (Shumow - Ferguson 2007) Δεν αιτιολογείται η χρήση του Q Πολλά bits ως έξοδο τα οποία μπορούν να χρησιμοποιηθούν για την εύρεση του τελικού σημείου (2 16 έλεγχοι στην εξίσωση της καμπύλης) Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 24 / 65

Πρότυπες καμπύλες iv Πρόβλεψη των επόμενων εξόδων με βάση την σχέση Q = ep (e backdoor) Εναλλακτικά: secp256k1 (OpenSSL, Bitcoin) y 2 = x 3 + 0x + 7 mod (2 256 2 32 977) Curve25519 (OpenSSH) y 2 = x 3 + 486662 x 2 + x mod (2 255 19) Elliptic Curves - Pairings Μαθηματικό υπόβαθρο 25 / 65

Κρυπτογραφικά πρωτόκολλα

Ανταλλαγή Κλειδιού ECDH i Στόχοι Κατασκευή κοινού κλειδιού πάνω από δημόσιο κανάλι επικοινωνίας Σε EC: Το κοινό κλειδί είναι σημείο της καμπύλης Δημόσια επικοινωνία και συμφωνία σε σημείο P μιας ελλειπτικής καμπύλης E Δημόσια Διαθέσιμες Παράμετροι: (p, a, b, #E, q, G) Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 26 / 65

Ανταλλαγή Κλειδιού ECDH ii Πρωτόκολλο H Alice επιλέγει έναν ακέραιο a {1,, q 1} Υπολογίζει το ag E και το δημοσιοποιεί. Ο Bob επιλέγει έναν ακέραιο b {1,, q 1} και δημοσιοποιεί το bg E Το δημόσιο κλειδί που θα χρησιμοποιούν στη συνέχεια είναι το P = a(bg) = b(ag) E Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 27 / 65

Κρυπτογραφία Δημοσίου Κλειδιού Παραλλαγή Κρυπτοσυστήματος ElGamal Δημιουργία κλειδιών Δημόσια Διαθέσιμες Παράμετροι: (p, a, b, #E, q, G) Ιδιωτικό κλειδί: Ένας τυχαίος ακέραιος x {1,, q 1} Δημόσιο κλειδί: Το σημείο Y = xg E Κρυπτογράφηση Κωδικοποίηση μηνύματος ως σημείο P m της E Επιλέγεται ένας τυχαίος ακέραιος k {1,, q 1} Κρυπτογράφημα: Enc(Y, m) = (kg, P m + ky) Αποκρυπτογράφηση Υπολογισμός P m + ky x(kg) = P m Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 28 / 65

Πρακτικά Θέματα Κωδικοποίηση μηνύματος σε σημείο 1ος τρόπος: Hashed Elgamal Χρήση συνάρτησης H : E M Κρυπτογράφηση: Enc(Y, P m ) = (kg, m H(kY)) 2oς τρόπος Επιλογή τυχαίου x P και αντικατάσταση των bits χαμηλής τάξης του με το m Επιλογή ενός από τα δύο πιθανά σημεία της καμπύλης Αν δεν ανήκει τότε επανάληψη Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 29 / 65

Ψηφιακές Υπογραφές - ECDSA i Δημιουργία κλειδιών Δημόσια Διαθέσιμες Παράμετροι: (p, a, b, #E, q, G) Ιδιωτικό κλειδί: Ένας τυχαίος ακέραιος x {1,, q 1} Δημόσιο κλειδί: Το σημείο Y = xg E Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 30 / 65

Ψηφιακές Υπογραφές - ECDSA ii Υπογραφή Υπολογισμός σύνοψης του μηνύματος h = H(M) και προσαρμογή της στο [0,, q 1] Επιλογή τυχαίου αριθμού k στο σύνολο {1,, q 1} Υπολογισμός του σημείου P = kg = (x P, y P ). Υπολογισμός του r = x P mod q Αν r = 0 (mod q) τότε επανάληψη με καινούριο k. Υπολογισμός του s = k 1 (h + r x) mod q Αν s = 0 τότε επανάληψη με καινούριο k. Η υπογραφή είναι το ζεύγος (r, s) Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 31 / 65

Ψηφιακές Υπογραφές - ECDSA iii Επαλήθευση Υπολογισμός του u 1 = s 1 h mod q Υπολογισμός του u 2 = s 1 r mod q Υπολογισμός του σημείου P = u 1 G + u 2 Y H υπογραφή είναι έγκυρη αν r = x P (mod q) Ορθότητα: Υπολογισμός ίδιου σημείου με 2 τρόπους Υπογραφή P = kg Επαλήθευση P = u 1 G + u 2 Y P = u 1 G + u 2 Y = s 1 (h + rx)g = k(h + rx) 1 (h + rx)g = kg = P Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 32 / 65

Ψηφιακές Υπογραφές - ECDSA iv Ασφάλεια: Επιλογή διαφορετικού k ανά υπογραφή Αλλιώς: Ανάκτηση ιδιωτικού κλειδιού! Επίθεση επανάληψης τυχαιότητας Δίνονται δύο υπογραφές (r 1, s 1 )(r 2, s 2 ) Παρατήρηση: r 1 = r 2 = x kg Τότε: s 1 s 2 = k 1 (h 1 h 2 ) (mod q) Ανάκτηση k = (h 1 h 2 )(s 1 s 2 ) 1 (mod q) Ανάκτηση x = (ks 1 h 1 )r 1 Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 33 / 65

Ψηφιακές Υπογραφές - ECDSA v Sony PlayStation 3 hack (2011): Υπογραφή όλων των παιχνιδιών με ίδιο k https://xkcd.com/221/ Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 34 / 65

Schnorr Signatures i Δημιουργία κλειδιών Δημόσια Διαθέσιμες Παράμετροι: (p, a, b, #E, q, G) Ιδιωτικό κλειδί: Ένας τυχαίος ακέραιος x {1,, q 1} Δημόσιο κλειδί: Το σημείο Y = xg E Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 35 / 65

Schnorr Signatures ii Υπογραφή Μηνύματος m Επιλογή τυχαίου αριθμού k στο σύνολο {1,, q 1} Υπολογισμός του σημείου P = kg. Υπολογισμός του s = k + x H(P Y m) Η υπογραφή είναι το ζεύγος (P, s) (σημείο και τιμή) Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 36 / 65

Schnorr Signatures iii Επαλήθευση υπογραφής στο m 1, s G = P + H(P Y m) Y Verify(H, m, (P, s)) = 0, αλλιώς Ορθότητα: s G = (k + x H(P Y m)) G = kg + xg H(P Y m) = P + Y H(P Y m) Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 37 / 65

Schnorr Signatures iv Βελτίωση απόδοσης: Batch validation (ακόμα και με διαφορετικά κλειδιά) Verify(H, (m 1, P 1, s 1 ),, (m n, P n, s n )) : (s 1 + + s n ) G = P 1 + H(P 1 Y 1 m 1 ) Y 1 + + P n + H(P n Y m n ) Y n Elliptic Curves - Pairings Κρυπτογραφικά πρωτόκολλα 38 / 65

Pairing Based Cryptography

Ορισμός G 1, G 2, G T πεπερασμένες κυκλικές ομάδες Ζεύξη (pairing-bilinear map): Μία αποδοτικά υπολογίσιμη συνάρτηση e : G 1 G 2 G T 1) Διγραμμική (bilinear): e(g 1 g 2, h 1 ) = e(g 1, h 1 ) e(g 2, h 1 )και e(g 1, h 1 h 2 ) = e(g 1, h 1 ) e(g 1, h 2 ) ή ισοδύναμα e(g a, h b ) = e(g, h) ab g G 1, h G 2 a, b Z 2) Μη εκφυλισμένη (non-degenerate): Αν G = g τότε G T = e(g, g) Elliptic Curves - Pairings Pairing Based Cryptography 39 / 65

Ορισμός (2) Μπορεί και G 1 = G 2 = G Συνήθως: G 1, G 2, G E(F p ), G T F p a Συνέπεια ορισμού: Συμμετρία e(g a, g b ) = e(g, g) ab = e(g b, g a ) Pairings: ένα απλό παράδειγμα e(x, y) = 2 xy Τότε: e(a, b + c) = 2 a(b+c) και: e(a, b) e(a, c) = 2 ab 2 ac = 2 a(b+c) Διαίσθηση: πολλαπλασιασμός σε κρυπτογραφημένες τιμές Elliptic Curves - Pairings Pairing Based Cryptography 40 / 65

Ζεύξεις στην κρυπτογραφία Στο G κάποια προβλήματα είναι δύσκολα, αλλά στο G T μπορεί να είναι εύκολα Λόγω της απεικόνισης e μπορούμε να μεταβούμε αποδοτικά από την δύσκολη εκδοχή στην εύκολη Χρήσιμη ασυμμετρία για την κατασκευή κρυπτογραφικών πρωτοκόλλων Πχ: Υπογραφές: Κατασκευή υπογραφής στο G Επαλήθευση στο G T μέσω του pairing Αρνητικές συνέπειες: Κάποια προβλήματα γίνονται ευκολότερα αν όχι εύκολα Elliptic Curves - Pairings Pairing Based Cryptography 41 / 65

Το DDHP είναι εύκολο......αν υπάρχει pairing Θέλουμε να ελέγξουμε αν g c = g ab, με δεδομένα τα g a, g b, g c. Αποδοτικός υπολογισμός μέσω ζεύξης: e(g a, g b ) = e(g, g) ab Σύγκριση με το e(g, g c ) = e(g, g) c Elliptic Curves - Pairings Pairing Based Cryptography 42 / 65

Όχι όμως και το DLP......παρά την ύπαρξη pairing Αντί για εύρεση x από g, g x στην G (ελλειπτική καμπύλη) εύρεση x από e(g, g), e(g, g x ) στην G T (πεπερασμένο σώμα) Το DLP έγινε ευκολότερο (υποεκθετικοί αλγόριθμοι), όχι όμως εύκολο (MOV - attack) Επιλογή μεγαλύτερης τιμής για παράμετρο ασφάλειας Elliptic Curves - Pairings Pairing Based Cryptography 43 / 65

Διγραμμικό Πρόβλημα Απόφασης Diffie-Hellman Διαχωρίζονται στοιχεία του G T BDDHP Δίνονται: δύο στοιχεία h, g G και τα στοιχεία g α, g β, e(h, g) c. Ζητείται: Ισχύει c = αβ; Elliptic Curves - Pairings Pairing Based Cryptography 44 / 65

Είδη pairings Συμμετρικά e : G G G T (Weil pairing) Ασύμμετρα e : G 1 G 2 G T Με εύκολο DDHP στο G 1 Χωρίς εύκολο DDHP στο G 1, G 2 Tate pairing Διαφορετικές υποθέσεις ασφάλειας Elliptic Curves - Pairings Pairing Based Cryptography 45 / 65

Εφαρμογές PBC

Τριμερής ανταλλαγή κλειδιού Έστω κυκλική ομάδα με G = g Τρεις οντότητες A, B, C με ζευγάρια ιδιωτικών - δημοσίων κλειδιών (x A, y A = g x A), (x B, y B = g x B), (x C, y C = g x C). Μπορεί να συμφωνηθεί ένα κοινό κλειδί μεταξύ τους; Elliptic Curves - Pairings Εφαρμογές PBC 46 / 65

Χωρίς pairings - σε 3 γύρους 1. Ο A στέλνει το y A στον B, ο B στέλνει το y B στον C, ο C στέλνει το y C στον A (κυκλικά). 2. Ο A υπολογίζει το t A = y x A C t B = y x B A = gx Cx A, o B υπολογίζει το = gx Bx A και ο C υπολογίζει το t C = y x C B = gx Bx C 3. Ο A στέλνει το t A στον B, ο B στέλνει το t B στον C, ο C στέλνει το t C στον A (πάλι κυκλικά). 4. Όλοι υπολογίζουν το κοινό κλειδί ως εξής: Ο A με t x A C Ο B με t x B A Ο C με t x C B = gx Bx C x A = gx Cx A x B = gx Ax B x C Elliptic Curves - Pairings Εφαρμογές PBC 47 / 65

Με pairings - σε 1 γύρο (Joux-2000) Υποθέτουμε δύο ομάδες G, G με τάξη ένα πρώτο q και μία συμμετρική διγραμμική ζεύξη e : G G G T. Όλοι οι συμμετέχοντες εκπέμπουν τα δημόσια κλειδιά τους y A = g x A, y B = g x B, y C = g x C. Με την βοήθεια της ζεύξης το κοινό κλειδί μπορεί να υπολογιστεί ως εξής: e(g x B, g x C ) x A = e(g, g) x Bx C x A e(g x A, g x C ) x B = e(g, g) x Ax C x B e(g x A, g x B ) x C = e(g, g) x Ax B x C Elliptic Curves - Pairings Εφαρμογές PBC 48 / 65

Υπογραφές BLS Boneh, Lynn και Shacham 2004 Υπογραφές με βάση το DLP αλλά με μικρό μέγεθος Αντί για 2 στοιχεία, 1 στοιχείο με μέγεθος όσο η τάξη της ομάδας Elliptic Curves - Pairings Εφαρμογές PBC 49 / 65

Υπογραφές BLS - Ορισμός Δημιουργία κλειδιών: KeyGen(1 λ ) = (G, G T, e, x, y) Ομάδες (G = g, G T ) τάξης q με δύσκολο CDH e : G G G T Συνάρτηση σύνοψης: H : {0, 1} G Κλειδί υπογραφής: x R Z q Κλειδί επαλήθευσης: y = g x Υπογραφή: Υπολογισμός h = H(m) Υπολογισμός s = h x Επιστροφή s G Επαλήθευση: Υπολογισμός h = H(m) Έλεγχος e(g, s) == e(y, h) Elliptic Curves - Pairings Εφαρμογές PBC 50 / 65

Υπογραφές BLS - Ιδιότητες Ορθότητα: e(g, s) = e(g, h x ) = e(g, H(m)) x και e(y, h) = e(g x, H(m)) = e(g, H(m)) x Ασφάλεια: Ανάγεται στο CDH στην G Aggregation: Χρήστες: {(x i, y i = g x i )} n i=1, υπογραφές: {s i } n i=1 Δημιουργία κοινής υπογραφής: S = n i=1 s i Επαλήθευση: n i=1 e(y i, H(m i )) == e(g, S) Elliptic Curves - Pairings Εφαρμογές PBC 51 / 65

Identity based cryptography Signatures:Shamir 1984 Encryption:Boneh-Franklin (2001) Οποιοδήποτε όνομα κάποιου χρήστη πχ. email είναι η ταυτότητα Δεν χρειάζεται διανομή κλειδιού Χρειάζεται κεντρική TTP Παράγει τα ιδιωτικά κλειδιά από την ταυτότητα Elliptic Curves - Pairings Εφαρμογές PBC 52 / 65

Identity based signatures TTP έχει κλειδί RSA ((e, n), d) Δημιουργία ιδιωτικού κλειδιού από ταυτότητα χρήστη id Υπογραφή σύνοψης της ταυτότητας k = H(id) d mod n Ασφαλής Διανομή στον κάτοχο Υπογραφή από χρήστη id Επιλογή τυχαίου r t = r e mod n s = k r H(m t) mod n Η υπογραφή είναι (t, s) Επαλήθευση υπογραφής με την ταυτότητα: Έλεγχος αν: H(id)t H(m t) = s e Ορθότητα: H(id)t H(m t) = k e r eh(m t) = s e Elliptic Curves - Pairings Εφαρμογές PBC 53 / 65

Boneh - Franklin IBE - Δημιουργία κλειδιών Δημιουργία κλειδιών: KeyGen(1 λ ) = G, G T, e, x, y Ομάδες (G = g, G T ) τάξης q με δύσκολο CDH e : G G G T Συναρτήσεις σύνοψης: H G : {0, 1} G, H GT : G {0, 1} Ιδιωτικό κλειδί: x R Z q (TTP) Δημόσιο κλειδί: y = g x Δημιουργία ζεύγους κλειδιών για τον χρήστη ID: Υπολογισμός h = H G (ID) Δημόσιο κλειδί: y ID = h Ιδιωτικό κλειδί: x ID = y x ID Elliptic Curves - Pairings Εφαρμογές PBC 54 / 65

Boneh - Franklin IBE - Λειτουργία Κρυπτογράφηση στον χρήστη ID: Επιλογή r Z q Υπολογισμός t = e(y ID, y) r Επιστροφή: (g r, m H GT (t)) Αποκρυπτογράφηση: Έστω κρυπτοκείμενο (a, b) Αποκρυπτογράφηση ως b H GT (e(x ID, a)) Elliptic Curves - Pairings Εφαρμογές PBC 55 / 65

Boneh - Franklin IBE - Ορθότητα e(y ID, y) r = e(h, g x ) r = e(h, g) xr e(x ID, a) = e(y x ID, g r ) = e(h, g) xr b H GT (e(x ID, a)) = m H GT (e(y ID, y) r ) H GT (e(x ID, a)) = m e(h, g) xr e(h, g) xr = m Η ασφάλεια του κρυπτοσυστήματος βασίζεται στο BDDH. Elliptic Curves - Pairings Εφαρμογές PBC 56 / 65

Functional Encryption Στην παραδοσιακή κρυπτογραφία δημοσίου κλειδιού η αποκρυπτογράφηση είναι όλα ή τίποτα: Functional Encryption: Γενίκευση IBE Γενικό σχήμα TTP έχει ένα master secret key sk Για συνάρτηση f παραγωγή sk f Αποκρυπτογράφηση: c = Enc(pk, m) και sk f Λήψη f(m) Ασφάλεια: καμία άλλη γνώση για το m Elliptic Curves - Pairings Εφαρμογές PBC 57 / 65

Functional Encryption: Εφαρμογές Spam filters on encrypted mail με βάση τα κριτήρια του χρήστη (sk f παράγεται από χρήστη) Επεξεργασία σε ιατρικά δεδομένα: Απόκρυψη πληροφοριών που ταυτοποιούν τα υποκείμενα Εύκολο access control Attribute Based Encryption Predicate Based Encryption Μπορούν να γίνουν και με την παραδοσιακή κρυπτογραφία αλλά με πρόβληματα διαχείρισης πολλών κλειδιών Elliptic Curves - Pairings Εφαρμογές PBC 58 / 65

zksnarks Συνδυασμός ZK και Pairings (κά) για αποδοτική επαλήθευση υπολογισμών Εφαρμογές: Cloud computing Anonymous bitcoin (ZCash) Μοντέλο O client έχει είσοδο u (π.χ query) O server έχει ιδιωτική είσοδο w (π.χ. ΒΔ) O client θέλει να μάθει z = f(u, w) για δημόσια γνωστή f Client: ενδιαφέρεται για ορθότητα (integrity) Server: ενδιαφέρεται για διατήρησης μυστικότητας w Elliptic Curves - Pairings Εφαρμογές PBC 59 / 65

Χαρακτηριστικά zksnarks Zero Knowledge: O client (verifier V ) μαθαίνει το αποτέλεσμα και αν ο υπολογισμός έγινε σωστά (χωρις να μάθει βοηθητικά inputs του server) Succinct: Μικρή απόδειξη σε σχέση με τον υπολογισμό σταθερή απόδειξη εξαρτάται μόνο από το μέγεθος της παράμετρου ασφάλειας O λ (1) δηλ. 288 bytes χρόνος επαλήθευσης O λ ( f + u + z ) ανεξάρτητος από χρόνο εκτέλεσης f - 10msec Non Interactive:Οι αποδείξεις δημιουργούνται από τον server μόνο και είναι δημόσια επαληθεύσιμες Arguments of Knowledge Elliptic Curves - Pairings Εφαρμογές PBC 60 / 65

Γενικό σχήμα: 1. Μετατροπή ελέγχου εγκυρότητας υπολογισμού σε έλεγχο ισότητας πολυωνύμων: (Code R1CS QSP Pairings) εγκυρότητα p(x)q(x) = s(x)r(x) 2. Ο client επιλέγει μυστικό σημείο αποτίμησης: p(x 0 )q(x 0 ) = s(x 0 )r(x 0 ) 3. Ομομορφική αποτίμηση: Enc(p(x 0 ))Enc(q(x 0 )) = Enc(s(x 0 ))Enc(r(x 0 )) 4. Τυχαιότητα για ZK: Enc(k + p(x 0 ))Enc(k + q(x 0 )) = Enc(k + s(x 0 ))Enc(k r (x 0 )) Elliptic Curves - Pairings Εφαρμογές PBC 61 / 65

Ομομορφικός υπολογισμός πολυωνύμων Task Έστω Enc(x) = g x όπου g γεννήτορας και p(x) = d i=0 a ix i Μία οντότητα V με γνώση του x 0 και μία οντότητα P με γνώση του p μπορούν να υπολογίσουν το Enc(p(x 0 )) Ο V δημοσιοποιεί: Ο P υπολογίζει: i=0 Enc(x 0 0), Enc(x 1 0),, Enc(x d 0) d d Enc(x i 0) a i = Enc( a i x i 0) = Enc(p(x 0 )) i=0 Elliptic Curves - Pairings Εφαρμογές PBC 62 / 65

Pairings: Έλεγχος σωστής αποτίμησης πολυωνύμων i O V (γνωρίζει x 0 ): υπολογίζει και δημοσιοποιεί: επιλέγει παράγοντα b υπολογίζει και δημοσιοποιεί: O P που γνωρίζει το p(x): Enc(x 0 0), Enc(x 1 0),, Enc(x d 0) Enc(bx 0 0), Enc(bx 1 0),, Enc(bx d 0) υπολογίζει και δημοσιοποιεί: Enc(p(x 0 )), Enc(bp(x 0 )) Τα μυστικά b, x 0 καταστρέφονται Elliptic Curves - Pairings Εφαρμογές PBC 63 / 65

Pairings: Έλεγχος σωστής αποτίμησης πολυωνύμων ii Ο έλεγχος γίνεται ως εξής: Η συνάρτηση pairing e υπολογίζει: Παρατήρηση e(enc(p(x 0 )), Enc(b)) = e(g, g) bp(x0) e(enc(bp(x 0 )), Enc(1)) = e(g, g) bp(x0) Ομομορφική πρόσθεση Πολλαπλασιασμός από το pairing Έλεγχοι για soundness και blinding ZK Elliptic Curves - Pairings Εφαρμογές PBC 64 / 65

Βιβλιογραφία 1. Παγουρτζής, Α., Ζάχος, Ε., ΓΠ, 2015. Υπολογιστική κρυπτογραφία. [ηλεκτρ. βιβλ.] Αθήνα:Σύνδεσμος Ελληνικών Ακαδημαϊκών Βιβλιοθηκών 2. Jonathan Katz and Yehuda Lindell. Introduction to Modern Cryptography 2nd edition, Chapman and Hall/CRC, 2015 3. Neal Koblitz and Alfred J. Menezes, A riddle wrapped in an enigma 4. Jeremy Kun Introducing Elliptic Curves 5. Andrea Corbellini Elliptic Curve Cryptography: a gentle introduction 6. Dan Shumow and Niels Ferguson On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng, Crypto 2007 Rump Session 7. Antoine Joux. A one round protocol for tripartite diffie-hellman. In Algorithmic Number Theory,4th International Symposium,ANTS-IV,Leiden, The Netherlands, July 2-7, 2000, Proceedings, pages 385 394, 2000. 8. Dan Boneh, Ben Lynn, and Hovav Shacham. Short signatures from the Weil pairing. Journal of Cryptology, 17(4):297 319, 2004. ISSN 0933-2790. 9. Dan Boneh and Matthew K. Franklin. Identity-based encryption from the weil pairing. In Proceedings of the 21st Annual International Cryptology Conference on Advances in Cryptology, CRYPTO 01, pages 213 229, London, UK, UK, 2001. Springer-Verlag. ISBN 3-540-42456-3. 10. Boneh, Dan, Amit Sahai, and Brent Waters. Functional encryption: a new vision for public-key cryptography., Communications of the ACM 55, no. 11 (2012): 56-64. 11. Vitalik Buterin zksnarks: under the hood 12. Alfred Menezes An introduction to pairing based crypto 13. An introduction to pairing based crypto 14. 3rd BIU Winter School on Cryptography 2013 Elliptic Curves - Pairings Εφαρμογές PBC 65 / 65