You are on page 1of 184

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

Κώστας Λιμνιώτης

ΤΕΙ Στερεάς Ελλάδας

Γενική επισκόπηση
Ανασκόπηση ύλης
„ Στόχοι της κρυπτογραφίας – Ιστορικό –
Γενικά χαρακτηριστικά
„ Κλασσική κρυπτογραφία
{ Συμμετρικού κλειδιού (block ciphers – stream
ciphers)
{ Δημοσίου κλειδιού (στηριγμένη στη θεωρία
υπολογισμού)
„ Τεχνικές πιστοποίησης μηνύματος και
πιστοποίησης ταυτότητας αποστολέα
„ Εγκαθίδρυση και διαχείριση κλειδιού
Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 2

Βιβλιογραφία
„ “Handbook of Applied Cryptography”, A. J.
Menezes, P. C. Van Oorschot και S. A. Vanstone,
CRC Press, 1996
(διαθέσιμο από το διαδίκτυο:
http://www.cacr.math.uwaterloo.ca/hac/)
„ “Τεχνικές κρυπτογραφίας και κρυπτανάλυσης», Β.Α.
Κάτος και Γ.Χ. Στεφανίδης

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 3


Βασικοί όροι
„ Με τον όρο κρυπτογραφία εννοούμε τη μελέτη
μαθηματικών τεχνικών που στοχεύουν στην
εξασφάλιση θεμάτων που άπτονται της ασφάλειας
μετάδοσης της πληροφορίας, όπως
εμπιστευτικότητα, πιστοποίηση ταυτότητας του
αποστολέα και διασφάλιση του αδιάβλητου της
πληροφορίας.
„ Plaintext : Το αρχικό κομμάτι πληροφορίας
„ Κρυπτόγραμμα (ciphertext): Το κρυπτογραφημένο
μήνυμα
„ Encryption: Η διαδικασία της κρυπτογράφησης ενός
μηνύματος
„ Decryption: η διαδικασία αποκρυπτογράφησής του
Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 4

Κρυπτογραφική Ορολογία
„ Εμπιστευτικότητα ή μυστικότητα (privacy): η διατήρηση της
πληροφορίας κρυφής από όλους, εκτός από εκείνους που
είναι εξουσιοδοτημένοι να τη δουν
„ Ακεραιότητα των δεδομένων (data integrity): διασφάλιση του
ότι η πληροφορία δεν έχει παραποιηθεί από μη
εξουσιοδοτημένο μέσο
„ Πιστοποίηση ταυτότητας (entity authentication ή identification):
επιβεβαίωση της ταυτότητας ενός χρήστη
„ Πιστοποίηση μηνύματος (message authentication):
Επιβεβαίωση της πηγής της πληροφορίας
„ Υπογραφή (signature): ένα μέσο προσάρτησης πληροφορίας
ενός χρήστη στα μεταδιδόμενα δεδομένα, με στόχο την
πιστοποίηση ταυτότητας

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 5


Στόχοι της κρυπτογραφίας
„ Τα μηνύματα πρέπει να φτάνουν στο σωστό
προορισμό
„ Εμπιστευτικότητα: Μόνο ο παραλήπτης τους να
μπορεί να τα λάβει και να τα δει (confidentiality)
„ Πιστοποίηση της ταυτότητας του αποστολέα
(authentication)
„ Το μήνυμα δεν πρέπει να αλλοιωθεί κατά τη
μεταφορά από μη εξουσιοδοτημένη οντότητα (data
integrity)
„ Όποια ενέργεια κάνει κάποιος (π.χ. πιστοποίηση
ταυτότητας) δεν πρέπει αργότερα να μπορεί να την
αρνηθεί (Non-repudiation)
Προσοχή!
Η κρυπτογραφία δεν λύνει τα παραπάνω, απλά προσπαθεί
να τα ικανοποιήσει
Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 6

Περιοριστικοί αλγόριθμοι
(restricted algorithms)

„ Η ασφάλεια ενός τέτοιου αλγορίθμου εξασφαλίζεται


μόνο αν ο αλγόριθμος παραμένει κρυφός!
„ Ανεφάρμοστοι στην πράξη (μη ασφαλείς)

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 7


Αλγόριθμοι βασισμένοι σε
κλειδιά
„ Οι αλγόριθμοι κρυπτογράφησης χρησιμοποιούν ένα
ή περισσότερα κλειδιά (keys).

Encryption Key Υποκλοπέας Decryption Key

Plaintext Ciphertext Original plaintext


Α Encryption Decryption Β

Η ασφάλεια έγκειται στο ότι δεν είναι γνωστό το κλειδί – οι


αλγόριθμοι κρυπτογράφησης και αποκρυπτογράφησης μπορούν
να είναι ευρέως γνωστοί (αρχή του Kerchoff)
Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 8

Ένας απλός αλγόριθμος


βασισμένος σε κλειδί
Κρυπτογράφηση
Πολλαπλασίασε το αρχικό μήνυμα επί 2 και πρόσθεσε
το κλειδί

Αποκρυπτογράφηση
Αφαίρεσε το κλειδί και διαίρεσε το κρυπτόγραμμα διά 2

plaintext = SECRET = 19 5 3 18 5 20
Key = 3
Ciphertext = 41 13 9 39 13 43

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 9


Κατηγορίες αλγορίθμων
ως προς το είδος του κλειδιού
„ Αλγόριθμοι συμμετρικού (ή κρυφού) κλειδιού
(symmetric key algorithms)
{ Χρησιμοποιείται το ίδιο κλειδί τόσο για την
κρυπτογράφηση όσο και για την
αποκρυπτογράφηση
„ Αλγόριθμοι ασύμμετρου (ή δημοσίου) κλειδιού
(Asymmetric (or public key) algorithms)
{ Χρησιμοποιούνται διαφορετικά κλειδιά για την
κρυπτογράφηση και την αποκρυπτογράφηση
{ Το κλειδί κρυπτογράφησης δεν μπορεί να εξαχθεί
από το κλειδί αποκρυπτογράφησης
Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 10

Μαθηματικός φορμαλισμός

Αν E και D συμβολίζουν τις συναρτήσεις κρυπτογράφησης και


αποκρυπτογράφησης αντίστοιχα, τότε:

„ EK1(m) = c
„ DK2(c) = m
όπου m και c υποδηλώνουν το αρχικό και το κρυπτογραφημένο μήνυμα
αντίστοιχα.
Οι δείκτες Ki υποδηλώνουν την εξάρτηση των συναρτήσεων από το κλειδί.
Οι συναρτήσεις έχουν την ιδιότητα: DK2(EK1(m)) = m
Σε αλγόριθμους συμμετρικού κλειδιού, ισχύει K1 = K2

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 11


«Επιθέσεις» εναντίον
κρυπτογραφικών αλγορίθμων
(Κρυπτανάλυση)

„ Κρυπτανάλυση είναι η μελέτη μαθηματικών τεχνικών που στοχεύουν στην


ακύρωση των κρυπτογραφικών μεθόδων, καθιστώντας τις έτσι μη κατάλληλες
για κρυπτογραφικούς σκοπούς.
„ Ένας αλγόριθμος θεωρείται μη ασφαλής αν είναι δυνατή η ανάκτηση του
αρχικού μηνύματος ή του κλειδιού από το κρυπτόγραμμα, ή αν είναι δυνατή η
ανάκτηση του κλειδιού από ζευγάρια plaintext-ciphertext.
„ Είδη «επιθέσεων»
{ Ciphertext attack
o επιτιθέμενος γνωρίζει το κρυπτόγραμμα: στόχος η εύρεση είτε του
αρχικού μηνύματος είτε του κλειδιού

{ Known-plaintext attack
ο επιτιθέμενος γνωρίζει το κρυπτόγραμμα και το αντίστοιχο μήνυμα –
στόχος του η εύρεση του κλειδιού

{ Chosen-plaintext attack
Ο επιτιθέμενος είναι σε θέση να επιλέξει συγκεκριμένα ζεύγη «αρχικό
μήνυμα – κρυπτόγραμμα» που θα γνωρίζει. Στόχος του η εύρεση του
κλειδιού.
Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 12

Ασφαλή συστήματα
κρυπτογράφησης
„ Απεριόριστα ασφαλές (Unconditionally secure)
{ Ένα σύστημα κρυπτογράφησης χαρακτηρίζεται
απεριόριστα ασφαλές αν, ανεξάρτητα του πόσο μεγάλου
τμήματος του κρυπτογράμματος είναι γνωστό, δεν υπάρχει
αρκετή πληροφορία για την ανάκτηση του αρχικού
μηνύματος κατά μοναδικό τρόπο, όση υπολογιστική ισχύ κι
αν διαθέτει ο επιτιθέμενος (δεν μπορεί να υπάρξει).
„ Υπολογιστικά ασφαλές (Computationally secure)
{ Ένα σύστημα κρυπτογράφησης χαρακτηρίζεται
υπολογιστικά ασφαλές αν είναι υπολογιστικά αδύνατο να
«σπάσει».

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 13


Βασικές αρχές του Shannon
„ Διάχυση (Diffusion): κάθε γράμμα του αρχικού
μηνύματος πρέπει να επηρεάζει όσο γίνεται
περισσότερα γράμματα του κρυπτογράμματος.
„ Σύγχυση (Confusion): Η σχέση μεταξύ αρχικού
μηνύματος και κρυπτογράμματος πρέπει να είναι
σύνθετη, έτσι ώστε ο επιτιθέμενος να μην είναι σε
θέση να προβλέψει αλλαγές στο κρυπτόγραμμα, με
δεδομένες κάποιες μεταβολές στο αρχικό μήνυμα.
„ Οι αρχές αυτές εφαρμόζονται στην πράξη, αφού
λαμβάνονται υπ όψιν στην κατασκευή
κρυπτογραφικών αλγορίθμων

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 14

Συμμετρικά κρυπτοσυστήματα
Κ Κ

Αποστολέας P C P
Encryption Decryption Παραλήπτης

Ασφαλής μετάδοση του κλειδιού

‰ Ο αποστολέας και ο παραλήπτης πρέπει από την αρχή να


συμφωνήσουν στη χρήση ενός κοινού κλειδιού Κ.
‰ Ένα «ασφαλές κανάλι επικοινωνίας» πρέπει να υπάρχει για την
επικοινωνία τους προκειμένου να ενημερώσει ο ένας τον άλλον για
τον κλειδί.

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 15


Κρυπτοσυστήματα Δημοσίου κλειδιού
Αποστολέας P C P
Encryption E Decryption D Παραλήπτης

„ Προτάθηκαν το 1976
„ Κάθε συμμετέχων στο σύστημα κατέχει ένα ζευγάρι κλειδιών e και d, που το
ένα αντιστρέφει το άλλο: Dd(Ee(m))=m
„ Το κλειδί e σε κάθε χρήστη είναι ευρέως γνωστό σε όλους, ενώ το d κρατείται
μυστικό και το ξέρει μόνο ο κάτοχός του. Απαραίτητη προϋπόθεση για την
ασφάλεια του συστήματος είναι το εξής: η γνώση του δημοσίου κλειδιού δεν
πρέπει να επιτρέπει τον προσδιορισμό του ιδιωτικού κλειδιού.
„ Σύγκριση με τους αλγορίθμους συμμετρικού κλειδιού: Η ανταλλαγή κλειδιών
μεταξύ αποστολέα και παραλήπτη αντικαθίσταται από την ύπαρξη ενός
διαφανούς καταλόγου, στον οποίο όλοι έχουν πρόσβαση, και περιέχει τα
δημόσια κλειδιά e όλων των συμμετοχόντων.

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 16

Τρόπος λειτουργίας
συστημάτων δημοσίου κλειδιού
„ Έστω eA, dA και eB,dB τα δημόσια και ιδιωτικά κλειδιά των A, B
αντίστοιχα.
„ Όταν ο A θέλει να στείλει ένα μήνυμα m στον B, το δημόσιο κλειδί
κρυπτογράφησης του παραλήπτη B χρησιμοποιείται για τη
δημιουργία του κρυπτογράμματος EeB (m). Αφού το eB είναι πλήρως
διαθέσιμο σε κάποιον δημόσιο κατάλογο στον οποίο έχουν όλοι
πρόσβαση, ο οποιοσδήποτε μπορεί να κρυπτογραφήσει ένα μήνυμα
με προορισμό τον B. Ωστόσο, μόνο ο B, ο οποίος έχει πρόσβαση στο
ιδιωτικό του κλειδί αποκρυπτογράφησης dB μπορεί να
ανακατασκευάσει το αρχικό μήνυμα, εφαρμόζοντας τον αντίστροφο
μετασχηματισμό:
D dB (EeB (m)).

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 17


Μειονέκτημα συστημάτων
δημοσίου κλειδιού
„ O οποιοσδήποτε μπορεί να προσποιηθεί ότι είναι
κάποιος άλλος χρήστης!! Αν ο επιτιθέμενος
«σταματήσει» το μήνυμα που στέλνει ο A στον B, γράψει
ένα δικό του και το στείλει στον Β κρυπτογραφημένο με
το δημόσιο κλειδί του B, o Β δεν θα γνωρίζει τον
πραγματικό αποστολέα του μηνύματος που λαμβάνει.
Άρα
„ Ανάγκη πιστοποίησης της ταυτότητας κάθε χρήστη.

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 18

Σχηματική αναπαράσταση
υποκλοπής σε σύστημα Δημοσίου
Κλειδιού
• Ο επιτιθέμενος ξεγελά τον A ότι
είναι ο B, στέλνοντάς του το δικό
του δημόσιο κλειδί e’. Έτσι, ο A
στέλνει τα μηνύματα
κρυπτογραφημένα ως προς το
e’. Συνεπώς, ο επιτιθέμενος
μπορεί και «διαβάζει» όλα τα
μηνύματα που στέλνει ο A στον
B
•O Β δεν μπορεί να αντιληφθεί
την παρουσία του επιτιθέμενου,
μια που αυτός του στέλνει
κανονικά το μήνυμα. Ο B,
λαμβάνοντας ένα μήνυμα, δεν
μπορεί να ξέρει με σιγουριά
ποιος του το έστειλε.

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 19


Ψηφιακή υπογραφή
(Digital Signature)
„ Εξασφαλίζει πιστοποίηση της ταυτότητας.
„ Έστω ότι ο A στέλνει ένα υπογεγραμμένο μήνυμα
στον Β. Η υπογραφή του A πρέπει να ικανοποιεί
τα εξής:
1. O B να είναι σε θέση να επικυρώσει το γνήσιο
της υπογραφής.
2. Πρέπει να είναι αδύνατη η πλαστογράφηση της
υπογραφής του A

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 20

Χρήση συστημάτων δημοσίου κλειδιού


για υπογραφή μηνυμάτων

1. Ο A υπογράφει το m με το ιδιωτικό του κλειδί dA,


υπολογίζοντας το c=DdA(m)
2. Ο B ελέγχει το γνήσιο της υπογραφής του A με το
δημόσιο κλειδί eA,,υπολογίζοντας το EeA(c) =m
3. Σαν επαλήθευση, το EeA(c) πρέπει να ανακτά το ίδιο M
με αυτό που ανακτά ο B.
„ Απαιτήσεις:
{ DdA(EeA(m))=EeA(DdA(m))=m για κάθε m
„ Το παραπάνω καλείται αναστρέψιμο σχήμα Δημοσίου
Κλειδιού

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 21


Ταυτόχρονη μυστικότητα και έλεγχος
υπογραφής σε ένα κρυπτοσύστημα
Δημοσίου κλειδιού
Έστω χρήστες A, B με δημόσια και ιδιωτικά κλειδιά eA,dA, eB,dB αντίστοιχα. Με Ε και D
συμβολίζουμε γενικότερα τις διαδικασίες κρυπτογράφησης και αποκρυπτογράφησης
αντίστοιχα

m DdA(m)=s EeB(s)=c DdB(c)=s EeA(s)=m m

Μετασχηματισμοί που Μετασχηματισμοί που


λαμβάνουν χώρα από τον λαμβάνουν χώρα από τον
αποστολέα παραλήπτη

Αποκρυπτογράφηση:
Αποκρυπτογράφηση:
„ EeA(s) = EeA(DdB(c)) =
= EeA(DdB(EeB(s))) =
= EeA(DdB(EeB(DdA(m)))) =
= EeA(DdA(m)) = m

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 22

Ιστορική αναδρομή – Αλγόριθμοι


αντικατάστασης και μετάθεσης

„ Πριν την εμφάνιση των υπολογιστών, η κρυπτογραφία


εφαρμοζόταν σε μηνύματα αποτελούμενα από γράμματα της
αλφαβήτου
{ Αλγόριθμοι αντικατάστασης (substitution ciphers):
κάθε γράμμα του αρχικού μηνύματος αντικαθίσταται από
κάποιο άλλο συγκεκριμένο του αλφαβήτου του
κρυπτογράμματος.
{ Αλγόριθμοι μετάθεσης (transposition (permutation)
ciphers): το κρυπτόγραμμα είναι αναγραμματισμός του
αρχικού μηνύματος.
„ Είναι αλγόριθμοι συμμετρικού κλειδιού
„ Αυτές οι τεχνικές είναι παρούσες σχεδόν σε όλους τους
σύγχρονους αλγορίθμους κρυπτογράφησης.
Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 23
Συνδυασμός αντικατάστασης και
μετάθεσης –
Product Cipher (αλγόριθμος γινομένου)

„ Ένα product κρυπτογραφικό σύστημα αποτελείται


από σύνθεση συναρτήσεων F1,…,Ft, όπου κάθε Fi
μπορεί να είναι είτε αλγόριθμος αντικατάστασης
(substitution) είτε αλληλομεταθεσης (permutation).
„ Παραδείγματα (ευρέως χρησιμοποιούμενα)
{ DES, AES (θα τους δούμε αργότερα)

S •Η αντικατάσταση εισάγει «σύγχυση»


P P (confusion)
S
•Η μετάθεση εισάγει διάχυση (diffusion)
S

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 24

Κατηγοριοποίηση
κρυπτογραφικών συστημάτων
„ Block ciphers (αλγόριθμοι τμήματος/μπλοκ)
{ Το αρχικό μήνυμα χωρίζεται blocks, όπου το καθένα
κρυπτογραφείται ξεχωριστά.
„ Πλεονεκτήματα:
{ υψηλή διάχυση
{ Ο επιτιθέμενος δεν μπορεί να προσθέσει bits (λόγω του
σταθερού μήκους μπλοκ που έχουν αυτοί οι αλγόριθμοι)
„ Stream ciphers (αλγόριθμοι ροής)
{ Το μήνυμα κρυπτογραφείται bit προς bit (ή byte προς
byte)
„ Πλεονεκτήματα:
{ Πολύ υψηλή ταχύτητα (εφαρμογή σε τηλεδιασκέψεις κτλ)
{ Δεν υπάρχει διάδοση σφάλματος (αφού το κάθε bit μηνύματος
επηρεάζει μόνο ένα bit του κρυπτογράμματος).

Κώστας Λιμνιώτης Κρυπτογραφία - 1 (Γενική Επισκόπηση) 25


Κεφάλαιο 2
Αλγόριθμοι ροής - Stream
ciphers

Γενικά χαρακτηριστικά
Keystream
Generator

Ki

Pi Ci
„ Δουλεύουν πάνω σε ένα ρεύμα από bits (ή bytes)
„ Απαιτούν μία γεννήτρια ψευδοτυχαίας ακολουθίας bits (keystream generator) –
αυτή η ακολουθία που παράγεται λέγεται κλειδοροή (keystream)
„ Τα bits του κλειδιού γίνονται XOR με τα bits του μηνύματος για να προκύψει έτσι
το κρυπτόγραμμα, και αντίστροφα
„ Η περίοδος της ακολουθίας του κλειδιού πρέπει αν είναι όσο γίνεται πιο μεγάλη
„ Άλλες επιλογές
{ Τα bits του κλειδιού μπορούν να εξαρτώνται από προηγούμενα bits
του κρυπτογράμματος (ασύγχρονο σύστημα)
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 2
Ciphers)
Σύγχρονοι stream ciphers
Κρυπτογράφηση Αποκρυπτογράφηση

σi+1 = f(σi,k), zi = g(σi , k), ci = h(mi, zi)

‰ Αποστολέας και παραλήπτης πρέπει να είναι συγχρονισμένοι. Αν κάποιο τμήμα του κρυπτογράμματος
χαθεί κατά τη μετάδοσή του, ο συγχρονισμός χάνεται και απαιτούνται πρόσθετες τεχνικές
επανασυγχρονισμού.
‰ Η παραποίηση (αλλοίωση) ενός ψηφίου του κρυπτογράμματος κατά τη μετάδοση δεν έχει ως
αποτέλεσμα περαιτέρω λανθασμένη αποκρυπτογράφηση επόμενων ψηφίων (no error propagation)
‰ “Ενεργές επιθέσεις” προκαλούν σοβαρά προβλήματα (π.χ. έλλειψη συγχρονισμού), για αυτό
απαιτούνται τεχνικές για πιστοποίηση της γνησιότητας και της ακεραιότητας του μηνύματος

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 3


Ciphers)

Ασύγχρονοι stream ciphers


Κρυπτογράφηση Αποκρυπτογράφηση

σi = (ci-t, ci-t+1, …., ci-1) zi = g(σi , k), ci = h(mi, zi)


• Τα ασύγχρονα συστήματα ανακτούν από μόνα τους το συγχρονισμό όταν αυτό χαθεί, μετα από την
παρέλευση κάποιων λανθασμένων αποκρυπτογραφήσεων (self – synchronization)
• Αν συμβεί μία λάθος αποκρυπτογράφηση, αυτή διαδίδεται για ορισμένα επόμενα ψηφία και μετά στο
σύστημα επανέρχεται σε σωστή λειτουργία (limited error propagation)
• «Ενεργές επιθέσεις» ανιχνεύονται πιο δύσκολα από ό,τι στα σύγχρονα συστήματα – απαιτούνται
επίσης τεχνικές για πιστοποίηση γνησιότητας και ακεραιότητας του μηνύματος
• Κάθε bit του μηνύματος επιδρά σε πολλά bits του κρυπτογράμματος, άρα οι στατιστικές ιδιότητες του
μηνύματος «χάνονται» μέσα στο κρυπτόγραμμα

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 4


Ciphers)
Σημειωματάριο μιας χρήσης
(One-time pad)
„ Ως σημειωματάριο μιας χρήσης (one-time pad) αποκαλείται το
ιδανικό εκείνο κρυπτοσύστημα, όπου το κλειδί είναι τυχαία σειρά bits
με απεριόριστα μεγάλη περίοδο (στην ουσία το μήκος του κλειδιού
είναι ίσο με το μήκος του μηνύματος). Επιπρόσθετα, το ίδιο κλειδί δεν
επαναχρησιμοποιείται ποτέ (κάθε νέο μήνυμα κρυπτογραφείται με
διαφορετικό κλειδί) και τα στοιχεία του κλειδιού δεν σχετίζονται
μεταξύ τους.
„ Ο Shannon (1948) απέδειξε ότι το one-time pad είναι απεριόριστα
ασφαλές.
(“Communication Theory of Secrecy Systems”, Claude Shannon, Bell Syst.
Tech. J. 28, 656-715, 1949)
„ Στην πράξη δεν μπορούμε να έχουμε τυχαίες ακολουθίες, παρά μόνο
ψευδοτυχαίες (που προέρχονται από ντετερμινιστικές μηχανές).
„ Ειδική περίπτωση: αν ο κρυπταλγόριθμος είναι αυτός του Vigenere
και το μήκος του κλειδιού είναι όσο το μήκος του μηνύματος, τότε το
κρυπτοσύστημα ονομάζεται κρυπτοσύστημα Vernam.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 5


Ciphers)

One-time pad (σχηματική


αναπαράσταση)

0 1 1 1 0 0 1 0 1 1 0
pad
⊕ (κλειδί)
1 1 0 0 0 1 1 1 0 1 0 plaintext

1 0 1 1 0 1 0 1 1 0 0 CIPHERTEXT

Σημείωση: Λειτουργία του τελεστή XOR ⊕ :


•a ⊕ b = 0 αν τα a,b είναι ίδια,
• a ⊕ b = 1 αν τα a,b είναι διαφορετικά.
Αντίστοιχα, για πολλές μεταβλητές (π.χ. a ⊕ b ⊕ c ⊕ …..), αν άρτιος αριθμός από αυτές
είναι 1 τότε το αποτέλεσμα είναι 1, αλλιώς το αποτέλεσμα είναι 0.
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 6
Ciphers)
Βασικά στοιχεία
Θεωρίας Πληροφορίας
„ Αν X τυχαία μεταβλητή, με τιμές στο σύνολο {x1, x2,
…, xn} και αντίστοιχες πιθανότητες p1, p2, …, pn, η
εντροπία της ορίζεται ως:
n
1
H (X ) = ∑
i =1
p i log 2 (
pi
)

Η μέγιστη τιμή της εντροπίας είναι log2n και εμφανίζεται αν και


μόνο αν pi=1/n για κάθε i.

„ Η συνδυασμένη εντροπία δύο τυχαίων μεταβλητών


X, Y δίνεται από:
H ( X , Y ) = − ∑ P ( X = x , Y = y ) log 2 ( P ( X = x , Y = y ))
x, y

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 7


Ciphers)

Θεωρία Shannon
„ Η υπό συνθήκη πιθανότητα να εστάλη κρυπτόγραμμα c, δοθέντος του
αρχικού μηνύματος m, ισούται με:

p (c | m ) = ∑ pk
k :E k ( m ) = c

Όπου το κλειδί θεωρείται τυχαία μεταβλητή K, που μπορεί να πάρει


διάφορες τιμές k με αντίστοιχες πιθανότητες pk.

„ Η πιθανότητα να εστάλη κρυπτόγραμμα c ισούται με:

p(c) = ∑p k
{k ,m:Ek ( m ) = c}
p(m)

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 8


Ciphers)
Θεωρία Shannon (II)
„ Η υπό συνθήκη πιθανότητα να εστάλη μήνυμα m, δοθέντος του
λαμβανομένου κρυπτογράμματος c, ισούται με:

p(m) p(c | m)
p(m / c) =
p(c)
„ Αν M συμβολίζει την τυχαία μεταβλητή που αντιστοιχεί στα πιθανά μηνύματα,
τότε η υπό συνθήκη εντροπία του M δοθέντος συγκεκριμένου
κρυπτογράμματος c (p(c) > 0) ισούται με:

Η ( Μ | c ) = − ∑ p( m | c ) log2 p ( m | c )
m
(είναι γενίκευση του κλασικού ορισμού της εντροπίας, για υπό συνθήκη
πιθανότητες)

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 9


Ciphers)

Θεωρία Shannon (III)

„ Η υπό συνθήκη εντροπία του M δοθέντος C (όπου C συμβολίζει την τυχαία


μεταβλητή που αντιστοιχεί στα κρυπτογράμματα) ισούται με:

H ( M | C ) = ∑ p(c) H ( M | c)
c
„ Η διαφορά H(M) – H(M|C) εκφράζει την ελάττωση της αβεβαιότητας του
μηνύματος, που προέρχεται από γνώση του κρυπτογράμματος. Ονομάζεται
και αμοιβαία πληροφορία (mutual information) και συμβολίζεται με I(M|C)
Ένα σύστημα χαρακτηρίζεται ως απολύτως ασφαλές αν
γνώση του κρυπτογράμματος δεν προσφέρει καμία
πληροφορία για το αρχικό μήνυμα. Αυτό σημαίνει p(m|c) =
p(m) για όλα τα m και c. Με άλλα λόγια, οι μεταβλητές M, C
είναι ανεξάρτητες, που σημαίνει I(M|C)=0.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 10


Ciphers)
Απόδειξη του Shannon
για την απεριόριστη ασφάλεια του
σημειωματαρίου μιας χρήσης

Για το one-time pad: Για κάθε μήνυμα m=m1m2...mn και κρυπτόγραμμα


c=c1c2…cn υπάρχει ένα μοναδικό κλειδί k=k1k2…kn τέτοιο ώστε Ek(m)=c
(δηλαδή, αν κάνουμε xor το μήνυμα m με το κλειδί k θα πάρουμε το
κρυπτόγραμμα c). Συνεπώς:

p(m) p(c | m) p( m ) pk
p(m | c) = = = p(m)
p(c) ∑ p(m) pk
m ,k

Νόμος του Bayes (από θεωρία πιθανοτήτων)

αφού pk=1/2n για όλα τα k και ∑ p(m) = 1


m

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 11


Ciphers)

Τι εννοούμε ως τυχαίο κλειδί?


„ Πότε μία ακολουθία μπορεί να χρησιμοποιηθεί σαν
κλειδί σε stream ciphers? Πρέπει να είναι «τυχαία».
Τι εννοούμε όμως με τη λέξη «τυχαία»? (Για
παράδειγμα, είναι προφανές διαισθητικά ότι η
ακολουθία 11111111110 δεν μπορεί να θεωρηθεί
τυχαία). Από την άλλη μεριά, μπορούμε να
ορίσουμε πότε ακριβώς είναι τυχαία η ακολουθία?
„ Έχουν προταθεί κάποια κριτήρια από τον Golomb,
τα οποία αν τα πληρεί μία ακολουθία μπορεί να
θεωρηθεί τυχαία.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 12


Ciphers)
Ιδιότητες ψευδοτυχαίων
ακολουθιών (Αξιώματα Golomb)
Για μία ακολουθία a0a1a2a3…. Με περίοδο Ν=2n-1, πρέπει να ισχύουν τα
εξής:
„ Ισοκατανεμημένο πλήθος 0 και 1 (Balance property)
„ Αν ως διαδρομή (run) ορίζουμε ένα τμήμα οσοδήποτε μήκους μίας
ακολουθίας που αποτελείται μόνο από μηδενικά ή μόνο από άσους,
τότε σε μία περίοδο οι μισές διαδρομές έχουν μήκος 1, το ¼ των
διαδρομών έχουν μήκος 2, το 1/8 μήκος 3 κ.ο.κ. Η ισχύς της
συνθήκης εξετάζεται όσο ο αριθμός των διαδρομών είναι
μεγαλύτερος ή ίσος από 2l, όπου l το μήκος της διαδρομής. (run
property)
„ Η συνάρτηση αυτοσυσχέτισης
N − 1
C (τ ) = ∑i = 0
( − 1) a i ⊕ a i + τ

yια την ακολουθία a0a1… περιόδου N μπορεί να πάρει μόνο δύο


τιμές: να είναι σταθερή (ίση με K) για τ ≠ 0, και τιμή N για τ=0. (two-
level autocorrelation)
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 13
Ciphers)

Παράδειγμα ψευδοτυχαίας
ακολουθίας
„ Έστω η ακολουθία 110100111101000 που επαναλαμβάνεται
περιοδικά.
„ Έχει περίοδο 15=24-1.
„ Σε μία περίοδο έχει 8 άσους και 7 μηδενικά, άρα είναι
ισομοιρασμένα.
„ Έχει 8 διαδρομές: Οι μισές (τέσσερις) έχουν μήκος 1 (το τρίτο,
τέταρτο, ενδέκατο και δωδέκατο bit). To ένα τέταρτο (δύο) των
διαδρομών έχουν μήκος 2 (τα ζευγάρια bits 1-2 και 5-6). Το
ένα όγδοο των διαδρομών (μία) έχει μήκος 3 (τα τρία τελευταία
bits). Για διαδρομή μήκους 4 δεν εξετάζουμε, μια που 8 < 24.
„ Για τ=0, η συνάρτηση αυτοσυσχέτισης ισούται με 15, ενώ για
οποιοδήποτε άλλο τ ισούται με -1.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 14


Ciphers)
Συστήματα στην πράξη

„ Ως γεννήτρια ψευδοτυχαίων bits χρησιμοποιήθηκε


αρχικά ένας γραμμικός καταχωρητής ολίσθησης με
ανάδραση (LFSR)
„ Έχουν καλή μαθηματική περιγραφή και οι ιδιότητές τους
αναλύονται εύκολα
Xor
Message stream

Shift register
⊕ Cipher stream

⊕ Key stream

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 15


Ciphers)

Λειτουργία ενός LFSR


„ Αποτελείται από N βαθμίδες (θέσεις μνήμης): το
περιεχόμενο κάθε μιας είναι είτε 0 είτε 1. Κάποιες από
τις βαθμίδες αυτές γίνονται xor και το αποτέλεσμα
πηγαίνει πίσω στην πρώτη βαθμίδα. Αν ο LFSR
βρίσκεται σε μία κατάσταση (δηλαδή οι βαθμίδες του
έχουν μία συγκεκριμένη τιμή), τότε η επόμενη
κατάστασή του προσδιορίζεται εύκολα από τον
ακόλουθο κανόνα:
{ Όλες οι βαθμίδες (η τιμή τους δηλαδή) ολισθαίνουν κατά μία
θέση δεξιά
{ Η νέα τιμή για την πρώτη βαθμίδα είναι το αποτέλεσμα της
παραπάνω XOR πράξης

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 16


Ciphers)
Σχηματική αναπαράσταση της
λειτουργίας ενός LFSR
Παράδειγμα: LFSR τριών βαθμίδων

Έξοδος


Αν η αρχική κατάσταση είναι 001, τότε η έξοδος είναι 1 (η δεξιότερη βαθμίδα).
Την επόμενη χρονική στιγμή, η κατάσταση θα είναι 100 και η έξοδος 0. Το 100
προκύπτει ως εξής: το «1» είναι το XOR που είχαν αρχικά η δεύτερη και η τρίτη
βαθμίδα (που ήταν 0 και 1 αντίστοιχα), ενώ το «00» είναι απλά ολισθημένες οι τιμές
που είχαν αρχικά η πρώτη με τη δεύτερη βαθμίδα.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 17


Ciphers)

Σχηματική αναπαράσταση της


λειτουργίας ενός LFSR (II)
„ Στον προηγούμενο LFSR, αν θεωρήσουμε ότι η αρχική κατάσταση είναι η 001, οι
διαδοχικές καταστάσεις από τις οποίες περνάει (και η αντίστοιχη έξοδος που παράγεται)
είναι:
Κατάσταση Έξοδος
001 1
100 0
010 0
101 1
110 0
111 1
011 1
001 1

Η 001 έχει ξαναεμφανιστεί, οπότε οι καταστάσεις επαναλαμβάνονται. Άρα,


ο συγκεκριμένος LFSR παράγει την ακολουθία 1001011, η οποία
επαναλαμβάνεται περιοδικά

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 18


Ciphers)
Ιδιότητες LFSRs
„ Ένα LFSR μήκους L μπορεί να περάσει από 2L -1 διαφορετικές
καταστάσεις, άρα μπορεί να γεννήσει ακολουθίες με μέγιστη περίοδο
2L -1.
„ Γενικά, η ακολουθία εξόδου ενός LFSR εξαρτάται τόσο από την
ανάδρασή του όσο και από την αρχική του κατάσταση.
„ LFSRs που επιτυγχάνουν μέγιστη περίοδο ονομάζονται
πρωταρχικοί (primitive). Οι ακολουθίες που παράγονται από
τέτοιους καταχωρητές ονομάζονται ακολουθίες μέγιστου μήκους
(maximal-length sequences ή m-sequences). Ο LFSR στην
προηγούμενη διαφάνεια παράγει προφανώς ακολουθία μέγιστου
μήκους (έχει μήκος 3 και παράγει ακολουθία με μήκος 7). Η έξοδος
έχει πάντα μέγιστη περίοδο σε πρωταρχικούς LFSRs, ανεξάρτητα
της αρχικής τους κατάστασης.
„ Ορισμός: Το μήκος του ελάχιστου LFSR που μπορεί να γεννήσει μία
συγκεκριμένη ακολουθία ονομάζεται γραμμική πολυπλοκότητα
(linear complexity) της ακολουθίας.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 19


Ciphers)

Παράρτημα: πότε ένας LFSR είναι


πρωταρχικός (δηλαδή, πότε παράγει
ακολουθίες μέγιστου μήκους? *

„ Πρωταρχικό πολυώνυμο σε ένα πεπερασμένο


σώμα GF(2L) λέγεται κάθε ανάγωγο πολυώνυμο
που διαρεί το x 2 −1 − 1 , αλλά δεν διαιρεί κανένα
L

της μορφής xn-1 για n < 2L-1. Κάθε πεπερασμένο


σώμα έχει τουλάχιστον ένα πρωταρχικό
πολυώνυμο.
„ Αν τo πολυώνυμο ανάδρασης ενός LFSR με L
βαθμίδες είναι πρωταρχικό ως προς το
πεπερασμένο σώμα GF(2L), τότε η παραγόμενη
ακολουθία έχει περίοδο τη μέγιστη δυνατή,
δηλαδή 2L-1. Το αντίστροφο επίσης ισχύει.
* Εκτός ύλης η συγκεκριμένη διαφάνεια

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 20


Ciphers)
Είναι κατάλληλος ένας LFSR?
„ Παρόλο τις καλές ιδιότητες των LFSR (εύκολη υλοποίηση,
παράγουν ακολουθίες με καλά χαρακτηριστικά
ψευδοτυχαιότητας, «ελέγξιμοι» όσον αφορά το να επιλέγουμε
LFSR που να παράγουν ακολουθίες με μέγιστη περίοδο), εν
τούτοις δεν είναι καλή ιδέα να χρησιμοποιοιούνται έτσι απλά
ως γεννήτριες κλειδοροής:
{ Αν ξέρουμε ένα τμήμα του μηνύματος, τότε στην ουσία ξέρουμε
το αντίστοιχο τμήμα της κλειδοροής, άρα ξέρουμε το αντίστοιχο
τμήμα της τρέχουσας κατάστασης του LFSR!
{ Πρέπει λοιπόν, ως σύστημα παραγωγής της κλειδοροής να
έχουμε μία πιο σύνθετη δομή, έτσι ώστε ακόμα κι αν γνωρίζουμε
τμήμα της κλειδοροής να μην μπορούμε να υπολογίσουμε τμήμα
της κατάστασης της γεννήτριας.
{ Όπως θα δούμε αμέσως τώρα, δεν αρκεί μία σύνθετη δομή:
πρέπει η ακολουθία που παράγεται να μην μπορεί να παραχθεί
από LFSR μικρού μήκους!!

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 21


Ciphers)

Berlekamp – Massey αλγόριθμος


„ Για μία ακολουθία, η οποία μπορεί να προέκυψε από
οποιονδήποτε τρόπο (π.χ. από μη γραμμικό FSRs),
υπάρχουν πάντα κάποιοι LFSR που μπορούν επίσης να την
παράγουν.
„ Το μήκος του μικρότερου LFSR που την παράγει (δηλαδή η
γραμμική της πολυπλοκότητα), παρουσιάζει εξαιρετικό
ενδιαφέρον κρυπτογραφικά λόγω του ακόλουθου:
{ Ο ελάχιστος LFSR που μπορεί να παράγει μία ακολουθία
υπολογίζεται σε πολυωνυμικό χρόνο με τον αλγόριθμο
Berlekamp-Massey (1969).
{ Αν η περίοδος μίας ακολουθίας είναι N και η γραμμική της
πολυπλοκότητα είναι L<N/2, τότε ο μικρότερος LFSR
μήκους L που την παράγει είναι μοναδικός. Για να
υπολογιστεί από τον αλγόριθμο Berlekamp-Massey αυτός ο
LFSR, του αρκεί να γνωρίζει 2L διαδοχικά bits της
ακολουθίας.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 22


Ciphers)
Πού καταλήγουμε?
„ Αν η γραμμική πολυπλοκότητα μίας ακολουθίας
είναι L, τότε ο αλγόριθμος Berlekamp-Massey
χρειάζεται μόνο 2L διαδοχικά bits για να
υπολογίσει τον ελάχιστο LFSR που την
παράγει!!
„ Συμπέρασμα: Μία ακολουθία για να
χρησιμοποιηθεί ως κλειδί στην κρυπτογραφία,
πρέπει να έχει όσο γίνεται υψηλότερη γραμμική
πολυπλοκότητα.
{ Πράγματι, αν έχει μικρή γραμμική πολυπλοκότητα L, τότε
αν ξέρουμε μόνο 2L διαδοχικά bits της ακολουθίας
μπορούμε με τον αλγόριθμο Berlekamp-Massey να
βρούμε τον ελάχιστου μήκους LFSR που την παράγει.
Άρα, ο κρυπταναλυτής μπορεί να κατασκευάσει μία
ισοδύναμη γεννήτρια της κλειδοροής (τον LFSR) οπότε να
επιτύχει πλήρη ανάκτηση του μηνύματος
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 23
Ciphers)

Ακολουθίες μεγίστου-μήκους: μπορούν να


χρησιμοποιηθούν σαν κλειδιά σε
κρυπτογραφικά συστήματα?
„ Οι ακολουθίες μέγιστου μήκους (που παράγονται από
πρωταρχικούς καταχωρητές) πληρούν όλα τα κριτήρια
ψευδοτυχαιότητας του Golomb!! Επιπλέον, για μεγάλη τιμή του L,
έχουν μεγάλη περίοδο (2L-1). Όλες αυτές οι ιδιότητες τις κατέστησαν
κατ’ αρχήν εφαρμόσιμες στην κρυπτογραφία .
„ Ωστόσο, αφού έχουν την ελάχιστη δυνατή γραμμική
πολυπλοκότητα, ο αλγόριθμος Berlekamp-Massey τις
καθιστά τελείως ακατάλληλες για την κρυπτογραφία!!!!
{ Για παράδειγμα, ας σκεφτούμε μία ακολουθία μέγιστου μήκους
με περίοδο 2128-1 (πολύ μεγάλη περίοδος – είναι αυτή που
χρησιμοποιείται σήμερα). Αν και ψευδοτυχαία με βάση τα
κριτήρια Golomb, η γραμμική της πολυπλοκότητα είναι μόλις
128 (υπάρχει δηλαδή LFSR μήκους 128 που την παράγει –
συγκεκριμένα, ο αντίστοιχος πρωταρχικός LFSR με 128
βαθμίδες). Συνεπώς, αν κανείς γνωρίζει μόλις 256 διαδοχικά
bits της κλειδοροής, μπορεί να υπολογίσει ολόκληρη τη
κλειδοροή, δηλαδή όλα τα 2128-1 bits!!!
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 24
Ciphers)
Γεννήτριες ψευδοτυχαίων
ακολουθιών – μη γραμμικά φίλτρα

„ Για να πάρουμε ακολουθίες με μεγάλη γραμμική


πολυπλοκότητα, καταφεύγουμε στην πράξη σε κάποιο από
τα ακόλουθα σχήματα:
1. Εφαρμογή μη γραμμικής συνάρτησης f (φίλτρου) στις βαθμίδες
ενός LFSR (filter function generators – Key (1973))
Μη γραμμικό φίλτρο f Η μέγιστη τιμή που
Παραγόμενο κλειδί
μπορεί να έχει η
γραμμική
πολυπλοκότητα του
παραγόμενου
κλειδιού (keystream)
Ανάδραση στον LFSR
είναι:
όπου m το μέγιστο πλήθος βαθμίδων του LFSR που συνδυάζονται
σε ένα γινόμενο από την f
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 26
Ciphers)

Γεννήτριες ψευδοτυχαίων ακολουθιών


– συνδυαστικές συναρτήσεις

2. Οι έξοδοι πολλών LFSRs περνούν από μία μη γραμμική


συνάρτηση (combinatorial function generators)

Αν L1, L2,…,Ln είναι οι γραμμικές


πολυπλοκότητες (ανά δύο διαφορετικές μεταξύ
τους) των ακολουθιών που παράγονται από
τους καταχωρητές, τότε η γραμμική
πολυπλοκότητα του παραγόμενου κλειδιού
(keystream) ισούται με: f(L1,L2,…,Ln)

Για παράδειγμα, αν n=4 και f=x1x3 + x2 + x2x3x4, τότε: Lkeystream=L1L3 + L2 + L2L3L4

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 27


Ciphers)
Παράδειγμα –
Geffe generator

•Ο κάθε LFSR έχει μήκος LI, i=1,2,3, πρώτα μεταξύ τους, και μέγιστη περίοδο
2Li-1
•Έξοδος z(t)=x1x2 ⊕ x2x3 ⊕ x3
•Η ακολουθία εξόδου z έχει μεγάλη περίοδο: (2 L − 1)( 2 L − 1)( 2 L − 1)1 2 3

•Η γραμμική πολυπλοκότητα της εξόδου ισούται με: L=L1L2 + L2L3 + L3


Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 28
Ciphers)

Ασφάλεια Geffe generator


„ Όχι ασφαλής: Ας παρατηρήσουμε ότι:
P( z (t ) = x1 (t )) = P ( x2 (t ) = 1) + P( x2 (t ) = 0) P ( x3 (t ) = x1 (t )) =
1 11 3
= + = Ομοίως μπορεί να δειχτεί ότι P(z(t)=x3(t))=3/4
2 22 4
„ Υπόκειται σε correlation κρυπτανάλυση λόγω της παραπάνω παρατήρησης
(Μέθοδος που στηρίζεται στην εξάρτηση της εξόδου κάποιας συνάρτησης
από κάποιες συγκεκριμένες εισόδους). Βασική της ιδέα είναι η εξής: αν η
έξοδος ταυτίζεται με την έξοδο κάποιου από τους καταχωρητές με πιθανότητα
p > ½, τότε αν ένα ικανοποιητικά μεγάλο τμήμα του κλειδιού είναι γνωστό,
μπορεί να ευρεθεί η αρχική κατάσταση του εν λόγω καταχωρητή.
„ Συμπέρασμα: η συνάρτηση f σε τέτοιου τύπου γεννήτριες ψευδοτυχαίων
ακολουθιών δεν πρέπει να εμφανίζει στατιστική εξάρτηση της εξόδου με
κάποιο υποσύνολο των εισόδων της.
(αυτές οι συναρτήσεις χαρακτηρίζονται ως ανεπηρέαστες στη συσχέτιση –
correlation immune)

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 29


Ciphers)
Γεννήτριες ψευδοτυχαίων ακολουθιών
– ελεγχόμενες από ρολόι

3. To ρολόι ενός LFSR είναι η έξοδος κάποιου άλλου LFSR


(clocked-controlled generators)

Για καλή έξοδο, οι καταχωρητές πρέπει να είναι όλοι πρωταρχικοί, και


παραπλήσιου μεγέθους μεταξύ τους.

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 30


Ciphers)

Γεννήτριες ψευδοτυχαίων ακολουθιών


– γεννήτριες σμίκρυνσης (shrinking
generators)
4. Ένας LFSR καθορίζει το αν θα λαμβάνεται ή όχι υπ’όψιν η
έξοδος ενός άλλου LFSR (shrinking generator – Coppersmith
– Krawczys – Mansour (1993))

Αν L1, L2 οι γραμμικές πολυπλοκότητες των R1, R2 αντιστοίχως, τότε


για τη γραμμική πολυπλοκότητα L του παραγομένου κλειδιού ισχύει η
σχέση: L −2 L −1
L2 ⋅ 2 1
≤ L ≤ L2 ⋅ 2 1

Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 31


Ciphers)
Αρχή του Kerchoff στους
κρυπταλγόριθμους ροής
„ Σε όλα τα συστήματα στην πράξη, ο τρόπος
γέννησης της ψευδοτυχαίας ακολουθίας της
κλειδοροής είναι γνωστός (δηλαδή το ποιοι ακριβώς
καταχωρητές χρησιμοποιούνται, με τι συναρτήσεις
κ.ο.κ.).
„ Αυτό που παραμένει κρυφό (και στην ουσία
παρέχει την ασφάλεια) είναι η αρχική κατάσταση
των καταχωρητών. Αυτό είναι και το κλειδί στους
αλγορίθμους ροής. Βέβαια, οι καταχωρητές που
χρησιμοποιούνται στην πράξη είναι πολλών
βαθμίδων (το λιγότερο 128), έτσι ώστε να μη
μπορεί να βρει κανείς την αρχική κατάστασή τους
με εξαντλητικές δοκιμές.
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 33
Ciphers)

Κάποιοι σημαντικοί stream ciphers


που χρησιμοποιούνται σήμερα
„ SEAL (το paper υπάρχει στο:
http://www.cs.ucdavis.edu/~rogaway/papers/seal-abstract.html)
„ RC4 (χρησιμοποιείται σε πολλά προϊόντα, όπως Oracle Secure
SQL, Apple’s Computer’s AOCE). Επίσης στο πρωτόκολλο SSL
στο Internet.
http://www.wisdom.weizmann.ac.il/~itsik/RC4/rc4.html για
περιγραφή και περαιτέρω αναφορές
„ A5/1 (χρησιμοποιείται στις GSM επικοινωνίες)
(http://cryptome.org/a51-bsw.htm)
„ E0 (χρησιμοποιείται στην bluetooth επικοινωνία)
„ Λίστα stream ciphers, με πολύ βιβλιογραφικό υλικό:
http://homes.esat.kuleuven.be/~jlano/stream/designs.htm
„ Πολύ πρόσφατοι αλγόριθμοι (από το eStream Project) που
«άντεξαν» σε όλες τις γνωστές κρυπταναλυτικές επιθέσεις: Trivium,
Grain, MICKEY, HC-128, Rabbit, Salsa 20/12, Sosemanuk (με
βάση την αναφορά από το eStream Project, Σεπτέμβριος 2008)
Κώστας Λιμνιώτης Κρυπτογραφία - 2 (Αλγόριθμοι ροής - Stream 34
Ciphers)
Κεφάλαιο 3
Αλγόριθμοι τμήματος –
Block ciphers

Αλγόριθμοι τμήματος

Τμήμα (μπλοκ) αρχικού μηνύματος μήκους n

encrypt decrypt

Τμήμα (μπλοκ) κρυπτογράμματος μήκους n

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 2


ciphers)
Σχηματική αναπαράσταση
Το ίδιο κλειδί χρησιμοποιείται
για την κρυπτογράφηση και την
αποκρυπτογράφηση και στα δύο μέρη.
Μέθοδος
Plaintext κρυπτογρά-
Ciphertext “11011101”
“Hello” φησης
και κλειδί Επιτιθέμενος
Δίκτυο μετάδοσης

Αποστολέας Μέθοδος
Ciphertext “11011101” αποκρυπτο- Plaintext
Η κρυπτογράφηση λαμβάνει γράφησης “Hello”
χώρα σε τμήματα του και κλειδί
μηνύματος και όχι bit προς bit
Παραλήπτης
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 3
ciphers)

Βασικές αρχές του Claude


Shannon
„ Το1949 ο Claude Shannon εισήγαγε την ιδέα των
δικτύων αντικατάστασης-μετάθεσης (substitution-
permutation (S-P) networks ή ΔΑΜ)
„ Αποτελούν τη βάση των μοντέρνων αλγορίθμων
τμήματος
„ Τα ΔΑΜ βασίζονται σε δύο βασικούς
κρυπτογραφικούς μετασχηματισμούς:
{ αντικατατάσταση (S-box)
{ μετάθεση (P-box)
„ Παρέχουν σύγχυση (confusion) και διάχυση
(diffusion) αντιστοίχως στο μήνυμα
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 4
ciphers)
Δίκτυα αντικατάστασης-
μετάθεσης κατά Shannon
Δομικά στοιχεία:
• μικρά «κουτιά», κατάλληλα S S .... S
σχεδιασμένα, που κάνουν
αντικατάσταση (substitution P
boxes ή s-boxes)
•Η έξοδός τους περνάει από ένα
S S .... S

«κουτί» που κάνει μετάθεση

...
(permutation box ή p-box)
•Αυτό επαναλαμβάνεται πολλές
φορές S S .... S

•Με τον όρο «κουτί» (box)


εννοούμε μία συνάρτηση (έναν
μετασχηματισμό)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 5


ciphers)

Δομή του δικτύου Feistel


„ Ο Horst Feistel όρισε τον
αλγόριθμο Feistel (ή δίκτυο
Feistel) βασισμένο στις
παραπάνω αρχές του
Shannon, ο οποίος ορίζεται
ως εξής (βλέπε σχήμα):
„ Η συνάρτηση f μπορεί να
είναι οποιαδήποτε,
αποτελούμενη όμως από
κουτιά αντικατάστασης και
μετάθεσης.
„ Αν τα δύο τμήματα στα οποία
χωρίζεται το αρχικό μπλοκ
μηνύματος είναι ίσα, τότε το
δίκτυο Feistel λέγεται
ισορροπημένο (η πιο
συνήθης περίπτωση)
„ Η δομή επαναλαμβάνεται σε
πολλούς γύρους (rounds)
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 6
ciphers)
Γενικά χαρακτηριστικά των
δικτύων Feistel
„ Μέγεθος μπλοκ
{ Όσο πιο μεγάλο το μπλοκ τόσο μεγαλύτερη η ασφάλεια, αλλά και
τόσο μικρότερη η ταχύτητα
„ Μέγεθος κλειδιού
{ Πρέπει να είναι όσο γίνεται πιο μεγάλο (αν και πολύ μεγάλες
τιμές ίσως κάνουν υπερβολικά αργό το όλο σύστημα)
„ Αριθμός γύρων
{ Όσο πιο πολλοί τόσο πιο ασφαλής ο αλγόριθμος, αλλά και τόσο
πιο αργός
„ Συνάρτηση f
{ Όσο πιο σύνθετη είναι, τόσο πιο δύσκολο κάνει το έργο ενός
κρυπταναλυτή: αλλά από την άλλη κάνει το σύστημα πιο αργό.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 7


ciphers)

Ένας γύρος στο δίκτυο Feistel


Li Ri

S
S
P
S
S

Li+1 Ri+1

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 8


ciphers)
Τρόποι λειτουργίας
Block Ciphers (Ι)
„ Ηλεκτρονικό κωδικοβιβλίο (Electronic
Codebook (ECB) mode): το κλειδί
κρυπτογραφεί το κάθε block στο
αντίστοιχο κρυπτόγραμμα. Δύο ίδια
μηνύματα οδηγούν πάντα στο ίδιο
κρυπτογραμμα (αν τους εφαρμοστεί
το ίδιο κλειδί). Άρα, δεν συνίστανται
σε εφαρμογές όπου υπάρχουν
επαναλαμβανόμενα μοτίβα
δεδομένων στο αρχικό μήνυμα.
Ένα λάθος στη λήψη επηρεάζει το
συγκεκριμένο block μόνο.

• Κρυπτογράφηση για 1 ≤ j ≤ t: cj= EK(xj)


• Αποκρυπτογράφηση για 1 ≤ j ≤ t: xj= EK-1(cj)
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 9
ciphers)

Τρόποι λειτουργίας
Block Ciphers (ΙΙ)
„ Κρυπταλγόριθμος αλυσιδωτού τμήματος
(Cipher block chaining (CBC) mode): το
αρχικό μήνυμα υποβάλλεται XOR με το
προηγούμενο κρυπτόγραμμα, πριν την
κρυπτογράφηση. Συνεπώς, το κάθε
κρυπτόγραμμα εξαρτάται από όλα τα
προηγούμενα μηνύματα (άρα, δύο ίδια
μοτίβα δεν οδηγούν σε ίδια
κρυπτογράμματα). Λάθος κατά τη
μετάδοση σε ένα απλό bit του
κρυπτογράμματος (που μπορεί να
οφείλεται είτε σε σφάλμα μετάδοσης είτε
σε παρεμβολή ενός «επιτιθέμενου»)
προκαλεί λάθος σε δύο block του
αποκρυπτογραφημένου κειμένου.
•IV: διάνυσμα αρχικοποίησης
•Κρυπτογράφηση για 1 ≤ j ≤ t: cj=EK(xj ⊕ Cj-1), C0=IV
•Αποκρυπτογράφηση για 1 ≤ j ≤ t: xj= EK-1(cj) ⊕ cj-1
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 10
ciphers)
Κρυπταλγόριθμος αλυσιδωτού
τμήματος (συνέχεια)
„ Είναι κρίσιμο το να ξέρουν και ο πομπός και ο δέκτης το διάνυσμα αρχικοποίησης.
Αφενός μεταδίδεται από τον έναν στον άλλον κρυπτογραφημένο με ECB,
αφετέρου εφαρμόζεται και συνάρτηση κατακερματισμού για έλεγχο της
ακεραιότητάς του. Αν κάποιος εχθρός το μεταβάλλει κατά τη μετάδοσή του, ο
παραλήπτης θα ανιχνεύσει τη μεταβολή αυτή.
„ Είδαμε ήδη ότι αν συμβεί σφάλμα στη μετάδοση του κρυπτογράμματος, το
σύστημα τελικά μετά από δύο λανθασμένες αποκρυπτογραφήσεις θα επανέλθει.
Αυτό λέγεται ιδιότητα της αυτοεπούλωσης (self healing). Όμως, αν ο επιτιθέμενος
παρεμβάλλει bits, τότε χάνεται ο συγχρονισμός και το σύστημα δεν μπορεί να τον
επανακτήσει.
„ CBC κρυπτογράφηση εφαρμόζεται επίσης για λόγους πιστοποίησης
ταυτότητας και εξασφάλισης της ακεραιότητας δεδομένων.
δεδομένων. Ο αποστολέας
κρυπτογραφεί το μήνυμα και επισυνάπτει το τελευταίο μπλοκ του
κρυπτογράμματος (που εξαρτάται από όλα τα προηγούμενα μπλοκ
κρυπτογράμματος και, και, κατ’
κατ’ επέκταση,
επέκταση, από ολόκληρο το μήνυμα)
μήνυμα) στο αρχικό
μήνυμα.
μήνυμα. Ο παραλήπτης κρυπτογραφεί το μήνυμα με τον ίδιο αλγόριθμο σε
CBC και ελέγχει αν το τελευταίο μπλοκ του κρυπτογράμματος που βρίσκει
ταυτίζεται με το αντίστοιχο που του έστειλε ο αποστολέας.
αποστολέας.
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 11
ciphers)

Τρόποι λειτουργίας
Block Ciphers (III)
„ Κρυπταλγόριθμος ανάδρασης (Cipher
Feedback (CFB) mode): Τα δεδομένα
κρυπτογραφούνται r bits τη φορά. Υπάρχει
ένας καταχωρητής ολίσθησης, μεγέθους
όσο το μέγεθος του μπλοκ. Κάθε χρονική
στιγμή, τα περιεχόμενα του καταχωρητή
ολίσθησης κρυπτογραφούνται: από το
αποτέλεσμα που προκύπτει, τα r
αριστερότερα bits γίνονται xor με τα r bits
του μηνύματος και προκύπτουν r bits
κρυπτογράμματος. Αυτά για την επόμενη
χρονική στιγμή πηγαίνουν στον
καταχωρητή ολίσθησης, ο οποίος για να
μπορεί να τα «χωρέσει» αποβάλλει τα r
αριστερότερά του bits.

Κρυπτογράφηση: I1=IV,
Οj = EK(Ij), 1 ≤ j ≤ u, tj: τα r πιο αριστερά bits του Οj ,
cj = xj ⊕ tj , Ij+1 = 2r Ij + cj mod 2n
Αποκρυπτογράφηση: Ι1 =IV, xj = cj ⊕ tj
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 12
ciphers)
Κρυπταλγόριθμος ανάδρασης
(συνέχεια)
„ Πέφτει η απόδοση (throughput) του συστήματος σε σχέση
με το CBC κατά έναν παράγοντα n/r (όπου n το πλήθος
bits του block).
„ Λάθος σε ένα bit κρυπτογράμματος επηρεάζει το πολύ τις
επόμενες [n/r] αποκρυπτογραφήσεις (το πολύ για [n/r]
χρονικές στιγμές θα παραμείνει στον καταχωρητή το
λανθασμένο bit, άρα τόσες αποκρυπτογραφήσεις θα είναι
λανθασμένες).

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 13


ciphers)

Τρόποι λειτουργίας
Block Ciphers (IV)
„ Ανάδραση εξόδου (Output Feedback
(OFB) mode): σχεδόν ίδιο με το CFB,
αλλά με έναν μηχανισμό για την μείωση
των λαθών. Η έξοδος της συνάρτησης
κρυπτογράφησης F (και όχι το
κρυπτόγραμμα) χρησιμοποιείται στην
ανάδραση. Έτσι ένα σφάλμα στο
κρυπτόγραμμα επηρεάζει μόνο μία
αποκρυπτογράφηση. Κατάλληλο για
εφαρμογές με μεγάλο αριθμό
σφαλμάτων λόγω υψηλού βαθμού
θορύβου (π.χ. δορυφορικές
επικοινωνίες).
„ Μοιάζει πολύ σαν δομή με
κρυπταλγόριθμο ροής

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 14


ciphers)
Τρόποι λειτουργίας
Block Ciphers (V)
Τρέχουσα τιμή του μετρητή (v) Τρέχουσα τιμή του μετρητή (v+1)
„ Τρόπος λειτουργίας μετρητή
(CTR - CounTeR mode):
Χρησιμοποιείται μετρητής
μήκους n, όπου n το μέγεθος του
τμήματος του κρυπταλγορίθμου
τμήματος. Ο αλγόριθμος
τμήματος κρυπτογραφεί κάθε
φορά το περιεχόμενο του Τρέχουσα τιμή του μετρητή (v) Τρέχουσα τιμή του μετρητή (v+1)

αθροιστή, και η έξοδός του


γίνεται XOR με το τμήμα του
μηνύματος.
„ Ο μετρητής ξεκινά τη μέτρηση
από μία τυχαία αρχική τιμή (IV).

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 15


ciphers)

