Anda di halaman 1dari 12

Teknik-teknik Sederhana

Kriptograf
Ilmu yang secara khusus mempelajari pembuatan kode-kodean ini disebut dengan
Kriptografi. Kalo lo nanti niat kuliah masuk jurusan Ilmu Komputer/IT, lo bakal pelajarin ini
sebagai mata kuliah wajib. Kriptografi (bahasa Yunani, kriptos rahasia dan graphein
tulisan) adalah pembelajaran dan praktek cara-cara yang memungkinkan komunikasi yang
aman (alias rahasia) dari pihak ketiga. Ada tiga komponen kode utama yang menjadi
perhatian kita, yaitu

1. pesan rahasia (plaintext)


2. kunci (key) dan
3. sandi (ciphertext)

Dalam dunia persandian klasik, ada dua tipe/cara utama untuk menciptakan/memecahkan
sandi, yaitusubstitusi dan transposisi. Pada tulisan ini, gue akan bahas sandi substitusi aja
ya. Sandi substitusi mengubah satu huruf atau karakter di pesan (plaintext), menurut aturan
kunci (key), menjadi karakter lain di sandi rahasi (ciphertext).

Sandi Caesar
Contoh paling simpelnya sandi substitusi adalah sandi Caesar. Sandi Caesar adalah sandi
substitusi yang menggunakan kunci yang panjangnya 1 karakter doang (karakter diambil

dari alfabet). Biasanya, para pihak yang terlibat udah sepakat dan sama2 tau kalo mereka
bakal pake Sandi Caesar dengan kunci karakter tertentu untuk bertukar pesan rahasia.

Pengirim pesan: punya pesan asli, tau kunci, tau pake Sandi Caesar. Dia gunain untuk
menghasilkan sandi rahasia.
Penerima pesan: tau kunci, tau pake Sandi Caesar, tau sandi rahasia. Dia gunain buat
memecahkan sandi rahasia untuk mendapatkan pesan asli.

Indeks Urutan Alfabet

Alfabet yang dipakai untuk merangkai pesan (plaintext) diberi indeks nomor seperti gambar
di atas. Karakter yang dipake sebagai kunci juga diambil dari alfabet. Kunci ini bakal
"ditambahin" atau buat "menggeser" karakter pesan asli untuk membentuk sandi. Kalau
ketika ditambahkan atau digeser menghasilkan indeks lebih dari 25, urutan indeks bakal
balik lagi ke 0. Dari Z mentok, balik lagi ke A. Langsung aja ke contoh, ya.

Misalnya, kita mau tulis ZENIUS dengan kunci B. Huruf Z-E-N-I-U-S dalam urutan alfabetik
adalah 25-4-13-8-20-18. Kunci "B", nilai indeksnya 1. Dengan menambahkan kunci B (1) ke
pesan kita, sandi yang terbentuk jadinya ditambahin aja +1 atau geser ke kanan
1x semuanya, jadi seperti ini: 26-5-14-9-21-19. Lalu yang lebih dari 25, kita ulang ke 0.
Berhubung yang yang lebih dari 25 cuma satu karakter, jadinya yang diubah karakter
pertama itu doang. Jadinya seperti ini: 0-5-14-9-21-19. Nah, dari indeks alfabet ini, kita ubah
lagi ke dalam bentuk abjad, jadi sandi yang kita dapet adalah AFOJVT.

Jadi, waktu gue kirim sandi rahasia bentuknya adalah AFOJVT menggunakan kunci yang gua
gunakan adalah B (1), kemudian oleh si penerima pesan, tinggal dikurangin indeksnya
sama dia atau digeser ke kiri 1x, sandi tersebut didekripsi dan dibaca menjadi ZENIUS.

Ngerti kan caranya? Ini masih tergolong sandi yang simpel banget.

Nah, kalo udah ngerti, coba pecahkan sandi rahasia yang gue kasih ya. Sandi
rahasianya, ORUBKEUA. Pake kunci, G. Tulis jawabannya di bagian komen ya..

Sandi Atbash
Sandi klasik lain contohnya adalah sandi Atbash. Sandi Atbash ini menukar urutan huruf
yang dari depan ke belakang jadi belakang ke depan seperti di bawah ini:

Pesan: ABCDEFGHIJKLMNOPQRSTUVWXYZ

Sandi: ZYXWVUTSRQPONMLKJIHGFEDCBA

Dengan menggunakan sandi Atbash, pesan ZENIUS akan menjadi sandi AVMRFH. Si
penerima pesan, tinggal tukar balik aja tuh urutan hurufnya. Nama Atbash ini sendiri
berasal dari penggunaan pertamanya dalam huruf Yahudi, yaitu Aleph-Tav-Beth-Shin, huruf
pertama, terakhir, kedua, dan kedua sebelum terakhir dalam bahasa Yahudi. Kalau dalam
huruf latin namanya kurang lebih akan jadi Azby. Jadi nama dari sandi ini sendiri,
menggambarkan mekanismenya, lucu yah?

