Γράφει ο Αναστάσιος Αραμπατζής*
Η κρυπτογράφηση βασίζεται στην επιστήμη της κρυπτογραφίας, η οποία είναι τόσο παλιά όσο και η ανάγκη του κόσμου να κρατήσει ορισμένες πληροφορίες μυστικές. Η κρυπτογραφία χρησιμοποιείται για τη διασφάλιση και την προστασία των δεδομένων κατά τη στιγμή της επικοινωνίας. Πριν από την ψηφιακή εποχή, οι μεγαλύτεροι χρήστες της κρυπτογραφίας ήταν οι κυβερνήσεις, ιδιαίτερα για στρατιωτικούς σκοπούς. Η κρυπτογραφία έχει μακρά ιστορία, που χρονολογείται από την εποχή που οι αρχαίοι Έλληνες και Ρωμαίοι έστελναν μυστικά μηνύματα υποκαθιστώντας γράμματα, αποκρυπτογραφούμενα μόνο με τη χρήση ενός μυστικού κλειδιού.
Για τη μεταφορά ευαίσθητων πληροφοριών, ένα σύστημα πρέπει να είναι σε θέση να διασφαλίζει τη μυστικότητα (secrecy) και την ιδιωτικότητα (privacy). Ένα σύστημα επικοινωνιών δεν μπορεί να αποτρέψει με απόλυτο τρόπο τη μη εξουσιοδοτημένη πρόσβαση στα μέσα μετάδοσης.
Η αλλοίωση των δεδομένων, η πράξη της σκόπιμης τροποποίησης των δεδομένων μέσω ενός μη εξουσιοδοτημένου καναλιού, δεν είναι ένα νέο πρόβλημα. Η αλλαγή της πληροφορίας θα μπορούσε, ενδεχομένως, να την προστατεύσει από μη εξουσιοδοτημένη πρόσβαση και, ως εκ τούτου, μόνο ο εξουσιοδοτημένος αποδέκτης να μπορεί να την κατανοήσει.
Η κρυπτογράφηση και η αποκρυπτογράφηση είναι οι δύο βασικές λειτουργίες της κρυπτογραφίας.
Ιστορία της κρυπτογράφησης
Οι αρχαίοι Έλληνες χρησιμοποιούσαν ένα εργαλείο που ονομαζόταν Σκυτάλη για να επιτύχουν ταχύτερη κρυπτογράφηση των μηνυμάτων τους. Τύλιγαν μία λωρίδα περγαμηνής γύρω από ένα πολύπλευρο κύλινδρο, έγραφαν το μήνυμα και στη συνέχεια, όταν η περγαμηνή ξετυλίγονταν, το κείμενο δεν είχε νόημα.
Αυτή η μέθοδος κρυπτογράφησης μπορούσε φυσικά να “σπάσει” εύκολα, αλλά είναι ένα από τα πρώτα παραδείγματα κρυπτογράφησης που χρησιμοποιήθηκαν ιστορικά.
Ο Ιούλιος Καίσαρας χρησιμοποίησε μια κάπως παρόμοια μέθοδο, μεταθέτοντας κάθε γράμμα της αλφαβήτου προς τα δεξιά ή προς τα αριστερά κατά μια προκαθορισμένη σειρά θέσεων, μια τεχνική κρυπτογράφησης που έμεινε γνωστή ως ο “Κώδικας του Καίσαρα”.
Δεδομένου ότι μόνο ο προορισμένος παραλήπτης του μηνύματος γνώριζε τον κώδικα, ήταν δύσκολο για οποιοδήποτε άλλο άτομο να αποκωδικοποιήσει το μήνυμα.
Κατά τη διάρκεια του Β Παγκοσμίου Πολέμου, οι Γερμανοί χρησιμοποίησαν τη μηχανή Enigma για να μεταβιβάσουν κρυπτογραφημένες μηνύματα προς και από το πεδίο της μάχης.
Οι συμμαχικές δυνάμεις χρειάστηκαν αρκετά χρόνια πριν μπορέσουν να σπάσουν τον κώδικα, γεγονός που συνέβαλε στη νίκη τους.
Τι είναι όμως η κρυπτογράφηση;
Η κρυπτογράφηση (encryption) είναι η διαδικασία κατά την οποία ο αποστολέας μετατρέπει την αρχική πληροφορία σε άλλη μορφή και μεταδίδει το προκύπτον ακατανόητο μήνυμα μέσω ενός ανοικτού δικτύου.
Ο αποστολέας χρησιμοποιεί έναν αλγόριθμο κρυπτογράφησης και ένα κλειδί για τη μετατροπή του απλού κειμένου (αρχικού μηνύματος) σε κρυπτοκείμενο (κρυπτογραφημένο μήνυμα).
Το απλό κείμενο (plaintext) είναι τα δεδομένα που πρέπει να προστατευθούν κατά τη διάρκεια της μετάδοσης.
Το κρυπτοκείμενο (cipher text) είναι το κωδικοποιημένο κείμενο που παράγεται ως αποτέλεσμα του αλγόριθμου κρυπτογράφησης για τον οποίο χρησιμοποιείται ένα συγκεκριμένο κλειδί.
Ο αλγόριθμος κρυπτογράφησης είναι ένας κρυπτογραφικός αλγόριθμος στον οποίο εισάγεται ένα απλό κείμενο και ένα κλειδί κρυπτογράφησης και παράγει ένα κρυπτογραφημένο κείμενο.
Εικόνα 1: Κρυπτογράφηση και Αποκρυπτογράφηση
Τι είναι η αποκρυπτογράφηση;
Η αποκρυπτογράφηση (decryption) αναστρέφει τη διαδικασία της κρυπτογράφησης για να μετατρέψει το μήνυμα στην αρχική του μορφή.
Ο δέκτης χρησιμοποιεί έναν αλγόριθμο αποκρυπτογράφησης και ένα κλειδί για να μετατρέψει το κρυπτοκείμενο στο αρχικό, απλό κείμενο.
Ο αλγόριθμος αποκρυπτογράφησης είναι μια μαθηματική διαδικασία που χρησιμοποιείται για την αποκρυπτογράφηση και παράγει το αρχικό απλό κείμενο ως αποτέλεσμα οποιουδήποτε δεδομένου κρυπτογραφημένου κειμένου και του κλειδιού αποκρυπτογράφησης.
Είναι η αντίστροφη διαδικασία του αλγόριθμου κρυπτογράφησης.
Κλειδιά κρυπτογράφησης και αποκρυπτογράφησης
Τα κλειδιά είναι τυχαία σειρά δυαδικών ψηφίων (bits) που δημιουργούνται ειδικά για την κρυπτογράφηση και αποκρυπτογράφηση δεδομένων.
Τα κλειδιά που χρησιμοποιούνται για κρυπτογράφηση και αποκρυπτογράφηση μπορεί να είναι είτε παρόμοια είτε ανόμοια, ανάλογα με τον τύπο των κρυπτοσυστημάτων που χρησιμοποιούνται (κρυπτογράφηση συμμετρικού κλειδιού ή κρυπτογράφηση ασύμμετρου ή δημόσιου κλειδιού).
Κάθε κλειδί είναι μοναδικό και δημιουργείται μέσω ενός αλγορίθμου ώστε να εξασφαλιστεί ότι δεν είναι προβλέψιμο. Τα κλειδιά παράγονται συνήθως με γεννήτριες τυχαίων αριθμών ή με αλγορίθμους υπολογιστών που μιμούνται γεννήτριες τυχαίων αριθμών.
Η κρυπτογράφηση συμμετρικού κλειδιού (symmetric key encryption) αναφέρεται στους αλγορίθμους που χρησιμοποιούν το ίδιο μυστικό κλειδί τόσο για την κρυπτογράφηση όσο και για την αποκρυπτογράφηση.
Εικόνα 2: Κρυπτογράφηση Συμμετρικού Κλειδιού
Η κρυπτογράφηση ασύμμετρου ή δημόσιου κλειδιού (asymmetric or public key encryption) αναφέρεται στους αλγόριθμους που χρησιμοποιούν ένα ζεύγος κλειδιών για τον σκοπό της κρυπτογράφησης.
Το δημόσιο κλειδί (public key) είναι διαθέσιμο σε οποιοδήποτε τυχαίο άτομο, ενώ το απόρρητο, ιδιωτικό κλειδί (private key) διατίθεται μόνο στον παραλήπτη του μηνύματος.
Βασικές διαφορές μεταξύ κρυπτογράφησης και αποκρυπτογράφησης
Παρακάτω παρατίθενται οι βασικές διαφορές μεταξύ της κρυπτογράφησης και της αποκρυπτογράφησης:
-Ο αλγόριθμος κρυπτογράφησης χρησιμοποιεί κατά τη διαδικασία κρυπτογράφησης ένα πρωτότυπο μήνυμα σε μια αναγνώσιμη μορφή, που ονομάζεται απλό κείμενο, και ένα κλειδί για να μετατρέψει το απλό κείμενο σε μια ακατανόητη και ασαφή μορφή που δεν μπορεί να ερμηνευτεί. Κατά τη διαδικασία της αποκρυπτογράφησης ο αλγόριθμος αποκρυπτογράφησης μετασχηματίζει, χρησιμοποιώντας το μυστικό κλειδί, την κρυπτογραφημένη μορφή του μηνύματος, το κρυπτοκείμενο, σε μορφή που μπορεί να κατανοηθεί από έναν άνθρωπο.
-Η κρυπτογράφηση πραγματοποιείται στη μεριά του αποστολέα, που καλείται πηγή, ενώ η αποκρυπτογράφηση πραγματοποιείται στο δέκτη, ο οποίος ονομάζεται προορισμός.
-Η κύρια λειτουργία της κρυπτογράφησης είναι η μετατροπή του απλού κειμένου σε κρυπτοκείμενο, ενώ η κύρια λειτουργικότητα της αποκρυπτογράφησης είναι η μετατροπή του κρυπτοκειμένου σε απλό κείμενο.
-Η κρυπτογράφηση πραγματοποιείται αυτόματα στην πηγή, όταν αποστέλλονται δεδομένα από ένα μηχάνημα. Προγράμματα που είναι προεγκατεστημένα μετασχηματίζουν τις αρχικές πληροφορίες σε κρυπτογραφημένη μορφή πριν από την αποστολή.
-Η αποκρυπτογράφηση πραγματοποιείται αυτόματα στο μηχάνημα του προορισμού. Το μηχάνημα λαμβάνει και μετατρέπει την κρυπτογραφημένη μορφή των δεδομένων στην αρχική μορφή.
-Η κρυπτογράφηση και η αποκρυπτογράφηση αλληλοσυνδέονται και θεωρούνται οι ακρογωνιαίοι λίθοι της διαφύλαξης της εμπιστευτικότητας, της ακεραιότητας και της διαθεσιμότητας των δεδομένων.
Χρήση ασύμμετρης και συμμετρικής κρυπτογράφησης: Εφαρμογές μηνυμάτων
Οι εφαρμογές μηνυμάτων, όπως το Signal ή το Whatsapp, χρησιμοποιούν κρυπτογράφηση από άκρο σε άκρο για την προστασία της εμπιστευτικότητας και της ιδιωτικότητας των επικοινωνιών των χρηστών και για την εξακρίβωση της ταυτότητας των χρηστών.
Στην κρυπτογράφηση από άκρο σε άκρο, κρυπτογραφούνται μόνο τα δεδομένα. Η βάση για την κρυπτογράφηση από άκρο σε άκρο είναι ένα πρωτόκολλο (Signal Protocol), το οποίο έχει αναπτυχθεί από την εταιρεία Open Whisper Systems. Αυτό το πρωτόκολλο κρυπτογράφησης από άκρο σε άκρο έχει σχεδιαστεί για να εμποδίζει τα τρίτα μέρη και την εταιρεία παραγωγής της εφαρμογής να έχουν ελεύθερη πρόσβαση σε μηνύματα ή κλήσεις.
Επιπλέον, ακόμη και αν τα κλειδιά κρυπτογράφησης από τη συσκευή ενός χρήστη έχουν παραβιαστεί, δεν μπορούν να χρησιμοποιηθούν για την αποκρυπτογράφηση μηνυμάτων που έχουν σταλεί στο παρελθόν.
Η κρυπτογράφηση των μηνυμάτων υλοποιείται χρησιμοποιώντας ασύμμετρη και συμμετρική κρυπτογράφηση. Η ασύμμετρη κρυπτογράφηση χρησιμοποιείται για την προετοιμασία της κρυπτογραφημένης συνομιλίας μεταξύ δύο χρηστών, ενώ η συμμετρική κρυπτογράφηση χρησιμοποιείται κατά τη διάρκεια της επικοινωνίας.
Χρήση ασύμμετρης και συμμετρικής κρυπτογράφησης: HTTPS
Ενώ η κρυπτογράφηση στις εφαρμογές μηνυμάτων χρησιμοποιείται για την ταυτοποίηση των χρηστών – ανθρώπων – το HTTPS χρησιμοποιείται για την ταυτοποίηση μηχανών. Σε έναν εξαιρετικά συνδεδεμένο κόσμο, όπου καθημερινά μεταφέρονται εκατομμύρια ευαίσθητα δεδομένα μέσω του διαδικτύου, η ανάγκη διασφάλισης των διαύλων επικοινωνίας μεταξύ πελατών / browsers και διακομιστών (servers) είναι υψίστης σημασίας.
Το HTTPS είναι ένα πρωτόκολλο του μοντέλου TCP/IP, το οποίο είναι ο συνδυασμός του πρωτοκόλλου ασφαλείας SSL/TLS (Secure Sockets Layer / Transport Layer Security) πάνω στο πρωτόκολλο HTTP (Hyper Text Transmission Protocol). Ουσιαστικά το HTTPS είναι η πράσινη κλειδαριά που βλέπουμε αριστερά από τη διεύθυνση της ιστοσελίδας που επισκεπτόμαστε.
Μια σύνδεση HTTPS μεταξύ ενός πελάτη και ενός διακομιστή χρησιμοποιεί και τους δύο τύπους κρυπτογράφησης. Η ασύμμετρη κρυπτογράφηση χρησιμοποιείται πρώτα για να δημιουργηθεί η σύνδεση, η οποία στη συνέχεια αντικαθίσταται με συμμετρική κρυπτογράφηση για όλη τη διάρκεια της σύνδεσης.
Και στις δύο περιπτώσεις, εφαρμογές μηνυμάτων και HTTPS, η ασύμμετρη κρυπτογράφηση χρησιμοποιείται μόνο σύντομα στην αρχή για την ανταλλαγή του συμμετρικού κλειδιού που χρησιμοποιείται για την υπόλοιπη σύνδεση. Αυτό γίνεται για να ξεπεραστεί το κύριο μειονέκτημα της ασύμμετρης κρυπτογράφησης, της μαθηματικής της πολυπλοκότητας, που την καθιστά αργή και ενεργοβόρα. Από την άλλη πλευρά, η χρήση ασύμμετρης κρυπτογράφησης επιλύει το πρόβλημα της διανομής κλειδιών της συμμετρικής κρυπτογράφησης.
*Ο Αναστάσιος Αραμπατζής είναι μέλος της Homo Digitalis, απόστρατος Αξιωματικός της Πολεμικής Αεροπορίας με πάνω από 25 χρόνια εμπειρία σε θέματα ασφάλειας πληροφοριών. Κατά τη θητεία του στην Π.Α. ήταν πιστοποιημένος αξιολογητής του ΝΑΤΟ σε θέματα κυβερνοασφάλειας και έχει τιμηθεί για τις γνώσεις του και την απόδοσή του. Σήμερα αρθρογραφεί για τη στήλη State of Security της εταιρείας Tripwire και για το blog της Venafi. Άρθρα του έχουν δημοσιευθεί σε πληθώρα έγκριτων ιστοσελίδων.