“Λεύκανση” (whitening)
„ Είναι η τεχνική κατά την οποία πριν
από έναν γύρο ενός block cipher, τόσο
ένα τμήμα της εισόδου όσο κι ένα
τμήμα της εξόδου γίνεται XOR με το
κλειδί. Αυτό καθιστά το σύστημα πιο
ασφαλές ως προς επιθέσεις γνωστού
αρχικού μηνύματος (known plaintext
attack).
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 16
ciphers)
Χαρακτηριστικά σχεδίασης
block ciphers
„ Στόχοι
{ Μεγάλη ταχύτητα
{ Χαμηλή κατανάλωση ισχύος
{ Εύκολη hardware υλοποίηση (απλές πράξεις)
{ Αποδοτική χρήση μνήμης
„ Να μπορεί να εφαρμοστεί σε smart card
{ Να μη χρειάζεται μεγάλη ποσότητα μυστικών
πληροφοριών για να είναι ασφαλής
{ Μεγάλου μήκους κλειδί

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 17


ciphers)

Data Encryption Standard


(DES)
„ Ανάγκη προτυποποίησης, για τη συνεργασία software and
hardware.
„ Το 1973, ο οργανισμός NIST (National Institute for Standards
and Technology) έθεσε μία δημόσια πρόσκληση για προσφορές
κρυπτογραφικών αλγορίθμων. Τα εξής επιθυμητά
χαρακτηριστικά τέθηκαν:
{ Παροχή υψηλού επιπέδου προστασίας
{ Πλήρως και με σαφήνεια ορισμένο
{ Η ασφάλεια να έγκειται στην ύπαρξη κλειδιού
{ Διαθεσιμότητα για τον οποιονδήποτε
{ Προσαρμοστικότητα σε ποικίλες εφαρμογές
{ Οικονομική hardware υλοποίηση
{ Αποδοτικό στη χρήση
{ Αξιόπιστο (validated)
{ Δυνατότητα φορητότητας (exportable)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 18


ciphers)
Data Encryption Standard
(DES)
„ H βασική πρόταση ήταν ο αλγόριθμος Lucifer (IBM)
„ Υπήρξαν αμφισβητήσεις ότι ο NIST «επηρέασε» τον
αλγόριθμο
„ Νέα πρόταση από τον NIST (1976)
„ 23 Νοεμβρίου 1976: Ο DES ορίστηκε σαν καθολικό
πρότυπο
„ Ανανέωση της έγκρισης του DES ως πρότυπο κάθε 5
χρόνια
„ Το 1987, αν και δεν είχε αποδειχτεί ενδεχόμενη μη-
ασφάλειά του, άρχισαν οι πρώτες έντονες
αμφισβητήσεις

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 19


ciphers)

Data Encryption Standard


(DES)
64-Bit DES συμμετρικό κλειδί
(56 bits + 8 bits ισοτιμίας)
64-Bit Block
Αρχικού μηνύματος

DES
Κρυπτογράφηση

64-Bit Block
Κρυπτογράμματος
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 20
ciphers)
Data Encryption Standard
(DES)

{ 64-bit blocks
{ 56-bit κλειδί
{ 16 γύροι
{ Στην αρχή και στο
τέλος πραγματοποιείται
αλληλομετάθεση των
bits)
{ To κλειδί ολισθαίνει
κυκλικά σε κάθε γύρο,
και 48 bits από αυτά
χρησιμοποιούνται

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 21


ciphers)

DES (συνέχεια)
„ Ένα αρχικό μπλοκ T υποβάλλεται πρώτα σε
μία μετάθεση IP, έχοντας ως αποτέλεσμα
T0=IP(T).
{ Παράδειγμα: t1t2…t64Ît58t50…t7
„ Στη συνέχεια το T0 περνάει μέσα από 16
επαναλήψεις μίας συνάρτησης f.
„ Τέλος, υποβάλλεται στην αντίστροφη
μετάθεση IP-1 δίνοντας το τελικό
κρυπτόγραμμα.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 22


ciphers)
Πίνακες αρχικής μετάθεσης
του DES

Το 58ο bit πηγαίνει στην πρώτη θέση, το 50ο στη δεύτερη κ.ο.κ.
Το IP-1 είναι ακριβώς το αντίστροφο του IP

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 23


ciphers)

Παράδειγμα αρχικής
μετάθεσης στον DES

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 24


ciphers)
DES (συνέχεια)
„ Αν Ti συμβολίζει την έξοδο από τη i-οστή
επανάληψη, και Li,Ri συμβολίζουν το αριστερό και
το δεξί μισό του Ti αντίστοιχα, τότε:
Li=Ri-1
Ri=Li-1⊕ f(Ri-1, Ki)
όπου ⊕ υποδηλώνει την XOR πράξη και K είναι το
48-bit κλειδί.
„ Μετά την τελευταία επανάληψη,τα δύο μισά του Τ15
δεν αλλάζουν, απλά τους εφαρμόζεται το IP-1.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 25


ciphers)

DES (σχηματικό διάγραμμα)


Έχει δομή δικτύου Feistel

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 26


ciphers)
DES (συνέχεια)
„ Υπολογισμός της συνάρτησης f(Ri-1, Ki):
1. Χρήση ενός πίνακα επέκτασης E για τη μετατροπή του
32-bit Ri-1 σε ένα block 48-bit E(Ri-1).
2. Υπολογισμός του exclusive-or μεταξύ E(Ri-1) και Ki. Στη
συνέχεια το αποτέλεσμα διασπάται σε 8 blocks B1, …, B8
των 6 bit το καθένα.
3. Κάθε 6-bit Bj b1b2b3b4b5b6 χρησιμοποιείται ως είσοδος σε
ένα «κουτί» που υλοποιεί substitution (S-box) και
επιστρέφει ένα 4-bit block Sj(Bj).
b1b6Æκαθορίζουν τη γραμμή του S-box
b2b3b4b5Æ καθορίζουν τη στήλη του S-box
4. Οι έξοδοι των S-boxes υποβάλλονται σε μία μετάθεση,
όπως αυτή ορίζεται από έναν πίνακα μετάθεσης P.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 27


ciphers)

DES – Παράδειγμα ενός


γύρου (συνάρτηση f)
„ Το 64-bit block εισόδου διαιρείται σε δύο block των 32-bit:
{ Block εισόδου (64 bits)
„ 11100010101110100011100011001101100000101001110111010011101
01100
{ Αριστερό μισό = 11100010101110100011100011001101
{ Δεξιό μισό = 10000010100111011101001110101100
„ To δεξιό μισό υπόκειται σε μετάθεση – επέκταση, βάση του
κατάλληλου πίνακα επέκτασης E. Προκύπτουν έτσι 48 bits,
που είναι αναδιάταξη των αρχικών, ενώ κάποια εμφανίζονται
σε περισσότερες από μία θέσεις.

Πίνακας
Επέκτασης E

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 28


ciphers)
DES – Δράση του πίνακα E
„ Δεξιό μισό block (32 bits):
{ 10000010100111011101001110101100

48 bit εξόδου:
{ 010000000101010011111011111010100111110101011001

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 29


ciphers)

DES – XOR με το κλειδί


„ Μία exclusive-or (XOR) λειτουργία πραγματοποιείται μεταξύ
των 48 bit της εξόδου του πίνακα E και του τμήματος κλειδιού
που αντιστοιχεί σε αυτόν τον γύρο:

„ Τα νέα 48 bits περνάνε από τα S-boxes

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 30


ciphers)
DES – S-boxes
„ 8 διαφορετικά S-boxes
„ Κάθε S-box έχει 6 εισόδους και παράγει 4 bits εξόδου:

„ Τα bits 1-6 είναι η είσοδος στο πρώτο S-box


„ Τα bits 7-12 είναι η είσοδος στο δεύτερτο S-box κ.ο.κ.
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 31
ciphers)

DES – Λειτουργία των S-box


„ Κάθε S-box έχει 4 γραμμές και 16 στήλες
„ Παράδειγμα - S-box 1:

„ To πρώτο και το έκτο bit από τις εισόδους ενός S-box συνιστούν ένα
δυαδικό αριθμό που καθορίζει μία από τις 4 γραμμές
{ 00 για την πρώτη γραμμή, 01 για τη δεύτερη γραμμή, 10 για την
τρίτη γραμμή, και 11 για την τέταρτη γραμμή
„ Τα μεσαία 4 bits συνιστούν ένα δυαδικό αριθμό που καθορίζει μία από
τις 16 στήλες
{ 0000 για την πρώτη στήλη, 0001 για τη δεύτερη στήλη, . . ., και
1111 για την δέκατη έκτη στήλη

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 32


ciphers)
DES – Λειτουργία των S-box (II)

„ Παράδειγμα για το πρώτο S-box:

„ 011010 (είσοδος) = γραμμή 1, στήλη 14 = 9 = 1001 (έξοδος)


„ 110010 (είσοδος) = γραμμή 3, στήλη 10 = 12 = 1100 (έξοδος)
„ 000011 (είσοδος) = γραμμή 2, στήλη 2 = 15 = 1111 (έξοδος)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 33


ciphers)

DES – Tα 8 S-boxes

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 34


ciphers)
DES – Παράδειγμα της
λειτουργίας των S-boxes
„ Για τα 48 bits που έχουμε:
{ 110011111011001001001011100101110100010001001001

„ 32-bit έξοδος:
{ 10110101001111111100010011101010

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 35


ciphers)

DES – Μετάθεση (P-box)


„ Η 32-bit έξοδος από τα S-boxes περνά από ένα P-box. Αυτό
μεταθέτει τα bits, με βάση τον πίνακα:

Πίνακας Μετάθεσης P

{ To 1o bit εξόδου από το P-box θα είναι το 16ο bit της


εισόδου κ.ο.κ.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 36


ciphers)
DES – Παράδειγμα P-box
„ Για την 32-bit έξοδο των S-boxes:
{ 10110101001111111100010011101010

„ Η 32-bit έξοδος από το P-box:


{ 10001101110101100101011001011111

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 37


ciphers)

DES – Δεύτερη XOR


Λειτουργία
„ Η 32-bit έξοδος από το P-box γίνεται XOR με το αριστερό μισό
του αρχικού 64-bit block εισόδου:
{ Έξοδος από P-box (32 bits)

„ 10001101110101100101011001011111
{ Αριστερό μισό του block εισόδου (32 bits)

„ 11100010101110100011100011001101

„ Tα 32 bit αποτελέσματος :
{ 01101111011011000110111010010010

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 38


ciphers)
DES - Έξοδος ενός γύρου
„ Tο 32-bit δεξιό μισό του αρχικού μηνύματος ενώνεται με την
έξοδο του δεύτερου XOR. Το αποτέλεσμα θα είναι η έξοδος
του γύρου αυτού
{ Δεξιό μισό του αρχικού block (32 bits):
„ 10000010100111011101001110101100
{ Έξοδος από το δεύτερο XOR (32 bits):
„ 01101111011011000110111010010010
{ Έξοδος του γύρου (64 bits):
„ 1000001010011101110100111010110001101111011
011000110111010010010

„ Η 64-bit έξοδος του γύρου k είναι η είσοδος στο γύρο k+1

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 39


ciphers)

DES (εσωτερική συνάρτηση f)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 40


ciphers)
DES (υπολογισμός κλειδιού)
„ Υπολογισμός κλειδιού
{ Κάθε επανάληψη i χρησιμοποιεί ένα
διαφορετικό 48-bit κλειδί Ki που προέρχεται
από το αρχικό κλειδί K: αυτό αποτελείται
από 56 bit συν 8 bits ισοτιμίας στις θέσεις 8,
16, …, 64.
{ Το PC-1 διώχνει τα bits ισοτιμίας και
αλληλομεταθέτει τα εναπομείναντα 56 bits
για να προκύψει το PC-1(K).
Ci=LSi(Ci-1), Di=LSi (Di-1)
{ Ki=PC-2(CiDi).
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 41
ciphers)

Πίνακες PC1 και PC2


εξαγωγής του κλειδιού

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 42


ciphers)
Σχηματικό διάγραμμα
δημιουργίας κλειδιού στον DES

key

PC-1

C0 D0

LSH LSH
PC-2 K1

C1 D1

LSH LSH
PC-2 K16

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 43


ciphers)

Ένας γύρος στον DES


(σύνοψη)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 44


ciphers)
DES (συνέχεια)

„ Αποκρυπτογράφηση
{ Ο ίδιος αλγόριθμος χρησιμοποιείται,
εκτός του ότι αντιστρέφεται η σειρά
χρησιμοποίησης των κλειδιών κάθε
γύρου. Έτσι, το K16 χρησιμοποιείται στην
πρώτη επανάληψη, το K15 στη δεύτερη
κ.ο.κ.
„ Τρόποι λειτουργίας: ECB, CBC
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 45
ciphers)

DES-CBC
(DES-Cipher Block Chaining)
Πρώτο DES κλειδί
64-Bit Block
αρχικού μηνύματος

DES κλειδί
Δεύτερο
Διάνυσμα DES κρυπτογράφηση
Αρχικοποίησης (IV) 64-Bit Block
αρχικού μηνύματος

Πρώτο
64-Bit Block DES κρυπτογράφηση
κρυπτογράμματος

Δεύτερο
64-Bit Block
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block κρυπτογράμματος 46
ciphers)
Χαρακτηριστικά του DES
που προάγουν ασφάλεια

{ Η επέκταση του Ri από 32 σε 48 bits (όσο το


μέγεθος του κλειδιού) προκαλεί διάχυση
(diffusion) – κάποια bits εμφανίζονται 2 φορές
{ Τα S-boxes έχουν επιλεγεί έτσι ώστε να είναι
ισχυρά μη γραμμικά

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 47


ciphers)

Ανεπιθύμητα χαρακτηριστικά
του DES
♦ 4 μη ασφαλή κλειδιά
(π.χ. 00….011…1)

♦ 12 ημι-ανασφαλή (semi-weak) κλειδιά


(ζευγάρια κλειδιών που οδηγούν στο ίδιο κρυπτόγραμμα ένα δεδομένο αρχικό μήνυμα)

♦ Συμπληρωματική ιδιότητα
– DESk(m) = c ⇒ DESk´(m´) = c´

♦ Κάποιες όχι καλές ιδιότητες των S-boxes


– Όχι τυχαία κατανομή μονών και ζυγών αριθμών
– Ο NIST άλλαξε τα S-boxes που είχε προτείνει αρχικά η ομάδα σχεδίασης του DES,
και αυτό πάντα γεννούσε ερωτηματικά.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 48


ciphers)
Κρυπτανάλυση στον DES
„ Όντας πρότυπο για πολλά χρόνια, ο DES κίνησε το
ενδιαφέρον πολλών κρυπταναλυτών για την εύρεση
μεθόδων που θα μπορούσαν να τον «σπάσουν»
„ Βασικοί αλγόριθμοι κρυπτανάλυσης
{ Διαφορική κρυπτανάλυση (differential
cryptanalysis – Biham and Shamir (1990)
{ Γραμμική κρυπτανάλυση (linear cryptanalysis –
Matsui (1993)
„ Οι μέθοδοι αυτές εφαρμόζονται σε κάθε νέο
αλγόριθμο που προτείνεται, για τον έλεγχο της
ασφάλειάς του
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 49
ciphers)

Διαφορική Κρυπτανάλυση
„ Εξετάζει ζεύγη κρυπτογραμμάτων, των οποίων τα αρχικά
μηνύματα διαφέρουν σε συγκεκριμένες θέσεις (chosen-
plaintext attack)
„ Προσομοιώνοντας τον αλγόριθμο, κάποια κλειδιά είναι πιο
πιθανά από κάποια άλλα, με δεδομένη την παραπάνω
συνθήκη
„ Όσο πιο πολλά κρυπτογράμματα αναλύονται, τόσο πιο πολλά
κλειδιά «απορρίπτονται» ως λιγότερο πιθανά
„ Οι λεπτομέρειες της μεθόδου πολύ σύνθετες
„ Οι 8 γύροι του DES «σπάνε» με γνωστά 214 επιλεγμένα
αρχικά μηνύματα (chosen plaintexts). Όλοι οι 16 γύροι του
DES όμως χρειάζονται 247 επιλεγμένα αρχικά μηνύματα
Αναφορά: «Differential Cryptanalysis of DES-like cryptosystems», Ε.
Biham, A. Shamir, Crypto 1990
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 50
ciphers)
Γραμμική Κρυπτανάλυση
„ Αναζητείται γραμμικότητα στο σύστημα
„ Έστω ότι γίνονται XOR τα bits ενός αρχικού μηνύματος, XOR
τα bits του αντίστοιχου κρυπτογράμματος και XOR τα δύο
αποτελέσματα. Ιδανικά, η πιθανότητα αυτού του bit
αποτελέσματος να είναι 1 ή 0 θα έπρεπε να είναι ½. Όταν δεν
ισχύει, μπορεί να εξαχθεί κάποια πληροφορία για το κλειδί
„ Η παραπάνω πιθανότητα εξαρτάται κύρια από τη
γραμμικότητα των S-boxes
„ Οι λεπτομέρειες της μεθόδου είναι επίσης σύνθετες
„ Καλά αποτελέσματα για λίγους γύρους του DES, όχι όμως για
το σύνολό του (όπου χρειάζονται 243 επιλεγμένα γνωστά
αρχικά μηνύματα)
„ Σε αντίθεση με τη διαφορική, για τη γραμμική κρυπτανάλυση
ειπώθηκε ότι δεν είχε ληφθεί υπ’ όψιν στη σχεδίαση του DES
Αναφορά: «Linear Cryptanalysis Method for DES Cipher», Matsui M.,
Advances in Cryptology -- EUROCRYPT '93. 386-397.
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 51
ciphers)

Σήμερα : ο DES μη ασφαλής


„ Το 1996, διεθνής διάλογος άρχισε για την ασφάλεια του DES.
„ Electronic Frontier Foundation DES Cracker project
Αποτελέσματα
{ 8-byte known plaintext attack σε λιγότερο από μία εβδομάδα

{ 16-byte known ciphertext στον ίδιο χρόνο

{ … τα παραπάνω σε 40 MHz chips…

„ Το 1998, μία ειδικά σχεδιασμένη μηχανή, κόστους $250,000,


τον «έσπασε» σε 56 ώρες
{ Έλεγχος 90 δισεκατομμυρίων κλειδιών το δευτερόλεπτο
„ To 1999, έσπασε σε 22 ώρες (με έλεγχο 245 δισεκατομμυρίων
κλειδιών το δευτερόλεπτο).

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 52


ciphers)
Triple DES (3DES)
„ Παραλλαγή του DES, η οποία
παρέχει περισσότερη ασφάλεια
„ Ο 3DES χρησιμοποιεί
τρία 56-bit κλειδιά

{ C=Ek3(Dk2(Ek1(P)))
{ P=Dk1(Ek2(Dk3(C)))
„ Σημείωση: αν K1=K2, τότε 3DES=DES
„ Το μεσαίο στάδιο επιτελεί αποκρυπτογράφηση και
όχι κρυπτογράφηση, προκειμένου να μπορεί ο
3DES να αποκρυπτογραφεί μηνύματα που έχουν
κρυπτογραφηθεί με τον απλό DES (πώς??)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 53


ciphers)

AES- Advanced Encryption


Standard
„ Το 1997, ο NIST προσκάλεσε δημόσια για ορισμό
νέου προτύπου
{ Ως ελάχιστο μήκος κλειδιού τέθηκε 128 bits
{ Δυνατότητα υλοποίησης σε επεξεργαστές 8 bit
„ To 1998, επελέχθησαν 15 επικρατέστεροι
„ Αργότερα, έμειναν 5 επικρατέστεροι
„ MARS (IBM - ΗΠΑ)
„ RC6 (RSA Labs - ΗΠΑ)
„ Rijndael (Rijmen & Daemen – Βέλγιο)
„ SERPENT (Anderson, Biham, and Knudsen – Μεγάλη
Βρετανία, Ισραήλ, Νορβηγία)
„ TWOFISH (Schneier, Kelsey, και άλλοι - ΗΠΑ)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 54


ciphers)
Advanced Encryption
Standard (AES) (ΙΙ)
„ Τελικοί βαθμοί των 5 επικρατέστερων αλγορίθμων:

MARS RC6 Rijndael Serpent Twofish

General Security 3 2 2 3 3
Implementation of Security 1 1 3 3 2
Software Performance 2 2 3 1 1
Smart Card Performance 1 1 3 3 2
Hardware Performance 1 2 3 3 2
Design Features 2 1 2 1 3

Τον Οκτώβρη του 2000, ανακοινώθηκε ως


νικητής ο αλγόριθμος Rijndael.
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 55
ciphers)

Αλγόριθμος Rijndael
„ Μήκη κλειδιού 128, 192, 256 bits
„ Μήκη blocks δεδομένων 128, 192, 256 bits
„ Εύκολη υλοποίηση hardware
„ 10-15 γύροι, ανάλογα με το μήκος του κλειδιού
„ Κάθε γύρος έχει 4 βήματα:
{ Αντικατάσταση byte (Byte substitution) – χρήση s-boxes με
καλά χαρακτηριστικά
{ Ολίσθηση (Shift row)

{ Συνδυασμός πολλών bit (Mix Column)

{ Πρόσθεση (XOR) του κλειδιού

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 56


ciphers)
Παράμετροι του AES
„ Μεγέθη μπλοκ:128, 192, 256 bit (B)
„ Μεγέθη κλειδιού: 128, 192, 256 bit (K)
„ Για μήκος 128 bits: το κάθε μπλοκ θεωρείται σαν
ένας 4 x 4 πίνακας, όπου κάθε στοιχείο του πίνακα
είναι 1 byte.
„ Ο αλγόριθμος αποτελείται από έναν αρχικό γύρο,
και άλλους r - 1 τυπικούς γύρους (όπου το r είναι
είτε 10 είτε 12 είτε 14 αναλόγως τα μήκη των
μπλοκ), καθώς επίσης και από έναν τελευταίο γύρο.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 57


ciphers)

Πλήθος γύρων στον AES

„ Nb = πλήθος στηλών στον μπλοκ πίνακα


„ Nk = πλήθος στηλών στον πίνακα κλειδιού

Nb = 4 Nb = 6 Nb = 8
Nk = 4 10 12 14
Nk = 6 12 12 14
Nk = 8 14 14 14

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 58


ciphers)
Σχηματικό διάγραμμα του AES
Κρυπτογράφηση Συνάρτηση
PLAINTEXT ενός γύρου
SECRET KEY Είσοδος

ROUND KEY ROUND 0


ROUND00
SUB_BYTES
SUB_BYTES
ROUND KEY ROUND 1
ROUND11
SHIFT_ROWS
SHIFT_ROWS
EXTENDED_KEY
EXTENDED_KEY
MIX_COLUMN
MIX_COLUMN
KEY ROUND SS
ROUND
ROUNDNr
Nr- -11 Nr-1

ROUND ADD_ROUND
ADD_ROUND
Last_ROUND
Last_ROUND
KEY ROUND KEY
Nr Nr KEY KEY
Nr
Ο πρώτος γύρος (Round 0) είναι απλά πράξη
XOR με το κλειδί Έξοδος
Κρυπτόγραμμα
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 59
ciphers)

S-Box (Sub_bytes)

•Κάθε byte aij μετατρέπεται σε ένα νέο, μέσω μιας μη γραμμικής


συνάρτησης.
•Είναι το μόνο τμήμα του αλγορίθμου που είναι μη γραμμικό, συνεπώς
αυτό που καθορίζει σε μεγάλο βαθμό την ασφάλεια.
•Οι λεπτομέρειες του συγκεκριμένου S-box βασίζονται σε ιδιότητες των
πεπερασμένων σωμάτων (δεν θα μελετηθούν εδώ)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 60


ciphers)
Ολίσθηση γραμμών (Shift_Rows)
State State State State State[ State[ State[ State[
[0,0] [0,1] [0,2] [0,3] 0,0] 0,1] 0,2] 0,3]
State State State State State[ State[ State[ State[
[1,0] [1,1] [1,2] [1,3] Shift_Rows(..) 1,1] 1,2] 1,3] 1,0]
State State State State State[ State[ State[ State[
[2,0] [2,1] [2,2] [2,3] 2,2] 2,3] 2,0] 2,1]

State State State State State[ State[ State[ State[


[3,0] [3,1] [3,2] [3,3] 3,3] 3,0] 3,1] 3,2]

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 61


ciphers)

Ανακάτωμα στηλών
(MixColumn)

„ Πολλαπλασιασμός με έναν κατάλληλο (πάντα σταθερό και


συγκεκριμένο) πίνακα C διαστάσεων 4x4 (όπου κάθε στοιχείο
του C είναι 1 Byte).
„ Η MixColumn πράξη είναι αυτή η οποία δεν συντελείται στον
τελευταίο γύρο του AES. (Κατά τα άλλα, ο τελευταίος γύρος
είναι ίδιος με τους υπόλοιπους)
Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 62
ciphers)
Αποκρυπτογράφηση

„ Ίδια με την κρυπτογράφηση, απλά όλα


τα βήματα γίνονται αντίστροφα (π.χ. η
ολίσθηση γραμμών είναι δεξιά αντί για
αριστερή κ.ο.κ.)

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 63


ciphers)

Συγκριτικό στοιχείο

„ Αν υπήρχε μηχανή που, με


εξαντλητική αναζήτηση κλειδιών, να
έσπαγε τον DES σε 1 δευτερόλεπτο,
τότε αυτή η μηχανή θα χρειαζόταν 128
τρισεκατομμύρια χρόνια για να σπάσει
τον AES με μήκος κλειδιού 128 bit.

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 64


ciphers)
Σύγκριση DES, 3DES, AES

DES 3DES AES

Key Length (bits) 56 112 or 168 128, 192, 256

Strength Weak Strong Strong

Processing
Moderate High Modest
Requirements

RAM Requirements Moderate High Modest

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 65


ciphers)

Άλλοι Block Ciphers


„ Blowfish (Schneier) (http://www.schneier.com/blowfish.html)
„ CAST (http://adonis.ee.queensu.ca:8000/cast/)
„ Int’l Data Encryption Alg (IDEA), Lai and Masey
(http://en.wikipedia.org/wiki/International_Data_Encryption_Algo
rithm)
„ Safer (Secure and Fast Encryption Routine)
(http://home.ecn.ab.ca/~jsavard/crypto/co040301.htm)
„ RC5 (http://www.funet.fi/pub/crypt/cryptography/papers/rc5/)
„ …και πληθώρα άλλων

Κώστας Λιμνιώτης Κρυπτογραφία - 3 (Αλγόριθμοι τμήματος - block 66


ciphers)
Αλγόριθμοι Δημοσίου Κλειδιού
(ή ασύμμετροι αλγόριθμοι)

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


Αποστολέας P C P
Encryption Decryption Παραλήπτης

E D
„ Προτάθηκαν το 1976
„ Κάθε συμμετέχων στο σύστημα κατέχει ένα ζευγάρι
κλειδιών e και d, που το ένα αντιστρέφει το άλλο:
d(e(m))=m
„ Ένα από τα δύο κλειδιά είναι γνωστό σε όλους (το e) και
λέγεται Δημόσιο Κλειδί. Το άλλο κλειδί το γνωρίζει
μόνο ο κάτοχός του και ονομάζεται ιδιωτικό.
Απαραίτητη προϋπόθεση είναι ότι η γνώση του e δεν
οδηγεί σε προσδιορισμό του μυστικού κλειδιού d.
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 2
Κλειδιού)
Τρόπος λειτουργίας
συστημάτων δημοσίου κλειδιού

„ Όταν ένα πρόσωπο A θέλει να στείλει ένα μήνυμα m


σε ένα πρόσωπο B, το δημόσιο κλειδί κρυπτογράφησης
του παραλήπτη B χρησιμοποιείται για τη δημιουργία του
κρυπτογράμματος Ee(m). Αφού το Ee είναι πλήρως
διαθέσιμο σε όλους, ο οποιοσδήποτε μπορεί να
κρυπτογραφήσει ένα μήνυμα με προορισμό τον B.
Ωστόσο, μόνο ο B, ο οποίος γνωρίζει το ιδιωτικό του
κλεδί DB μπορεί να ανακατασκευάσει το αρχικό μήνυμα,
εφαρμόζοντας τον αντίστροφο μετασχηματισμό DB
(EB(m)).

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 3


Κλειδιού)

Σχηματική αναπαράσταση

Κρυπτογραφημένο
Κρυπτογράφηση με το Αποκρυπτογράφηση με το
μήνυμα
δημόσιο κλειδί του B ιδιωτικό κλειδί του B

Χρήστης A Χρήστης B
Αποκρυπτογράφηση με το Κρυπτογράφηση με το
ιδιωτικό κλειδί του A Κρυπτογραφημένο
δημόσιο κλειδί του A
μήνυμα

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 4


Κλειδιού)
Μαθηματική Θεωρία

„ Συνάρτηση μίας κατεύθυνσης (one-way) ονομάζεται


κάποια συνάρτηση η οποία είναι εύκολο να υπολογιστεί,
αλλά πολύ δύσκολο να αντιστραφεί. ‘Καταπακτή’
(‘trapdoor’) σε μία τέτοια συνάρτηση αποκαλείται
οποιαδήποτε γνώση μας επιτρέπει να την
αντιστρέψουμε.
„ Η κρυπτογράφηση σε ένα σύστημα Δημοσίου Κλειδιού
πρέπει να είναι μία ‘one-way’ συνάρτηση η οποία
πρέπει να έχει ένα ‘trapdoor’ (που στην ουσία αντιστοιχεί
στο ιδιωτικό κλειδί αποκρυπτογράφησης).
„ Το ‘trapdoor’ πρέπει να το γνωρίζει μόνο ο παραλήπτης.

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 5


Κλειδιού)

Στοιχεία Θεωρίας Πολυπλοκότητας


¾ Προβλήματα τα οποία μπορούν να επιλυθούν σε
πολυωνυμικό χρόνο ανήκουν στην κλάση P
¾Προβλήματα των οποίων μία καταφατική απάντηση μπορεί
να επιβεβαιωθεί σε πολυωνυμικό χρόνο, δοθείσας κάποιας
επιπρόσθετης πληροφορίας, ανήκουν στην κλάση NP
¾Προβλήματα των οποίων μία αρνητική απάντηση μπορεί
να επιβεβαιωθεί σε πολυωνυμικό χρόνο, δοθείσας κάποιας
επιπρόσθετης πληροφορίας, ανήκουν στην κλάση co-NP
¾Τα πιο δύσκολα NP προβλήματα ονομάζονται NP-
complete.
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 6
Κλειδιού)
Στοιχεία Θεωρίας Πολυπλοκότητας
¾ Ένα NP πρόβλημα χαρακτηρίζεται από το ότι δεν έχει βρεθεί
πολυωνυμικός αλγόριθμος που να το επιλύει. Αντίστοιχα, για όσα
προβλήματα υπάρχει λύση που τρέχει σε πολυωνυμικό χρόνο, αυτά
υπάγονται στην κλάση P.
¾Ισχύει P ⊆ NP
¾Παρόλο που πιστεύεται ότι NP ≠ P, εν τούτοις δεν έχει αποδειχτεί
¾Παράδειγμα: η ανάλυση ενός αριθμού στους πρώτους του παράγοντες
είναι NP πρόβλημα
¾Συναρτήσεις μίας κατεύθυνσης στην πράξη θεωρούνται αυτές που
εμφανίζονται στα NP προβλήματα. Όλοι λοιπόν οι αλγόριθμοι Δημοσίου
Κλειδιού βασίζονται σε NP προβλήματα – η δυσκολία επίλυσης των
οποίων καθιστά τους αλγορίθμους ασφαλείς.
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 7
Κλειδιού)

Παραδείγματα συστημάτων
Δημοσίου Κλειδιού
„ RSA (αναπτύσσεται στο εργαστηριακό
μάθημα)
„ El Gamal (αναπτύσσεται στο εργαστηριακό
μάθημα)
„ Κρυπτοσύστημα Rabin (θα αναπτυχθεί
παρακάτω)
„ McEliece κρυπτοσύστημα
„ Knapsak αλγόριθμοι
„ Elliptic Curve κρυπτοσύστημα (ελλειπτικών
καμπυλών)
„ Και άλλοι….
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 8
Κλειδιού)
Χρήσιμα Μαθηματικά Εργαλεία –
Θεώρημα Κινεζικού Υπολοίπου
(Chinese Remainder Theorem (CRT))

„ Επειδή η αποκρυπτογράφηση στο σύστημα Rabin που θα δούμε στη


συνέχεια βασίζεται στο Θεώρημα Κινεζικού Υπολοίπου (CRT), το εν
λόγω θεώρημα θα αναπτυχθεί ανεξάρτητα στις επόμενες τρεις
διαφάνειες.
„ Έστω m1, … ,mr ακέραιοι αριθμοί, πρώτοι μεταξύ τους, και έστω
επίσης a1, … ,ar ακέραιοι αριθμοί.
Τότε το σύστημα ισοδυναμιών:
x ≡ ai mod mi , i =1, … ,r
έχει μοναδική λύση modulo M = m1 x …x mr ,η οποία είναι
x = Σ aiMiyi mod M,
όπου Mi = M/mi και yi = Mi-1mod mi, i =1, … ,r

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 9


Κλειδιού)

Παράδειγμα για το Θεώρημα


Κινεζικού Υπολοίπου
„ Έστω το ακόλουθο σύστημα ισοδυναμιών:
x ≡ 1 mod 3
x ≡ 2 mod 4
x ≡ 3 mod 5

„ Αναζητούμε τη λύση του συστήματος – δηλαδή, έναν αριθμό x


που ικανοποιεί και τις 3 παραπάνω σχέσεις.
„ Επειδή τα 3,4,5 είναι πρώτοι μεταξύ τους, το σύστημα αυτό έχει
μοναδική λύση mod 60 (60 = 3 · 4 · 5 ).
„ Εργαζόμαστε λοιπόν ως εξής:
{ M1=3 · 4 · 5 / 3 = 20
{ M2=3 · 4 · 5 / 4 = 15
{ M3=3 · 4 · 5 / 5 = 12

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 10


Κλειδιού)
Παράδειγμα για το Θεώρημα
Κινεζικού Υπολοίπου (συνέχεια)

„ Χρειαζόμαστε επίσης και τα αντίστροφα των M1,M2,M3.


„ Για τον αντίστροφο του M1,αναζητούμε y1 τέτοιο ώστε
M1 y1 ≡ 1 mod 3. Με δοκιμές βρίσκουμε ότι y1=2.
„ Αντίστοιχα, οι αντίστροφοι των M2,M3 υπολογίζονται
ότι είναι ίσοι με y2=3, y3=3 αντίστοιχα.
„ Συνεπώς η λύση του αρχικού συστήματος είναι:
„ x ≡ 1·20 · 2 + 2 · 15 · 3 + 3 ·12 · 3 mod 60 ≡
„ ≡ 40 + 90 + 108 mod 60 ≡ 40 + 30 + 48 mod 60 ≡
„ ≡ 118 mod 60 ≡ 58 mod 60

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 11


Κλειδιού)

Αλγόριθμος Rabin
„ Ένας χρήστης A επιλέγει δύο τυχαίους πολύ μεγάλους πρώτους αριθμούς
p, q και υπολογίζει το γινόμενό τους N
„ Το δημόσιο κλειδί του A είναι το N, και το ιδιωτικό τα p, q.
„ Για την κρυπτογράφηση του μηνύματος m που θέλει να στείλει κάποιος
χρήστης στον A, απλά το υψώνει στο τετράγωνο mod Ν:
c ≡ m2 (mod N)

Αρχικό μήνυμα κρυπτόγραμμα


„ Στην ουσία, η συνάρτηση f(x) ≡ x2 mod Ν είναι μίας κατεύθυνσης (για πολύ
μεγάλο N): κάποιος που γνωρίζει το x μπορεί να υπολογίσει το f(x), αλλά
από την άλλη κάποιος που γνωρίζει το f(x) δεν είναι εύκολο να βρει το x.
{ Όμως, όπως θα δούμε παρακάτω, αν κάποιος γνωρίζει είτε το p είτε το q
μπορεί να εξάγει το x από το f(x) (τα p και q λοιπόν είναι «καταπακτές»
(trapdoors). Άρα, μόνο ο A μπορεί να αποκρυπτογραφήσει το κρυπτόγραμμα c
που λαμβάνει και να ανακτήσει το αρχικό μήνυμα m.

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 12


Κλειδιού)
Αποκρυπτογράφηση Rabin
„ Ειδική περίπτωση: τα p, q επιλέγονται με τέτοιον τρόπο ώστε
να ισχύει p,q ≡ 3 mod 4 (αυτό γίνεται για λόγους απλότητας –
στην πράξη τα p, q μπορεί να είναι οποιαδήποτε, αλλά τότε ο
αλγόριθμος αποκρυπτογράφησης γίνεται πιο σύνθετος).
„ Έστω ότι ο παραλήπτης θέλει να αποκρυπτογραφήσει το y ≡ x 2 mod Ν.
Όταν ισχύει p,q ≡ 3 mod 4, υπάρχει ένας απλός τρόπος υπολογισμού του
x: προσέξτε ότι

(± y ( p+1) / 4 ) 2 ≡ y ( p+1) / 2 ≡ y ( p−1) / 2 y ≡ y mod p


μια που ισχύει λόγω του θεωρήματος του Euler (το οποίο είδαμε και στον
RSA)
y ( p−1) / 2 mod(p)≡ x p −1
mod(p) ≡ 1mod(p)
(προσέξτε ότι φ(p)=p-1)
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 13
Κλειδιού)

Αποκρυπτογράφηση Rabin
(συνέχεια)
„ Από την προηγούμενη ανάλυση έπεται ότι ο αριθμός:

± y ( p +1) / 4 mod p
είναι μια τετραγωνική ρίζα του y modulo p.
„ Μια παρόμοια ανάλυση μπορεί να γίνει και για τον άλλον
πρώτο αριθμό q.
„ Βρίσκουμε λοιπόν τα τετραγωνικά υπόλοιπα modulo p και
modulo q. Έτσι, μπορούμε να βρούμε το ζητούμενο
τετραγωνικό υπόλοιπο modulo N με το θεώρημα του
Κινεζικού υπολοίπου
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 14
Κλειδιού)
Παράδειγμα κρυπτογράφησης
Rabin
Έστω p=7 και q=11 (παρατηρήστε ότι p,q≡3 mod 4.)
Τότε N = 77.
Έστω ότι ο χρήστης λαμβάνει ως κρυπτόγραμμα τον αριθμό
23. Τότε εργάζεται ως εξής:

± 23( 7 +1) / 4 ≡ ±2 2 ≡ ±4 mod 7

± 23(11+1) / 4 ≡ ±13 ≡ ±1 mod 11

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 15


Κλειδιού)

Παράδειγμα κρυπτογράφησης
Rabin (συνέχεια)
Εφαρμογή του Θεωρήματος του Κινεζικού Υπολοίπου:
1) x ≡ 4 mod 7
x ≡ 1 mod 11
Έχουμε M1=11, M2=7.
Για τον αντίστροφο y1 του M1 δοκιμάζουμε να λύσουμε τη σχέση
11y1 ≡ 1 mod 7 όπου με δοκιμές βρίσκουμε y1=2.

Για τον αντίστροφο y2 του M2 δοκιμάζουμε να λύσουμε τη σχέση


7y2 ≡ 1 mod 11 όπου με δοκιμές βρίσκουμε y2=8.

Άρα η λύση του παραπάνω συστήματος είναι (4·11· 2 + 1 · 7 · 8) mod 77 ≡


≡ (88+56) mod 77 ≡ 144 mod 77 ≡ 67 mod 77

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 16


Κλειδιού)
Παράδειγμα κρυπτογράφησης
Rabin (συνέχεια)
2) x ≡ -4 mod 7
x ≡ 1 mod 11
Όλοι οι απαραίτητοι υπολογισμοί έχουν γίνει από πριν, άρα η λύση του παραπάνω
συστήματος είναι (-4·11· 2 + 1 · 7 · 8) mod 77 ≡
≡ (-88+56) mod 77 ≡ -32 mod 77 ≡ 45 mod 77.

3) x ≡ 4 mod 7
x ≡ -1 mod 11
H λύση του παραπάνω συστήματος είναι (4·11· 2 - 1 · 7 · 8) mod 77 ≡
≡ (88-56) mod 77 ≡ 32 mod 77

4) x ≡ -4 mod 7
x ≡ -1 mod 11
H λύση του παραπάνω συστήματος είναι (-4·11· 2 - 1 · 7 · 8) mod 77 ≡
≡ (-88-56) mod 77 ≡ -144 mod 77 ≡ 10 mod 77
Συνεπώς τα 4 πιθανά μηνύματα (ένα εκ των οποίων εστάλη) είναι τα ± 10 mod 77, ±32 mod 77
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 17
Κλειδιού)