Kalo nama gue disandiin pake Sandi Atbash, IVAN WASKITA --> REZM DZHPRGZ. Kalo nama
lo gimana?

Sandi Polialfabet
Sandi substitusi ada juga yang kuncinya lebih dari 1 karakter, biasa disebut sebagai sandi
polialfabet. Yang paling umum adalah sandi Vigenere. Tekniknya sama aja kayak Sandi
Caesar, bedanya, kuncinya aja lebih dari 1 karakter. Berarti kita masih bisa memanfaatkan
indeks urutan alfabet yang kita gunakan untuk Sandi Caesar sebelumnya.

Langsung ke contoh penggunaannya. Kita mau tulis pesan ZENIUS dengan kunci 3 huruf
UAN. Caranya sama aja kayak Sandi Caesar, tinggal lo tambahin aja indeks nomornya.
Berhubung kuncinya (UAN) terdiri dari 3 karakter, sedangkan pesannya (ZENIUS) terdiri dari
6 karakter, kita bisa ngulangin kuncinya sehingga panjang karaktern kunci = panjang
karakter pesan --> UANUAN. Ini berlaku untuk semua case, di mana panjang karakter kunci
tidak sama dengan panjang karakter pesan. Tinggal lo ulangi aja karakter kunci. Misal, pesan
= IVANWASKITA (11 karakter), kunci = UNYU (4 karakter). Tinggal lo ulang aja karakter
kuncinya jadi 11 karakter --> UNYUUNYUUNY.

Jadi, kalo gua


kirim sandi polialfabet TEACUF dengan formula kunci UANUAN, maka sang penerima bisa
membaca pesan tersebut sebagai ZENIUS. Segini doang sih, masih gampang
dimengerti lah, ya?

Oke, last challenge nih, ya. Menggunakan Sandi Vigenere, coba pecahkan sandi rahasia ini:
"Riyigssonv msmhrzu" dengan kunci "zenius". Selamat utak-atik :p

Sandi Berlapis
Untuk memperkuat sandi, pesan rahasia militer melakukan sandi beruntun, misalnya
setelah kita lakukan Atbash ke kata ZENIUS menjadi AVMRFH, kita sandikan lagi dengan
sandi polialfabet 3 huruf UAN menjadi UVZLFU. Nah lho, sandinya emang sama-sama ngga
bisa dibaca, tapi buat orang yang gak tau kuncinya, akan jauh lebih susah untuk dapetin
PESAN ASLI-nya. Enigma sendiri juga make sandi beruntun polialfabet seperti ini nih, tapi
bukan cuma 2, 3, atau 4 lapis, tapi 9 LAPIS..!! Gila ya!? Makanya Enigma ini konon adalah
mesin enkripsi yang tidak mungkin bisa dipecahkan, saking rumitnya kunci yang digunakan.
Selain itu, kunci yang digunakan oleh mesin ini juga berganti-ganti terus dalam 24 jam.
Kebayang gak tuh gimana caranya kalo pesan rahasia 9 lapis ini dicoba untuk dipecahkan
secara manual oleh otak manusia?

Nah, dengan kejeniusan seorang Alan Turing, dia akhirnya membuat sebuah mesin yang
bisa mengkomputasi setiap kode menjadi pesan dengan delay waktu hanya beberapa
menit, gokil gak tuh?? Keren-nya lagi, mesin yang dia buat ini akhirnya menjadi pelopor dari
alat yang kita kenal sekarang sebagai KOMPUTER.

Okay, sekarang gua ajak lo semua buat sejenak menjadi seorang Alan Turing, kita samasama oprek kerumitan dari mesin ENIGMA!

The Enigma
Enigma adalah mesin mekanikal dan elektrikal yang mengubah pesan menjadi sandi.
Gambarannya seperti di bawah:

Bagian mekanik mesin Enigma


Kalau kita mau bikin sandi, yang kita perlu lakukan cuma ketik aja pesan kita huruf per
huruf, terus catet "lampu yang menunjukan karakter sandi" mana yang nyala di lampboard.
Terus kalau kita mau translate kode balik ke pesan rahasia kita, tinggal masukin kodenya
terus catet lagi lampu-berhuruf mana yang nyala. Gampang kan? Cara pakenya memang
gampang, tapi bikin kodenya ternyata ngga sesimpel itu.

denah bagian dalam mesin enigma

