ΠΜΣ36 Ασφάλεια Πληροφοριακών Συστημάτων Αν. Καθ. Π. Γεωργιάδης Δρ. Μαριάς Ιωάννης

Download Report

Transcript ΠΜΣ36 Ασφάλεια Πληροφοριακών Συστημάτων Αν. Καθ. Π. Γεωργιάδης Δρ. Μαριάς Ιωάννης

ΠΜΣ36
Ασφάλεια Πληροφοριακών Συστημάτων
Αν. Καθ. Π. Γεωργιάδης
Δρ. Μαριάς Ιωάννης
Υπ. Δρ. Παπαπαναγιώτου Κωνσταντίνος
30/05/07
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
1
Συναρτήσεις Σύνοψης
Χαρακτηριστικά
Αναφέρονται και ως Συναρτήσεις Κατακερματισμού
 Απεικονίζουν ένα μήνυμα αυθαίρετου μήκους (pre-image) σε ένα
σταθερό αριθμό bits
To αποτέλεσμα της διαδικασίας ονομάζεται αποτύπωμα, ή hash
value, message digest ή fingerprint
Αλγόριθμοι:
 MD5 (Message Digest 5, Rivest 1991)
 SHA-1 (Secure Hash Algorithm 1, NIST 1994)
 RIPEMD (RACE Integrity Primitives Evaluation Message
Digest, Europe RACE Framework, 1996)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
2
Συναρτήσεις Σύνοψης
Χαρακτηριστικά
Μία συνάρτηση σύνοψης H(x) παράγει αποτύπωμα h (digital
fingerprints) αρχείου x ή μηνύματος (M) ή άλλης μορφής δεδομένων με
τις εξής προϋποθέσεις
1.
Μπορεί να εφαρμοστεί σε τμήμα δεδομένων οποιουδήποτε μεγέθους
2.
Παράγει έξοδο (σύνοψη h) σταθερού μικρού μήκους
3.
Εύκολα υπολογίσιμη για δοθέν x ή M
4.
Για δοθέν σύνοψη h πρέπει να είναι υπολογιστικά ανέφικτο να βρεθεί x τέτοιο
ώστε H(x)=h
5.
Πρέπει να είναι υπολογιστικά ανέφικτο να βρεθεί ζεύγος (x,y) τέτοιο ώστε
H(x)=H(y)
Η σύνοψη H(x) μπορεί αποστέλλεται μαζί με το μήνυμα Μ
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
3
Συναρτήσεις Σύνοψης
Χαρακτηριστικά
Η συνάντηση σύνοψης H(x) αντιστοιχεί strings αυθαίρετα μεγάλου (αλλά
σταθερού) μήκους σε ορισμένου και σταθερού μήκους strings των n bits.
Για πεδία ορισμού D και τιμών R
H: D  R, |D| > |R|
Η H(x) είναι many-to-one. Ύπαρξη collisions (inputs με ταυτόσημα
digests)
Περιορίζοντας την H(x) σε πεδίο ορισμού των t-bit (t>n),
αν η H(x) είναι “random” (όλα τα digests είναι πιθανοτικά ισοδύναμα),
τότε μέχρι 2t-n inputs αντιστοιχίζονται σε ένα digest,
δύο τυχαία επιλεγμένα inputs παράγουν το ίδιο digest με πιθανότητα 2-n
(independent of t ).
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
4
Συναρτήσεις Σύνοψης
Σημαντικότερες Ιδιότητες
Μονόδρομες (One Way)
 Γνωρίζοντας το αποτύπωμα (hash value) δεν μπορούμε να
υπολογίσουμε το αρχικό μήνυμα ή κείμενο (pre-image)
Υπολογιστικά Ελεύθερες Συγκρούσεων (Collision-free)
 Δεν μπορούν να βρεθούν δύο διαφορετικά αρχικά μηνύματα (preimages) που να δημιουργούν το ίδιο αποτύπωμα (hash value)
00101011001
11000100110
………………
11001001000
Hash
0010011000110
Function
hash value
pre-image
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
5
Συναρτήσεις Σύνοψης
Αλγόριθμοι Κατακερματισμού
MD5 (Rivest, 1991)
 Είσοδο ένα μήνυμα αυθαιρέτου μήκους και παράγει αποτύπωμα των 128-bit
 Πιο αργός από τον SHA-1
 Με ασφάλεια που αμφισβητείται έντονα
SHA-1, NIST (1994)
 Είσοδο ένα μήνυμα μεγέθους έως 264 bit και παράγει αποτύπωμα των 160-bit
 Εφαρμογές: TLS, SSL, PGP, SSH, S/MIME, και IPSec.
 Τέσσερις εκδόσεις με μεγαλύτερο αποτύπωμα: SHA-224, SHA-256, SHA-384,
και SHA-512 (αναφέρονται και ως SHA-2)
RIPEMD-160
 Παράγει message digest 160-bit σε δεκα-εξαδική μορφή
 Ασφαλέστερος από τον MD5
 Υπάρχουν εκδόσεις με μεγαλύτερο αποτύπωμα (128, 256 and 320-bit versions)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
