Masih ingat operasi logika dalam pelajaran ”Logika Matematika dan Teori Himpunan” atau ”Sistem Digital”? Di sana tentu ada operator logika bernama OR, AND, NOR, NAND, dan XOR. Nah, ternyata operasi XOR sering digunakan dalam mengekripsi suatu data. Hasilnya? Data baru yang dihasilkan memang agak susah ditebak…tetapi ada yang bilang kalau sudah diketahui data aslinya maka key dari enkripsi ini dengan mudah diketahui.
Secara singkat, operasi XOR akan mengembalikan nilai 1 jika jumlah operand bernilai satu ganjil, jika tidak maka akan mengembalikan hasil 0. Berikut ini contohnya:
1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0
Bagaimana jika 1 XOR 1 XOR 1? Hasilnya 1. Benarkah?
Dalam kriptografi, pembuatan chiper (teks hasil enkripsi) melalui operasi XOR merupakan suatu algoritma enskripsi yang relatif sederhana. Teknik ini beroperasi sesuai dengan prinsip:
A XOR 0 = A,
A XOR A = 0,
(B XOR A) XOR A = B XOR 0 = B,
A XOR A = 0,
(B XOR A) XOR A = B XOR 0 = B,
Dengan logika ini, suatu string teks dapat diekripsi dengan menerapkan operasi XOR berbasis bit (binary digit) terhadap setiap karakter menggunakan key tertentu. Bagaimana mendekripsi outputnya untuk mendapatkan plaintext kembali? Dengan menerapkan operasi XOR terhadap chiper.
Sebagai contoh, string “Wiki” jika ditulis dalam format ASCII 8 bit menjadi 01010111 01101001 01101011 01101001 dapat dienkripsi dengan suatu key misalnya 11110011 sebagai berikut:
01010111 01101001 01101011 01101001
11110011 11110011 11110011 11110011
——————————————– (XOR)
10100100 10011010 10011000 10011010 (Hasil)
11110011 11110011 11110011 11110011
——————————————– (XOR)
10100100 10011010 10011000 10011010 (Hasil)
Dan sebaliknya, untuk dekripsi adalah:
10100100 10011010 10011000 10011010
11110011 11110011 11110011 11110011
——————————————– (XOR)
01010111 01101001 01101011 01101001 (Hasil)
11110011 11110011 11110011 11110011
——————————————– (XOR)
01010111 01101001 01101011 01101001 (Hasil)
Operator XOR sering dijadikan sebagai salah satu komponen dalam pembentukan chiper yang lebih kompleks. Namun, penggunaan suatu key yang berulang secara konstan menyebabkan suatu chiper dapat dengan mudah dipecahkan menggunakan analisis frekuensi (seperti dibahas pada huruf yang paling sering muncul dalam suatu bahasa). Keutamaan dari teknik ini adalah mudah diimplementasikan dan operasi XOR tidak mahal secara komputasional. Karena itu, chiper XOR masih sering kali digunakan untuk menyembunyikan informasi dalam kasus dan kemudian dilengkapi dengan suatu mekanisme keamanan tambahan. Akan tetapi, jika key dibuat sepanjang message (pesan), tidak berulang dan bit-bitnya bersifat random, maka akan menghadirkan efek one-time-pad (dikenal pula sebagai chiper Vernam) yang tidak dapat dipecahkan, bahkan dalam teori sekalipun.
Operasi-operasi yang dapat dilakukan terhadap tipe boolean dikenal dengan operasi logika atau operasiboolean. Operasi ini dilakukan untuk mengeksekusi bilangan lojik yang hanya mengenal dua buah nilai yakni benar (true) atau salah (false). Istilah "bilangan" pada "bilangan lojik" dikarenakan kita dapat menyatakan nilai "benar" dengan angka 1 dan "salah" dengan angka 0.
Untuk lebih mudahnya, hasil operasi a dan b yang merupakan variable bertipe boolean dengan kelima operator : Not, And,Or, XOr dan XAnd dapat dilihat pada tabel kebenaran (truth table) berikut.
a | not a |
true (1) | false (0) |
false (0) | true (1) |
a | b | a And b | a Or b | a XOr b | a XAnd b |
true (1) | true (1) | true (1) | true (1) | false (0) | true (1) |
true (1) | false (0) | false (0) | true (1) | true (1) | false (0) |
false (0) | true (1) | false (0) | true (1) | true (1) | false (0) |
false (0) | false (0) | false (0) | false (0) | false (0) | true (1) |
And
X
|
Y
|
X AND Y
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
Ket: Dia akan bernilai benar jika SEMUA BENAR
OR
X
|
Y
|
X AND Y
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
XOR
X
|
Y
|
X AND Y
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
Sekian ,,,, semoga bermanfaat :)
0 komentar:
Posting Komentar