b. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang
dibandingkan dengan algoritma simetris.
2.3. Teori Bilangan
2.3.1. Operator Logika XOR
Operator logika Xor akan menghasilkan niilai True jika ekspresi di sebelah kiri Xor berbeda dengan ekspresi di sebelah kanannya. Jadi, operator logika Xor dapat diartikan
“jika beda” akan bernilai True. Tabel hasil ekspresi logika Xor adalah sebagai berikut ini
Tabel 2.1. Tabel Operasi Logika Xor Alam, 2005.
2.3.2. Faktor Persekutuan Terbesar
Faktor persekutuan Terbesar atau Greatest Common Divisor GCD merupakan bilangan bulat terbesar yang merupakan pembagi yang sama dari dua bilangan bulat. Misalkan
adan b adalah dua bilangan bulat yang tidak nol. Greatest Common Divisor GCD dari a dan b adalah bilangan bulat terbesar c sedemikian sehingga c|a dan c|b. Greatest
Common Divisor GCD dari a dan b dapat dinotasikan dengan GCD
�, b Munir, 2003.
2.3.3. Euclid
Salah satu cara untuk mendapatkan GCD �, b adalah membuat daftar semua faktor dari
�, membuat daftar semua dari b, dan kemudian mencari faktor yang terbesar yang ada dalam kedua daftar. Akan tetapi, untuk bilangan yang sangat besar, membuat daftar
faktor bukanlah sesuatu yang mudah. Ada cara yang jauh lebih efisien untuk mendapatkan GCD
�, b yaitu dengan menggunakan algoritma Euclid Eulidean algorithm, yang seperti halnya dengan Chinese Remainder Theorem merupakan
algoritma penting yang berusia lebih dari 2000 tahun Kromodimoeljo, 2010.
Contoh : GCD50, 20 adalah :
50 mod 20 = 10 20 mod 10 = 0
Ekspresi Hasil
False Xor False False
FalseXor True True
True Xor False True
TrueXor True False
Universitas Sumatera Utara
Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan didapatlah GCD50, 20 = 10.
2.3.4. Algoritma Euclid dan Extended Euclid
Teorema yang digunakan sebagai dasar dari algortima Euclid adalah sebagai berikut: Jika
� = qb + r maka GCD�, b = GCDb, r………….……1 Algoritma Euclid menggunakan rumus di atas secara berulang untuk mendapatkan GCD,
yaitu dengan memperkecil kedua bilangan yang dijadikan patokan untuk GCD setiap kali mengulang, tanpa merubah nilai GCD itu sendiri.Hasil dari komputasi GCD di dapat saat
kedua patokan untuk GCD tidak dapat diperkecil lagi. Untuk melakukan komputasi d = GCD
�, b, pertama dilakukan preprocessing sebagai berikut :
1. Jika
� = 0 maka d = |b| dan jika b = 0 maka d = |�| GCDtidak dapat dikomputasi jika � = b = 0.
2. Karena GCD
�, b = GCD-�, b = GCD�, -b = GCD-�, -b, kita dapat mentransformasikan komputasi menjadi d = GCD|
�|, |b|, jadi kedua bilangan menjadi positif.
3. Karena GCD
�, b = GCDb,�, kita dapat saling tukar � dan b jika �b, dengan hasil �b.
4. Jika
� = b maka d = �. Setelah preprocessing, jika
� ≠ 0, b≠ 0, � ≠b, maka komputasi sudah dirubah menjadi d = GCD
�, b dengan �b 0 Kromodimoeljo, 2010.
2.4 Algoritma Blowfish