Από τον Κωνσταντίνο Μπονίκο

ΚΡΥΠΤΟΓΡΑΦΙΑ

Η λέξη κρυπτογραφία είναι συνηθισμένη στο χώρο των υπολογιστών, ακούγεται συχνά όταν μιλάμε για ασφάλεια πληροφοριών, αλλά τι σημαίνει ακριβώς; Στα λεξικά θα τη βρείτε με τον ορισμό: “Η γραφή κειμένου με συνθηματική γραφή”. Πράγματι, ό,τι έχει να κάνει με συνθηματικά, κωδικούς, απόρρητα, αυθεντικοποίηση και ασφάλεια πληροφοριών γενικότερα είναι αντικείμενο της κρυπτογραφίας, ή, για να είμαστε πιο ακριβείς, το αντικείμενο της κρυπτολογίας. Η κρυπτολογία είναι η πραγματική επιστήμη των μυστικών. Σε αυτή υπάγονται η κρυπτογραφία και η κρυπτανάλυση, που είναι και οι δύο κλάδοι της ίδιας επιστήμης.

Για να γίνουμε πιο σαφείς, η κρυπτογραφία είναι η επιστήμη που μελετά μεθόδους αποδοτικές στη διασφάλιση του απορρήτου του περιεχομένου και της αυθεντικότητας της πληροφορίας. Η κρυπτανάλυση είναι η επιστήμη που μελετά τρόπους και μεθόδους με τους οποίους αποσκοπούμε στην απασφάλιση του απορρήτου και στην πλαστογράφηση μιας πληροφορίας.

Η κρυπτολογία ξεκίνησε από τις πρώτες μέρες του πολιτισμού. Προκειμένου να υπάρξει πολιτισμός απαιτείται γλώσσα, και κατά συνέπεια μια γραπτή γλώσσα. Στους αρχαίους πολιτισμούς εκτός από τον ελληνικό η γραφή θεωρούνταν προνόμιο των ευγενών και των ιερέων. Έτσι διαπιστώνουμε την αύξηση της δύναμης που είχαν στα χέρια τους τη γραπτή γλώσσα, και όλα αυτά λόγω της δύναμης που περιέχει η γνώση. Έτσι λοιπόν, από την αρχαιότητα, με το να στερούν τη γνώση της γραφής από το λαό, του στερούσαν τη δύναμη. Στην ελευθερία της γνώσης βασίζεται και η αθηναϊκή δημοκρατία. Ο μόνος τρόπος να καταργηθεί κάθε δύναμη των πολιτών είναι η λογοκρισία.

Όταν πλέον η διάδοση της γραφής και η γλωσσολογία κατέστησαν κάθε είδος μυστικής ή όχι γραφής ανίκανο να κρύψει πληροφορίες, γεννήθηκε η ανάγκη για τη δημιουργία γραφών που να μην αναγνωρίζονται από μη εξουσιοδοτημένους αναγνώστες, ανεξάρτητα από το αν η γλώσσα του κειμένου είναι γνωστή ή όχι.

Έτσι αρχικά χρησιμοποιήθηκε ο αναγραμματισμός προκειμένου να διασφαλιστεί το απόρρητο των πληροφοριών. Το “μπέρδεμα” αυτό των γραμμάτων γίνεται σύμφωνα με έναν αλγόριθμο. Αλγόριθμος είναι ένα σύνολο από πράξεις που αν εκτελεστούν συντελούν στη λύση ενός προβλήματος. Με τη χρήση λοιπόν του αναγραμματισμού γινόταν μέχρι το τέλος του δεύτερου παγκόσμιου πολέμου η διασφάλιση του απορρήτου των επικοινωνιών. Οι Γερμανοί ναζί είχαν αναπτύξει τον κώδικα “Enigma”, που χρησιμοποιούσε έναν αλγόριθμο πολλαπλών αναγραμματισμών. Όταν όμως έπεσε στα χέρια των συμμάχων μια γερμανική κρυπτομηχανή, μια ομάδα από Πολωνούς μαθηματικούς κατάφερε να σπάσει τον κωδικό. Το γεγονός αυτό συντέλεσε σημαντικά στη λήξη του δεύτερου παγκόσμιου πολέμου.

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

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

