Κρυπτογραφία
Κωδικός | 3.4.3327.9 |
---|---|
Εξάμηνο | 9o |
Ροή | Λ - Λογισμικό Η/Υ |
Κατηγορία | Κατ' επιλογήν υποχρεωτικό |
Ώρες Διδασκαλίας - Ώρες Εργαστηρίου | 3 - 1 |
Διδάσκοντες | Αριστείδης Παγουρτζής, Πέτρος Ποτίκας (Ε.ΔΙ.Π.) |
Σύνδεσμοι | Helios, Ιστοσελίδα Μαθήματος |
Πλατφόρμα Διδασκαλίας |
Τμήμα 1:
Webex
|
Περιγραφή
Κλασική κρυπτογραφία: κρυπτοσυστήματα αντικατάστασης, Καίσαρα, Vigenere,
μέθοδοι κρυπτανάλυσης. Τέλεια μυστικότητα (Shannon), one-time
pad. Σημασιολογική ασφάλεια, CPA, CCA, παίγνια ασφάλειας και κρυπτογραφικές
αναγωγές. Συμμετρική κρυπτογραφία. Ψευδοτυχαιότητα, κρυπτοσυστήματα ροής,
γεννήτρια Blum-Blum-Shub, γεννήτρια RC4, καταχωρητές γραμμικής ανάδρασης
(LFSR). Κρυπτοσυστήματα τμήματος: δίκτυα Feistel, DES, AES. Τρόποι
λειτουργίας. Συναρτήσεις σύνοψης ή κατακερματισμού (hash functions):
οικογένεια SHA, μέθοδος επέκτασης Merkle-Damgard, δένδρα Merkle,
χρονοσήμανση, salt. Κώδικες πιστοποίησης γνησιότητας (MACs). Στοιχεία
θεωρίας αριθμών: διαιρετότητα, αριθμητική υπολοίπων, τετραγωνικά υπόλοιπα,
Κινέζικο Θεώρημα Υπολοίπων. Στοιχεία θεωρίας ομάδων, θεώρημα Lagrange,
συνάρτηση φ του Euler. Έλεγχος πρώτων αριθμών. Κρυπτογραφία δημοσίου
κλειδιού. Ανταλλαγή κλειδιού Diffie – Hellman. Κρυπτοσυστήματα RSA και
Rabin, επιθέσεις. Το πρόβλημα της παραγοντοποίησης, αλγόριθμοι rho και
Dixon. Το πρόβλημα του διακριτού λογαρίθμου, αλγόριθμος Shanks, ελλειπτικές
καμπύλες. Το κρυπτοσύστημα El Gamal. Ψηφιακές Υπογραφές: RSA, DSS, τυφλές
υπογραφές, αδιαμφισβήτητες υπογραφές. Κρυπτογραφικά πρωτόκολλα: διαμοιρασμός
μυστικού, σχήματα δέσμευσης, σχήματα αναγνώρισης. Αποδείξεις μηδενικής
γνώσης: Σ-πρωτόκολλα, μη διαλογικές αποδείξεις, witness indistinguishable
και witness hiding protocols. Στοιχεία θεωρίας πολυπλοκότητας, μονόδρομες
συναρτήσεις, η κλάση UP. Εφαρμογές και προχωρημένα θέματα: ζεύξεις
(pairings), ηλεκτρονικές ψηφοφορίες, ψηφιακό χρήμα, Bitcoin, blockchain,
consensus.\\
Το μάθημα συμπληρώνεται με γραπτές και εργαστηριακές ασκήσεις και εργασία
(υπό μορφή project) με παρουσίαση και συγγραφή αναφοράς. \\
Εργαστήριο: ασκήσεις σχεδιασμού και υλοποίησης κρυπτογραφικών αλγορίθμων και
πρωτοκόλλων σε C++ ή άλλη κατάλληλη γλώσσα προγραμματισμού.