Inilah gambaran sederhana ketika Enigma membuat kode berlapis. Pertama-tama ketika
kita mengetik suatu pesan melalui keyword, informasi tersbut bakal masuk ke yang
namanya plugboard (1). Abis keluar dari plugboard, dia bakal masuk ke rotor kanan (2), lalu
ke rotor tengah (3), rotor kiri (4), reflector (5), balik masuk ke rotor kiri (6), tengah (7), kanan
(8), lalu masuk lagi ke plugboard (9). Setelah keluar dari plugboard, baru deh sinyal listriknya
masuk ke papan lampu, nyalain huruf mana yang akan jadi kodenya. Di masing-masing step
itu, huruf yang kita masukin bakal diubah jadi huruf lain, jadi Enigma itu sandi 9 tingkat!

Yuk kita bahas gimana ketiga part ini rotor, plugboard, reflector masing-masing
mengubah sinyal huruf kita.

Plugboard
Plugboard di Enigma ini terdiri dari satu papan listrik yang isinya huruf sama colokan di
masing-masing huruf. Nempel di situ ada 10 pasang huruf yang dihubungin sama kabel
yang dicolokin ke sana. Gunanya plugboard ini adalah generate sandi level satu, mengubah
huruf karakter yang di-input melalui keyboard jadi huruf lain (or not). Contohnya:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
EHSRAGFBZJKLMNORVPCXYWVTUI

plugboard
memungkinkan sistem pengacakan sandi dapat terus berganti secara fleksibel
Dalam contoh di atas, kita hubungin A sama E, B sama H, C sama S dan seterusnya. Di kode
enigma standar Jerman, bakal ada 6 huruf yang ngga berpasangan, dalam contoh kita tadi, J
sampai O. Kalau kita ketik ZENIUS, yang keluar dari plugboard ini adalah IANZYC. Karena
hubungan kabel ini berpasangan dan ga berubah, kalau kita masukin IANZYC ke dalem
plugboard yang keluar kembali menjadi ZENIUS. Ngerti kan? Nah, itu baru lapis satu doang
looh..

Rotor dan reflektor


Ada tiga rotor yang dipakai di Enigma, masing-masing di posisi kanan, tengah dan kiri.
Masing-masing rotor ini mengambil input huruf dari proses sebelumnya (berarti rotor
kanan pertama mengambil input dari plugboard) lalu mengubahnya jadi huruf lain dengan
proses Caesar. Di ujung tiga rotor ini bakal adareflector yang juga akan ngubah huruf yang
dia dapet jadi huruf lain juga. Di bawah adalah kode rotor dan reflektor Enigma yang
digunakan pasukan Jerman:

Kode rotor

ABCDEFGHIJKLMNOPQRSTUVWXYZ

EKMFLGDQVZNTOWYHXUSPAIBRCJ

II

AJDKSIRUXBLHWTMCQGZNPYFVOE

III

BDFHJLCPRTXVZNYEIWGAKMUSQO

IV

ESOVPZJAYQUIRHXLNFTGKDCMWB

VZBRGITYUPSDNHLXAWMJQOFECK

VI

JPGVOUMFYQBENHZRDKASXLICTW

VII

NZJHGRCXMYSWBOUFAIVLPEKQDT

VIII

FKQHTLXOCBJSPDZRAMEWNIUYGV

Reflector A

EJMZALYXVBWFCRQUONTSPIKHGD

Reflector B

YRUHQSLDPXNGOKMIEBFZCWVJAT

Reflector C

FVPJIAOYEDRZXWGCTKUQSBNMHL

Nah, tabel di atas inilah kurang lebih penggambaran sistem acak kode berlapis. Kebayang
kan lo gimana caranya para cyptanalyst (ahli pemecah kode) dibuat keblinger karena ada
1,59 x 10^14 banyak kemungkinan yang harus mereka pecahkan untuk setiap karakter
huruf pesan rahasia yang dikirimkan?

Kalo lo perhatiin contoh gambar yang gue kasih di atas, tipe rotor itu semua ada 8, tapi di
gambar itu yang dipake cuma 3. Maksudnya apa? Maksudnya jika rotor yang dipake untuk
pengiriman sandi itu diganti atau ditukar tempatnya, seluruh mekanisme pengacakan
sandinya jadi beda. Sehingga penerima pesan harus tau rotor mana aja dan posisinya
masing-masing yang dipake sama pengirim pesan. Terus, gimana caranya dong pasukan
Jerman tau kode satu sama lain? Ternyata, mereka terbitin edaran kaya gini nih setiap bulan:

surat
edaran pasukan Jerman untuk menyeragamkan settingan enigma dari hari ke hari
Dari tanggal 1 sampai 31, edaran ini ngasih tau semua operator Enigma rotor mana aja yang
dipake dan posisinya (kiri tengah kanan). Jadi Setiap kali mau nulis atau baca pesan, semua
Enigma harus disetting seperti ini, supaya pesan yang dikirim dan diterima sama.