Ο άλλος αναπόσπαστος κλάδος της κρυπτογραφίας είναι η κρυπτανάλυση. Στην κρυπτανάλυση έχουμε τις προσπάθειες να σπάσουμε έναν κωδικό ή να μας δοθεί η δυνατότητα να πλαστογραφήσουμε την αυθεντικότητα μιας πληροφορίας δημιουργώντας μια αποδεκτή ψηφιακή υπογραφή. Υπάρχουν οι λεγόμενες “κρυπταναλυτικές επιθέσεις”, κατά τις οποίες γίνονται οι εξής προσπάθειες : η πρώτη είναι η επίθεση κατά την οποία έχουμε το κρυπτοκείμενο (ciphertext) και το κείμενο (plaintext) και προσπαθούμε να συμπεράνουμε τον κωδικό πρόσβασης (password). Μια άλλη είναι το να έχουμε τον κωδικό πρόσβασης, το κρυπτοκείμενο και το κείμενο και να προσπαθούμε να συμπεράνουμε τις διαδικασίες του αλγόριθμου. Αυτή η τεχνική είναι συνήθως αναγκαία όταν ο στόχος χρησιμοποιεί μυστικό αλγόριθμο συμμετρικής κρυπτογράφησης. Μια άλλη συνήθης τεχνική είναι το να έχουμε τον αλγόριθμο και έναν αριθμό από υπογεγραμμένα κείμενα και να προσπαθούμε να βρούμε τρόπο να παραγάγουμε μια αποδεκτή υπογραφή, με σκοπό το κείμενό μας να γίνει αποδεκτό ως προερχόμενο από έμπιστη οντότητα (με τον όρο οντότητα εννοούμε ένα χρήστη, έναν υπολογιστή, μια τράπεζα κτλ.).

Στην κρυπτανάλυση, όταν αναλύουμε έναν αλγόριθμο, θεωρητικά προσπαθούμε να περιορίσουμε το ποσοστό τυχαιότητας που αυτός προσδίδει στο κρυπτοκείμενο και έτσι με λιγότερες δοκιμές να έχουμε την αποκρυπτογράφηση του μηνύματος. Μεγάλο ρόλο παίζουν και οι επιστήμες των πιθανοτήτων και της συνδυαστικής. Η κρυπτανάλυση τέλος είναι απολύτως αναγκαία για την αξιολόγηση ενός αλγόριθμου και κατά συνέπεια για τον προσδιορισμό του βαθμού ασφαλείας που προσφέρει.

Πολλές φορές ακούμε πως ένα πρόγραμμα είναι ασφαλές λόγω του ότι χρησιμοποιεί έναν “ασφαλή” αλγόριθμο. Αυτό δεν είναι πάντα αλήθεια. Στην κρυπτανάλυση μετράνε πολύ αυτά που αποκαλούμε “μειονεκτήματα πρωτοκόλλου”, δηλαδή μπορεί στα μαθηματικά ο αλγόριθμος να προσφέρει μεγάλο βαθμό ασφάλειας, αλλά, αν το πρόγραμμα που τον εφαρμόζει δεν είναι σχεδιασμένο σωστά, τότε δίνεται πολλές φορές η δυνατότητα να σπάσει ο κωδικός, πράγμα που συμβαίνει κυρίως στα συστήματα αυθεντικοποίησης, όταν δε χρησιμοποιούνται σωστά οι λεγόμενες hash functions, δηλαδή οι συναρτήσεις μέσω των οποίων παράγονται τα κλειδιά.

