Κατάλογος Σχηµάτων Κατάλογος Πινάκων ix xv xx I Θεµέλια 27 1 Μαθηµατικά 29 1.1 Κριτήρια διαιρετότητας................ 30 1.2 Μέγιστος κοινός διαιρέτης και Ευκλείδειος αλγόριθµος 31 1.3 Πρώτοι αριθµοί.................... 33 1.4 Ισοϋπόλοιποι αριθµοί................. 35 1.5 Βασικά ϑεωρήµατα.................. 39 1.6 Η πολυωνυµική αριθµητική............. 42 1.7 Θεωρία πεπερασµένων οµάδων και σωµάτων.... 45 1.8 Πράξεις σωµάτων................... 49 1.8.1 Σώµατα µε τάξη πρώτου αριθµού........ 50 1.8.2 Δυαδικά σώµατα................. 50 1.8.3 Σώµατα επέκτασης............... 52 1.8.4 Υποσώµατα σε ένα πεπερασµένο σώµα..... 54 1.9 Τετραγωνικά υπόλοιπα................ 54 1.10 Εύρεση τετραγωνικής ϱίζας σε πεπερασµένο σώµα. 57 1.11 Ελλειπτικές καµπύλες................ 57 1.12 Πλέγµατα σηµείων.................. 63 1.13 Συνεχή κλάσµατα................... 65 1.14 Ασκήσεις....................... 67 ix
x 2 Θεωρία Πολυπλοκότητας 71 2.1 Εισαγωγή....................... 72 2.2 Βασικές έννοιες.................... 74 2.3 Συµβολισµός..................... 75 2.4 Τάξεις αλγορίθµων.................. 76 3 Μονόδροµες συναρτήσεις και τυχαιότητα 83 3.1 Εισαγωγή....................... 84 3.2 Μονόδροµες συναρτήσεις............... 84 3.2.1 Υποψήφιες µονόδροµες συναρτήσεις...... 85 3.2.2 Ασϑενείς µονόδροµες συναρτήσεις....... 88 3.2.3 Συναρτήσεις καταπακτής............ 90 3.3 Ψευδοτυχαιότητα................... 92 3.3.1 Γεννήτριες ψευδοτυχαιότητας.......... 93 4 Βασικές έννοιες της κρυπτογραφίας 97 4.1 Εισαγωγή....................... 98 4.2 Είδη αλγορίθµων κρυπτογράφησης......... 101 4.3 Δοµικά στοιχεία ενός αλγορίθµου τµηµάτων..... 106 4.4 Καταστάσεις λειτουργίας αλγορίθµων τµηµάτων... 107 4.5 Δίκτυα αντικατάστασης και µετάθεσης........ 111 4.6 Δοµές Feistel..................... 115 4.7 Ασκήσεις....................... 117 II Κρυπτογραφία µέχρι και το δεύτερο παγκόσµιο πόλεµο 119 5 Κρυπτογραφία στην αρχαιότητα 121 5.1 Εισαγωγή....................... 122 5.2 Αλγόριθµοι αντικατάστασης............. 122 5.3 Αλγόριθµοι αναδιάταξης............... 124 5.4 Ο αλγόριθµος της σκυτάλης............. 127 5.5 Ο αλγόριθµος του Καίσαρα.............. 128 5.6 Ασκήσεις....................... 135 6 Κρυπτογραφία µέχρι τον 20ο αιώνα 141 6.1 Εισαγωγή....................... 142 6.2 Αλγόριθµος του Vigenere.............. 142
xi 6.3 Ο αλγόριθµος του Hill................ 151 6.4 Ασκήσεις....................... 153 7 Οι αλγόριθµοι του Πρώτου Παγκοσµίου Πολέµου 155 7.1 Ο αλγόριθµος Playfair................ 156 7.2 Ο αλγόριθµος ADFGX................ 158 7.3 Ασκήσεις....................... 160 8 Οι µηχανές Enigma 163 8.1 Περιγραφή...................... 163 8.2 Κρυπτανάλυση των µηχανών Enigma........ 170 8.3 Ασκήσεις....................... 173 9 Οι µηχανές Purple 175 9.1 Εισαγωγή....................... 176 9.2 Περιγραφή...................... 176 9.3 Κρυπτανάλυση.................... 181 9.4 Ασκήσεις....................... 184 10 Οι µηχανές Sigaba 185 10.1 Εισαγωγή....................... 186 10.2 Περιγραφή...................... 186 III Σύγχρονη κρυπτογραφία 191 11 Ο αλγόριθµος DES 193 11.1 Ιστορικά στοιχεία................... 194 11.2 Περιγραφή του DES................. 195 11.2.1Μετάθεση επέκτασης.............. 196 11.2.2Τα S-Boxes του DES.............. 197 11.2.3Ο µετασχηµατισµός του κλειδιού........ 198 11.2.4Η τελική µετάθεση............... 199 11.3 Αποκρυπτογράφηση µε το DES........... 199 11.4 Ασϕάλεια του DES.................. 200 11.5 Παράδειγµα κρυπτογράφησης............ 201 11.6 Triple DES...................... 206 11.7 Ασκήσεις....................... 207
xii 12 Ο αλγόριθµος AES 215 12.1 Εισαγωγή....................... 216 12.2 Αριθµητική των bytes στον AES........... 218 12.3 Πράξεις µε λέξεις στον AES.............. 219 12.4 Η δοµή του AES................... 221 12.5 Παράδειγµα χρήσης................. 228 12.6 Ασκήσεις....................... 234 13 Αλλοι αλγόριθµοι τµηµάτων 237 13.1 Ο αλγόριθµος FEAL................. 238 13.1.1Εισαγωγή.................... 238 13.1.2Η συνάρτηση S................. 239 13.1.3Η συνάρτηση f K................. 240 13.1.4Η συνάρτηση γύρου F............. 241 13.1.5Δηµιουργία υποκλειδιών............ 241 13.2 Ο αλγόριθµος CAST................. 242 13.3 Ο αλγόριθµος Akelarre................ 245 13.4 Ο αλγόριθµος CMEA................. 252 13.5 Ο αλγόριθµος Blowfish................ 255 13.5.1Εισαγωγή.................... 255 13.5.2Η περιγραφή του αλγορίθµου......... 256 13.6 Οι αλγόριθµοι TEA και XTEA............ 257 13.6.1Ο αλγόριθµος TEA............... 257 13.6.2Ο αλγόριθµος XTEA.............. 259 13.7 Ο αλγόριθµος RC5.................. 260 13.8 Ο αλγόριθµος RC6.................. 267 13.9 Ο αλγόριθµος Skipjack................ 270 13.9.1Εισαγωγή.................... 270 13.9.2Η περιγραφή του αλγορίθµου κρυπτογράφησης 270 13.9.3Περιγραφή του αλγορίθµου αποκρυπτογράφησης........................ 272 13.9.4Ασϕάλεια του αλγορίθµου........... 274 14 Αλγόριθµοι ϱοής 277 14.1 Εισαγωγή....................... 278 14.2 One - Time Pad.................... 279 14.3 Δοµές αλγορίθµων ϱοής............... 281 14.3.1Γραµµικοί γεννήτριες ισοτιµίας........ 282
xiii 14.3.2Τετραγωνικοί γεννήτριες ισοτιµίας....... 283 14.3.3Γεννήτορας άθροισης.............. 286 14.3.4Γεννήτορας 1/p................. 286 14.3.5Γεννήτορας Stop and go............ 287 14.3.6Γεννήτορας παράθεσης............. 287 14.3.7Πολυπλέκτες.................. 287 14.4 Ασκήσεις....................... 288 15 Γραµµικοί καταχωρητές ολίσϑησης µε ανάδραση 289 15.1 Εισαγωγή....................... 290 15.2 Περιγραφή...................... 290 15.3 Περίοδος ενός LFSR................. 293 15.4 Επεκτάσεις των LFSR................. 293 15.5 Η ασϕάλεια των LFSR................ 295 15.6 Ασκήσεις....................... 297 16 Σύγχρονοι αλγόριθµοι ϱοής 299 16.1 Ο αλγόριθµος RC4.................. 300 16.2 Ο αλγόριθµος ORYX................. 301 16.3 Ο αλγόριθµος PKZIP................. 302 16.4 Ο αλγόριθµος Α5/1................. 304 16.5 Ο αλγόριθµος Snow................. 305 17 Αλγόριθµοι δηµοσίου κλειδιού 309 17.1 Εισαγωγή....................... 310 17.2 Ο αλγόριθµος Cocks-Ellis.............. 311 17.3 Ο αλγόριθµος RSA.................. 314 17.4 Ο αλγόριθµος El Gamal............... 315 17.5 Ο αλγόριθµος του Rabin............... 317 17.6 Ο αλγόριθµος NTRU................. 320 17.7 Κρυπτογράφηση µε ελλειπτικές καµπύλες...... 323 17.8 Ο αλγόριθµος McEliece................ 324 17.9 Ο αλγόριθµος Merkle-Hellman............ 328 17.10 Ο αλγόριθµος Chor-Rivest.............. 330 17.11 Συµµετρικοί αλγόριθµοι από ασύµµετρους..... 331 17.12 Ο αλγόριθµος Massey-Omura............ 333 17.13 Ο αλγόριθµος Cayley-Purser............. 335 17.14 Ο αλγόριθµος Blum-Goldwasser........... 336 17.15 Συγκριτικές δοκιµές αλγορίθµων δηµοσίου κλειδιού 337
xiv 17.16 Ασκήσεις....................... 337 18 Οµοµορφική κρυπτογραφία 343 18.1 Εισαγωγή....................... 344 18.2 Ο αλγόριθµος Okamoto-Uchiyama......... 345 18.3 Ο αλγόριθµος Pailler................. 346 18.4 Ο αλγόριθµος Damgaard-Jurik........... 348 18.5 Ο αλγόριθµος Goldwasser-Micali.......... 349 18.6 Ο αλγόριθµος Benaloh................ 350 18.7 Ο αλγόριθµος Naccache-Stern............ 351 19 Συναρτήσεις κατακερµατισµού 353 19.1 Εισαγωγή....................... 354 19.2 Αλγεβρικές συναρτήσεις κατακερµατισµού...... 361 19.3 Η συνάρτηση SHA-1................. 363 19.3.1Περιγραφή της SHA-1.............. 363 19.3.2Παράδειγµα χρήσης SHA-1........... 366 19.4 Η οικογένεια συναρτήσεων MD............ 369 19.4.1Η συνάρτηση MD4............... 369 19.4.2Η συνάρτηση MD5............... 372 19.4.3Παράδειγµα χρήσης MD5............ 375 19.4.4Η συνάρτηση MD6............... 377 19.5 Η συνάρτηση Tiger.................. 380 19.6 Η συνάρτηση Whirlpool............... 384 19.7 Η συνάρτηση RIPEMD-160.............. 388 Αʹ RIPEMD-160 391 Αʹ.1 Αριστερή ολίσϑηση S για την RIPEMD-160...... 391 Αʹ.2 Αριστερή ολίσϑηση S για την RIPEMD-160...... 391 Αʹ.3 Αριστερή ολίσϑηση R για την RIPEMD-160...... 391 Αʹ.4 Αριστερή ολίσϑηση R για την RIPEMD-160..... 391 Βιβλιογραφία 397 Ευρετήριο 413