6
Συναρτήσεις Σύνοψης
Αλγόριθμοι Κατακερματισμού – SHA-1
Αντιστοιχεί bitstrings με bitlength <264 σε 16-bit digests
Τυποποιήσεις
FIPS PUB 180-2, Secure Hash Standard (including SHA-1, SHA-256, …)
RFC 3174, US Secure Hash Algorithm 1 (SHA1)
Παραδείγματα SHA-1 hash σε 43-byte ASCII είσοδο:
SHA1("The quick brown fox jumps over the lazy dog") =
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
Μικρή αλλαγή (d to c):
SHA1("The quick brown fox jumps over the lazy cog") =
de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3
Το zero-length string
SΗΑ1("") =
da39a3ee5e6b4b0d3255bfef95601890afd80709
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
7
Συναρτήσεις Σύνοψης
Συναρτήσεις Σύνοψης και Αυθεντικοποίηση
ΜΥΝΗΜΑ
SΑΒ
ΜΥΝΗΜΑ
ΜΥΝΗΜΑ
SΑΒ
MD΄M
H
Σύγκριση
H
MDM
MDM
A, B: άκρα επικοινωνίας
SΑΒ: μυστική τιμή (π.χ., password, ημερομηνία γέννησης)
Μ: Μήνυμα που θέλει να στείλει ο Α σε Β
Αποστολέας Α
Παραλήπτης B
Παράγει MDM= H (SAB || M)
Αποστέλλει Μ και MDM στον B
Λαμβάνει M και MDM
Υπολογίζει MD΄M= H (SAB || M)
Συγκρίνει MD΄M και MDM
Αν ίσα τότε ακεραιότητα Μ και
αυθεντικοποίηση αποστολής από Α
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
8
Κρυπτογραφία Δημοσίου Κλειδιού
Εισαγωγικά Στοιχεία
Σε ένα σχήμα κρυπτογραφίας public-key encryption για κάθε ζεύγος
encryption/ decryption (e, d), το κλειδί e (public key) γίνεται δημόσια
διαθέσιμο, ενώ το κλειδί d (private key) διατηρείται μυστικό.
Για ένα τέτοιο σχήμα πρέπει να είναι υπολογιστικά ανέφικτο να
προσδιοριστεί το d γνωρίζοντας μόνο το e !!!
«Επινοήθηκε» από τους Diffie και Hellman το 1976
Πρώτο σχήμα Δημοσίων Κλειδιών: RSA από Rivest, Shamir, Adleman
(1978, MIT)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
9
Κρυπτογραφία Δημοσίου Κλειδιού
Εισαγωγικά Στοιχεία
Σημαντικές διαφορές σε σχέση με τη συμμετρική κρυπτογραφία, ωστόσο:
α) δεν την αντικατέστησε
β) δεν είναι περισσότερο ούτε λιγότερο ασφαλής σε κρυπτανάλυση από
γ) η διανομή των κλειδιών είναι περισσότερο τετριμμένη, αλλά όχι
απλούστερη
δ) Η διαχείριση κλειδιών γίνεται δυσκολότερη
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
10
Κρυπτογραφία Δημοσίου Κλειδιού
Συστατικά Κρυπτογραφίας Δημοσίου Κλειδιού
Αρχικό κείμενο ή πρωτογενές
μήνυμα (plaintext)
Αλγόριθμος κρυπτογράφησης
(encryption algorithm)
Δημόσιο και Ιδιωτικό κλειδί
(public/private key)
Κρυπτογράφημα ή
κρυπτογραφημένο κείμενο
(ciphertext)
Αλγόριθμος αποκρυπτογράφησης
(decryption algorithm)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
11
Κρυπτογραφία Δημοσίου Κλειδιού
Γιάνν ης
Άννα
Προς Άννα
Σας πληροφορώ
Γιάνν ης
Κρυπτογράφηση
Ptreqwddcfadfrp
CdxerAcsddd
fhGKHfalopenfit
Προς Άννα
Πρωτογενές
Μήνυμα
Πρωτογενές
Μήνυμα
Δημόσιο
κλειδί
Άννας
Ιδιωτ ικό
κλειδί
Άννας
Κρυπτογραφημένο
Μήνυμα
Σας πληροφορώ
Γιάνν ης
Αποκρυπτογράφηση
Κρυπτογραφημένο
Μήνυμα
Ptreqwddcfadfrp
CdxerAcsddd
fhGKHfalopenfit
Δίκτυο Επικοινωνίας
1) Κρυπτογραφία
Δημόσιο κλειδί παραλήπτη
Ιδιωτικό κλειδί παραλήπτη
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
12
Κρυπτογραφία Δημοσίου Κλειδιού
Γιάνν ης
Άννα
Προς Άννα
Σας πληροφορώ
Γιάνν ης
Κρυπτογράφηση
Ptreqwddcfadfrp
CdxerAcsddd
fhGKHfalopenfit
Προς Άννα
Πρωτογενές
Μήνυμα
Πρωτογενές
Μήνυμα
Ιδιωτ ικό
κλειδί
Γιάνν η
Δημόσιο
κλειδί
Γιάνν η
Κρυπτογραφημένο
Μήνυμα
Σας πληροφορώ
Γιάνν ης
Αποκρυπτογράφηση
Κρυπτογραφημένο
Μήνυμα
Ptreqwddcfadfrp
CdxerAcsddd
fhGKHfalopenfit
Δίκτυο Επικοινωνίας
2) Αυθεντικοποίηση ή Ψηφιακή Υπογραφή
Ιδιωτικό κλειδί αποστολέα
Δημόσιο κλειδί αποστολέα
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
13
Κρυπτογραφία Δημοσίου Κλειδιού
«Υπηρεσίες» Κρυπτογραφίας Δημοσίου Κλειδιού
Κρυπτογράφηση/αποκρυπτογράφηση
Ο αποστολέας κρυπτογραφεί το plaintext με το δημόσιο κλειδί του
παραλήπτη. Ο παραλήπτης αποκρυπτογραφεί το ciphertext με το ιδιωτικό
του κλειδί, που μόνο αυτός κατέχει. Εμπιστευτικότητα, ακεραιότητα
Ψηφιακή Υπογραφή
Ο αποστολέας κρυπτογραφεί (ή υπογράφει) το plaintext με το ιδιωτικό
του κλειδί, που μόνο αυτός κατέχει. Ο παραλήπτης αποκρυπτογραφεί το
ciphertext με το δημόσιο κλειδί του αποστολέα. Αυθεντικοποίηση
Ανταλλαγή Κλειδιών
Οι δύο πλευρές συνεργάζονται για να ανταλλάξουν ένα κλειδί συνόδου.
Υφίστανται αρκετές προτάσεις, που εμπλέκουν το ή τα ιδιωτικά κλειδιά.
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
14
Κρυπτογραφία Δημοσίου Κλειδιού
«Υπηρεσίες» Κρυπτογραφίας Δημοσίου Κλειδιού
Κρυπτογράφηση/
αποκρυπτογράφηση
Ψηφιακή
Υπογραφή
Ανταλλαγή Κλειδιών
Diffie-Hellman
-
-
V
RSA
V
V
V
DSS (DSA)
-
V
-
Elliptic Curve
V
V
V
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
15
Κρυπτογραφία Δημοσίου Κλειδιού
Αυθεντικοποίηση ή Ψηφιακή Υπογραφή με Σύνοψη
Κρυπτογράφηση: Ιδιωτικό κλειδί αποστολέα
Αποκρυπτογράφηση: Δημόσιο κλειδί αποστολέα
Αποστολέας, Α
Παραλήπτης, Π
1
5
6
2
5
7α
7
7α
Σύνοψη
3
4
8α
8α
1778909
Κ ΙΑ
ΚΔΑ
Σύνοψη
9α
9α
1778909
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
Σύγκριση
1778909
16
Κρυπτογραφία Δημοσίου Κλειδιού
Απαιτήσεις Κρυπτογραφίας Δημοσίου Κλειδιού
1. Είναι υπολογιστικά εφικτό για ένα μέρος Β να παράγει ένα ζεύγος κλειδιών (public
key eb, private key db)
2. Είναι υπολογιστικά εφικτό για έναν αποστολέα Α, που γνωρίζει το δημόσιο κλειδί του
Β και το plaintext Μ να δημιουργήσει το αντίστοιχο ciphertext: C= eb(M)
3. Είναι υπολογιστικά εφικτό για έναν παραλήπτη B, που γνωρίζει το ιδιωτικό του κλειδί
και λαμβάνει το ciphertext C να ανακτήσει το αρχικό κείμενο M:
Μ=db(C)=db(eb(M))
4. Είναι υπολογιστικά ανέφικτο γνωρίζοντας μόνο το δημόσιο κλειδί ed να
προσδιοριστεί το ιδιωτικό κλειδί db
5. Είναι υπολογιστικά ανέφικτο γνωρίζοντας το δημόσιο κλειδί ed και το ciphertext C να
προσδιοριστεί το αρχικό μήνυμα M
6. Οποιοδήποτε από τα δύο κλειδιά μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση
και το άλλο για την αποκρυπτογράφηση, ήτοι Μ=db(eb(M))=eb(db(M))
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
17
Κρυπτογραφία Δημοσίου Κλειδιού
Αλγόριθμος RSA
 Είναι block cipher
 To plaintext Μ και το ciphertext C είναι ακέραιοι αριθμοί, με τιμές μεταξύ