Inilah kehebatan Jerman dalam memakai Enigma. Pertama, Enigmanya sendiri udah susah
banget buat dibaca setiap harinya. Kuncinya, yang dicetak dalam edaran kaya di atas, di
refresh tiap sebulan sekali. Jadi kalau seandainya mesin Enigma dan edaran itu direbut
sama pihak sekutu, ya cuma bisa jalan buat sebulan, karena awal bulan depan udah diganti
lagi tuh kode. Ada lagi system Kenngruppen di edaran itu, yang dibuat untuk
mengecoh pasukan sekutu dengan membuat pesan asal-asalan yang banyak untuk menipu
sang pemecah kode. Sekutu memang kelabakan banget nih ngadepin kode Jerman yang
susah banget dipecahin. Mereka harus bisa mecahin kode ini pagi-pagi setiap hari karena
besoknya lagi kunci kodenya udah berubah sesuai dengan perubahan jenis rotor, posisi
rotor, dan pasangan-pasangan plugboard yang dipake.

Terus gimana caranya Alan


Turing memecahkan kode
Mesin Enigma?
Sebelum cara pemecahan kode ini diselesaikan oleh Turing, dkk, seorang matematikawan
Polandia bernama Marian Rejewski adalah orang pertama yang menemukan struktur detail
mesin Enigma yang digunakan angkatan bersenjata Jerman. Jerih payahnya terbayarkan
ketika dia berhasil menciptakanmesin Bomba yang berhasil memecahkan kode Enigma.
Tapi karena Polandia keburu diserang Jerman duluan tahun 1939, para intelegen Polandia
sempat kocar-kacir sebelum akhirnya berhasil melarikan salah satu mesin Enigma dan
mesin Bomba ke Inggris. Sejak saat itulah, para matematikawan jago dan ahli-ahli statistik
paling jago di Eropa seperti Gordon Welchman, Max Newman, dan Alan Turingberkumpul
di Bletchley Park dan meneruskan upaya pemecahkan kode Enigma.

Pada awalnya, mereka mencoba untuk memecahkan kode enigma dengan cara manual,
namun ternyata cara itu sangatlah sulit karena mekanisme sandi berlapis ditambah para
pengirim pesan selalu merubah kombinasi rotor setiap harinya. Sampai akhirnya Turing,
dkk mencoba meneruskan inspirasi mesin Bombe yang mampu memecahkan sandi mesin
Enigma dengan waktu yang lebih cepat daripada waktu manual, tapi tetap dibutuhkan
waktu lebih dari 18 jam untuk bisa menyelesaikan seluruh pesan sandi.

Alan Turing OBE, FRS : pioneering computer scientist,


mathematician, cryptanalyst, , mathematical biologist (1912 - 1954)
Sampai akhirnya Turing menemukan celah pada mesin Enigma. Cara kerja mesin Engima
dengan 9 level kode dan rotor yang bergerak dengan mekanisme roda yang berputar,
sehingga tidak memungkinkan satu huruf keluar sebagai huruf itu sendiri. Jadi, kalau kita
masukin huruf A ke Enigma, huruf A ga bakal nyala. Hal ini memungkinkan mesin pemecah
kode untuk mencari lokasi kata-kata umum di sandi. Begitu lokasi kata-kata itu sudah
ketemu di sandi, kemungkinan kombinasi rotor dan posisi rotor langsung turun drastis, jadi
ga semua kemungkinan yang sampe 10 pangkat 14 itu perlu dicoba sama para pemecah
kode.

Akhirnya, mesin Bombe dapat digunakan dengan sangat efisien sehingga memungkinkan
Sekutu untuk memecahkan kode Enigma setiap paginya dalam waktu 20 menit aja. Tentu
saja, pemecahan informasi ini tidak secara gamblang diberitakan, bahkan tidak
diberitahukan secara penuh pada pihak militer Inggris dan sekutu. Kenapa begitu? Alan
Turing sengaja hanya membocorkan rencana-rencana tertentu yang dianggap krusial
supaya pihak Jerman tidak curiga bahwa mesin Enigma yang mereka miliki sudah berhasil
dibongkar oleh pihak sekutu. Bisa lo bayangkan sendiri gimana rasanya Alan Turing dkk.
harus menghadapi tantangan berikutnya (baik moral maupun teknis) untuk memilah
informasi yang mereka berikan pada pihak militer Sekutu, dan mana yang sengaja tidak
diberitahukan, agar tidak menimbulkan kecurigaan.

Anda mungkin juga menyukai