Κρυπτογραφία: Εφαρμογζσ Hash

Σχετικά έγγραφα
Κρυπτογραφία: Εφαρμογές Hash

Αςφάλεια και Προςταςία Δεδομζνων

Κάνουμε κλικ ςτθν επιλογι του οριηόντιου μενοφ «Get Skype»για να κατεβάςουμε ςτον υπολογιςτι μασ το πρόγραμμα του Skype.

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

Πωσ δημιουργώ μάθημα ςτο e-class του ΠΣΔ [επίπεδο 1]

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Πωσ δθμιουργώ φακζλουσ;

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΡΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 7: Ρροςταςία Λογιςμικοφ - Ιοί

ςυςτιματα γραμμικϊν εξιςϊςεων

Πρόςβαςη και δήλωςη μαθημάτων ςτον Εφδοξο

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ

Epsilon Cloud Services

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Internet a jeho role v našem životě Το Διαδίκτυο και ο ρόλοσ του ςτθ ηωι μασ

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

ΕΝΟΤΘΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΘ. ΚΕΦΑΛΑΙΟ 6: Θ «Βοικεια» ςτον Υπολογιςτι

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

17. Πολυδιάςτατοι πίνακεσ

w e b t r a i l s. g r Η ΛΕΙΣΟΤΡΓΙΚΟΣΗΣΑ ΣΟΤ ΙΣΟΣΟΠΟΤ J24CLASS.GR

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

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

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

Οδηγίες Πρόζβαζης ζηο EndNote Web. Πρόζβαζη ζηο EndNote Web

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

Τπθρεςία MasterCard SecureCode / Verified by VISA τθσ ΕΘΝΙΚΘ ΣΡΑΠΕΗΑ Ερωτιςεισ & Απαντιςεισ

Εγχειρίδιο Χρήςησ Support

Προώθησε το site σου στις μηχανε ς αναζη τησης

ΟΔΗΓΙΕ ΓΙΑ ΣΗ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΣΗΝ ΤΠΟΒΟΛΗ ΑΙΣΗΗ ΓΙΑ «ΚΟΤΠΟΝΙ ΚΑΙΝΟΣΟΜΙΑ»

Ιδιότθτεσ πεδίων Γενικζσ.

Facebook Μία ειςαγωγι

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

Κάκε δικαίωμα ςυνδζεται με τα άλλα και είναι όλα το ίδιο ςθμαντκά.

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

ΚΡΤΠΣΟΓΡΑΦΙΑ ΚΑΙ ΑΦΑΛΕΙΑ ΤΠΟΛΟΓΙΣΩΝ Δ Εξάμηνο. Αςφμμετρη Κρυπτογράφηςη (Κρυπτογραφία Δημόςιου Κλειδιοφ)

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

ΕΝΟΣΗΣΑ 3: ΧΡΗΗ ΕΡΓΑΛΕΙΩΝ ΕΚΦΡΑΗ ΚΑΙ ΔΗΜΙΟΤΡΓΙΑ

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

HY437 Αλγόριθμοι CAD

Οδηγίεσ για την πρόςβαςη των δικαιοφχων ςτο ΟΠΣΑΑ

ΑΤΣΟΝΟΜΟΙ ΠΡΑΚΣΟΡΕ ΕΡΓΑΙΑ ΕΞΑΜΗΝΟΤ HEARTSTONE ΑΛΕΞΑΝΔΡΟ ΛΟΤΚΟΠΟΤΛΟ ΑΜ:

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

Εγκατάσταση & Διαχείριση Joomla στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & ΚΕ.ΡΛΗ.ΝΕ.Τ. Ν. ΣΕΩΝ

ΑΦΑΛΕΙΑ ΣΟ ΔΙΑΔΙΚΣΤΟ

Κατά τθν ενεργοποίθςθ τθσ ιδιότθτασ αυτισ ενδζχεται να εμφανιςτεί ζνα μινυμα ςαν αυτό τθσ παρακάτω εικόνασ. Απλά επιβεβαιϊςτε πατϊντασ ΟΚ.

Modellus 4.01 Συ ντομοσ Οδηγο σ

Εγχειρίδιο: Honeybee Small