0 και n-1, για μεγάλο n
 Συμβολισμοί

Κρυπτογράφηση
C=Me mod n

Αποκρυπτογράφηση
Μ=Cd mod n
 Τόσο ο αποστολέας όσο και ο παραλήπτης πρέπει να γνωρίζουν τις τιμές
των e και n.
 Αντιθέτως, την τιμή d πρέπει να τη γνωρίζει μόνο ο παραλήπτης.
 Πρόκειται για σχήμα με δημόσιο κλειδί {e,n} και ιδιωτικό κλειδί {d}
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
18
Κρυπτογραφία Δημοσίου Κλειδιού
Αλγόριθμος RSA
Παραγωγή Κλειδιού
e, φ(n): relatively
prime
Επέλεξε πρώτους, μεγάλους,
διαφορετικούς, αριθμούς
p, q
Υπολόγισε n:
n=pxq
Υπολόγισε φ(n):
φ(n)=(p-1) x (q-1)
Επέλεξε ακέραιο e (1<e<φ(n)):
gcd(φ(n), e) = 1
Υπολόγισε d:
d=e-1mod(φ(n))
Δημόσιο κλειδί
{e,n}
Ιδιωτικό κλειδί
{d}
Κρυπτογράφηση
Συνάρτηση
Euler
Χρήση Εκτ. Αλγ.
Ευκλείδη unique d
Αποκρυπτογράφηση
Αρχικό κείμενο
Μ<n
Κρυπτογράφημα
C
Κρυπτογράφημα
C=Me mod n
Αρχικό κείμενο
M=Cd mod n
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
19
Κρυπτογραφία Δημοσίου Κλειδιού
Αλγόριθμος RSA
Παραγωγή Κλειδιού
Επέλεξε πρώτους, μεγάλους,
διαφορετικούς, τυχαίους, αριθμούς
p, q
p = 7, q = 17
Υπολόγισε n < Μ:
n=pxq
n = 119
Υπολόγισε φ(n):
φ(n)=(p-1) x (q-1)
φ(n) = 96
Επέλεξε ακέραιο e (1<e<φ(n)):
gcd(φ(n), e) = 1
e=5
Υπολόγισε d:
d=e-1mod(φ(n))
d = 77
Έστω M = 19
Συνάρτηση
Euler
Χρήση Εκτ. Αλγόριθμου
Ευκλείδη unique d
Δυαδική-πολλαπλασιαστική
εκθετοποίηση
Αποστολέας, encryption
C = M mod n =
Παραλήπτης, decryption
M= C d mod n = 66 77 mod 119 = 19
ΠΜΣ 36 / 2007
e
195
Δρ. Μαριάς Ιωάννης
mod 119 = 66
20
Κρυπτογραφία Δημοσίου Κλειδιού
Αλγόριθμος RSA
 Δυσκολία
