Στοιχεία Θεωρίας Αριθμών Και Εφαρμογές Στην Κρυπτογραφία. Linux Random Number Generator

Σχετικά έγγραφα
Κρυπτογραφία. Εργαστηριακό μάθημα 5 Stream ciphers Κρυπτανάλυση με τον αλγόριθμο Berlekamp-Massey

Κρυπτογραφία. Κρυπτοσυστήματα ροής. Πέτρος Ποτίκας. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Εισαγωγή στον Προγραμματισμό

Ψευδο-τυχαιότητα. Αριθµοί και String. Μονόδροµες Συναρτήσεις 30/05/2013

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property)

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτογραφικές Συναρτήσεις. Χρήστος Ξενάκης

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 5: Εισαγωγή στην Προσομοίωση

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Γραφικά υπολογιστών Εργαστήριο 2 Παιχνίδια μαντεύματος με τυχαίους αριθμούς και loops

Η άσκηση μπορεί να γίνει με συνεργασία το πολύ δυο φοιτητών, οι οποίοι θα λάβουν τον ίδιο βαθμό στην εργασία.

Ενδεικτικές Ερωτήσεις Θεωρίας

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Εφαρμοσμένη Κρυπτογραφία Ι

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

Τηλεπικοινωνιακά Συστήματα ΙΙ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ΛΟΓΙΣΜΙΚΟ EXTEND. 1 ο εργαστήριο Διοίκησης και Παραγωγής Έργων

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

ΕΙΣΑΓΩΓΗ Η μελέτη διαφόρων στοχαστικών φαινομένων μπορεί γενικά να γίνει χρησιμοποιώντας

Κρυπτογραφία. Ψευδοτυχαιότητα - Κρυπτοσυστήματα ροής. Άρης Παγουρτζής - Πέτρος Ποτίκας

Κρυπτογραφία. Συναρτήσεις μονής κατεύθυνσης - Συναρτήσεις κατακερματισμού. Άρης Παγουρτζής - Πέτρος Ποτίκας

Αναδρομικός αλγόριθμος

PSEUDORANDOM GENERATORS- PREDICATES & ZK PROOFS

Αλγόριθμοι και Πολυπλοκότητα

Θέματα Συστημάτων Πολυμέσων

Ελίνα Μακρή

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Κρυπτογραφία. Ψευδοτυχαιότητα - Κρυπτοσυστήματα ροής. Άρης Παγουρτζής - Πέτρος Ποτίκας

Κατανεμημένα Συστήματα

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

Σχεδίαση και Ανάλυση Αλγορίθμων

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

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

Προσομοίωση Συστημάτων

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Κρυπτογραφία. Ψευδοτυχαιότητα - Κρυπτοσυστήματα ροής. Άρης Παγουρτζής - Πέτρος Ποτίκας

Συνοπτική Μεθοδολογία Ασκήσεων IP Fragmentation. Ασκήσεις στο IP Fragmentation

Ανάλυση Δεδομένων με χρήση του Στατιστικού Πακέτου R

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

Πιθανοτικός Συμπερασμός: Πού βρίσκομαι στο πλέγμα; [ΠΛΗ 513] Αυτόνομοι πράκτορες - Project Εξαμήνου ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ

Παρουσίαση 2 η : Αρχές εκτίμησης παραμέτρων Μέρος 1 ο

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

Κρυπτογραφία. Εργαστηριακό μάθημα 9 (Πρωτόκολλα πιστοποίησης ταυτότητας μηδενικής γνώσης Fiat-Shamir)

Blum Blum Shub Generator

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Κρυπτογραφικά Πρωτόκολλα

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ.

Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ με το EXCEL

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Περιοχή Στρατοπέδου Γρεβενά Γ.Καραμανώλας r

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

Προγραμματισμός ΙI (Θ)

ΚΕΦΑΛΑΙΟ Μηχανική Μάθηση

Εισαγωγή στον Προγραμματισμό

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αρχές κωδικοποίησης. Τεχνολογία Πολυµέσων 08-1

1. Ποιους μαθησιακούς στόχους θα προσδιορίζατε στα πλαίσια της διδακτικής δραστηριότητας;

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Σχεδίαση & Ανάλυση Αλγορίθμων

Κρυπτογραφία. Hash functions. Πέτρος Ποτίκας. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Τυχαίοι Αριθμοί. (Random Numbers) Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1

Προσομοίωση Συστημάτων

Λειτουργικά Συστήματα (ΗΥ321)

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

ΦΥΛΛΟ ΠΛΗΡΟΦΟΡΙΩΝ. Μονάδες μέτρησης χωρητικότητας μνήμης - Η περιφερειακή μνήμη

ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ. Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Διαλογικά Συσ τήματα Αποδείξεων Διαλογικά Συστήματα Αποδείξεων Αντώνης Αντωνόπουλος Κρυπτογραφία & Πολυπλοκότητα 17/2/2012

Εισαγωγή στην επιστήμη των υπολογιστών

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Transcript:

Στοιχεία Θεωρίας Αριθμών Και Εφαρμογές Στην Κρυπτογραφία Linux Random Number Generator Επιμέλεια Διαφανειών : Ι. Κατσάτος ΦΕΒΡΟΥΑΡΙΟΣ 2013 ΑΘΗΝΑ