Εγχειρίδιο Χρήςησ Αυτοματοποίηςησ Κυκλώματοσ Πληρωμών ΟΛΠ μζςω e-banking VERSION <Final>

Ερωτιςεισ & απαντιςεισ για τα ξφλινα πνευςτά

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΤΟΤ. Φιλιοποφλου Ειρινθ

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

1. Εγκατάςταςη κειμενογράφου JCE

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

ΧΡΗΙΜΟΠΟΙΩΝΣΑ ΣΟ VISUAL HISTORY ARCHIVE

Aux.Magazine Μπιλμπάο, Βιηκάγια, Ιςπανία Προςωπικά δεδομζνα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗ ΔΗΜΙΟΥΓΙΑ ΚΑΙ ΤΗΝ ΡΙΣΤΟΡΟΙΗΣΗ ΛΟΓΑΙΑΣΜΟΥ ΕΡΙΧΕΙΗΣΗΣ

ΟΝΟΜΑΣΟΛΟΓΙΑ ΠΑΡΑΜΕΣΡΩΝ ΓΙΑ ΠΡΟΑΡΜΟΜΕΝΕ ΑΝΑΦΟΡΕ. παραμζτρου> (Εμφανίηεται ςαν Caption ςτθν φόρμα των φίλτρων).

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΚΑΙ ΡΥΘΜΙΣΗΣ ΔΩΡΕΑΝ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΧΥΔΡΟΜΕΙΟΥ ΣΤΟ YAHOO

Βαςεις δεδομενων 1. Δρ. Αλζξανδροσ Βακαλουδθσ

Εργαςτιριο Βάςεων Δεδομζνων

Γίνετε μζλοσ τθσ ομάδασ Panoramio του

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

ΜΑΘΗΜΑΤΙΚΑ ΕΠΙΠΕΔΟ (Β - Γ Λυκείου)

Διαδικαζία Διατείριζης Εκηύπωζης Ιζοζσγίοσ Γενικού - Αναλσηικών Καθολικών. (v )

Μετεγκατάςταςη ςε Access 2010

Ειδικά Θζματα Βάςεων Δεδομζνων

Joomla! - User Guide

Διαδικασία με βήματα. 1. Αλλάηω το χρϊμα ςκθνικοφ ςε γκρι(#3333).

ΑΞΙΟΛΟΓΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ

Παράδοςθ αςκιςεων ςε μορφι ζντυπθ. Προτεινόμενεσ αςκιςεισ από το Βιβλίο με τίτλο

ΠΑΝΕΠΙΣΘΜΙΟ ΔΤΣΙΚΘ ΜΑΚΕΔΟΝΙΑ ΣΜΘΜΑ ΜΘΧΑΝΙΚΩΝ ΠΛΘΡΟΦΟΡΙΚΘ ΚΑΙ ΣΘΛΕΠΙΚΟΙΝΩΝΙΩΝ. Λειτουργικά υςτιματα, 4 ο Εξάμθνο Ψθφιακι χεδίαςθ ΙΙ, 4 ο Εξάμθνο

Σφςτημα Κεντρικήσ Υποςτήριξησ τησ Πρακτικήσ Άςκηςησ Φοιτητών ΑΕΙ

ΣΑΞΗ: Το ςενάριο απευκφνεται ςε παιδιά προςχολικισ θλικίασ. ΤΜΒΑΣΟΣΗΣΑ ΜΕ ΣΟ ΔΕΠΠ ΚΑΙ ΑΠ ΜΑΘΗΜΑΣΙΚΩΝ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΓΑΣΤΗΙΟ 3

ΔΙΑΔΙΚΑΙΑ ΚΑΙ ΡΤΘΜΙΕΙ ΓΙΑ ΤΝΔΕΗ ΣΟ INTRANET ΣΟΤ ΕΚΕΣΑ-ΙΣΧΗΔ

Προτεινόμενεσ αςκιςεισ απο το Βιβλίο με τίτλο

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ

Transcript:

Κρυπτογραφία: Εφαρμογζσ Hash Διαφάνειεσ: Δ. Ηινδροσ ΘΜΜΤ ΕΜΠ

τόχοι του ςθμερινοφ μακιματοσ Επεκτάςεισ του collision resistance Δεςμεφςεισ / hiding / binding Αλάτι md5, sha1, sha256, bcrypt, scrypt Proof of work Δζντρα Merkle Αποκικευςθ κωδικϊν πρόςβαςθσ Timestamping

One-way functions y = h(x) x h y Εφκολο Δφςκολο

Hash functions τθν κρυπτογραφία, τα hash functions πρζπει να ζχουν δυςκολία αντιςτροφισ h(x) = y μπορεί να υπολογιςτεί πολυωνυμικά Σο αντίςτροφο όμωσ όχι

Collision resistance Preimage: Δεδομζνου y, είναι δφςκολο να βρεκεί x που y = h(x) 2 nd preimage: Δεδομζνου x, είναι δφςκολο να βρεκεί x' που h(x) = h(x') Είναι δφςκολο ν'αλλάξει το x χωρίσ ν'αλλάξει το y Collision resistance: Είναι δφςκολο να βρεκοφν x 1 και x 2 τζτοια ϊςτε h(x 1 ) = h(x 2 )