RSA: Παραγοντοποίηση Μεγάλων Ακεραίων
(FACTORING problem)
 Δεδομένου ακεραίου θετικού n , βρες τους πρώτους παραγοντοποιητές του
(prime factorization), ή γράψε το n ως n=p1e1p2e2…pkek
 όπου pi, pj πρώτοι μεταξύ τους
 Το μήκος κλειδιού μπορεί να διαφέρει (συνήθως των 1024 bits)
 Variable plaintext block size
 Για ζεύγος κλειδιών public= <e, n> και private = <d>
 encryption: C= Me mod n, M < n
 decryption: M = Cd mod n
 signature: S = Md mod n, M < n
 verification: M = Se mod n
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
21
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αλγόριθμος Diffie – Hellman
• Η πρώτη πρακτική λύση στο πρόβλημα διανομής κλειδιών
• Αλγόριθμος ανταλλαγής κλειδιών για δύο μέρη που ποτέ δεν ήρθαν στο
παρελθόν σε συμφωνία ή μοιράζονται κοινό μυστικό κλειδί ή τιμή
• Δυνατότητα ανταλλαγής μηνυμάτων για συμφωνία κλειδιών (key
agreement) μέσα από ανασφαλές κανάλι
• Αποτελεσματικός σε παθητικές επιθέσεις (eavesdropping), αλλά όχι σε
ενεργητικές
• Κανένα μέρος δεν έχει εξασφάλιση για την ταυτότητα του άλλου (entity
authentication)
• Δυσκολία: Υπολογισμός Διακριτών Λογαρίθμων
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
22
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αλγόριθμος Diffie – Hellman
Ολίγη λογαριθμική αριθμητική ...
• Έστω ακέραιος, πρώτος αριθμός p
• Ως πρωτογεννής ρίζα a του p ορίζεται ο αριθμός του οποίου οι δυνάμεις
του modulo(p) παράγουν όλους τους ακέραιους από 1 έως p-1
Αν a είναι πρωτογεννής ρίζα του p τότε οι αριθμοί
amodp, a2modp, …, ap-1modp
 είναι διακριτοί και αποτελούν τους ακέραιους από 1 έως p-1
• Για οποιοδήποτε ακέραιο b και για μία πρωτόγεννη ρίζα α ενός πρώτου p
μπορεί να βρεθεί μοναδικός αριθμός i τέτοιος ώστε b=αimodp (0≤i≤p-1).
• O i καλείται διακριτός λογάριθμος ή δείκτης του b για βάση a και modp
και συμβολίζεται ως i=inda,p(b)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
23
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αλγόριθμος Diffie – Hellman
 Ο A και ο B στέλνουν ο καθένας από ένα μήνυμα σε ανοικτό κανάλι
 Αποτέλεσμα: Κοινό μυστικό κλειδί K γνωστό στα δύο μέρη A και B