Γι’ αυτό λοιπόν να ξέρουμε πως, αν θέλουμε να είμαστε ασφαλείς, ποτέ δεν πρέπει να εμπιστευόμαστε ύποπτα προγράμματα και άγνωστους αλγόριθμους. Πρέπει ακόμα να κάνουμε αυτό που λέμε risk management, δηλαδή, αν το μυστικό μας κινδυνεύει από το μικρό αδελφό ή από τη μητέρα κάποιου, τότε αρκεί η χρήση του PΚzip με κωδικό, εκτός βέβαια αν η μητέρα του χρήστη ξέρει από hacking. Αν όμως κάποιος έχει να προστατεύσει κάτι από κάποιον ειδικευμένο, πρέπει να υπολογίσει πρώτα το αν αυτά που έχει να κρύψει είναι αρκετά σημαντικά, για να ενδιαφέρουν τον “εχθρό”. Αν η πληροφορία έχει σημασία για μια εβδομάδα τότε η χρήση ενός αλγόριθμου ο οποίος με τα μέσα που διαθέτει ο ενδιαφερόμενος “εχθρός” θα σπάσει σε ένα μήνα είναι αρκετή για να παράσχει ασφάλεια. Αν τέλος κάποιος θέλει να κρύψει κάτι, πρέπει να υπολογίζει το χρόνο που θα πάρει στον υπολογιστή του κρυπταναλυτή να κάνει όλες τις δοκιμές για να βρει το κλειδί εφόσον ο αλγόριθμος είναι ασφαλής, και αυτό δεδομένου ότι κάθε δεκαοχτώ μήνες θα διπλασιάζεται η υπολογιστική δύναμη του εχθρού. Όταν κάποιος έχει να κάνει με θέματα εθνικής ασφαλείας και πρέπει να κρατήσει ένα μυστικό μακριά από μυστικές υπηρεσίες ισχύει μόνο ο κανόνας του 111 (Κλάουζεβιτς), που λέει: “Όταν ένα μυστικό το ξέρει ένας, είναι κάπως ασφαλές”, και γράφει τον αριθμό ένα στον πίνακα, “όταν το ξέρουν δύο, το ξέρει άλλος ένας, και είναι γνωστό ότι δεν μπορούμε να εμπιστευόμαστε κανέναν”, και γράφει πάλι τον αριθμό ένα στον πίνακα δίπλα στην άλλη μονάδα, κάτι που μας κάνει τον αριθμό 11, “όταν το μάθει και άλλος ένας, τότε παύει να είναι μυστικό”, και γράφει άλλη μια μονάδα σχηματίζοντας έτσι τον αριθμό 111. Ο μόνος τρόπος να κρατήσεις ένα μυστικό ασφαλές είναι να μη μάθει κανένας την ύπαρξή του. Από εκεί και πέρα, σε επίπεδο μυστικών υπηρεσιών, η διαθέσιμη στο κοινό κρυπτογραφία είναι ανώφελο να χρησιμοποιείται.

Αλγόριθμοι σαν το DES και το PGP προσφέρουν απόλυτη ασφάλεια απέναντι στον κοινό περίεργο ή το μέτριο hacker, απέναντι όμως σε κάποιον έμπειρο ή σε μυστικές υπηρεσίες σαν τις NSA και CBP (CBP=SVR=πρώην ΚΓΒ=KGB), ή και στις ντόπιες υπηρεσίες πληροφοριών, είναι ανώφελο κανείς να χρησιμοποιεί κρυπτογραφία. Μπορεί να μεταφέρει τα μυστικά του μαζί του ανά πάσα στιγμή και με έναν τρόπο να καταστρέψει ολοσχερώς και μέσα σε δευτερόλεπτα το μέσο που φέρει τα μυστικά, είτε αυτό είναι CD είτε δισκέτα—μόνο αυτό προσφέρει απόλυτη ασφάλεια σε τέτοιο επίπεδο.