Collision resistance Perturbation: Είναι δφςκολο να βρεκοφν x, x' τζτοια ϊςτε: y = H(x) y' = H(x') Hamming(y, y') < ε Range: Δεδομζνου y και ε, είναι δφςκολο να βρεκεί x τζτοιο ϊςτε y H(x) < y + ε. Για y = 0, αναηθτείται x τζτοιο ϊςτε H(x) < ε.

md5 Δθμοφιλισ μζκοδοσ hashing {0, 1}* {0, 1} 128 Δεν είναι κρυπτογραφικά αςφαλζσ Γνωρίηουμε collisions Μην το χρθςιμοποιείτε για κρυπτογραφικζσ εφαρμογζσ

Παράδειγμα md5 md5('hello world') = 3e25960a79dbc69b674cd4ec67a72c62

md5 collision md5( ) = md5( )

sha1 Δθμοφιλισ μζκοδοσ hashing {0, 1}* {0, 1} 160 Δεν είναι κρυπτογραφικά αςφαλζσ Δεν γνωρίηουμε collisions Όμωσ ζχουμε free start collisions (8 Οκτωβρίου 2015) Γνωρίηουμε επίκεςθ πολυπλοκότθτασ 2 61 Μην το χρθςιμοποιείτε για κρυπτογραφικζσ εφαρμογζσ

Παράδειγμα sha1 sha1('hello world') = 7b502c3a1f48c8609ae212cdfb639dee39673f5e

sha2 Μετεξζλιξθ του sha1 Θεωρείται αςφαλζσ για κρυπτογραφικζσ εφαρμογζσ SHA224: {0, 1}* {0, 1} 224 SHA256: {0, 1}* {0, 1} 256 SHA384: {0, 1}* {0, 1} 384 SHA512: {0, 1}* {0, 1} 512

Παράδειγμα sha256 sha256('hello world') = 64ec88ca00b268e5ba1a35678a1b5316d212f4f3 66b2477232534a8aeca37f3c

Χρθςιμοποιϊντασ τθ βιβλιοκικθ OpenSSL

«Αντιςτρζφοντασ» ζνα hash Σα hashes είναι ςχεδιαςμζνα να μθν είναι αντιςτρζψιμα υνεπϊσ θ αντιςτροφι μπορεί να γίνει μόνο χρθςιμοποιϊντασ brute force Δοκιμάηουμε όλα τα πικανά strings μικουσ 0, 1, 2, 3, κλπ. από ζνα δεδομζνο αλφάβθτο Δοκιμάηουμε λζξεισ από ζνα λεξικό

Dictionary attack ςε hash foreach (word in dictionary) { if (SHA256(word) == c) { return word; } }

Brute-force attack ςε hash Σ = {'a', 'b',, 'z'}; numdigits = 0; m = ""; while (SHA256(m)!= c) { try { m = increment(m, Σ, numdigits); } catch (OutOfBoundsException e) { ++numdigits; m = repeat(σ[0], numdigits); } } return m;

χιματα δζςμευςθσ Θ Alice κζλει να δεςμευτεί ςε κάποια τιμι b Θ Alice και ο Bob δεν εμπιςτεφονται ο ζνασ τον άλλον Binding: Ο Bob κζλει να γνωρίηει ότι θ Alice δεν κα αλλάξει τθ γνϊμθ τθσ για το b Hiding: Θ Alice δεν κζλει ακόμα να αποκαλφψει τθν τιμι τθσ τϊρα, αλλά αργότερα

