Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει...

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

Transcript of Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει...

Page 1: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Παύλος Εφραιμίδης

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 1

Page 2: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Fair CoinFair CoinMillionaires ProblemBlind SignaturesgOblivious SignaturesSimultaneous Contract SigningSimultaneous Exchange of Secretsπροηγμένα κρυπτογραφικά πρωτόκολλα

El t i El ti◦ Electronic Elections◦ Digital Cash◦ Πρωτόκολλα Μηδενικής Γνώσηςρ η ής ης

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 2

Page 3: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

χρήστης

κρυπτογραφικές υπηρεσίες

(εμπιστευτικότητα, ακεραιότητα, κτλ.)

κρυπτογραφικά πρωτόκολλακρυπτογραφικά πρωτόκολλα(υπογραφή, μεταφορά κλειδιών κτλ.)

κρυπτογραφικές πράξειςκρυπτογραφικές πράξεις(κρυπτογράφηση, αποκρυπτογράφηση, σύνοψη κτλ.)

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 3

Page 4: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 4

Page 5: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Αλίκη προς Μπάμπη: Διάλεξε έναν αριθμό απόΑλίκη προς Μπάμπη: Διάλεξε έναν αριθμό από το 1 μέχρι το 2Μπάμπης: 2ςΑλίκη: Έχασες ! Ήταν το 1!Αλίκη: Πάμε ξανά. Διάλεξε έναν αριθμό από το 1 έ 21 μέχρι το 2Μπάμπης: 1Αλίκη: Έχασες ξανά το 2 ήταν !Αλίκη: Έχασες ξανά, το 2 ήταν !Μπάμπης: ’ #∗ * ’

Να εμπιστευτεί ο Μπάμπης την Αλίκη;

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 5

Page 6: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