Βήμα 1. Επιλέγεται και δημοσιοποιείται πρώτος αριθμός p και μία
πρωτόγεννης ρίζα α του p
Βήμα 2. Δημιουργία τυχαίων αριθμών
Ο Α επιλέγει έναν τυχαίο ακέραιο ΧΑ, ΧΑ<p και υπολογίζει το ΥΑ=αΧΑmodp
Ο B επιλέγει έναν τυχαίο ακέραιο ΧB, ΧB<p και υπολογίζει το ΥB=αΧBmodp
Κάθε πλευρά κρατά μυστική τις τιμές ΧΑ και ΧB
Βήμα 3. Κάθε πλευρά αποστέλλει στην άλλη τις τιμές ΥΑ και ΥB
Βήμα 4. Παραγωγή κλειδιού
Για Α: Κ=(ΥΒ)ΧΑmodp
Για Β: Κ=(ΥΑ)ΧΒmodp
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
24
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αλγόριθμος Diffie – Hellman
Μηνύματα
Παραγωγή κλειδιών
A  B : ΥΑ=αΧΑmodp
A:
K= (ΥB)ΧΑmodp
A  B : ΥΒ=αΧΒmodp
B:
K= (ΥA)ΧBmodp
Οι δύο σχέσεις παράγουν το ίδιο αποτέλεσμα:
K= (ΥB)ΧΑmodp = (αΧBmodp)ΧΑmodp = (αΧB)ΧΑmodp = αΧBΧΑmodp =
(αΧΑmodp)ΧΒmodp = (ΥA)ΧBmodp
Ένας επιτιθέμενος έχει μόνο τα στοιχεία α, p, ΥΑ και ΥΒ για κρυπτανάλυση.
Είναι αναγκασμένος να βρει ένα διακριτό λογάριθμο για να υπολογίσει το Κ.
Για παράδειγμα αν επιτεθεί στον Β θα πρέπει να υπολογίσει ΧB=inda,p(ΥΒ)
Για μεγάλους πρώτους αριθμούς (p) το πρόβλημα θεωρείται υπολογιστικά
ανέφικτο να λυθεί
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
25
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αλγόριθμος Diffie – Hellman - παράδειγμα
Υποθέτουμε ότι ο πρώτος αριθμός είναι το p=71
Η πρωτογενής ρίζα είναι a=7
Οι Α και B επιλέγουν ιδιωτικά κλειδιά ΧΑ=5 και ΧB=12
Τα αντίστοιχα δημόσια κλειδιά είναι
για τον A:
ΥA = 75 mod 71 = 51 mod 71
για τον Β:
ΥΒ = 712 mod 71 = 4 mod 71
Στη συνέχεια ανταλλάσσουν τα δημόσια κλειδιά ΥA και ΥΒ για να υπολογίσουν το
κοινό κλειδί K
Α: K= (ΥB)ΧΑmodp = (4 mod 71)5 mod 71 = 45 mod 71 = 30 mod 71
Β: K= (ΥΑ)ΧΒmodp = (51 mod 71)12 mod 71 = 5112 mod 71 = 30 mod 71
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
26
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αλγόριθμος Diffie – Hellman - παράδειγμα
• Εκθετικές διαδικασίες ακριβές σε υλοποίηση – χρονοβόρες
• Δεν μπορεί να χρησιμοποιηθεί για αυθεντικοποίηση (unauthenticated key
agreement.)
• Αναποτελεσματικός σε ενεργητικές επιθέσεις (man in the middle attacks)
Καίσαρας
Ούνος
Στρατηγός
Προς Σ: α, p selected
Από K: α, p selected
Από K: α, p selected
Επιλέγει κρυφό ΧΚ
Επιλέγει κρυφό ΧΟ
Επιλέγει κρυφό ΧΣ
ΥΚ=αΧΚmodp
ΥΟ=αΧΟmodp
ΥΣ=αΧΣmodp
ΥΚ 
 ΥΟ 
 ΥΣ
(ΥΟ)ΧΚmodp=(ΥΚ)ΧΟmodp
(ΥΟ)ΧΣmodp=(ΥΣ)ΧΟmodp
• Ο Ούνος παίζει τον Καίσαρα στον Στρατηγό και τον Στρατηγό στον
Καίσαρα
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
27
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Ζητήματα διανομής δημοσίων κλειδιών
• Διανομή κλειδιών (key distribution)
– ανάγκη για μέθοδο προστασίας συναλλαγών και επικοινωνιών
χωρίς να χρειάζεται να εμπιστεύεσαι κάποια Έμπιστη Τρίτη
οντότητα για παραγωγή του κλειδιού σου
– Κρυπτογραφία δημοσίου κλειδιού βοηθά
• Πρόβλημα 1
– Πως αυθεντικοποιείται η σχέση μεταξύ δημοσίου και ιδιωτικού
κλειδιού;
– … δηλαδή ότι ένας κάτοχος κατέχει και τα δύο
• Πρόβλημα 2
– Ποιος είναι αυτός ο κάτοχος;
– Λύση: Ψηφιακό πιστοποιητικό
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
28
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
• Υλοποιείται με τέσσερις διαφορετικές μεθόδουςαρχιτεκτονικές:
– Ανακοίνωση (announcement)
– Κατάλογος Δημόσια Διαθέσιμος
– Αρχή Διαχείρισης και Διανομής Δημοσίων Κλειδιών
(Public-key authority)
– Ψηφιακά Πιστοποιητικά Δημοσίου Κλειδιού (Public-key
certificates)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
29
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αυθεντικοποίηση – μέθοδος am1
Alice
I’m Alice
Bob
Alice
Enemy
Bob
Enemy
Αδυναμίες
 Δεν υπάρχει τρόπος να γνωρίζει o Bob ότι το πρόσωπο που έστειλε το μήνυμα “I’m
Alice” είναι όντως η Alice
 Ο Enemy μπορεί να αντιγράψει την Alice
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
30
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αυθεντικοποίηση – μέθοδος am2
Alice
I’m Alice
gime passwd
passwd
Bob
Alice
Enemy
Bob
Enemy
Προσθήκη κωδικού επικοινωνίας
 O Bob ζητάει μέρα γέννησης, κωδικός πρόσβασης (κτλ)
