Loading...
Sistem DigitalTeknologi

Gerbang XOR

circuit board

Gerbang XOR merupakan operasi logika bitwise yang bekerja dengan membandingkan dua buah bit yang apabila pada salah satu bit nya bernilai Benar, maka hasil akhir operasi XOR tersebut adalah benar. Namun, bila kedua bit yang akan dibandingkan bernilai Salah atau keduanya bernilai Benar maka hasil akhir operasi XOR tersebut adalah Salah.

Elemen dasar yang lain adalah gerbang exclusive OR (XOR):


  1. Digunakan untuk operasi aritmatika
  2. Fungsi XOR ditunjukkan dengan simbol _
  3. Bentuk SOP, x1 _ x2 = x1x2 + x1x2
    Keluaran akan 1 hanya jika inputnya berbeda
gerbang xor
gerbang xor

Contoh Penggunaan XOR

  1. Rangkaian aritmatika penjumlah
  2. Parity generator
  3. enkripsi DES

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

Bagaimana jika 1 XOR 1 XOR 1? Hasilnya 1. Benarkah?

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,

 

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)

 

Dan sebaliknya, untuk dekripsi adalah:

10100100 10011010 10011000 10011010

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.

XOR Enskripsi

XOR enkripsi, meskipun bukan sistem kunci-publik seperti RSA, hampir bisa dipecahkan melalui metode brute force. Hal ini rentan terhadap pola, tetapi kelemahan ini dapat dihindari melalui, pertama mengompresi file (sehingga untuk menghilangkan pola). Enkripsi eksklusif atau membutuhkan baik encryptor dan decryptor memiliki akses ke kunci enkripsi, tetapi algoritma enkripsi, sementara sangat sederhana, hampir bisa dipecahkan. Karya XOR enkripsi dengan menggunakan fungsi aljabar boolean XOR.

Perhatikan gambar berikut:

operasi XOR
operasi XOR

Namun bagaimana jika kita melakukan dua kali operasi XOR dua kali terhadap suatu bit dengan operand yang sama, maka hasilnya akan kembali seperti semua. Seperti contoh gambar berikut.

dua kali operasi XOR
dua kali operasi XOR

Dapat dilihat dari kedua gambar di atas, pada gambar pertama terlihat nilai pada variabel X yang di XOR kan dengan variabel Y dan menghasilkan nilai yang ada pada variabel X^Y.

Namun, jika kita lihat pada gambar kedua, variabel X^Y di XOR kan lagi dengan variabel Y dan kemudian menghasilkan nilai yang sama dengan nilai yang ada pada variabel X. Sifat seperti ini yang dapat kita gunakan untuk membuat enkripsi sederhana.

Misal terdapat karakter A = 01000001 di XOR kan dengan 10000000 maka hasilnya akan menjadi 11000001 atau karakter ┴ dan jika di XOR kan lagi, maka akan kembali menjadi 01000001 atau A lagi.

Ide dibalik enkripsi XOR adalah bahwa tidak mungkin untuk membalikkan operasi tanpa mengetahui nilai awal dari salah satu dari dua argumen. Misalnya, jika Anda XOR dua variabel dari nilai yang tidak diketahui, Anda tidak bisa mengatakan dari output apa nilai-nilai variabel tersebut adalah. Misalnya, jika Anda mengambil operasi A B XOR, dan ia mengembalikan TRUE, Anda tidak dapat mengetahui apakah A adalah FALSE dan B adalah TRUE, atau apakah B adalah PALSU dan A adalah BENAR. Lebih jauh lagi, bahkan jika ia mengembalikan FALSE, Anda tidak bisa memastikan jika kedua adalah TRUE atau jika keduanya FALSE.

Cara yang sebenarnya enkripsi XOR digunakan adalah untuk mengambil kunci dan mengenkripsi file dengan berulang kali dan menerapkan kunci untuk segmen berturut-turut dari file dan menyimpan output. Output akan menjadi setara dengan program acak sepenuhnya, sebagai kunci yang dihasilkan secara acak. Setelah orang kedua memiliki akses ke tombol yaitu orang yang mampu mendekripsi file, tetapi tanpa itu, dekripsi hampir mustahil. Untuk setiap bit ditambahkan dengan panjang kunci. Ia butuh waktu dua kali lipat untuk mencoba memecahkan enkripsi melalui metode brute force.

Tinggalkan Balasan