Pembangkitan Kunci Proses Enkripsi Proses Dekripsi

� � = 65 1657 ��� 5561 = 5031 • B = 66 � � = 66 1657 ��� 5561 = 1674 Proses Dekripsi Untuk proses dekripsi, dilakukan dengan cara sebagai berikut: • � � = � � � ��� � = 5031 1669 ��� 5562 = 65A • � � = � � � ��� � = 1674 1669 ��� 5562 = 66B

2.9 Algoritma Rabin

Algoritma Rabin pertama kali diperkenalkan oleh Michael O. Rabin pada tahun 1979. Algoritma Rabin sering dianggap sebagai salah satu varian algoritma RSA, tetapi pada prosesnya memiliki perbedaan. RSA dan Rabin memiliki perbedaan dalam proses pembangkitan kunci privat dan algoritma yang digunakan pada proses dekripsi. Pada proses dekripsi, algoritma Rabin akan menghasilkan 4 buat pilihan hasil. Hal ini dikarenakan Rabin menggunakan algoritmat Chinese Remainder Theorem. Algoritma tersebut akan menghasilkan 4 buah pilihan hasil dimana salah satunya merupakan hasil dekripsi algoritma Rabin.

2.9.1 Pembangkitan Kunci

Berikut adalah langkah-langkah pembangkitan kunci algoritma Rabin Galbraith, 2012: 1. Pilih 2 buah bilangan prima besar sembarang p dan q yang berbeda dimana � ≡ � ≡ 3��� 4. Kedua bilangan p dan q dirahasiakan dan menjadi kunci privat. 2. Hitung bilangan � = ��. Bilangan n adalah kunci publik.

2.9.2 Proses Enkripsi

Pada algoritma Rabin, proses enkripsi dapat dilakukan dengan rumus berikut: � = � 2 ��� � dimana: c = ciphertext m = plaintext n = kunci publik Proses enkripsi pada algoritma Rabin relatif sederhana sehingga membutuhkan waktu yang singkat dan resource memori yang kecil, sehingga ini merupakan keuntungan algoritma Rabin jika melakukan proses enkripsi pada media yang memiliki keterbatasan resource.

2.9.3 Proses Dekripsi

Pada proses dekripsi, algoritma Rabin akan menghasilkan 4 buah pilihan, dimana salah satunya merupakan hasil yang benar dari plaintext yang dienkripsi sebelumnya. Oleh sebab itu, penerima pesan harus menentukan salah satu dari hasil dekripsi tersebut. Proses dekripsi menggunakan algoritma Chinese Remainder Theorem yang kemudian akan disebut CRT. Berikut adalah pseudo-code dekripsi algoritma Rabin: Dekripsip,q,c { mp ← cp+14 mod p mq ← cq+14 mod p P1 ← ChineseRemaindermp,mq,p,q P2 ← ChineseRemaindermp,-mq,p,q P3 ← ChineseRemainder-mp,mq,p,q P4 ← ChineseRemainder-mp,-mq,p,q return P1, P2, P3, P4 } Berikut dijelaskan proses enkripsi dan dekripsi yang terjadi pada algoritma krtiptografi Rabin: Plaintext : A65 Proses Enkripsi 1. Membangkitkan 2 bilangan prima dengan syarat � ≡ � ≡ 3��� 4, sehingga p = 79 dan q = 59. 2. Hitung nilai n = pq = 4661 3. Enkripsi plaintext dilakukan dengan mengubah setiap karakter menjadi bilangan ASCII dan mengenkripsinya. � = � 2 ��� � � = 65 2 ��� 4661 = 4225 Proses Dekripsi Untuk proses dekripsi pada algoritma Rabin menggunakan CRT, sehingga akan memberikan 4 hasil. Pertama-tama kita menghitung nilai � � dan � � dengan rumus seperti dibawah ini: • � � = �� �+1 4 � ��� � = 65 • � � = �� �+1 4 � ��� � = 53 Sebelumnya, kita mencari nilai Yp dan Yq yang diperoleh dengan menggunakan algoritma extended Euclidean dari bilangan p dan q, sehingga Yp dan Yq yang diperoleh adalah Yp =3, Yq=-4. Selanjutnya dengan menggunakan CRT, kita akan menghitung 4 kemungkinan hasil dekripsinya seperti dibawah ini: • � 1 = ��� � ∗ � ∗ � � � + �� � ∗ � ∗ � � �� ��� � = 1882 • � 2 = ��� � ∗ � ∗ � � � − �� � ∗ � ∗ ���� ��� � = 4596 • � 3 = �−��� ∗ � ∗ � � � + ��� ∗ � ∗ � � �� ��� � = 65 • � 4 = −�� � ∗ � ∗ � � � − �� � ∗ � ∗ � � � ��� � = 2779 Dari perhitungan di atas dapat dilihat bahwa dengan menggunakan CRT, � 3 adalah hasil yang tepat dari proses dekripsi.

2.10 Three-Pass Protocol