Πρόλογος 1 Μαθηµατικό υπόβαθρο 7 1 Μαθηµατικό υπόβαθρο 9 1.1 Η αριθµητική υπολοίπων.............. 10 1.2 Η πολυωνυµική αριθµητική............ 14 1.3 Θεωρία πεπερασµένων οµάδων και σωµάτων.... 17 1.4 Πράξεις σωµάτων.................. 22 1.5 Σώµατα µε τάξη πρώτου αριθµού.......... 23 1.6 Δυαδικά σώµατα................... 23 1.7 Σώµατα επέκτασης................. 26 1.8 Υποσώµατα σε ένα πεπερασµένο σώµα....... 27 1.9 Ο γενικευµένος αλγόριθµος του Ευκλείδη..... 28 1.10Το κινέζικο ϑεώρηµα υπολοίπων.......... 33 1.11Τετραγωνικά υπόλοιπα............... 34 1.12Η συνάρτηση του Euler............... 36 1.13Διακριτός Λογάριθµος................ 37 1.14Εύρεση τετραγωνικής ϱίζας σε πεπερασµένο σώµα 37 Θεωρία Πληροφοριών 39 2 Εντροπία 41 2.1 Η εντροπία ως µέτρο πληροφορίας......... 42 2.2 Ποσότητα πληροφορίας............... 43
2.2.1 Πιθανότητες που καλύπτουν τυχαίες µεταβλητές....................... 46 2.3 Βασικά ϑεωρήµατα................. 48 2.4 Πλεονασµός..................... 56 2.5 Δεσµευµένη εντροπία................ 57 2.5.1 Ο κανόνας της αλυσίδας για την αβεβαιότητα 59 2.5.2 Αµοιβαία πληροφορία............ 60 2.5.3 Εφαρµογές.................. 62 2.6 Σταθµική εντροπία................. 64 2.7 Συνεχής εντροπία.................. 69 2.8 Άλλοι ορισµοί της εντροπίας............ 70 3 Δίαυλοι 71 3.1 Κωδικοποίηση µε ϑόρυβο.............. 72 3.2 Δίαυλος πληροφορίας................ 72 3.3 Σχέσεις σε ένα δίαυλο................ 74 3.4 Δυαδικός συµµετρικός δίαυλος........... 75 3.5 Εφαρµογές..................... 77 3.6 Χωρητικότητα και ασάφεια διαύλου........ 78 3.7 Οµοιόµορφος δίαυλος................ 79 3.8 Χωρητικότητα ενός δυαδικού συµµετρικού διαύλου 80 Θεωρία Κωδίκων 83 4 Κώδικες 85 4.1 Δίκτυα επικοινωνίας................. 86 4.2 Κώδικες....................... 87 4.3 Το ϑεώρηµα Source Coding............ 97 4.4 Κωδικοποίηση σε διαύλους µε ϑόρυβο....... 99 4.5 Μέσο µήκος κώδικα................. 101 4.6 Απόδοση κώδικα.................. 102 4.7 Πρώτο ϑεώρηµα του Shannon........... 102 4.8 Ειδική περίπτωση αποδοτικού κώδικα........................ 104 4.9 Πιθανότητες λαθών................. 106 vi
5 Κώδικες ανίχνευσης διόρθωσης σϕάλµατος 111 5.1 Εισαγωγή...................... 112 5.2 Κωδικοποίηση µε επανάληψη........... 113 5.3 Κωδικοποίηση µε επιλογή κωδικών λέξεων........................ 114 5.4 Κώδικες ανίχνευσης διόρθωσης σϕάλµατος.... 117 5.5 Κώδικες ανίχνευσης σϕάλµατος.......... 119 5.5.1 Κώδικες διπλής διαφοράς.......... 119 5.5.2 Κώδικες ισοτιµίας.............. 120 5.6 Κώδικες διόρθωσης σϕάλµατος........... 122 5.6.1 Τριπλασιαστικοί κώδικες.......... 122 5.6.2 Ορθογώνιοι κώδικες............. 123 5.6.3 Τριγωνικοί κώδικες.............. 126 5.7 Κώδικας Hamming................. 128 6 Κώδικες µεταβλητού µήκους 133 6.1 Μέθοδοι κωδικοποίησης.............. 134 6.2 Μέθοδος Fano-Shannon.............. 134 6.3 Μέθοδος Huffman.................. 136 6.4 Κωδικοποίηση ανά οµάδες............. 143 7 Κώδικες συµπίεσης δεδοµένων 147 7.1 Εισαγωγή...................... 148 7.2 Αριθµητική κωδικοποίηση............. 150 7.3 Οι αλγόριθµοι Lempel-Ziv............. 152 7.3.1 Ο αλγόριθµος LZ77............. 154 7.3.2 Ο αλγόριθµος LZ78............. 156 8 Αλγεβρικοί κώδικες 161 8.1 Γραµµικοί κώδικες................. 162 8.1.1 Εισαγωγή................... 162 8.1.2 Κωδικοποίηση................ 164 8.1.3 Αποκωδικοποίηση.............. 167 8.2 Κυκλικοί κώδικες.................. 173 8.2.1 Γεννήτορας πίνακας και πίνακας ελέγχου.. 175 8.2.2 Κωδικοποίηση................ 180 vii
8.3 Αποκωδικοποίηση................. 182 Κρυπτογραφία 188 9 Κλασική κρυπτογραφία 191 9.1 Εισαγωγή...................... 192 9.2 Βασικοί ορισµοί................... 193 9.3 Κλασικά κρυπτοσυστήµατα............. 197 9.4 Κρυπτοσυστήµατα αντικατάστασης......... 197 9.5 Κρυπτοσυστήµατα αναδιάταξης.......... 199 9.6 Αλγόριθµος του Καίσαρα.............. 201 9.7 Αλγόριθµος του Vigenere............. 206 9.8 Ο αλγόριθµος του Hill............... 208 9.9 Τρόποι λειτουργίας αλγορίθµων τµηµάτων...................... 210 10Ο αλγόριθµος DES 217 10.1Ιστορικά στοιχεία.................. 218 10.2Περιγραφή του DES................ 219 10.3Περίληψη του αλγόριθµου............. 220 10.4Ο µετασχηµατισµός του κλειδιού.......... 221 10.5Μετάθεση κλειδιού................. 222 10.6Μετάθεση επέκτασης................ 223 10.7Η S-Box αντικατάσταση............... 224 10.8Η µετάθεση P-Box................. 226 10.9Η τελική µετάθεση................. 226 10.10Αποκρυπτογράφηση µε το DES.......... 227 10.11Ασϕάλεια του DES................. 227 10.12Τα πραγµατικά κριτήρια σχεδιασµού........ 228 10.13Παράδειγµα κρυπτογράφησης........... 230 11Ο αλγόριθµος AES 241 11.1Εισαγωγή...................... 242 11.2Αριθµητική των bytes στον AES.......... 242 11.3Πράξεις µε λέξεις στον AES............. 244 viii
11.4Η δοµή του AES.................. 246 12Αλγόριθµοι ϱοής 255 12.1Εισαγωγή...................... 256 12.2One - Time Pad................... 257 12.3Γεννήτριες τυχαίων αριθµών............ 260 12.4Γραµµικοί καταχωρητές ολίσϑησης µε ανάδραση. 266 13Αλγόριθµοι δηµοσίου κλειδιού 271 13.1Εισαγωγή...................... 272 13.2Ο αλγόριθµος RSA................. 273 13.3Ο αλγόριθµος El Gamal.............. 276 13.4Ο αλγόριθµος του Rabin.............. 277 14Συναρτήσεις κατακερµατισµού 281 14.1Συναρτήσεις κατακερµατισµού........... 282 14.2Περιγραφή του SHA-1............... 284 14.3Παράδειγµα χρήσης SHA.............. 285 14.4Περιγραφή του MD5................ 288 14.5Παράδειγµα χρήσης MD5............. 290 15Ψηφιακές υπογραφές 295 15.1Εισαγωγή...................... 296 15.2Ψηφιακή υπογραφή µε συστήµατα δηµοσίου κλειδιού 297 15.3Αυθεντικοποίηση µηνύµατος............ 298 15.4Ψηφιακές υπογραφές στην πράξη......... 299 15.5Πρότυπο ElGamal.................. 301 15.6Πρότυπο DSA.................... 302 16Κρυπτογραφικά πρωτόκολλα 305 16.1Εισαγωγή...................... 306 16.2Κρυπτογραφικό πρωτόκολλο των Diffie-Hellman. 306 16.2.1Περιγραφή πρωτοκόλλου........... 306 16.2.2Παράδειγµα εφαρµογής του πρωτοκόλλου. 307 16.2.3Ασϕάλεια πρωτοκόλλου........... 308 16.2.4Επίθεση επανάληψης............ 309 16.2.5Αυθεντικοποίηση............... 309 ix
16.3Kerberos....................... 309 16.3.1Εισαγωγή................... 309 16.3.2Περιγραφή του πρωτοκόλλου........ 312 Παράρτηµα 315 Πηγαίοι κώδικες 317 Αλγόριθµος του Καίσαρα................ 319 Αλγόριθµος του Vigenere................ 321 Αλγόριθµος του Hill................... 325 Στατιστικά γλώσσας................... 327 AES............................ 329 RSA............................ 337 Βιβλιογραφία 340 x