Η χρήση της κρυπτογραφίας σήμερα είναι αναγκαία προκειμένου να έχουμε ασφαλείς τηλεπικοινωνίες και να διατηρούμε την ελευθερία του λόγου όπου δεν υπάρχει δημοκρατία. Στην Αμερική, για παράδειγμα, το καθεστώς απαγορεύει την παραγωγή και εξαγωγή κρυπτογραφικών προγραμμάτων και ταυτόχρονα εισάγει τη λογοκρισία και επιβάλλει ένα αστυνομικό κράτος. Με τη χρήση της κρυπτογραφίας μπορούν οι άνθρωποι να επικοινωνούν χωρίς να έχει το κράτος τη δυνατότητα να τους λογοκρίνει και έτσι εξασφαλίζεται η ελευθερία του λόγου, κάτι ανύπαρκτο κυρίως στις ΗΠΑ, στις περιοχές τις κατεχόμενες από Τούρκους και στην Κίνα. Στις ΗΠΑ και σε άλλα κράτη έχει επιχειρηθεί να διαδοθεί ένας κοινός, τυποποιημένος κρυπτογραφικός αλγόριθμος, ο οποίος εις γνώση των πολιτών είναι δυνατόν να σπάσει από την κυβέρνηση. Μιλάω για το clipper chip, ένα κρυπτογραφικό chip το οποίο θα χρησιμοποιούνταν στις τηλεπικοινωνίες, και για το DES (Data Encryption Standard) για τους υπολογιστές, για το οποίο είναι πια γνωστό, και μάλιστα έχει δημοσιευτεί σε Newsletter για ασφάλεια πληροφοριών, ότι μπορεί να κρυπταναλυθεί ένα κρυπτοκείμενο που έχει παραχθεί μέσω αυτού μέσα σε πέντε λεπτά από μία αρκετά πλέον γνωστή κρυπταναλυτική συσκευή. Με την ευκαιρία, λοιπόν, να πω ότι το DES εξασφαλίζει το απόρρητο από επιθέσεις που θα μπορούσαν να γίνουν από το μικρό αδελφό και από τη μητέρα του χρήστη, εκτός και αν ο μικρός του αδελφός είναι υπάλληλος της ΕΥΠ. Έτσι λοιπόν, αν κανείς θέλει να κρατήσει τα μυστικά του, καλό είναι να αναπτύξει ένα δικό του αλγόριθμο και μάλιστα να τον κάνει τουλάχιστον δέκα φορές πιο ισχυρό από ό,τι απαιτείται επισήμως για παροχή μέγιστης ασφάλειας.

Μιλώντας για αλγόριθμους, ο RSA (Rivest Shamir Adelmann) είναι ένας ασφαλής αλγόριθμος αυθεντικοποίησης αλλά, ακόμα και αν αυτό ισχύει, ποτέ μην εμπιστεύεστε ξένο πρόγραμμα. Εφαρμόστε τον καλύτερα σε ένα δικό σας και με προσοχή στα πρωτόκολλα εφαρμογής του, μια, και αυτά είναι που δίνουν τις πίσω πόρτες στους κρυπταναλυτές. Ο IDEA, που και αυτός όπως και ο RSΑ χρησιμοποιούνται στο PGP του Φίλιπ Τσίμερμαν, είναι και αυτός ένας αλγόριθμος συμμετρικής κρυπτογράφησης και είναι πολύ πιθανό να έχει ήδη φτιαχτεί ή να φτιαχτεί το πολύ σε ένα χρόνο κρυπταναλυτικό τσιπάκι που να σπάει κάθε κρυπτοκείμενό του σε ένα δεκάλεπτο, από τη NSA φυσικά. Η κρυπτογραφία έχει και αυτή όρια, είναι λοιπόν αδύνατον να άρουμε την αρχή της αβεβαιότητας του Χάιζενμπεργκ, και έτσι υπάρχουν ελπίδες για ασφαλή επικοινωνία στο μέλλον, η λεγόμενη κβαντική κρυπτογραφία. Μιλάμε για γραμμές οπτικών ινών με πραγματικά απόλυτη ασφάλεια, αλλά αμφιβάλλω για το αν αυτές οι εφαρμογές θα γίνουν ποτέ προσιτές στο κοινό, αν και ήδη υπάρχουν λειτουργικές εφαρμογές σε επίπεδο μυστικών υπηρεσιών.

