Το προφίλ μας στο Google Plus
0

The Enigma Reborn [μέρος 2]

Στο προηγούμενο άρθρο μας, στο deltaHacker 021, ξεκινήσαμε την εξομοίωση της θρυλικής ηλεκτρομηχανικής συσκευής κρυπτογράφησης Enigma, κάνοντας την πρώτη μας απόπειρα για την απλούστερη υλοποίηση: Μια μηχανή με έναν ρότορα κι έναν ανακλαστήρα — σε Python, φυσικά!

deltaHacker 022 (τεύχος Ιουλίου 2013) | The Enigma Reborn [μέρος 2]

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

Καλό θα ήταν λοιπόν να δούμε:

  • Γιατί συμβαίνει το παραπάνω; Γιατί η μηχανή μας –κι ευτυχώς, όχι μόνο η δικιά μας– είναι ανίκανη να αντιστοιχίσει μερικές φορές το “Α” στον εαυτό του;
  • Πώς μπορεί κάποιος να επιτεθεί στην Enigma, γνωρίζοντας το παραπάνω ελάττωμα;

Αν παρακολουθήσατε τα video του numberphile που σας προτείναμε (και σιγά που δεν τα παρακολουθήσατε δηλαδή, από ‘δώ βλέπω τα κόκκινα από το ξενύχτι μάτια σας), θα είδατε τον τρόπο με τον οποίο ξεκινά η επίθεση στο Enigma: Πρέπει να γνωρίζουμε ή να μπορούμε να υποθέσουμε ένα μικρό κομμάτι cleartext που μεταδίδεται. Μα, θα μου πείτε, αν γνωρίζουμε το cleartext, γιατί να μπούμε στη διαδικασία της αποκρυπτογράφησης. Προσέξτε, δεν χρειάζεται να γνωρίζουμε όλο το cleartext!

Σε ένα κρυπτογραφημένο μήνυμα, σχεδόν μοιραίο είναι ότι θα υπάρχει ένα κομμάτι τυποποιημένου, προβλέψιμου κειμένου, το οποίο θα βρίσκεται μέσα του. Δεν ξέρουμε πού, αλλά μπορούμε με ασφάλεια να πούμε ότι θα υπάρχει σε κάθε μήνυμα και θα είναι κρυπτογραφημένο με τον ίδιο ακριβώς τρόπο (με τις ίδιες ρυθμίσεις) όπως και το υπόλοιπο σημαντικό κείμενο. Για παράδειγμα, στην επικοινωνία των Γερμανών με τα υποβρύχιά τους είναι αναμενόμενο να βρούμε σε κάθε μήνυμα τη φράση “HEILHITLER”. Ή ίσως το πρωινό τους μήνυμα να περιέχει το δελτίο καιρού, οπότε ψάχνουμε τη λέξη “WETTERBERICHT”.

Αν θέλετε να μεταφέρετε το παραπάνω στη σύγχρονη εποχή, ας υποθέσουμε ότι έχετε φτιάξει μια σύγχρονη μηχανή Enigma για να στέλνετε κρυπτογραφημένες εικόνες JPG. Θα τα πηγαίνατε μια χαρά, αλλά μάλλον θα πρέπει να συνειδητοποιήσετε ότι κάθε εικόνα JPG έχει μια τυποποιημένη επικεφαλίδα (header): Αν κάποιος ενδιάμεσος (κακόβουλος) χρήστης ξέρει ότι μεταδίδετε εικόνες, μπορεί να ξεκινήσει ψάχνοντας για το κλειδί σας μέσα στο header: ξέρει το cleartext!

Στα μηνύματα όμως που στέλνονταν με το Enigma κατά τη διάρκεια του πολέμου, δεν γνωρίζαμε την ακριβή θέση που θα εμφανίζονταν το τυποποιημένο και προβλέψιμο cleartext. Φανταζόμαστε βέβαια ότι το “WETTERBERICHT” θα ήταν κάπου στην αρχή και το “HEILHITLER” κάπου στο τέλος, αλλά σε αντίθεση με την επικεφαλίδα του JPG δεν μπορούμε να ξέρουμε τις ακριβείς θέσεις. Εδώ είναι που έρχεται το μειονέκτημα της Enigma, που συζητήσαμε πριν: Η μηχανή δεν κρυπτογραφεί ποτέ ένα γράμμα στον εαυτό του!

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

Όλη αυτή τη δουλειά που σας περιγράψαμε παραπάνω την έκανε ο γνωστός μας Alan Turing στο Bletchey Park, το κέντρο αποκρυπτογράφησης των Βρετανικών μυστικών υπηρεσιών στο Β’ Παγκόσμιο πόλεμο. Και, ναι, τα πάντα βασίστηκαν στα μαθηματικά (ξέρω ότι τώρα τρίβει τα χέρια του από ευχαρίστηση ο κος Εκδότης!)

Διαβάστε ολόκληρο το άρθρο στο deltaHacker 022 (τεύχος Ιουλίου 2013).

Το μηνιαίο περιοδικό deltaHacker είναι πλέον ηλεκτρονικό! Μάθετε για τις νέες, απίστευτες τιμές και κάντε τώρα την παραγγελία σας συμπληρώνοντας τη σχετική φόρμα.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων