Teori Bilangan LANDASAN TEORI

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