2.4 Landasan Matematika Kriptografi
2.4.1 Aritmetika Modulo
Bilangan modulo adalah bilangan sisa hasil pembagian sebuah bilangan dengan bilangan yang lain. Misalkan sebuah bilangan m dibagi dengan b menghasilkan sisa bilangan a,dimana nilai
bilangan a terletak diantara himpunan{0,1,2,...,b-1}, maka b disebut modulus atau modulo. Notasi : m mod b = a , sedemikian sehingga m = bq + a , dengan 0
≤ a b . Contoh :
23 mod 6 = 5 23 = 6.3 + 5 2 mod 5 =2 2 = 2.0 +2
-21 mod 9 =6 -21=9-3+6
Penjelasan untuk -41 mod 9 = 4 : karena m negatif, bagi |m| dengan b mendapatkan sisa a’. Maka m mod b = b – a’ bila a’
≠ 0. Jadi |-21| mod 9 = 3, sehingga -21 mod 9 = 9 – 3 = 6
Alasan mengapa aritmatika modulo baik digunakan pada kriptografi adalah sebagai berikut:
1 karena nilai-nilai aritmatika modulo berada dalam himpunan berhingga, yaitu diantara 0 hingga modulus b-1, maka perhitungan pada proses kritografi tidak diluar himpunan,
yang berarti dalam proses dekripsi tidak akan mengahasikan nilai yang berbeda dari
pesan aslinya
2 Bilangan yang akan dikerjakan adalah bilangan bulat, sehingga dengan menggunakan aritmatika modulo kita tidak perlu khawatir kehilangan informasi akibat pembulatan round
off sebagaimana pada operasi bilangan riil .
2.4.2 Bilangan Prima
Bilangan prima adalah bilangan asli yang nilainya lebih besar dari 1 dan bilangan itu hanya dapat dibagai 1 dan bilangan itu sendiri [7]. Oleh karena bilangan prima nilainya harus lebih
besar dari 1, maka bilangan prima dimulai dari 2, sehingga nilai bilanngan prima yaitu 2,3,5,7,11,...,dan seterusnya. Seluruh bilangan prima selalu ganjil, kecuali bilangan prima 2
12
Universitas Sumatera Utara
yang merupakan bilangan genap. Bilangan asli yang lebih besar dari satu dan tidak termasuk dalam bilangan prima, maka bilangan tersebut disebut bilangan komposit. Contohnya
bilangan 20 disebut komposit karea bilangan tersebut dapat dibagi 1,2,4,5,10 dan 20.
Teori The Fundamental Theorem of Arithmetic menyebutkan bahwa setiap bilangan positif dimana nilainya lebih besar atau sama dengan 2, maka bilangan tersebut dapat
dinyatakan sebagai perkalian satu atau lebih bilangan prima.
Sebagai contoh : 9= 3 X 3 → bilangan asli 9 dapat difaktorkan dari 2 bilangan prima. Dalama
pengujian suatu bilangan, apakah merupakan bilangan prima atau bilangan komposit, maka dapat dilakukan dengan membagi bilangan tersebut dengan sejumlah bilangan prima yang
dimulai 2,3,....., hingga bilangan prima lebih kecil atau sama dengan akar bilangan itu
sendiri. Apabila bilangan tersebut habis dibagi dengan salah satu bilangan prima tersebut, maka bilangan tersebut adalah bilangan komposit, tetapi jika bilangan tersebut tidak habis
dibagi dengan semua bilangan prima tersebut, maka bilangan tersebut merupakan bilangan prima[8].
2.4.3 Modulo Eksponensial
Untuk membagi sebuah bilangan dengan pangkat besar maka dibutuhkan fungsi modulo eksponensial, karena dengan menggunakan modulo biasa akan membutuhkan waktu yang
besar. Misalkan kita ingin mencari modulo dari 6
110
mod 634, dengan menggunakan modulo konvensional maka fungsinya akan seperti berikut:
8
121
mod 513 = 8 x 8 x 8 x ... x 8 mod 513 = 1.8788340662190665823115844774315e+109 mod 513
= 8
Dengan fungsi modulo konvensional maka tipe integer tidak sanggup untuk menampung bilangan sebesar itu, oleh karena itu untuk dapat menyelesaikan modulo dengan
pangkat besar dibutuhkan fungsi modulo eksponensial. Sebelum dilakukan perhitungan di atas maka diperlukan satu variabel yang akan digunakan untuk melakukan perulangan
sebanyak pangkat bilangan tersebut[8]. Nilai variabel ini diinisialisasi dari 1. 13
Universitas Sumatera Utara
Contoh : 7
9
mod 27 diselesaikan dengan menggunakan modulo eksponensial : n diinisialisasi dari bilangan 1, perulangan akan dilakukan dari bilangan 1 sampai 9 dengan
rumus d = 7 x d mod 23, nilai inisialisasi d pertama = 1. n = 1
→ 7 x 1 mod 27 = 7 n = 2
→ 7 x 7 mod 27 = 22 n = 3
→ 7 x 22 mod 27 = 19 n = 4
→ 7 x 19 mod 27 = 25 n = 5
→ 7 x 25 mod 27 = 13 n = 6
→ 7 x 13 mod 27 = 10 n = 7
→ 7 x 10 mod 27 =16 n = 8
→ 7 x 16 mod 27 =4 n = 9
→ 7 x 14 mod 27 =1 Berikut pseducode dari modulo eksponensial :
function modular_powbase, exponent, modulus
c := 1
for e_prime = 1 to exponent
c := c base mod modulus
return c
2.4.4 Primitive Root
Jika m elemen bilangan natural maka 1 m p, p merupakan bilangan prima. Kemudian hitung nilai m
t
untuk t = 1, 2, ... sampai m
t
= 1 mod p. Dengan kata lain, hitung pangkat hingga nilai ord
p
m ditemukan. Nilai ord
p
m dapat diperoleh dari nilai ⏀p = p-1. Jika t =
ord
p
m = ⏀p maka m merupakan sebuah primitive roots modulo p [7].
Contoh : Apakah 2 dan 4 merupakan primitive root dari 5 atau tidak. Pertama nilai
⏀p = p-1,nilai p=5, maka nilai ⏀p =4, jadi nilai t=1,2,3,4. Kemudian cari nilai bilangan dipangkatkan
t={1,2,3,4} kemudian dimodulokan dengan p. Untuk bilangan 2 nilai modulonya adalah 2
1
modulo 5 = 2, 2
2
modulo 5 = 4, 2
3
modulo 5 = 3, 2
4
modulo 5 = 1, dari hasil tersebut ditemukan bahwa hasil modulonya tidak ada yang bernilai yang sama,
maka 2 adalah primitve root 5. Untuk bilangan 4 nilai modulonya adalah 4
1
modulo 5 = 4, 4
2
modulo 5 = 1, 4
3
modulo 5 = 4, 4
4
modulo 5 = 1, dari hasil tersebut dapat ditemukan bahwa ada nilai modulonya yang sama, maka 4 bukan primitive root 5.
Universitas Sumatera Utara
2.5 Steganografi