το πρόβλημα του bit commitment (δέσμευσητο πρόβλημα του bit commitment (δέσμευση bit):◦ δεσμευόμαστε σε μια τιμή την οποία μπορούμε◦ δεσμευόμαστε σε μια τιμή την οποία μπορούμε να αποκαλύψουμε αργότεραμπορεί να υλοποιηθεί με διάφορουςμπορεί να υλοποιηθεί με διάφορους τρόπους, όπως:◦ με χρήση συμμετρικής κρυπτογραφίαςμ χρή η μμ ρ ής ρ γρ φ ς◦ με συναρτήσεις μιας κατεύθυνσης◦ με γεννήτριες ψευδο-τυχαίων αριθμών

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 6

Page 7: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ΔΕΣΜΕΥΣΗΔΕΣΜΕΥΣΗ◦ βήμα 1: o Μπάμπης

δημιουργεί ένα τυχαίο bit-string Rδημιουργεί ένα τυχαίο bit string R στέλνει το R στην Αλίκη

◦ βήμα 2: η Αλίκηεπιλέγει το bit b στο οποίο θα δεσμευτείδημιουργεί ένα τυχαίο κλειδί Κδ ί έ ή (R b)δημιουργεί ένα μήνυμα (R, b)δημιουργεί το κρυπτογραφημένο μήνυμα ΕΚ(R,b)στέλνει το Ε (R b) στον Μπάμπηστέλνει το ΕΚ(R,b) στον Μπάμπη

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 7

Page 8: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ΑΠΟΚΑΛΥΨΗΑΠΟΚΑΛΥΨΗ◦ βήμα 3:

η Αλίκη στέλνει το κλειδί Κ στον Μπάμπηη Αλίκη στέλνει το κλειδί Κ στον Μπάμπη◦ βήμα 4: ο Μπάμπης

αποκρυπτογραφεί το μήνυμαεπιβεβαιώνει το τυχαίο bit-string R

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 8

Page 9: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ΔΕΣΜΕΥΣΗ◦ βήμα 1:

b είναι το bit για το οποίο δεσμεύεται η Αλίκηη Αλίκη δημιουργεί 2 τυχαία string R1 R2η Αλίκη δημιουργεί 2 τυχαία string R1, R2

◦ βήμα 2:η Αλίκη δημιουργεί ένα μήνυμα με βάση τα R1, R2, b

βήμα 3:◦ βήμα 3:η Αλίκη εφαρμόζει τη συνάρτηση μιας κατεύθυνσης στο μήνυμα και το στέλνει στον Μπάμπη H(R1,R2,b) Επίσης στέλνει το R1Επίσης στέλνει το R1

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 9

Page 10: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ΑΠΟΚΑΛΥΨΗΑΠΟΚΑΛΥΨΗ◦ βήμα 4:

η Αλίκη στέλνει το αυθεντικό μήνυμα (R1 R2 b)η Αλίκη στέλνει το αυθεντικό μήνυμα (R1, R2, b)◦ βήμα 5:

ο Μπάμπης επεξεργάζεται τα δεδομέναης ξ ργ ζεπαληθεύει το R1εφαρμόζει τη συνάρτηση μιας κατεύθυνσης

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 10

Page 11: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ΔΕΣΜΕΥΣΗ◦ βήμα 1: ο Μπάμπης

δημιουργεί ένα τυχαίο αριθμό RBστέλνει τον R στην Αλίκηστέλνει τον RB στην Αλίκη

◦ βήμα 2: η Αλίκηδημιουργεί ένα τυχαίο seed για μια γεννήτρια ψευδο-τυχαίων αριθμών “random”τυχαίων αριθμών randomγια κάθε bit b του RB η Αλίκη:δημιουργεί ένα τυχαίο bit r με τη “random”εάν b = 0: στέλνει το τυχαίο bit r στον Μπάμπηεάν b = 0: στέλνει το τυχαίο bit r στον Μπάμπηεάν b = 1: στέλνει το r XOR b στον Μπάμπη

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 11

Page 12: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ΑΠΟΚΑΛΥΨΗΑΠΟΚΑΛΥΨΗ◦ βήμα 4:

η Αλίκη στέλνει το seed στον Μπάμπηη Αλίκη στέλνει το seed στον Μπάμπη◦ βήμα 5:

ο Μπάμπης εκτελεί (ουσιαστικά επαναλαμβάνει) το ης ββήμα 2 και επαληθεύει ότι η Αλίκη ακολούθησε το πρωτόκολλο

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 12

Page 13: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 13

Page 14: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

η Αλίκη ◦ υλοποίησε ένα δικτυακό τάβλι και ◦ παίζει μια παρτίδα με τον Μπάμπη μέσω του διαδικτύουη ρίψη ζαριάς: γίνεται υπολογιστικά στην πλευρά της Αλίκης

μια παρτίδα:◦ ο Μπάμπης «ρίχνει» ζαριά: 1-2

Αλί ί ζ ά 6 5◦ η Αλίκη «ρίχνει» ζαριά: 6-5◦ ο Μπάμπης: 1-1◦ η Αλίκη: 5-5◦ ο Μπάμπης: 3-1◦ ο Μπάμπης: 3-1◦ η Αλίκη: 6-6◦ ο Μπάμπης: 1-2◦ ο Μπάμπης: ’ #∗ * ’μ ης #

Να εμπιστευτεί ο Μπάμπης τις ζαριές που ρίχνει το ηλεκτρονικό τάβλι;

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 14

Page 15: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

η Αλίκη και ο Μπάμπης θέλουνη Αλίκη και ο Μπάμπης θέλουν επικοινωνώντας δικτυακά να ρίξουν τυχαία ένα δίκαιο κέρματυχαία ένα δίκαιο κέρμαυπάρχουν αρκετές λύσεις για το πρόβλημα:◦ με δέσμευση bitμε δέσμευση bit◦ με συναρτήσεις μιας κατεύθυνσης◦ με κρυπτογραφία δημοσίου κλειδιούρ γρ φ η

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 15

Page 16: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

βήμα 1: η Αλίκη δεσμεύεται σε 1 bitβήμα 1: η Αλίκη δεσμεύεται σε 1 bitβήμα 2: ο Μπάμπης προσπαθεί να το μαντέψειμαντέψει βήμα 3: η Αλίκη αποκαλύπτει το bitαποτέλεσμα: εάν η Αλίκη και ο Μπάμπης μ η η μ ηςδιαλέξανε την ίδια τιμή για το bit θεωρούμε ότι το κέρμα είναι κορώνα, δ φ ά ί άδιαφορετικά είναι γράμματα

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 16

Page 17: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ένα πρωτόκολλο δίκαιης ρίψης κέρματοςένα πρωτόκολλο δίκαιης ρίψης κέρματος θα πρέπει να έχει τις παρακάτω ιδιότητες:◦ η Αλίκη πρέπει να ρίξει το κέρμα προτού◦ η Αλίκη πρέπει να ρίξει το κέρμα προτού μαντέψει ο Μπάμπης◦ η Αλίκη θα πρέπει να μην μπορεί να ξαναρίξει το η η ρ η ρ ξ ρ ξκέρμα αφού της αποκαλυφθεί η επιλογή του ΜπάμπηΜ ά θ έ ί άθ◦ ο Μπάμπης θα πρέπει να μην μπορεί να μάθει το

αποτέλεσμα της ρίψης κέρματος προτού μαντέψει ο ίδιοςμαντέψει ο ίδιος

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 17

Page 18: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

η Αλίκη και ο Μπάμπης συμφωνούν σε μιαη Αλίκη και ο Μπάμπης συμφωνούν σε μια συνάρτηση μιας κατεύθυνσης f()βήμα 1: η Αλίκη επιλέγει ένα τυχαίο αριθμό xκαι υπολογίζει το y f(x)και υπολογίζει το y=f(x)βήμα 2: η Αλίκη στέλνει το y στον Μπάμπηβήμα 3: ο Μπάμπης μαντεύει εάν ο αριθμός x βήμ μ ης μ ρ μ ςείναι άρτιος ή περιττός και στέλνει την επιλογή του στην Αλίκηβήμα 4: εάν ο Μπάμπης μάντεψε σωστά τοβήμα 4: εάν ο Μπάμπης μάντεψε σωστά το αποτέλεσμα είναι «κορώνα», διαφορετικά είναι «γράμματα» - η Αλίκη ανακοινώνει το αποτέλεσμα στον Μπάμπηαποτέλεσμα στον Μπάμπηβήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x)

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 18