χιματα δζςμευςθσ Δφο ςτάδια: Φάςθ δζςμευςθσ: Θ Alice διαλζγει και δεςμεφεται ςε μία τιμι τζλνει ζνα μυςτικό ςτο Bob Hiding: Ο Bob δεν μπορεί να χρθςιμοποιιςει το μυςτικό για να βρει τθν τιμι ςτθν οποία ζχει δεςμευκεί θ Alice Φάςθ αποκάλυψθσ: Ο Bob μαθαίνει τθν αρχικι τιμι ςτθν οποία είχε δεςμευκεί θ Alice Binding: Ο Bob επιβεβαιϊνει ότι θ Alice δεν άλλαξε τθν τιμι τθσ

Απλι δζςμευςθ με hashes Φάςθ δζςμευςθσ: Θ Alice υπολογίηει το c = H(b) τζλνει το c ςτον Bob. Ο Bob βλζπει το c. Λόγω του ότι θ H είναι κρυπτογραφικά αςφαλισ hash function, ο Bob δεν μπορεί να επιςτρζψει ςτο b. Φάςθ αποκάλυψθσ: Θ Alice ςτζλνει το b ςτον Bob Ο Bob ελζγχει ότι H(b) = c.

Φάςθ δζςμευςθσ B C c = H(B) Alice Bo b

Φάςθ αποκάλυψθσ B H(B) = C Alice Bo b

Είναι πραγματικά hiding;

Σι γίνεται αν ο Bob μπορεί να μαντζψει το b? Ζςτω ότι οι πικανζσ τιμζσ του b είναι 0 και 1 Ο Bob μπορεί να δοκιμάςει αυτζσ τισ τιμζσ: H(0) = c? H(1) = c? Ζτςι μπορεί να αποκαλφψει το b Πϊσ μποροφμε να αμυνκοφμε ςε αυτό;

Αλάτι (salt) Θ Alice διαλζγει ζνα μυςτικό k Τπολογίηει το c = H(k b) τζλνει ςτον Bob το c τθν αποκάλυψθ, ςτζλνει το k και το b Σο k ονομάηεται αλάτι

Φάςθ δζςμευςθσ (commit) B C c = H(K B) Alice Bo b

Φάςθ αποκάλυψθσ (reveal) B, K c = H(K B) Alice Bo b

Ρίψθ νομίςματοσ Θ Alice και ο Bob κζλουν να παίξουν κορόναγράμματα Όμωσ είναι μακριά Δεν εμπιςτεφονται ο ζνασ τον άλλον Πϊσ κα μποροφςαν να παίξουν; Δε κα μποροφςε απλά θ Alice να εμπιςτευκεί τον Bob να ρίξει ζνα φυςικό νόμιςμα και να τθσ πει τι ζφερε!

Ρίψθ νομίςματοσ Ρίψθ νομίςματοσ: Θζλουμε να δθμιουργιςουμε πικανότθτα 50% κζρδουσ για τθν Alice και 50% για τον Bob Θ Alice διαλζγει ζναν αρικμό A ςτο {0, 1} Ο Bob διαλζγει ζναν αρικμό B ςτο {0, 1} Αν A B = 0, τότε κερδίηει θ Alice 00, 11: Πικανότθτα 50% Αν A B = 1, τότε κερδίηει ο Bob 01, 10: Πικανότθτα 50%

Ρίψθ νομίςματοσ Όμωσ ποιο κα αποκαλυφκεί πρϊτα; Σο A ι το B; Αν θ Alice αποκαλφψει πρϊτθ το Α, τότε ο Bob μπορεί να αλλάξει τθν επιλογι του Β ϊςτε να κερδίςει

Ορκι ρίψθ νομίςματοσ Θ Alice διαλζγει ζναν αρικμό a ςτο {0, 1} Θ Alice δεςμεφεται ςτο A με δζςμευςθ X και αλάτι K A X = SHA256(A K A ) Ο Bob διαλζγει ζναν αρικμό b ςτο {0, 1} Ο Bob δεςμεφεται ςτο B με δζςμευςθ Y και αλάτι KB Y = SHA256(B K B ) Ανταλλάςςουν τα X και Y με οποιαδιποτε ςειρά Αποκαλφπτουν τα A και Β με οποιαδιποτε ςειρά

