Πανεπιστήμιο Αιγαίου Τμήμα μηχανικών πληροφοριακών & επικοινωνιακών συστημάτων Βασικές έννοιες Κρυπτογραφίας Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Πανεπιστήμιο Αιγαίου
CIA και οχι μόνο C S I A S = Secure Εμπιστευτικότητα (Confidentiality) Ακεραιότητα δεδομένων (Integrity) Διαθεσιμότητα (Availability) Ιδιωτικότητα (Privacy) Μη-αποποίηση (Nonrepudiation)...
Κρυπτογραφία Είναι: Εργαλείο (μαθηματικό κυρίως...) Η βάση για όλους του μηχανισμούς ασφάλειας Αναξιόπιστη αν δεν υλοποιηθεί σωστά!!! Κάτι που ΔΕΝ ΠΡΕΠΕΙ κάποιος να κατασκευάσει από μόνος του, εκτός κι αν είναι Ειδικός με πολύχρονη πείρα (οπότε και ξέρει ότι δεν πρέπει να εμπιστευτεί τον αλγόριθμο του..) Ο αλγόριθμος/σύστημα έχει αξιολογηθεί από άλλους ειδικούς Έχει επιβιώσει μακροχρόνια περίοδο κρυπτανάλυσης
Ασφαλείς Επικοινωνίες ή όταν η Alice γνώρισε το Bob Alice Bob 2o Επιστημονικό Συμπόσιο Φοιτητών Σάμος, 23-11-2007 5
Ασφαλείς Επικοινωνίες ή όταν η Alice γνώρισε το Bob Alice Bob Eve 2o Επιστημονικό Συμπόσιο Φοιτητών Σάμος, 23-11-2007 6
Συμμετρική Κρυπτογραφία Alice Bob Eve 2o Επιστημονικό Συμπόσιο Φοιτητών Σάμος, 23-11-2007 7
Ασύμμετρη Κρυπτογραφία Alice Bob Eve 2o Επιστημονικό Συμπόσιο Φοιτητών Σάμος, 23-11-2007 8
Συμμετρική Κρυπτογραφία (εμπιστοσύνη) Τι έστειλε η Alice στο Bob; Alice Bob Eve 2o Επιστημονικό Συμπόσιο Φοιτητών Σάμος, 23-11-2007 9
Συμμετρική Κρυπτογραφία (αυθεντικοποίση) Ειμαι η Alice Alice Bob Eve 2o Επιστημονικό Συμπόσιο Φοιτητών Σάμος, 23-11-2007 10
Συμμετρική Κρυπτογραφία (ακεραιότητα) Alice Bob Έλαβα ό,τι μου έστειλε Alice; Eve 2o Επιστημονικό Συμπόσιο Φοιτητών Σάμος, 23-11-2007 11
Βασικές Πράξεις Κρυπτογράφηση προστασίας εμπιστευτικότητας Κρυπτογράφηση προστασίας ακεραιότητας Κρυπτογράφηση προστασίας αυθεντικότητας 15/1/2012 Π. Ριζομυλιώτης 12
Βασικά Δομικά Στοιχεία 1. Τυχαίες και ψευδοτυχαίες γεννητριες δυαδικών αριθμών (random pseudorandom generators) 2. Συναρτήσεις σύνοψης (hash functions) 3. Αλγόριθμοι κρυπτογράφησης με στόχο την εμπιστευτικότητα Συμμετρικοί Δημοσίου κλειδιού 4. Αλγόριθμοι κρυπτογράφησης με στόχο την ακεραιότητα/αυθεντικότητα(mac) Συμμετρικοί Δημοσίου κλειδιού (+ψηφιακές υπογραφές) 5. Πρωτόκολλα διανομής των κλειδιών
Εμπιστευτικότητα με τη Χρήση Συμμετρικών Αλγορίθμων Βασικές επιλογές One-time pad Perfect security Stream ciphers Pseudo-random pad αλλά όχι one-time PAD! Block cipher Fixed-size blocks (e.g., 64 or 128 bits)
15/1/2012 Π. Ριζομυλιώτης 15
One-time pad A Μη κωδικοποιημένο μήνυμα Μ + Tυχαία Ακολουθία Κωδικοποιημένο μήνυμα C + Tυχαία Ακολουθίας Μη κωδικοποιημένο μήνυμα Μ B Απόλυτη ασφάλεια Δεν είναι πρακτικό!!! Λύση: Stream Ciphers
Τυχαίες Γεννήτριες (1) Στόχος: παραγωγή ακολουθιών από bits οι οποίες χηρισμοποιούνται σαν μυστικά κλειδιά, βοηθητικές τιμές σε πρωτόκολλα, initialization vectors for synchronization, seed σε ψευδοτυχαιες γεννητριες Βασίζονται κυρίως σε φυσικά φαινόμενα: της εξόδου οπτικών λέιζερ τα οποία λειτουργούν σε χαοτική κατάσταση του θορύβου που προκαλείται σε κυκλώματα από φωτόνια τα οποία εκπέμπονται από φωτοδίοδο (shot noise) των εκπομπών ραδιενεργών υλικών (με χρήση ειδικών μετρητών Geiger) του θερμικού θορύβου αντίστασης του ατμοσφαιρικού θορύβου του θορύβου σε μια δίοδο χιονοστιβάδας (avalanche diode)
Τυχαίες Γεννήτριες (2) Μειονεκτήματα: Ακριβό το υλικό κατασκευής Μικρό ρυθμός παραγωγής των bits Ανάγκη επεξεργασίας της εξόδου (noise whitening procedure) Στην πράξη χρησιμοποιούνται ψευδοτυχαίες γεννητριες με αρχικοποίηση (seeding) από τυχαίες.
Σύγχρονοι Stream Ciphers A Μη κωδικοποιημένο μήνυμα Μ + Γεννητρια Ψευδοτυχαίας Ακολουθίας Κωδικοποιημένο μήνυμα C + Γεννητρια Ψευδοτυχαίας Ακολουθίας Μη κωδικοποιημένο μήνυμα Μ B Stream Ciphers orc4 o MUGI o SNOW o A4 o E0 o.. K=key Πρακτικό!!! Δεν ειναι one-time pad!!!! Δεν εξασφαλίζει την ακεραιότητα!!!!!
Πχ. RC4 i := 0 j := 0 while GeneratingOutput: i := (i + 1) mod 256 j := (j + S[i]) mod 256 swap values of S[i] and S[j] K := S[(S[i] + S[j]) mod 256] output K endwhile 15/1/2012 Π. Ριζομυλιώτης 20
Ψευδο-Τυχαίες Γεννήτριες Στόχος: παραγωγή ακολουθιών από bits οι οποίες «μοιάζουν» με τυχαίες Είσοδος: μια μικρή ακολουθία από πραγματικά τυχαία bits. Κατασκευές (περισσότερα σε λίγο): Stream ciphers Block ciphers, πχ. σε Counter Mode Hash function με αναδραση Δεν είναι πραγματικά τυχαίες! Μπορεί να αποτελέσουν τον αδύναμο κρίκο σε ένα κρυπτοσύστημα.
Σύγχρονοι Block Ciphers Μη κωδικοποιημένο μήνυμα Μ Κωδικοποιημένο μήνυμα C A Inverse B Κωδικοποιημένο μήνυμα C Μη κωδικοποιημένο μήνυμα Μ o o o Πολυεργαλείο stream ciphers Hash MAC Ξέρουμε πως να τα φτιάχνουμε!!! Είναι απλό, αλλά θέλει προσοχή στην εφαρμογή
Block cipher modes Τρόποι Λειτουργίας ECB Electronic Code Book mode CBC Cipher Block Chaining OFB Output Feedback Mode (stream cipher pseudorandom generator ) CFB Cipher Feedback Mode Block Ciphers AES 3DES Serpent Mars
Electronic Code Book (ECB) Plain Text Plain Text Block Cipher Block Cipher Block Cipher Block Cipher Ciphe r Tex t Cip her T
Cipher Block Chaining (CBC) Plain Text Plain Text IV Block Cipher Block Cipher Block Cipher Block Cipher Ciphe r Tex t Cip her T Advantages: Identical blocks encrypted differently Last ciphertext block depends on entire input
Comparison (for AES, by Bart Preneel) Similar plaintext blocks produce similar ciphertext (see outline of head) No apparent pattern
Πχ. DES 15/1/2012 Π. Ριζομυλιώτης 27
Ηash functions Αρχικό Μήνυμα Μεταβλητού μήκους Hash Function Digest «Μονόδρομη συνάρτηση μεταβλητού μεγέθους εισόδου και εξόδου σταθερού μήκους» Συμπίεση Ευκολία υπολογισμού Υπολογιστικά «αδύνατη» η αντιστροφή Χρήσεις Data integrity Data origin authentication Digital signatures Pseudorandom generators Noise whitening Βασικό δομικό στοιχείο σε όλα σχεδόν τα κρυπτογραφικά πρωτόκολλα.
Ιδιότητες των Hash functions
SHA-1 15/1/2012 Π. Ριζομυλιώτης 30
Hash Functions MD4, MD5 SHA-1, SHA-256, SHA-512 RIMPEMD Tiger, Whirlpool Block cipher based
Τρέχουσα κατάσταση... Διαγωνισμός για το νέο στάνταρντ Ξεκίνησε στα τέλη του 2008 Αναμένεται να κρατήσει μέχρι το τέλος του 2012 Βρίσκεται στη 3 η φάση (5 τελικοί υποψήφιοι) BLAKE, Grøstl, JH, Keccak, and Skein http://csrc.nist.gov/groups/st/hash/timeline.ht ml Μέχρι τότε SHA-1 (μέχρι το 2010) και μετά SHA-256! Whirlpool (μοιάζει να είναι ασφαλής λύση) ή Tiger 32
Ακεραιότητα μηνυμάτων MAC: Message Authentication Code Eve Alice HAL 9000 Μυστικό κλειδί Κ (m,m1) Μυστικό κλειδί Κ m και M1 = MAC Κ (m) M2 = MAC Κ (m) If M2 == M1, data is valid If M2!= M1, data has been corrupted
MAC: Message Authentication Code Ακεραιότητα μηνυμάτων Γενικός αλγόριθμος αυθεντικοποίησης Sender sends Message and M1 = MAC(Message) Receiver receives both parts Receiver computes M2 = MAC(Message) If M2 == M1, data is valid If M2!= M1, data has been corrupted Φυσικά πρέπει να υπάρχει κοινό κλειδί για το MAC!!!
Πχ. HMAC Internet standard RFC2104: ΗΜΑC HMAC K (M) = Hash[ (K + XOR opad) Hash[(K + XOR ipad) M)] ] Hash functions: MD5, SHA-1, 15/1/2012 Π. Ριζομυλιώτης 35
Ακεραιότητα vs Εμπιστευτικότητα Ένας αλγόριθμος προστασίας της εμπιστευτικότητας δεν εξασφαλίζει την ακεραιότητα. Ένας αλγόριθμος προστασίας της ακεραιότητας δεν εξασφαλίζει την εμπιστευτικότητα. Πρέπει να χρησιμοποιούνται διαφορετικά κλειδιά. Η συμμετρική κρυπτογραφία προσφέρει εργαλεία και για τους 2 στόχους (ή 3).
Βασικά Κρυπτογραφικά Συστήματα Eve Alice Μυστικό κλειδί Κ Α encrypt(κ Α, message) HAL 9000 Δημόσιο κλειδί Κ Β decrypt(κ Β, encrypt(κ Α, message)) Ιδέα των Diffie and Hellman(?),1976, "New Directions in Cryptography", James H. Ellis at GCHQ (Government Communications Headquarters), a British intelligence organization
Βασικά Κρυπτογραφικά Συστήματα Eve Alice Μυστικό κλειδί Κ Α encrypt(κ Α, message) HAL 9000 Δημόσιο κλειδί Κ Β decrypt(κ Β, encrypt(κ Α, message)) Βασίζεται σε «δύσκολα» μαθηματικά προβλήματα (ΝP- Complete): Παραγοντοποίηση ακεραίων σε πρώτους αριθμούς Πρόβλημα διακριτού λογαρίθμου Ελλειπτικές Καμπύλες Θεωρία κωδίκων Επίλυση εξισώσεων σε πεπερασμένο σώμα (2 ου βαθμού)
Κρυπτοσυστήματα Δημοσίου Κλειδιού Λίγα και καλά: RSA (πρώτο σύστημα δημοσίου κλειδιού από τους Rivest, Shamir, Adelman. Σήμερα μεγάλη εταιρία στο χώρο) El Gamal Elliptic Curves Mc Elliece... Εφαρμογές Public-key encryption Public-key Authentication Digital signature scheme Κι αν τα προβλήματα δεν είναι τόσο «δύσκολα»?
Ψηφιακές Υπογραφές Message Sender Message Receiver Message Message Hash function Digest Public Key Hash function Private Key Encryption Decryption Signature Expected Digest Digest
Zero-knowledge Protocols One application of public-key cryptography is zero-knowledge protocols. Often, one party might want to prove something to another without revealing any information Nuclear treaties Bank balances Sensitive information
Alice will prove that she knows open sesame 15/1/2012 Π. Ριζομυλιώτης 42
Zero-knowledge protocols Bob verifies Alice s identity by computing: {58,67} are Alice s public numbers 36^2 *58^0 *67^1 (mod 77)= 53 62^2 *58^1 * 67^0 (mod 77) = 37 47^2 * 58^1 * 67^1 (mod 77) = 60 Alice s original numbers reappear! (Actually, an attacker would have a 1 in 64 chance of guessing correctly ) In a real system, N would be very large 160 digits. Also, Bob learns nothing that he didn t know before.
Ανταλλαγή κλειδιών Diffie Hellman key exchange Public key infrastructure Kerberos (symmetric key) 15/1/2012 Π. Ριζομυλιώτης 44
Ανταλλαγή κλειδιών Diffie Hellman key exchange 15/1/2012 Π. Ριζομυλιώτης 45
Diffie Hellman key exchange 15/1/2012 Π. Ριζομυλιώτης 46
Public-Key Infrastructure (PKI) Πως ξέρω το δημόσιο κλειδί του Bob? Λύση: PKI Trusted root authority (VeriSign, IBM, United Nations) Root authority μπορεί να υπογράψει certificates Certificates ταυτοποιούν άλλες οντότητες (και authorities) Certificate chains Known public signature verification key Ka Ka Certificate Authority Ks Certificate Sign(Ka -1, Ks) Client Sign(Ka -1, Ks), Sign(Ks, msg) Server
15/1/2012 Π. Ριζομυλιώτης 48
15/1/2012 Π. Ριζομυλιώτης 49
Kerberos 15/1/2012 Π. Ριζομυλιώτης 50
Συνδυασμός Συμμετρικής και Ασύμμετρης Κρυπτογραφίας Η ασύμμετρη κρυπτογραφία είναι «αργή»! Στην πράξη: Χρήση ασύμμετρης κρυπτογραφίας για τον καθορισμό κοινού κλειδιού (χρήση Signed certificates for authentication) Συμμετρικοί αλγόριθμοι για την κρυπτογράγηση δεδομένων επικοινωνίας Hash συναρτήσεις για ακεραιότητα (συνήθως HMAC, θα δουμε τι είναι..) Π.χ. SSL/TLS (Standard for Internet security)
Βασικές αποφάσεις Σκοπός Αντίπαλος Μέγεθος κλειδιού Επιλογή δομικών στοιχείων (Επιλογή πρωτοκόλλων) Σωστή υλοποίηση!!!!
Auguste Kerckhoffs A cryptosystem should be secure even if everything about the system, except the key, is public knowledge. (Jean-Guillaume-Hubert-Victor-François- Alexandre-Auguste Kerckhoffs von Nieuwenhof)
Μέγεθος Κλειδιού Ανάλογα με την εφαρμογή και το μοντέλο επίθεσης Στόχος της κρυπτογραφικής εφαρμογής (εμπιστευτικότητα, μη αποποίηση, ακεραιότητα, αυθεντικοποίηση) Δυνατότητες επιτηθέμενου