Η μηχανή Enigma ήταν μια μηχανική συσκευή που χρησιμοποιήθηκε για την κωδικοποίηση και την αποκωδικοποίηση μυστικών μηνυμάτων. Κατά τη διάρκεια του Β ‘Παγκοσμίου Πολέμου, η μηχανή Enigma χρησιμοποιήθηκε από τον γερμανικό στρατό για να επικοινωνήσει με στρατεύματα στο πεδίο, πολεμικά πλοία και υποβρύχια. Συμμαχικοί κρυπτολόγοι, που εργάζονταν με την κωδική ονομασία ULTRA, έσπασαν με επιτυχία τους περισσότερους κρυπτογράφους Enigma. Αυτό έδωσε στους Συμμάχους μια σημαντική πηγή πληροφοριών για την πολεμική προσπάθεια.
Η ίδια η μηχανή Enigma ήταν μηχανική και έμοιαζε πολύ με γραφομηχανή. Κάθε φορά που πατιόταν ένα πλήκτρο, το ηλεκτρονικό σήμα περνούσε μέσα από μια σειρά περιστρεφόμενων τροχών κρυπτογράφησης, μέσα από ένα βύσμα και μετά έβγαινε πίσω προς διαφορετική κατεύθυνση. Επειδή κάθε τροχός μπορούσε να περιστραφεί για να αλλάξει τη διαδρομή του σήματος, ήταν δυνατή μια τεράστια ποικιλία διαφορετικών πλήκτρων και οι τροχοί μπορούσαν απλώς να περιστρέφονται κάθε φορά που χρειαζόταν ένα νέο κλειδί. Οι τροχοί ήταν διατεταγμένοι να περιστρέφονται κάθε φορά που πατιέται ένα πλήκτρο, καθιστώντας το Enigma ασφαλές έναντι επιθέσεων με συχνότητα γραμμάτων. Οι θέσεις εκκίνησης των τροχών άλλαζαν επίσης, συχνά πολλές φορές την ημέρα.
Θεωρητικά, το Enigma υποτίθεται ότι ήταν ασφαλές έναντι οποιουδήποτε τύπου επίθεσης ωμής βίας, καθώς υπήρχαν πάρα πολλές δυνατότητες κρυπτογράφησης για να τα δοκιμάσουμε όλα ένα προς ένα. Μεταγενέστερες εκδόσεις του Enigma, όπως τα μοντέλα με τέσσερις ρότορες που χρησιμοποιούσαν τα γερμανικά U-boat, αύξησαν ακόμη περισσότερο τον αριθμό των συνδυασμών. Ακόμα κι έτσι, τα αποτυπωμένα έγγραφα κώδικα και το ανθρώπινο λάθος έδιναν συχνά στους κρυπτογράφους το πάνω χέρι, και ο πολωνικός στρατός αποκωδικοποιούσε μυστικές γερμανικές επικοινωνίες ήδη από το 1932. Η δουλειά τους τελικά έφτασε στη Βρετανία και την Αμερική και η διάρρηξη των κωδικών συνεχίστηκε σε μεγάλο βαθμό επιτυχίας σε όλο τον πόλεμο, παρά τις προσπάθειες των Γερμανών να κάνουν τη μηχανή όλο και πιο περίπλοκη.
Η επιτυχής διάσπαση του κώδικα Enigma απαιτούσε την εύρεση κανονικοτήτων, ή γνωστών παραγόντων, για να μειωθεί ο τεράστιος αριθμός πιθανών κρυπτογράφησης. Πολλά απλά κείμενα, όπως το «Heil Hitler», εμφανίζονταν συχνά στα γερμανικά μηνύματα. Αυτό έδωσε σημαντικές ενδείξεις στους κρυπτοαναλυτές, οι οποίοι μπορούσαν να ψάξουν μέσα από ένα κρυπτογραφημένο μήνυμα και να δουν πού μπορεί να εμφανιστεί μια τέτοια φράση. Οι Γερμανοί μετέδωσαν επίσης απλές, εύκολες στην ανάλυση κεφαλίδες έξι γραμμάτων στις αρχές των μηνυμάτων, όπως το «EINEIN», για να δώσουν τη θέση των τροχών κρυπτογράφησης για το υπόλοιπο μήνυμα. Όταν ο χώρος των πιθανών κωδικών κλειδιών εξακολουθούσε να είναι πολύ μεγάλος, κατασκευάστηκαν αρκετοί πρωτόγονοι υπολογιστές, για να μετρούν αυτόματα τις χιλιάδες δυνατότητες. Αυτό έγινε μερικές από τις πρώτες εργασίες που έγιναν σε υπολογιστές γενικού σκοπού.