Ρίψθ νομίςματοσ: Δζςμευςθ A B X Y Alice X = H(A K A ) BOB Y = H(B K B )

Ρίψθ νομίςματοσ: Αποκάλυψθ A, K A B B, K B Alice BOB

Ρίψθ νομίςματοσ Winner = A B 0 = Alice 1 = BOB

Ριψθ νομίςματοσ Τπάρχει πρόβλθμα αν θ Alice και ο Bob κζλουν να ςτοιχθματίςουν χριματα ςτο ποιοσ κα κερδίςει ςτθ ρίψθ;

Ριψθ νομίςματοσ Τπάρχει πρόβλθμα αν θ Alice και ο Bob κζλουν να ςτοιχθματίςουν χριματα ςτο ποιοσ κα κερδίςει ςτθ ρίψθ; Ναι - Όποιοσ χάςει μπορεί να αποχωρήςει χωρίσ να πλθρϊςει Θα λφςουμε αυτό το πρόβλθμα κρυπτογραφικά ςε επόμενο μάκθμα, αφότου μιλιςουμε για bitcoin

Timestamping Ζςτω ότι κζλουμε να εγγυθκοφμε ότι... Μία εφεφρεςθ δθμιουργικθκε πριν από κάποια ςυγκεκριμζνθ θμερομθνία Και από κάποιον ςυγκεκριμζνο εφευρζτθ Χωρίσ όμωσ να αποκαλυφκεί θ εφεφρεςθ Θ εφεφρεςθ περιγράφεται ςε ζνα κείμενο Πϊσ κα μποροφςε να γίνει κάτι τζτοιο;

Απόδειξθ copyright Παραδοςιακι μζκοδοσ: Δθμοςιεφω ζνα αναγραμματιςμό τθσ εφεφρεςθσ Νόμοσ του Hooke, 1660: "ceiiinosssttuv" ut tensio sic vis (όςο θ προζκταςθ, τόςθ και θ δφναμθ) φγχρονθ μζκοδοσ: Δημοςιεφω ζνα hash του κειμζνου που περιγράφει τθν εφεφρεςθ και τον δθμιουργό τθσ. Για επιβεβαίωςθ, δθμοςιεφω το αρχικό κείμενο Θ αρχαιότερθ δθμοςίευςθ hash νικά Ιδζα ιδζα με το commit / reveal

Δθμοςιεφοντασ Ποφ μπορεί να γίνει μία τζτοια δθμοςίευςθ; ε κάποια ζμπιςτθ εφθμερίδα π.χ. NY Times Πιο εφκολα, ςτο bitcoin blockchain Θα μελετιςουμε απόδειξθ copyright μζςω bitcoin αργότερα μζςα ςτο εξάμθνο

Timestamping Ζςτω ότι κζλουμε να εγγυθκοφμε ότι... Ζνα ςυγκεκριμζνο hash δθμιουργικθκε μετά από κάποια θμερομθνία Πϊσ κα μποροφςε να γίνει κάτι τζτοιο;

Timestamping το preimage του hash περιλαμβάνω κάποια πλθροφορία που δεν ιταν γνωςτι μζχρι εκείνθ τθν θμερομθνία π.χ. H("The Times 03/Jan/2009 Chancellor on brink of second bailout for banks" data)

Άςκθςθ Να αντιςτρζψετε ζνα SHA256 Δεδομζνου y, βρείτε ζνα x τζτοιο ϊςτε H(x) = y Μα αυτό είναι αδφνατο?!?

Διάλλειμα

Αςφαλισ αποκικευςθ κωδικϊν Ζχουμε μία εφαρμογι με χριςτεσ, π.χ. web εφαρμογι ι online video game Θζλουμε να αποκθκεφςουμε κωδικοφσ πρόςβαςθσ χρθςτϊν Μποροφμε να τουσ αποκθκεφςουμε ςαν plaintext ςε μία βάςθ δεδομζνων Σι πρόβλθμα ζχει αυτό;

