APLIKASI PENGAMANAN DOKUMEN TEKS DENGAN METODE CERTIFICATELESS PUBLIC KEY CRYPTOGRAPHY TANPA PAIRING
SKRIPSI
Oleh: SUNARDI NIM : 1144017
PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK TIME MEDAN 2015
ABSTRAK
Penggunaan algoritma kriptografi kunci publik mengharuskan seseorang untuk menjamin keaslian dari kunci publiknya. Implikasi langsung dari mekanisme ini adalah diperlukan suatu layanan untuk menjamin bahwa kunci publik B adalah asli. Hal ini tentunya memerlukan biaya, sehingga tidak efisien untuk diterapkan secara praktikal. Pada kriptografi kunci publik normal, jaminan ini diperoleh melalui sertifikasi oleh sebuah Certification Authority (CA). Untuk itu, maka dapat diterapkan metode yang tidak memerlukan proses sertifikasi terhadap kunci publik. Sasaran utama dari Certificateless Public Key Encryption (CLPKE) adalah untuk memperbolehkan seorang pengirim untuk mengirimkan sebuah pesan rahasia kepada seorang penerima dengan mengenkripsi pesan dengan menggunakan kunci publik penerima yang tidak perlu mencantumkan sebuah sertifikat yang dibuat oleh CA. Sebagai hasilnya, seseorang dapat membuang proses pengecekan sertifikat yang menambah kerumitan sistem. Selain tidak mencakup proses pengecekan, pengirim juga diberikan jaminan bahwa hanya penerima yang jujur yang melakukan proses dengan melalui prosedur otentikasi yang sesuai dan memiliki kunci privat parsial yang benar yang berhubungan dengan identitasnya ID dari Key Generation Center (KGC) yang mampu untuk mendekripsi pesan. Dalam penelitian ini, dibahas proses kerja dari setiap tahapan pada Certificateless Public Key Encryption dan akan diimplementasikan dalam proses pengiriman pesan. Kata kunci: Certificateless Public Key Encryption (CLPKE), pengiriman pesan, jaringan komputer
i
ABSTRACT
Implementation of public key cryptography needs the public key to be sertified first. The direct implication of this mechanism is that it needs a service to guarantee that the public key is valid. Of course, this needs fee, so that it’s not efficient to be implemented practically. In public key cryptosystem, this process is done by Certification Authority (CA). Therefore, it needs a method which doesn’t need a sertification process for public key. The goal of Certificateless Public Key Encryption (CLPKE) is to allow sender to send a secret message to receiver by encrypting the message by using receiver’s public key without the needs of sertification of public key. As the result, the sender could remove the sertification checking. Besides that, the sender is given guaranteed that only honest receiver who follow the authentication procedure correctly and has the right partial private key which is related to the identity from Key Generation Center (KGC), that could decrypt the message. In this research, the application will show the detail process of every step in Certificateless Public Key Encryption and is implemented in message sending process. Keyword : Certificateless Public Key Encryption (CLPKE), sending message, computer network
ii
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa yang telah memberikan kesehatan kepada saya penulis dan berkat kebajikan yang telah diperbuat selama ini sehingga saya dapat menjelaskan skripsi yang merupakan salah satu pemenuhan kurikulum program studi Teknik Informatika pada STMIK TIME Medan. Adapun judul dari skripsi ini adalah “Aplikasi Pengamanan Dokumen Teks dengan Metode Certificateless Public Key Cryptography tanpa Pairing”. Dalam penyusunan skripsi ini, penulis banyak menerima bantuan baik bimbingan maupun petunjuk serta saran nasehat dari berbagai pihak. Melalui kesempatan ini penulis ingin menyampaikan rasa terima kasih yang sebesar – besarnya kepada : 1.
Ibu Feriani Astuti, M.Kom, selaku Dosen Pembimbing I yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini.
2.
Bapak Octara Pribadi, S.Kom, selaku Dosen Pembimbing II yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini.
3.
Bapak Simon Kanggali, selaku Ketua Yayasan STMIK TIME Medan.
4.
Bapak Prof. Chainur Arrasyid, selaku Ketua BPH STMIK TIME Medan.
5.
Bapak Prof. Harlem Marpaung, Ph.D, selaku Ketua STMIK TIME Medan.
6.
Bapak Jackri Hendrik, S.T, M.Kom, selaku Puket I STMIK TIME Medan.
7.
Bapak Hendri, M.Kom, selaku Ketua Program Studi Teknik Informatika STMIK TIME Medan.
8.
Seluruh Dosen STMIK TIME Medan, yang telah banyak memberikan ilmu pengetahuan kepada penulis selama perkuliahan.
iii
Meskipun telah disusun, penulis menyadari bahwa isi dan teknik penulisan skripsi ini masih memerlukan perbaikan untuk menyempurnakannya baik dari segi tata bahasa manapun materi yang terkandung didalamnya. Oleh karena itu setiap kritik dan saran akan diterima dengan senang hati agar dapat dijadikan bahan perbaikan untuk penulisan selanjutnya. Akhir puji dan syukur daya ucapkan kepada Tuhan Yang Maha Esa, semoga kita selalu dalam lindungan dan karuniaNya.
Medan, 16 Februari 2015 Penulis
Sunardi
iv
DAFTAR ISI
ABSTRAK ..............................................................................................................
i
ABSTRACT .............................................................................................................. ii KATA PENGANTAR ............................................................................................. iii DAFTAR ISI ............................................................................................................ v DAFTAR GAMBAR ............................................................................................... viii DAFTAR TABEL ................................................................................................... x DAFTAR LAMPIRAN ........................................................................................... xi BAB I
PENDAHULUAN ............................................................................ 01 1.1. Latar Belakang Masalah ............................................................. 01 1.2. Identifikasi Masalah ................................................................... 02 1.3. Batasan Masalah ........................................................................ 03 1.4. Tujuan dan Manfaat Penelitian .................................................. 04 1.5. Sistematika Penulisan ................................................................ 04
BAB II
LANDASAN TEORI ....................................................................... 06 2.1. Aplikasi ...................................................................................... 06 2.2. Pengenalan Kriptografi .............................................................. 7 2.3. Sistem Kriptografi ....................................................................... 9 2.3.1. Kriptografi Kunci Rahasia ............................................... 9 2.3.2. Kriptografi Kunci Publik ................................................ 10 2.4. Sertifikasi (Certification) .......................................................... 13 2.5. Landasan Matematis Kriptografi ............................................... 17 2.5.1. Fungsi Jueneman ............................................................. 17 2.5.2. Metode Rabin Miller ....................................................... 18 2.5.3. Aritmatika Modular ........................................................ 21 2.5.4. Generator Primitif ........................................................... 23 2.5.5. Key Escrow ..................................................................... 25 2.5.6. Infrastruktur Kunci Publik .............................................. 26 2.6. Certificateless Public Key Cryptography (CLPKC) ................. 28 2.6.1. Algoritma Skema CLPKC .............................................. 31
v
2.6.2. Analisis Keamanan ......................................................... 33 BAB III
METODE PENELITIAN ............................................................... 35 3.1. Tempat dan jadwal penelitian ................................................... 35 3.2. Kerangka kerja .......................................................................... 36 3.2.1. Identifikasi Masalah ........................................................ 36 3.2.2. Metode pengumpulan data .............................................. 37 3.2.3. Analisa sistem ................................................................. 37 3.2.4. Perancangan sistem ......................................................... 37 3.2.5. Pembangunan sistem ....................................................... 38 3.2.6. Uji coba sistem ................................................................ 38
BAB IV
ANALISIS DAN PERANCANGAN .............................................. 39 4.1. Analisis .................................................................................... 39 4.1.1. Pemodelan Domain Informasi .......................................... 39 4.1.2. Penggambaran Fungsi Modul ........................................... 41 4.1.3. Representasi Tingkah Laku Model ................................... 46 4.1.3.1 Analisis Fungsional .............................................. 47 4.1.3.2 Analisis Non Fungsional ...................................... 48 4.1.4. Partisi Model .................................................................... 50 4.2. Perancangan .............................................................................. 53 4.2.1. Global .............................................................................. 55 4.2.1.1 Form ‘Splash Screen’ ........................................... 54 4.2.1.2 Form ‘Main’ ......................................................... 56 4.2.2. Aplikasi ........................................................................... 57 4.2.2.1 Form ‘Tambah User’ ............................................ 57 4.2.2.2 Form ‘Login’ ........................................................ 59 4.2.2.3 Form ‘Utama Aplikasi’ ........................................ 60 4.2.2.4 Form ‘Kirim File’ ................................................. 61 4.2.2.5 Form ‘Kotak Masuk / Keluar’ .............................. 63 4.2.3. Pemahaman ..................................................................... 65
vi
4.2.3.1 Form ‘Pilih Algoritma’ ........................................ 65 4.2.3.2 Form ‘Input Nilai Kunci’ ..................................... 66 4.2.3.3 Form ‘Input Pesan’ ............................................... 69 4.2.3.4 Form ‘Pemahaman Enkripsi’ ............................... 70 4.2.3.5 Form ‘Pemahaman Dekripsi’ ............................... 71 4.2.3.6 Form ‘Laporan’ .................................................... 72 4.2.4. Perancangan Basis Data .................................................. 73 BAB V
HASIL DAN PEMBAHASAN ....................................................... 76 5.1. Hasil ............................................................................................ 76 5.1.1. Tampilan Bagian Pemahaman .......................................... 76 5.1.2. Tampilan Bagian Aplikasi ................................................ 83 5.2. Pembahasan ................................................................................ 88
BAB V1
KESIMPULAN DAN SARAN ....................................................... 90 6.1. Kesimpulan ................................................................................. 90 6.2. Saran ........................................................................................... 91
DAFTAR PUSTAKA LAMPIRAN
vii
DAFTAR GAMBAR
Gambar 2.1.
Kriptografi Kunci Rahasia ................................................................. 9
Gambar 2.2.
Kriptografi Kunci Publik ................................................................... 12
Gambar 2.3.
Contoh Sertifikat Digital .................................................................... 15
Gambar 2.4.
Contoh Hirarki Otoritas Sertifikat Digital ......................................... 16
Gambar 2.5.
Ilustrasi PKI ....................................................................................... 27
Gambar 3.1.
Kerangka kerja penelitian .................................................................. 36
Gambar 4.1.
Activity Diagram dari Setup............................................................... 41
Gambar 4.2.
Activity Diagram dari Partial Key Extract ........................................ 42
Gambar 4.3.
Activity Diagram dari Set Secret Value.............................................. 43
Gambar 4.4.
Activity Diagram dari Set Private Key ............................................... 43
Gambar 4.5.
Activity Diagram dari Set Public Key ................................................ 44
Gambar 4.6.
Activity Diagram dari Encrypt ........................................................... 45
Gambar 4.7.
Activity Diagram dari Decrypt ........................................................... 46
Gambar 4.8.
(a) Diagram Use Case dari Aplikasi .................................................. 50 (b) Diagram Use Case dari Pemahaman ............................................ 51
Gambar 4.9.
Rancangan Form ’Splash Screen’ ...................................................... 55
Gambar 4.10. Rancangan Form ‘Main’ .................................................................... 56 Gambar 4.11. Rancangan Form ‘Tambah User’ ....................................................... 58 Gambar 4.12. Rancangan Form ‘Login’ ................................................................... 59 Gambar 4.13. Rancangan Form ’Utama Aplikasi’ ................................................... 60 Gambar 4.14. Rancangan Form ’Kirim File’ ........................................................... 62 Gambar 4.15. Rancangan Form ’Kotak Masuk / Keluar’ ......................................... 64 Gambar 4.16. Rancangan Form ‘Pilih Algoritma’ ................................................... 65 Gambar 4.17. Rancangan Form ’Input Nilai Kunci’ ................................................ 67 Gambar 4.18. Rancangan Form ’Input Pesan’ ......................................................... 69 Gambar 4.19. Rancangan Form ’Pemahaman Enkripsi’ .......................................... 70 Gambar 4.20. Rancangan Form ’Pemahaman Dekripsi’ .......................................... 71 Gambar 4.21. Rancangan Form ’Laporan’ ............................................................... 72 Gambar 4.22. Rancangan Relasi Antar Tabel ........................................................... 75
viii
Gambar 5.1.
Tampilan form ‘splash screen’ ........................................................... 76
Gambar 5.2.
Tampilan form ‘Login’ ...................................................................... 77
Gambar 5.3.
Form Tambah User Baru ................................................................... 78
Gambar 5.4.
Form Main ......................................................................................... 77
Gambar 5.5.
Form Main Saat Pemilihan Link ’Pemahaman’ ................................. 79
Gambar 5.6.
Form Pilihan Pemahaman .................................................................. 79
Gambar 5.7.
Form Pemahaman Proses Pembentukan Kunci ................................. 80
Gambar 5.8.
Form Pemahaman Proses Enkripsi (Tampilan Awal)........................ 81
Gambar 5.9.
Form Input Pesan ............................................................................... 82
Gambar 5.10. Form Pemahaman Proses Enkripsi .................................................... 82 Gambar 5.11. Form Proses Dekripsi ........................................................................ 83 Gambar 5.12. Form Main Saat Pemilihan Link ’Aplikasi’ ....................................... 84 Gambar 5.13. Form Main Aplikasi ’Kotak Masuk’ ................................................. 84 Gambar 5.14. Form Main Aplikasi ’Kotak Keluar’ ................................................. 85 Gambar 5.15. Form Isi Kotak ................................................................................... 86 Gambar 5.16. Form Kirim File ................................................................................. 87 Gambar 5.17. Tampilan Rincian Data ...................................................................... 88
ix
DAFTAR TABEL
Tabel 3.1
Daftar waktu dan kegiatan penelititan .................................................. 35
Tabel 4.1
Narasi Use Case Melakukan Proses Pembentukan Kunci .................... 51
Tabel 4.2
Narasi Use Case Mengenkripsi Pesan................................................... 52
Tabel 4.3
Narasi Use Case Mendekripsi Pesan..................................................... 53
Tabel 4.4
Tabel User ............................................................................................. 73
Tabel 4.5
Tabel KotakMasuk ................................................................................ 74
Tabel 4.6
Tabel KotakKeluar ................................................................................ 74
x
DAFTAR LAMPIRAN
CD program Surat keputusan dosen pembimbing skripsi Daftar riwayat hidup mahasiswa Source code program
xi
BAB I PENDAHULUAN
1.1.
Latar Belakang Masalah Seiring dengan semakin berkembangnya teknologi komputer dan
komunikasi, pengamanan data digital merupakan suatu permasalahan penting untuk mencegah agar isi dari data digital tidak diketahui oleh pihak yang tidak berhak. Pengamanan data digital ini dapat dilakukan dengan menggunakan metode kriptografi. Dalam literatur, dapat ditemukan berbagai metode kriptografi yang dapat diterapkan. Metode kriptografi ini dapat dikelompokkan menjadi dua bagian besar, yaitu metode kriptografi kunci rahasia (metode simetris) dan metode kriptografi kunci publik (metode asimetris). Metode simetris menggunakan kunci yang sama untuk melakukan proses enkripsi dan dekripsi, sehingga kunci yang digunakan harus dipertukarkan antara pengirim dan penerima. Sementara itu, metode asimetris menggunakan kunci publik untuk proses enkripsi dan kunci privat untuk proses dekripsi, dimana kunci publik akan dipublikasikan kepada semua orang. Hal ini menyebabkan kunci publik harus disertifikasi untuk menjamin keaslian dari kunci publiknya. Realisasi dari mekanisme infrastruktur kunci publik ini memiliki masalah dalam hal pencabutan kembali, penyimpanan dan distribusi dari sertifikat. Untuk menyelesaikan permasalahan ini, maka Al-Riyami dan Paterson memperkenalkan sebuah paradigma baru yang disebut certificateless public key cryptography (CLPKC). Perbedaan utama antara kunci publik tradisional dan kunci publik CLPKC adalah kunci publik CLPKC tidak perlu disertifikasi oleh
1
2
otoritas terpercaya (Key Generation Center / KGC), sehingga KGC tidak dapat mengetahui kunci privat user. Namun, kebanyakan CLPKC yang dikembangkan berdasarkan pada identity-based encryption (IBE) dari Boneh dan Franklin yang menggunakan bilinear pairing sebagai sekuritasnya. Penggunaan bilinear pairing ini memiliki biaya komputasi yang sangat besar jika dibandingkan dengan operasi eksponensiasi modular standar. Untuk mengatasi masalah itu, Joonsang Baek, Reihaneh Safavi-Naini dan Willy Susilo mengembangkan sebuah algoritma CLPKC yang tidak menggunakan pairing, yaitu sebuah skema yang hanya menggunakan operasi matematika dasar sebagai sekuritasnya. Penulis merasa tertarik untuk mempelajari dan menerapkan algoritma kriptografi ini dengan pertimbangan bahwa algoritma ini mampu menyelesaikan masalah key escrow problem dari identity based cryptography dan memiliki biaya komputasi yang relatif kecil. Oleh karena itu, penulis mengambil skripsi yang berjudul “Aplikasi Pengamanan Dokumen Teks dengan Metode Certificateless Public Key Cryptography tanpa Pairing”.
1.2.
Identifikasi Masalah Berdasarkan penjabaran latar belakang diatas, maka yang menjadi
permasalahan adalah: 1. Bagaimana mengamankan isi dari dokumen teks sehingga tidak diketahui oleh pihak yang tidak berhak ? 2. Bagaimana menerapkan metode certificateless public key cryptography (CLPKC) tanpa pairing untuk melakukan pengamanan data ?
3
3. Bagaimana membantu pemahaman terhadap prosedur kerja dari metode certificateless public key cryptography (CLPKC) tanpa pairing ?
1.3.
Batasan Masalah Ruang lingkup permasalahan dalam merancang perangkat lunak ini
dibatasi sebagai berikut: 1. Bilangan prima yang diperlukan akan dibangkitkan dan diuji dengan menggunakan metode Rabin Miller. 2. Fungsi hash satu arah yang digunakan adalah fungsi Jueneman. 3. Identitas (ID) user berupa alamat email yang digunakan. 4. Untuk bagian pemahaman, bilangan yang diperlukan dalam proses kerja algoritma memiliki batasan minimal 2 digit bilangan bulat positif dan maksimal 3 digit bilangan bulat positif. Untuk bagian aplikasi, bilangan yang diperlukan dalam proses kerja algoritma memiliki batasan minimal 2 digit bilangan bulat positif dan maksimal 6 digit bilangan bulat positif. Pembatasan nilai yang dilakukan untuk bagian studi / pemahaman dengan tujuan agar proses kerja dari skema dapat lebih mudah dipahami, karena nilai yang semakin besar akan membuat proses perhitungan menjadi semakin sulit dan rumit. 5. Hasil proses perhitungan yang dihasilkan oleh perangkat lunak dapat disimpan ke dalam sebuah file teks yang berekstensi *.txt. 6. Pemahaman dilakukan dengan menggunakan bantuan animasi-animasi sederhana, seperti gambar orang sedang mengetik komputer, pergerakan gambar kertas untuk melambangkan pengiriman file dan sebagainya.
4
7. Tipe file yang dapat dibuka berupa file teks yang berekstensi *.txt. 8. Hasil enkripsi akan disimpan ke dalam database Microsoft Access 2003.
1.4.
Tujuan dan Manfaat Penulisan Tujuan penyusunan skripsi ini adalah untuk membuat sebuah perangkat
lunak yang mampu untuk menerapkan algoritma CLPKC tanpa pairing untuk mengamankan isi file teks, sekaligus menyediakan fasilitas pemahaman untuk membantu user dalam mempelajari proses kerja dari algoritma CLPKC. Manfaat dari penyusunan skripsi ini, yaitu: 1. Perangkat lunak dapat digunakan untuk mengamankan isi file teks. 2. Perangkat lunak dapat digunakan untuk membantu pemahaman mengenai prosedur kerja dari CLPKC tanpa pairing. 3. Penelitian skripsi ini dapat dijadikan sebagai bahan referensi dalam mempelajari mengenai CLPKC tanpa pairing.
1.5.
Sistematika Penulisan Agar pembahasan lebih sistematika, maka tulisan ini dibuat dalam enam
bab, yaitu : BAB I
PENDAHULUAN Berisi latar belakang pemilihan judul, identifikasi masalah, tujuan dan manfaat, batasan masalah dan sistematika penulisan.
5
BAB II
LANDASAN TEORI Berisi tentang penjelasan singkat mengenai aplikasi, pengenalan kriptografi, sistem kriptografi, sertifikasi, landasan matematis kriptografi dan Certificateless Public Key Cryptography (CLPKC).
BAB III
METODE PENELITIAN Berisi tentang tempat dan jadwal penelitian, kerangka kerja, metode pengumpulan data, analisa sistem, perancangan sistem, pembangunan sistem, uji coba sistem
dan
implementasi sistem. BAB IV
ANALISA DAN PERANCANGAN Berisi tentang pembahasan mengenai proses kerja dan perancangan tampilan antarmuka.
BAB V
HASIL DAN PEMBAHASAN Berisi tentang tampilan output dari sistem yang dibuat dan pembahasan mengenai hasil pengujian terhadap sistem.
BAB VI
KESIMPULAN DAN SARAN Berisi tentang kesimpulan dan saran-saran yang diambil penulis setelah menyelesaikan skripsi.
BAB II LANDASAN TEORI
2.1
Aplikasi Aplikasi adalah suatu perangkat lunak komputer yang memanfaatkan
kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh utama perangkat lunak adalah pengolah kata, lembar kerja dan pemutar media. Beberapa aplikasi yang digabung bersama menjadi suatu paket kadang disebut sebagai application suite. Contohnya adalah Microsoft Office dan OpenOffice.org, yang menggabungkan suatu apliaksi pengolah kata, lembar kerja, serta beberapa aplikasi lainnya. Aplikasi-aplikasi dalam suatu paket biasanya memiliki antarmuka pengguna yang memiliki kesamaan sehingga memudahkan pengguna untuk mempelajari dan menggunakan tiap aplikasi. Sering kali, mereka memiliki kemampuan untuk saling berinteraksi satu sama lain sehingga menguntungkan pengguna. Contohnya, suatu lembar kerja dapat dimasukkan dalam suatu dokumen pengolah kata walaupun dibuat pada aplikasi lembar kerja yang terpisah. Definisi aplikasi menurut para ahli: 1. Menurut Hengky W. Pramana Aplikasi adalah suatu unit perangkat lunak yang dibuat untuk melayani kebutuhan akan beberapa aktivitas seperti sistem perniagaan, game
6
7
pelayanan masyarakat, periklanan, atau semua proses yang hampir dilakukan manusia. 2. Menurut Hendrayudi Aplikasi adalah kumpulan perintah program yang dibuat untuk melakukan pekerjaan-pekerjaan tertentu. 3. Menurut Ibisa Aplikasi adalah alat bantu untuk mempermudah dan mempercepat proses pekerjaan dan bukan merupakan beban bagi penggunanya. (http://definisimu.blogspot.com/2012/08/definisi-aplikasi.html)
2.2
Pengenalan Kriptografi Jika anda bertukar pesan (misalnya surat) dengan orang lain, maka anda
tentu ingin pesan yang anda kirim sampai ke pihak yang dituju dengan aman. Pengertian aman di sini sangat luas. Aman bisa berarti bahwa selama pengiriman pesan tentu anda berharap pesan tersebut tidak dibaca oleh orang yang tidak berhak. Sebab, mungkin saja pesan yang anda kirim berisi sesuatu yang rahasia sehingga jika pesan rahasia dibaca oleh pihak lawan atau pihak yang tidak berkepentingan, maka bocorlah kerahasiaan pesan yang anda kirim. Ini adalah masalah keamanan pesan yang dinamakan kerahasiaan (confidentiality atau privacy). (Munir, 2006: 1) Aman bisa juga berarti bahwa anda ingin pesan yang dikirim sampai dengan utuh ke tangan penerima, artinya isi pesan tidak diubah atau dimanipulasi selama pengiriman oleh pihak ketiga. Di sisi penerima pesan, ia tentu ingin memastikan bahwa pesan yang ia terima adalah pesan yang masih asli, bukan
8
pesan yang sudah ditambah-tambah atau dikurangi. Ini adalah masalah keamanan pesan yang disebut integritas data (data integrity). Selain itu, penerima yakin bahwa pesan tersebut memang benar berasal dari anda, bukan dari orang lain yang menyamar seperti anda, dan anda pun yakin bahwa orang yang anda kirimi pesan adalah orang yang sesungguhnya. Ini adalah masalah keamanan pesan yang dinamakan otentikasi (authentication). Jika anda sebagai penerima pesan, anda pun tidak ingin kelak pengirim pesan membantah pernah mengirim pesan kepada anda. Ini adalah masalah keamanan yang disebut penyangkalan (repudiation). Zaman sekarang, banyak orang yang membantah telah mengirim atau menerima pesan. Padahal anda yakin bahwa anda memang menerima pesan dari orang tersebut. Jika pengirim membantah telah mengirim pesan, maka anda perlu membuktikan ketidakbenaran penyangkalan tersebut (non-repudiation). Keempat masalah keamanan yang disebutkan di atas, yaitu kerahasiaan, integritas data, otentikasi dan penyangkalan dapat diselesaikan dengan menggunakan kriptografi. Kriptografi tidak hanya menyediakan alat untuk keamanan pesan, tetapi juga sekumpulan teknik yang berguna. Kriptografi (cryptography) berasal dari Bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Ada beberapa definisi kriptografi yang telah dikemukakan di dalam berbagai literatur, seperti: 1. Bruce Schneier di dalam bukunya ”Applied Cryptography” menyatakan bahwa: Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is the art and science of keeping messages secure).
9
2. Menezes, Alfred J., Paul C. van Oorschot dan Scott A. Vanstone dalam buku mereka ”Handbook of Applied Cryptography” menyatakan bahwa: Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data serta otentikasi. (Munir, 2006: 2)
2.3
Sistem Kriptografi Berdasarkan jumlah kunci yang digunakan, terdapat dua jenis sistem
kriptografi yaitu sistem kriptografi kunci rahasia (secret-key cryptography) dan sistem kriptografi kunci publik (public-key cryptography).
2.3.1
Kriptografi Kunci Rahasia Kriptografi kunci rahasia (secret-key cryptography) sering disebut juga
sistem kriptografi simetris (symmetric key cryptography). Sistem ini sering juga disebut sebagai enkripsi konvensional atau enkripsi kunci-tunggal (single key). Pada sistem ini digunakan algoritma yang sama untuk proses enkripsi/dekripsi dengan memakai satu kunci yang sama, seperti terlihat pada Gambar 2.1:
Gambar 2.1 Kriptografi Kunci Rahasia Sumber : http://dret.net/lectures/mobapp-spring10/img/secret-key.gif
10
Keamanan dari sistem ini bergantung pada beberapa faktor, yaitu: 1. Algoritma enkripsi harus cukup kuat sehingga tidaklah praktis untuk mendekripsi suatu pesan hanya dengan memiliki cyphertext saja. 2. Keamanan dari enkripsi simetris adalah bergantung pada kerahasiaan kunci, bukan kerahasiaan dari algoritma enkripsi itu sendiri. Semakin panjang kunci yang dipakai maka semakin sulit untuk menebak kunci dengan menggunakan metode brute force attacks, yaitu mencoba semua kemungkinan kunci. Algoritma enkripsi simetris yang popular dewasa ini adalah DES (Data Encryption Standard) dengan panjang kunci 56-bit, IDEA (128-bit), Twofish (sampai dengan 256-bit), Rijndael (sampai dengan 256-bit) dan lain-lain. (Schneier, 2007: 4)
2.3.2
Kriptografi Kunci Publik Kriptografi kunci-publik (public-key cryptography) sering disebut juga
sistem kriptografi asimetris. Ide kriptografi asimetris ini pertama kali dimunculkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976. Diffie dan Hellman mendeskripsikan sistem ini tanpa menunjukkan algoritmanya. Walaupun demikian mereka menjabarkan syarat-syarat yang harus dipenuhi oleh suatu algoritma public-key yaitu: 1. Mudah secara komputasi bagi suatu pihak B untuk mengkonstruksi sepasang kunci asimetris (kunci publik KU, kunci pribadi KR). 2. Mudah secara komputasi bagi pengirim A, dengan memiliki kunci publik B dan pesan yang ingin dienkripsi, M, untuk menghasilkan ciphertext (C) : C = EKUb(M)
11
3. Mudah secara komputasi bagi penerima B untuk mendekripsi ciphertext yang dihasilkan dengan menggunakan kunci pribadinya untuk mengembalikan pesan aslinya. M = DKRb (C) = DKRb[EKUb(M)] 4. Tidak bisa secara komputasi bagi pihak ketiga untuk memperoleh kunci pribadi KRb hanya dengan mengetahui kunci publik KUb. 5. Tidak bisa secara komputasi bagi pihak ketiga untuk mengembalikan data asli M hanya dengan mengetahui kunci publik KUb dan ciphertext C. Walaupun bukanlah suatu keharusan bagi semua aplikasi public-key, namun persyaratan keenam bisa ditambahkan : 6. Fungsi enkripsi dan dekripsi bisa diterapkan dengan urutan yang dibalik : M = EKUb[DKRb(M)] Kegunaan dari persyaratan keenam adalah untuk penerapan tanda tangan digital
(digital
signature)
yang digunakan
memecahkan isu
otentikasi
(authentication) dalam masalah keamanan data. Menurut Stalling, proses enkripsi public-key sederhana melibatkan empat tahap berikut: (Stalling, 2011: 2) 1. Setiap user di dalam jaringan membuat sepasang kunci untuk digunakan sebagai kunci enkripsi dan dekripsi dari pesan yang akan diterima. 2. User mempublikasikan kunci enkripsinya dengan menempatkan kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap dijaga kerahasiaannya. 3. Jika user A ingin mengirimkan sebuah pesan ke user B, ia akan mengenkripsi pesan tersebut dengan menggunakan kunci publik user B.
12
4. Pada saat user B ingin mendekripsi sebuah pesan yang diterimanya dari user A, ia akan menggunakan kunci pribadinya sendiri. Tidak ada pihak lain yang bisa mendekripsi pesan itu karena hanya B sendiri yang mengetahui kunci pribadi B. Ilustrasi dari kriptografi kunci publik dapat dilihat pada Gambar 2.2:
Gambar 2.2 Kriptografi Kunci Publik Sumber : http://www.data-processing.hk/uploads/images/public-key-Encryptionexample.gif Sampai saat ini hanya ada beberapa sistem cryptography asimetris yang dipublikasikan. Yang paling berhasil sejauh ini adalah algoritma RSA yang memenuhi keenam persyaratan public-key di atas. Di samping itu, algoritma enkripsi public-key yang lain adalah LUC, DSS, Diffie-Hellman dan lain-lain. (Schneier, 2007: 4-5) Kunci publik adalah kunci yang tidak disembunyikan (boleh diketahui oleh orang lain) dan digunakan dalam proses enkripsi. Kunci private adalah kunci
13
rahasia yang tidak boleh diketahui oleh orang lain dan digunakan dalam proses dekripsi.
2.4
Sertifikasi (Certification) Sertifikasi adalah sebuah skema dimana pihak (orang) yang dipercayai
seperti penguasa atau pihak yang berwenang mengeluarkan sertifikat untuk pihak lain. Pihak yang dipercayai mengeluarkan kupon (vouchers) yang disebut sertifikat yang memiliki sejumlah arti yang mendalam, misalnya nomor ijazah. Teknologi
sertifikasi
dikembangkan
untuk
identifikasi
dan
otentikasi
dimungkinkan dalam skala besar (Stallings, 2011: 186). Untuk dapat lebih memahami kegunaan sertifikat digital ini, dapat dijelaskan lebih lanjut pada skenario berikut ini. Anto hendak mengirimkan Badu suatu dokumen rahasia dengan metode kunci publik. Jika mereka belum pernah bertemu sebelumnya, tentu Badu harus mengirimkan kunci publiknya kepada Anto agar Anto dapat melakukan enkripsi yang pesannya hanya dapat dibuka oleh Badu. Demikian juga pula sebaliknya, Anto harus mengirimkan kepada Badu kunci publiknya agar Badu dapat memeriksa keaslian tanda tangan Anto pada pesan yang dikirim. Dengan cara ini Anto dapat memastikan pesan itu sampai ke tujuannya, sedangkan Badu dapat merasa yakin bahwa pengirim pesan itu adalah Anto. Masalah yang muncul adalah bagaimana mereka dapat saling bertukar kunci dengan aman? Bisa saja di tengah pertukaran kunci-kunci publik milik Anto dan Badu itu diganti dengan kunci publik milik Maman. Dengan begitu Maman
14
dengan bebas dapat menyadap dan mengubah seluruh informasi. Inilah suatu contoh dari man-in-the-middle attack. Anto dan Badu harus sama-sama yakin bahwa kunci-kunci publik yang mereka dapatkan benar-benar otentik. Mereka bisa mendapatkannya dari sesorang yang dipercaya, Tari misalnya. Setiap anggota jaringan diasumsikan telah memiliki saluran komunikasi pribadi yang aman dengan Tari. Saluran inilah yang dimanfaatkan untuk mengirim kunci publik Badu ke Anto (dan sebaliknya). Tari menjadi penjamin keabsahan kunci jika Anto dan Badu sebelumnya tidak pernah bertukar kunci publik. Skenario ini tetap membutuhkan kunci-kunci kriptografi lagi (baik itu kunci simetris ataupun kunci asimetris) untuk pengamanan saluran komunikasi antara Tari dengan Anto atau Badu. Masalah di atas dapat dipecahkan dengan penggunaan sertifikat digital. Tari tidak lagi setiap saat menjadi penukar kunci, namun Tari cukup menandatangani kunci publik milik setiap orang di jaringan tersebut. Sebenarnya dalam sertifikat tersebut tak hanya berisi kunci publik, namun dapat berisi pula informasi penting lainnya mengenai jati diri pemilik kunci publik, seperti misalnya nama, alamat, pekerjaan, jabatan, perusahaan dan bahkan hash dari suatu informasi rahasia. Semua orang mempercayai otoritas Tari dalam memberikan tanda tangan, sehingga orang-orang dalam jaringan itu merasa aman menggunakan kunci publik yang telah ditandatangani Tari. Jika Maman berhasil mencuri sertifikat digital yang dipertukarkan antara Anto dan Badu, serta menggantinya dengan sertifikat digital milik dirinya sendiri, maka Anto dan Badu dapat segera melihat bahwa sertifikat digital yang diterimanya bukan „lawan bicara‟ yang semestinya.
15
Bagaimana jika Chandra – yang berada di luar jaringan Tari – hendak berkomunikasi dengan Anto? Chandra juga memiliki sertifikat, tetapi tidak ditandatangani oleh Tari, melainkan oleh Tata, seseorang yang dipercaya dalam jaringan tempat Chandra berada. Tari dan Tata adalah otoritas sertifikat (certificate authority), yaitu pihak-pihak yang berwenang memberikan sertifikat. Namun Anto tidak mengenal dan tidak mempercayai Tata. Masalah ini dapat diselesaikan jika ada otoritas sertifikat (OS) yang kedudukannya lebih tinggi dari Tata dan Tari – katakanlah Tania. Tania memberikan pengesahan kepada Tata dan Tari. Jadi ada hirarki dari sertifikat digital. Jika Tania berada pada kedudukan hirarki yang paling tinggi, maka Tania disebut otoritas sertifikat utama (root certificate authority). Contoh sertifikat digital dapat dilihat pada Gambar 2.3:
Gambar 2.3 Contoh Sertifikat Digital Sumber : http://journal.media-culture.org.au/0506/liu-3.png Anto mempercayai tanda tangan Tari. Namun karena Tari sendiri keberadaannya disahkan oleh Tania, tentunya Anto harus mengakui otoritas
16
Tania. Jika Tania memberikan pengesahan kepada OS lain dibawahnya, seperti Tata, maka dengan menurut struktur hirarki percabangan OS, Anto dapat memeriksa kebenaran sertifikat digital milik Chandra yang disahkan oleh Tata. Contoh hirarki otoritas sertifikat digital dapat dilihat pada Gambar 2.4:
Gambar 2.4 Contoh Hirarki Otoritas Sertifikat Digital Sumber : http://blog.beswandjarum.com/ekobaguscahyopurnomo/files/2009/10/ kripto81-300x271.jpg Serangan terhadap sistem yang memiliki pengamanan dengan sertifikat digital sulit dilakukan. Jelas Edi tidak mendapatkan apa-apa kalaupun ia memainkan ulang percakapan antara Anto dan Chandra. Edi membutuhkan kunci privat untuk bisa membuka pesan-pesan yang dipertukarkan, padahal kunci privat itu tidak ada di dalam sertifikat digital. Penukaran sertifikat digital Chandra dengan sertifikat digital Maman akan segera diketahui, karena sertifikat digital itu pasti berbeda. Sedangkan jika
17
sertifikat yang dipertukarkan antara Chandra dan Anto tidak diganti, tetapi yang diganti oleh Maman adalah pesan yang dipertukarkan, maka tentu ada ketidakcocokan dalam pemeriksaan tanda tangan digital. Secara teoritis keunggulan dari tanda tangan digital adalah kemampuan untuk melakukan proses otentikasi secara off-line. Pemeriksa cukup memiliki kunci publik dari OS utama untuk mengetahui sah tidaknya kunci publik dari lawan bicaranya. Selain itu untuk meningkatkan keamanan, kunci publik OS utama bisa saja diintegrasikan dalam program aplikasi. Namun kenyataannya, karena ada kemungkinan sertifikat digital tersebut hilang, tercuri atau identitas pemilik sertifikat berubah (perubahan alamat surat elektronik atau nomor KTP misalnya), maka sertifikat digital perlu diperiksa keabsahannya dengan melihat daftar sertifikat terbatalkan (certificate revocation list) yang disimpan oleh OS. (Stallings, 2011: 186-189)
2.5
Landasan Matematis Kriptografi Berikut dirincikan konsep matematika yang digunakan dalam metode
certificateless public key cryptography, yang mencakup fungsi Jueneman, key escrow dan infrastruktur kunci publik.
2.5.1
Fungsi Jueneman Fungsi hash Jueneman’s method termasuk dalam kelompok MAC
(Message Authentication Code). Fungsi hash ini sering disebut sebagai quadratic congruential manipulation detection code (QCMDC). Cara kerja dari fungsi hash ini adalah berikut: (Schneier, 2007: 457)
18
1. Pertama-tama pecahkan pesan (message) ke dalam m-bit block. 2. Kemudian lakukan perhitungan berikut, H0 = IH, di mana IH adalah kunci rahasia. 3. Setelah itu, hitunglah Hi = (Hi – 1 + Mi)2 mod p, di mana p adalah bilangan prima yang lebih kecil daripada 2m – 1 dan + adalah operasi penjumlahan bilangan integer. 4. Jueneman menyarankan jumlah putaran N = 16 dan nilai p = 231 – 1. Dia juga menyarankan agar menambahkan sebuah kunci tambahan H1, sehingga proses dimulai dari H2.
2.5.2
Metode Rabin Miller Bilangan prima adalah bilangan integer yang lebih besar dari satu yang
memiliki faktor bilangan satu dan bilangan itu sendiri. Dalam proses pembangkitan bilangan prima, kita sering dihadapkan dengan beberapa masalah berikut ini, 1. Keamanan dari kriptografi tergantung pada jumlah bilangan prima yang tersedia. Ahli matematika telah menemukan bahwa jumlah bilangan prima yang tersedia pada bilangan 512 bit adalah sekitar 10151. 2. Dua orang atau lebih mungkin mendapatkan dua bilangan prima yang sama. Bila terdapat satu milyar (109) orang yang masing-masing berusaha mendapatkan 1000 bilangan prima, maka diperlukan hanya 1012 bilangan prima yang berbeda untuk memenuhinya. Bandingkan 1012 bilangan prima yang diperlukan dengan 10151 bilangan prima yang tersedia. Bayangkan pula bila disediakan bilangan 1024 bit, maka akan tersedia bilangan prima sekitar
19
10305. Angka ini diperoleh dari jumlah bilangan prima yang kurang dari n adalah sekitar n / (ln n). 3. Seseorang dapat membuat database yang dapat menyimpan seluruh bilangan prima dari 2 hingga kurang dari 21024, tapi juga mustahil. Bila mempunyai harddisk yang berkapasitas 1035 word (untuk mempermudah perhitungan, dianggap setiap word sanggup menyimpan satu bilangan prima), maka akan diperlukan sekitar 10270 harddisk untuk menyimpan seluruh bilangan prima yang kurang dari 21024. (Munir, 2006: 197) Selain itu, pemfaktoran bilangan prima juga tidak mudah. Bila mencari faktor prima sedemikian sulit, maka proses pembangkitan bilangan prima juga tidak dapat dilakukan dengan mudah. Triknya adalah pertanyaan ya / tidak. Menjawab pertanyaan “apakah angka ini merupakan bilangan prima” ini lebih mudah daripada menjawab pertanyaan yang lebih kompleks seperti “berapa faktor prima dari n”. Cara yang salah untuk mendapatkan bilangan prima adalah dengan membangkitkan bilangan acak dan kemudian mencoba memfaktorkannya. Cara yang bendar adalah membangkitkan bilangan acak dan kemudian mentes apakah merupakan bilangan prima. Terdapat beberapa metoda tes peluang prima, tes menentukan apakah suatu bilangan termasuk bilangan prima atau bukan dengan tingkat keyakinan tertentu. Jadi kita tidak yakin seratus persen bahwa bilangan yang kita tes adalah betul-betul bilangan prima. Metode untuk tes peluang prima yang paling sering digunakan adalah metode Rabin-Miller. Algoritma ini dirancang oleh Michael Rabin dengan
20
berdasarkan beberapa ide dari Gary Miller. Algoritma pengetesan ini adalah seperti berikut, 1. Pilih bilangan acak p untuk dites. 2. Hitung b, di mana b adalah banyaknya (p – 1) dibagi 2 (yaitu, b adalah pangkat terbesar dari 2, sedemikian sehingga 2b merupakan faktor dari p – 1). 3. Kemudian hitung m, sedemikian sehingga p = 1 + 2b.m 4. Pilih bilangan acak a sedemikian sehingga a lebih kecil daripada p. 5. Set j = 0 dan set z = am mod p. 6. Jika z = 1 atau jika z = p – 1, maka p lolos tes dan mungkin bilangan prima. 7. Jika j > 0 dan z = 1, maka p bukan bilangan prima. 8. Set j = j + 1. Bila j < b dan z ≠ p – 1, set z = z2 mod p dan kembali ke tahap 4. Jika z = p – 1, maka p lolos tes dan mungkin prima. 9. Jika j = b dan z ≠ p – 1, maka p bukan bilangan prima. Dalam dunia nyata, implementasi pembangkitan bilangan prima dapat berlangsung dengan sangat cepat. Salah satu implementasinya adalah sebagai berikut : 1. Bangkitkan bilangan acak p sepanjang n bit. 2. Set bit MSB (Most Significant Bit) dan LSB (Least Significant Bit) nya ke “1”. Atau set bit paling kiri dan kanannya ke bit satu. Pengesetan bit MSB menjamin panjang bit bilangan prima yang dihasilkan sesuai dengan yang diinginkan. Pengesetan bit LSB menjamin agar bilangan acak adalah bilangan ganjil, karena bilangan prima pasti harus bilangan ganjil. 3. Periksa apakah p tidak dapat dibagi bilangan prima kecil : 2,3,5,7,11, dan seterusnya hingga bilangan prima tertinggi yang lebih kecil dari 256.
21
Pemeriksaan ini akan mengurangi 80 % peluang bahwa bilangan yang dipilih bukan bilangan prima. Artinya bila bilangan yang dipilih tidak dapat dibagi bilangan prima kecil di atas, peluang bilangan yang dipilih merupakan bilangan prima adalah 80 %. 4. Lakukan tes Rabin – Miller untuk beberapa nilai a. Bila p lolos tes untuk satu nilai a, bangkitkan nilai a lainnya. Pilih nilai a yang kecil agar perhitungan lebih cepat. Lakukan tes dengan minimal 5 macam nilai a. Bila p gagal tes, bangkitkan p lainnya dan ulangi langkah (2). (Munir, 2006: 197-198)
2.5.3
Aritmatika Modular Aritmatika modular merupakan operasi matematika yang banyak
diimplementasikan pada metode kriptografi. Pada metoda kriptografi simetris, operasi aritmetika modular yang sering dipakai adalah operasi penjumlahan modulo dua. Operasi modulo dua ini melibatkan bilangan 0 dan 1 saja sehingga identik dengan bit pada komputer. Sebagai contoh, misalkan seorang bapak mengatakan kepada istrinya bahwa dia akan pulang terlambat 13 jam dari sekarang. Misalkan sekarang pukul 10:00 pagi. Pukul berapakah Milfred akan pulang ? Ini merupakan persoalan aritmatika modular 12. Persoalan ini dapat diselesaikan seperti berikut : (10 + 13) mod 12 = 23 mod 12 = 11 mod 12 Cara lain untuk menuliskan bentuk ini adalah dengan menyatakan bahwa 23 dan 11 adalah ekivalen, modulo 12, seperti berikut : 23 ≡ 11 (mod 12)
22
Secara mendasar, a ≡ b (mod n) jika a = b + kn untuk beberapa bilangan integer k. Jika a merupakan non-negatif dan b di antara 0 sampai n, dimana b merupakan sisa hasil bagi dari a ketika dibagi dengan n. Dengan kata lain, b adalah hasil dari a modulo n. Kadang-kadang a juga disebut kongruen dengan b modulo n. Operasi a mod n menghasilkan sisa bagi dari a, dimana sisa bagi merupakan beberapa bilangan integer dari 0 sampai n – 1. Operasi ini merupakan reduksi modular. Sebagai contoh, 5 mod 3 = 2. Aritmatika modular mirip dengan aritmatika biasa, terdapat fungsi komutatif, assosiatif dan distributif. Fungsi-fungsi tersebut dapat dideklarasikan seperti berikut : (a + b) mod n = ((a mod n) + (b mod n)) mod n (a – b) mod n = ((a mod n) – (b mod n)) mod n (a * b) mod n = ((a mod n) * (b mod n)) mod n (a * (b + c)) mod n = (((a * b) mod n) + ((a * c) mod n)) mod n Kriptografi banyak menggunakan perhitungan mod n, karena perhitungan logaritma diskrit dan akar kuadrat mod n merupakan persoalan sulit. Aritmatika modular lebih mudah dikerjakan pada komputer, karena operasi ini membatasi hasil yang didapatkan sehingga hasil operasi dari k-bit modulo n tidak akan lebih dari n. Selain itu, untuk menghitung pangkat dari suatu bilangan modulo bilangan lainnya, dapat dikerjakan secara terpisah seperti contoh berikut ini, Misalkan ingin dicari nilai dari a8 mod n, maka proses perhitungannya dapat dikerjakan seperti berikut, = (a * a * a * a * a * a * a * a) mod n = ((a2 mod n)2 mod n)2 mod n
23
Dengan cara yang sama dapat dicari, a16 mod n = (((a2 mod n)2 mod n)2 mod n)2 mod n Metode untuk menghitung am mod n adalah dengan menggunakan algoritma fast exponentiation. Operasi am mod n dapat dihitung dengan jumlah perkalian paling banyak 2.(2log (m + 1)) dengan algoritma sebagai berikut : 1. Konversikan m ke biner : bk bk-1 … b1 b0 2. {Initialisasi} I := k; Product := a 3. While I >= 0 Do a. If bI = 0 Then Product := Product^2 Else Product := Product * a; b. Product := Product mod n; I := I – 1; (Schneier, 2007: 242-243)
2.5.4
Generator Primitif Jika p adalah sebuah bilangan prima dan g adalah sebuah bilangan yang
lebih kecil daripada p, maka g adalah sebuah generator mod p jika: Untuk setiap nilai b dari 1 sampai p – 1, terdapat beberapa a dimana ga b (mod p). Cara lain untuk menyatakan hal tersebut yaitu bahwa g adalah primitif dari p. Sebagai contoh : jika p = 11, maka 2 adalah sebuah generator mod 11, karena : 210 = 1024 1 (mod 11) 21 = 2 2 (mod 11) 28 = 256 3 (mod 11) 22 = 4 4 (mod 11)
24
24 = 16 5 (mod 11) 29 = 512 6 (mod 11) 27 = 128 7 (mod 11) 23 = 8 8 (mod 11) 26 = 64 9 (mod 11) 25 = 32 10 (mod 11) Setiap angka dari 1 sampai 10 dapat diekspresikan dengan 2a (mod p). Untuk p = 11, generatornya adalah 2, 6, 7 dan 8. Bilangan lainnya bukan generator. Sebagai contoh, 3 bukan sebuah generator karena tidak terdapat solusi pada persamaan berikut: 3ª 2 (mod 11) Secara umum, untuk menguji apakah sebuah bilangan yang diberikan merupakan sebuah generator bukanlah sebuah permasalahan. Hal ini sangat mudah apabila anda mengetahui faktorisasi dari p – 1. Anggap q1, q2, …, qn merupakan faktor prima dari p – 1. Untuk menguji apakah sebuah bilangan g merupakan sebuah generator mod p, hitunglah: g(p – 1)/q mod p untuk semua nilai q = q1, q2, …, qn. Jika bilangan yang dihasilkan bernilai 1 untuk beberapa nilai q, maka g bukanlah sebuah generator. Sebaliknya, jika bilangan yang dihasilkan tidak ada yang bernilai 1 untuk semua nilai q, maka g adalah sebuah generator. Jika ingin dicari sebuah generator mod p, maka pilihlah sebuah bilangan acak dari 1 sampai p – 1 dan uji apakah merupakan sebuah generator. (Schneier, 2007: 253-254)
25
2.5.5
Key Escrow Key escrow (juga dikenal sebagai fair cryptosystem) adalah sebuah
pengaturan dimana kunci yang diperlukan untuk mendekripsi data terenkripsi disimpan di dalam data terenkripsi tersebut, sehingga pada keadaan tertentu, sebuah pihak ketiga yang memiliki wewenang dapat memperoleh kunci tersebut. Pihak ketiga ini dapat berupa pengusaha yang ingin mengakses komunikasi privat dari para karyawannya, ataupun pemerintah, yang berkeinginan agar mampu melihat isi data dari komunikasi terenkripsi (Schneier, 2007: 591). Problema teknis pada permasalahan ini merupakan suatu problema struktural yang besar, karena akses ke informasi terproteksi hanya boleh disediakan kepada penerima yang diinginkan dan paling sedikit satu pihak ketiga. Pihak ketiga hanya diperbolehkan mengakses data hanya pada kondisi yang terkontrol secara hati-hati, misalnya atas perintah pengadilan. Sampai sejauh ini, tidak ada desain sistem yang memenuhi persyaratan ini pada basis teknis. Semua sistem yang diperkenalkan juga memerlukan fungsi yang tepat dari beberapa hubungan sosial, seperti proses permintaan untuk akses, pemeriksaan permintaan untuk hak kekuasaan (sebagai contoh oleh pengadilan) dan mengabulkan akses oleh personal teknis yang dibatasi dengan kontrol akses. Semua hubungan / kontrol ini merupakan problema serius jika ditinjau dari perspektif sekuritas desain sistem. Pada level nasional, hal ini merupakan suatu kontroversial pada banyak negara yang disebabkan oleh ketidakpercayaan teknis dari sekuritas pengaturan penyimpanan kunci terenkripsi tersebut (berdasarkan pada sejarah panjang dari kurang memadainya proteksi dari informasi oleh organisasi yang berhak dalam
26
rangka untuk memproteksi data dari akses yang tidak legal) dan ketidakpercayaan terhadap sistem sekalipun sistem tersebut dapat berjalan sesuai dengan tujuan perancangannya. (Schneier, 2007: 591-593) Sampai sejauh ini, tidak ada sistem key escrow yang didesain untuk memenuhi sebuah objektif diatas dan hampir semuanya gagal untuk memenuhi salah satu persyaratan diatas.
2.5.6
Infrastruktur Kunci Publik Dalam kriptografi, Public Key Infrastructure (PKI) adalah sebuah cara
untuk otentikasi, pengamanan data dan perangkat anti sangkal. Secara teknis, PKI adalah implementasi dari berbagai teknik kriptografi yang bertujuan untuk mengamankan data, memastikan keaslian data maupun pengirimnya dan mencegah penyangkalan (Stallings, 2011: 437). Teknik-teknik kriptografi yang digunakan antara lain: 1. fungsi hash 2. algoritma enkripsi simetrik 3. algoritma enkripsi asimetrik Fungsi hash akan digunakan bersama dengan algoritma enkripsi asimetrik dalam bentuk tanda tangan digital untuk memastikan integritas dan keaslian berita/data berikut pengirimnya. Algoritma enkripsi simetrik digunakan untuk mengamankan data dengan cara enkripsi. Dalam PKI penggunaan algoritma enkripsi simetrik tidak langsung didefinisikan tetapi telah diimplementasikan oleh berbagai perangat lunak. Secara garis besar PKI diwujudkan dalam bentuk
27
kolaborasi antar komponen-komponennya. Contoh ilustrasi PKI dapat dilihat pada gambar berikut:
Gambar 2.5 Ilustrasi PKI Sumber : http://saeppanidream.files.wordpress.com/2010/05/new-picture.jpg Seperti terlihat pada gambar diatas, komponen-komponen PKI antara lain: 1. Subscriber, merupakan orang yang memberikan kunci publiknya untuk disertifikasi. 2. Certification Authority (CA), berfungsi untuk melakukan sertifikasi terhadap kunci publik dari subscriber. 3. Registration Authority (RA), berfungsi untuk mendaftarkan identitas dari subsriber. 4. Sertifikat Digital, berfungsi sebagai bukti sertifikasi terhadap kunci publik subscriber. Secara praktis wujud PKI adalah penggunaan sertifikat digital. Sertifikat digital adalah sebuah file komputer yang berisi data-data tentang sebuah public key, pemiliknya (subscriber atau CA), CA yang menerbitkannya dan masa berlakunya (Stallings, 2011: 437-439).
28
PKI telah diimplementasikan dengan berbagai aplikasi seperti S/MIME, HTTPS, VPN, dll. Anda dapat melihat fitur S/MIME pada software email yang terkenal seperti Outlook Express, Mozilla Mail/Thunderbird, dan Evolution.
2.6
Certificateless Public Key Cryptography (CLPKC) Sasaran utama dari Certificateless Public Key Cryptography (CLPKC)
adalah untuk memungkinkan seorang pengirim untuk mengirimkan sebuah pesan rahasia
kepada
seorang penerima
dengan
mengenkripsi
pesan
dengan
menggunakan kunci publik penerima yang tidak perlu mencantumkan sebuah sertifikat yang dibuat oleh CA. Sebagai hasilnya, seseorang dapat membuang proses pengecekan sertifikat yang menambah kerumitan sistem. Selain tidak mencakup proses pengecekan, pengirim juga diberikan jaminan bahwa hanya penerima yang jujur yang melakukan proses dengan melalui prosedur otentikasi yang sesuai dan memiliki kunci privat parsial yang benar yang berhubungan dengan identitasnya ID dari Key Generation Center (KGC) yang mampu untuk mendekripsi pesan. Model CLPKC dari Joonsang Baek, Reinhaneh Safavi-Naini dan Willy Susilo sangat mirip dengan CLPKC asli. Kenyataannya, sub-algoritma dari CLPKC mereka, Setup, Set Secret Value, Set Private Key, Encrypt dan Decrypt identik dengan algoritma pada CLPKC asli. Dua algoritma yang berbeda adalah Partial Key Extract dan Set Public Key. Partial Key Extract mirip dengan algoritma “Partial Private Key Extract” dari CLPKC asli dengan sebuah perbedaan dimana output dari Partial Key Extract terdiri dari sebuah kunci privat parsial yang harus disimpan rahasia dan kunci
29
publik parsial yang akan digunakan oleh user untuk menghasilkan sebuah kunci publik. Sementara itu, satu-satunya perbedaan antara algoritma “Set Public Key” dari CLPKC asli dan algoritma Set Public Key dari algoritma mereka adalah pada model CLPKC mereka ini, kunci publik parsial yang dihasilkan oleh Partial Key Extract harus disediakan sebagai input pada Set Public Key, yang membuatnya menjadi tidak mungkin bagi seorang user untuk menentukan sebuah kunci publik jika dia tidak menghubungi KGC dan memperoleh pasangan kunci privat / publik parsial. CLPKC yang dikemukakan oleh Joonsang Baek, Reinhaneh Safavi-Naini dan Willy Susilo ini tidak kehilangan sifat unik dari CLPKC yaitu penggunaan dari sertifikat untuk menjamin otentitas dari kunci publik tidak diperlukan lagi. Berikut dirincikan tahapan kerja yang terdapat pada skema CLPKC tersebut: 1. Setup Pusat pembangkitan kunci (key generation center / KGC) menjalankan algoritma ini untuk menghasilkan sebuah parameter umum params dan sebuah kunci utama masterKey. Nilai params ini diberikan kepada semua pihak yang terlibat dalam sistem. Tahapan ini dapat dituliskan sebagai (params, masterKey) = Setup(). 2. Partial Key Extract Dengan mengambil nilai params, masterKey dan sebuah identitas ID yang diterima dari seorang user sebagai input, KGC menjalankan algoritma ini untuk menghasilkan sebuah kunci privat parsial DID dan sebuah kunci publik parsial PID. Tahapan ini dapat dituliskan sebagai (PID, DID) = Partial Key Extract(params, masterKey, ID).
30
3. Set Secret Value Dengan mengambil nilai params dan ID sebagai input, user menjalankan algoritma ini untuk menghasilkan sebuah nilai rahasia sID. Tahapan ini dapat dituliskan sebagai sID = Set Secret Value(params, ID). 4. Set Private Key Dengan mengambil nilai params, DID dan sID sebagai input, user menjalankan algoritma ini untuk menghasilkan sebuah kunci privat SKID. Tahapan ini dapat dituliskan sebagai SKID = Set Private Key(params, DID, sID). 5. Set Public Key Dengan mengambil nilai params, PID, sID dan ID sebagai input, user menjalankan algoritma ini untuk menghasilkan sebuah kunci publik PKID. Tahapan ini dapat dituliskan sebagai PKID = Set Public Key(params, PID, sID, ID). 6. Encrypt Dengan mengambil nilai params, ID, PKID, dan sebuah pesan (plaintext message) M sebagai input, seorang pengirim (sender) menjalankan algoritma ini untuk menghasilkan sebuah ciphertext C. Tahapan ini dapat dituliskan sebagai C = Encrypt(params, ID, PKID, M). 7. Decrypt Dengan mengambil nilai params, SKID dan ciphertext C sebagai input, penerima pesan (recipient) menjalankan algoritma ini untuk menghasilkan sebuah dekripsi , dimana dapat berupa plaintext message ataupun pesan “Reject”. Tahapan ini dapat dituliskan sebagai = Decrypt(params, SKID, C). (Joonsang, B., Reihaneh S.-N., dan Willy, 2005: 4-5)
31
2.6.1
Algoritma Skema CLPKC Berikut akan dirincikan algoritma CLPKC yang berdasarkan pada skema
signature Schnorr. Seperti yang telah disebutkan sebelumnya, skema CLPKC dari Joonsang Baek, Reinhaneh Safavi-Naini dan Willy Susilo ini termotivasi dari konstruksi dari skema enkripsi yang menggunakan PKI. Para pengembang algoritma mengaplikasikan skema ini secara teliti untuk menghasilkan skema CLPKC yang efisien. Biaya komputasi untuk merealisasikan skema ini sangat rendah karena dipengaruhi oleh efisiensi yang dibawa dari algoritma signature Schnorr dan juga metode efektif yang mengkombinasikan skema signature Schnorr dan skema enkripsi kunci publik. Algoritma enkripsi dari skema CLPKC ini memerlukan dua buah eksponensiasi tambahan jika dibandingkan dengan enkripsi ElGamal yang di-“hash”, dan proses dekripsi juga memerlukan sebuah eksponensiasi tambahan jika dibandingkan dengan skema dekripsi ElGamal yang di-“hash” tersebut. Berikut dijabarkan algoritma dari skema CLPKC: 1. Setup a. Bangkitkan dua buah bilangan prima p dan q sedemikian sehingga q relatif prima terhadap (p – 1). b. Pilih sebuah generator acak g dari Zp*. c. Pilih sebuah nilai x secara acak dari Zq*. d. Hitunglah nilai y = gx mod p. e. Pilih fungsi hash H1 : {0, 1}* x Zq* Zq*, pilih fungsi hash H2 : {0, 1}l0 x {0, 1}l1 Zq* dan pilih fungsi hash H3 : Zp* x Zp* {0, 1}l, dimana l = l0 + l1 . f. Params = (p, q, g, y, H1, H2, H3).
32
g. masterKey = (p, q, g, x, H1, H2, H3). 2. Partial Key Extract(params, masterKey, ID) a. Pilih sebuah nilai s Zq* secara acak. b. Hitunglah nilai w = gs mod p. c. Hitunglah nilai t = s + xH1(ID, w) (mod p). d. PID = w (mod p). e. DID = t (mod p). 3. Set Secret Value(params, ID) a. Pilih sebuah nilai z Zq* secara acak. b. sID = z (mod p). 4. Set Private Key(params, DID, sID) a. SKID = (sID, DID) = (z, t). b. Kembalikan nilai SKID. 5. Set Public Key(params, PID, sID, ID) a. PID = w (mod p). b. sID = z (mod p). c. = gz (mod p). d. PKID = (w, ). e. Kembalikan nilai PKID. 6. Encrypt(params, ID, PKID, M) a. Panjang bit dari M adalah l0. b. Parsing PKID sebagai (w, ). c. Hitunglah ID = wyH1(ID, w). d. Pilih nilai {0. 1}l1 secara acak.
33
e. Hitunglah r = H2(M, ) (mod p). f. Hitunglah C = (c1, c2) sedemikian sehingga: c1 = gr (mod p) c2 = H3(k1, k2) (M || ) (mod p) dimana : k1
= r (mod p)
k2
= ID r (mod p)
g. Kembalikan nilai C. 7. Decrypt(params, SKID, C) a. Parsing C sebagai (c1, c2). b. Parsing SKID sebagai (z, t). c. Hitunglah M || = H2(c1z, c1t) c2 (mod p). d. Jika gH2(M, ) (mod p) = c1 (mod p), maka kembalikan nilai M. e. Jika tidak, maka kembalikan “Reject”. (Joonsang, B., Reihaneh S.-N., dan Willy, 2005: 8)
2.6.2
Analisis Keamanan Secara mendasar, ide utama dari pembuktian sekuritas adalah untuk
memungkinkan penyerangan Computational Diffie-Hellman (CDH)
yang
dilakukan oleh B dengan cara mensimulasikan lingkungan dari penyerang AI dan AII hingga mampu menghitung sebuah kunci Diffie-Hellman gab dari ga dan gb dengan menggunakan kemampuan AI dan AII. AI dan AII menggunakan berbagai variasi query, seperti random oracle, ekstraksi kunci parsial, permohonan kunci
34
publik, ekstraksi kunci privat dan query dekripsi. B akan merespons pada query ini dengan jawaban secara identik terdistribusi sama seperti penyerangan riil. Selain itu, perlu dicatat bahwa untuk attacker AI, B men-set nilai ga sebagai sebuah bagian dari challenge ciphertext dan gb sebagai sebuah kunci publik KGC. Di sisi lain, untuk attacker AII, B men-set nilai ga sebagai bagian dari challenge ciphertext tetapi menggunakan gb untuk menghasilkan sebuah kunci publik yang berhubungan dengan identitas challenge. Kunci publik KGC di-set sebagai gx dimana B mengetahui nilai acak x Zq*. Dengan cara ini, B dapat memberikan kunci utama dari KGC kepada AII. Pengembang algoritma mengingatkan bahwa harus diberikan perhatian khusus ketika jawaban query dari permintaan kunci publik penyerang disimulasikan. Salah satu alasan yaitu sebuah kunci publik pada skema ini dihubungkan tidak hanya pada sebuah kunci privat tetapi juga kunci publik dan privat parsial yang diperoleh dari KGC. Alasan lainnya adalah selama proses serangan, penyerang diberi nama untuk melihat (atau menerima) sembarang kunci publik yang berhubungan dengan identitas target. (Joonsang, B., Reihaneh S.-N., dan Willy, 2005: 9)
BAB III METODE PENELITIAN
3.1
Tempat dan Jadwal Penelitian Penelitian ini dimulai dari November 2014 dan berakhir pada April 2015.
Penelitian (dilakukan di kampus) ditujukan untuk mengumpulkan data yang diperlukan dalam proses perancangan dan pembuatan sistem beserta proses pengujian aplikasi yang dibuat. Berikut ini dijabarkan jadwal penelitian yang dapat dilihat pada Tabel 3.1. Tabel 3.1 Daftar Waktu dan Kegiatan Penelitian
Waktu Kegiatan
1
November
Desember
Januari
Februari
Maret
April
2014
2014
2015
2015
2015
2015
2
3
4
1
2
3
4
1
2
3
Pengumpulan Data Analisa Sistem Perancangan Sistem Pembangunan Uji Coba Sistem Penulisan Lap. Skripsi
35
4
1
2
3
4
1
2
3
4
1
2
3
4
36
3.2
Kerangka Kerja Adapun kerangka kerja yang dibuat penulis seperti gambar 3.1.
Identifikasi Masalah
Pengumpulan Data
Analisa Sistem
Perancangan Sistem
Pembangunan
Uji Coba Sistem
Gambar 3.1 Kerangka Kerja Penelitian
3.2.1
Identifikasi Masalah Proses diawali dengan merumuskan permasalahan yang ditemukan dan
kemudian digunakan sebagai dasar / acuan di dalam penelitian, sehingga di akhir penelitian didapatkan jawaban / kesimpulan atas perumusan masalah tersebut.
37
3.2.2
Metode Pengumpulan Data Teknik pengumpulan data dapat didefinisikan sebagai suatu cara yang
digunakan untuk memperoleh data yang dibutuhkan sebagai bahan masukan bagi penulis dalam penyusunan tugas akhir ini. Proses ini dimulai dengan mengumpulkan data-data yang diperlukan dalam penelitian, adapun metode pengumpulan data dalam penelitian dilakukan melalui
Penelitian
Kepustakaan
(library
research),
dimana
penulis
mengumpulkan data-data melalui berbagai referensi seperti internet dan bukubuku yang relevan yang berhubungan dengan topik yang dibahas.
3.2.3
Analisa Sistem Pada tahap ini penulis akan menganalisis permasalahan lebih mendalam
mengenai masalah yang muncul, sehingga perlu dirancang sebuah sistem baru untuk menyelesaikan permasalahan tersebut. Sekarang, untuk mengirimkan pesan kepada orang lain, maka dapat digunakan aplikasi e-mail ataupun aplikasi chatting pada jaringan ataupun dengan mengirimkan SMS. Namun, aplikasi tersebut tidak dapat menyamarkan pesan yang dikirimkan, sehingga pihak lain dapat mengetahui isi pesan yang dikirimkan.
3.2.4
Perancangan Sistem Perancangan sistem secara menyeluruh menjelaskan rancangan sistem
secara detail. Perancangan yang dilakukan mencakup perancangan tampilan user interface dari aplikasi dan rancangan struktur program.
38
3.2.5
Pembangunan Sistem Proses dilanjutkan dengan melakukan coding terhadap perangkat lunak.
Perangkat lunak ini dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 2010 dengan perincian sebagai berikut : 1. Data ditampilkan dengan menggunakan label dan textbox. 2. Data kunci dari setiap user akan disimpan dalam sebuah file database.
3.2.6
Uji Coba Sistem Setiap aplikasi perangkat lunak yang telah dibangun harus dilakukan uji
coba terlebih dahulu sebelum digunakan, untuk mengetahui apakah aplikasi perangkat lunak yang dibangun sudah sesuai dengan yang diharapkan dan bekerja dengan baik atau masih terdapat kesalahan (error). Setiap kesalahan (error) yang terjadi akan diperbaiki kembali.
BAB IV ANALISIS DAN PERANCANGAN
4.1.
Analisis Analisis sistem adalah pembelajaran sebuah sistem dan komponen-
komponennya sebagai prasyarat system design / desain sistem dan spesifikasi sebuah sistem yang baru. Berpindah dari definisi klasik analisis sistem ini ke suatu yang lebih kontemporer, analisis sistem adalah sebuah istilah yang secara kolektif mendeskripsikan fase-fase awal pengembangan sistem. Berdasarkan definisi analisis sistem, maka proses analisis pada penelitian ini yang menggunakan model pemodelan OOA yaitu pemodelan domain informasi, penggambaran fungsi modul, representasi tingkah laku model, dan model partisi.
4.1.1. Pemodelan Domain Informasi Dalam proses komunikasi di jaringan komunikasi global seperti internet, diperlukan sebuah metode kriptografi untuk mengamankan data yang dikirimkan selama proses komunikasi tersebut. Pada umumnya, metode kriptografi kunci publik yang lebih sering digunakan, karena metode ini tidak memerlukan proses pertukaran kunci yang akan digunakan dalam proses komunikasi. Seseorang hanya perlu untuk mempublikasikan kunci publiknya dan metode yang digunakan agar orang lain dapat mengirimkan data terenkripsi kepadanya. Namun, penggunaan metode kriptografi kunci publik konvensional ini juga memiliki kelemahan, yaitu kunci publik yang digunakan harus disertifikasi
39
40
terlebih dahulu, untuk memastikan bahwa kunci publik memang benar-benar dimiliki oleh orang yang akan menerima data terenkripsi, dan bukan orang lain yang menyamar atau memalsukan kunci publik tersebut. Proses sertifikasi terhadap kunci publik ini dapat dilakukan melalui layanan sertifikasi online yang tersedia dan akan dikenakan biaya tertentu. Proses sertifikasi ini memakan waktu dan biaya. Sebagai alternatif dari penggunaan sertifikasi ini, seseorang dapat menggunakan algoritma kriptografi kunci publik yang menerapkan fungsi pairing dalam prosedur kerjanya. Namun, penggunaan fungsi pairing juga memiliki kelemahan yaitu proses perhitungannya yang panjang dan rumit sehingga proses kerjanya memerlukan waktu yang lama dan memerlukan perangkat keras dengan spesifikasi lebih tinggi agar dapat berjalan cepat. Sebagai solusi dari permasalahan diatas, maka dapat digunakan algoritma kriptografi kunci publik yang tidak menggunakan sertifikat dan juga fungsi pairing. Salah satu jenis algoritma ini adalah certificateless public key cryptography (CLPKC) yang dikembangkan oleh Joonsang Baek, Reihaneh Safavi-Naini dan Willy Susilo. Untuk menerapkan algoritma tersebut dalam kehidupan nyata, maka diperlukan sebuah perangkat lunak yang menyediakan antarmuka untuk mengimplementasikan algoritma tersebut untuk mengamankan file dokumen berbasis teks.
41
4.1.2. Penggambaran Fungsi Modul Prosedur kerja dari skema certificateless public key cryptography (CLPKC) ini terdiri dari beberapa tahapan yang dapat dirincikan seperti terlihat pada gambar activity diagram berikut: 1. Setup Prosedur ini berfungsi untuk menghasilkan parameter publik (params) yang akan digunakan dalam setiap proses selanjutnya dan kunci utama (masterKey) yang akan digunakan pada prosedur Partial Key Extract. Gambaran proses kerja dari Setup ini dapat dilihat pada gambar 4.1 berikut:
Ambil dua buah bilangan prima, p dan q
Pilih generator acak g
Pilih nilai acak x
Hitung nilai y = gx mod p
Pilih fungsi hash H1, H2 dan H3
Params = (p, q, g, y, H1, H2, H3) masterKey = (p, q, g, x, H1, H2, H3)
Gambar 4.1 Activity Diagram dari Setup
42
2. Partial Key Extract Prosedur ini berfungsi untuk menghasilkan kunci privat parsial (DID) yang diperlukan pada prosedur Set Private Key dan sebuah kunci publik parsial (PID) yang diperlukan pada prosedur Set Public Key. Input dari prosedur ini mencakup params, masterKey dan sebuah identitas ID. Gambaran proses kerja dari Partial Key Extract ini dapat dilihat pada gambar 4.2 berikut:
Input params, masterKey, ID
Pilih sebuah nilai s
Hitung nilai w = gs mod p
Hitung nilai t = s + xH1(ID, w)
PID = w DID = t
Gambar 4.2 Activity Diagram dari Partial Key Extract
3. Set Secret Value Prosedur ini berfungsi untuk menghasilkan sebuah nilai rahasia sID yang diperlukan pada prosedur Set Private Key dan Set Public Key. Input dari
43
prosedur ini mencakup nilai params dan ID. Gambaran proses kerja dari Set Secret Value ini dapat dilihat pada gambar 4.3 berikut:
Input params, ID
Pilih sebuah nilai z
sID = z
Gambar 4.3 Activity Diagram dari Set Secret Value
4. Set Private Key Prosedur ini berfungsi untuk menghasilkan sebuah kunci privat SKID yang diperlukan pada prosedur Decrypt. Input dari prosedur ini mencakup nilai params, DID dan sID. Gambaran proses kerja dari Set Private Key ini dapat dilihat pada gambar 4.4 berikut:
Input params, DID, sID
SKID = (z, t)
Gambar 4.4 Activity Diagram dari Set Private Key
44
5. Set Public Key Prosedur ini berfungsi untuk menghasilkan sebuah kunci publik PKID yang diperlukan pada prosedur Encrypt. Input dari prosedur ini mencakup nilai params, PID, sID dan identitas (ID). Gambaran proses kerja dari Set Public Key ini dapat dilihat pada gambar 4.5 berikut:
Input params, PID, sID, ID
PID = w
sID = z
µ = gz
PKID = (w, µ)
Gambar 4.5 Activity Diagram dari Set Public Key Prosedur Setup, Partial Key Extract, Set Secret Value, Set Private Key dan Set Public Key ini termasuk ke dalam proses pembentukan kunci.
6. Encrypt Prosedur ini berfungsi untuk mengamankan isi dari pesan menjadi bentuk ciphertext yang akan dikirimkan kepada penerima. Input dari prosedur ini
45
mencakup nilai params, ID, PKID, dan sebuah pesan (plaintext message) M. Gambaran proses kerja dari Encrypt ini dapat dilihat pada gambar 4.6 berikut:
Input params, ID, PKID, M
L0 = panjang bit dari pesan M
gID = wyH1(ID, w)
Pilih nilai s secara acak
Hitung r = H2(M, s)
Hitung c1 = gr
Hitung c2 = H3(k1, k2) (M || s )
C = (c1, c2)
Gambar 4.6 Activity Diagram dari Encrypt
46
7. Decrypt Prosedur ini berfungsi untuk mengubah ciphertext menjadi bentuk pesan semula. Input dari prosedur ini mencakup nilai params, SKID dan ciphertext (C). Gambaran proses kerja dari Decrypt ini dapat dilihat pada gambar 4.7 berikut:
Input params, SKID, C
M || s = H2(c1z, c1t) c2
gH2(M, s) = c1
Tidak
Ya
Pesan = M
Pesan = <ERROR>
Gambar 4.7 Activity Diagram dari Decrypt
4.1.3. Representasi Tingkah Laku Model Untuk merepresentasikan tingkah laku model, akan dilakukan analisis persyaratan terhadap sistem yang akan dirancang mencakup analisis fungsional yang mendeskripsikan fungsionalitas yang harus dipenuhi oleh perangkat lunak dan analisis non fungsional yang mendeskripsikan persyaratan non fungsional yang berhubungan dengan kualitas sistem.
47
4.1.3.1 Analisis Fungsional Adapun beberapa persyaratan fungsional yang harus dipenuhi oleh perangkat lunak adalah sebagai berikut: 1. Pemahaman a. Pesan input yang diperlukan dapat diketik langsung oleh pemakai melalui keyboard ataupun dengan membuka file dokumen yang telah tersimpan sebelumnya. b. Perangkat lunak mendukung proses pembukaan dan pembacaan isi file dokumen berbasis teks yang berformat *.txt dan *.rtf. Proses ini memerlukan komponen Open Dialog Box yang tersedia pada Microsoft Visual Basic.NET. c. Perangkat lunak juga akan menampilkan teori pendukung yang berhubungan dengan skema certificateless public key cryptography (CLPKC) tanpa pairing. d. Proses kerja yang akan ditampilkan oleh perangkat lunak mencakup proses pembentukan kunci (Setup, Partial Key Extract, Set Secret Value, Set Private Key dan Set Public Key), proses enkripsi dan proses dekripsi.
2. Aplikasi a. Perangkat lunak mendukung proses pembukaan dan pembacaan isi file dokumen berbasis teks yang berformat *.txt dan *.rtf. Proses ini memerlukan komponen Open Dialog Box yang tersedia pada Microsoft Visual Basic.NET.
48
b. Perangkat lunak juga mendukung proses penyimpanan hasil enkripsi ke sebuah file data yang berformat *.enc. Proses ini memerlukan komponen Save Dialog Box yang tersedia pada Microsoft Visual Basic.NET. c. Perangkat
lunak
menyediakan
antarmuka
untuk
pengaturan
dan
penyimpanan data user ke dalam database Microsoft Access 2003. Proses koneksi ke database ini akan menggunakan reference ActiveX Data Object DataBase (adodb) yang terdapat pada Microsoft Visual Basic.NET.
4.1.3.2 Analisis Non Fungsional Untuk merumuskan persyaratan non-fungsional dari sistem, maka harus dilakukan analisis terhadap kinerja, informasi, ekonomi, keamanan aplikasi, efisiensi, dan pelayanan customer. Panduan ini dikenal dengan analisis PIECES (performance, information, economic, control, eficiency, dan services). Berikut rinciannya: 1. Performance Untuk bagian implementasi, perangkat lunak harus dapat menampilkan hasil proses sesaat setelah pemakai selesai melakukan pengisian data dan mengklik tombol eksekusi. Lamanya proses pada bagian implementasi tergantung pada panjangnya pesan yang dimasukkan. Semakin panjang pesan yang dimasukkan, maka proses kerjanya akan memakan waktu yang lebih banyak. Sedangkan, untuk bagian pemahaman, interval waktu antar langkah harus diatur sedemikian rupa agar pemakai dapat memahami langkah kerja yang ditampilkan.
49
2. Information Pada bagian implementasi, setelah selesai mengeksekusi proses, perangkat lunak akan memberikan sebuah pesan pemberitahuan kepada pemakai. Sedangkan, untuk bagian pemahaman, perangkat lunak harus mampu menampilkan laporan hasil proses perhitungan dari skema certificateless public key cryptography (CLPKC) tanpa pairing. Selain itu, setiap angka yang ditampilkan dalam proses perhitungan juga harus diberikan penjelasan secara terperinci. 3. Economics Perangkat lunak tidak memerlukan perangkat dukung tambahan lainnya dalam proses eksekusinya. Perangkat keras yang diperlukan hanya berupa satu set komputer lengkap dengan monitor, mouse, keyboard dan speaker saja. Sementara, perangkat lunak yang diperlukan hanya berupa aplikasi Microsoft Visual Basic 2010 beserta beberapa komponen tambahan yang dilampirkan beserta perangkat lunak. 4. Control Perangkat lunak akan menampilkan pesan kesalahan apabila data yang diinput tidak lengkap atau tidak valid (tidak sesuai dengan ketentuan). 5. Efficiency Hasil proses perhitungan dari perangkat lunak dapat disimpan ke dalam sebuah file teks yang dapat dibuka kembali apabila diperlukan dengan menggunakan fasilitas Notepad.
50
6. Service Perangkat lunak hanya dapat menampilkan proses pemahaman dengan menggunakan bantuan animasi sederhana agar proses pemahaman dapat menjadi lebih menarik. Selain itu, juga diberikan desain pada latar perangkat lunak agar kelihatan lebih hidup.
4.1.4. Partisi Model Setelah menganalisis prosedur kerja dari certificateless public key cryptography (CLPKC) tanpa pairing, maka tahapan selanjutnya adalah memodelkan sistem yang akan dirancang. Alat bantu yang digunakan untuk menganalisis dan memodelkan sistem adalah use case. Gambar 4.8 berikut menunjukkan use case dari sistem: Aplikasi Skema Certificateless Public Key Cryptography tanpa Pairing
Mengenkripsi pesan << uses >> Pengirim
Penerima Melakukan proses pembentukan kunci << uses >> Mendekripsi pesan
Gambar 4.8 (a) Diagram Use Case dari Aplikasi
51
Pemahaman Skema Certificateless Public Key Cryptography tanpa Pairing
Menampilkan proses dekripsi << uses >>
Melakukan proses pembentukan kunci
<< uses >>
Pemakai
Menampilkan proses enkripsi
Gambar 4.8 (b) Diagram Use Case dari Pemahaman Pada gambar 4.8 (a) dan (b) di atas, terlihat bahwa use case dari sistem hanya terdiri dari dua aktor yaitu pengirim dan penerima. Semua data yang diperlukan untuk proses pemahaman akan dimasukkan oleh pengirim dan penerima ke dalam sistem. Setelah itu, sistem akan melakukan proses validasi terhadap semua data input dan menampilkan proses kerja dari algoritma yang diinginkan apabila semua data input valid. Berikut dirincikan narasi dari use case : Tabel 4.1 Narasi Use Case Melakukan Proses Pembentukan Kunci Nama use case
Melakukan proses pembentukan kunci
Actor
Penerima dan Pemakai
Deskripsi
Use case ini mendeskripsikan kejadian proses pembentukan kunci dari algoritma Certificateless Public Key Cryptography tanpa Pairing
52
Aksi Aktor 1. Input bilangan prima p dan
Respons Sistem 2. Uji bilangan prima p dan q.
q. 3. Input nilai generator g.
4. Uji generator primtif g.
5. Input nilai acak x.
6. Uji nilai x sesuai dengan ketentuan algoritma.
7. Input data identitas.
9. Uji nilai s sesuai dengan
8. Input nilai acak s.
ketentuan algoritma. 11. Uji nilai z sesuai dengan
10. Input nilai acak z.
ketentuan algoritma. 12. Tampilkan semua nilai hasil perhitungan.
Tabel 4.2 Narasi Use Case Mengenkripsi Pesan Nama use case
Mengenkripsi pesan
Actor
Pengirim dan Pemakai
Deskripsi
Use case ini mendeskripsikan kejadian proses enkripsi dari algoritma Certificateless Public Key Cryptography tanpa Pairing Aksi Aktor
Respons Sistem
1. Input file teks. 2. Klik tombol ’Proses’.
3. Sistem melakukan proses enkripsi pesan. 4. Sistem menampilkan hasil enkripsi.
53
Tabel 4.3 Narasi Use Case Mendekripsi Pesan Nama use case
Mendekripsi pesan
Actor
Penerima dan Pemakai
Deskripsi
Use case ini mendeskripsikan kejadian proses dekripsi dari algoritma Certificateless Public Key Cryptography tanpa Pairing Aksi Aktor
Respons Sistem
1. Input file ciphertext.
3. Sistem melakukan proses
2. Klik tombol ’Proses’.
dekripsi pesan. 4. Sistem menampilkan hasil dekripsi.
4.2.
Perancangan Perangkat
lunak
implementasi
skema
certificateless
public
key
cryptography (CLPKC) tanpa pairing ini dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 2010 dengan menggunakan beberapa objek dasar seperti : 1. Label, yang digunakan untuk menampilkan keterangan. 2. Link Label, yang digunakan sebagai link untuk menghubungkan form-form yang terdapat pada perangkat lunak. 3. Button, yang digunakan sebagai tombol eksekusi. 4. Textbox, yang digunakan sebagai tempat pengisian data dan untuk menampilkan nilai hasil perhitungan. 5. RichTextbox, yang digunakan untuk menampilkan hasil proses perhitungan.
54
6. Panel, yang digunakan untuk menggabungkan objek. Sedangkan, rancangan tampilan dari perangkat lunak implementasi certificateless public key cryptography (CLPKC) tanpa pairing ini dapat dirincikan sebagai berikut: 1. Global a. Form ‘Splash Screen’. b. Form ‘Main’.
2. Aplikasi a. Form ‘Tambah User’. b. Form ‘Login’. c. Form ‘Utama Aplikasi’. d. Form ‘Kirim File’. e. Form ‘Kotak Masuk / Keluar’.
3. Pemahaman a. Form ‘Pilih Algoritma’. b. Form ‘Input Kunci’. c. Form ‘Input Pesan’. d. Form ‘Pemahaman Enkripsi’. e. Form ‘Pemahaman Dekripsi’. f. Form ‘Laporan’.
55
4.2.1. Global Rancangan tampilan global mencakup form Splash Screen dan form Main. Tampilan global ini tidak termasuk ke dalam bagian aplikasi maupun pemahaman.
4.2.1.1 Form ‘Splash Screen’ Form ini merupakan form awal yang akan ditampilkan pertama kali pada saat menjalankan perangkat lunak. Form ini dapat ditutup dengan mengklik pada sembarang tempat pada form ataupun akan ditutup secara otomatis setelah muncul selama 5 detik. Setelah form ini ditutup, maka akan muncul form ’Login’. Rancangan tampilan dari form ‘Splash Screen’ dapat dilihat pada gambar 4.9 berikut :
1
3
2
Gambar 4.9 Rancangan Form ’Splash Screen’ Keterangan : 1 : Daerah tampilan nama perangkat lunak. 2 : Daerah tampilan gambar logo STMIK-TIME. 3 : Daerah tampilan data penyusun.
56
4.2.1.2 Form ‘Main’ Form ‘Main’ ini berfungsi untuk menyediakan link yang dapat digunakan untuk memahami dan menerapkan skema certificateless public key cryptography. Form ini merupakan form yang muncul pertama kali saat perangkat lunak dijalankan. Rancangan tampilan dari form ‘Main’ ini dapat dilihat pada gambar 4.10 berikut:
5
1
4
2
3
Gambar 4.10 Rancangan Form ‘Main’ Keterangan : 1 : Link ’Pemahaman’, berfungsi untuk menampilkan prosedur kerja dari skema certificateless public key cryptography. Apabila link ini diklik maka sistem akan menampilkan form ’Pilih Algoritma’ dan user dapat mengklik proses yang ingin ditampilkan dan dipelajari.
57
2 : Link ’Aplikasi’, berfungsi untuk menerapkan skema certificateless public key cryptography dalam mengamankan file dokumen berbasis teks. Apabila link ini diklik maka sistem akan menampilkan form ’Pilih Algoritma’ dan user dapat mengklik proses yang ingin dilakukan. 3 : Link ‘Keluar’, berfungsi untuk menutup perangkat lunak. 4 : Daerah tampilan keterangan mengenai link yang sedang ditunjuk oleh pointer mouse. 5 : Link ‘Tambah User Baru’, berfungsi untuk menampilkan form ’Tambah User’ untuk meng-input data user baru.
4.2.2. Aplikasi Bagian ini merincikan form-form yang terdapat pada bagian aplikasi dari sistem. Tampilan-tampilan ini hanya dapat diakses apabila pemakai masuk ke bagian aplikasi dari sistem.
4.2.2.1 Form ‘Tambah User’ Form ini berfungsi sebagai tempat pengisian data user baru yang akan menggunakan perangkat lunak. Rancangan tampilan dari form ‘Tambah User’ dapat dilihat pada gambar 4.11 berikut ini :
58
2 1
3 5
4 7
8
6
9
10
Gambar 4.11 Rancangan Form ‘Tambah User’ Keterangan : 1 : Tombol ‘x’, berfungsi untuk menutup form dan kembali ke form ’Main’. 2 : Textbox ‘User ID’, berfungsi sebagai tempat pengisian data nama user. 3 : Textbox ‘Password’, berfungsi sebagai tempat pengisian data password user. 4 : Textbox ‘Nama’, berfungsi sebagai tempat pengisian data nama user. 5 : Textbox ‘Alamat’, berfungsi sebagai tempat pengisian data alamat user. 6 : Radiobutton ‘Laki-Laki’, dipilih apabila user berjenis kelamin laki-laki. 7 : Radiobutton ‘Perempuan’, dipilih apabila user berjenis kelamin perempuan. 8 : Textbox ‘E-Mail’, berfungsi sebagai tempat pengisian data alamat e-mail user. 9 : Tombol ‘Simpan’, berfungsi untuk menyimpan data user yang di-input ke dalam database.
59
10 : Tombol ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
4.2.2.2 Form ‘Login’ Form ini berfungsi sebagai tempat pengisian data user yang terdaftar yang dapat menggunakan sistem. Apabila data yang di-input valid (terdaftar dalam database), maka sistem akan menampilkan form ‘Main’. Jika tidak valid, maka akan ditampilkan pesan kesalahan. Rancangan tampilan dari form ‘Login’ dapat dilihat pada gambar 4.12 berikut ini :
1
2
3
4
Gambar 4.12 Rancangan Form ‘Login’ Keterangan : 1 : Textbox ‘User ID’, berfungsi sebagai tempat pengisian data nama user. 2 : Textbox ‘Password’, berfungsi sebagai tempat pengisian data password user. 3 : Tombol ‘OK’, berfungsi untuk melakukan pengecekan data user yang diinput. Apabila data yang di-input valid (terdaftar dalam database), maka sistem akan menampilkan form ‘Main’. Jika tidak valid, maka akan ditampilkan pesan kesalahan.
60
4 : Tombol ‘Batal’, berfungsi untuk menutup perangkat lunak.
4.2.2.3 Form ‘Utama Aplikasi’ Form ini merupakan tampilan utama dari bagian aplikasi, yang berfungsi untuk menampilkan semua file yang diterima dan dikirimkan oleh pemakai. Rancangan tampilan dari form ‘Utama Aplikasi’ dapat dilihat pada gambar 4.13 berikut ini :
4 1
2
3
5
7
6
Gambar 4.13 Rancangan Form ’Utama Aplikasi’ Keterangan : 1 : Tombol ‘Kirim File’, berfungsi untuk membuka form ’Kirim File’. 2 : Link label ‘Kotak Masuk’, berfungsi untuk menampilkan daftar file yang diterima pada tabel (5). 3 : Link label ‘Kotak Keluar’, berfungsi untuk menampilkan daftar file yang dikirimkan pada tabel (5).
61
4 : Tombol ‘Hapus dari tabel’, berfungsi untuk menghapus data yang dipilih pada tabel (5). 5 : Tabel ‘Daftar’, merupakan daerah tampilan daftar file yang dikirimkan ataupun diterima oleh pemakai. 6 : Tombol ‘Tampilkan Pesan’, berfungsi untuk menampilkan form ’Kotak Masuk / Keluar’. 7 : Link label ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
4.2.2.4 Form ‘Kirim File’ Form ini berfungsi sebagai tempat pengisian data untuk mengirimkan file kepada pemakai lainnya. Rancangan tampilan dari form ‘Kirim File’ dapat dilihat pada gambar 4.14 berikut ini :
62
1
2
3 4 5 6 7
8
10
9
Gambar 4.14 Rancangan Form ’Kirim File’ Keterangan : 1 : Textbox ‘Kirim Kepada’, berfungsi untuk menampilkan nama user yang akan menerima file. 2 : Tombol ‘Pilih User’, berfungsi untuk menyediakan daftar user yang tersimpan pada database. 3 : Tombol ‘Pilih User Lainnya’, berfungsi untuk menyediakan daftar user yang tersimpan pada database. 4 : Tombol ‘Hapus’, berfungsi untuk menghapus user yang dipilih dari listbox. 5 : Listbox ‘Daftar User Lainnya’, berfungsi untuk menampilkan daftar user lainnya yang akan menerima file.
63
6 : Textbox ‘Judul / Topik’, berfungsi sebagai tempat pengisian data judul / topik dari file yang akan dikirimkan. 7 : Tombol ‘Buka File’, berfungsi untuk menyediakan fasilitas untuk membuka dan memilih file yang diinginkan. 8 : Textbox ‘Isi File’, berfungsi untuk menampilkan isi dari file yang dibuka. 9 : Tombol ‘Kirim’, berfungsi untuk mengirimkan file kepada user yang diinginkan. 10 : Link label ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
4.2.2.5 Form ‘Kotak Masuk / Keluar’ Form ini berfungsi untuk menampilkan daftar file yang dikirimkan atau diterima. Apabila form ini diakses dari link label ‘Kotak Masuk’ pada form ‘Utama Aplikasi’ maka akan ditampilkan daftar file yang diterima. Sedangkan, apabila form ini diakses dari link label ‘Kotak Keluar’ pada form ‘Utama Aplikasi’ maka akan ditampilkan daftar file yang dikirimkan. Rancangan tampilan dari form ‘Kotak Masuk / Keluar’ dapat dilihat pada gambar 4.15 berikut ini :
64
1
2 3
4
5
6
Gambar 4.15 Rancangan Form ’Kotak Masuk / Keluar’ Keterangan : 1 : Date Time Picker ‘Tanggal’, berfungsi untuk menampilkan tanggal pengiriman / penerimaan file. 2 : Textbox ‘Dari / Kepada’, berfungsi untuk menampilkan nama user yang mengirimkan / menerima file. 3 : Textbox ‘Judul / Topik’, berfungsi sebagai tempat pengisian data judul / topik dari file yang akan dikirimkan. 4 : Textbox ‘Isi File’, berfungsi untuk menampilkan isi dari file yang dibuka. 5 : Tombol ‘Balas’, berfungsi untuk menampilkan form ‘Kirim File’. 6 : Link label ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
65
4.2.3. Pemahaman Bagian ini merincikan form-form yang terdapat pada bagian pemahaman dari sistem. Tampilan-tampilan ini hanya dapat diakses apabila pemakai masuk ke bagian pemahaman dari sistem.
4.2.3.1 Form ‘Pilih Algoritma’ Form ‘Pilih Algoritma’ ini berfungsi untuk menyediakan link yang disusun secara bertahap dalam memahami dan menerapkan skema certificateless public key cryptography. Form ini akan ditampilkan apabila user mengklik link ‘Pemahaman’ ataupun link ‘Aplikasi’ yang terdapat pada form ‘Main’. Form ini merupakan penghubung antara form ‘Main’ dengan form proses yang akan ditampilkan. Rancangan tampilan dari form ‘Pilih Algoritma’ ini dapat dilihat pada gambar 4.16: 1
2
3
4
Gambar 4.16 Rancangan Form ‘Pilih Algoritma’
66
Keterangan : 1 : Link ’Proses Pembentukan Kunci’, berfungsi untuk menampilkan prosedur kerja dari proses pembentukan kunci pada skema certificateless public key cryptography. 2 : Link ’Proses Enkripsi’, berfungsi untuk menampilkan prosedur kerja dari proses enkripsi pesan menjadi ciphertext pada skema certificateless public key cryptography. 3 : Link ’Proses Dekripsi’, berfungsi untuk menampilkan prosedur kerja dari proses dekripsi ciphertext menjadi pesan semula pada skema certificateless public key cryptography. 4 : Link ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
4.2.3.2 Form ‘Input Nilai Kunci’ Form ini berfungsi sebagai tempat pengisian nilai kunci yang diperlukan pada skema certificateless public key cryptography. Rancangan tampilan dari form ‘Input Nilai Kunci ’ dapat dilihat pada gambar 4.17 berikut ini :
67
3
4
7
14
15
13 1 16 2 18
6 5
17
8 19
9 10
21 20
12 22
23
24
11
Gambar 4.17 Rancangan Form ’Input Nilai Kunci’ Keterangan : 1 : Textbox ‘Nilai p’, berfungsi sebagai tempat pengisian nilai p. 2 : Textbox ‘Nilai q’, berfungsi sebagai tempat pengisian nilai q. 3 : Tombol ‘Acak Prima’, berfungsi untuk menghasilkan bilangan prima p dan q secara acak dengan menggunakan metode pembangkitan bilangan prima Rabin-Miller. 4 : Tombol ‘Validasi’, berfungsi untuk menguji kebenaran nilai prima dengan menggunakan metode pengujian bilangan prima Rabin-Miller. 5 : Textbox ‘Nilai g’, berfungsi sebagai tempat pengisian nilai g. 6 : Tombol ‘Acak Nilai’, berfungsi untuk menghasilkan nilai generator primitif g secara acak dengan menggunakan metode pembangkitan bilangan generator primitif.
68
7 : Tombol ‘Validasi’, berfungsi untuk menguji kebenaran nilai generator primitif dengan menggunakan metode pengujian bilangan dari generator primitif. 8 : Textbox ‘Nilai x’, berfungsi sebagai tempat pengisian nilai x. 9 : Tombol ‘Acak Nilai’, berfungsi untuk menghasilkan nilai x secara acak. 10 : Textbox ‘Nilai y’, berfungsi sebagai tempat untuk menampilkan hasil proses perhitungan nilai y. 11 : Tombol ‘Hitung’, berfungsi untuk memulai proses perhitungan nilai y. 12 : Textbox ‘Nilai Private Value’, berfungsi sebagai tempat untuk menampilkan nilai kunci privat yang dihasilkan. 13 : Textbox ‘Identitas’, berfungsi sebagai tempat pengisian identitas penerima. 14 : Textbox ‘Nilai s’, berfungsi sebagai tempat pengisian nilai s. 15 : Tombol ‘Acak Nilai’, berfungsi untuk menghasilkan nilai s secara acak. 16 : Tombol ‘Validasi’, berfungsi untuk mengecek apakah nilai s yang dimasukkan sesuai dengan ketentuan dari algoritma atau tidak. 17 : Textbox ‘Nilai Lainnya’, berfungsi sebagai tempat untuk menampilkan hasil proses perhitungan nilai lainnya. 18 : Tombol ‘Hitung’, berfungsi untuk memulai proses perhitungan nilai lainnya. 19 : Textbox ‘Nilai z’, berfungsi sebagai tempat pengisian nilai z. 20 : Tombol ‘Acak Nilai’, berfungsi untuk menghasilkan nilai z secara acak. 21 : Tombol ‘Validasi’, berfungsi untuk mengecek apakah nilai z yang dimasukkan sesuai dengan ketentuan dari algoritma atau tidak. 22 : Textbox ‘Nilai Public Value’, berfungsi sebagai tempat untuk menampilkan nilai kunci publik yang dihasilkan.
69
23 : Tombol ‘Simpan’, berfungsi untuk menyimpan semua nilai kunci yang dihasilkan ke dalam memori sementara dan menutup form serta kembali ke form ’Pilih Algoritma’. 24 : Tombol ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Pilih Algoritma’. Semua data nilai kunci yang di-input dan dihitung tidak disimpan ke dalam memori sementara.
4.2.3.3 Form ‘Input Pesan’ Form ini berfungsi sebagai tempat pengisian pesan yang diperlukan pada proses pemahaman skema certificateless public key cryptography. Rancangan tampilan dari form ‘Input Pesan’ dapat dilihat pada gambar 4.18 berikut ini :
1
2
3
4
Gambar 4.18 Rancangan Form ’Input Pesan’ Keterangan : 1 : Textbox ‘Pesan’, berfungsi sebagai tempat pengisian pesan. 2 : Tombol ‘Buka File’, berfungsi untuk membuka file notepad. 3 : Tombol ‘Set’, berfungsi untuk menyimpan pesan ke dalam sebuah variabel dan menutup form serta kembali ke form ’Pemahaman Enkripsi’.
70
4 : Tombol ‘Batal’, berfungsi untuk menutup form serta kembali ke form ’Pemahaman Enkripsi’. Pesan yang di-input tidak disimpan ke dalam variabel.
4.2.3.4 Form ‘Pemahaman Enkripsi’ Form ini berfungsi untuk menampilkan prosedur kerja dari proses enkripsi yang terdapat pada skema certificateless public key cryptography. Rancangan tampilan dari form ‘Pemahaman Enkripsi’ dapat dilihat pada gambar 4.19 berikut ini : 2
1
3
4
5
6
7
8
Gambar 4.19 Rancangan Form ’Pemahaman Enkripsi’ Keterangan : 1 : Tombol ‘Input Pesan’, berfungsi untuk menampilkan form ‘Input Pesan’ sebagai tempat pengisian pesan yang akan dienkripsi. 2 : Daerah tampilan animasi proses.
71
3 : Daerah tampilan data yang di-input dan juga yang dihasilkan dari proses sebelumnya. 4 : Daerah tampilan keterangan mengenai proses yang sedang dikerjakan. 5 : Textbox ‘Hasil’, merupakan daerah tampilan proses perhitungan. 6 : Link ‘Langkah Sebelumnya’, berfungsi untuk menampilkan langkah proses perhitungan sebelumnya. 7 : Link ‘Langkah Selanjutnya’, berfungsi untuk menampilkan langkah proses perhitungan selanjutnya. 8 : Link ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
4.2.3.5 Form ‘Pemahaman Dekripsi’ Form ini berfungsi untuk menampilkan prosedur kerja dari proses dekripsi yang terdapat pada skema certificateless public key cryptography. Rancangan tampilan dari form ‘Pemahaman Dekripsi’ dapat dilihat pada gambar 4.20 berikut ini :
1
2
3
4
5
6
7
Gambar 4.20 Rancangan Form ’Pemahaman Dekripsi’
72
Keterangan : 1 : Daerah tampilan animasi proses. 2 : Daerah tampilan data yang di-input dan juga yang dihasilkan dari proses sebelumnya. 3 : Daerah tampilan keterangan mengenai proses yang sedang dikerjakan. 4 : Textbox ‘Hasil’, merupakan daerah tampilan proses perhitungan. 5 : Link ‘Langkah Sebelumnya’, berfungsi untuk menampilkan langkah proses perhitungan sebelumnya. 6 : Link ‘Langkah Selanjutnya’, berfungsi untuk menampilkan langkah proses perhitungan selanjutnya. 7 : Link ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
4.2.3.6 Form ‘Laporan’ Form ‘Laporan’ berfungsi untuk menampilkan laporan hasil proses perhitungan. Rancangan tampilan dari form ‘Laporan’ dapat dilihat pada Gambar 4.21:
1
2
Gambar 4.21 Rancangan Form ’Laporan’
3
73
Keterangan : 1 : Textbox ‘Hasil’, berfungsi untuk menampilkan hasil proses perhitungan. 2 : Tombol ‘Simpan’, berfungsi untuk menyimpan hasil proses perhitungan ke dalam sebuah file teks. 3 : Tombol ‘Keluar’, berfungsi untuk menutup form dan kembali ke form ’Main’.
4.2.4. Perancangan Basis Data Perancangan database dilakukan dengan menggunakan Microsoft Access 2003. Desain database dimaksudkan untuk mendefinisikan isi atau struktur tabel. Adapun tabel yang terdapat dalam database adalah sebagai berikut. a. Tabel User, berisi tentang rincian data pemakai yang menggunakan sistem. Rancangan tabel User dapat dilihat pada tabel 4.1. Tabel 4.4 Tabel User Nama Input
Tipe Data
Panjang Maksimum
Kode ID
Text
20
Nama
Text
50
User ID
Text
30
Password
Text
8
Alamat
Text
50
JenisKelamin
Text
1
Email
Text
20
Keterangan
Text
50
Number
Double
Nilai p
74
Nilai q
Number
Double
Nilai g
Number
Double
Nilai x
Number
Double
Nilai y
Number
Double
Nilai s
Number
Double
Nilai z
Number
Double
b. Tabel KotakMasuk, berisi tentang rincian data pesan yang diterima. Rancangan tabel KotakMasuk dapat dilihat pada tabel 4.2. Tabel 4.5 Tabel KotakMasuk Nama Input
Tipe Data
Panjang Maksimum
Date / Time
General Date
Dari
Text
20
Topik
Text
100
Tanggal
c. Tabel KotakKeluar, berisi tentang rincian data pesan yang dikirimkan. Rancangan tabel KotakKeluar dapat dilihat pada tabel 4.3. Tabel 4.6 Tabel KotakKeluar Nama Input
Tipe Data
Panjang Maksimum
Tanggal
Date / Time
General Date
Kepada
Text
20
Topik
Text
100
75
Hubungan antar tabel yang terdapat pada database dapat digambarkan sebagai berikut:
Gambar 4.22 Rancangan Relasi Antar Tabel
BAB V HASIL DAN PEMBAHASAN
5.1.
Hasil Tampilan hasil output dari sistem dapat dikelompokkan menjadi 2 bagian,
yaitu tampilan bagian pemahaman dan tampilan bagian aplikasi.
5.1.1. Tampilan Bagian Pemahaman Pada saat pertama kali menjalankan perangkat lunak implementasi skema Certificateless Public Key Cryptography tanpa Pairing, maka form yang akan muncul pertama kali adalah form ‘Splash Screen’ seperti terlihat pada gambar 5.1:
Gambar 5.1 Tampilan Form ‘Splash Screen’ Form Splash Screen ini akan muncul selama 5 detik sebelum ditutup secara otomatis. Form ini juga dapat ditutup secara manual dengan mengklik pada
76
77
sembarang tempat di form. Setelah form Splash Screen ditutup, maka akan muncul form ‘Login’ seperti terlihat pada gambar 5.2:
Gambar 5.2 Tampilan Form ‘Login’ Agar dapat menggunakan sistem, maka user harus mengisi data user ID dan password-nya. Setelah itu, klik tombol ‘OK’. Apabila data yang di-input user terdaftar dalam basisdata, maka sistem akan menutup form ‘Login’ dan menampilkan form ‘Main’, seperti terlihat pada gambar 5.3. Apabila data yang diinput tidak terdaftar pada basisdata, maka sistem akan menampilkan pesan kesalahan. Sementara itu, apabila user ingin melakukan penginputan data user baru, maka dapat mengklik tombol ‘Daftar User Baru’ sehingga sistem akan menampilkan form ‘Tambah User Baru’, seperti terlihat pada gambar 5.3.
78
Gambar 5.3 Form Tambah User Baru Sedangkan, apabila user ingin menambah data identitas user yang baru, maka dapat mengklik link ’Tambah User Baru’ yang terdapat pada form Main Aplikasi, sehingga akan muncul tampilan form berikut ini:
Gambar 5.4 Form Main
79
Untuk menampilkan proses pemahaman, klik link ’Pemahaman’ seperti terlihat pada gambar 5.5 sehingga akan muncul tampilan form ’Pilihan Pemahaman’ seperti terlihat pada gambar 5.6:
Gambar 5.5 Form Main Saat Pemilihan Link ’Pemahaman’
Gambar 5.6 Form Pilihan Pemahaman
80
Setelah itu, klik bulatan link yang tersedia untuk menampilkan pemahaman dari proses kerja yang diinginkan. Misalkan pemakai ingin menampilkan pemahaman terhadap proses pembentukan kunci, maka dapat mengklik link proses pembentukan kunci, sehingga akan muncul tampilan form ’Proses Pembentukan Kunci’ berikut:
Gambar 5.7 Form Pemahaman Proses Pembentukan Kunci Pertama, masukkan bilangan prima p dan q yang akan digunakan. Apabila pemakai ingin agar bilangan prima diambil secara acak, maka klik tombol ’Acak Prima’ sehingga program akan menghasilkannya secara acak. Apabila pemakai ingin memasukkannya secara manual, maka dapat mengklik tombol ’Validasi’ untuk menguji bilangan prima yang dimasukkan. Bilangan prima yang dimasukkan memiliki batasan minimal 2 digit bilangan bulat positif dan maksimal 3 digit bilangan bulat positif. Setelah itu, masukkan nilai bilangan generator primitif dan bilangan acak yang diperlukan. Proses pengisiannya sama dengan
81
proses bilangan prima di atas. Batasan nilai juga berada diantara 2 digit sampai 3 digit bilangan bulat positif. Kemudian, masukkan Identitas Data (ID) yang akan dipakai. Terakhir, klik tombol ’Hitung’ untuk melakukan proses perhitungan kunci privat dan kunci publik yang diperlukan. Setelah selesai mengisi semua nilai yang diperlukan, maka klik tombol ’Simpan’. Lalu, sistem akan melakukan pengecekan terhadap semua data input. Apabila semua data valid (sesuai dengan ketentuan algoritma), maka semua data akan disimpan ke memori sementara dan form Proses Pembentukan Kunci ini akan ditutup dan kembali ke form Pilihan Pemahaman. Apabila user ingin menampilkan proses enkripsi, maka kliklah link ’Enkripsi’ sehingga akan muncul form berikut ini:
Gambar 5.8 Form Pemahaman Proses Enkripsi (Tampilan Awal)
82
Sebelum dapat menampilkan tahapan proses enkripsi, maka harus dilakukan penginputan pesan terlebih dahulu dengan mengklik tombol ’Input Pesan’, sehingga sistem akan menampilkan form ’Input Pesan’ berikut:
Gambar 5.9 Form Input Pesan
Gambar 5.10 Form Pemahaman Proses Enkripsi
83
Sedangkan, untuk menampilkan pemahaman proses dekripsi, maka kliklah link ’Dekripsi’ sehingga akan muncul form berikut ini:
Gambar 5.11 Form Proses Dekripsi
5.1.2. Tampilan Bagian Aplikasi Sedangkan, untuk menampilkan aplikasi dari skema Certificateless Public Key Cryptography tanpa Pairing, maka dapat mengklik link ’Aplikasi’ yang terdapat pada form ‘Main’, sehingga akan muncul tampilan form seperti terlihat pada gambar 5.12 berikut ini:
84
Gambar 5.12 Form Main Saat Pemilihan Link ’Aplikasi’
Gambar 5.13 Form Main Aplikasi ’Kotak Masuk’
85
Gambar 5.14 Form Main Aplikasi ’Kotak Keluar’ Untuk melihat daftar pesan masuk, maka kliklah link kotak masuk, sehingga akan ditampilkan daftar pesan yang diterima oleh user yang bersangkutan pada tabel ’Daftar Pesan’ disamping. Sedangkan, untuk melihat daftar pesan keluar, maka kliklah link kotak keluar, sehingga akan ditampilkan daftar pesan yang dikirimkan oleh user yang bersangkutan pada tabel ’Daftar Pesan’ disamping. Untuk melihat isi dari pesan yang dikirimkan/diterima, maka pilihlah file yang ingin ditampilkan dan kliklah tombol ’Tampilkan pesan’ sehingga akan muncul form berikut:
86
Gambar 5.15 Form Isi Kotak Apabila user ingin membalas pesan yang dikirimkan, maka dapat mengklik tombol ’Balas’ sehingga akan muncul tampilan berikut ini:
87
Gambar 5.16 Form Kirim File Hal yang sama juga berlaku apabila user ingin mengirimkan sebuah file kepada user lainnya, maka dapat mengklik tombol ’Kirim File’ yang terdapat pada form Main Aplikasi, sehingga akan muncul form yang sama seperti form Kirim File diatas.
88
Gambar 5.17 berikut akan menampilkan perincian data dari proses pengiriman dan penerimaan pesan antar user pada sistem.
Gambar 5.17 Tampilan Rincian Data
5.2.
Pembahasan Berdasarkan proses pengujian yang dilakukan pada perangkat lunak, maka
dapat diperoleh beberapa informasi berikut: 1. Aplikasi yang dibuat dapat digunakan untuk melakukan pengamanan data teks, dimana hasil enkripsi akan disimpan ke dalam database dan dapat didekripsi oleh pemakai yang memiliki hak sebagai penerima pesan rahasia tersebut. 2. Metode certificateless public key cryptography (CLPKC) tanpa pairing dapat digunakan untuk melakukan pengamanan data, dimana panjang identitas pada skema Certificateless Public Key Cryptography tanpa Pairing tidak mempengaruhi besar nilai kunci yang dihasilkan, sehingga dapat diterapkan secara praktikal.
89
3. Bagian pemahaman dari perangkat lunak dapat digunakan untuk membantu pemahaman mengenai prosedur kerja dari skema Certificateless Public Key Cryptography tanpa Pairing, yang mencakup proses pembentukan kunci, proses enkripsi dan proses dekripsi. 4. Skema Certificateless Public Key Cryptography tanpa Pairing tidak memerlukan proses sertifikasi terhadap kunci publik yang digunakan. 5. Kunci privat dari user dapat ditentukan oleh user secara otomatis sehingga tidak perlu berinteraksi dengan private key generator (PKG), sehingga PKG tidak dapat mengetahui kunci privat dari setiap user.
BAB VI KESIMPULAN DAN SARAN
6.1.
Kesimpulan Setelah menyelesaikan tugas akhir ini, penulis menarik beberapa
kesimpulan sebagai berikut : 1. Aplikasi yang dibuat dapat digunakan untuk melakukan pengamanan data teks, dimana hasil enkripsi akan disimpan ke dalam database dan dapat didekripsi oleh pemakai yang memiliki hak sebagai penerima pesan rahasia tersebut. 2. Metode certificateless public key cryptography (CLPKC) tanpa pairing dapat digunakan untuk melakukan pengamanan data, dimana panjang identitas pada skema Certificateless Public Key Cryptography tanpa Pairing tidak mempengaruhi besar nilai kunci yang dihasilkan, sehingga dapat diterapkan secara praktikal. 3. Perangkat lunak menyediakan bagian pemahaman yang dapat digunakan untuk membantu pemahaman mengenai prosedur kerja dari skema Certificateless Public Key Cryptography tanpa Pairing, yang mencakup proses pembentukan kunci, proses enkripsi dan proses dekripsi. 4. Skema Certificateless Public Key Cryptography tanpa Pairing tidak memerlukan proses sertifikasi terhadap kunci publik yang digunakan. 5. Kunci privat dari user dapat ditentukan oleh user secara otomatis sehingga tidak perlu berinteraksi dengan private key generator (PKG), sehingga PKG tidak dapat mengetahui kunci privat dari setiap user.
90
91
6.2.
Saran Penulis ingin memberikan beberapa saran yang mungkin berguna untuk
pengembangan perangkat lunak lebih lanjut, yaitu : 1. Disarankan agar data kunci user yang disimpan dalam database dapat dienkripsi terlebih dahulu sehingga data tidak dapat diketahui oleh orang lain yang dapat mengakses database yang digunakan oleh perangkat lunak. 2. Perangkat lunak dapat ditambahkan fitur untuk mengamankan file selain text file, seperti file gambar, file audio/video dan sebagainya. 3. Perangkat lunak dapat dikembangkan lebih lanjut dengan menerapkan skema pada sebuah website forum dan sejenisnya. 4. Perangkat lunak dapat dikembangkan lebih lanjut sehingga dapat digunakan untuk melakukan pengiriman pesan pada jaringan komputer.
DAFTAR PUSTAKA
Al-Riyami dan K. Paterson, 2003, Certificateless Public Key Cryptography, Springer-Verlag. Joonsang, B., Reihaneh S.-N., dan Willy, S., 2005, Certificateless Public Key Encryption without Pairing, Universitas Wollongong, Australia. Munir, R., 2006, Kriptografi, Informatika Bandung. Schneier, B., 2007, Applied Crytography : Protocols, Algorithm, and Source Code in C, Second Edition, John Willey and Sons Inc. Stallings, W., 2011, Cryptography and Network Security : Principle and Practice, Second Edition, Prentice Hall. Sutomo, D., 2006, Skema Boneh–Franklin Identity-Based Encryption dan Identity-Based Mediated RSA. http://www.informatika.org/~rinaldi/TA/Makalah/Makalah06.pdf. Tanggal Akses 23/11/2014 Yum, D. dan P. Lee, 2004, Generic Construction of Certificateless Encryption, Springer-Verlag. http://definisimu.blogspot.com/2012/08/definisi-aplikasi.html, diakses tanggal 20 November 2014. http://dret.net/lectures/mobapp-spring10/img/secret-key.gif, diakses tanggal 20 November 2014. http://www.data-processing.hk/uploads/images/public-key-Encryptionexample.gif, diakses tanggal 20 November 2014. http://journal.media-culture.org.au/0506/liu-3.png, diakses tanggal 21 November 2014. http://blog.beswandjarum.com/ekobaguscahyopurnomo/files/2009/10/kripto81300x271.jpg, diakses tanggal 21 November 2014. http://saeppanidream.files.wordpress.com/2010/05/new-picture.jpg, tanggal 22 November 2014.
diakses