Ένα άλλο κομμάτι που πρέπει να τονίσουμε είναι η παρακολούθηση των καναλιών προκειμένου να υποκλαπεί το κλειδί. Γι’ αυτό το λόγο χρησιμοποιείται και το σύστημα κοινού κλειδιού. Υπάρχουν και οι μηχανισμοί που παρακολουθούν μόνιμα τις γραμμές (και στην Ελλάδα) και ενεργοποιούν κασετόφωνα όταν ακούσουν λέξεις κλειδιά. Στην Αμερική μια τέτοια λέξη είναι και το “hacking”. Στην Ελλάδα το φαινόμενο περιορίζεται σε συνθηματικές φράσεις και λέξεις που έχουν να κάνουν με εθνική ασφάλεια. Σημειωτέον ότι το σύστημα λειτουργεί και για τα modems. Έτσι ό,τι πακέτα κρυπτογράφησης φωνής και ψηφιακής επικοινωνίας με τη μέθοδο του κοινού κλειδιού κυκλοφορούν μπορούν να προσφέρουν καλή ασφάλεια. Ευτυχώς το real-time decryption δε χρησιμοποιείται, εκτός από περιπτώσεις ήδη γνωστές στις Αρχές ασφαλείας.

Υπάρχουν βέβαια και οι υποκλοπές με το σύστημα Van Eck, του ομώνυμου Ολλανδού καθηγητή, με το οποίο μπορεί κανείς να βλέπει ό,τι ο άλλος γράφει στην οθόνη του υπολογιστή του ή ό,τι βλέπει σε οποιοδήποτε μέσο ηλεκτρονικής επικοινωνίας. Η συσκευή λειτουργεί διαβάζοντας την ηλεκτρομαγνητική ακτινοβολία που εκπέμπει ο υπολογιστής του στόχου και καλό θα ήταν γι’ αυτό να χρησιμοποιείτε προγράμματα που δεν εμφανίζουν το password στην οθόνη. Βέβαια, αν σας χρειάζεται πραγματικά αυτό, έχετε να κάνετε με κατασκοπεία και καλά θα κάνετε να το σταματήσετε, γιατί οι υπηρεσίες μας δεν αστειεύονται.

Εν κατακλείδι, για να είναι κανείς ασφαλής, αρχικά πρέπει να ακολουθεί την πρώτη χρυσή εντολή της κατασκοπείας. Την παραθέτω στα αγγλικά γιατί έτσι την έχουμε ακουστά. “ KEEP YOUR MOUTH SHUT ”.

Το δεύτερο βήμα είναι να χρησιμοποιείτε ένα καλό πακέτο κρυπτογραφίας το οποίο να έχετε κάνει εσείς compile, αφού πρώτα έχετε ελέγξει τον κώδικά του για protocol failures και backdoors και το έχετε ρυθμίσει να παρέχει τη μέγιστη δυνατή ασφάλεια.

Το τρίτο βήμα είναι να κρατάτε τις ευαίσθητες πληροφορίες κρυπτογραφημένες σε ένα μέσο αποθήκευσης μαζί σας, με την ένδειξη “σέξι φωτογραφίες”, ώστε να έχετε τη δυνατότητα να τις εξαφανίσετε ανά πάσα στιγμή και να μην το ξέρει κανένας.

Και πάντα να θυμάστε: “Δεν υπάρχει κωδικός φτιαγμένος από έναν άνθρωπο που να είναι αδύνατον να σπάσει από έναν άλλο άνθρωπο”.