Αςφαλισ αποκικευςθ κωδικϊν Αποκικευςθ ςε plaintext: Αν κλαπεί θ βάςθ (λόγω παραβίαςθσ των ςυςτθμάτων), τότε ο κφτθσ αποκτά πρόςβαςθ ςε όλουσ τουσ κωδικοφσ Μποροφμε να τουσ κρυπτογραφήςουμε;

Αςφαλισ αποκικευςθ κωδικϊν Αποκικευςθ κρυπτογραφθμζνα: Πρζπει να ζχουμε το κλειδί για να τουσ αποκρυπτογραφήςουμε ϊςτε να επιτρζψουμε logins Σο κλειδί μπορεί να υποκλαπεί επίςθσ! υνεπϊσ είναι κακι ιδζα

Αςφαλισ αποκικευςθ κωδικϊν Δθμιουργία λογαριαςμοφ: Ο χριςτθσ ςτζλνει το password Αποκθκεφουμε το c = H(password) Login: Ο χριςτθσ ςτζλνει το password Τπολογίηουμε το H(password) ξανά Σο ςυγκρίνουμε με το c αποκθκευμζνο ςτθ βάςθ

Δθμιουργία λογαριαςμοφ "secret" "secret" H 2bb80d53...

Login "wrongsecret" "wrongsecret" H a9be4c8b ==? 2bb80d53...

Αςφαλισ αποκικευςθ κωδικϊν Θα ιταν ςωςτό να ηθτοφςαμε από το χριςτθ να κάνει hash και να μασ ςτείλει τον κωδικό του ςτο login;

Αςφαλισ αποκικευςθ κωδικϊν Θα ιταν ςωςτό να ηθτοφςαμε από το χριςτθ να κάνει hash και να μασ ςτείλει τον κωδικό του ςτο login; Όχι - τότε θ υποκλοπι του hash είναι ιςοδφναμθ με κωδικό, αποκτά κανείσ πρόςβαςθ

πάςιμο πολλϊν hashes Ζςτω ότι κζλουμε να αντιςτρζψουμε πολλά hashes που ζχουμε υποκλζψει Σι κα μποροφςαμε να κάνουμε;

πάςιμο πολλϊν hashes Ζςτω ότι κζλουμε να αντιςτρζψουμε πολλά hashes που ζχουμε υποκλζψει Σι κα μποροφςαμε να κάνουμε; Lookup table Μόνιμθ αποκικευςθ όλων των H(x) για τα υποψιφια x (π.χ. ζωσ 6 χαρακτιρεσ) Κάκε φορά που κζλουμε να ςπάςουμε ζνα hash, κοιτάμε αν υπάρχει αποκθκευμζνο

πάςιμο πολλϊν hashes Rainbow table Μόνιμθ αποκικευςθ όλων των H(x) για τα υποψιφια x (π.χ. ζωσ 6 χαρακτιρεσ) "υμπιεςμζνθ" μορφι αποκικευςθσ Αποκθκεφει ζναν αντιπρόςωπο για κάκε ςειρά από hashes Καλι ιςορροπία ανάμεςα ςε χϊρο και χρόνο

Αςφαλισ αποκικευςθ κωδικϊν Σο απλό hashing δεν είναι αρκετό! Διαρρζουν πλθροφορίεσ όπωσ: Ζχει θ Alice τον ίδιο κωδικό με τον Bob? Ποιοσ χριςτθσ ζχει τον πιο ςυνθκιςμζνο κωδικό; Θ δθμιουργία ενόσ {lookup,rainbow} table επιτρζπει ςε ζναν επιτικζμενο να επιτεκεί ςε πολλζσ υπθρεςίεσ ταυτόχρονα

Αλάτι ςτθν αποκικευςθ κωδικϊν Προςκζτουμε μία τυχαία τιμι K ςτθν αρχι του κωδικοφ τθν οποία ονομάηουμε αλάτι Αποφεφγουμε τα lookup tables και τα rainbow tables Χριςιμο ςε περίπτωςθ που υποκλαπεί θ βάςθ δεδομζνων μασ και κάποιοσ κζλει να ςπάςει όλουσ τουσ κωδικοφσ

