KRIPTOGRAPHI
Saat
ini bukan hanya militer yang membutuhkan sandi dalam berkomunikasi.
Dalam bisnispun banyak hal terutama yang berkaitan dengan transaksi
membutuhkan sandi agar hanya yang berkepentingan saja yang bisa mengerti
maksudnya.. Dengan berkembangnya serta akrabnya orang dengan internet,
tidak sedikit orang yang menggunakan fasilitas internet untuk
berkomunikasi dengan cara menggunakan sandi, yang dalam ilmu
pengetahuan disebut kriptographi.
Katakanlah
Wina dan Johan bersepakat untuk saling mengirim pesan lewat internet
sehingga orang lain seperti Thea tidak akan mengerti maksudnya. Pesan
yang sesungguhnya yang disebut plaintext akan dikirim oleh Wina dengan
cara disandikan dulu menjadi pesan dalam bentuk sandi yang disebut
ciphertext. Proses mengubah dari plaintext
menjadi ciphertext ini disebut enkripsi. Tetapi Johan yang menerima
pesan ini dalam bentuk ciphertext harus mengubah dulu menjadi plaintext
dengan cara yang sudah disepakati bersama antara Wina dan Johan. Proses pengubahan dari ciphertext menjadi plaintext ini disebut proses dekripsi.
Baik
dalam proses enkripsi maupun dekripsi dibutuhkan kunci, kunci ini
merupakan kesepakatan yang telah ditentukan semula. Bisa berbentuk
formula matematika ataupun aturan yang berlaku.
Misalnya plaintext mempunyai n buah huruf dalam alphabet. Plaintext ini dinyatakan dalam vektor x :
x = ( x1 x2 x3 … xn ) dengan xi adalah huruf
Setelah di enkripsi menjadi ciphertext dalam bentuk :
y = ( y1 y2 y3 … ym ) dengan yi juga huruf
Jadi disini y = Ek (x) dan x = Dk (y)
Ek adalah kunci Enkripsi, sedangkan Dk adalah kunci Dekripsi
Beberapa cipher yang sederhana
- Cipher pergeseran
Cipher
ini adalah cipher yang paling sederhana dalam sistem kriptographi.
Sistem ini telah digunakan oleh Julius Caesar kira-kira 2000 tahun yang
lalu.
Agar
bentuknya menjadi sederhana, kita tidak membedakan antara huruf besar
dan huruf kecil. Spasi dan tanda-tanda baca dianggap tidak ada. Kita
ubah ke-26 huruf alphabet ini dalam bilangan bulat dari 0 sampai 25
seperti tabel berikut.
Tabel 1. Perubahan huruf menjadi bilangan bulat
A 0 J 9 S 18
B 1 K 10 T 19
C 2 L 11 U 20
D 3 M 12 V 21
E 4 N 13 W 22
F 5 O 14 X 23
G 6 P 15 Y 24
H 7 Q 16 Z 25
I 8 R 17
Aturan Enkripsi dalam menggeser cipher ditentukan oleh formula matematika :
yi = (xi + k) mod 26 = Ek (xi)
Sedangkan aturan Dekripsinya adalah :
xi = (yi – k) mod 26 = Dk (yi)
Dengan catatan : bilangan a mod m = b dibaca a modulo m sama dengan b artinya bila bilangan a dibagi m hasilnya sama dengan suatu bilangan dengan sisa b ( b harus bilangan positif)
Misal : 10 mod 26 = 10 karena 10 : 26 = 0 sisa 10
30 mod 26 = 4 karena 30 : 26 = 1 sisa 4
-5 mod 26 = 21 karena -5 : 26 = -1 sisa 21
Contoh : Wina akan meng enkrip pesan ”JOHAN ITU BAIK” dengan mengambil
k = 10
Proses enkripsi :
Plaintext : J = 9 ; ciphertext 9 + 10 = 19 ; 19 mod 26 = 19 → T
O = 14 14+10 = 24 ; 24 mod 26 = 24 → Y
H = 7 7 + 10 = 17 ; 17 mod 26 = 17 → R
Dan seterusnya, akan didapat ciphertext
TYRKXSDELKSU
Adapun proses dekripsinya :
ciphertext T = 19 ; plaintext 19 – 10 = 9 ; 9 mod 26 = 9 → J
Y = 24 24 – 10 = 14 ; 14 mod 26 = 14 → O
R = 17 17 – 10 = 7 ; 7 mod 26 = 7 → H
Dan seterusnya, akan didapat plaintext
JOHANITUBAIK
2. Cipher Vigenere
Cipher
ini diciptakan oleh Blaise Vigenere pada abad ke-16. Dibandingkan
dengan cipher pergeseran dari Julius Caesar, cipher ini lebih kuat;
maksudnya lebih sulit bagi orang yang tidak berhak untuk menganalisis
dalam mendapatkan plaintext.
Dalam proses enkripsi, ada kata kunci, sebutlah
k = k1 k2 k3 …km
Dan dengan menggunakan tabel 1, aturan dalam enkripsi adalah
Ek (x) = (x1+k1 x2+k2……xm+km) mod 26
Sedangkan dekipsinya adalah :
Dk (y) =(y1-k1 y2-k2 ……ym-km)
Apaabila kata kuncinya lebih pendek dari pesan dalam plaintext, maka dilakukan pengulangan.
Sebagai contoh akan dilakukan enkripsi dari “JOHAN
ITU BAIK YA”, dengan kata kunci “RICHIE”. Dilakukan pemotongan sebagai
berikut. Karena kata kunci terdiri dari 6 buah huruf, plaintext
dipotong-potong masing-masing 6buah huruf juga.
RICHIE + JOHANI ; RICHIE + TUBAIK ; RI + YA
Proses Enkripsi : R + J = (17 + 9) mod 26 = 26 mod 26 = 0 → A
I + O = (8 + 14) mod 26 = 22 mod 26 = 22 → W
C + H = (2 + 7) mod 26 = 9 mod 26 = 9 → J
Dan seterusnya, akan didapat ciphertextnya :
AWJHVMKCDHQPWI
3. Cipher Substitusi.
Dalam
cipher ini setiap huruf disubstitusi secara acak dengan huruf yang lain
(boleh juga ada yang sama). Misal dalam tabel berikut ruas kiri adalah
huruf dalam plaintext, diganti denga ruas kanan sebagai ciphertext
Tabel 2 . Contoh substitusi
A = Q J = P S = L
B = W K = A T = Z
C = E L = S U = X
D = R M = D V = C
E = T N = F W = V
F = Y O = G X = B
G = U P = H Y = N
H = I Q = J Z = M
Dengan substitusi ini, pesan “JOHAN ITU BAIK’ menjadi PGIQFOZXWQOA
4. Cipher substitusi sandi binair.
Misal dalam cipher ini dilakukan substitusi dilakukan masing-masing dalam blok tiga bit.
Sebutlah X sebagai plaintext dan Y sebagai ciphertext dengan substitusi :
Tabel 3 . Tabel enkripsi
X : 000 001 010 011 100 101 110 111
Y : 011 111 000 110 010 100 101 001
Untuk plaintext dengan pesan : “JOHAN ITU BAIK YA” dipecah dalam beberapa blok :JOH ANI TUB AIK YA.
Tetapi
pada blok terakhir hanya ada dua huruf. Dalam hal ini kita bisa
menambah sebuah huruf lagi missal huruf “A”. Sehingga blok terakhir
menjadi “YAA”
Dalam proses baik enkripsi maupun dekripsi menggunakan bilangan binair dengan tabel sebagai berikut :
Tabel 4. Tabel bilangan binair
0 = 00000 1 = 00001 2 = 00010
3 = 00011 4 = 00100 5 = 00101
6 = 00110 7 = 00111 8 = 01000
9 = 01001 10 = 01010 11 = 01011
12 = 01100 13 = 01101 14 = 01110
15 = 01111 16 = 10000 17 = 10001
18 = 10010 19 = 10011 20 = 10100
21 = 10101 22 = 10110 23 = 10111
24 = 11000 25 = 11001 26 = 11010
27 = 11011 28 = 11100 29 = 11101
30 = 11110 31 = 11111
Sehingga proses enkripsinya :
J = 8 = 01001
O = 14 = 01110
H = 7 = 00111
JOH = 010010111000111 , selanjutnya di blok setiap tiga bit; menjadi
010 010 111 000 111 dan dari tabel 3. didapat enkripsi
100 000 001 011 001 . Kemudian dikembalikan dalam blok 5 bit
10000 = 16 = Q ; 00010 = 2 = C ; 11001 = 25 = Z
Jadi ciphertext dari “JOH” adalah “QCZ”
Bila dijumpai konversi dari lima buah bit menjadi > 25, harus di modulo kan 26.
Kekuatan dan Keamanan
Dalam menganalisis sistem kriptographi bisa dihitung seberapa kuat keamanan suatu sistem;
yaitu sebarapa sulit / lama menghitung untuk mendapatkan dekripsinya.
Seperti pada contoh 1, hanya dengan 25 kali percobaan (dengan cara
menggeser alphabet) dekripsi sudah bisa ditemukan. Dan dengan demikian orang lain yang melakukan analisis untuk menemukan proses dekripsi bisa membaca informasi yang sebenarnya.
Dalam contoh kedua, kekuatannya lebih besar dari contoh pertama. Untuk menelusuri dalam menemukan plaintext dibutuhkan kunci sebanyak 26m. Ambil untuk m = 7, harus menelusuri sebanyak 267 yang sama dengan 8.031.810.176.untuk mendapatkan informasi sebenarnya.
Masih
banyak sistem kriptographi yang ada. Selain dengan pergeseran alphabet,
ada pula dengan cara permutasi, dan ada yang lain lagi. Semakin kuat system dalam kriptographi, keamanan semakin terjamin, semakin dicari orang.
Sistem kriptographi yang terkenal kekuatannya hingga saat ini adalah sistem RSA . Adalah Rivest, Shamir,dan Adleman (RSA) pada tahun 1976 yang meneliti serta menemukan algoritma RSA ini.
Kuatnya
keamanan dalam sistem kriptographi RSA bisa dilihat dalam proses
enkripsi maupun dekripsi nya. Sistem kriptographi RSA menggunakan
bilangan prima dan bilangan modulo. Menurut penemunya untuk memfaktorkan
bilangan bulat yang terdiri dari 200 digit menjadi factor primanya
membutuhkan waktu 4 milyard tahun dengan kecepatan computer pada saat
itu. Padahal faktorisasi ini adalah salah satu cara yang digunakan sistem kriptographi RSA.
Tidak ada komentar:
Posting Komentar