BAB 5 KESIMPULAN DAN SARAN
5.2 Saran
Dalam pengembangan penelitia ini penulis memberikan beberapa saran yaiut:
1. Untuk pengembangan selanjutnya, perlu dikembangkan menggunakan bilangan prima yang lebih besar yaitu lebih besar dari 512 bit untuk memenuhi syarat keamaan algoritma Rabin dan RSA.
2. Perlu dikembangkan metode yang lebih efektif dalam penyandian pesan dikarenakan data yang dikirim menjadi semakin besar setelah mengalami proses penyandian dalam three-pass protocol.
3. Pada three-pass protocol perlu dikembangkan metode dalam memverifikasi bahwa sebuah request pesan berasal dari pihak yang benar.
BAB 2
LANDASAN TEORI
2.1 Pengertian Kriptografi
Kriptografi berasal dari Bahasa Yunani yang terdiri dari dua kata yaitu crypto yang artinya rahasia (secret) dan graphia yang artinya tulisan (writing). Menurut terminologinya, kriptografi dapat diartikan sebagai ilmu dan seni untuk menjaga pesan ketika pesan dikirim dari suatu tempat ke tempat lain (Mollin, 2007). Selain itu, kriptografi dapat diartikan juga sebagai ilmu atau seni untuk menjaga kerahasiaan pesan dengan menyandikan pesan ke bentuk lain yang tidak dapat dimengerti lagi maknanya (Munir, 2011).
Secara umum kriptografi merupakan teknik pengamanan informasi dengan cara menyembunyikan/menyandi pesan atau melakukan pencodean terhadap pesan asli melalui proses enkripsi menggunakan sebuah kunci tertentu. Penyandian dilakukan oleh pengirim pesan dan tidak dapat dimengerti oleh pihak yang tidak berhak menerimanya. Penerima pesan kemudian mengembalikan kode-kode yang dikirimkan menjadi pesan asli menggunakan kunci yang telah dikirimkan oleh pengirim pesan. Proses ini disebut proses dekripsi (Schneier, 1996).
2.2 Tujuan Kriptografi
Tujuan dari kriptografi diantaranya adalah sebagai berikut (Bellare & Rogaway, 2005):
1. Kerahasiaan (Confidentiality)
Kerahasiaan artinya informasi yang dikirim atau diterima hanya dapat diakses oleh pihak yang berkepentingan atau berwenang terhadap informasi tersebut. Sehingga informasi hanya dapat diakses oleh pihak-pihak yang berhak saja. Enkripsi bertujuan untuk merahasiakan pesan sampai ke penerima pesan dengan aman yang kemudian akan didekripsi kembali dengan algoritma yang telah disepakatin menggunakan kunci yang dikirimkan melalui jalur yang lebih aman. 2. Integritas (Integrity)
Integritas berkaitan dengan menjaga keaslian data yang artinya data tidak mengalami perubahan baik itu pengurangan, penambahan, penyisipan atau pengrusakan data yang dilakukan oleh pihak lain sebelum sampai ke si penerima. Oleh sebab itu, sistem harus memiliki kemampuan untuk mengindentifikasi apakah pesan tersebut mengalami manipulasi oleh pihak yang tidak berwenang. 3. Autentikasi (Authentication)
Autentikasi berkaitan dengan identifikasi pihak-pihak yang ingin mengakses sistem (entity authentication) maupun keaslian data dari sistem itu sendiri (data origin authentication). Saranan yang sering digunakan dalam hal ini adalah penggunaan password. Apabila sistem menggunakan password, protokol autentikasi harus aman dalam proses pengirimannya sehingga tidak digunakan oleh pihak-pihak yang tidak berwenang.
4. Ketiadaan peyangkalan (Non-repudiation)
Non-repudiation berkaitan dalam usaha memastikan bahwa pesan ataupun kunci yang dikirimkan adalah pesan atau kunci yang benar-benar diharapkan. Selain itu mencegah terjadinya penyangkalan antara entitas yang berkomunikasi, yaitu pengirim pesan menyangkal melakukan pengiriman pesan atau penerima menyangkal telah menerima pesan.
2.3 Mekanisme Kriptografi
Pada dasarnya, sistem kriptografi bekerja dengan melakukan penyandian terhadap suatu pesan menjadi kode rahasia yang hanya dapat dimengerti oleh si penerima pesan. Ini merupakan mekanisme dasar yang sudah dikenal sejak dulu dan masih digunakan sampai saat ini dimana saat ini teknologi informasi sudah sangat maju. Tetapi sebelum membahas mekanisme kriptografi lebih dalam lagi, perlu dipahami beberapa istilah yang sering digunakan dalam kriptografi. (Munir, 2011)
1. Plaintext
Plaintext merupakan pesan asli yang ingin dikirimkan dan dijaga keamanannya. Pesan ini tidak lain dari informasi tersebut.
2. Ciphertext
Ciphertext adalan pesan yang telah siap disandikan dan siap untuk dikirimkan. 3. Cipher
Cipher adalah algoritma matematis yang digunakan untuk malakukan penyandian pesan dari plaintext menjadi ciphertext.
4. Enkripsi (Encryption)
Enkripsi adalah proses yang dilakukan untuk menyandikan plaintext menjadi ciphertext.
5. Dekripsi (Decryption)
Dekripsi adalah proses yang dilakukan untuk mengembalikan ciphertext menjadi plaintext.
6. Kriptosistem
Kriptosistem adalah sistem yang dirancang untuk mangamankan suatu sistem dengan memanfaatkan kriptografi.
Pada dasarnya, mekanisme kriptografi adalah dimana sebuah plaintext (m) akan mengalami proses enkripsi (E) sehingga menghasilkan suatu ciphertext (c). Kemudian untuk memperoleh kembali plaintext, maka ciphertext (c) melalui proses dekripsi (D) akan menghasilkan kembali plaintext (m). Secara matemetis proses ini dapat dinyatakan sebagai, (Mollin, 2007)
�(�) =�… … … (1) �(�) =�… … … (2) ���(�)�= �… (3)
Pada mekanisme kriptografi modern, selain memanfaatkan algoritma juga menggunakan kunci (key). Proses enkripsi dan dekripsi menggunakan kunci ini. Setiap anggota memiliki kunci masing-masing untuk melakukan proses enkripsi dan dekripsi sehingga kunci ini harus dirahasiakan juga untuk menjaga keamanan data. Dengan demikian mekanismenya mengalami sedikit perubahan seperti pada gambar 2.1 dibawah ini
Plain Teks Cipher Text Plain Teks
Kunci Kunci
Enkripsi Dekripsi
Gambar 2.1. Mekanisme Kriptografi Modern (Munir, 2011)
Mekanisme ini disebut kriptografi berbasis kunci sehingga pada
kriptosistemnya terdiri dari algoritma dan kuci serta plaintext dan ciphertext-nya. Persamaan matematikanya dapat dituliskan sebagai berikut:
��(�) =�… … … … (4) ��(�) =�… … … … (5) �����(�)�=�… … (6) dimana : e = kunci enkripsi d = kunci dekripsi
2.4 Kriptografi Simetrik dan Asimetrik
Secara umum, algoritma kriptografi dapat dibedakan menjadi dua jenis berdasarkan jenis kunci yang digunakan dalam proses enkripsi dan dekripsi, yaitu kriptografi simetrik dan kriptografi asimetrik. Pada kedua jenis kriptografi ini, perbedaannya terletak pada sama atau tidaknya kunci yang digunakan dalam proses enkripsi dan dekripsi.
2.4.1 Kriptografi Simetrik
Kriptografi simetri yang dikenal sebagai kriptografi kunci rahasia (secret-key cryptography), merupakan kriptografi yang menggunakan kunci yang sama, baik pada proses enkripsi dan dekripsi.
Istilah lain yang sering digunakan dalam algoritma kriptografi simetrik yaitu kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia, kriptografi konvensional (conventional cryptography). Proses enkripsi dan dekripsi dapat dilihat pada gambar 2.2 berikut:
Enkripsi Dekripsi
Cipher Text
Kunci Kunci
Plain Text Plain Text
Gambar 2.2. Algoritma Kriptografi Simetri
Beberapa contoh algoritma kriptografi simetrik adalah DES, RC-4, block cipher, One Time Pad, AES.
Kelebihan kriptografi simetris adalah:
1. Proses enkripsi dan dekripsi relatif membutuhkan waktu lebih cepat. 2. Ukuran kunci relatif pendek
3. Autentikasi pengirim pesan langsung diketahui dari ciphertext yang diterima karena kunci hanya diketahui oleh penerima dan pengirim saja
Kekurangan kriptografi simetris adalah:
1. Kunci harus dikirim melalui saluran komunikasi yang aman dan kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci
2. Kunci harus sering diubah setiap kali melaksanakan komunikasi
2.4.2 Kriptografi Asimetrik
Kriptografi asimetrik (asymmetric cryptografi) menggunakan kunci yang berbeda untuk melakukan enkripsi dan dekripsi. Kunci yang digunakan dalam proses enkripsi disebut kunci publik (public key) sedangkan untuk melakukan proses dekripsi menggunakan kunci pribadi (private key). Kunci publik didistribusikan kepada umum, sedangkan kunci pribadi disimpan untuk diri sendiri. Oleh sebab itu, kriptografi ini dikenal pula dengan nama kriptografi kunci publik (public key cryptogarphy).
Proses enkripsi dan dekripsi pada kriptografi asimterik dapat dilihat pada gambar 2.3 di bawah ini:
Enkripsi Dekripsi
Cipher Text
Kunci Publik Kunci Privat
Plain Text Plain Text
Gambar 2.3. Algoritma Kriptografi Asimetrik
Kelebihan kriptografi asimetris adalah:
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh entitas yang mengirim pesan
2. Pasangan kunci privat dan publik tidak perlu diubah dalam jangka waktu yang sangat lama
3. Dapat digunakan dalam pengamanan pengiriman kunci simetri
4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pesan.
Kelemahan kriptografi asimetri adalah:
1. Proses enkripsi dan dekripsi umumnya lebih lambat dari algorima simetri, karena menggunakan bilangan besar dan operasi bilangan besar.
2. Ukuran ciphertext lebih besar dari plaintext
3. Ukuran kunci relatif lebih besar dari kunci simetri
2.5 Keamanan Algoritma Kriptografi
Algoritma kriptografi dikatakan aman (computationally secure) bila ia memenuhi tiga kriteria berikut ini:
1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik.
2. Biaya untuk memecahkan ciphertext melampaui nilai informasi yang terkandung di dalam ciphertext tersebut.
4. Waktu informasi tersebut harus dijaga kerahasiaannya.
2.6 Bilangan Prima
Bilangan prima adalah bilangan asli yang lebih besar dari angka 1 dimana faktor pembagi dari bilangan tersebut adalah 1 dan bilangan itu sendiri. Bilangan bulat positif p (p > 1) disebut bilangan prima jika pembanginya hanya 1 dan p (Stallings, 2005). Contohnya, bilangan 11 adalah bilangan prima karena bilangan 11 hanya habis dibagi 1 dan 11. Seluruh bilangan prima adalah bilangan ganjil kecuali bilangan 2.
Pada algoritma kritografi kunci publik, pada umumnya menggunakan bilangan prima sehingga dibutuhkan metode dalam pembangkita bilangan prima. Beberapa algoritma pembangkitan bilangan prima dibagi menjadi dua yaitu algoritma probabilistic seperti Lehman dan Rabin-Miller, dan algoritma deterministik seperti Sieve of Eratosthenes. Perbedaan dari algoritma probabilistik dan deterministik adalah dari bilangan yang dihasilkan. Algoritma deterministik menghasilkan bilangan prima pasti sedangkan probabilistik menghasilkan bilangan prima semu.
2.7 Algoritma Pembangkitan Bilangan Prima Sieve of Eratosthenes
Algoritma Sieve of Eratosthenes adalah salah satu algoritma deterministik dalam pembagkitan bilangan prima. Algoritma ini ditemukan oleh seorang matematikawan dari Yunani bernama Eratosthenes (276-194 S.M).
Algorima ini bekerja dengan cara membangkitkan bilangan prima bilangan 1 sampai batas maksimum yang diiginkan dengan cara membuat daftar bilangan asli dari 1 sampai batak maksimum, kemudian mengeliminasi satu per satu bilangan yang tidak termasuk dalam bilangan prima sampai yang tersisa hanya bilangan prima saja. Disebut sieve (saringan) karena algoritma ini bekerja dengan menyaring bilangan prima dari daftar bilangan yang sudah ada bukan dengan membangkitkannya (Möhring dan Oellrich, 2011).
Berikut adalah algoritma Sieve of Eratosthenes:
1. Buat daftar bilangan dari 2 sampai n
3. Eliminasi semua kelipatan p yang lebih kecil dari n (untuk 2 eliminasi 4, 6, 8,…), menghitung kelipatan p dimulai dari p2.
4. Tandai bilangan terkecil yang belum dieliminasi dari daftar namun lebih besar dari p sebagai prima selanjutnya, ulangi langkah 3.
5. Sampai tidak ada lagi bilangan yang bisa ditandai sebagai prima karena semua bilangan yang tersisa tidak tereliminasi dari daftar sudah ditandai sebagai prima.
2.8 Algoritma RSA
Algoritma RSA pertama kali diperkenalkan oleh tiga orang peneliti dari MIT (Massachussets Institute of Technology) yaitu Ron Rivest, Adi Shamir, dan Lan Adleman pada tahun 1976. Keamanan dari algoritma RSA terletak pada sulitnya melakukan pemfaktoran bilangan besar menjadi fakor-faktor prima. Proses pemfaktoran dilakukan untuk mendapatkan kunci privat. Hingga saat ini, belum ditemukan algoritma yang dapat melakukan pemfaktoran bilangan besar menjadi faktor-faktor prima secara cepat, sehingga RSA masih dianggap aman sampai saat ini.
2.8.1 Pembangkitan Kunci
Berikut adalah algoritma pembangkitan kunci pada RSA (Mollin, 2003):
1. Pilih dua buah bilangan prima p dan q dimana p ≠ q dengan ukuran yang kurang lebih sama.
2. Hitung nilai � =�� dan �(�) = (� −1)(� −1). Bilangan n disebut juga dengan RSA modulus (Mollin, 2003).
3. Pilih sebuah bilanga bulang e, dimana e relatif prima dengan �(�). Secara matematis dapat ditulis 1 <�< �(�),�����,�(�)�= 1. Bilangan e disebut juga RSA enciphering exponent (Mollin, 2003).
4. Dengan menggunakan algoritma extended Euclidean, hitung bilangan unik d. Secara matematis dapat ditulis sebagai berikut:
�� ≡ 1�����(�)� dimana : 1 <� < �(�)
5. Dengan demikian, kunci publik RSA adalah n dan e, sedangkan kunci privat adalah d. Bilangan d disebut juga RSA deciphering exponent (Mollin, 2003).
2.8.2 Proses Enkripsi
Proses enkripsi pada RSA dapat dilakukan dengan rumus berikut:
� ≡ ��(����) dimana: c = ciphertext m = plaintext (syarat 0 < 1 <n-1) e = kunci public 2.8.3 Proses Dekripsi
Proses dekripsi pada RSA dapat dilakukan dengan menggunakan rumus berikut:
� ≡ �� (����)
dimana:
m = plaintext c = ciphertext d = kunci privat
Berikut dijelaskan proses enkripsi dan dekripsi yang terjadi pada algoritma krtiptografi RSA:
Plaintext : AB
Proses Enkripsi
1. Membangkitkan dua buah bilangan prima p dan q, dimana p = 83 dan q = 67 2. Menghitung nilai n=pq dan �(�)
�= ��= 5561
�(�) = (� −1)(� −1) = 5412
3. Membangkitkan kunci publik e dengan syarat gcd��,�(�)�= 1 sehingga nilai e yang terpilih adalah 1657.
4. Membangkitkan kunci privat d dengan menggunakan algoritma extended euclidean.
�� ≡1�����(�)� � = 1669
5. Enkripsi plaintext dilakukan dengan mengubah setiap karakter menjadi bilangan ASCII dan mengenkripsinya.
�� = 651657(��� 5561) = 5031
• B = 66
�� = 661657(��� 5561) = 1674 Proses Dekripsi
Untuk proses dekripsi, dilakukan dengan cara sebagai berikut:
• �� = ���(����) = 50311669(��� 5562) = 65(A)
• �� = ���(����) = 16741669(��� 5562) = 66(B) 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:
Dekripsi(p,q,c) { mp ← (c(p+1)/4) mod p mq ← (c(q+1)/4) mod p P1 ← ChineseRemainder(mp,mq,p,q) P2 ← ChineseRemainder(mp,-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 : A(65)
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(����)
�= 652(��� 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
Three-Pass Protocol adalah adalah sebuah protokol kriptografi yang digunakan untuk mengirimkan pesan rahasia. Three-Pass Protocol adalah sebuah skema kerja yang memungkinkan dua orang melakukan pertukaran pesan tanpa melakukan pertukaran kunci (Haramaini, 2014). Disebut three-pass karena antara penerima dan pengirim melakukan tiga kali pertukaran pesan.
Three-Pass Protocol menggunakan fungsi enkripsi E dan fungsi dekripsi D. Fungsi E membutuhkan kunci e untuk merubah plaintext m menjadi cipertext c.
Secara matematis ditulis E(e,m). Fungsi D membutuhkan fungsi d untuk merubah ciphertext kembali menjadi plaintext. Atau secara persamaan dapat ditulis D(d,E(e,m)) = m.
Syarat sebuah fungsi enkripsi dan dekripsi yang dapat digunakan dalam protokol ini adalah harus memenuhi persamaan berikut:
� ��,���,�(�,�)��= �(�,�)
Aplikasi Three-Pass Protocol pertama kali ditemukan oleh Adi Shamir pada tahun 1980, dan disebut juga dengan Shamir No-Key Protocol.
Fungsi-fungsi yang digunakan dalam Shamir No-Key Protocol adalah sebagai berikut:
- Fungsi Enkripsi �(�,�) = ������ - Fungsi Dekripsi
�(�,�) = ������, �������� ≡1(���� −1).
Protokol Shamir ini memiliki properti komutatif yang menjadi syarat Three-Pass Protocol dengan pembuktian dapat dilihat sebagai berikut:
�(�,�(�,�)) = ��� ���� = ��� ���� = �(�,�(�,�))
Berikut adalah tahapan yang digunakan pada Three-Pass Protocol:
1. Pengirim pesan memilih kunci enkripsi privat e, dan kunci dekripsi yang bersesuaian d. Kemudian pegirim pesan mengenkripsi pesan m dengan kunci enkripsi e dan mengirimkan E(e,m) kepada penerima pesan.
2. Penerima pesan memilih kunci enkripsi s, dank unci dekripsi t yang bersesuaian. Dengan kunci enkripsi, penerima melakukan super-encrypt terhadap pesan E(e,m) yang diterima lalu mengirimkannya kembali ke pengirim pesan.
3. Pihak pengirim pesan mendekripsi kembali pesan balasan dengan kunci dekripsinya. Karena sifat komutatif yang dimiliki Three-Pass Protocol, hasil nya adalah E(s,m). Pihak pengirim kemudian mengirimkan kembali pesan ke penerima pesan.
Pihak penerima kemudian mendekripsi kembali pesan dengan menggunakan kunci dekripsinya sehingga akan menghasilkan pesan m tanpa perlu melakukan pertukaran kunci enkripsi atau dekripsi satu sama lain. Untuk skema Three-Pass Protocol dapat dilihat pada gambar 2.4 berikut:
Gambar 2.4. Skema Three-Pass Protocol
Keterangan : P : plaintext
C1 : ciphertext hasil enkripsi Rabin C2 : ciphertext hasil enkripsi RSA C3 : ciphertext hasil dekripsi Rabin
2.11 Tinjauan Penelitian yang Relevan
Berikut adalah penelitian yang membahas seputar metode Three-Pass Protocol:
1. Tasliyah Haramaini (2014) melakukan penelitian terhadap implementasi metode Three-Pass Protocol pada algoritma kriptografi One Time Pad(OTP). OTP merupakan algoritma kriptografi yang menggunakan kunci yang berbeda untuk setiap proses enkripsi dan dekripsi sebuah karakter. Enkripsi dilakukan dengan melakukan operasi XOR terhadap pesan dan kunci. OTP akan tetap aman semalam kunci yang digunakan tidak digunakan lebih dari dua kali. Oleh sebab itu, digunakan metode Three-Pass Protocol agar menjamin keamanan algoritma OTP karena tidak dilakukannya pertukaran kunci selama mengirimkan pesan. 2. Aji Nugraha Santosa Kasmaji (2014) melakukan implementasi algoritma RSA
sebuah algoritma kriptografi dapat menerapkan metode Three-Pass Protocol adalah algoritma tersebut harus memiliki sifat komutatif. Oleh, sebab itu dilakukan modifikasi pada algoritma RSA yaitu, dengan menggunakan nilai modulu yang sama antara pengirim dan penerima pesan
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Informasi saat ini menjadi sesuatu yang sangat berharga seiring dengan semakin berkembangnya teknologi informasi. Sehingga informasi menjadi sebuah kebutuhan setiap orang saat ini. Informasi menjadi semakin mudah untuk saling dipertukarkan karena media yang tersedia saat ini sangat bervariasi dan cepat. Internet menjadi media yang sangat mempengaruhi perkembangan teknologi informasi karena internet menjadi media pengiriman data yang paling banyak digunakan saat ini.
Dalam perkembangan teknologi informasi ini, tidak selamanya membawa efek positif. Dengan semakin mudah dan cepatnya dalam berbagi informasi menyebabkan informasi penting dan pribadi dapat dengan mudah digunakan oleh pihak yang tidak berkepentingan. Salah satunya adalah perkembangan aplikasi pesan singkat atau yang sering disebut messager atau chat. Aplikasi chat menjadi sangat dibutuhkan karena pengiriman pesan yang cepat, mudah, dan langsung dapat diterima oleh penerima pesan. Setiap harinya, lebih dari milyaran pesan dikirim melalui internet dengan menggunakan aplikasi chat ini, dan kemungkinan pengguna mengirimkan pesan yang bersifat privasi dan rahasia. Oleh sebab itu kerahasiaan data menjadi sangat penting karena terkait dengan hak privasi seseorang.
Isu keamanan ini menjadi hal yang sangat penting saat ini dalam perkembangan teknologi informasi. Oleh sebab itu, penyandian pesan sangat penting dilakukan dalam pengiriman informasi melalui internet agar informasi yang dikirimkan hanya dapat dimengerti oleh pihak yang berhak.
Kriptografi adalah ilmu atau seniyang mempelajari menyandikan pesan. Berdasarkan perkembangannya, kriptografi dibagi menjadi dua jenis, yaitu kriptografi klasik dan kriptografi modern, sedangkan berdasarkan kunci yang digunakan dibagi menjadi kriptografi simetris dan kriptografi asimetris. Kriptografi simetris adalah algorima kriptografi yang menggunakan kunci yang sama dalam melakukan enkripsi dan dekripsi pesan sedangkan algoritma asimetris menggunakan dua buah kunci yaitu kunci publik untuk melakukan enkripsi dan kunci privat untuk melakukan dekripsi.
Banyak algoritma kriptografi yang sudah diciptakan hingga saat ini. Seperti Data Encryption Standard (DES) dan Advanced Encryption Standard (AES) yang merupakan algoritma kriptografi simetris. RSA (Rivest Shamir Adleman), Rabin, Pohlig-Hellman yang merupakan salah satu algoritma kriptografi asimetris. RSA dan Rabin adalah dua algoritma yang akan digunakan dalam penelitian berikut.
Algoritma Rabin sama seperti algoritma kriptografi asimetris lainnya yang memiliki kunci publik untuk melakukan enkripsi dan kunci privat untuk melakukan dekripsi. Kunci privat dari algoritma Rabin diperolah dari dua buah bilangan prima besar (p, q) yang dipilih secara acak. Dan untuk kunci publik diperoleh dari perkalian dua bilangan prima p dan q. Untuk proses dekripsi, algoritma Rabin menggunakan teorema Chinese remainder dan akan menghasilkan 4 pilihan plaintext. Keamanan algorima Rabin dapat dibuktikan secara matematis karena menggunakan metode pemfaktoran bilangan secara cepat.
Sama seperti algorima Rabin, algoritma RSA juga termasuk algoritma asimetris tetapi memiliki perbedaan dalam membangkitkan kedua kunci privat dan publik. Algoritma RSA membutuhkan dua bilangan prima p dan q untuk membangkitkan kunci public (e) dimana e adalah sebuah bilangan yang memiliki faktor persekutuan terbesar (GCD) sama dengan 1 dengan φ dimana φ = (p-1)(q-1), dengan syarat 1 < e < (φ-1). Kunci privat diperoleh dengan metode Extended Euclidean.
Kedua algoritma ini termasuk algoritma yang cukup aman dalam melakukan penyandian pesan. Kemanan kedua algoritma ini tergantung pada keamanan dalam pendistribusian kunci. Kunci privat harus selalu menjadi kunci rahasia si penerima pesan. Jika kunci privat penerima pesan diketahui oleh pihak lain, automatis algoritma ini tidak aman lagi. Oleh sebab itu, dibutuhkan sebuah metode yang dapat menjamin kunci privat selalu aman. Metode yang akan digunakan adalah Three-Pass Protocol.
Metode Three-Pass Protocol memungkinkan penerima dan pengirim pesan dapat melakukan penyandian tanpa bertukar kunci. Pertama kali dikembangkan oleh Adi Shamir pada tahun 1980. Konsep dasar metode ini, kedua belah pihak masing-masing memiliki privat dan publik pribadi. Kedua belah pihak menggunakan kunci masing-masing untuk melakukan enkripsi dan dekripsi pesan. Selain dengan metode
tersebut dalam pengamanan kunci, pengirim dan penerima pesan akan menggunakan