Αλάτι ςτθν αποκικευςθ κωδικϊν Είναι αρκετό να ζχουμε αλάτι κοινό για όλουσ τουσ χριςτεσ μασ; π.χ. κα μποροφςε το gmail να χρθςιμοποιεί κάτι τζτοιο; c = H("gmail.comGOOGLEsecret" password)

Αλάτι ςτθν αποκικευςθ κωδικϊν Είναι αρκετό να ζχουμε αλάτι κοινό για όλουσ τουσ χριςτεσ μασ; Σο κοινό αλάτι μασ προςτατεφει από επικζςεισ κοινζσ με άλλεσ υπθρεςίεσ Δεν μπορεί κανείσ εφκολα να αποφανκεί αν ο χριςτθσ ζχει τον ίδιο κωδικό ςτο Facebook και ςτο Gmail αν το Facebook και το Gmail χρθςιμοποιοφν από ζνα διαφορετικό αλάτι Όμωσ αυτό δεν είναι αρκετό! (Γιατί;)

ωςτι αποκικευςθ κωδικϊν Δθμιουργία λογαριαςμοφ Δθμιουργοφμε αλάτι K διαφορετικό για κάθε χρήςτη Αποκθκεφουμε το K ςε plaintext Αποκθκεφουμε το H(K password) Log in Τπολογίηουμε το H(K password) και το ςυγκρίνουμε με το αποκθκευμζνο

ωςτι αποκικευςθ κωδικϊν Ζτςι αναγκάηουμε τον επιτικζμενο να κάνει brute force για κάθε κωδικό ςτθ βάςθ δεδομζνων μασ Σο αλάτι πρζπει να είναι μεγάλο Διαφορετικά ο επιτικζμενοσ μπορεί να δθμιουργιςει {lookup,rainbow} tables για κάκε πικανό αλάτι

bcrypt Θ bcrypt είναι μία μζκοδοσ για αποκικευςθ κωδικϊν πρόςβαςθσ Προςφζρει δφο ςυναρτιςεισ: 1. password_hash(password, difficulty) 2. password_verify(hash, password) Προςκζτει αυτόματα αλάτι Ζχει παραμετροποιήςιμη δυςκολία (χρόνοσ που χρειάηεται για να εκτελεςτεί) Ιςορροπία ανάμεςα ςτθ δυςκολία του αντιπάλου και ςτθ δικι μασ ευκολία Προτεινόμενη μζθοδοσ

scrypt Παρόμοια λογικι με τθν bcrypt Επιπλζον, αποτρζπει τθ δθμιουργία ειδικοφ hardware που μπορεί να "ςπάςει" κωδικοφσ με μαηικι παραλλθλοποίθςθ Απαιτεί μεγάλεσ ποςότθτεσ μνήμησ για να τρζξει υνεπϊσ δεν παραλλθλοποιείται εφκολα ςε hardware Προτεινόμενη μζθοδοσ

Proof of work Κρυπτογραφικό primitive που μασ επιτρζπει να αποδείξουμε ότι ξοδζψαμε κφκλουσ CPU Θ Alice κζλει να βεβαιωκεί ότι ο Bob κα αφιερϊςει οριςμζνουσ κφκλουσ υπολογιςτικισ δφναμθσ μόνο για εκείνθ Πϊσ κα μποροφςε να το κάνει αυτό;

Proof of work Θ Alice παράγει ζνα τυχαίο αλάτι K, αρκετά μεγάλο ϊςτε να πιςτεφει ότι δεν ζχει επαναχρθςιμοποιθκεί ςε proof of work (π.χ. 128 bits). τζλνει ςτον Bob το K και μία παράμετρο ςτόχου ε που ορίηει πόςθ δουλειά κζλει να κάνει

Proof of work Ο Bob υπολογίηει ζνα x τζτοιο ϊςτε: H(K x) < ε Σο x αυτό ονομάηεται nonce Ο Bob ςτζλνει ςτθν Alice το x Θ Alice ελζγχει ότι H(K x) < ε

Proof of work: Αίτθςθ Κ, ε

Proof of work: Εργαςία H(K x) < ε?

Proof of work: Απόδειξθ x H(K x) < ε?

Proof of work do { x = rand(); } while (H(K x) >= ε); return x;

Proof of work Κ, ε x H(K x) < ε?

