Emulator Bom Turing pada Raspberry Pi dan Arduino

" Enigma " - serangkaian mesin sandi rotor elektro-mekanis Jerman, yang telah digunakan sejak dua puluhan abad terakhir. Termasuk waktu transmisi aktif pesan yang dienkripsi pada Enigma jatuh selama Perang Dunia Kedua. Dalam hal ini, nilai praktis yang sangat besar telah muncul untuk memecah enkripsi Enigma.

Untuk meretas kode Enigma, Biro Penyandian Polandia mengembangkan bom kriptologis, yang digunakan untuk meretas pesan. Secara total, enam mesin diciptakan untuk enam kombinasi rotor, yang memiliki cakupan terbatas karena kekhususan kondisi untuk pesan terenkripsi. Mesin dengan cepat kehilangan maknanya dengan diperkenalkannya rotor baru, dan pihak Polandia tidak memiliki sumber daya untuk membuat 54 "bom" lagi. Setelah itu saya harus kembali ke metode manual -lembaran Zygalsky . Berdasarkan perkembangan Polandia, Bombe yang lebih maju , mesin elektromekanis, yang paling sering dikaitkan dengan kepribadian Alan Turing, telah dibuat. Secara total, sekitar satu setengah ratus "Bom" Inggris dibangun. Setelah berakhirnya Perang Dunia II, hampir semua Bom dihancurkan karena alasan kerahasiaan.

Meskipun ada dokumentasi pada perangkat dalam sirkulasi bebas, upaya yang berhasil untuk menciptakan kembali Bom dapat dihitung dengan jari satu tangan. Sebagai contoh, ini adalah rekonstruksi yang berhasil dari Bombe Rebuild Project dari tim amatir yang dipimpin oleh John Harper. Replika butuh 13 tahun untuk dibuat. Kemarin di jaringan menerbitkan proyek yang jauh lebih sederhanaamatir dari Selandia Baru. Ini adalah emulator tiga rotor. Dalam "Bom" yang sebenarnya ada 26 kali lipat yang saling berhubungan.

Enigma menggunakan sandi polyalphabetic , contoh paling terkenal di antaranya adalah sandi Viginer . Kita dapat secara singkat menggambarkan prinsip operasi sandi sebagai sandi dinamis Caesar, di mana kedalaman perubahan berubah sesuai dengan algoritma tertentu. Hati Enigma adalah tiga rotor, meskipun kemudian empat salinan dibuat. Pada setiap rotor di kedua sisi ada 26 kontak yang sesuai dengan huruf-huruf alfabet. Sambungan listrik trek antara kontak tidak masuk dalam garis lurus, mereka berbeda dari rotor ke rotor. Rotor dapat dilepas, diubah lokasinya atau masukkan rotor lain dari set. Sejak Januari 1939, di pasukan darat dan penerbangan, set terdiri dari 5 rotor, yang memberikan 60 kombinasi, dan di armada - 8 (336 kombinasi).



Ukuran tambahan adalah penggunaan panel tambalan. Sambungan listrik dengan kabel pada panel depan mesin memungkinkan Anda untuk mengubah huruf berpasangan: A dapat menjadi R, dan R dalam hal ini akan menjadi A. Untuk membaca pesan, Anda perlu mengetahui posisi rotor pada spindle, yang digunakan rotor dan reflektor dari set, kode enkripsi (3 karakter Latin) alfabet) dan posisi kabel pada panel tambalan. Dalam beberapa versi, langkah-langkah lain diperkenalkan: reflektor juga diputar, lebih banyak rotor digunakan, dan sebagainya.



Setelah menekan tombol, arus melewati jalur listrik dari kunci, melalui kontak pada panel tambalan, melalui tiga rotor dengan posisi trek yang berbeda, kembali melalui reflektor dan lagi melalui tiga rotor. Kemudian lampu menyala di panel dengan huruf yang sesuai dari sandi. Setidaknya satu rotor membuat gerakan, mengubah kombinasi untuk mengenkripsi huruf berikutnya. Rotor berputar seperti detik, menit, dan searah jarum jam dalam arloji mekanik: rotor kanan yang cepat membuat revolusi penuh, dan kemudian revolusi 1/26 menghasilkan rata-rata. Setelah putaran penuh dari tengah, putaran 1/26 membuat kiri paling lambat.