Page 19: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

1. η Αλίκη και ο Μπάμπης δημιουργούν από ένα ζεύγος κλειδιώνένα ζεύγος κλειδιών

2. η Αλίκη δημιουργεί 2 μηνύματα, το ένα υποδηλώνει Κεφαλή και το άλλο Γράμματα

ά ύ έ3. τα παραπάνω μηνύματα περιέχουν και κάποιο τυχαίο string ώστε να μπορεί ναεπαληθεύσει την αυθεντικότητά τουςη η η ς

4. η Αλίκη κρυπτογραφεί τα 2 μηνύματα με το δημόσιο κλειδί της και τα στέλνει με τυχαία σειρά στον Μπάμπησειρά στον Μπάμπη

5. ο Μπάμπης δεν μπορεί να τα διαβάσει και επιλέγει ένα στην τύχη και το κρυπτογραφείμε το δικό του δημόσιο κλειδί και το στέλνειμε το δικό του δημόσιο κλειδί και το στέλνειστην Αλίκη

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 19

Page 20: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

6. η Αλίκη δεν μπορεί να δει το περιεχόμενο του μηνύματος και εφαρμόζει το κρυφό της μη μ ς φ ρμ ζ ρ φ ηςκλειδί και το επιστρέφει στον Μπάμπη

7. ο Μπάμπης εφαρμόζει το δικό του κρυφό κλειδί και βλέπει το αποτέλεσμα και τοκλειδί και βλέπει το αποτέλεσμα και το στέλνει στην Αλίκη

8. η Αλίκη βλέπει το αποτέλεσμα μαζί με το τυχαίο string και το επαληθεύειτυχαίο string και το επαληθεύει

9. η Αλίκη και ο Μπάμπης αποκαλύπτουν τα ζεύγη των κλειδιών τους

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 20

Page 21: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 21

Page 22: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