Proof of work Χρθςιμοποιϊ hash function H με πεδίο τιμϊν {0, 1} n Ζςτω X i ανεξάρτθτεσ τυχαίεσ μεταβλθτζσ με ομοιόμορφθ κατανομι ςτο {0, 1} m, οι μεταβλθτζσ preimage που δοκιμάηει ο Bob Ζςτω Y i = H(K X i ) Τποκζτουμε ότι Y i ανεξάρτητεσ και ομοιόμορφα κατανεμθμζνεσ ςτο {0, 1} n Ο Bob κζλει Y i < ε ζτςι ϊςτε να πετφχει το Proof of work, ζςτω i = w όταν το πετυχαίνει.

Proof of work do { x = rand(); } while (H(K x) >= ε); return x; X i ~ {0, 1} m Y i ~ {0, 1} n Πόςεσ φορζσ (w) θα τρζξει η επανάληψη;

Proof of work Για δεδομζνο i: P(Y i < ε) = ε / 2 n Για i j και αρκετά μεγάλο m: P(Y i = Y j ) 0 Y i, Y j ανεξάρτθτεσ P(w λ) = λε / 2 n E(w) = 2 n / ε

Proof of work θμαντικι εφαρμογι ςτο bitcoin Θα επανζλκουμε ςε επόμενο μάκθμα...

Merkle δζντρα Δομι δεδομζνων που μασ επιτρζπει να κάνουμε hashing ςε πολλά μικρά data blocks Δυαδικό δζντρο Κάκε φφλλο είναι το hash κάποιων δεδομζνων Ο γονιόσ είναι το hash των ςυνενωμζνων παιδιϊν του Εφαρμογι ςε BitTorrent, bitcoin, κρυπτογράφθςθ δίςκου...

Image: David Göthberg

root 0 1 00 01 10 11 000 001 010 011 100 101 110 111 L1 L2 L3 L4 L5 L6 L7 L8

Merkle δζντρα Χριςιμα για πιςτοποίθςθ περιεχομζνου Ζςτω ότι εμπιςτευόμαςτε πωσ θ ρίηα είναι ςωςτι Σότε μπορεί κανείσ να αποδείξει ότι ζνα ςυγκεκριμζνο περιεχόμενο είναι μζροσ του δζντρου

Απόδειξθ ςε Merkle δζντρα Θ Alice (Prover) κζλει να αποδείξει ςτον Bob (Verifier) ότι ζνα ςυγκεκριμζνο data block L ζχει περιλθφκεί ςε ζνα δζντρο Ο Bob γνωρίηει τθ ρίηα του δζντρου Θ Alice αποκαλφπτει ςτον Bob: Σο L Σα hashes των αδερφϊν ςτο μονοπάτι που οδθγεί από το L ςτθ ρίηα, S1, S2, S3,, Sn Σο μονοπάτι (π.χ. αριςτερά - δεξιά - δεξιά - δεξιά)

Απόδειξθ ςε Merkle δζντρα Ο Bob επιβεβαιϊνει: Τπολογίηει: H(L) H(H(L) S1) - αριςτερά H(S2 H(H(L) S1)) - δεξιά κλπ. Βρίςκει τελικά το hash τθσ ρίηασ Ελζγχει αν είναι αυτό που ανζμενε Μζγεκοσ απόδειξθσ: Λογαρικμικό!

root a35678 0 S3 94287 575789 S2 01 10 11 3412b 000 001 010 S1 100 101 110 111 L1 L2 L3 L4 L5 L6 L7 L8

Χριςθ Merkle Trees ςτο BitTorrent το BitTorrent, ο κάκε χριςτθσ εμπιςτεφεται τον tracker Αρχικά ςυνδζεται με τον tracker και κατεβάηει το merkle tree root τθ ςυνζχεια μπορεί να επιβεβαιϊςει ότι οποιοδιποτε κομμάτι του torrent που κατεβάηει από άλλουσ είναι ζγκυρο

Μάκαμε Επεκτάςεισ του collision resistance Δεςμεφςεισ / hiding / binding Αλάτι md5, sha1, sha256, bcrypt, scrypt Proof of work Δζντρα Merkle Αποκικευςθ κωδικϊν πρόςβαςθσ Timestamping