Anda di halaman 1dari 7

Teknik-teknik Sederhana Kriptografi

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

pesan rahasia (plaintext)

kunci (key) dan

sandi (ciphertext)

Dalam dunia persandian klasik, ada dua tipe/cara utama untuk menciptakan/memecahkan sandi, yaitu
substitusi 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 sama-sama 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 ada
reflector 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

I EKMFLGDQVZNTOWYHXUSPAIBRCJ

II AJDKSIRUXBLHWTMCQGZNPYFVOE

III BDFHJLCPRTXVZNYEIWGAKMUSQO

IV ESOVPZJAYQUIRHXLNFTGKDCMWB

V 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 menciptakan
mesin 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 Turing
berkumpul 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.

Mungkin sampai di sini lo semua berpikir bahwa Alan Turing adalah seorang jenius luar biasa yang telah
mengubah sejarah baik dalam teknologi informasi maupun tatanan struktur politik dunia, hanya dengan
menjadi seorang ahli matematika (tuh kan siapa bilang ahli matematika tidak bisa mengubah dunia?).
Akan tetapi jangan lo sangka Alan Turing diperlakukan sebagai seorang pahlawan perang, kehidupan
pribadinya bisa dibilang sangat tragis.

Setelah Perang Dunia II, dia ditangkap dan dihukum karena pengakuannya sebagai seorang
homoseksual. Konsekuensinya dia dikeluarkan dari kerjaannya sebagai Konsultan Kriptografi di
Departemen Komunikasi Inggris waktu itu, dan diwajibkan meminum obat yang membuat hormon
dalam tubuhnya tidak stabil sampai menyebabkan dia impoten dan tumbuh payudara seperti
perempuan. (ini beneran! untuk detailnya bisa ditanyain di comment section)

Tiga tahun setelah dia dihukum, akhirnya Turing memutuskan untuk bunuh diri di umur 41 dengan
memakan apel yang mengandung sianida. Akhirnya, setelah lebih dari 50 tahun, pada tahun 2014
pemerintah Inggris secara resmi menyatakan permintaan maaf atas perlakuan mereka terhadap Alan
Turing. Tanpa kontribusi Turing, gue mungkin ngga bisa tulis dokumen seperti ini buat dijadiin blog dan
kemajuan kita dalam penggunaan komputer mungkin tidak akan maju sepesat sekarang.

Anda mungkin juga menyukai