Σχόλια για τον αλγόριθμο


Rabin
„ Βρίσκουμε πάντα 4 πιθανά μηνύματα, για δοθέν
κρυπτόγραμμα. Αυτό είναι μειονέκτημα (το ιδανικό
θα ήταν να βρίσκαμε πάντα ακριβώς το αρχικό
μήνυμα). Μια τυπική τεχνική για να αντιμετωπιστεί
αυτό το πρόβλημα είναι η εξής:
{ Εισαγωγή περισσότερων πλεοναστικών ψηφίων στο
μήνυμα που αποστέλλεται, με στόχο να βοηθήσουν στη
σωστή αποκρυπτογράφηση. Για παράδειγμα, το μήνυμα
που στέλνεται μπορεί περιέχει ένα διπλότυπο του εαυτού
του (δηλαδή, αντί να στείλουμε το 45, να στέλνουμε το
4545). Έτσι ο παραλήπτης μπορεί πια να αποφασίσει,
από τα 4 λαμβανόμενα μηνύματα, ποιο είναι αυτό που
πραγματικά εστάλη.

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 18


Κλειδιού)
Ασφάλεια του αλγορίθμου
Rabin
„ H ασφάλεια του αλγορίθμου έγκειται σε δύο
προβλήματα που ανήκουν στο NP:
{ Στο πρόβλημα του να βρει κανείς το τετραγωνικό
υπόλοιπο modulo n (δηλαδή, το να ξέρει κανείς το x2 mod
n δεν του αρκεί για να βρει το x).
{ Για μεγάλα p,q, ο οποιοσδήποτε γνωρίζει το n δεν μπορεί
να βρει τα p,q (η παραγοντοποίηση ενός αριθμού σε
πρώτους παράγοντες είναι υπολογιστικά δύσκολο
πρόβλημα (ανήκει στην κλάση NP),

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 19


Κλειδιού)

Γενικά πλεονεκτήματα των


συστημάτων Δημοσίου Κλειδιού
„ Το ζεύγος δημόσιο κλειδί – ιδιωτικό κλειδί μπορεί
να μένει το ίδιο για μεγάλα χρονικά διαστήματα
(π.χ. για χρόνια) – στα συστήματα συμμετρικού
κλειδιού αντιθέτως, το κλειδί πρέπει να αλλάζει
συχνά
„ Σε ένα μεγάλο δίκτυο, ο αριθμός των κλειδιών που
χρειάζονται είναι μικρότερος από ό,τι αν
χρησιμοποιούνταν συμμετρική κρυπτογράφηση
(στη συμμετρική κρυπτογράφηση, χρειάζεται ένα
ζευγάρι κλειδιών για κάθε χρήστη).

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 20


Κλειδιού)
Γενικά μειονεκτήματα των
συστημάτων Δημοσίου Κλειδιού
„ Η απόδοση (throughput) είναι σημαντικά μικρότερη,
συγκριτικά με τους καλύτερους block ciphers
„ Το μήκος των κλειδιών είναι πιο μεγάλο
„ Κανένας αλγόριθμος δεν έχει αποδειχτεί ότι είναι απόλυτα
ασφαλής - η ασφάλειά τους στηρίζεται σε γνωστά NP
προβλήματα. Αν βρεθεί πολυωνυμική (δηλαδή, με απλά λόγια,
γρήγορη) λύση για κάποιο από αυτά τα προβλήματα, η
ασφάλεια καταρρέει (κάτι τέτοιο θα σήμαινε ότι οποιοσδήποτε
θα μπορούσε να ανακτήσει το ιδιωτικό κλειδί).
{ Πάντως, θα πρέπει να σημειωθεί ότι ούτε οι αλγόριθμοι
συμμετρικού κλειδιού (stream ciphers, block ciphers) είναι
εγγυημένα ασφαλείς

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 21


Κλειδιού)

Συνδυασμός συστημάτων
Δημοσίου και Συμμετρικού Κλειδιού
„ Όχι ανταγωνιστικά – χρησιμοποιούνται μαζί

{ Το δημόσιο κλειδί διαμοιράζεται εύκολα, αλλά


μπορεί να χρησιμοποιηθεί μόνο σε μικρά
μηνύματα

{ Το συμμετρικό κλειδί διανέμεται δύσκολα


(πρόβλημα εύρεσης ασφαλούς «καναλιού»
μετάδοσής του), αλλά μπορεί να χρησιμοποιηθεί
και σε μεγάλα μηνύματα

{ Έχουν συμπληρωματικά προτερήματα και


ελαττώματα
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 22
Κλειδιού)
Συνδυασμός Συμμετρικού –
Δημοσίου Κλειδιού
„ Συχνά, η επικοινωνία ξεκινά με πιστοποίηση
ταυτότητας, με χρήση αλγορίθμου Δημοσίου
κλειδιού

A B
Public Key Authentication

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 23


Κλειδιού)

Συνδυασμός Συμμετρικού –
Δημοσίου Κλειδιού (II)
„ Στη συνέχεια, ο καθένας παράγει ένα συμμετρικό κλειδί
„ Κρυπτογραφεί το συμμετρικό του κλειδί με το δημόσιο κλειδί
του άλλου και του το στέλνει
{ Έτσι, και οι δύο έχουν το συμμετρικό κλειδί για την
επικοινωνία με τον άλλο

Public Key Encryption


A B
Symmetric
Session
Key
Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 24
Κλειδιού)
Συνδυασμός Συμμετρικού –
Δημοσίου Κλειδιού (III)
„ Τελικά, επικοινωνεί ο ένας με τον άλλον με το συμμετρικό
κλειδί
„ Με άλλα λόγια, η κρυπτογραφία δημόσιου κλειδιού έλυσε το
πρόβλημα της εύρεσης ασφαλούς καναλιού, για την
ανταλλαγή των κλειδιών

Symmetric Session Key B


A

Κώστας Λιμνιώτης Κρυπτογραφία - 4 (Αλγόριθμοι Δημοσίου 25


Κλειδιού)

Πιστοποίηση μηνύματος
(Message authentication) -
Πιστοποίηση ταυτότητας
αποστολέα (Entity authentication)
Επιπρόσθετες απαιτήσεις
στην κρυπτογραφία
„ Ακεραιότητα δεδομένων (data
integrity):Επιβεβαίωση ότι το μήνυμα που
αποκρυπτογραφείται είναι το αυθεντικό και
δεν έχει παραποιηθεί κατά τη μετάδοσή του
„ Πιστοποίηση ταυτότητας ή αυθεντικοποίηση
(identification ή entity authentication) :
Επιβεβαίωση ότι ο αποστολέας είναι
πράγματι αυτός που ισχυρίζεται

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 2


μηνύματος και αποστολέα

Συναρτήσεις κατακερματισμού
(hash functions)
„ Δέχονται είσοδο οσουδήποτε μήκους και παράγουν έξοδο
σταθερού μήκους (ίσου ή μικρότερου του μεγέθους της εισόδου)
– (συμπίεση)
„ Η τιμή της συνάρτησης για οποιαδήποτε είσοδό της υπολογίζεται
εύκολα. Το αντίστροφο όμως δεν ισχύει: για οποιοδήποτε y, δεν
μπορεί να βρεθεί x ώστε h(x)=y. (preimage resistance). Είναι
λοιπόν συναρτήσεις μιας κατεύθυνσης.
„ Για οποιοδήποτε δοθέν Μ, είναι υπολογιστικά δύσκολη η εύρεση
M' με την ιδιότητα h(M) = h(M') (2nd-preimage resistance)
„ Δεν μπορούν να υπολογιστούν δύο διαφορετικές είσοδοι M, M’
που να δίνουν την ίδια έξοδο, δηλαδή h(M)=h(M’) (collision
resistance)
„ Χωρίζονται σε δύο κατηγορίες – σε αυτές που υπεισέρχεται και
κάποιο κλειδί στον υπολογισμό τους (keyed hash functions) και
σε αυτές που όχι (unkeyed hash functions)
„ Αν M το μήνυμα και H η συνάρτηση κατακερματισμού, τότε το
H(M) αποκαλείται αποτύπωμα (fingerprint) ή σύνοψη του
μηνύματος (Message Digest – MD)
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 3
μηνύματος και αποστολέα
Μία απλή συνάρτηση
κατακερματισμού
„ Bitwise-XOR (ένα μπλοκ bits μήκους nm γίνεται ένα
μικρότερο μπλοκ μήκους n, με χρήση XOR όπως
φαίνεται παρακάτω).

„ Όχι καλή: Δεν ικανοποιεί το 2nd preimage resistance.

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 4


μηνύματος και αποστολέα

Κάθε συνάρτηση μιας κατεύθυνσης


είναι συνάρτηση κατακερματισμού??

„ ΌΧΙ. Ας θεωρήσουμε για παράδειγμα την


h(x) = x2 mod n,
χωρίς να είναι γνωστή η παραγοντοποίηση
n=pq.

„ Δεν ικανοποιεί το 2nd preimage resistance:


για δοθέν x, προφανώς το –x δίνει την ίδια
έξοδο.

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 5


μηνύματος και αποστολέα
Κατηγορίες αλγορίθμων με
συναρτήσεις κατακερματισμού –
MDCs και MACs

„ MDC (Modification Detection Codes – Κώδικας


ανίχνευσης τροποποίησης)
{ Συναρτήσεις κατακερματισμού στις οποίες δεν
υπεισέρχεται κλειδί. Είναι μίας κατεύθυνσης και
Ικανοποιούν το preimage resistance
„ MAC (Message Authentication Codes – Κώδικας
αυθεντικοποίησης μηνύματος)
{ Συναρτήσεις κατακερματισμού στις οποίες υπεισέρχεται
επιπρόσθετα και ένα μυστικό κλειδί. Είναι μίας
κατεύθυνσης και ικανοποιούν και αυτές το preimage
resistance.

„ Και στις δύο περιπτώσεις η συνάρτηση


κατακερματισμού είναι δημοσίως γνωστή.
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 6
μηνύματος και αποστολέα

Κατασκευή Συναρτήσεων
Κατακερματισμού μίας κατεύθυνσης
„ Συνήθως κατασκευάζονται από συναρτήσεις των οποίων το πλήθος
εξόδων είναι μικρότερο από το πλήθος εισόδων (για να επιτευχθεί η
συμπίεση)
„ Η δομή αυτή είναι ανάλογη με ένα αλυσιδωτό block cipher (Chained
Block Cipher - CBC)
{ Παράγει μία τιμή κατακερματισμού για κάθε μπλοκ σταθερού
μήκους, με βάση το περιεχόμενό του αλλά και την τιμή
κατακερματιμού του προηγούμενου μπλοκ

M1 M2 Mn

h1 h2 h
IV f f … n-1 f h

„ O Rabin πρότεινε κάθε συνάρτηση f να είναι ο αλγόριθμος του


DES (τα Mi θα έχουν το ρόλο του κλειδιού)
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 7
μηνύματος και αποστολέα
Πιστοποίηση μηνύματος με
χρήση MAC
μήνυμα

μετάδοση

Σύγκριση
Παραλήπτης
Το ζευγάρι μήνυμα/MAC μεταδίδεται
κρυπτογραφημένο με κάποιον
αλγόριθμο. Ο παραλήπτης θα
Αποστολέας αποκρυπτογραφήσει πρώτα και μετά θα
ελέγξει την ακεραιότητα
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 8
μηνύματος και αποστολέα

Ιδιότητες MAC

„ To ΜΑC επιτυγχάνει τα παρακάτω:


{ Το μήνυμα είναι γνήσιο
„ Αν κάποιος «εισβολέας» τροποποιήσει το μήνυμα, θα φανεί
στη σύγκριση που κάνει ο δέκτης
{ Η πηγή του μηνύματος είναι γνήσια
„ Κανείς άλλος δεν έχει το ίδιο κλειδί για να δημιουργήσει το ίδιο
MAC

„ Οποιοσδήποτε μπλοκ κρυπτογραφικός αλγόριθμος μπορεί να


χρησιμοποιηθεί για τη δημιουργία του MAC (όπως ήδη είδαμε
στους τρόπους λειτουργίας των μπλοκ αλγορίθμων, και
συγκεκριμένα στο τρόπο λειτουργίας CBC).

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 9


μηνύματος και αποστολέα
Ασφάλεια του MAC
„ Η ασφάλεια του MAC καθορίζεται από το μέγεθος του κλειδιού
(θεωρούμε ότι ο επιτιθέμενος γνωρίζει τόσο το
κρυπτογραφημένο μήνυμα M αλλά τον MAC κώδικα Hk(M)).
Αν ανακαλύψει το κλειδί k, μπορεί να στείλει δικά του
μηνύματα λανθασμένα προσποιούμενος ότι είναι ο
πραγματικός αποστολέας (ο παραλήπτης δεν θα το
καταλαβαίνει).
„ Προσέξτε όμως ότι ακόμα κι αν ο επιτιθέμενος ανακαλύψει ένα
κλειδί k τέτοιο ώστε αν εφαρμόσει το Hk στο M να πάρει το
Hk(M), ίσως το κλειδί να μην είναι το πραγματικό (μια που
ενδεχομένως δύο διαφορετικά κλειδιά μπορούν να δίνουν το
ίδιο αποτέλεσμα, αφού το μήκος του κατακερματισμένου
μηνύματος είναι μικρότερο από το μήκος του αρχικού
μηνύματος).

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 10


μηνύματος και αποστολέα

Πιστοποίηση μηνύματος με χρήση


συνάρτησης κατακερματισμού
(MDC)

• Μία συνάρτηση κατακερματισμού εφαρμόζεται στο


μήνυμα – το αποτέλεσμα προστίθεται στο τέλος του
μηνύματος και όλο το νέο μπλοκ κρυπτογραφείται και
μεταδίδεται
• Ο δέκτης αποκρυπτογραφεί και κάνει σύγκριση ανάλογη
με την περίπτωση του MAC
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 11
μηνύματος και αποστολέα
Αλγόριθμοι κατακερματισμού

MD5
SHA-1 RIPEMD-160
(MD4+)
Μήκος εξόδου 160 bits 128 bits 160 bits
160 (5
80 (4 γύροι 64 (4 γύροι ζευγάρια
Πλήθος βημάτων
των 20) των 16) γύρων των
16)
Μέγιστο μέγεθος
264-1 bits απεριόριστο απεριόριστο
μηνύματος

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 12


μηνύματος και αποστολέα

Ποιο το “σωστό” μήκος του


κατακερματισμένου μηνύματος??
„ Το μέγεθος της εξόδου μιας συνάρτησης
κατακερματισμού είναι κρίσιμο: αφενός για
λόγους απόδοσης του συστήματος θέλουμε
να είναι μικρό, αφετέρου όμως μικρές τιμές
ενδεχομένως να διευκολύνουν έναν
επιτιθέμενο να βρει ένα ψεύτικο μήνυμα που
να κατακερματίζεται στην ίδια τιμή.
„ Για το μέγεθος της εξόδου της συνάρτησης
κατακερματισμού, καλό είναι να θυμόμαστε
πάντα το μαθηματικό παράδοξο των
γενεθλίων
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 13
μηνύματος και αποστολέα
Παράδοξο των γενεθλίων
(Birthday paradox)
„ Έστω ότι 23 άτομα βρίσκονται σε μία
δεξίωση. Αν αναλογιστούμε την πιθανότητα
δύο από αυτά να έχουν γενέθλια την ίδια
μέρα (όχι απαραίτητα του ίδιου έτους), τότε
με μία βιαστική εκτίμηση θα μπορούσε να
πει κάποιος ότι η πιθανότητα αυτή είναι
μικρή. Θα δούμε όμως ότι η πιθανότητα
αυτή είναι μεγαλύτερη από 50%!!

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 14


μηνύματος και αποστολέα

Παράδοξο των γενεθλίων -


απόδειξη
„ Εάν έχουμε n άτομα και pn είναι η πιθανότητα τουλάχιστον δύο άτομα να
έχουν ημερομηνία την ίδια μέρα, τότε η πιθανότητα όλοι να έχουν
διαφορετικές μέρες γενέθλια ισούται με p’n=1-pn.
„ Έστω ότι τα άτομα εισέρχονται ένα-ένα. Η πιθανότητα του πρώτου
ατόμου να μην έχει ίδια μέρα γενέθλια με κανέναν από όσους είναι ήδη
στο δωμάτιο είναι προφανώς 1 ή, ισοδύναμα, 365/365.
„ Η αντίστοιχη πιθανότητα για το δεύτερο άτομο που μπαίνει στην
αίθουσα είναι προφανώς 364/365=(365-1)/365.
„ Παρόμοια, η αντίστοιχη πιθανότητα για το τρίτο άτομο είναι
363/365=(365-2)/365.
„ Με την ίδια λογική, όταν και το n-ιοστό άτομο μπει στην αίθουσα, η
πιθανότητα κανείς να μην έχει ίδια μέρα γενέθλια με κανέναν ισούται με
365 (365 − 1) (365 − 2 ) (365 − n + 1) 365 !
p 'n = ⋅ ⋅ ⋅K ⋅ =
365 365 365 365 (365 − n )!365 n
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 15
μηνύματος και αποστολέα
Παράδοξο των γενεθλίων –
απόδειξη (συνέχεια)
„ Άρα, η πιθανότητα να υπάρχει τουλάχιστον ένα ζευγάρι
ανθρώπων που να έχουν γενέθλια την ίδια μέρα, είναι

365 !
pn = 1 −
( 365 − n )!365 n

Για n=23, η πιθανότητα pn γίνεται 0,507 – δηλαδή πάνω από 50%!!!


Κρυπτογραφική αξία:
αξία Το παράδοξο των γενεθλίων είναι καλό να το έχει πάντα
στο μυαλό του όποιος σχεδιάζει κρυπτογραφική συνάρτηση κατακερματισμού.
Μπορεί δηλαδή διαισθητικά να πιστεύουμε ότι είναι αρκετά απίθανο δύο
διαφορετικές είσοδοι σε μία συνάρτηση κατακερματισμού να δίνουν ίδια έξοδο,
αλλά παρόλα αυτά η πιθανότητα τελικά να είναι πολύ μεγαλύτερη από ό,τι
δείχνει φαινομενικά.
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 16
μηνύματος και αποστολέα

Μη δυνατότητα αποποίησης (κάποιας ενέργειας)


με συναρτήσεις κατακερματισμού

„ Έστω ότι κάποιος βρίσκει δύο μηνύματα M1, M2,


τέτοια ώστε Η(Μ1)=Η(Μ2).
„ Στέλνει το Μ1 σε κάποιον άλλο
„ Στη συνέχεια, ισχυρίζεται ότι έστειλε το M2! O
παραλήπτης δεν μπορεί να το αποδείξει.

„ Άρα, με τις συναρτήσεις κατακερματισμού,


αντιμετωπίζει κανείς και το πρόβλημα της
αποποίησης (εκτός της ακεραιότητας των δεδομένων
που ήδη αναφέραμε).
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 17
μηνύματος και αποστολέα
Πιστοποίηση ταυτότητας
(entity authentication)
„ Ανάγκη επιβεβαίωσης ότι αυτός που με τον
οποίο μιλάει κανείς είναι πραγματικά αυτός
που ισχυρίζεται
„ Η διαφορά με τις διάφορες μεθόδους
επιβεβαίωσης της ταυτότητας του
συνομιλητή που αναφέρθηκαν παραπάνω
στα πλαίσια της πιστοποίησης μηνύματος
(π.χ. MAC), είναι ότι μιλάμε πια για
πιστοποίηση ταυτότητας σε πραγματικό
χρόνο
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 18
μηνύματος και αποστολέα

Πώς επιτυγχάνεται ισχυρή πιστοποίηση


ταυτότητας ενός χρήστη
με χρήση συνάρτησης κατακερματισμού??

Ο C έχει ένα password το οποίο


γνωρίζει ο V 1.
Ο V δημιουργεί το μήνυμα –
Πρόκληση (Challenge Message)

Πρόκληση

2.
Claimant O V στέλνει την πρόκληση Verifier
(C) (V)

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 19


μηνύματος και αποστολέα
Πώς επιτυγχάνεται ισχυρή πιστοποίηση
ταυτότητας ενός χρήστη
με χρήση συνάρτησης κατακερματισμού?? (II)

3.
Ο C παράγει το μήνυμα-απάντηση Password Challenge
με τον εξής τρόπο:
(a) Επισυνάπτει το password Κατακερματισμός
στο μήνυμα-πρόκληση (χωρίς
(b) Κατακερματίζει το αποτέλεσμα κρυπτογράφηση)
(χωρίς κρυπτογράφηση)
Response
(c) Το κατακερματισμένο μήνυμα
είναι η απάντηση (Response
Message)

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 20


μηνύματος και αποστολέα

Πώς επιτυγχάνεται ισχυρή πιστοποίηση


ταυτότητας ενός χρήστη
με χρήση συνάρτησης κατακερματισμού?? (ΙΙΙ)

4.
Ο C στέλνει την απάντηση, χωρίς να την κρυπτογραφήσει

Απάντηση (challenge response)

Claimant
(C) Verifier
(V)

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 21


μηνύματος και αποστολέα
Πώς επιτυγχάνεται ισχυρή πιστοποίηση
ταυτότητας ενός χρήστη
με χρήση συνάρτησης κατακερματισμού?? (ΙV)

Password Challenge 5.
Ο V επισυνάπτει το password στο
Κατακερματισμός μήνυμα που έστειλε και
κατακερματίζει το αποτέλεσμα. Αυτό
που προκύπτει είναι η αναμενόμενη
Αναμενόμενη απάντηση
απάντηση από τον C

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 22


μηνύματος και αποστολέα

Πώς επιτυγχάνεται ισχυρή πιστοποίηση


ταυτότητας ενός χρήστη
με χρήση συνάρτησης κατακερματισμού?? (VΙ)

Μεταδιδόμενη απάντηση =? Αναμενόμενη απάντηση

6.
Αν η ληφθείσα απάντηση ταυτίζεται με την αναμενόμενη, τότε
Ο V συμπεραίνει ότι o C ξέρει το σωστό password.

Στην παραπάνω ανάλυση δεν χρησιμοποιήθηκε καθόλου κρυπτογράφηση,


παρά μόνο κατακερματισμός. Ωστόσο, απαραίτητη προϋπόθεση είναι να
γνωρίζει ο Verifier το password (κάτι που δεν χρειάζεται στα πρωτόκολλα
μηδενικής γνώσης που περιγράφονται παρακάτω).
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 23
μηνύματος και αποστολέα
Άλλες τεχνικές πιστοποίησης
ταυτότητας
„ Με χρήση αλγορίθμων Δημοσίου Κλειδιού
(κρυπτογράφηση του κάθε μηνύματος με το
ιδιωτικό κλειδί του χρήστη – βλέπε διαφάνειες
κεφαλαίου 1).
„ Oι RSA, El Gamal, Rabin είναι οι βασικοί
αλγόριθμοι που χρησιμοποιούνται για πιστοποίηση
ταυτότητας του χρήστη.
„ Υπάρχει μια ειδική τεχνική, η οποία βασίζεται σε
αλγορίθμους δημοσίου κλειδιού, αλλά έχει
διαφορετική φιλοσοφία – είναι τα λεγόμενα
πρωτόκολλα μηδενικής γνώσης (Zero-knowledge
protocols) (π.χ. Fiat-Shamir) – αναπτύσσεται στο
εργαστήριο (δεν θα μελετηθεί εδώ)
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 24
μηνύματος και αποστολέα

Ψηφιακή υπογραφή
(Digital Signature)
„ Υπογραφή (signature) s=SI(m) για ένα μήνυμα
m ενός χρήστη I
{ o I υπογράφει, δηλαδή υπολογίζει το s, συνάρτηση
τόσο του m όσο και του ίδιου του χρήστη I
{ Για δοθέντα s,I, και m, ο οποιοσδήποτε μπορεί να
ελέγξει ότι s=SI(m)
{ H συνάρτηση υπολογισμού του s πρέπει να είναι
κατάλληλη ώστε να μη μπορεί κάποιος άλλος να
δημιουργήσει το ίδιο s με τον I

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 25


μηνύματος και αποστολέα
Ψηφιακή υπογραφή με χρήση
αλγορίθμου Δημοσίου Κλειδιού
Για τη δημιουργία της ψηφιακής
υπογραφής: Αρχικό μήνυμα

1. Κατακερματισμός του αρχικού μηνύματος, Κατακερματισμός


έτσι ώστε να προκύψει ένα «αποτύπωμα»
(MD) του μηνύματος MD
Υπογραφή
2. Το MD κρυπτογραφείται, με το ιδιωτικό (Κρυπτογράφηση)
κλειδί του αποστολέα. Προκύπτει με το ιδιωτικό κλειδί
έτσι η ψηφιακή υπογραφή (DS) DS του αποστολέα

3. Η υπογραφή επισυνάπτεται στο αρχικό


μήνυμα, κρυπτογραφείται το αποτέλεσμα
(στην τυπική περίπτωση με συμμετρικό κλειδί)
DS Αρχικό μήνυμα
και μεταδίδεται
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 26
μηνύματος και αποστολέα

Έλεγχος ψηφιακής υπογραφής,


με αλγόριθμο Δημοσίου Κλειδιού
Για να ελέγξει ο δέκτης
4. 5. την υπογραφή:

Λαμβανόμενο μήνυμα DS 4. Κατακερματίζει το αρχικό


μήνυμα με την ίδια συνάρτηση
κατακερματισμού. Αυτό οδηγεί
Αποκρυπτογράφηση
Κατα- με το δημόσιο κλειδί στον υπολογισμό του MD.
κερματισμός του αποστολέα
5. Αποκρυπτογραφεί την υπογραφή
με το Δημόσιο Κλειδί του αποστολέα.
Αυτό επίσης οδηγεί στον υπολογισμό
MD MD του MD

6. 6. Αν συμπίπτουν, η ταυτότητα του


Είναι ίσα? αποστολέα επιβεβαιώνεται
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 27
μηνύματος και αποστολέα
Αλγόριθμοι ψηφιακών
υπογραφών
„ Όλες οι γνωστές μέθοδοι Δημοσίου Κλειδιού μπορούν να
χρησιμοποιηθούν για την ψηφιακή υπογραφή
{ RSA (χρησιμοποιείται ευρέως – βλέπε εργαστηριακές
σημειώσεις (για όποιον ενδιαφέρεται))
{ Rabin (βασίζεται στον αλγόριθμο κρυπτογράφησης Rabin που
μελετήθηκε στο Κεφάλαιο 4. Χρησιμοποιεί μία συνάρτηση
πλεονασμού. Δεν θα μελετηθεί εδώ. Όποιος ενδιαφέρεται,
μπορεί να ανατρέξει στο Κεφάλαιο 11 του Handbook of Applied
Cryptography).
{ El Gamal
{ DSA (παραλλαγή του El Gamal)
„ Άλλοι αλγόριθμοι ψηφιακής υπογραφής
{ GOST
{ Ong-Schnorr-Shamir
{ ESIGN

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 28


μηνύματος και αποστολέα

Αλγόριθμος ψηφιακής
υπογραφής El Gamal

„ Κάθε χρήστης επιλέγει:


{ Έναν πολύ μεγάλο πρώτο αριθμό p
{ Έναν ακέραιο g που είναι γεννήτορας mod p
(αυτό σημαίνει ότι gk mod p ≠ 1 mod p για όλα τα
1 ≤ k ≤ p-2.
{ Έναν τυχαίο ακέραιο 1 ≤ a ≤ p-2
{ Υπολογίζει τον y=ga mod p
{ Ιδιωτικό κλειδί: a
{ Δημόσιο κλειδί: p, g, y

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 29


μηνύματος και αποστολέα
Αλγόριθμος ψηφιακής
υπογραφής El Gamal (2)
„ O χρήστης υπογράφει το μήνυμα m ως εξής:
{ Κατακερματίζει το μήνυμα με κάποιον γνωστό
αλγόριθμο κατακερματισμού – υπολογίζει έτσι το
h(m)
{ Επιλέγει τυχαίο 1 ≤ k ≤ p-2, τέτοιο ώστε gcd(k,p-
1)=1.
{ Υπολογίζει το r = gk mod p
{ Υπολογίζει το k-1 mod (p-1) - δηλαδή, τον ακέραιο
αριθμό τέτοιον ώστε k · k-1 ≡ 1 mod (p-1)
{ Υπολογίζει το s = k-1(h(m) – ar) mod (p-1)
{ H υπογραφή είναι το ζευγάρι (r,s)

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 30


μηνύματος και αποστολέα

Αλγόριθμος ψηφιακής
υπογραφής El Gamal (3)

„ O παραλήπτης ελέγχει την υπογραφή


ως εξής:
{ Βρίσκει το h(m) (εφόσον έχει λάβει το
μήνυμα m)
{ Υπολογίζει το u1=yr ·rs mod p
{ Υπολογίζει το u2 = gh(m) mod p
{ H υπογραφή είναι έγκυρη μόνο αν u1=u2

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 31


μηνύματος και αποστολέα
Αλγόριθμος ψηφιακής
υπογραφής El Gamal (3)

„ Απόδειξη της ορθότητας του


αλγόριθμου υπογραφής El Gamal
{ Εάν η υπογραφή είναι σωστή, τότε ισχύει
s ≡ k-1(h(m) - ar) mod (p-1).
{ Πολλαπλασιάζοντας με το k και τα δύο
μέλη, έχουμε
h(m)=ks + ar mod (p-1).
{ Άρα, gh(m) ≡ gks+ar ≡ rs yr mod (p-1)
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 32
μηνύματος και αποστολέα

Αλγόριθμος ψηφιακής υπογραφής


El Gamal - Παράδειγμα

„ Για λόγους απλότητας θεωρούμε h(m)=m.


„ Έστω το μήνυμα m=5
„ Δημόσιο κλειδί: p=11, g=6, y=3
„ Ιδιωτικό κλειδί: a=2 (προσέξτε ότι ισχύει y ≡ ga mod p)
„ O χρήστης επιλέγει τυχαίο k=7 και υπολογίζει το r = gk mod p = 8.
„ Υπολογίζει το 7-1 mod 10 = 3 (πράγματι, 7 · 3 ≡ 1 mod 10. To 3
μπορεί να το βρει με δοκιμές, ελέγχοντας όλους τους αριθμούς
από 1 μέχρι p-2=9). Άρα, k-1=3.
„ Υπολογίζει το s = k-1(h(m) – ar) mod (p-1) =
= 3(5-16) mod 10 ≡ 3 · (-11) mod 10 ≡ 3 · 9 mod 10 = 7.
„ Υπογραφή: (r,s)=(8,7)

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 33


μηνύματος και αποστολέα
Αλγόριθμος ψηφιακής υπογραφής
El Gamal – Παράδειγμα (συνέχεια)

„ O παραλήπτης λαμβάνει το μήνυμα m=5 και την


υπογραφή (r,s)=(8,7). Ξέρει επίσης το δημόσιο κλειδί
(p=11, g=6, y=3) του αποστολέα.
{ Βρίσκει το h(m)=h(5)=5
{ Υπολογίζει το u1=yr ·rs mod p =
38 · 87 mod 11 = 5 · 2 mod 11 = 10.
{ Υπολογίζει το u2 = gh(m) mod p =
=65 mod 11 = 10
{ H υπογραφή είναι έγκυρη γιατί u1=u2
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 34
μηνύματος και αποστολέα

Αλγόριθμος DSA
(Digital Signature Algorithm)*

„ Προτάθηκε από τον NIST το 1991


„ Απαιτεί τη χρήση συνάρτησης
κατακερματισμού (SHA-1)
„ Στηρίχτηκε στον αλγόριθμο ElGamal

* Όσες διαφάνειες από αυτές που ακολουθούν έχουν αστερίσκο *, είναι εκτός ύλης
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 35
μηνύματος και αποστολέα
Περιγραφή DSA *
„ Παράμετροι συστήματος
{ Επιλογή ενός πρώτου q των 160-bit
{ Επιλογή ενός πρώτου p των 1024-bit, έτσι ώστε:
q | p-1
{ Επιλογή g ∈ Zp* και υπολογισμός
a = g(p-1)/q mod p
{ Αν a=1, η διαδικασία επαναλαμβάνεται με διαφορετικό g
„ Κλειδιά
{ Επιλογή τυχαίου μυστικού κλειδιού x (1≤ x≤ q-1)
{ Υπολογισμός Δημοσίου Κλειδιού y = ax mod p
(όλα τα υπόλοιπα νούμερα είναι επίσης δημόσια)
Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 36
μηνύματος και αποστολέα

Υπογραφή στον DSA*

„ Για να υπογραφεί ένα μήνυμα m


{ Κατακερματισμός του m → h(m) (1≤ h(m)≤ q-1)
(με τον αλγόριθμο κατακερματισμού SHA-1)
{ Δημιουργία τυχαίου (και μυστικού) k (1≤ k≤ q-1)
{ Υπολογισμός r = (ak mod p) mod q
{ Υπολογισμός k-1 mod q
{ Υπολογισμός s = k-1{h(m) + xr} mod q
{ Η υπογραφή στο m είναι (r,s)

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 37


μηνύματος και αποστολέα
DSA – Επιβεβαίωση
υπογραφής*

„ Για την επιβεβαίωση των (r,s)


{ Έλεγχος του ότι 1≤ r≤ q-1 και 1≤ s≤ q-1
{ Υπολογισμός w = s-1 mod q
{ Υπολογισμός h(m)
{ Υπολογισμός u1 = wh(m) mod q
{ Υπολογισμός u2 = rw mod q
{ Αποδοχή της υπογραφής αν
{ (au1yu2 mod p) mod q = r

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 38


μηνύματος και αποστολέα

Ερμηνεία του αλγορίθμου*


„ Εάν το (r,s) είναι σωστή και έγκυρη υπογραφή, τότε
ισχύει
h(m) ≡ -xr + ks mod q
„ Πολλαπλασιάζοντας με το w και τα δύο μέλη,
προκύπτει
„ wh(m) + xrw ≡ k mod q =>
=> u1 + xu2 ≡ k mod q => au1 + xu2 ≡ ak mod q =>
=> (au1 yu2 mod p ) mod q ≡ (ak mod p) mod q

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 39


μηνύματος και αποστολέα
Ασφάλεια του DSA*

„ Έγκειται στα:
{ Υπολογισμός λογαρίθμων στο GF(p)
{ Υπολογισμός λογαρίθμων σε κυκλική υπο-
ομάδα τάξης q
„ Αλγόριθμοι για αυτό χρειάζονται χρόνο
ανάλογο του q1/2 (κεφάλαιο 3 – Handbook of
Applied Cryptography)
„ Στην πράξη επιλέγεται q ≈ 2160 και p ≈ 21024

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 40


μηνύματος και αποστολέα

Συνδυασμός Μεθοδολογιών -
Κρυπτογράφηση
Εξασφάλιση εμπιστευτικότητας - ακεραιότητας - αυθεντικότητας
χρήστης Α
αρχικό
κατακερματισμός κείμενο

κωδικ.
ψηφιακό ψηφιακή κρυπτογράφηση μήνυμα
αποτύπωμα κρυπτογράφηση υπογραφή
συμμετρικό κλειδί Κ
ιδιωτικό κλειδί dΑ ψηφιακό
πιστ. eΑ αποστολή
μέσω
διαδικτύου

συμμετρικό
κλειδί Κ
ψηφιακός
κρυπτογράφηση φάκελος
ψηφιακό
πιστ. eΒ
δημόσιο κλειδί eΒ

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 41


μηνύματος και αποστολέα
Συνδυασμός Μεθοδολογιών -
Αποκρυπτογράφηση
Εξασφάλιση εμπιστευτικότητας - ακεραιότητας - αυθεντικότητας
χρήστης Β

ψηφιακό αρχικό
αποτύπωμα κατακερματισμός κείμενο

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

συμμετρικό
κλειδί Κ
ψηφιακός
αποκρυπτογράφηση φάκελος
ψηφιακό
πιστ. eΒ
ιδιωτικό κλειδί dΒ

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 42


μηνύματος και αποστολέα

Χαρακτηριστικά συστήματα με
την προηγούμενη δομή

„ PGP (Pretty Good Privacy) (www.pgp.com)


{ Ο κάθε χρήστης πιστοποιεί το δημόσιο κλειδί
του άλλου χρήστη, δηλαδή ο κάθε χρήστης
μπορεί να γίνει μία αρχή πιστοποίησης.
„ X509 (Πρότυπο για το Internet, για υποδομή
Δημοσίου κλειδιού)
{ Δεν καθορίζονται οι συμμετρικοί αλγόριθμοι
κρυπτογράφησης που θα χρησιμοποιηθούν για
την κρυπτογράφηση των δεδομένων

Κώστας Λιμνιώτης Κρυπτογραφία 5 - Τεχνικές πιστοποίησης 43


μηνύματος και αποστολέα
Εργαστηριακό μάθημα 1

Βασικοί όροι
„ Με τον όρο κρυπτογραφία εννοούμε τη μελέτη
μαθηματικών τεχνικών που στοχεύουν στην
εξασφάλιση θεμάτων που άπτονται της ασφάλειας
μετάδοσης της πληροφορίας, όπως
εμπιστευτικότητα, πιστοποίηση ταυτότητας του
αποστολέα και διασφάλιση του αδιάβλητου της
πληροφορίας.
„ Ορολογία:
{ Plaintext : Το αρχικό κομμάτι πληροφορίας
{ Κρυπτόγραμμα (ciphertext): Το κρυπτογραφημένο μήνυμα
{ Encryption: Η διαδικασία της κρυπτογράφησης ενός
μηνύματος
{ Decryption: η διαδικασία αποκρυπτογράφησής του

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 2


Στόχοι της κρυπτογραφίας
„ Τα μηνύματα πρέπει να φτάνουν στο σωστό
προορισμό
„ Εμπιστευτικότητα: Μόνο ο παραλήπτης τους να
μπορεί να τα λάβει και να τα δει (confidentiality)
„ Πιστοποίηση της ταυτότητας του αποστολέα
(authentication)
„ Το μήνυμα δεν πρέπει να αλλοιωθεί κατά τη
μεταφορά από μη εξουσιοδοτημένη οντότητα (data
integrity)
„ Όποια ενέργεια κάνει κάποιος (π.χ. πιστοποίηση
ταυτότητας) δεν πρέπει αργότερα να μπορεί να την
αρνηθεί (Non-repudiation)
Προσοχή!
Η κρυπτογραφία δεν λύνει τα παραπάνω, απλά προσπαθεί
να τα ικανοποιήσει
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 3

Αλγόριθμοι βασισμένοι σε
κλειδιά
„ Οι αλγόριθμοι κρυπτογράφησης χρησιμοποιούν ένα
ή περισσότερα κλειδιά (keys).

Encryption Key Υποκλοπέας Decryption Key

Plaintext Ciphertext Original plaintext


Α Encryption Decryption Β

Η ασφάλεια έγκειται στο ότι δεν είναι γνωστό το κλειδί – οι


αλγόριθμοι κρυπτογράφησης και αποκρυπτογράφησης μπορούν
να είναι ευρέως γνωστοί (αρχή του Kerchoff)
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 4
Ένας απλός αλγόριθμος
βασισμένος σε κλειδί
Κρυπτογράφηση
Πολλαπλασίασε το αρχικό μήνυμα επί 2 και πρόσθεσε
το κλειδί

Αποκρυπτογράφηση
Αφαίρεσε το κλειδί και διαίρεσε το κρυπτόγραμμα διά 2

plaintext = SECRET = 19 5 3 18 5 20
Key = 3
Ciphertext = 41 13 9 39 13 43
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 5

Κατηγορίες αλγορίθμων
ως προς το είδος του κλειδιού
„ Αλγόριθμοι συμμετρικού (ή κρυφού) κλειδιού
(symmetric key algorithms)
{ Χρησιμοποιείται το ίδιο κλειδί τόσο για την
κρυπτογράφηση όσο και για την
αποκρυπτογράφηση
„ Αλγόριθμοι ασύμμετρου (ή δημοσίου) κλειδιού
(Asymmetric (or public key) algorithms)
{ Χρησιμοποιούνται διαφορετικά κλειδιά για την
κρυπτογράφηση και την αποκρυπτογράφηση
{ Το κλειδί κρυπτογράφησης δεν μπορεί να εξαχθεί
από το κλειδί αποκρυπτογράφησης
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 6
Μαθηματικός φορμαλισμός

Αν E και D συμβολίζουν τις συναρτήσεις κρυπτογράφησης και


αποκρυπτογράφησης αντίστοιχα, τότε:

„ EK1(m) = c
„ DK2(c) = m
όπου M και C υποδηλώνουν το αρχικό και το κρυπτογραφημένο μήνυμα
αντίστοιχα.
Οι δείκτες Ki υποδηλώνουν την εξάρτηση των συναρτήσεων από το κλειδί.
Οι συναρτήσεις έχουν την ιδιότητα: DK2(EK1(m)) = m
Σε αλγόριθμους συμμετρικού κλειδιού, ισχύει K1 = K2

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 7

Αλγόριθμοι συμμετρικού κλειδιού

Αποστολέας P C P
Encryption Decryption Παραλήπτης

Ασφαλής μετάδοση του κλειδιού

‰ Ο αποστολέας και ο παραλήπτης πρέπει από την αρχή να


συμφωνήσουν στη χρήση ενός κοινού κλειδιού.
‰ Ένα «ασφαλές κανάλι επικοινωνίας» πρέπει να υπάρχει για την
επικοινωνία τους προκειμένου να ενημερώσει ο ένας τον άλλον για
τον κλειδί.

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 8


Ιστορική αναδρομή – Αλγόριθμοι
αντικατάστασης και μετάθεσης

„ Πριν την εμφάνιση των υπολογιστών, η κρυπτογραφία


εφαρμοζόταν σε μηνύματα αποτελούμενα από γράμματα της
αλφαβήτου
{ Αλγόριθμοι αντικατάστασης (substitution ciphers):
κάθε γράμμα του αρχικού μηνύματος αντικαθίσταται από
κάποιο άλλο γράμμα του αλφαβήτου του
κρυπτογράμματος.
{ Αλγόριθμοι μετάθεσης ή αναδιάταξης (transposition
(permutation) ciphers): το κρυπτόγραμμα είναι
αναγραμματισμός του αρχικού μηνύματος.
„ Είναι αλγόριθμοι συμμετρικού κλειδιού
„ Αυτές οι τεχνικές είναι παρούσες σχεδόν σε όλους τους
σύγχρονους αλγορίθμους κρυπτογράφησης.
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 9

Ειδική περίπτωση αλγορίθμων


αντικατάστασης: αλγόριθμοι μετατόπισης

„ Κάθε γράμμα μετατοπίζεται κατά k θέσεις δεξιά


τους (όπου k το κλειδί του αλγορίθμου)
{ Παράδειγμα αλγόριθμου μετατόπισης: Caesar
cipher
„ Κάθε γράμμα αντικαθίσταται από εκείνο που
βρίσκεται 3 θέσεις (modulo 26 για το αγγλικό
αλφάβητο) δεξιά του.
„ Η ασφάλεια των αλγορίθμων μετατόπισης
είναι μικρή (π.χ. για το αγγλικό αλφάβητο, τα
πιθανά κλειδιά είναι μόλις 25).

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 10


Caesar Cipher - Παραδείγματα
„ Παράδειγμα 1
{ Plaintext: ABCXYZ

{ Ciphertext: DEFABC

„ Παράδειγμα 2
{ Plaintext: This is not secure

{ Ciphertext: Wklv lv qrw vhfxuh

Στη γενική περίπτωση, ένας αλγόριθμος μετατόπισης ολισθαίνει


κάθε γράμμα κατά k θέσεις όπου το k μπορεί να πάρει
οποιαδήποτε τιμή.
• Μη ασφαλείς αλγόριθμοι – το πλήθος των δυνατών κλειδιών
είναι πολύ μικρό!!!
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 11

Μονοαλφαβητικοί αλγόριθμοι
αντικατάστασης
„ Κάθε σύμβολο του μηνύματος αντιστοιχίζεται σε ένα
συγκεκριμένο σύμβολο του αλφαβήτου του
κρυπτογράμματος, με μία «1-1» και επί
συνάρτηση.
„ Παράδειγμα: Α -> Λ, Β -> Ω, Γ -> Δ κ.ο.κ.
„ Το πλήθος των κλειδιών είναι πολύ μεγάλο!! (ίσο με
το πλήθος των δυνατών αντιστοιχίσεων που
μπορούν να υπάρξουν)
{ Για το ελληνικό αλφάβητο που έχει 24 γράμματα, οι
πιθανές αντιστοιχίσεις είναι 23!
„ Ένας μονοαλφαβητικός αλγόριθμος
αντικατάστασης είναι εύκολο να σπάσει, με
ελέγχους της συχνότητας εμφάνισης των
γραμμάτων
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 12
Συχνότητες εμφάνισης γραμμάτων της
ελληνικής γλώσσας
Συχνότητα Εμφάνισης Συχνότητα Εμφάνισης
Γράμμα Γράμμα
(%) (%)
Α 12 Λ 3,3
Ο 9,8 Η 2,9
Τ 9,1 Γ 2
Ε 8 Δ 1,7
Ν 7,9 Ω 1,6
Ι 7,8 Χ 1,4
Π 5,024 Θ 1,3
Ρ 5,009 Φ 1,2
Σ 4,9 Β 0,8
Μ 4,4 Ξ 0,6
Υ 4,3 Ζ 0,5
Κ 4,2 Ψ 0,2

Πρέπει το κείμενο να είναι μεγάλο, ώστε οι συχνότητες εμφάνισης


των γραμμάτων στο κείμενο να ταυτίζονται με αυτές του πίνακα.
Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 13

Ευρύτερη περίπτωση:
Πολυαλφαβητικοί αλγόριθμοι
αντικατάστασης

„ Κάθε γράμμα του αρχικού μηνύματος δεν


αντικαθίσταται από κάποιο συγκεκριμένο, αλλά το
από ποιο θα αντικατασταθεί καθορίζεται από
κάποιο κλειδί
„ Αν και δείχνει πιο ασφαλής από έναν απλό
αλγόριθμο αντικατάστασης, εν τούτοις αν βρεθεί το
μήκος του κλειδιού υπόκειται στις ίδιες μεθόδους
κρυπτανάλυσης, βασισμένες στις συχνότητες
εμφάνισης των γραμμάτων
„ Παράδειγμα: Vigenere Cipher

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 14


Vigenere Cipher
„ Aνακαλύφτηκε από τον Γάλλο κρυπτογράφο Blaise de
Vigenere
„ Χρησιμοποιεί μία φράση-κλειδί για να κρυπτογραφήσει ένα
μήνυμα
„ Κάθε χαρακτήρας του κλειδιού αποφασίζει το πόσες θέσεις
θα ολισθήσει ο αντίστοιχος χαρακτήρας του αρχικού
κειμένου. Για παράδειγμα:
{ A: ολίσθηση 0 θέσεων δεξιά
{ B: ολίσθηση 1 θέσης δεξιά
{ C: ολίσθηση 2 θέσεων δεξιά
{ …
„ Αν η φράση-κλειδί έχει μικρότερο μήκος από το αρχικό
μήνυμα, η φράση-κλειδί επαναλαμβάνεται.

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 15

Παράδειγμα
„ Κλειδί: lucky
„ Αρχικό μήνυμα: simple message
„ Κλειδί μετά την επανάληψη: luckyl uckyluc
„ Πλήθος θέσεων ολίσθησης: 11 (l), 20(u), 2(c), 10(k), 24 (y),
11(l), 20(u), 2(c), 10(k), 24(y), 11(l), 20(u), 2(c). Αυτό το
πλήθος θέσεων ολίσθησης εξαρτάται από τη θέση του
αντίστοιχου γράμματος του κλειδιού στο αγγλικό αλφάβητο.
Για παράδειγμα, το l είναι το 12ο γράμμα, άρα η μετατόπιση
του αντίστοιχου γράμματος του αρχικού μηνύματος είναι
κατά 11 θέσεις δεξιά κ.ο.κ.
„ Ολίσθηση των χαρακτήρων: sÆd, iÆc, mÆo, pÆz, lÆj, …
„ Κρυπτόγραμμα: dcozjpggcqlag

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 16


Σχόλια για τον αλγόριθμο
Vigenere
„ Το κλειδί πρέπει να είναι μεγάλο, όχι μόνο για αποφυγή της δυνατότητας
εξαντλητικής αναζήτησης αλλά και για την απόκρυψη της συχνότητας των
γραμμάτων.
„ Μέθοδος κρυπτανάλυσης: αναζήτηση του μεγέθους του κλειδιού (αν
υπολογιστεί το μήκος του κλειδιού, το πρόβλημα ανάγεται σε αλγόριθμο
απλής αντικατάστασης).
„ Έλεγχος του Kasiski:
Kasiski με δεδομένο ότι στο αρχικό κείμενο υπάρχουν λογικά
πολλά τμήματα που επαναλαμβάνονται (π.χ. στην ελληνική γλώσσα λέξεις
όπως «το», «οι», «σε», «με», «του», «από» κτλ εμφανίζονται πολλές φορές
σε ένα κείμενο), τότε αν στο κρυπτόγραμμα εμφανιστούν δύο τέτοια τμήματα,
πιθανότατα αυτά αντιστοιχούν σε ίδιο μήνυμα, στο οποίο έχει εφαρμοστεί το
ίδιο κλειδί. Έτσι είναι πιθανό να υπολογιστεί το μήκος του κλειδιού.
„ Παράδειγμα:
Παράδειγμα: Έστω το κρυπτόγραμμα ΑΚΨΟΜΙΗΗΙΛΟΗΗΙΞΑΚΨΝΔΚ
το ΑΚΨ επανεμφανίζεται σε απόσταση 15 χαρακτήρων, ενώ το ΗΗΙ σε
απόσταση 5 χαρακτήρων. Άρα, πιθανά μήκη κλειδιού ως προς την
επανεμφάνιση του ΑΚΨ είναι τα 3,5,15 (οι διαιρέτες του 15), ενώ ως προς το
ΗΗΙ είναι 5 (μια που το 5 δεν έχει διαιρέτες). Άρα, το πιο πιθανό μήκος
κλειδιού είναι το 5 («ικανοποιεί» και την επανεμφάνιση του ΑΚΨ και την
επανεμφάνιση του HHI).

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 17

Αλγόριθμοι μετάθεσης

„ «Ανακάτωμα» των bits ή των χαρακτήρων του μηνύματος, με βάση


κάποια συνάρτηση ‘1-1’ και επί πάνω στο αλφάβητο (συνάρτηση
αναδιάταξης).
„ (Η συνάρτηση αυτή αποτελεί και το κλειδί)

INFORMATION TECHNIQUES FOR IPR

I R I T N E R
N O M T O E H I U S O I R
F A N C Q F P

IRITNERNOMTOEHIUSOIRFANCQFP
„ Επίσης όχι ασφαλείς.

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 18


Το κλειδί στους αλγορίθμους
μετάθεσης
„ Αλλάζουνε οι θέσεις των γραμμάτων του
μηνύματος, με βάση κάποια αναδιάταξη που
ορίζεται από το κλειδί.
„ Παράδειγμα: έστω η λέξη ΜΑΘΗΜΑ και κλειδί το
[421653]. Αυτό σημαίνει ότι το τέταρτο γράμμα θα
γίνει 1ο, το δεύτερο θα παραμείνει δεύτερο, το
πρώτο θα γίνει 3ο κ.ο.κ. Άρα, το κρυπτόγραμμα θα
είναι ΗΑΜΑΜΘ.
„ Για μήνυμα μήκους N, όλα τα πιθανά κλειδιά είναι
N! (όσες δηλαδή και οι αναδιατάξεις N στοιχείων).

Κώστας Λιμνιώτης Εργαστηριακό μάθημα 1 19

Εργαστηριακό μάθημα 2-3-4


Ασκήσεις επανάληψης –
Αλγόριθμοι μετατόπισης
„ Προσπαθήστε, χωρίς να γνωρίζετε το κλειδί, να
αποκρυπτογραφήσετε το ακόλουθο κρυπτόγραμμα που έχει
προκύψει από κάποιον αλγόριθμο μετατόπισης:
ΥΧΕΩΓΤΙΦΙΤΛΓ
απάντηση: εξετάζουμε όλες τις πιθανές ολισθήσεις (1,2,3…)
των γραμμάτων του κρυπτογράμματος προς τα αριστερά,
μέχρις ώτου εμφανιστεί το μήνυμα. Βρίσκουμε λοιπόν το
αρχικό μήνυμα για ολίσθηση d=2 :
ΣΥΓΧΑΡΗΤΗΡΙΑ
„ Άρα: οι αλγόριθμοι μετατόπισης δεν είναι ασφαλείς, γιατί
το πλήθος των δυνατών κλειδιών είναι πολύ μικρό.
„ Πειραματική δοκιμή: κατεβάστε το αρχείο caesar.zip και
εκτελέστε τις συναρτήσεις encrypt_caesar και
cryptanalyse_caesar.

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 2

Ασκήσεις επανάληψης – αλγόριθμοι


μονοαλφαβητικής αντικατάστασης
„ Προσπαθήστε, χωρίς να γνωρίζετε το κλειδί, να
αποκρυπτογραφήστε το ακόλουθο μήνυμα, που έχει προκύψει
από κάποιον αλγόριθμο απλής (μονοαλφαβητικής)
αντικατάστασης:
ΩΣΠΧΣΧΒΚΑΚΡΚΧΑΚΡΚΚΑΧΠΡΚΓΡΣΟΧ
αν οι πιθανότητες εμφάνισης των γραμμάτων της ελληνικής
γλώσσας ήταν:
Ο: 0,12, Α:0,11, Μ:0,10, Τ: 0,09, Ι:0,09,
Ν: 0,08, Π:0,07, Λ:0,07, Ε:0,07, Υ:0,06 …..
„ Εδώ δεν μπορούμε να εξετάσουμε όλα τα πιθανά κλειδιά γιατί
είναι πάρα πολλά (24! για το ελληνικό αλφάβητο – όσες οι
πιθανές αντιστοιχίσεις των 24 γραμμάτων)

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 3


Ασκήσεις επανάληψης – αλγόριθμοι
μονοαλφαβητικής αντικατάστασης (II)
„ Απάντηση:
Απάντηση με βάση τις συχνότητες εμφάνισης των γραμμάτων στο κρυπτόγραμμα,
κάνουμε την παρακάτω αντιστοίχιση:

Κ -> Ο, Χ -> Α, Ρ -> Μ, Σ -> Τ, Α->Ι,


Π -> Ν, Ω -> Π, Β -> Λ, Ο->Ε, Γ -> Υ
(τυχαία ανάθεση στα Σ,Α αφού εμφανίζονται τον ίδιο αριθμό φορών (3). Ομοίως τυχαία
ανάθεση στα Ω,Β,Ο,Γ (που εμφανίζονται 1 φορά). Αποκρυπτογραφούμε τότε το
ακόλουθο μήνυμα:
ΠΤΝΑΤΑΛΟΙΟΜΟΑΙΟΜΟΟΙΑΝΜΟΥΜΤΕΑ

που προφανώς δεν είναι το μήνυμα που μας έστειλαν.


Αλλάζουμε την ανάθεση των Σ,Α σε I,T αντίστοιχα. Τότε, αποκρυπτογραφούμε σε:

ΠIΝΑIΑΛΟTΟΜΟΑTΟΜΟΟTΑΝΜΟΥΜΙΕΑ

όπου αρχίζει και διαφαίνεται το μήνυμα. Μπορούμε να δούμε, αλλάζοντας τις αναθέσεις
στα Ω,Β,Ο,Γ σε Ε,Π,Λ,Υ αντίστοιχα ότι το μήνυμα είναι

ΕΙΝΑΙ ΑΠΟΤΟΜΟ ΑΤΟΜΟ ΟΤΑΝ ΜΟΥ ΜΙΛΑ


Άσκηση: κρυπτογραφήστε το μήνυμα αυτό με τον αλγόριθμο Vigenere, έχοντας ως
κλειδί τη λέξη ΑΤΟΜΟ (Α-> ολίσθηση 0 θέσεων, Τ -> ολίσθηση 18 θέσεων, Ο ->
ολίσθηση 14 θέσεων, Μ -> ολίσθηση 11 θέσεων)
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 4

Πολυαλφαβητικοί αλγόριθμοι
αντικατάστασης –
Αλγόριθμος Vigenere
„ Έστω η φράση «TO BE OR NOT TO BE THAT
IS THE QUESTION» και σαν κλειδί έχουμε τη
φράση RELATIONS. Τότε, έχουμε το εξής
κρυπτόγραμμα:
R E L A T I O N S R E L A T I O NSR E L A T I O N SRE L
T O B E O R N O T T O B E T H A T I S T H E Q U E S T I O N
K S M E H Z B B L K S M E M PO GAJ X S E J C S F L ZS Y

Το R (πρώτο γράμμα της λέξης RELATIONS) είναι το 18ο γράμμα του αλφαβήτου, άρα
όπου συμπίπτει με κάποιο γράμμα του μηνύματος αυτό ολισθαίνει κατά 17 θέσεις
κ.ο.κ.

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 5


Κρυπτανάλυση Vigenere
„ Είναι πιο ασφαλής από κάποιον πολυαλφαβητικό
αλγόριθμο, γιατί δεν μπορούμε να εφαρμόσουμε
την τεχνική που βασίζεται στις πιθανότητες
εμφάνισης των γραμμάτων, όπως κάναμε στο
προηγούμενο παράδειγμα
„ Ωστόσο, αν ανακαλύψει κάποιος το μήκος του
κλειδιού, μπορεί να «σπάσει» τον αλγόριθμο.
„ Μέθοδος Kasiski:
Kasiski Αναζητούμε στο κρυπτόγραμμα
τμήματα επαναλαμβανόμενα. Κάνουμε την
υπόθεση ότι κάτι τέτοιο σημαίνει ότι το ίδιο τμήμα
μηνύματος συνέπεσε με το ίδιο τμήμα του κλειδιού.
Έτσι μπορούμε να βρούμε το μήκος του κλειδιού
(για την ακρίβεια βρίσκουμε πιθανά μήκη κλειδιού).

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 6

Κρυπτανάλυση Vigenere (II)


„ Στο προηγούμενο παράδειγμα: έχουμε τα κομμάτια KS, SM
και ME που εμφανίζονται δύο φορές (για το κάθε ζευγάρι, η
απόσταση μεταξύ τους είναι 9 γράμματα). Άρα, τα πιθανά
μήκη κλειδιού είναι 3 ή 9, τα οποία είναι οι διαιρέτες του 9.
(δεν πειράζει που δεν καταλήξαμε σε ένα συγκεκριμένο μήκος
κλειδιού αλλά σε δύο πιθανά μήκη: και μόνο το γεγονός ότι
βρήκαμε δύο πιθανά μήκη μειώνει σημαντικά τους
υπολογισμούς που έχουμε να κάνουμε).
„ Έχοντας εκτιμήσει το μήκος του κλειδιού, σπάμε το
κρυπτόγραμμα σε τμήματα μήκους όσο το μήκος του κλειδιού
και δουλεύουμε αντίστοιχα όπως στους απλούς αλγόριθμους
αντικατάστασης (με έλεγχο συχνότητας γραμμάτων).

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 7


Μονοαλφαβητικοί αλγόριθμοι
αντικατάστασης (συνέχεια)
„ Γραμμικός κρυπταλγόριθμος
{ Το κρυπτόγραμμα καθορίζεται από τη σχέση c=am + b
mod n, όπου το ζευγάρι (a,b) είναι το κλειδί. Το μήνυμα m
ανακτάται τότε από τη σχέση
m=a-1(c-b) mod n.
{ Προσοχή: για να είναι αντιστρεπτός ο αλγόριθμος, πρέπει
τα a, n να είναι πρώτα μεταξύ τους.
„ Παράδειγμα: έστω c=4m + 5 mod 24.
Επειδή gcd(4,24) = 4 (≠ 1), κάθε μήνυμα m κρυπτογραφείται
στο ίδιο με το m + k · 24/4 (k=1,2,3…). Παράδειγμα, για m=2,
c=8+5 mod 24 = 13, ενώ και για m=8 (8=2+24/4), c=32 + 5
mod 24 = 37 mod 24 = 13.
{ Για a=1, ο γραμμικός αλγόριθμος μετατρέπεται σε
αλγόριθμο μετατόπισης (ειδικά για a=1 και b=3, ο
γραμμικός αλγόριθμος γίνεται ο αλγόριθμος του Καίσαρα).
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 8

Παράδειγμα κρυπτογράφησης
με τον γραμμικό αλγόριθμο
„ Έστω a=5, b=1 και η λέξη ANTIO (ελληνικό αλφάβητο, άρα n=24).
„ Για το Α (1ο γράμμα της αλφαβήτου):
c= 5 · 0 + 1 mod 24 = 1
{ Άρα A -> Β (το 2ο γράμμα της αλφαβήτου)
„ Για το Ν (13ο γράμμα):
c=5 · 12 + 1 mod 24 = 61 mod 24 = 13
{ Άρα Ν - > Ξ (το 14ο γράμμα)
Συνεχίζοντας αντίστοιχα, θα έχουμε:
„ Για το T: c=5 · 18 + 1 mod 24 = 91 mod 24 = 19
„ Για το I: c= 5 · 8 + 1 mod 24 = 41 mod 24 = 17
„ Για το O: c= 5 · 14 + 1 mod 24 = 71 mod 24 = 23

„ Άρα ANTIO -> ΒΞΥΣΩ

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 9


Κρυπτανάλυση του γραμμικού
αλγορίθμου
1. Είναι ένας απλός (μονοαλφαβητικός) αλγόριθμος
αντικατάστασης, συνεπώς σε μεγάλα κείμενα μπορεί να
εφαρμοστεί η αποκρυπτογράφηση με βάση τις συχνότητες
εμφάνισης των γραμμάτων.
2. Καλύτερος τρόπος να κάνουμε κρυπτανάλυση: Εξαντλητική
αναζήτηση για την εύρεση των a,b (το b μπορεί να πάρει 24
τιμές – συγκεκριμένα, από 0 μέχρι 23, ενώ το a μπορεί να
πάρει τόσες τιμές όσοι οι αριθμοί που είναι πρώτοι ως προς
το n. Για παράδειγμα, για n=24 (ελληνικό αλφάβητο) το a
μπορεί να είναι μόνο ένα από τα 1,5,7,11,13,17,19,23). Με
άλλα λόγια, ο αριθμός των κλειδιών είναι πολύ μικρός!!
3. Εργαστηριακή άσκηση:
άσκηση εκτελέστε τα αρχεία encrypt_affine
και cryptanalyse_affine

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 10

Πολυαλφαβητικοί αλγόριθμοι
αντικατάστασης (συνέχεια)

„ Αλγόριθμος του Hill (Lester S. Hill – 1929)


{ Αποτελεί επέκταση του γραμμικού αλγορίθμου.
Το μήνυμα κωδικοποιείται ανά block L στοιχείων
(L τυχαίος ακέραιος) με βάση L γραμμικές
εξισώσεις (αντί για μία που είναι στο γραμμικό
κρυπταλγόριθμο). Συγκεκριμένα:
c = Km mod n
όπου K πίνακας διαστάσεων L × L (το κλειδί)

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 11


Παράδειγμα αλγορίθμου Hill
Χωρίζουμε το μήνυμά μας (που είναι αγγλικό κείμενο) σε μπλοκ
μήκους 3. An (p1 p2 p3) είναι ένα τέτοιο μπλοκ, τότε αυτό
κρυπτογραφείται ως εξής:

C1 = 9*p1 + 18*p2 + 10*p3 (mod 26)


C2 = 16*p1 + 21*p2 + 1*p3 (mod 26)
C3 = 5*p1 + 12*p2 + 23*p3 (mod 26)

C1 9 18 10 p1
C2 = 16 21 1 p2 (mod 26)
C3 5 12 23 p3
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 12

Παράδειγμα αλγορίθμου Hill (2)


Έστω το ακόλουθο μήνυμα (με την αντίστοιχη θέση των
γραμμάτων στο αλφάβητο (a ->0, b->1 κ.ο.κ.):

I can’t do it
8 2 0 13 19 3 14 8 19

Χωρίζουμε το μήνυμα σε μπλοκ των 3 γραμμάτων κι έχουμε:

4 9 18 10 8
14 = 16 21 1 2 (mod 26)
12 5 12 23 0

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 13


Παράδειγμα αλγορίθμου Hill (3)
19 9 18 10 13
12 = 16 21 1 19 (mod 26)
24 5 12 23 3

18 9 18 10 14
21 = 16 21 1 8 (mod 26)
9 5 12 23 19

Το κρυπτόγραμμα είναι: EOM TMY SVJ

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 14

Αλγόριθμος Hill - συνέχεια


Η αποκρυπτογράφηση γίνεται πολλαπλασιάζοντας κάθε ένα μπλοκ του κρυπτογράμματος, όπως αυτά
προέκυψαν με την προηγούμενη διαδικασία, με τον αντίστροφο του K. Συνεπώς, ο πίνακας K πρέπει να
είναι αντιστρέψιμος (mod n).
Ο Κ είναι αντιστρέψιμος αν και μόνο αν ισχύει gcd(det(K),n)=1
gcd(det(K),n)=1
Αν ο K δεν είναι αντιστρέψιμος, τότε υπάρχουν ζευγάρια μπλοκ του μηνύματος, τα οποία κρυπτογραφούνται
στο ίδιο κρυπτόγραμμα – το οποίο βέβαια απαγορευέται να συμβαίνει.

Το ακόλουθο παράδειγμα εμπίπτει σε αυτήν την περίπτωση:

23 9 18 10 1
bcd Æ XJR
9 = 16 21 1 2 (mod 26)
hfa Æ XJR
17 5 12 22 3
23 9 18 10 7
9 = 16 21 1 5 (mod 26)
17 5 12 22 0
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 15
Κρυπτανάλυση αλγορίθμου Hill

„ Επίθεση τύπου known plaintext attack: αν κάποιος


γνωρίζει L2 στοιχεία του μηνύματος καθώς και τα
αντίστοιχα στοιχεία του κρυπτογράμματος, τότε
μπορεί να φτιάξει ένα γραμμικό σύστημα της
μορφής:
⎛ c1 cL+1 L cL2 −L ⎞ ⎛ m1 mL+1 L mL2 −L ⎞
⎜ ⎟ ⎜ ⎟
⎜ c2 cL+2 L M ⎟ ⎜ m2 mL+2 L M ⎟
⎜M = K mod(n)
M L cL2 −1 ⎟ ⎜ M M L mL2 −1 ⎟
⎜ ⎟ ⎜ ⎟
⎜c c L cL ⎟⎠ ⎜m m L mL ⎟⎠
⎝ L 2L ⎝ L 2L

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 16

Κρυπτανάλυση αλγορίθμου Hill (2)

„ Παρατηρείστε ότι δεν χρειάζεται τα L2 στοιχεία του


μηνύματος να είναι διαδοχικά – αρκεί ανά μπλοκ
των L να είναι διαδοχικά.
„ Αν την προηγούμενη σχέση τη γράψουμε σαν
C=KM mod (n), τότε αν ο πίνακας M αντιστρέφεται,
μπορούμε να υπολογίσουμε τον K (βλέπε επόμενο
παραδειγμα).
„ Άρα, και στον αλγόριθμο του Hill επαληθεύεται η
γενική αρχή πως το κλειδί πρέπει να είναι όσο
γίνεται πιο μεγάλο.

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 17


Παράδειγμα κρυπτανάλυσης
σε Hill
„ Έστω ότι το κρυπτόγραμμα είναι:
JQSNOMHHDNNBDSTE
και ξέρουμε ότι τα πρώτα 4 γράμματα αντιστοιχούν στη λέξη TELL.
Αφού TELL->JQSN, ισχύει

⎛ 19 11 ⎞ ⎛ 9 18 ⎞
K ⎜⎜ ⎟⎟ ≡ ⎜⎜ ⎟⎟ mod 26
⎝ 4 11 ⎠ ⎝ 16 13 ⎠
⎛19 11⎞
Έχουμε det ⎜⎜ ⎟⎟ ≡ (19 ⋅11 − 4 ⋅11) mod 26 ≡ 165 ≡ 9 mod 26
⎝ 4 11⎠

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 18

Παράδειγμα κρυπτανάλυσης
σε Hill (2)
Επειδή gcd(9,26)=1, υπάρχει ο αντίστροφος του K.
Έχουμε 9-1=3(mod 26), συνεπώς:
−1
⎛ 19 11 ⎞ ⎛ 11 − 11 ⎞
⎜⎜ ⎟ ≡ 3 ⎜⎜ ⎟⎟ mod 26 ≡
⎝ 4 11 ⎟⎠ ⎝ − 4 19 ⎠
⎛ 33 − 33 ⎞ ⎛ 7 19 ⎞
≡ ⎜⎜ ⎟⎟ mod 26 ≡ ⎜⎜ ⎟⎟ mod 26
⎝ − 12 57 ⎠ ⎝ 14 5 ⎠

⎛9 18 ⎞ ⎛ 7 19 ⎞ ⎛ 315 261 ⎞ ⎛ 3 1⎞
K ≡ ⎜⎜ ⎟⎜ ⎟≡⎜ ⎟≡⎜ ⎟ mod 26
13 ⎟⎠ ⎜⎝ 14 5 ⎟⎠ ⎜⎝ 294 369 ⎟⎠ ⎜⎝ 8 5 ⎟⎠
Συνεπώς:
⎝ 16
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 19
Παράδειγμα κρυπτανάλυσης
σε Hill (3)
Για την αποκρυπτογράφηση, χρειαζόμαστε τον αντίστροφο του K.

−1 ⎛ 5 − 1⎞ ⎛ 23 11 ⎞
K ≡ 7 − 1 ⎜⎜ ⎟⎟ mod 26 ≡ ⎜⎜ ⎟⎟ mod 26
⎝−8 3 ⎠ ⎝ 10 19 ⎠
(το 7-1mod 26 ισούται με 15)
Για την αποκρυπτογράφηση λοιπόν έχουμε τα ακόλουθα γινόμενα:

⎛ 23 11 ⎞ ⎛ 9 ⎞ ⎛ 23 11 ⎞ ⎛ 18 ⎞ ⎛ 23 11 ⎞ ⎛ 14 ⎞ ⎛ 23 11 ⎞⎛ 7 ⎞
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎝ 10 19 ⎠ ⎝ 16 ⎠ ⎝ 10 19 ⎠ ⎝ 13 ⎠ ⎝ 10 19 ⎠ ⎝ 12 ⎠ ⎝ 10 19 ⎠⎝ 7 ⎠

⎛ 23 11 ⎞⎛ 3 ⎞ ⎛ 23 11 ⎞ ⎛ 13 ⎞ ⎛ 23 11 ⎞⎛ 3 ⎞ ⎛ 23 11 ⎞ ⎛ 19 ⎞
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎝ 10 19 ⎠ ⎝ 13 ⎠ ⎝ 10 19 ⎠⎝ 1 ⎠ ⎝ 10 19 ⎠ ⎝ 18 ⎠ ⎝ 10 19 ⎠⎝ 4 ⎠

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 20

Παράδειγμα κρυπτανάλυσης
σε Hill (4)
Τα αποτελέσματα των γινομένων είναι:

⎛19 ⎞ ⎛11⎞ ⎛12 ⎞ ⎛ 4 ⎞ ⎛ 4 ⎞ ⎛ 24 ⎞ ⎛ 7 ⎞ ⎛13⎞


⎜⎜ ⎟⎟, ⎜⎜ ⎟⎟, ⎜⎜ ⎟⎟, ⎜⎜ ⎟⎟, ⎜⎜ ⎟⎟, ⎜⎜ ⎟⎟, ⎜⎜ ⎟⎟, ⎜⎜ ⎟⎟
⎝ 4 ⎠ ⎝11⎠ ⎝ 4 ⎠ ⎝ 21⎠ ⎝17 ⎠ ⎝ 19 ⎠ ⎝ 8 ⎠ ⎝ 6 ⎠

Κάνοντας τις αντιστοιχίες των παραπάνω με τα τα γράμματα του


αλφαβήτου, προκύπτει το αρχικό μήνυμα: TELL ME EVERYTHING

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 21


Κρυπτανάλυση γραμμικού
αλγορίθμου με επίθεση γνωστού
κειμένου
„ Όπως και στον αλγόριθμο του Hill, και ο γραμμικός
αλγόριθμος μπορεί να σπάσει εύκολα με επίθεση
γνωστού κειμένου (Known plaintext attack).
„ Παράδειγμα: έστω ότι το κρυπτόγραμμα είναι
JAKNHOZXQUQPPSOGAVOGONNOU
και κάνουμε την υπόθεση ότι το μήνυμα ξεκινάει με τη λέξη DEAR.

Μπορούμε να βρούμε το κλειδί?? Αν ναι, πώς??

(απάντηση: κλειδί (a,b)=(17,10) και a-1=23 – υπολογίζεται με επίλυση


γραμμικού συστήματος – Άσκηση εργαστηριακή)

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 22

Αλγόριθμος Playfair (1854)


„ Ένας 5 x 5 πίνακας συμπληρώνεται με τη
λέξη-κλειδί (δύο ίδια γράμματα δεν
εμφανίζονται δύο φορές) και οι υπόλοιπες Q U E R Y
θέσεις του πίνακα συμπληρώνονται από τα
εναπομείναντα γράμματα του αλφαβήτου. A B C D F
„ Στο διπλανό πίνακα, κλειδί είναι η λέξη
“query”
G H I/J K L
„ Τα I/J πηγαίνουν μαζί, στο ίδιο τετράγωνο
(εναλλακτικά, αν κάποιο από αυτά ανήκει
στη λέξη κλειδί, τότε παραλείπουμε το Q από M N O P S
τον πίνακα – συνηθέστερη περίπτωση).
περίπτωση
„ Κρυπτογράφηση: χωρίζουμε το μήνυμα σε T V W X Z
ζεύγη γραμμάτων. Κάθε ένα ζεύγος το
κρυπτογραφούμε με βάση τους ακόλουθους
κανόνες:
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 23
Κανόνες κρυπτογράφησης του
Playfair
„ Αν υπάρχει ζευγάρι με δύο ίδια γράμματα, τότε ανάμεσά τους
προστίθεται ένα X. Στην αποκρυπτογράφηση, τα πλεονάζοντα αυτά
X εύκολα αναγνωρίζονται και απομακρύνονται.
„ Αν τα δύο γράμματα του ζεύγους εμφανίζονται στην ίδια γραμμή στον
πίνακα, τότε το καθένα αντικαθίσταται από το δεξιότερό του (αν
κάποιο από αυτά είναι το τελευταίο στη γραμμή, τότε αντικαθίσταται
από το πρώτο της γραμμής).
„ Αν τα δύο γράμματα του ζεύγους εμφανίζονται στην ίδια στήλη στον
πίνακα, τότε το καθένα αντικαθίσταται από αυτό που βρίσκεται
αμέσως κάτω του (αν κάποιο από αυτά είναι το τελευταίο στη στήλη,
τότε αντικαθίσταται από το πρώτο της στήλης).
„ Αν δεν βρίσκονται ούτε στην ίδια γραμμή ούτε στην ίδια στήλη, τότε
φανταζόμαστε το νοητό ορθογώνιο που ορίζουν τα δύο γράμματα και
τα αντικαθιστούμε από τα άλλα δύο γράμματα που αντιστοιχούν στις
γωνίες του ορθογωνίου (έχει σημασία η σειρά – κάθε γράμμα (γωνία
του ορθογωνίου) θα αντικατασταθεί από εκείνο το γράμμα (γωνία)
που βρίσκεται στην ίδια γραμμή.

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 24

Εξήγηση των κανόνων του


Playfair

Q U E R Y

„ “br” -> “DU” A B C D F


“vk” -> “XH” G H I/J K L
“mo” -> “NP”
M N O P S

T V W X Z

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 25


Παράδειγμα Playfair (1)

„ Έχοντας ως κλειδί P L A Y F
τη φράση «Playfair
example”, I R E X M
προκύπτει ο
πίνακας (όπου B C D G H
απουσιάζει το Q)
J K N O S

T U V W Z

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 26

Παράδειγμα Playfair (2)


Έστω η φράση: P L A Y F
Hide the gold in the tree stump

„ Τη «σπάμε» σε ζευγάρια γραμμάτων:


I R E X M
HI DE TH EG OL DI NT HE TR EX ES TU MP
B C D G H
Εισήχθη για να μην
υπάρξει το ζεύγος EE J K N O S

T U V W Z

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 27


Παράδειγμα Playfair (3)
„ Το ζευγάρι HI σχηματίζει ορθογώνιο, κρυπτογραφείται
σε BM
„ Το ζευγάρι DE βρίσκεται στην ίδια στήλη,

„
κρυπτογραφείται σε ND
Το ζευγάρι TH σχηματίζει ορθογώνιο,
P L A Y F
κρυπτογραφείται σε ZB
„ Το ζευγάρι EG σχηματίζει ορθογώνιο,
κρυπτογραφείται σε XD
„ Το ζευγάρι OL σχηματίζει ορθογώνιο,
κρυπτογραφείται σε KY I R E X M
„ Το ζευγάρι DI σχηματίζει ορθογώνιο, κρυπτογραφείται
σε BE
„ Το ζευγάρι NT σχηματίζει ορθογώνιο,
κρυπτογραφείται σε JV
„ Το ζευγάρι HE σχηματίζει ορθογώνιο, B C D G H
κρυπτογραφείται σε DM
„ Το ζευγάρι TR σχηματίζει ορθογώνιο,
κρυπτογραφείται σε UI
„ Το ζευγάρι EX βρίσκεται στην ίδια γραμμή,
κρυπτογραφείται σε XM J K N O S
„ Το ζευγάρι ES σχηματίζει ορθογώνιο,
κρυπτογραφείται σε MN
„ Το ζευγάρι TU βρίσκεται στην ίδια γραμμή,
κρυπτογραφείται σε UV
„ Το ζευγάρι MP σχηματίζει ορθογώνιο, T U V W Z
κρυπτογραφείται σε IF
Συνεπώς, το κρυπτόγραμμα είναι:
BMNDZBXDKYBEJVDMUIXMMNUVIF
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 28

Ασφάλεια του Playfair αλγορίθμου


„ Περισσότερη ασφάλεια από τους
μονοαλφαβητικούς αλγόριθμους αντικατάστασης.
Συνεπώς, ένας έλεγχος συχνότητας εμφάνισης
ζευγών γίνεται πιο σύνθετος.
„ Χρησιμοποιήθηκε στον πρώτο παγκόσμιο πόλεμο
(από τον αμερικάνικο και τον αγγλικό στρατό).
„ Σήμερα, με αρκετό δοθέν κρυπτόγραμμα, μπορεί να
σπάσει με ελέγχους συχνότητας εμφάνισης
διγραμμάτων

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 29


Σειριακός Playfair
(Seriated Playfair)

„ Έστω η φράση «COME QUICKLY WE


NEED HELP IMMEDIATELY TOM”. Τη
γράφουμε σε μπλοκ γραμμάτων, όπου το
κάθε μπλοκ αποτελείται από 2 γραμμές. Αν
το μήκος του μπλοκ (που καλείται περίοδος
του μπλοκ) είναι για παράδειγμα 6, τότε το
παραπάνω μήνυμα γράφεται ως εξής:
„ COMEQU E NEEDH MEDI AT
I C K L Y W (X)E L P I M E L Y T O M
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 30

Σειριακός Playfair
(Seriated Playfair) (II)
„ Κάθε ζευγάρι γραμμάτων που L O G A R
εμφανίζεται σε κάθε στήλη
κρυπτογραφείται με τον
κλασικό αλγόριθμο Playfair. I/J T H M B
Έτσι, αν έχουμε ως κλειδί τη
φράση LOGARITHM, ο
πίνακας που προκύπτει C D E F K
φαίνεται δίπλα:
(όπου χρησιμοποιούμε την N P Q S U
εκδοχή όπου τα I,J υπάρχουν
στο ίδιο τετράγωνο)
„ Άρα, το κρυπτόγραμμα V W X Y Z
προκύπτει ως εξής:

NLBCSP QQCDCM HCFTRH


CDFGXZ GCGQTB FGWHGB
Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 31
Σειριακός Playfair
(Seriated Playfair) (III)
„ Το κρυπτόγραμμα μεταδίδεται κατά τον προφανή τρόπο (τα
γράμματα διευθετούνται όπως ακριβώς τα αντίστοιχά τους στο
αρχικό μήνυμα) – συνεπώς:
NLBCSP CDFG XZ QQCDCM GCGQTB HCFTRH FGWHGB
„ Η αποκρυπτογράφηση γίνεται κατά τον προφανή τρόπο - ο
παραλήπτης σχηματίζει τα ίδια γκρουπ μήκους 6 και τα
αποκρυπτογραφεί κατά στήλη
„ O Seriated Playfair είναι πιο ασφαλής από τον απλό Playfair (και
αυτό γιατί είναι δύο πια τα άγνωστα στοιχεία για τον κρυπταναλυτή: η
λέξη-κλειδί αφενός, αλλά αφετέρου και η περίοδος του μπλοκ (π.χ. 6
για το προηγούμενο παράδειγμα))
„ Κρυπτανάλυση στον Σειριακό Playfair: κάποιος μπορεί να δοκιμάσει
διάφορα μήκη μπλοκ και να αποκλείσει εκείνα που έχουν ως
αποτέλεσμα σε μία στήλη να προκύπτουν δύο ίδια γράμματα.
{ Στο προηγούμενο παράδειγμα, όλες οι περίοδοι από 4 μέχρι 10 (πλην
φυσικά της τιμής 6) έχουν ως αποτέλεσμα την εμφάνιση κάποιας στήλης
με δύο ίδια γράμματα. Άρα ο κρυπταναλυτής βρίσκει αμέσως την
περίοδο (6)).

Κώστας Λιμνιώτης Εργαστηριακό μάθημα Κρυπτογραφίας (2-3-4) 32

Εργαστηριακό μάθημα 5
Stream ciphers –
Κρυπτανάλυση με τον αλγόριθμο
Berlekamp-Massey
Γενικά χαρακτηριστικά των
stream ciphers
Keystream
Generator

Ki

Pi Ci
„ Δουλεύουν πάνω σε ένα ρεύμα από bits (ή bytes)
„ Απαιτούν μία γεννήτρια ψευδοτυχαίας ακολουθίας bits (keystream generator) –
αυτή η ακολουθία που παράγεται λέγεται κλειδοροή (keystream)
„ Τα bits του κλειδιού γίνονται XOR με τα bits του μηνύματος για να προκύψει έτσι
το κρυπτόγραμμα, δηλαδή c i = pi ⊕ ki
„ Η αποκρυπτογράφηση γίνεται με τον ίδιο τρόπο (ο παραλήπτης έχει την ίδια
γεννήτρια κλειδοροής, και κάνει XOR το κάθε bit κρυπτογράμματος με το
αντίστοιχο bit της κλειδοροής) p i = ci ⊕ ki
„ Η περίοδος της κλειδοροής πρέπει να είναι όσο γίνεται πιο μεγάλη

Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 2

Παράδειγμα λειτουργία stream


ciphers

0 1 1 1 0 0 1 0 1 1 0 Κλειδοροή

1 1 0 0 0 1 1 1 0 1 0 plaintext

1 0 1 1 0 1 0 1 1 0 0 CIPHERTEXT

Σημείωση: Λειτουργία του τελεστή XOR ⊕ :


•a ⊕ b = 0 αν τα a,b είναι ίδια,
• a ⊕ b = 1 αν τα a,b είναι διαφορετικά.
Αντίστοιχα, για πολλές μεταβλητές (π.χ. a ⊕ b ⊕ c ⊕ …..), αν άρτιος αριθμός από αυτές
είναι 1 τότε το αποτέλεσμα είναι 1, αλλιώς το αποτέλεσμα είναι 0.
Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 3
Τι είναι τα συστήματα παραγωγής
κλειδοροής στην πράξη?

„ Ως γεννήτρια ψευδοτυχαίων bits χρησιμοποιήθηκε


αρχικά ένας γραμμικός καταχωρητής ολίσθησης με
ανάδραση (LFSR)
„ Έχουν καλή μαθηματική περιγραφή και οι ιδιότητές τους
αναλύονται εύκολα
Xor
Message stream

Shift register
⊕ Cipher stream

⊕ Key stream

Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 4

Λειτουργία ενός LFSR


„ Αποτελείται από N βαθμίδες (θέσεις μνήμης): το
περιεχόμενο κάθε μιας είναι είτε 0 είτε 1. Κάποιες από
τις βαθμίδες αυτές γίνονται xor και το αποτέλεσμα
πηγαίνει πίσω στην πρώτη βαθμίδα. Αν ο LFSR
βρίσκεται σε μία κατάσταση (δηλαδή οι βαθμίδες του
έχουν μία συγκεκριμένη τιμή), τότε η επόμενη
κατάστασή του προσδιορίζεται εύκολα από τον
ακόλουθο κανόνα:
{ Όλες οι βαθμίδες (η τιμή τους δηλαδή) ολισθαίνουν κατά μία
θέση δεξιά
{ Η νέα τιμή για την πρώτη βαθμίδα είναι το αποτέλεσμα της
παραπάνω XOR πράξης

Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 5


Σχηματική αναπαράσταση της
λειτουργίας ενός LFSR
Παράδειγμα: LFSR τριών βαθμίδων

Έξοδος


Αν η αρχική κατάσταση είναι 001, τότε η έξοδος είναι 1 (η δεξιότερη βαθμίδα).
Την επόμενη χρονική στιγμή, η κατάσταση θα είναι 100 και η έξοδος 0. Το 100
προκύπτει ως εξής: το «1» είναι το XOR που είχαν αρχικά η δεύτερη και η τρίτη
βαθμίδα (που ήταν 0 και 1 αντίστοιχα), ενώ το «00» είναι απλά ολισθημένες οι τιμές
που είχαν αρχικά η πρώτη με τη δεύτερη βαθμίδα.

Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 6

Σχηματική αναπαράσταση της


λειτουργίας ενός LFSR (II)
„ Στον προηγούμενο LFSR, αν θεωρήσουμε ότι η αρχική κατάσταση είναι η 001, οι
διαδοχικές καταστάσεις από τις οποίες περνάει (και η αντίστοιχη έξοδος που παράγεται)
είναι:
Κατάσταση Έξοδος
001 1
100 0
010 0
101 1
110 0
111 1
011 1
001 1

Η 001 έχει ξαναεμφανιστεί, οπότε οι καταστάσεις επαναλαμβάνονται. Άρα,


ο συγκεκριμένος LFSR παράγει την ακολουθία 1001011, η οποία
επαναλαμβάνεται περιοδικά

Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 7


Ιδιότητες LFSRs
„ Ένα LFSR μήκους L μπορεί να περάσει από 2L -1
διαφορετικές καταστάσεις, άρα μπορεί να γεννήσει
ακολουθίες με μέγιστη περίοδο 2L -1.
„ Γενικά, η ακολουθία εξόδου ενός LFSR εξαρτάται
τόσο από την ανάδρασή του όσο και από την
αρχική του κατάσταση.
„ Στην πράξη προτιμούμε LFSRs που περνάνε από
όλες τις καταστάσεις, έτσι ώστε η παραγόμενη
κλειδοροή να έχει τη μέγιστη δυνατή περίοδο.
„ Σημαντική ιδιότητα: ακολουθίες περιόδου 2L -1 που
παράγονται από LFSRs μήκους L (για οποιαδήποτε
τιμή του L) παρουσιάζουν πολύ καλά
χαρακτηριστικά ψευδοτυχαιότητας (εκτός από τη
μεγάλη περίοδο) – άρα, αυτοί οι LFSRs δείχνουν να
είναι ιδανική επιλογή
Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 8

Berlekamp – Massey αλγόριθμος


(κρυπτανάλυση)
„ Ο ελάχιστος LFSR που μπορεί να παράγει μία δοθείσα
ακολουθία υπολογίζεται γρήγορα με τον αλγόριθμο
Berlekamp-Massey.
„ Αν το μήκος του μικρότερου LFSR που παράγει μία
ακολουθία είναι L, τότε ο Berlekamp-Massey χρειάζεται
μόνο 2L διαδοχικά bits της ακολουθίας για να υπολογίσει
αυτόν τον ελάχιστο LFSR!!
„ Συμπέρασμα: Οι ακολουθίες που παράγονται από LFSRs
μπορούν εύκολα να προβλεφτούν!!
{ Παράδειγμα: Έστω L=128. Τότε, παράγουμε μία ακολουθία
περιόδου 2128-1 (που είναι πολύ μεγάλη). Ωστόσο, αν ξέρουμε
μόνο 256 διαδοχικά bits της ακολουθίας τότε βρίσκουμε
επακριβώς τον LFSR αυτόν – άρα, ολόκληρη την ακολουθία!
{ Μπορούμε να γνωρίζουμε ποτέ ένα τμήμα της κλειδοροής, έτσι
ώστε κάνοντας χρήση του Berlekamp-Massey να τη βρίσκουμε
ολόκληρη?
„ Ναι!! Αν ξέρουμε ένα μικρό τμήμα του μηνύματος, τότε ουσιαστικά
ξέρουμε το αντίστοιχο τμήμα της κλειδοροής!!
Κώστας Λιμνιώτης Κρυπτανάλυση στους stream ciphers 9
Berlekamp – Massey αλγόριθμος
(Περιγραφή)

DELETING
DELETING
Κώστας Λιμνιώτης DELETING
Κρυπτανάλυση στους stream ciphers 10

Berlekamp – Massey αλγόριθμος


(Παράδειγμα)

DELETING

Πηγή:
Πηγή: http://www1.cs.columbia.edu/~tal/4995/ DELETING
Κώστας Λιμνιώτης DELETING
Κρυπτανάλυση στους stream ciphers 11
Εργαστηριακό μάθημα 6
(Αλγόριθμοι Δημοσίου Κλειδιού -
RSA)

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


Αποστολέας P C P
Encryption Decryption Παραλήπτης

E D

„ Προτάθηκαν το 1976 (από τους Diffie-Hellman)


„ Κάθε συμμετέχων στο σύστημα κατέχει ένα ζευγάρι
κλειδιών e και d, που το ένα αντιστρέφει το άλλο:
d(e(m))=m
„ Ένα από τα δύο κλειδιά είναι γνωστό σε όλους (το e)
και λέγεται Δημόσιο Κλειδί: απαραίτητη
προϋπόθεση είναι ότι η γνώση του e δεν οδηγεί σε
προσδιορισμό του μυστικού κλειδιού d.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 2
Τρόπος λειτουργίας
συστημάτων δημοσίου κλειδιού

„ Όταν ένα πρόσωπο A θέλει να στείλει ένα μήνυμα m


σε ένα πρόσωπο B, το δημόσιο κλειδί
κρυπτογράφησης του παραλήπτη B χρησιμοποιείται
για τη δημιουργία του κρυπτογράμματος Ee(m).
Αφού το Ee είναι πλήρως διαθέσιμο σε όλους, ο
οποιοσδήποτε μπορεί να κρυπτογραφήσει ένα
μήνυμα με προορισμό τον B. Ωστόσο, μόνο ο B, ο
οποίος γνωρίζει το ιδιωτικό του κλεδί DB μπορεί να
ανακατασκευάσει το αρχικό μήνυμα, εφαρμόζοντας
τον αντίστροφο μετασχηματισμό DB (EB(m)).
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 3

Σχηματική αναπαράσταση

Κρυπτογραφημένο
Κρυπτογράφηση με το Αποκρυπτογράφηση με το
μήνυμα
δημόσιο κλειδί του B ιδιωτικό κλειδί του B

Χρήστης A Χρήστης B
Αποκρυπτογράφηση με το Κρυπτογράφηση με το
ιδιωτικό κλειδί του A Κρυπτογραφημένο
δημόσιο κλειδί του A
μήνυμα

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 4


Αλγόριθμος Δημοσίου
Κλειδιού RSA
„ Πήρε το όνομά του από τους εμπνευστές του Rivest,
Shamir, Adleman.
„ Kάθε χρήστης διαλέγει τυχαία δύο πολύ μεγάλους
πρώτους αριθμούς p, q, και υπολογίζει το γινόμενο
N=pq.
{ Το N θα πρέπει να αποτελείται τουλάχιστον από 200
ψηφία και μπορεί να δημοσιοποιηθεί (να είναι γνωστό σε
όλους)
{ Τα p και q κρατούνται μυστικά.
{ Κάποιος «εχθρός» γνωρίζει το N (αφού είναι δημοσίως
γνωστό σε όλους). Ωστόσο, είναι πολύ δύσκολο
πρόβλημα να βρει την ανάλυσή του σε γινόμενο πρώτων
αριθμών – δηλαδή να βρει τα p,q. Σε αυτό έγκειται και η
ασφάλεια του RSA (Factorization probλεμ).

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 5

Ο αλγόριθμος RSA (συνέχεια)


„ Με χρήση των p και q, ο χρήστης υπολογίζει τη συνάρτηση Euler
φ(N), που ισούται με το πλήθος των θετικών ακεραίων που είναι
πρώτοι ως προς το N.
{ Επειδή N=pq, ισχύει φ(N)=φ(p)φ(q) = (p-1) (q-1)
„ Στη συνέχεια ο χρήστης διαλέγει έναν τυχαίο αριθμό e μικρότερο
του φ(Ν) με την ιδιότητα gcd(e,φ(N))=1. Ο αριθμός e
δημοσιοποιείται.
„ Με τον επεκταμένο (extended) αλγόριθμο του Ευκλείδη (βλέπε
επόμενη διαφάνεια), ο χρήστης υπολογίζει τον μοναδικό
ακέραιο d, 1 < d < φ(N), με την ιδιότητα
ed=1 (mod φ(Ν)).
(στην ουσία, ο d είναι ο αντίστροφος του e mod φ(Ν))
„ Το δημόσιο κλειδί του χρήστη είναι το ζεύγος (N,e). Το
ιδιωτικό του κλειδί είναι ο αριθμός d.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 6


Επεκταμένος αλγόριθμος του
Ευκλείδη
„ Έστω ότι θέλουμε να βρούμε, για αριθμούς a, b, τον
μέγιστο κοινό διαιρέτη τους g, καθώς και τους ακέραιους
αριθμούς εκείνους x,y τέτοιους ώστε ax+by=g.
(αποδεικνύεται ότι υπάρχουν τέτοιοι ακέραιοι και είναι
μοναδικοί)
„ (ειδικά στον RSA: a=φ(Ν), b=e και επίσης g=1. Στο d θα αποδοθεί η
τιμή του y).
{ Κάνουμε τη διαίρεση του a με το b και παίρνουμε a=kb + r.
{ Aν το r είναι διάφορο του μηδενός, τότε θέτουμε a=b και b=r και
κάνουμε την ίδια διαίρεση (του a με το b).
{ Σταματάμε όταν το r γίνει 0. Τότε, το τελευταίο μη μηδενικό
υπόλοιπο που πήραμε είναι ο μέγιστος κοινός διαιρέτης g.
{ Από τις σχέσεις που έχουμε λάβει, αν τις «διαβάσουμε» ανάποδα
θα βρούμε και τα x,y που θέλουμε (βλέπε επόμενη διαφάνεια).
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 7

Παράδειγμα επεκταμένου
αλγόριθμου του Ευκλείδη
„ Έστω ότι a=1925, b=693
„ Έχουμε:
{ 1925 = 2 · 693 + 539 (1)
{ 693 = 1 · 539 + 154 (2)
{ 539 = 3 · 154 + 77 (3)
{ 154 = 2 · 77 (4)
„ Άρα, ο μέγιστος κοινός διαιρέτης είναι το 77 (το τελευταίο μη
μηδενικό υπόλοιπο που πήραμε). «Διαβάζοντας» τις σχέσεις
ανάποδα, έχουμε:
„ Ξεκινώντας από την (3) (και χρησιμοποιώντας τις (2), (1) διαδοχικά):
77 = 539 − 3 ⋅ 154 = 539 − 3 ⋅ ( 693 − 1 ⋅ 539 ) =
= 4 ⋅ 539 - 3 ⋅ 693 = 4 ⋅ (1925 - 2 ⋅ 693) - 3 ⋅ 693 =
= 4 ⋅ 1925 - 11 ⋅ 693
Δηλαδή, x=4 και y=-11.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 8
Αλγόριθμος RSA
(κρυπτογράφηση)

„ Για να κρυπτογραφηθεί ένα μήνυμα m που θέλει να


στείλει κάποιος χρήστης B στον χρήστη A, το m
διασπάται σε μία σειρά τμημάτων m1, m2, …, mp,
όπου κάθε mi αναπαρίσταται από έναν ακέραιο
μεταξύ 0 και N. Η κρυπτογράφηση γίνεται
ξεχωριστά για κάθε block mi με χρήση των
δημοσίων κλειδιών e και N του A. Tο
κρυπτόγραμμα ci παράγεται ως εξής:
ci=mie mod N
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 9

Αλγόριθμος RSA
(αποκρυπτογράφηση)

„ Ο A αποκρυπτογραφεί το κρυπτόγραμμα c
υπολογίζοντας το m = cd mod N. Η σχέση
μεταξύ του d και του e εξασφαλίζει τη
σωστή ανάκτηση του m.

„ Μόνο ο Α μπορεί να αποκρυπτογραφήσει το


μήνυμα, αφού είναι ο μόνος που γνωρίζει το
d.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 10


Ερμηνεία της
αποκρυπτογράφησης RSA
„ Θεώρημα Euler: m ϕ ( N ) ≡ 1 mod( N, ) όταν gcd(m,Ν)=1

Αν υψώσουμε και τα δύο μέλη της ισοδυναμίας εις την k και στη συνέχεια
πολλαπλασιάσουμε και τα δύο μέλη με m, θα προκύψει η ακόλουθη σχέση:
mkφ(N)+1 mod N =m mod N (1)

„ Αφού ed ≡ 1 (mod φ(Ν)), υπάρχει ακέραιος k τέτοιος ώστε:


ed=kφ(Ν) +1.

„ Αποκρυπτογράφηση του δέκτη:


cid mod N
= mied mod N =
= mikφ(N)+1 mod N = (από την (1))
= mi mod N = mi

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 11

Σύνοψη RSA και παράδειγμα


1. Ο χρήστης διαλέγει δύο τυχαίους πρώτους αριθμούς p,q – έστω p=47, q=59. Τότε N=pq=2773.
2. Υπολογίζει την ποσότητα φ(Ν)=46·58=2668 και διαλέγει έναν τυχαίο αριθμό e μικρότερο του
2668, πρώτο ως προς αυτόν – έστω e=17.
3. Με τον επεκταμένο αλγόριθμο του Ευκλείδη, υπολογίζει τα x,y τέτοια ώστε 2668x + 17y=1 (μια
που gcd(2668,17)=1). Τότε 17y≡1 mod (2668). Εφαρμόζοντας τομ αλγόριθμο του Ευκλείδη
βρίσκουμε y=157. Άρα d=157.
4. O χρήστης δημοσιοποιεί σε όλους τα N και e, αλλά κρατάει το d μυστικό για τον εαυτό του
(προσέξτε ότι κάποιος που ξέρει τα N και e δεν μπορεί να βρει το d, γιατί δεν ξέρει τα p,q - τα
οποία επίσης τα κρατάει μυστικά ο χρήστης).
5. Αν κάποιος θέλει να στείλει το μήνυμα m=31, τότε κάνει τα εξής:
Κρυπτογράφηση :
c ≡ me (mod Ν)
587 ≡ 3117 (mod 2773)
6. Ο χρήστης αποκρυπτογραφεί το 587 που λαμβάνει, κάνοντας χρήση του d (που μόνο αυτός
γνωρίζει):
Αποκρυπτογράφηση:
m ≡ cd (mod N)
31 ≡ 587157 (mod 2773)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 12


Αναλυτικό παράδειγμα RSA
•Ο Bob θέλει να στείλει ένα μήνυμα στην Alice, κρυπτογραφημένο με RSA. Τι
ενέργειες πρέπει να κάνει ο καθένας?
•Η Alice διαλέγει τυχαία δύο πρώτους αριθμούς - έστω p=37 και q=73 (στην πράξη,
τα p,q πρέπει να έχουν περισσότερα από 200 ψηφία). Στη συνέχεια υπολογίζει το
γινόμενο N=pq=2701.

•H Alice διαλέγει τυχαία έναν αριθμό e μικρότερο του (p-1)(q-1) = 36·72 = 2592, που
να μην έχει κοινούς διαιρέτες ούτε με το 36 ούτε με το 72. Έστω για παράδειγμα
e=77.

•Η Alice βρίσκει τον αριθμό d που ικανοποιεί τη σχέση


77d ≡ 1(mod 2592). (στην ουσία τον αντίστροφο του e, mod 2592). Με τον
επεκταμένο αλγόριθμο του Ευκλείδη, βρίσκουμε ότι είναι d=101.

•Η Alice ανακοινώνει το δημόσιό της κλειδί (e,N)= (77, 2701).

•Το ιδιωτικό κλειδί της Alice είναι το d=101. Είναι η μόνη που το γνωρίζει
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 13

Πώς βρίσκει η Alice την τιμή


του d?
„ Εκτελεί τον επεκταμένο αλγόριθμο του
Ευκλείδη, για τους αριθμούς φ(N)=2592 και
e=77.
„ 2592 = 33 · 77 + 51
„ 77 = 1 · 51 + 26
„ 51 = 1 · 26 + 25
„ 26 = 1 · 25 + 1
„ 25 = 25 · 1 + 0 -> Σταματάμε (άρα,
gcd(2592,77)=1 – κάτι που αναμέναμε)
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 14
Πώς βρίσκει η Alice την τιμή
του d? (συνέχεια)

„ «Διαβάζουμε» τις προηγούμενες


σχέσεις ανάποδα:
„ 1 = 26 - 1 · 25 =
= 26 - 1 · (51 - 1 · 26) = 26 - 1 · 51 + 1 · 26 = 2 · 26 - 1 · 51 =
= 2 · (77 - 1 · 51) - 1 · 51 = 2 · 77 - 2 · 51 - 1 · 51 = 2 · 77 - 3 · 51
= 2 · 77 - 3 · (2592 - 33 · 77) =
= 2 · 77 - 3 · 2592 + 99 · 77 =
= -3 · 2592 + 101 · 77
„ Άρα d=101

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 15

Αναλυτικό παράδειγμα RSA


(συνέχεια)
„ Ο Bob θέλει να στείλει το μήνυμα “I miss you” στην Alice.
„ Ο Bob μετατρέπει κάθε γράμμα σε αριθμό, με βάση τη θέση του στο
αλφάβητο:
I M I S S Y O U
08 12 08 18 18 24 14 20
„ Ο Bob σπάει το μήνυμά του σε blocks των δύο γραμμάτων (το δύο
αυτό είναι τυχαίο – αναλόγως την υλοποίηση του RSA αλλάζει).
„ 0812 0818 1824 1420 (τα ονομάζουμε P1, P2 ,P3, P4)
„ Ο Bob υπολογίζει το Ci= Pi77 (mod 2701) για κάθε block
C1= 81277 = 1744(mod 2701)
C2= 81877 = 321(mod 2701)
C3= 182477 = 656(mod 2701)
C4= 142077 = 2064 (mod 2701)
„ Ο Bob στέλνει στην Alice τους αριθμούς 1744 0321 0656 2064
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 16
Αναλυτικό παράδειγμα RSA
(συνέχεια)
Για να αποκρυπτογραφήσει το μήνυμα, η Alice χρησιμοποιεί
το ιδιωτικό της κλειδί 101, κάνοντας τους ακόλουθους
υπολογισμούς:
1744101 = 812 (mod 2701)
0321101=818 (mod 2701)
0656101=1824 (mod 2701)
2064101=1420 (mod 2701)
Συνεπώς, το αποκρυπτογραφημένο μήνυμα είναι
0812 0818 1824 1420
„Στη συνέχεια, κάνει την αντιστοίχιση των αριθμών σε
γράμματα:
IM IS SY OU
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 17

Υπολογισμοί στον RSA


- Square and Multiply
„ Στον RSA ανακύπτει η ανάγκη να κάνουμε πράξεις (ύψωση σε
δύναμη) πολύ μεγάλων αριθμών. Αυτό αντιμετωπίζεται με την
τεχνική Square-And-Multiply.
„ Αναλύουμε τον αριθμό που θέλουμε να υψώσουμε (μήνυμα για την
κρυπτογράφηση ή κρυπτόγραμμα για την αποκρυπτογράφηση)
στη δυαδική του αναπαράσταση.
„ Στη συνέχεια, με βάση το τι είναι κάθε ένα ψηφίο της δυαδικής
αναπαράστασης, ανάλογα υψώνουμε στο τετράγωνο το τρέχον
αποτέλεσμα και είτε το πολλαπλασιάζουμε με τον αρχικό αριθμός
μας (αν το ψηφίο είναι 1) είτε δεν κάνουμε τίποτα άλλο (αν το
ψηφίο είναι 0).

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 18


Παράδειγμα

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 19

RSA – Πιστοποίηση ταυτότητας


„ Έστω ότι η Alice θέλει να στείλει το μήνυμα m στον
Bob και ότι θέλει να «υπογράψει» το μήνυμα, έτσι
ώστε να είναι σίγουρος ο Bob ότι μιλάει με την Alice.
„ H Alice υπολογίζει την υπογραφή της s = md mod N,
όπου d είναι το ιδιωτικό της κλειδί (και N το δημόσιό
της).
„ Στέλνει στον Bob τα m και s (το m μπορεί να είναι
κρυπτογραφημένο με οποιονδήποτε αλγόριθμο –
θεωρητικά, μπορεί ακόμα και με τον RSA!).
„ Για να ελέγξει την υπογραφή ο Bob, υπολογίζει την
ποσότητα m’ = se mod N και ελέγχει αν m’=m.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 20
RSA – Πιστοποίηση ταυτότητας
(συνέχεια)
„ Ποιο πρόβλημα έχει η προηγούμενη διαδικασία?
„ Ο υποκλοπέας μπορεί από την υπογραφή s να
ανακτήσει το αρχικό μήνυμα m!!
„ Άρα η υπογραφή πρέπει να είναι κρυπτογραφημένη:
H Alice λοιπόν κάνει τα εξής:
{ s = md mod NΑ, όπου d είναι το ιδιωτικό της κλειδί (και NΑ το
δημόσιό της).
{ c= se mod ΝΒ , όπου e είναι το δημόσιο κλειδί του Bob (και NB
το δημόσιo κλειδί του Bob).
{ Η Alice στέλνει το c. Ο Bob με δύο διαδοχικές
αποκρυπτογραφήσεις (πρώτα μία με το ιδιωτικό του κλειδί για
να ανακτήσει το s και μετά μία με το δημόσιο της Alice) ανακτά
το m.
„ Στην πράξη: η υπογραφή δεν γίνεται πάνω στο μήνυμα
αλλά πάνω σε μία κατακερματισμένη τιμή του
μηνύματος
Κώστας Λιμνιώτης
(βλέπε θεωρία)
Κρυπτογραφία - Εργαστηριακό μάθημα 6 21

Ασφάλεια του RSA


„ Όσο πιο μεγάλο είναι το N (κλειδί), τόσο πιο μεγάλη η
ασφάλεια (ένας εχθρός δυσκολεύεται ακόμα
περισσότερο το να βρει τα p,q). Από την άλλη, ο RSA
γίνεται πιο αργός.
„ Τα p, q πρέπει να έχουν μεγάλη διαφορά μεταξύ τους:
αν η διαφορά p-q είναι μικρή, τότε p ≈ N , και έτσι
ο p (άρα και ο q) μπορούν να υπολογιστούν με
δοκιμές.
„ Ο 512-bit RSA-155 «έσπασε» μέσα σε 7 μήνες το
1999 (σήμερα «σπάει» σε λίγες εβδομάδες).
„ Το RSA lab προτείνει σήμερα σαν μέγεθος κλειδιού
τουλάχιστον 1024 bits (το οποίο ολοένα και τείνει να
γίνει παρωχημένο, αφήνοντας τη θέση του σε
μεγαλύτερο πλήθος bits).
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 22
Επιθέσεις χρονισμού
„ Επιθέσεις χρονισμού (timing attacks): Μπορεί ο
επιτιθέμενος να πάρει κάποια χρήσιμη πληροφορία
για το μυστικό κλειδί d κατά τη διάρκεια της
αποκρυπτογράφησης, παρακολουθώντας το χρόνο
αποκρυπτογράφησης (αν ανακαλέσουμε την
τεχνική square-and-multiply, όταν το αντίστοιχο
δυαδικό ψηφίο είναι 1 τότε απαιτείται περισσότερος
χρόνος για τον τρέχοντα υπολογισμό από ό,τι όταν
είναι 0).
{ Μία αντιμετώπιση: καθυστερούμε τις πράξεις που
εκτελούνται γρήγορα, έτσι ώστε τελικά είτε το ψηφίο είναι 0
είτε είναι 1 ο χρόνος υπολογισμού να είναι ίδιος

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 23

Yλοποίηση σε Matlab

„ Διαθέσιμη στο Internet, από το Oregon


University
„ http://islab.oregonstate.edu/koc/ece575/02Project/Kie+Raj/

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 6 24


Εργαστηριακό μάθημα 7
(Αλγόριθμοι Δημοσίου Κλειδιού)
α) El Gamal
β) Diffie-Hellman αλγόριθμος για την ανταλλαγή
συμμετρικού κλειδιού κρυπτογράφησης

El Gamal Αλγόριθμος
„ Παράμετροι συστήματος: Ακέραιοι g,p
„ Ο p είναι ένας πολύ μεγάλος πρώτος και ο g ένα
πρωταρχικό στοιχείο (στοιχείο – γεννήτορας) του Zp*.
(δηλαδή: gκ ≠ 1 (mod p) για όλα τα k μικρότερα του p-1)
(με Zp* συμβολίζουμε το σύνολο όλων των ακεραίων
1,2,…,p-1. Ονομάζεται πεπερασμένη ομάδα – όλες οι
πράξεις σε μία ομάδα γίνονται modulo p).
Τα p,g επιλέγονται τυχαία από έναν χρήστη Α.
„ O A επιλέγει ιδιωτικό κλειδί a: 1 < a < p – 1
„ Υπολογισμός του y = ga mod p.
„ To Δημόσιο Κλειδί του A είναι η τριπλέτα (p, g, y). To
ιδιωτικό του κλειδί είναι το a.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2
Ένα σημαντικό σχόλιο για
τους γεννήτορες

„ Αν ισχύει gk = 1 mod p για κάποιον


ακέραιο αριθμό 1<k<p-1, τότε ο
αριθμός k υποχρεωτικά διαιρεί το p-1.
„ Άρα, αν θέλουμε να ελέγξουμε αν ένας
αριθμός g είναι γεννήτορας mod p, δεν
χρειάζεται να τον υψώσουμε σε όλες
τις δυνάμεις 1,2,..,p-1!! Αρκεί να τον
υψώσουμε στους διαιρέτες του p-1.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 3

Κρυπτογράφηση El Gamal

Αν ο B θέλει να στείλει ένα μήνυμα m στον A,


τότε:
„ Ο B παράγει τυχαίο ακέραιο k, 1< k < p-1.
„ O B στέλνει το γ = gk (mod p) και το
δ = myk (mod p) στον A.
„ Αποκρυπτογράφηση: Ο A χρησιμοποιεί τη
γνώση του μυστικού κλειδιού a για τον
υπολογισμό του m.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 4
Αποκρυπτογράφηση El Gamal
„ O δέκτης A υπολογίζει το γ-a
(μια που γνωρίζει το ιδιωτικό του κλειδί a)
„ Ο A ανακτά το μήνυμα m με τον υπολογισμό
(γ-a)δ mod p.
„ Επαλήθευση: (γ-a)δ ≡ γ-aδ ≡ g-ak myk ≡
g-ak mgak ≡ m mod p.
„ Με άλλα λόγια: το κρυπτόγραμμα είναι το
ζεύγος (γ,δ) και η ανάκτηση του αρχικού
μηνύματος γίνεται με την πράξη δ/γa
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 5

Χαρακτηριστικά του
αλγορίθμου El Gamal
„ Το κρυπτόγραμμα είναι δύο φορές πιο
μεγάλο από το μήνυμα (βασικό του
μειονέκτημα έναντι του RSA)
„ Η ασφάλειά του στηρίζεται στη δυσκολία
επίλυσης των προβλημάτων DLP
(Discrete Logarithm Problem) - Για δοθέν
h=ga mod p, υπολογισμός του a είναι
αδύνατος ακόμα κι αν ξέρουμε τα g,p,h
όταν αυτά είναι τεράστιοι αριθμοί
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 6
Παράδειγμα κρυπτογράφησης
El Gamal
Παράμετροι δημοσίου κλειδιού:
p = 11
g = 6 (μπορούμε να επιβεβαιώσουμε με δοκιμές ότι πράγματι
το g είναι γεννήτορας του Z11*. )
(προσέξτε ότι ο αριθμός 4 δεν είναι γεννήτορας του Ζ11*!! Μπορείτε να
δείτε γιατί?)

Μυστικό κλειδί του χρήστη: a = 2


Υπολογισμός του: y ≡ ga mod p => y = 62=36=3 mod 11
Τα p,g,y δημοσιοποιούνται. Το a κρατείται μυστικό.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 7

Παράδειγμα κρυπτογράφησης
El Gamal (συνέχεια)
Έστω ότι στον προηγούμενο χρήστη θέλουμε να στείλουμε το μήνυμα m=9.
1. Επιλογή τυχαίου αριθμού k (έστω k = 2)
2. Υπολογισμός των
1. γ≡ gk mod p ≡ 36 = 3 mod 11
2. δ = yk m mod p ≡ 9 · 9 = 81 mod 11 = 4 mod 11
3. Κρυπτόγραμμα είναι το ζευγάρι (γ,δ)=(3,4)

ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΣΗ
Το μήνυμα m ανακτάται από τη σχέση: δ/γa mod 11 ≡ 4/32 mod 11
Έχουμε 32 ≡ 9 mod 11
Άρα το μήνυμα m είναι το 4 · 9-1 mod 11
O αντίστροφος του 9 mod 11 είναι προφανώς ο 5 (μπορεί να υπολογιστεί με
δοκιμές)
Συνεπώς το αποκρυπτογραφημένο μήνυμα είναι 4 · 5 mod 11 ≡ 20 ≡ 9 mod 11

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 8


Κρυπτογράφηση El Gamal –
Παράδειγμα 2
„ Πρώτος p = 2357 Πρωταρχικό στοιχείο g = 2
„ Ιδιωτικό κλειδί: a = 1751
„ y = 21751(mod 2357) = 1185
„ Μήνυμα m = 2035
„ Έστω τυχαίος ακέραιος k = 1520 που παράγει ο
αποστολέας.
Τότε, κάνει τους εξής υπολογισμούς:
{ γ = gk = 21520 (mod 2357) = 1430
{ δ = myk = 2035 ·11851520 (mod 2357) = 697
{ Οι πράξεις και εδώ μπορούν να γίνουν με την τεχνική Square-
And-Multiply (βλέπε RSA)
„ Συνεπώς, μεταδίδεται το ζεύγος (1430, 697) από τον B
στον A
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 9

Κρυπτογράφηση El Gamal –
Παράδειγμα 2 (συνέχεια)

Για την αποκρυπτογράφηση:


γ-a ≡ 1430605 mod 2357 = 872
(μια που γ-a ≡ γp-1-a, αφού γp-1 ≡ 1 mod p).

Εύρεση m: 872 · 697 mod 2357 = 2035

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 10


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

„ Αλγόριθμος El Gamal
http://islab.oregonstate.edu/koc/ece575/02Project/Sin+Cha/

Εκτελείται ως εξής:
1. Πρώτα εκτελούμε την pub_key_gen, η οποία παράγει τα δημόσια
κλειδιά p, Alpha, Betaa (και υπολογίζει και το ιδιωτικό κλειδί που το
κρατάει μυστικό). Η μεταβλητή Alpha αντιστοιχεί στον γεννήτορα g,
ενώ η Betaa στο y.
2. Μετά, τρέχουμε τη συνάρτηση encrypt, όπου μας ζητά να δώσουμε
ένα κείμενο (με μικρά γράμματα, χωρίς κενά και χωρίς σημεία
στίξης). Η συνάρτηση αυτή υπολογίζει τα δ,γ που τα αντιστοιχεί στις
μεταβλητές y1, y2 αντίστοιχα.
3. Τέλος τρέχουμε τη συνάρτηση decrypt με ορίσματα τα y1,y2
(δηλαδή γράφουμε decrypt(y1,y2)). Λογικά, θα πάρουμε το αρχικό
μήνυμα

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 11

Κρυπτογράφηση με συμμετρικό ή
με Δημόσιο κλειδί?
„ Οι σύγχρονοι αλγόριθμοι συμμετρικού κλειδιού (block
ciphers/stream ciphers) είναι πιο γρήγοροι από τους
αλγορίθμους Δημοσίου κλειδιού και χρησιμοποιούνται
περισσότερο.
{ Μειονέκτημα: πρέπει οι δύο συνομιλούντες να ανταλλάξουν το
κοινό κλειδί κρυπτογράφησης πριν ξεκινήσει η επικοινωνία (π.χ.
στον Vigenere αλγόριθμο για να μπορεί ο παραλήπτης να
αποκρυπτογραφήσει πρέπει να ξέρει τη φράση-κλειδί). Πώς
μπορεί να γίνει αυτό, τη στιγμή που δεν υπάρχει ασφαλές κανάλι
επικοινωνίας?
„ Η ανταλλαγή του συμμετρικού κλειδιού κρυπτογράφησης
γίνεται με κάποιον αλγόριθμο Δημοσίου κλειδιού. (όπου
πραγματικά, σε αλγορίθμους Δημοσίου Κλειδιού, δεν
απαιτείται καμία εκ των προτέρων ανταλλαγή πληροφορίας
των δύο συνδιαλεγομένων).
„ Συνεπώς, οι δύο μέθοδοι κρυπτογράφησης δεν είναι
ανταγωνιστικές μεταξύ τους – χρειάζονται και
χρησιμοποιούνται και οι δύο.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 12
Διανομή του συμμετρικού κλειδιού
κρυπτογράφηση με χρήση
αλγορίθμου Δημοσίου κλειδιού

1. Δημιουργία
συμμετρικού κλειδιού

Αποστολέας A Παραλήπτης B

2. Κρυπτογράφηση 3. Αποστολή του συμμετρικού 4. Αποκρυπτογράφηση


του κλειδιού με το κλειδιού (κρυπτογραφημένου) του συμμετρικού
Δημόσιο Κλειδί του B κλειδιού, με χρήση του
Ιδιωτικού κλειδιού του B
5. Χρήση του συμμετρικού κλειδιού
για κρυπτογράφηση του μηνύματος
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 13

Diffie-Hellman αλγόριθμος
„ Οι εμπνευστές της ιδέας της
κρυπτογράφησης Δημοσίου Κλειδιού (Diffie,
Hellman - 1976) πρότειναν μία τεχνική που
να επιτρέπει την ασφαλή ανταλλαγή ενός
αριθμού (μιας πληροφορίας γενικότερα)
μεταξύ δύο συνδιαλεγομένων, με απώτερο
στόχο ο αριθμός αυτός να χρησιμοποιηθεί
μετέπειτα ως κλειδί σε κάποιον αλγόριθμο
συμμετρικού κλειδιού (αλγόριθμος Diffie-
Hellman).
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 14
Παράδειγμα –
Diffie-Hellman μέθοδος
1. Συμφωνία για το Diffie-Hellman ζευγάρι
p (πρώτος αριθμός) και g (γεννήτορας mod p)

Α Β

2. 2.
Δημιουργία Δημιουργία
τυχαίου τυχαίου
αριθμού x αριθμού y

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 15

Diffie-Hellman μέθοδος (II)

A B
3. 3.
Υπολογισμός Υπολογισμός
x’=gx mod p 4.
Ανταλλαγή x’, y’ y’=gy mod p
χωρίς ασφάλεια

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 16


Diffie-Hellman μέθοδος (III)

B
A
5. 5.
Υπολογισμός κλειδιού= Υπολογισμός κλειδιού=
y’x mod p x’y mod p
=gxy mod p =gxy mod p

6. Κρυπτογράφηση με το παραπάνω
συμμετρικό κλειδί που υπολογίστηκε
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 17

Diffie-Hellman μέθοδος (IV)

Η ασφάλεια του Diffie-Hellman αλγορίθμου για την


ανταλλαγή κλειδιού βασίζεται στη δυσκολία του
προβλήματος DLP (όπως και στον El Gamal). (Γιατί??)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 18


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

Πώς υπολογίζουμε μεγάλους


πρώτους αριθμούς?

„ Μεγάλοι πρώτοι αριθμοί χρειάζονται στην


πλειοψηφία των αλγορίθμων Δημοσίου
κλειδιού
„ Για να εξετάσει κανείς αν ένας αριθμός 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 ∈ Zn, εάν ο a ∈ W(n), τότε ο a
καλείται ‘witness’ (πειστήριο ή μάρτυρας) για το
ότι ο n είναι σύνθετος. Ο έλεγχος για το αν ο a
είναι πειστήριο, μπορεί να γίνει σε πολυωνυμικό
χρόνο.
{ Εάν ο n είναι πρώτος, τότε W(n)=φ (κενό
σύνολο)
n
{ Εάν ο n είναι σύνθετος, τότε #W(n)≥
2

Probabilistic primality tests


„ Fermat’s test
{ Γνωρίζουμε ότι αν ο n είναι πρώτος και 1 ≤ a ≤ n – 1, τότε
an-1 ≡ 1 (mod n)
{ Τότε αν ο n είναι σύνθετος, υπάρχει a τέτοιο ώστε an-1 ≠ 1
(mod n) – τότε ο a είναι ένα πειστήριο για τον n. Εάν an-1 ≡
1 (mod n), τότε ο a ονομάζεται liar (όχι πειστήριο) για τον
n
{ For i = 1 to t
choose random a, 2 ≤ a ≤ n-2
r = an-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 είναι
σύνθετοι ακέραιοι με την ιδιότητα an-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 = 2sr (όπου ο r
είναι περιττός αριθμός). Έστω a οποιοσδήποτε
ακέραιος τέτοιος ώστε gcd(a,n)=1. Τότε είτε
a ≡1 (mod n) είτε a
r 2jr
≡ n − 1 mod n για
κάποιο j, 0 ≤ j ≤ s-1.

Η παραπάνω παρατήρηση μας οδηγεί στον


ακόλουθο ορισμό:

Probabilistic primality tests

„ Έστω n σύνθετος περιττός αριθμός με n-1=2rs,


όπου ο s είναι περιττός. Έστω a ακέραιος στο
διάστημα [1,n-1].
Αν a ≠1 (mod n) και a ≠ n − 1 mod n για όλα τα j
r 2jr
„
στο διάστημα [0,s-1], τότε ο a είναι ισχυρό πειστήριο
(strong witness) για το ότι ο n είναι σύνθετος.
„ Διαφορετικά, εάν ισχύει είτε a r≡1 (mod n)
≡ n − 1 mod n για κάποιο j στο διάστημα
j
2 r
είτε a
[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.
„ Ισχύει 9r = 945≡ 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 = 2sr
For i = 1 to t
choose random a, 2 ≤ a ≤ n-2
y = ar mod n
if y≠1 and y≠n-1
j=1
while j≤s-1 and y≠n-1
y=y2 mod n
if y=1 return composite
j=j++
if y≠n-1 return composite
return prime

Ανάλυση του 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=2s-1
ονομάζεται αριθμός Mersenne (εάν επιπλέον είναι
πρώτος, ονομάζεται Mersenne πρώτος).
„ Για s>2 ένας αριθμός Mersenne είναι πρώτος αν
και μόνο αν ισχύουν:
{ Ο s είναι πρώτος
{ us-2=0 where u0=4, uk+1=(uk2-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=(u2-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
Εργαστηριακό μάθημα 9
(Πρωτόκολλα πιστοποίησης
ταυτότητας μηδενικής γνώσης –
Fiat-Shamir)

Πρωτόκολλα μηδενικής γνώσης

„ Βασική ιδέα: Ένας χρήστης Α (claimant)


αποδεικνύει την ταυτότητά του σε κάποιον άλλο Β
(verifier) αποδεικνύοντάς του ότι κατέχει μία μυστική
γνώση, χωρίς όμως να αποκαλύπτει τη γνώση
αυτή. Αυτό επιτυγχάνεται με το να απαντά σε μία
«ερώτηση-πρόκληση» του verifier, η απάντηση της
οποίας εξαρτάται, εκτός από την ερώτηση, και από
τη μυστική γνώση.
„ Πρωτόκολλα με αυτά τα χαρακτηριστικά
ονομάζονται μηδενικής γνώσης (zero-knowledge
(ZK))

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 2


Γενικά χαρακτηριστικά
πρωτοκόλλων ZK
„ O Α (claimant) από το ιδιωτικό του κλειδί (μυστική
πληροφορία που την κατέχει μόνο αυτός), παράγει τυχαία μία
πληροφορία-βεβαίωση (witness). O Α στέλνει την βεβαίωση
στον B (verifier)
„ Με βάση την βεβαίωση, ο B κάνει μία ερώτηση-πρόκληση
(challenge) στον A. To πρωτόκολλο πρέπει να είναι έτσι
σχεδιασμένο ώστε μόνο κάποιος που κατέχει το μυστικό κλειδί
του A να μπορεί να απαντήσει σωστά σε όλες τις προκλήσεις,
ενώ επίσης να μην μπορεί να εξαχθεί καμία πληροφορία για
το ιδιωτικό κλειδί του A από τις απαντήσεις.
„ Ο Α στέλνει στον B την απάντηση (response) στην πρόκληση.
Ο B πρέπει να είναι σε θέση να επιβεβαιώσει την ορθότητα
της απάντησης.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 3

Σχηματική αναπαράσταση
Common Common
Inputs Τυχαία τιμή Inputs

C Ερώτηση-πρόκληση V

Claimer Verifier
Απάντηση
Repeats t
number
of rounds

„ Και οι δύο έχουν κάποια πληροφορία από κοινού


(common inputs)
„ Αν όλες οι απαντήσεις είναι αποδεκτές (δηλαδή σωστές),
γίνεται η πιστοποίηση ταυτότητας
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 4
Σχήμα πιστοποίησης ταυτότητας
Fiat-Shamir
Έστω N=p×q, όπου p,q είναι πολύ μεγάλοι πρώτοι
αριθμοί (το N τουλάχιστον 512 bits)
Ο claimant Α επιλέγει τυχαία s μικρότερο του N
και υπολογίζει υ τέτοιο ώστε:
„ υ = s2 (mod N)

Δημόσιο κλειδί : N, υ (τα ξέρει και ο Verifier)


ιδιωτικό κλειδί : s (τo ξέρει μόνο ο Claimant)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 5

Σχήμα πιστοποίησης ταυτότητας


Fiat-Shamir (ΙΙ)

„ Κάθε φορά, ο C γεννάει έναν τυχαίο αριθμό r και


αποστέλλει στον V τον αριθμό x=r2 mod N.
„ O V αποστέλλει στον C έναν αριθμό e, είτε 0 είτε 1
„ O C υπολογίζει τον αριθμό y=rsemod Ν και τον
στέλνει στον V. Αφού μόνο ο C ξέρει το s, είναι ο
μόνος που μπορεί να υπολογίσει το y
„ Ο V κάνει, από το y που λαμβάνει, τον υπολογισμό
y2 mod Ν. Αν ισχύει y2=xυe (mod N) τότε
επιβεβαιώνει την ταυτότητα του C.
{ Πράγματι, y2=r2s2e (mod N) = x υe (mod N)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 6


Fiat-Shamir (διάγραμμα)

Claimant (C) Verifier (V)


N, s, υ N
Σε κάθε βήμα, επιλογή τυχαίου αριθμού r
μικρότερου του N και x=r2 mod N (witness)
x

Ερώτηση (e) = 0
1
r Λαμβάνει το
y=rsemod Ν. Εξετάζει αν
r×s modN y2=xυe mod Ν
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 7

Παράδειγμα
„ Ν=17 x 19 = 323
„ s=25
„ υ=s2 mod N =302
„ Γέννηση τυχαίου αριθμού r=12 και αποστολή του
x=r2 mod N = 144
„ O V στέλνει τον αριθμό e=1
„ O C απαντάει με τον y=rsemod Ν =
12 x 25 mod 323 = 300
„ O V υπολογίζει τον αριθμό y2 mod N = 206 και
εξετάζει αν ισούται με τον xυe (mod N)=144 x 302
mod 323 = 206 (άρα, αποδεκτή η απάντηση y=300
του C).
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 8
Σχόλια πάνω στον Fiat –
Shamir

„ Ένας επιτιθέμενος που θέλει να


προσποιηθεί ότι είναι ο C, μπορεί να
επιλέξει τυχαίο r, να στείλει x=r2/υ και
σε κάθε πρόκληση e=1 να απαντά y=r,
κάτι που ο V θα το ανιχνεύει ως σωστή
απάντηση. Όμως δεν θα μπορεί να
απαντήσει σωστά για e=0.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 9

Σχόλια πάνω στον Fiat –


Shamir (2)

„ Ένας επιτιθέμενος που θέλει να


προσποιηθεί ότι είναι ο C, μπορεί να
επιλέξει τυχαίο r, να στείλει x=r2 και σε
κάθε πρόκληση e=0 να απαντά y=r,
κάτι που ο V θα το ανιχνεύει ως σωστή
απάντηση. Όμως δεν θα μπορεί να
απαντήσει σωστά για e=1.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 10


Σχόλια πάνω στον Fiat –
Shamir (3)
„ Με βάση τις προηγούμενες δύο διαφάνειες, καταλήγουμε
ότι πάντα θα μπορεί κάποιος να ξεγελάσει το σύστημα,
αρκεί να ξέρει από πριν ποια θα είναι η ερώτηση e που θα
κάνει ο Verifier (το οποίο όμως δεν το ξέρει!!). Για αυτό
ακριβώς είναι πολύ κρίσιμο το ότι πρώτα ο Claimant
στέλνει το witness x και μετά δέχεται την
ερώτηση/πρόκληση e. Τη στιγμή που στέλνει το x, δεν
ξέρει ποια ερώτηση θα δεχτεί μετέπειτα, ως εκ τούτου δεν
ξέρει ποιο x να στείλει (x=r2/υ ή x=r2) για να ξεγελάσει τον
Verifier.
„ Γίνεται κατανοητό λοιπόν γιατί ο «διάλογος» μεταξύ των
δύο γίνεται πολλές φορές προτού ο Verifier εγκρίνει
πρόσβαση στον Claimant, έτσι ώστε να ελαχιστοποιηθεί η
πιθανότητα εξαπάτησης (δηλαδή η πιθανότητα ο εχθρός
να μαντεύει συνέχεια σωστά το e)
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 11

Σχόλια πάνω στον Fiat-Shamir

„ Δεν πρέπει να χρησιμοποιείται πάνω


από μία φορά το ίδιο r, γιατί με αυτό
τον τρόπο ένας εισβολέας μπορεί να
παρακολουθεί τη συνομιλία, να μάθει
τις απαντήσεις του claimant για τις
εκάστοτε ερωτήσεις του verifier και να
τις επαναλάβει

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 12


Ασφάλεια Fiat-Shamir

Έγκειται στην παραγοντοποίηση:


{ ένας αλγόριθμος που «σπάει» τον Fiat-
Shamir είναι ισοδύναμος με έναν
αλγόριθμο που παραγοντοποιεί τον N. Κι
αυτό γιατί για να βρει κάποιος το ιδιωτικό
κλειδί s από τα υ, Ν πρέπει να γνωρίζει
τα p,q (αυτό έχει εξηγηθεί στη θεωρία,
κατά την περιγραφή του αλγορίθμου
Rabin, και δεν θα αναλυθεί περαιτέρω
εδώ στο εργαστήριο )
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 13

Εφαρμογές του Fiat-Shamir


πρωτοκόλλου

„ VideoCrypt (κρυπτογράφηση
αναλογικού τηλεοπτικού σήματος –
π.χ. Filmnet).
„ Σε εφαρμογές e-voting

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 8 14


Εργαστηριακό μάθημα 10
(Επαναληπτικές ασκήσεις)

Εύρεση αντίστροφου αριθμού


Mod n
„ Έχουμε ήδη δει ότι πολύ συχνά συναντάμε την ανάγκη να
βρούμε τον αντίστροφο ενός αριθμού a modulo n, δηλαδή
έναν αριθμό a’ με την ιδιότητα
aa’≡1 mod n
(όπου, για να μπορούμε να βρούμε πάντα έναν τέτοιον μοναδικό αριθμό
a’, πρέπει gcd(a,n)=1)
„ Το πρόβλημα εύρεσης αντιστρόφου το συναντήσαμε:
{ Στον γραμμικό αλγόριθμο αλλά και στον αλγόριθμο Hill για την
αποκρυπτογράφηση
{ Στον RSA για τον υπολογισμό του ιδιωτικού κλειδιού d
(θυμίζουμε ότι το d είναι τέτοιο ώστε ed ≡1 mod φ(n))
{ Στον El Gamal, για την αποκρυπτογράφηση (όπου χρειάζεται ο
υπολογισμός του γ-a, δηλαδή η εύρεση του αντίστροφου του γa).

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 2


Πώς βρίσκουμε τον
αντίστροφο???
„ Πρώτος τρόπος: αν τα νούμερα είναι σχετικά μικρά,
μπορούμε να τον βρούμε με δοκιμές, δοκιμάζοντας
όλα τα πιθανά νούμερα.
„ Παράδειγμα: έστω ότι θέλουμε τον αντίστροφο του
5 mod 11. Οι πιθανοί αντίστροφοι είναι προφανώς
οι 1,2,…,10 (όλοι οι αριθμοί από 1 μέχρι 11-1=10).
Δοκιμάζουμε λοιπόν για αυτούς τους 10 αριθμούς
ποιος ικανοποιεί τη σχέση 5x≡1mod 11. Μπορούμε
να δούμε λοιπόν ότι 5-1 ≡ 9 mod 11.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 3

Υπάρχει πιο συστηματικός


τρόπος??
„ Ο επεκταμένος αλγόριθμος του Ευκλείδη (τον αναλύσαμε κατά
την περιγραφή του RSA).
„ Παράδειγμα RSA
{ Ένας χρήστης θέλει να δημιουργήσει ζευγάρι δημόσιου και
ιδιωτικού κλειδιού. Κάνει λοιπόν τα εξής:
„ Επιλέγει p=19, q=29. Τότε N=pq=551.
„ φ(Ν)=18 · 28 = 504
„ Επιλογή e που να μην έχει κοινούς διαιρέτες με το 504. Έστω e=25.
„ Υπολογισμός του ιδιωτικού κλειδιού d. Έχουμε λοιπόν:
504 = 20 · 25 + 4
25 = 6 · 4 + 1
4=4·1+0
Σταματάμε (όπου πράγματι επιβεβαιώσαμε ότι gcd(504,25)=1)
Πώς βρίσκουμε λοιπόν το d???

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 4


Αλγόριθμος του Ευκλείδη
(συνέχεια)
„ Διαβάζουμε τις προηγούμενες σχέσεις
ανάποδα ως εξής:
1 = 25 – 6 · 4 = 25 – 6 · (504 – 20 · 25) =
= 25 – 6 · 504 + 120 · 25 =>
⇒ 1 = – 6 · 504 + 121 · 25
Άρα 25-1≡ 121 mod 504
(επαλήθευση: 121 · 25 = 3025, το οποίο αν το
διαιρέσουμε με το 504 δίνει υπόλοιπο 1).
Άρα d=121.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 5

Κρυπτογράφηση –
Αποκρυπτογράφηση RSA
„ Αν m το μήνυμα που θέλουμε να στείλουμε, τότε το
κρυπτογραφούμε με την πράξη c = me mod Ν.

„ Ο παραλήπτης (κάτοχος του ιδιωτικού κλειδιού d)


το αποκρυπτογραφεί με την πράξη cd mod Ν.
„ Στη συγκεκριμένη περίπτωση, ισχύει το εξής:
Αν m25 mod 551 = c, τότε
c121 mod 551 = m για όλα τα m
(η απόδειξη αυτού έγινε στο μάθημα του RSA).

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 6


Σύνοψη κρυπτογραφικών
μεθόδων:

„ Ας κρυπτογραφήσουμε τη λέξη HELLO


με όσους αλγορίθμους έχουμε δει
μέχρι τώρα:
„ Αλγόριθμος του Καίσαρα: KHOOR
(κάθε γράμμα μετατοπίζεται κατά 3
θέσεις δεξιά).

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 7

Σύνοψη κρυπτογραφικών
αλγορίθμων

„ Αλγόριθμος του Vigenere: χρειαζόμαστε μια


λέξη-κλειδί.
„ Έστω σαν κλειδί η λέξη CRYPTOGRAPHY.
Τότε το κρυπτόγραμμα για τη λέξη HELLO
είναι JVJAH.
„ Υλοποίηση στο MATLAB:
http://mathdemos.gcsu.edu/vigenere/vigenere.html
(το αρχείο ventable.zip)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 8


Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Γραμμικός αλγόριθμος: έστω a=3, b=1
(θα μπορούσαμε να είχαμε επιλέξει π.χ. a=4?? Όχι, γιατί
πρέπει gcd(a,n)=1, όπου n το πλήθος των γραμμάτων του
αλφαβήτου – κι αφού είμαστε στο αγγλικό αλφάβητο, n=26).
„ To Η είναι το 8ο γράμμα, άρα κρυπτογραφείται σε 3 · 7 + 1
mod 26 = 22. Συνεπώς το H κρυπτογραφείται στο 23ο γράμμα,
που είναι το W.
„ Αντίστοιχα για το E έχουμε: (3 · 4 + 1) mod 26 = 13, οπότε το
E κρυπτογραφείται στο 14ο γράμμα – δηλαδή στο N.
„ Για το L: (3 · 11 +1) mod 26 = 34 mod 26 = 8, οπότε το L
κρυπτογραφείται στο 9ο γράμμα – δηλαδή στο I.
„ Τέλος, για το O: (3 · 14 + 1) mod 26 = 43 mod 26 = 17. Άρα το
O κρυπτογραφείται στο 18ο γράμμα, που είναι το R.
„ Συνεπώς, το HELLO κρυπτογραφείται σε WNIIR.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 9

Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Γραμμικός αλγόριθμος (αποκρυπτογράφηση):
„ Κάθε ένα κρυπτογραφημένο γράμμα c αποκρυπτογραφείται
με την πράξη
a-1(c-b)mod Ν
„ Ας δούμε πως θα αποκρυπτογραφούσαμε το WNIIR.
Καταρχήν πρέπει να βρούμε το 3-1 mod 26. Είτε με αλγόριθμο
του Ευκλείδη είτε με δοκιμές μπορούμε να βρούμε ότι ισούται
με 9. Συνεπώς:
{ Για το W (23ο γράμμα) έχουμε: 9(22-1) ≡ 189 mod 26 ≡ 7
Άρα, το W αποκρυπτογραφείται στο 8ο γράμμα του αλφαβήτου,
δηλαδή το H
{ Για το N (14ο γράμμα) έχουμε 9(13-1) ≡ 108 mod 26 ≡ 4.
Άρα, το N αποκρυπτογραφείται στο 5ο γράμμα του αλφαβήτου,
δηλαδή στο E.
{ Ομοίως συνεχίζουμε και για τα υπόλοιπα…..

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 10


Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αλγόριθμος Hill
„ Έστω ότι κάποιοι προτείνουν σαν πίνακα
κρυπτογράφησης τον
⎛2 3 ⎞
⎜⎜ ⎟⎟
⎝4 7 ⎠
„ Μπορούμε να τον χρησιμοποιήσουμε??
„ Η ορίζουσα του παραπάνω πίνακα ισούται με 2 · 7
– 3 · 4 = 2, και gcd(2,26) = 2.
Συνεπώς, αφού η ορίζουσα δεν είναι πρώτη ως
προς το 26, ο πίνακας δεν είναι αντιστρέψιμος mod
26 – άρα δεν μπορεί να χρησιμοποιηθεί για
κρυπτογράφηση.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 11

Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αλγόριθμος Hill (συνέχεια)
⎛2 3 ⎞
„ Έστω ότι εξετάζουμε τον πίνακα Κ = ⎜⎜ ⎟⎟
⎝1 7 ⎠
„ Η ορίζουσα αυτού είναι 11 – άρα, πράγματι είναι ένας πίνακας
που μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση Hill.
„ Tο ζευγάρι γραμμάτων HE κρυπτογραφείται με βάση το
γινόμενο

⎛2 3 ⎞⎛ 7 ⎞ ⎛ 26 ⎞ ⎛0⎞
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ mod 26
⎝1 7 ⎠⎝ 4 ⎠ ⎝ 35 ⎠ ⎝9⎠
Άρα, το ζευγάρι HE γίνεται AJ

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 12


Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αλγόριθμος Hill (συνέχεια)
„ Tο ζευγάρι γραμμάτων LL κρυπτογραφείται με βάση το
γινόμενο

⎛2 3 ⎞ ⎛ 11 ⎞ ⎛ 55 ⎞ ⎛ 3 ⎞
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ mod 26
⎝1 7 ⎠ ⎝ 11 ⎠ ⎝ 88 ⎠ ⎝ 10 ⎠
Άρα, το ζευγάρι LL γίνεται DK

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 13

Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Tέλος, το O επειδή μένει μόνο του συμπληρώνεται αυθαίρετα
με ένα άλλο γράμμα, κατάλληλο ώστε να μην μπερδεύει τον
παραλήπτη – να καταλάβει ότι είναι απλά πλεονάζον γράμμα.
Συνηθέστερα επιλέγεται το πλεονάζον γράμμα να είναι το Q
(χωρίς βέβαια να αποκλείονται και άλλα γράμματα). Έτσι, το
ζευγάρι γραμμάτων OQ κρυπτογραφείται με βάση το γινόμενο

⎛2 3 ⎞ ⎛ 14 ⎞ ⎛ 76 ⎞ ⎛ 24 ⎞
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ mod 26
⎝1 7 ⎠ ⎝ 16 ⎠ ⎝ 126 ⎠ ⎝ 22 ⎠
Άρα, το ζευγάρι LQ γίνεται ΥW

Άρα η λέξη HELLO γίνεται AJDKΥW

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 14


Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αποκρυπτογράφηση Hill
„ Χρειάζεται να υπολογιστεί ο αντίστροφος
του πίνακα κρυπτογράφησης, ο οποίος
αντίστροφος είναι ο:
⎛ 7
−1 − 3⎞
11 ⎜⎜ ⎟⎟ mod 26
⎝−1 2 ⎠

Ο 11-1 mod 26 μπορεί να υπολογιστεί με τον αλγόριθμο του Ευκλείδη

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 15

Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αποκρυπτογράφηση Hill
(συνέχεια)
26 = 2 ⋅ 11 + 4
11 = 2 ⋅ 4 + 3
4 = 1⋅3 + 1
3 = 3 ⋅1 + 0
Συνεπώς:
1 = 4 − 1 ⋅ 3 = 4 − 1 ⋅ (11 − 2 ⋅ 4) = −1 ⋅11 + 3 ⋅ 4 =
= −1 ⋅11 + 3 ⋅ (26 − 2 ⋅11) = 3 ⋅ 26 − 7 ⋅11
Άρα 11-1mod 26 = -7 mod 26 = 19
(το 19 προέκυψε από την πράξη -7 + 26)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 16


Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αποκρυπτογράφηση Hill (συνέχεια)

O πίνακας αποκρυπτογράφησης λοιπόν ισούται με:

⎛ 7 − 3⎞ ⎛ 133 − 57 ⎞ ⎛ 3 21⎞
19⎜⎜ ⎟⎟ mod 26 ≡ ⎜⎜ ⎟⎟ mod 26 ≡ ⎜⎜ ⎟⎟
⎝ −1 2 ⎠ ⎝ − 19 38 ⎠ ⎝ 7 12 ⎠

Κάθε λοιπόν ζευγάρι από το κρυπτόγραμμα πολλαπλασιάζεται με τον


παραπάνω πίνακα K-1 – έτσι προκύπτει το αρχικό μήνυμα.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 17

Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αποκρυπτογράφηση Hill (συνέχεια)

Έστω ότι λαμβάνουμε το κρυπτογραφημένο μήνυμα ML.


Ποιο είναι το μήνυμα που λάβαμε??
⎛ 12 ⎞
Θα πολλαπλασιάσουμε τον K-1 με το διάνυσμα ⎜⎜ ⎟⎟
(αφού το M είναι το 13ο γράμμα και το L το 12ο). ⎝ 11 ⎠
Άρα ⎛ 3 21⎞⎛12⎞ ⎛ 267⎞ ⎛ 7 ⎞
⎜⎜ ⎟⎟⎜⎜ ⎟⎟ ≡ ⎜⎜ ⎟⎟ ≡ ⎜⎜ ⎟⎟ mod 26
⎝ 7 12 ⎠⎝11⎠ ⎝ 216⎠ ⎝ 8 ⎠
Συνεπώς, το M αντιστοιχεί στο 8ο γράμμα του αλφαβήτου, δηλαδή το H,
και το L αντιστοιχεί στο 9ο γράμμα, δηλαδή το I.
Άρα, η λέξη που εστάλη είναι HI
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 18
Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Αλγόριθμος Playfair με C R Y P T

κλειδί τη λέξη
CRYPTOGRAPHY. O G A H B

{ Αρχικά,
κατασκευάζουμε τον
D E F I J
αντίστοιχο πίνακα:
(επιλέξαμε την
περίπτωση όπου K L M N S
παραλείπουμε το Q
από τον πίνακα, που
είναι η συνηθέστερη U V W X Z

περίπτωση)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 19

Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Playfair (συνέχεια)
{ Στη συνέχεια, «σπάμε» το
C R Y P T
μήνυμα HELLO σε δυάδες,
δηλαδή HE, LX, LO (προσέξτε
πως δεν πρέπει ένα ζεύγος να
αποτελείται από δύο ίδια
γράμματα, συνεπώς επειδή θα O G A H B
σχηματιζόταν το ζεύγος LL
παρεμβάλλαμε ένα Χ ανάμεσα)
„ ΠΡΟΣΟΧΗ!! Δεν παρεμβάλλουμε
το X ανάμεσα σε οποιοδήποτε
ζευγάρι διαδοχικών ίδιων D E F I J
γραμμάτων, παρά μόνο αν το
ζευγάρι σχηματίζεται κατά την
παραπάνω κατάτμηση της λέξης.
Για παράδειγμα, για τη λέξη K L M N S
GOOD, θα είχαμε τα ζευγάρια GO
και OD χωρίς κανένα πρόβλημα
U V W X Z

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 20


Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Playfair (συνέχεια)
„ Η κρυπτογράφηση γίνεται C R Y P T

ως εξής:
„ Τα H,E σχηματίζουν
ορθογώνιο στον πίνακα, O G A H B

άρα κρυπτογραφούνται στα


G,I.
„ Tα L,X σχηματίζουν επίσης D E F I J
ορθογώνιο, άρα
κρυπτογραφούνται στα
N,V. K L M N S
„ Tέλος, τα LO σχηματίζουν
ορθογώνιο και αυτά, άρα
κρυπτογραφούνται στα K,G U V W X Z
„ Συνεπώς, το HELLO γίνεται
GINVKG.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 21

Σύνοψη κρυπτογραφικών
αλγορίθμων
„ Playfair (Αποκρυπτογράφηση)
„ Η αποκρυπτογράφηση γίνεται με ακριβώς
την αντίστροφη διαδικασία. Έστω ότι C R Y P T
λαμβάνουμε το κρυπτογραφημένο μήνυμα
GLGMMRAGDK.
„ Tα G,L βρίσκονται στην ίδια στήλη, άρα το
καθένα αποκρυπτογραφείται στο γράμμα O G A H B
που βρίσκεται από πάνω του – συνεπώς
GL->RE
„ Τα G,M σχηματίζουν ορθογώνιο, άρα
αποκρυπτογραφούνται σε AL
D E F I J
„ Τα M,R σχηματίζουν ορθογώνιο, άρα
αποκρυπτογραφούνται σε L,Y.
„ Tα A,G είναι στην ίδια γραμμή, άρα το
καθένα αποκρυπτογραφείται στο αμέσως
προηγούμενό του, συνεπώς AG->GO. K L M N S
„ Tέλος, τα D,K είναι στην ίδια στήλη οπότε το
καθένα αποκρυπτογραφείται στο γράμμα
που βρίσκεται από πάνω του – με άλλα
λόγια, DK -> OD.
U V W X Z

„ Άρα το αρχικό μήνυμα είναι: REALLY


GOOD.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 22


Σύνοψη
„ Οι αλγόριθμοι μετατόπισης (π.χ. του Καίσαρα) και ο
γραμμικός αλγόριθμος είναι απλοί αλγόριθμοι
αντικατάστασης ή μονοαλφαβητικοί (κι αυτό γιατί
ένα γράμμα πάντοτε κρυπτογραφείται στο ίδιο).
„ Οι αλγόριθμοι Vigenere, Hill, Playfair είναι
πολυαλφαβητικοί αλγόριθμοι αντικατάστασης (ένα
γράμμα που εμφανίζεται πολλές φορές στο αρχικό
μήνυμα μπορεί να κρυπτογραφείται σε διαφορετικό
γράμμα στο παραγόμενο κρυπτόγραμμα)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 9 23

Εργαστηριακό μάθημα 11
(Επαναληπτικές ασκήσεις)
Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill
„ Έστω ότι το κλειδί είναι ένας πίνακας 2 x 2.
Αυτό σημαίνει ότι:
{ Σπάμε το μήνυμα σε ζευγάρια γραμμάτων
{ Κάθε γράμμα το αντιστοιχούμε σε έναν αριθμό
(π.χ. το Α αντιστοιχεί στον αριθμό 0, το B στον
αριθμό 1 κ.ο.κ.)
{ Κάνουμε τους αντίστοιχους πολλαπλασιασμούς.
(βλέπε συνέχεια)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 2

Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill
„ Έστω ότι θέλουμε να κρυπτογραφήσουμε τη λέξη ΓΕΙΑ. Σαν
κλειδί έχουμε τον πίνακα
⎛1 3 ⎞
K = ⎜⎜ ⎟⎟
⎝ 2 13⎠
„ Σπάμε το μήνυμα σε ζευγάρια. Το πρώτο ζευγάρι είναι το ΓΕ
και το δεύτερο το ΙΑ.
„ Το Γ είναι το 3ο γράμμα της αλφαβήτου, άρα αντιστοιχεί στον
αριθμό 2. Το Ε είναι το 5 γράμμα, άρα αντιστοιχεί στον αριθμό
4. Συνεπώς, για την κρυπτογράφηση του ΓΕ θα έχουμε τον
πολλαπλασιασμό:

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 3


Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill
⎛ 1 3 ⎞⎛ 2 ⎞ ⎛ 1⋅ 2 + 3 ⋅ 4 ⎞ ⎛ 2 + 12 ⎞
⎜⎜ ⎟⎟⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟ mod 24 =
⎝ 2 13⎠⎝ 4 ⎠ ⎝ 2 ⋅ 2 + 13 ⋅ 4 ⎠ ⎝ 4 + 52 ⎠
⎛ 14 ⎞ ⎛14 ⎞ ⎛O⎞
= ⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟ ⎯⎯→⎜⎜ ⎟⎟
⎝ 56 ⎠ ⎝8⎠ ⎝I⎠

„ Η τελευταία ανάθεση γίνεται γιατί το O είναι το 15ο γράμμα της


αλφαβήτου και το I το 9ο .
„ ΠΡΟΣΟΧΗ! Αν το κείμενο που θέλαμε να κρυπτογραφήσουμε
ήταν αγγλικό, στις πράξεις που προηγήθηκαν δεν θα είχαμε
mod 24 αλλά mod 26 (επειδή τα γράμματα του αγγλικού
αλφάβητου είναι 26)

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 4

Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill

„ Άρα το ζευγάρι ΓΕ κρυπτογραφείται σε OI.


„ Άσκηση: κρυπτογραφείστε το ζευγάρι ΙΑ
„ Πώς θα γίνει η αποκρυπτογράφηση?? Ας υποθέσουμε
ότι ο παραλήπτης λαμβάνει το OI και ξέρει και τον
πίνακα-κλειδί K. Πώς θα αποκρυπτογραφήσει??
„ Πρέπει πρώτα να υπολογίσει τον αντίστροφο πίνακα του
K και μετά να τον πολλαπλασιάσει με το κρυπτόγραμμα
που αντιστοιχεί στο OI.
„ Για τον αντίστροφο πίνακα του Κ εργαζόμαστε ως εξής:

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 5


Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill
„ Βρίσκουμε πρώτα την ορίζουσα του K, η οποία
συμβολίζεται με det(K). ⎛a b⎞
⎜ ⎟
„ Γενικά, για έναν πίνακα ⎜c d ⎟⎝ ⎠

η ορίζουσά του det(K) ισούται με ad-bc.

„ Άρα, για τον πίνακά μας, έχουμε det(K)=1 · 13 - 3· 2 = 7


„ Στη συνέχεια, πρέπει να βρούμε τον αντίστροφο της
ορίζουσας, άρα τον αντίστροφο του 7 mod 24.
„ Θα εφαρμόσουμε τον αλγόριθμο του Ευκλείδη.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 6

Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill
„ 24 = 3 · 7 + 3
„ 7=2 ·3+1

Σταματάμε. Άρα, η τελευταία σχέση δίνει


1= 7 - 2 · 3 και επειδή η πρώτη σχέση δίνει
3 = 24 - 3 · 7, καταλήγουμε:
1=7 – 2 · (24 - 3 · 7) = 7 – 2 · 24 + 6 · 7 =
7 · 7 - 2 · 24.
Άρα, ο αντίστροφος του 7 mod 24 είναι ο 7.
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 7
Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill

O αντίστροφος ενός πίνακα ⎛a b ⎞


K = ⎜⎜ ⎟⎟
⎝ c d ⎠

Είναι ο πίνακας K −1 = det( K ) −1 ⎛⎜ d − b⎞


⎜− c ⎟⎟
⎝ a ⎠
⎛ 13 − 3⎞
Άρα, για μας: K −1 = 7 −1 ⎜⎜
⎝− 2
⎟ mod 24
1 ⎟⎠

Είδαμε ήδη όμως παραπάνω ότι 7-1mod 24 = 7 και, επίσης,


ισχύει, -3 mod 24 = (-3+24) mod 24 = 21 και -2 mod 24 = (-2+24)
mod 24 = 22. Άρα, έχουμε:

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 8

Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill

⎛ 13 21⎞ ⎛ 91 147 ⎞ ⎛19 3 ⎞


K −1 = 7 ⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟
⎝ 22 1 ⎠ ⎝154 7 ⎠ ⎝10 7 ⎠
Τώρα πια είμαστε έτοιμοι να κάνουμε αποκρυπτογράφηση. Για την
αποκρυπτογράφηση του OI, κάνουμε τον πολλαπλασιασμό

⎛19 3 ⎞⎛14 ⎞ ⎛ 19 ⋅14 + 3 ⋅ 8 ⎞ ⎛ 266 + 24 ⎞


⎜⎜ ⎟⎟⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟ mod 24 =
⎝ 10 7 ⎠⎝ ⎠
8 ⎝ 10 ⋅ 14 + 7 ⋅ 8 ⎠ ⎝ 140 + 56 ⎠
⎛ 290 ⎞ ⎛2⎞ ⎛Γ ⎞
⎜⎜ ⎟⎟ mod 24 = ⎜⎜ ⎟⎟ ⎯⎯ → ⎜⎜ ⎟⎟
⎝ 196 ⎠ ⎝4⎠ ⎝Ε ⎠
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 9
Σύνοψη κρυπτογραφικών
αλγορίθμων – Αλγόριθμος Hill
Προσοχή! Δεν έχουν όλοι οι πίνακες αντίστροφο, οπότε ο πίνακας κλειδί
δεν μπορεί να είναι ο οποιοσδήποτε – πρέπει να είναι τέτοιος ώστε να
έχει αντίστροφο.

Πότε ο Κ είναι αντιστρέψιμος?? Πρέπει gcd(det(K),N)=1

Ποιοι λοιπόν από τους παρακάτω πίνακες μπορούν να είναι κλειδιά σε


κρυπτογράφηση Hill ελληνικού κειμένου???

⎛ 3 8 ⎞ ⎛ 1 2 ⎞ ⎛ 5 2 ⎞
⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟ , ⎜⎜ ⎟⎟
⎝ 1 6 ⎠ ⎝ 4 9 ⎠ ⎝ 10 4 ⎠
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 10

Σύνοψη κρυπτογραφικών
αλγορίθμων - RSA
„ Δημιουργία δημόσιου-ιδιωτικού κλειδιού από
έναν χρήστη:
{ Επιλογή δύο πρώτων αριθμών p,q. Έστω p=11,
q=19.
{ Υπολογισμός N=pq=209
{ Υπολογισμός φ(Ν)=(p-1)(q-1)=180
{ Επιλογή e τέτοιυ ώστε gcd(e,φ(Ν))=1.
π.χ. μεταξύ των 39,56,29, μόνο το 29 μπορεί να
επιλεγεί ως e.
{ Εύρεση του αντίστροφου του e mod φ(Ν).

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 11


Σύνοψη κρυπτογραφικών
αλγορίθμων - RSA

„ Αλγόριθμος του Ευκλείδη:


180 = 6 · 29 + 6
29 = 4 · 6 + 5
6 = 1 · 5 +1
Άρα, θα έχουμε 1= 6 - 1 · 5 =
= 6 – 1 · (29 - 4 · 6) = 6 - 1 · 29 + 4 · 6 =
= 5 · 6 - 1 · 29 = 5 · (180 - 6 · 29 )- 1 · 29 =
=5 · 180 -31 · 29
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 12

Σύνοψη κρυπτογραφικών
αλγορίθμων - RSA

„ Άρα ο αντίστροφος του 29 είναι ο -31 mod


180 = (-31+180) mod 180 = 149.
„ Άρα d=149
„ Δημόσιο κλειδί: e,N
„ Ιδιωτικό κλειδί: d
„ Για την κρυπτογράφηση λοιπόν του αριθμού
m έχουμε c=me mod N
„ Και την αποκρυπτογράφηση: m=cd mod N
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 13
Σύνοψη κρυπτογραφικών
αλγορίθμων – El Gamal

„ Παραγωγή Δημόσιου-Ιδιωτικού κλειδιού


{ Ο χρήστης επιλέγει πρώτο αριθμό p. Έστω p=7.
{ Επιλέγει γεννήτορα g mod 7. Προσέξτε: οι
αριθμοί g=2,4,6 δεν είναι γεννήτορας mod 7,
αλλά οι g=3,5, είναι.
{ Έστω λοιπόν g=3
{ Επιλογή a τυχαίου. Έστω a=4
{ Υπολογισμός y = ga mod p = 81 mod 7 = 4
{ Δημόσιο Κλειδί: (p, g, y). Ιδιωτικό κλειδί: a.

Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 14

Σύνοψη κρυπτογραφικών
αλγορίθμων – El Gamal

„ Κρυπτογράφηση του αριθμού m=2


{ Επιλογή τυχαίου k. Έστω k=5.
{ (προσοχή! Ανάλογα με την επιλογή του k,
θα προκύψει και άλλο κρυπτόγραμμα!!
Πάντα όμως η αποκρυπτογράφηση εν
τέλει θα είναι σωστή!!)
{ Υπολογισμός του γ=gk mod p =5 και του
δ=myk mod p = 2·45 mod 7 = 4
{ Άρα, το κρυπτόγραμμα είναι: (γ,δ)=(5,4)
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 15
Σύνοψη κρυπτογραφικών
αλγορίθμων – El Gamal

„ Αποκρυπτογράφηση του (γ,δ)=(5,4)


{ Υπολογισμός του δ/γα mod p.
{ γα=54 mod 7 = 625 mod 7 =2

{ Θέλουμε λοιπόν τον αντίστροφο του 2


mod 7. Προφανώς είναι 4. Άρα, η
αποκρυπτογράφηση δίνει
4 · 4 mod 7 = 16 mod 7 = 2
Πράγματι λοιπόν αποκρυπτογραφήσαμε το
m=2
Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 10 16

You might also like