Bom membantu menetapkan pengaturan Enigm yang mungkin dalam pasukan Jerman. Dia tidak memberikan pesan yang sudah jadi. Untuk menyelesaikan pekerjaan, semua pekerjaan manual yang sama diperlukan. "Bom" membantu mengurangi jumlah solusi yang mungkin menjadi proses yang dapat diterima dan terjangkau.

Untuk mendekripsi pesan, apa yang disebut "petunjuk" diperlukan. Serangan plaintext terkenal dilakukan: teks terenkripsi diperiksa untuk kemungkinan berisi kata-kata dan frasa yang akrab. Menemukan "petunjuk" diperlukan pengetahuan tentang bahasa gaul militer Jerman dan gaya komunikasi operator telekomunikasi. Peran signifikan dimainkan oleh desain reflektor: surat itu tidak pernah bisa dienkripsi ke dalam dirinya sendiri. Setelah memilih petunjuk, apa yang disebut "menu" dikompilasi, sebuah program untuk menemukan solusi yang mungkin. Proses "menu" terganggu oleh pemberhentian dengan solusi kandidat, yang kemudian diperiksa. Biasanya, ada banyak berhenti dengan keputusan yang salah sebelum menemukan yang tepat.

Seorang amatir dari Selandia Baru menciptakan kembali Bom. Akan lebih akurat untuk mengatakan bahwa dia menciptakan kembali emulator dari salah satu dari 26 blok mesin dekripsi. Perangkat yang dibuat kompak - dapat diletakkan di atas meja. Perhitungan dilakukan pada Raspberry Pi 2. Perangkat bahkan tidak menyembunyikan ini: hasilnya ditampilkan sampai akhir pergerakan rotor. Tiga drum dengan warna yang sama (dalam aslinya mereka memiliki warna khusus untuk tugas yang akan dilakukan) berputar murni untuk efek kosmetik. Tetapi mereka melakukannya dengan sangat meyakinkan dan dengan kecepatan yang sama seperti aslinya. Prosesnya bagus untuk ditonton.


Video memulai "menu" dengan laporan cuaca, yang digunakan untuk menunjukkan "Bom" yang sebenarnya. Sangat mudah dimengerti mengapa: jelas.

Proyek ini dibantu oleh ketua tim untuk menciptakan replika lengkap John Harper dan beberapa ahli lainnya. Sebelum ini, amatir membuat arloji bom - versi yang berfungsi penuh dari mesin peretas Enigma, yang dapat dikenakan di pergelangan tangan.



Di dalam Bom desktop, ada papan Raspeberry Pi 2, Arduino, baterai asam timbal 12 volt dan voltmeter. Emulator mengkonsumsi banyak energi dan dengan mudah menarik masing-masing 1,5-2 ampere. Awalnya, perangkat lunak untuk pekerjaan ditulis dalam Basic, tetapi kemudian porting ke C ++. Raspberry Pi 2 terhubung ke Arduino dan mengendalikan tiga motor stepper. Arduino memberi tahu Raspeberry Pi 2 posisi motor sebagai serangkaian pulsa sehingga mereka dapat dihentikan pada waktu yang tepat. Di samping adalah layar kristal cair, yang memainkan peran indikator mekanis "Bom" asli. Tombol start dan interupsi terletak di depan seperti sampel nyata.



Kasing terbuat dari baja dengan ketebalan 0,8 mm, dan drum dalam skala 3/4 - dari kaleng biasa. Semua bagian perangkat dibuat dengan tangan. Beratnya sekitar 10 kilogram. File dari "menu" diambil dari flash drive, yang dapat dimasukkan dengan membuka tutup di bagian belakang. Juga di samping adalah port jaringan untuk memantau emulator, ditutup oleh penutup. Dalam operasi, perangkat ini berisik dengan mesin, bahkan jika volumenya tidak dapat dibandingkan dengan suara “Bom” nyata .

Penulis berjanji untuk menerbitkan kode sumber program perangkat, meskipun tanpa perangkat keras yang ada dalam satu salinan, tidak ada yang dapat menjalankannya. Tetap berharap penulis tidak membawa ciptaannya ke sekolah, dan terlebih lagi tidak menjelaskan pada penangkapan apa itu.

Halaman proyek dengan foto
Simulator Bom Online Turing

Source: https://habr.com/ru/post/id384917/


All Articles