Enigma adalah mesin yang salah satu keluarga berhubungan dengan elektro-mekanis rotor mesin yang telah digunakan untuk menghasilkan ciphers untuk enkripsi dan dekripsi dari pesan rahasia. Enigma yang telah ditemukan oleh insinyur Jerman bernama Arthur Scherbius di akhir Perang Dunia I. Mesin tersebut nenjadi komersial dari awal tahun 1920 dan telah diambil oleh pemerintah militer dan layanan dari sejumlah Negara, terutama oleh Nazi Jerman sebelum dan selama Perang Dunia II. Banyak variasi dari mode Enigma yang dihasilkan, tetapi model militer Jerman, yaitu Wehrmacht Enigma, adalah versi yang paling sering dibahas.
Mesin tersebut telah mendapat nama buruk karena Polandia mathematicians-cryptologists kemudian bersekutu dengan cryptologists sehingga mampu mendekrip pesan yang begitu banyak yang telah ditulis dalam kode pada mesin.
Meskipun Enigma cipher cryptographic telah ditemukan kelemahannya, tapi dalam praktiknya ia hanya dikombinasikan dengan faktor lain (kurangnya cara, kesalahan operator, dan table kunci) bahwa mereka bersekutu diizinkan kelemahan cryptologists mendekripnya pesan.
Ketika kita mengetik pada keyboard dari komputer, pertama kali dikirim melalui rotor pertama yang akan mengalihkan huruf sesuai dengan pengaturan. Huruf yang baru kemudian akan melewati kedua rotor, di mana ia akan diganti sesuai dengan pengaturan kedua rotor. Huruf baru ini pada gilirannya akan melewati rotor ketiga, lalu digantikan dengan sendirinya. Selanjutnya, surat ini baru akan mental dari suatu reflektor, dan kembali melalui tiga rotor. Trik yang dibuat Enigma begitu kuat untuk waktu lama, adalah pemintalan dari rotors. Sebagai teks biasa melalui huruf pertama rotor, rotor pertama akan memutar satu posisi. Rotors dua yang lain akan tetap tak berubah sampai rotor pertama telah diputar 26 kali (jumlah huruf dalam alfabet dan dengan demikian, satu putaran penuh). Kemudian kedua rotor akan memutar satu posisi. Setelah kedua rotor diputar 26 kali (26X26 huruf, yang pertama sejak rotor harus memutar 26 kali untuk setiap kali kedua rotor berputar), lalu rotor ketiga akan memutar satu posisi. Siklus akan terus seperti ini untuk seluruh panjang pesan. Hasilnya pergeseran shift. Prinsip dari pergeseran rotors diizinkan untuk 26X26X26 = 17576 mungkin posisi.