Public Key Cryptography. Dimitris Mitropoulos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7. O κβαντικός αλγόριθμος του Shor

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

Symmetric Cryptography. Dimitris Mitropoulos

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

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

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

project RSA και Rabin-Williams

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

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

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

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

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

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

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

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

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

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

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

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

Ψευδο-τυχαιότητα. Αριθµοί και String. Μονόδροµες Συναρτήσεις 30/05/2013

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

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

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

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

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

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

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

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

Ένα Υβριδικό Μοντέλο Ανάκτησης Κλειδιού

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

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

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

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

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

1 Ψηφιακές Υπογραφές. 1.1 Η συνάρτηση RSA : Η ύψωση στην e-οστή δύναμη στο Z n. Κρυπτογραφία: Αρχές και πρωτόκολλα Διάλεξη 6. Καθηγητής Α.

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

Blum Blum Shub Generator

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων

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

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

Ασφάλεια Υπολογιστικών Συστηµάτων

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

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

Ασφάλεια Υπολογιστικών Συστημάτων

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

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ

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

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

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας

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

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

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

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

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

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

Σχεδιασμός Εικονικών Δικτύων Ενότητα 4β: VPN on IPSec (Μέρος 2ο)

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

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

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

CCA. Simple CCA-Secure Public Key Encryption from Any Non-Malleable ID-based Encryption

Hashing Attacks and Applications. Dimitris Mitropoulos

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

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

Ιόνιο Πανεπιστήμιο - Τμήμα Πληροφορικής

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

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

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

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

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

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

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

Εφαρμογές κρυπτοσυστημάτων δημοσίου κλειδιού

Εισαγωγή στην Πληροφορική

Λειτουργικά Συστήματα (ΗΥ321)

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

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

Transcript:

Public Key Cryptography Dimitris Mitropoulos dimitro@di.uoa.gr

Symmetric Cryptography Key Management Challenge K13 U1 U3 K12 K34 K23 K14 U2 K24 U4

Trusted Third Party (TTP) Bob KΒ K1 U1 KAB TTP KΑ K2 Alice U2

TTP Δημιουργία Κλειδιού Bob (KB) Alice (KA) TTP Η Alice θέλει να επικοινωνήσει με τον Bob E (KA, A, B KAB) επιλογή ενός KAB ticket = E (KB, A, B KAB) ticket

TTP Eavesdropping Security Ο αντίπαλος βλέπει: E (KA, A, B KAB), E (KA, A, B KAB)

TTP Active Attacks Δεν παρέχει ασφάλεια σε replay attacks. Ο αντίπαλος καταγράφει την παραγγελία ενός βιβλίου κατά την διάρκεια ενός session ανάμεσα στην Alice και τον (έμπορο) Bob. Ύστερα στέλνει ακριβώς τα ίδια μηνύματα και παραγγέλνει το ίδιο βιβλίο για την Alice.

TTP Παρατηρήσεις Το TTP χρειάζεται: 1. να είναι online για κάθε συναλλαγή. 2. να γνωρίζει όλα τα κλειδιά. Εαν ένας επιτιθέμενος αποκτήσει πρόσβαση στο TTP, αποκτά ταυτόχρονα πρόσβαση σε όλα τα κλειδιά. Μπορεί να χρησιμοποιηθεί εσωτερικά σε έναν οργανισμό αλλά όχι στο διαδίκτυο. Το πρωτόκολλο Kerberos βασίζεται σε αυτή την προσέγγιση.

Χρησιμοποίηση Συμμετρικού Κλειδιού Χωρίς TTP (;) Alice Bob K K Eavesdropper Προσοχή: Μιλάμε για την καταπολέμηση κάποιου που απλά παρακολουθεί το δίκτυο χωρίς να μπορεί να παρέμβει!

Merkle Puzzles Puzzles: προβλήματα που μπορούν να λυθούν με μερική προσπάθεια. Π.χ.: Έχουμε ένα συμμετρικό cipher E(k, m), με k 2 {0, 1} 128 κλειδί:. puzzle (P) = E (P, message ) όπου P = 0 96 b 1 b 32. Στόχος: να βρεθεί το P (2 32 προσπάθιες).

Merkle Puzzles (Ανταλλαγή Κλειδιού) Alice: ετοιμάζει 2 32 puzzles: Για i = 1,, 2 32 διαλέγει ένα Pi ζευγάρι xi, ki. 2 {0, 1} 128 2 {0, 1} 32 και ένα Θέτει: puzzlei < E (0 96 Pi, Puzzle # xi ki ) Στέλνει στον Βob: puzzle1,, puzzle2 32 Bob: διαλέγει τυχαία ένα puzzle και το λύνει. Αποκτά έτσι το (xi, ki). Στέλνει στην Alice το xi. Alice: βρίσκει το puzzle με αριθμό xi. Χρησιμοποιεί σαν κοινό κλειδί το ki.

Ανάκτηση Κλειδιού από τον Αντίπαλο Alice puzzle1,, puzzlen xj Bob kj kj Προετοιμασία των puzzles από την Alice: Ο(n) Λύση ενός puzzle από τον Bob: O(n) Προσπάθεια από την πλευρά του αντιπάλου για να ανακτήσει το κλειδί;

Merkle Puzzles Παρατηρήσεις Η Alice πρέπει να στείλει αρκετά gigabytes στον Bob. Ο αντίπαλος θα χρειαστεί πολυωνυμικό χρόνο για να βρει το κλειδί: Ο(n 2 ) στο παράδειγμά μας 2 64. Μπορούμε να αυξήσουμε το n αλλά μετά ζητάμε πλέον πολλά από την Alice και τον Bob. Μπορούμε να πετύχουμε κάτι καλύτερο από το O(n) - O(n 2 );

Το Πρωτόκολλο Diffie-Hellman Επιλογή ενός (αρκετά μεγάλου) πρώτου αριθμού p (π.χ. 600 ψηφία). Επιλογή ενός ακεραίου g 2 {1,...,p}. Alice επιλογή τυχαίου a από {1,, p-1} A = g a (mod p) B= g b (mod p) Bob επιλογή τυχαίου b από {1,, p-1} B a (mod p) = (g b ) a = KAB = g ab (mod p) = (g a ) b = A b (mod p)

Diffie-Hellman Security Ο αντίπαλος βλέπει: p, g, A, B. Μπορεί να υπολογίσει το g ab (mod p); Πιο γενικά: ορίζουμε την ακόλουθη συνάρτηση: DHg (g a, g b ) = g ab (mod p) Πόσο δύσκολο είναι να υπολογίσουμε την συνάρτηση αυτή;

Diffie-Hellman Security (2) Υποθέτουμε πως ο p είναι n bits. Cipher Key Size Modulus Size Elliptic Curve Size Ο πιο γνωστός αλγόριθμος για να βρει την συνάρτηση 80 bits 1024 bits 160 bits DHg, είναι ο αλγόριθμος GNFS (General Number Field Sieve). 128 bits 3072 bits 256 bits O χρόνος που χρειάζεται είναι (περίπου): exp(o( 3p n)). 256 bits 15360 bits 512 bits (μετάβαση σε ελλειπτικές καμπύλες)

Diffie-Hellman Man-in-the-Middle Alice MitM Bob A = g a a A = g a B = g b b B = g b g ab g ab, g ba g ba Ο Αντίπαλός δεν παρατηρεί πλέον αλλά παρεμβαίνει στο δίκτυο (active attack)!

Diffie-Hellman Μια Διαφορετική Οπτική Facebook g a g b g c g d Alice Bob Charlie David a b c d KAC = g ac

Diffie-Hellman Κοινή Συνομιλία Πολλών Χρηστών (;) Facebook g a g b g c g d Alice Bob Charlie David a b c d KABCD KABCD KABCD KABCD n = 2: DH n = 3: Λύση από Α. Joux (2000) n > 3: Ανοιχτό πρόβλημα

Public Key Encryption m Alice E C < Enc (PKBob, m) Bob D m PKBob Key Pair SKBob PK: Public Key SK: Secret Key

Public Key Encryption Ορισμοί Ένα σύστημα κρυπτογράφησης δημοσίου κλειδιού απαρτίζεται από μια τριπλέτα αλγορίθμων: (G, E, D) 1. Όπου G έχουμε έναν ψευδοτυχαίο αλγόριθμο που δίνει ως έξοδο ένα ζευγάρι κλειδιών (PK, SK). 2. O E(PK, m) είναι και αυτός ένας ψευδοτυχαίος αλγόριθμος που παίρνει σαν ορίσματα: το PK και ένα μήνυμα m 2 M. Eπιστρέφει ένα ciphertext c 2 C. 3. O D(SK, c) παίρνει ως είσοδο: το SK και το c δίνει πίσω το ή. Ορθότητα: 8 8m 2 M m 2 M? (PK, SK) που δίνει ο G θα πρέπει : D(SK, E(PK, m)) = m

Semantic Security (Σημασιολογική Ασφάλεια)

Indistinguishability Under Chosen- Plaintext Attack (IND-CPA) Για b = 0, 1 έχουμε δυο πειράματα EXP(0) και EXP(1): b Chal. (PK. SK) < G ( ) 2 PK m0, m1 M: m0 = m1 Adv. A c < E(PK, mb) b 2 {0, 1} EXP(b) Ένα σύστημα A: E = (G, E, D) είναι sem. secure εαν για κάθε E Adv ss [A, ] = Pr[EXP(0) = 1] - Pr[EXP(1) = 1] < αμελητέο

Public Key Encryption Εγκαθίδρυση Κοινού Κλειδιού Alice (PK, SK) < G ( ) D(SK, c) > x Alice, PK Bob, c < E(PK, x) Bob επιλογή τυχαίου x {0,1} 128 2

Public Key Encryption Security Ο αντίπαλος βλέπει: PK, E(PK, x) και θέλει τo x 2 Μ. Δεν μπορεί να ξεχωρίσει όμως το: {PK, E(PK, x), x} από το: {PK, E(PK, x), rand 2 M}

Public Key Encryption Man-in-the-Middle Alice (PK, SK) < G ( ) MitM (PK, SK ) < G ( ) Bob Alice, PK Alice, PK επιλογή τυχαίου x {0,1} 128 2 Bob, E(PK, x) Bob, E(PK, x) D(SK, c) > x Ο Αντίπαλός παρεμβαίνει στο δίκτυο (active attack)!

Malleability Ένας κρυπτογραφικός αλγόριθος είναι εύπλαστος (malleable) εάν ένας αντίπαλος μπορεί να αλλάξει το ciphertext ενός plaintext (m) σε ένα άλλο διαφορετικό το οποίο με τη σειρά του αντιστοιχεί σε ένα άλλο plaintext (f(m)) χωρίς να μάθει (και να μην τον ενδιαφέρει να μάθει) το m. "TRANSFER $0000100.00 TO ACCOUNT #199.

Απλό Σενάριο (πιθανότητα αλλοίωσης;) to: caroline@gmail body mail server Caroline PKserver SKserver Attacker

Malleability (αλλοίωση) to: caroline@gmail body mail server Caroline PKserver to: attacker@gmail body SKserver Attacker

Έχουμε Indistinguishability Under Chosen E EXP(0) και EXP(1): Ciphertext Attack (IND-CCA) = (G, E, D) με (Μ, C). Για b = 0,1 έχουμε b PK CCA phase 1: ci 2 C mi < D(SK, ci) Chal. (PK. SK) < G ( ) 2 challenge: m0, m1 M: m0 = m1 c < E(PK, mb) Adv. A CCA phase 2: ci 2 C: ci c mi < D(SK, ci) b 2 {0, 1} EXP(b)

E Το = (G, E, D) είναι sem. secure εαν για κάθε A: Advss[A, ] = Pr[EXP(0) = 1] - Pr[EXP(1) = 1] < αμελητέο E IND-CCA Παράδειγμα: Υποθέτουμε b (to: alice, body) PK (to: charlie, body) Chal. (PK. SK) < G ( ) challenge: (to:alice, 0), (to:alice, 1) c < E(PK, mb) C (to: alice, b) Adv. A CCA phase 2: c = (to: charlie, b) c m < D(SK, c ) b 2 {0, 1} EXP(b)

RSA Αναπτύχθηκε από τους Ron Rivest, Adi Shamir, και Leonard Adleman (1977). Βασίζεται στη δυσκολία παραγοντοποίησης μεγάλων αριθμών (της τάξης των 1024 με 2048 bits).

RSA Παραγωγή Κλειδιών 1. Επιλογή δυο τυχαίων (μεγάλων) πρώτων αριθμών p και q έτσι ώστε p q. 2. Υπολογισμός n = p*q. 3. Υπολογισμός συνάρτησης Euler: φ(n) = (p-1)(q-1). 4. Επιλογή ενός αριθμού e > 1 έτσι ώστε: e φ(n) 1 mod(n). 5. Υπολογισμός του d έτσι ώστε: d e -1 (mod φ(n)). Δημόσιο Κλειδί: (n, e) Ιδιωτικό Κλειδί: (n, d)

RSA Κρυπτογράφηση Αποκρυπτογράφηση Ένα κρυπτογραφημένο μήνυμα c υπολογίζεται με τον ακόλουθο τρόπο: c = m e mod(n) Για την αποκρυπτογράφηση: m = c d mod(n)

RSA Διανομή Κλειδιών Η Alice στέλνει στον Bob το δημόσιο κλειδί της (n, e) μέσα από ένα αξιόπιστο αλλά όχι απαραίτητα κρυφό μονοπάτι.

RSA Παρατηρήσεις Ένα plaintext m είναι κρυπτογραφημένο: E(m) = m e mod n όπου (e,n) είναι το δημόσιο κλειδί. Δεδομένου του ciphertext, ο αντίπαλος μπορεί να κρυπτογραφήσει το mt για κάθε t: E(m)*t e mod n = (mt) e mod n = E(mt) hint: είναι ο RSA CCA-secure με αυτήν την μορφή;

Βιβλιογραφία Jonathan Katz and Yehuda Lindell. Introduction to Modern Cryptography. Chapman and Hall/CRC; 1 edition (August 31, 2007). ISBN-10: 1584885513. R. J. Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems. John Wiley & Sons, Inc., New York, NY, USA, 2001. ISBN 0471389226. B. Clifford Neuman; Theodore Ts'o. "Kerberos: An Authentication Service for Computer Networks". IEEE Communications. 32 (9): 33 8. September 1994. R.C. Merkle. Secure Communications Over Insecure Channels. Communications of the ACM, Vol. 21, No. 4, pp. 294-299, April 1978. Barak B., Mahmoody-Ghidary M. (2009) Merkle Puzzles Are Optimal An O(n2)-Query Attack on Any Key Exchange from a Random Oracle. In Advances in Cryptology - CRYPTO 2009. Lecture Notes in Computer Science, volume 5677. Springer. Antoine Joux. A One Round Protocol for Tripartite Diffie-Hellman. In Proceedings of the 4th International Symposium on Algorithmic Number Theory. Springer-Verlag, London, UK, 385-394. 2000. Rivest, R.; Shamir, A.; Adleman, L. (February 1978). "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems". Communications of the ACM. 21 (2): 120 126.