Αδυναμίες
 Δεν υπάρχει τρόπος να γνωρίζει o Bob ότι το πρόσωπο που έστειλε το μήνυμα “I’m
Alice” είναι όντως η Alice
 Ο Enemy μπορεί να αντιγράψει την Alice και το password της
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
31
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αυθεντικοποίηση – μέθοδος am2.encr
Alice
I’m Alice
gime passwd
$#1q&u9
Bob
Alice
Bob
ΚΑΒ(passwd)
=$#1q&u9
Enemy
Enemy
Προσθήκη κωδικού επικοινωνίας κρυπτογραφημένου
 ΚΑΒ συμμετρικό κλειδί
 Κρυπτογράφηση password
Αδυναμίες
 Ο Enemy μπορεί να αντιγράψει το encrypted password της Alice
 Υλοποιεί κατόπιν replay attacks
 O Bob δεν μπορεί να ξεχωρίσει το αρχικό μήνυμα αυθεντικοποίησης της Alice από το
ύστερο αντίγραφό του (playback)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
32
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Κλειδιών – Replay Attacks problems
• Γενικό πρόβλημα: Replay Attacks
– Ένας εχθρός ανακτά τα μηνύματα που ανταλλάσσονται και τα
αναμεταδίδει στο μέλλον
• Η κρυπτογράφηση δε αντιμετωπίζει το πρόβλημα.
• Απαιτείται ενσωμάτωση μηχανισμών προσδιορισμού
«προσφατότητας» μηνυμάτων από τον αποστολέα
• freshness identifiers
• Τρεις τύποι freshness identifier
– nonces
– timestamps
– sequence numbers
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
33
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Κλειδιών – Replay Attacks problems
freshness identifiers
• Nonce
– Τυχαίος αριθμός, απρόβλεπτος και μη επαναχρησιμοποιούμενος
• Timestamps
– Ο αποστολέας επισυνάπτει encrypted real-time timestamp σε κάθε μήνυμα
– Ο παραλήπτης αποκρυπτογραφεί timestamp και το συγκρίνει με το τρέχοντα χρόνο
• Αν η διαφορά αρκετά μικρή, τότε αποδέχεται μήνυμα, διαφορετικά το απορρίπτει
– Πρόβλημα ο συγχρονισμός μεταξύ sender και receiver
• Sequence numbers
– Ο αποστολέας επισυνάπτει μια μονοτονικά αύξουσα τιμή (counter) σε κάθε μήνυμα,
αυξάνει κατά 1 μετά από κάθε αποστολή μηνύματος προς παραλήπτη
– Ο παραλήπτης απαιτείται να θυμάται την τελευταία μέγιστη τιμή του counter που
έλαβε από αποστολέα
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
34
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Αυθεντικοποίηση – μέθοδος am3.singlekey (ιδέα από Lamport 81)
Alice
I’m Alice
R1
ΚΑΒ(R1)
Bob
Alice
Enemy
Bob
Enemy
Προσθήκη απαίτησης για Nonce R, και time-stamp
 ΚΑΒ συμμετρικό κλειδί
 Κρυπτογράφηση R
Αδυναμίες  forgery
 Ο Enemy μπορεί να αντιγράψει το encrypted R της Alice
 Replay attacks δεν μπορεί να αναπτυχθούν
Άλλη ιδέα !!!
 Χρήση one-time-keys (μεγάλος αριθμός κλειδιών προ-συμφωνείται μεταξύ Α και Β)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
35
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
• Ερώτημα:
– Μπορούμε να χρησιμοποιήσουμε κρυπτογραφία δημοσίου κλειδιού για
αυθεντικοποίηση;
– Αν ναι, με ποιον τρόπο εξασφαλίζουμε αυθεντικοποίηση της Alice
απέναντι στον Bob?
• Ήδη μιλήσαμε για τέσσερις τρόπους
–
–
–
–
Ανακοίνωση
Κατάλογος Δημόσια Διαθέσιμος
Αρχή Διαχείρισης και Διανομής Δημοσίων Κλειδιών
Ψηφιακά Πιστοποιητικά Δημοσίου Κλειδιού
• Ποιος είναι αποδοτικότερος
• Ποια τα κριτήρια;
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
36
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(1) Ανακοίνωση
• Οι χρήστες στέλνουν δημόσια κλειδιά σε παραλήπτες ή τα
εκπέμπουν σε μία κοινότητα (κλειστή) χρηστών
– Π.χ., ανάρτηση κλειδιού σε news groups/email list
• Κυριότερη Αδυναμία: Πλαστογραφία (forgery)
– Οποιοσδήποτε μπορεί να δημιουργήσει ένα δημόσιο κλειδί ισχυριζόμενος
ότι είναι κάποιος άλλος και να το μεταδώσει ή εκπέμψει
– Μέχρι να ανακαλυφθεί η πλαστογραφία ο χρήστης εξακολουθεί να είναι
μεταμφιεσμένος
• Άλλη αδυναμία: πλήθη κλειδιών που αποστέλλονται (overhead)
– κλιμάκωση
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
37
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(1) Ανακοίνωση
Πλήθη κλειδιών και συμφωνιών !!!
K1
Παράδειγμα για Secret Keys
K2
K6
K7
K8
K9
K10
K5
K3
n
(n*(n-1))/2
2
1
4
6
8
28
16
120
32
336
64
2016
K4
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
38
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(1) Ανακοίνωση - Αυθεντικοποίηση – μέθοδος am3.publicKey
Alice
I’m Alice
R
ΚRA(R)
Send me KUA
ΚUA
Bob
Alice
Enemy
Bob
Enemy
Απαίτηση για χρήση Δημοσίων Κλειδιών και Nonce R
 ΚUA ΚRA δημόσιο ιδιωτικό κλειδί οντότητας Α