Ορισμός: Τυχαίοι Αριθμοί Συχνά στην καθομιλουμένη, ο κόσμος χρησιμοποιεί τον όρο τυχαίος ενώ στην πραγματικότητα εννοεί αυθαίρετος. Όταν ζητάμε έναν αυθαίρετο αριθμό σχεδόν κάθε αριθμός μας κάνει. Σε αντιπαραβολή, ένας τυχαίος αριθμός είναι μια οριζόμενη με ακρίβεια μαθηματική έννοια: κάθε αριθμός θα πρέπει να έχει την ίδια πιθανότητα εμφάνισης.

Το Πρόβλημα Έστω a και b με a < b δύο ακέραιοι αριθμοί. Όπως ξέρουμε η γραμμή κώδικα σε γλώσσα C που ακολουθεί, επιστρέφει έναν ακέραιο αριθμό (y) που επιλέγεται τυχαία στο διάστημα a y b. y = rand() % b + a Ερώτημα: Είναι δυνατό ένας αλγόριθμος να παράγει τυχαίους αριθμούς;

Το Πρόβλημα Απάντηση: ΌΧΙ! Δεν υπάρχει τρόπος να παράγουμε, πραγματικά τυχαίους αριθμούς σε έναν υπολογιστή (ή σε οποιαδήποτε ντετερμινιστική συσκευή). Το καλύτερο που μπορούμε να κάνουμε είναι να παράγουμε ψευδοτυχαίους αριθμούς: δεν είναι πραγματικά τυχαίοι αριθμοί, αλλά μπορούν να χρησιμεύσουν σαν προσεγγίσεις στους τυχαίους. Για το λόγο αυτό χρησιμοποιούνται γεννήτριες ψευδοτυχαίων αριθμών.

Εφαρμογές Με Τυχαίους Αριθμόυς Σε παιχνίδια που εμπεριέχουν τύχη. Για παραγωγή passwords. Η τυχαιότητα είναι ένας βασικός πόρος για την Κρυπτογραφία και συνεπώς οι γεννήτριες ψευδοτυχαίων αριθμών είναι συστατικά κρίσιμης σημασίας για όλα σχεδόν τα συστήματα κρυπτογραφίας.

Linux Random Number Generator (LRNG) Ιδιότητες γεννητριών ψευδοτυχαίων αριθμών Βασική δομή της LRNG Πως εισάγεται η τυχαιότητα; Συλλογή Εντροπίας Δεξαμενές και Μετρητές Εκτίμησης Εντροπίας Ενημέρωση των δεξαμενών Εντροπίας Εξαγωγή τυχαίων Bits Παραβίαση της Προς Τα Εμπρός Ασφάλειας

Ιδιότητες Γεννητριών Ψευδοτυχαίων Αριθμών Ψευδοτυχαιότητα: Η έξοδος της γεννήτριας πρέπει να φαίνεται τυχαία σε έναν εξωτερικό παρατηρητή. Forward Security: Ένας αντίπαλος που μαθαίνει την εσωτερική κατάσταση της γεννήτριας σε μία συγκεκριμένη χρονική στιγμή δεν μπορεί να μάθει τίποτα για τις προηγούμενης εξόδους της γεννήτριας. Backward Security: Ένας αντίπαλος που μαθαίνει την εσωτερική κατάσταση της γεννήτριας σε μία συγκεκριμένη χρονική στιγμή δεν μπορεί να μάθει τίποτα για τις μελλοντικές εξόδους της γεννήτριας

Η Βασική Δομή Της LRNG Η LRNG μπορεί να περιγραφεί από τρία ασύγχρονα συστατικά: Μετατροπή των System Events σε bits αναπαράστασης της υποκείμενης Εντροπίας. Προσθήκη των bits Εντροπίας στην δεξαμενή Εντροπίας της γεννήτριας. Έξοδος τυχαίων bits.

Η Βασική Δομή Της LRNG

Πως εισάγεται η τυχαιότητα; Η εντροπία προστίθεται στην γεννήτρια από τέσσερις διαφορετικές φυσικές πηγές: Δραστηριότητα ποντικιού Δραστηριότητα πληκτρολογίου Λειτουργίες Ι/Ο των δίσκων Διακοπές του συστήματος

Συλλογή Εντροπίας Κάθε System Event παράγει δύο 32-bits λέξεις οι οποίες εισάγονται στην δεξαμενή Εντροπίας της γεννήτριας. Η πρώτη λέξη αναπαριστά τον χρονισμό του γεγονότος (π.χ milliseconds από την ώρα που εκκίνησε την λειτουργία ο Η/Υ). Η δεύτερη λέξη αναπαριστά τον τύπο του Event ο οποίος υπολογίζεται διαφορετικά για την κάθε φυσική πηγή εντροπίας.

Συλλογή Εντροπίας

Δεξαμενές Και Μετρητές Εντροπίας Η εσωτερική κατάσταση της γεννήτριας φυλάσσεται σε τρείς δεξαμενές εντροπίας: Primary με μέγεθος 512 Bytes Secondary με μέγεθος 128 Bytes Urandom με μέγεθος 128 Bytes