κάθε παίκτης παίρνει 5 χαρτιάμπορεί να ανταλλάξει από κανένα έως όλα ταμπορεί να ανταλλάξει από κανένα έως όλα τα χαρτιά με νέα, τυχαία, χαρτιάσυνδυασμοί:

R l Fl h A K Q J 10 ll i◦ Royal Flush: A-K-Q-J-10, all same suit ◦ Straight Flush: any five consecutive cards, all same suit ◦ Four-of-a-Kind: four cards, same value (eg. four 7's)

F ll H Th f Ki d d P i◦ Full House: Three-of-a-Kind and a Pair ◦ Flush: any five cards of the same suit ◦ Straight: any five consecutive cards

Th f Ki d th d l◦ Three-of-a-Kind: three cards, same value ◦ Two Pair ◦ Pair

No Pair fi e dissimilar cards mi ed s it◦ No Pair: five dissimilar cards, mixed suit

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 22

Page 23: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Τρεις παίκτες: Αλίκη, Μπάμπης και Κάρολος1. κάθε παίκτης δημιουργεί ένα ζεύγος

κλειδιών RSA2. η Αλίκη δημιουργεί 52 ειδικά μηνύματα – ένα

για κάθε χαρτί της τράπουλας. Τα κρυπτογραφεί με το δημόσιο κλειδί της PA και

έλ Μ ά E (M )τα στέλνει στον Μπάμπη: EA(Mn)3. ο Μπάμπης επιλέγει 5 και τα κρυπτογραφεί

E (E (M )) έλ ΑλίEM(EA(Mn)) και τα στέλνει στην Αλίκη4. ο Μπάμπης στέλνει τα υπόλοιπα 47 στον

Κά λ E (M )Κάρολο EA(Mn)

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 23

Page 24: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

ά λ λέ ό5. ο Κάρολος επιλέγει 5 από τα 47, τα κρυπτογραφεί EΚ(EA(Mn)) και τα στέλνει στην Αλίκηη

6. η Αλίκη αποκρυπτογραφεί τα μηνύματα που έλαβε και τα στέλνει τα καθένα σε αυτό που το επέλεξεεπέλεξε

7. ο Μπάμπης και ο Κάρολος αποκρυπτογραφούν τα μηνύματά τους και βλέπουν τα χαρτιά που έχουν επιλέξειέχουν επιλέξειDA(EΜ(EA(Mn))) → EΜ(Mn) και DA(EΚ(EA(Mn))) → EΚ(Mn)

8. ο Κάρολος επιλέγει 5 τυχαία από τα 42 που έ ί έλ λίέχουν απομείνει και τα στέλνει στην Αλίκη

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 24

Page 25: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

λί φ ί ά9. η Αλίκη αποκρυπτογραφεί τα 5 χαρτιά της10. στο τέλος όλοι εμφανίζουν τα χαρτιά τους και

τα κλειδιά τους ώστε να επιβεβαιωθεί ότι δεντα κλειδιά τους ώστε να επιβεβαιωθεί ότι δεν έγινε παράβαση

το παραπάνω πρωτόκολλο είναι μιατο παραπάνω πρωτόκολλο είναι μια αξιοπρεπής λύση που όμως έχει κάποιες αδυναμίες ά λ λ έ (υπάρχουν πιο ολοκληρωμένες (και πιο

πολύπλοκες) λύσεις για τέτοιου είδους προβλήματα

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 25

Page 26: Παύλος Εφραιμίδης - Euclid...`βήμα 5: ο Μπάμπης επαληθεύει ότι y=f(x) Κρυπτογραφικά Πρωτόκολλα Ασφ Υπολ Συστ

Κεφάλαια 4, 5 και 6, Applied Cryptography, φ , , pp yp g p y,Bruce Schneier, Second Edition, Wiley, 1996Κεφάλαιο 9, τεχνικές κρυπτογραφίας & φ , χ ς ρ γρ φ ςκρυπτανάλυσης, Κάτος, Στεφανίδης, 2003

Ασφ Υπολ ΣυστΚρυπτογραφικά Πρωτόκολλα 26