Αδυναμίες  Forgery
 Ο Enemy μπορεί χρησιμοποιεί τα δικά του κλειδιά
 O Bob εκτελεί ΚUΕ(ΚRE(R)), ανακτά R και μπερδεύει την Alice με τον Enemy
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
39
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(2) Κατάλογος Δημόσια Διαθέσιμος
• Καταχωρεί τα κλειδιά σε ένα δημόσια διαθέσιμο κατάλογο
– URL
• Λύση προβλήματος κλιμάκωσης
• Ο κατάλογος πρέπει να είναι έμπιστος (διατηρείται από ΕΤΟ)
– Η ΕΤΟ να δεσμεύεται ότι δεν τροποποιεί τα περιεχόμενα
– Ποιος μπαίνει, τι αλλάζει ?
• εξουσιοδότηση/αυθεντικοποίηση (π.χ., μέσω συμμετρικού κλειδιού KA,ETO )
• Ιδιότητες καταλόγου:
–
–
–
–
περιέχει {name, public-key} entries
οι συμμετέχοντες (names) μπορούν οποιαδήποτε στιγμή να αλλάξουν το key
προσβάσιμος ηλεκτρονικά
λειτουργία 24x7
• Εξακολουθεί να είναι τρωτός σε πλαστογραφία
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
40
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(3) Public-Key Authority
• Βελτιώνει την ασφάλεια με έλεγχο της διανομής (υπογραφή κατά τη
διανομή) των κλειδιών του κατάλογου από μια Αρχή ΕΤΟ
• Απαιτεί από τους χρήστες να γνωρίζουν εκ προοιμίου το δημόσιο κλειδί
της ΕΤΟ
• Μόνο η ΕΤΟ διαθέτει το ιδιωτικό της κλειδί
• Οι χρήστες αλληλεπιδρούν με την ΕΤΟ για να ανακτήσουν με ασφάλεια
το δημόσιο κλειδί της Οντότητας με την οποία επιθυμούν να
επικοινωνήσουν
• Απαιτήσεις
– Ότι και ο Δημόσιος Κατάλογος, και
– real-time access στο δημόσιο κλειδί της ΕΤΟ όταν χρειάζονται τα κλειδιά
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
41
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(3) Public-Key Authority
Κατάλογος
Public Key
Authority
(4) Request || Time2
(1) Request || Time1
(2) EKRauth[KUB || Request || Time1]
(5) EKRauth[ KUA || Request || Time2 ]
(3) EKUB[ IDA || N1 ]
Initiator
A
Responder
B
(6) EKUA[ N1 || N2 ]
KUI: Public Key Entity I
KRI: Private Key Entity I
Ni: Nonce i
IDI: Identity of Entity I
EKRauth: Private Key PKA
ΠΜΣ 36 / 2007
(7) EKUB[ N2 ]
Δρ. Μαριάς Ιωάννης
42
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(3) Public-Key Authority
Στέλνει time-stamped μήνυμα με μία αίτηση (συν Request ID) για το KU του B
Απαντά με encrypted μήνυμα (με χρήση του KR της Auth). Περιέχει το KU του Β, το
αρχικό Request ID (εγγυάται συσχέτιση με την αρχική αίτηση), και το timestamp
(εγγυάται ότι δεν έχει πραγματοποιηθεί εναλλαγή)
Ο Α decrypts το μήνυμα με το KU της Auth, (εξασφαλίσει ότι προήλθε από αυτήν) και
αποθηκεύει το KU του B
(3) AΒ
Στέλνει encypted μήνυμα (με χρήση του KU του B) που περιέχει το ID του Α και και ένα
τυχαία επιλεγόμενο αριθμό N1 που ταυτοποιεί μοναδικά αυτήν τη συναλλαγή
Ο Β decrypts το μήνυμα με το KRB που μόνο αυτός διαθέτει, και βλέπει αίτηση από Α.
(4-5) BAuthB O B με τη σειρά του λαμβάνει από την Auth το KU του Α (όπως βήματα 1 και 2)
Τα πιστοποιημένα από την Auth δημόσια κλειδιά των A και B είναι εκατέρωθεν γνωστά
(6) ΒΑ
Στέλνει encypted μήνυμα (με χρήση του KU του Α) που περιέχει τον προσδιοριστή N1
και ένα τυχαία επιλεγόμενο αριθμό N2 που ταυτοποιεί μοναδικά τη νέα συναλλαγή
Ο Α λαμβάνει το μήνυμα, decrypts με το KRΑ που μόνο αυτός διαθέτει. Αντιλαμβάνεται
παρουσία του προσδιοριστή N1, και συμπεραίνει ότι το μήνυμα ήρθε από Β.
(7) ΑΒ
Στέλνει encypted μήνυμα (με χρήση του KU του B) που περιέχει τον προσδιοριστή N2
Ο Β λαμβάνει το μήνυμα, decrypts με το KRΒ που μόνο αυτός διαθέτει. Αντιλαμβάνεται
παρουσία του προσδιοριστή N2, και συμπεραίνει ότι το μήνυμα ήρθε από Α.
(1) AAuth
(2) AuthA
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
43
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(3) Public-key Authority
• Συνολικά απαιτούνται 7 μηνύματα
• Ωστόσο 4 από αυτά (AAuthA και BAuthB)
ανταλλάσσονται σπάνια (οι A και B cash τα KUs)
• Απαιτείται συνεχής και real-time πρόσβαση 
– Μειονέκτημα:
• Η Αρχή μπορεί να εξελιχθεί σε bottleneck της αρχιτεκτονικής
• DoS attacks
• Όμως αυθεντικοποιεί πράγματι τα συναλλασσόμενα μέρη;
– Πως εγγράφονται τα {name, Public Keys}?
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
44
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(4) Public-Key Certificates
• Προτάθηκε από Kohnfelder (1978)
• Τα πιστοποιητικά επιτρέπουν ανταλλαγή κλειδιών με
αυθεντικοποίηση χωρίς να απαιτούν real-time πρόσβαση σε
κατάλογο
• Τα πιστοποιητικά παράγονται από έμπιστη ΕΤΟ ή Certificate
Authority (CA)
• Ένα πιστοποιητικό συσχετίζει την “ταυτότητα” ενός χρήστη
(identity) με public key
– Συχνά περιλαμβάνει πρόσθετες πληροφορίες, όπως χρόνος εγκυρότητας,
δικαιώματα χρήσης κοκ
• Τα περιεχόμενα του πιστοποιητικού υπογράφονται (signed) από την
έμπιστη ΕΤΟ (CA)
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
45
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(4) Public-Key Certificates
• Το πιστοποιητικό δημοσίου κλειδιού μπορεί να επαληθευτεί από
οποιονδήποτε γνωρίζει το public-key της CA
• Το παραδίδεται στο χρήστη και σχετίζεται με το αντίστοιχο ιδιωτικό
του κλειδί (το οποίο παράγει ο ίδιος ο χρήστης)
• Ένας χρήστης μεταβιβάζει το δημόσιο κλειδί του σε ένα άλλο
χρήστη με το να του μεταδώσει το πιστοποιητικό του
• Χαρακτηριστικά
– Μόνο η CA μπορεί να δημιουργεί και να ανανεώνει certficate
– Κάθε χρήστης μπορεί να λάβει ένα certficate, να το διαβάσει και να
προσδιορίσει την ταυτότητα και το δημόσιο κλειδί του κατόχου του
– Κάθε χρήστης μπορεί να πιστοποιήσει ότι το certficate δημιουργήθηκε από
την CA και δεν είναι πλαστό
– Κάθε χρήστης μπορεί να επαληθεύσει την ισχύ (π.χ., χρονική) του certficate
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
46
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(4) Public-Key Certificates
KUI: Public Key Entity I
KRI: Private Key Entity I
Τimei: Expiration i
CA
KUA
KUB
CA= EKRauth[KUA , IDA, Time1]
CB= EKRauth[KUB , IDB, Time2]
CA
A
B
CB
Ο Χρήστης παράγει ζεύγος ιδιωτικού (KR) και δημόσιου (KU) κλειδιού
Ο Χρήστης απευθύνεται στην CA και υποβάλει το δημόσιο κλειδί του αιτούμενος ένα certficate
- Αν αυτό γίνεται phase-to-phase ή μέσω ηλεκτρονικής αίτησης με authentication τότε μόνο authentication
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
47
Κρυπτογραφία Δημοσίου Κλειδιού και Διανομή
Διανομή Δημοσίων Κλειδιών και Αυθεντικοποίηση
(4) Public-Key Certificates
• Για τον χρήστη Α η CA παρέχει ένα certficate της μορφής
CA = EKRauth[KUA , IDA, T1]
• Ο χρήστης Α μπορεί να μεταβιβάσει το CA σε οποιονδήποτε άλλο χρήστη, π.χ., Β
• Ο παραλήπτης Β λαμβάνει το CA και επαληθεύει την ταυτότητα και το δημόσιο
κλειδί του Α ως εξής:
DKUauth[CA] = DKUauth[EKRauth[KUA , IDA, T1]] = (KUA , IDA, T1)
• Εφόσον το certficate είναι αναγνώσιμο μόνο με χρήση του ιδιωτικού κλειδιού της
CA, επαληθεύεται ότι το certficate έχει δημιουργηθεί από την CA
• Τα στοιχεία KUA και IDA παρέχουν στον παραλήπτη την ταυτότητα και το δημόσιο
κλειδί του κατόχου του πιστοποιητικού
• Το timestamp T1 επικυρώνει την ισχύ του certficate, ενεργώντας ως «ημερομηνία
λήξης».
• «Ληγμένα» certficate πρέπει να κρίνονται ανασφαλή
ΠΜΣ 36 / 2007
Δρ. Μαριάς Ιωάννης
48