Δεξαμενές Και Μετρητές Εντροπίας Κάθε δεξαμενή έχει τον δικό της Μετρητή Εκτίμησης Εντροπίας (ΜΕΕ). Οι ΜΕΕ είναι ακέραιες τιμές μεταξύ του μηδενός και του μεγέθους της δεξαμενής, σε bits, οι οποίοι δείχνουν την τρέχουσα εντροπία της εκάστοτε δεξαμενής. Οι ΜΕΕ μειώνονται ανάλογα με τον αριθμό των bits που εξάγονται από την δεξαμενή που περιγράφουν.

Δεξαμενές Και Μετρητές Εντροπίας Η αύξηση των ΜΕΕ είναι μια πιο πολύπλοκη διαδικασία. Αν τα bits που προστίθενται στην δεξαμενή προέρχονται από κάποια άλλη δεξαμενή, τότε ο ΜΕΕ της αρχικής δεξαμενής μειώνεται ανάλογα με τον αριθμό των μεταφερόμενων bits. Ενώ, ο ΜΕΕ της δεξαμενής προορισμού αυξάνεται αντίστοιχα με τον αριθμό των bits που προστίθενται σε αυτήν.

Δεξαμενές Και Μετρητές Εντροπίας

Δεξαμενές Και Μετρητές Εντροπίας

Ενημέρωση Των Δεξαμενών Εντροπίας Η προκαθορισμένη λειτουργία εισαγωγής Εντροπίας στην γεννήτρια είναι: Προσθήκη Εντροπίας στην primary δεξαμενή Αν η primary δεξαμενή είναι γεμάτη (δηλ ΜΕΕ 4096), η Εντροπία προστίθεται στην Secondary δεξαμενή. Όταν η Secondary δεξαμενή είναι γεμάτη, η διεργασία επιστρέφει στην primary δεξαμενή. Ποτέ δεν εισάγεται Εντροπία απευθείας στην δεξαμενή urandom.

Ενημέρωση Των Δεξαμενών Εντροπίας

Ενημέρωση Των Δεξαμενών Εντροπίας

Ενημέρωση Των Δεξαμενών Εντροπίας

Έξοδος Τυχαίων Bits Τυχαία bits εξάγονται από μια εκ των τριών δεξαμενών : urandom: όταν χρήστης χρησιμοποιεί την συσκευή /den/urandom και ο πυρήνας του λειτουργικού την κλήση get_random_bytes. Secondary: όταν ο χρήστης χρησιμοποιεί την συσκευή /dev/random ( ΜΜΕ μπλοκάρει έξοδο bits αν η δεξαμενή δεν έχει αρκετή εντροπία). Primary: όταν μια εκ των δύο άλλων δεν έχει αρκετή εντροπία.

Έξοδος Τυχαίων Bits Η διαδικασία εξαγωγής τυχαίων bits από την γεννήτρια περιλαμβάνει τρία βήματα: Ενημέρωση των δεδομένων της δεξαμενής Εξαγωγή τυχαίων Bits (10 Bytes) Μείωση του ΜΕΕ της δεξαμενής

Έξοδος Τυχαίων Bits Περιγραφή αλγορίθμου Extract, για urandom και secondary (μήκους 32 λέξεων): Εφαρμόζει την συνάρτηση Κατακερματισμού SHA-1 στις πρώτες 16 λέξεις. Προσθέτει μέρος (για την ακρίβεια την λέξη 0) του προηγούμενου αποτελέσματος (μήκους 5 λέξεων) στην θέση j. Εφαρμόζει την SHA-1 στις υπόλοιπες 16 λέξεις της δεξαμενής. Προσθέτει μέρος (τις λέξεις 2 και 4) του προηγούμενου αποτελέσματος στις θέσεις j-1 και j-2. Εφαρμόζει την συνάρτηση κατακερματισμού SHA-1 στις 16 λέξεις μέχρι της j-2.

Έξοδος Τυχαίων Bits Χρησιμοποιούμε το προηγούμενο αποτέλεσμα για να υπολογίσουμε την έξοδο ως εξής: Αναδιπλώνεται το αποτέλεσμα των 5 λέξεων (των 20 bytes), ώστε να προκύψει το αποτέλεσμα εξόδου των 10 bytes. Τα 10bytes εξόδου αντιγράφονται στον buffer προορισμού και ενημερώνεται ο αριθμός των bytes που πρέπει ακόμη να εξαχθούν. Ο βρόχος επαναλαμβάνεται μέχρι να εξαχθεί ο αριθμός των bytes που έχουν ζητηθεί.

Έξοδος Τυχαίων Bits

Έξοδος Τυχαίων Bits Παρουσιάζεται ο τρόπος με τον οποίον γίνεται η αναδίπλωση των 20 bytes σε 10 bytes.

Έξοδος Τυχαίων Bits

Παραβίαση Της Προς Τα Εμπρός Ασφάλειας

Παραβίαση Της Προς Τα Εμπρός Ασφάλειας