Perbandingan Algoritma Rsa Dan Triple Des Dalam Proses Enkripsi Dan Dekripsi File Teks
PERBANDINGAN ALGORITMA RSA DAN TRIPLE DES DALAM PROSES ENKRIPSI DAN DEKRIPSI FILE TEKS
SKRIPSI
IRNA DEVIENI SIREGAR 051411004
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2008
(2)
PERSETUJUAN
Judul : PERBANDINGAN ALGORITMA RSA DAN TRIPLE DES DALAM PROSES ENKRIPSI DAN DEKRIPSI FILE TEKS
Kategori : SKRIPSI
Nama : IRNA DEVIENI SIREGAR
Nomor Induk Mahasiswaa : 051411004
Program Studi : SARJANA (S1) MATEMATIKA
Departemen : MATEMATIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Medan, Juli 2008 Komisi Pembimbing :
Pembimbing 2, Pembimbing1,
Drs. Marwan Harahap, M.Eng. Drs. Sawaluddin, M.IT.
NIP. 130422437 NIP. 132206398
Diketahui/Disetujui oleh
Departemen Matematika FMIPA USU Ketua,
Dr. Saib Suwilo, M.Sc. NIP. 131796149
(3)
PERNYATAAN
PERBANDINGAN ALGORITMA RSA DAN TRIPLE DES DALAM PROSES ENKRIPSI DAN DEKRIPSI FILE TEKS
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2008
Irna Devieni Siregar 051411004
(4)
PENGHARGAAN
Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpahan rahmat dan karunia-Nya skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Ucapan terima kasih saya sampaikan kepada Bapak Drs. Sawaluddin, M.IT dan Bapak Drs. Marwan Harahap, M.Eng, selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan skripsi ini. Panduan ringkas, padat dan profesional telah diberikan kepada saya agar penulis dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Dr. Saib Suwilo, M.Sc. dan Bapak Drs. Henri Rani Sitepu, M.Si., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Departemen Matematika FMIPA USU, pegawai di FMIPA USU, dan rekan-rekan kuliah. Akhirnya, tidak terlupakan kepada bapak, ibu dan semua ahli keluarga yang selama ini memberikan bantuan dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa membalasnya.
(5)
ABSTRAK
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Algoritma RSA dan Triple DES adalah dua metode yang digunakan untuk proses enkripsi dan dekripsi pada tugas akhir ini. Proses enkripsi dan dekripsi dengan ke dua algoritma tersebut digunakan pada enkripsi dan dekripsi file teks. Pada dasarnya ke dua algoritma ini berbeda berdasarkan kesamaan kuncinya. Pada algoritma RSA, menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Sedangkan Triple DES setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan kunci yang sama.
Pada tugas akhir ini dibuat perangkat lunak yang menggunakan bahasa pemrograman Visual Basic 6.0 untuk membandingkan ke dua algoritma tersebut. Perbandingan dilakukan dalam hal lama proses dekripsi antara algoritma RSA dan Triple DES.
(6)
COMPARISON OF RSA AND TRIPLE DES ALGORITHMS IN ENCRYPTION AND DECRYPTION OF TEXT FILE
ABSTRACT
Cryptography is the study of mathematical techniques related to aspects of information security such as confidentiality, data integrity, entity authentication, and data origin authentication.In this project, RSA Algorithm and Tripple DES are two method would use for encryption and decryption process.The encryption and decryption process with use both algorithm would used for encrypt and decrypt text file. Both algorithm have different key. In RSA algorithm, used two key for encrypt and decrypt process but in Tripple DES every encrypt and decrypt process uses one key at all.
In this final project both two algorithm implemented with visual basic 6.0 program languange. This would be puposed to compare time process both of algorithm.
(7)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Perumusan Masalah 3
1.3 Pembatasan Masalah 3
1.4 Tujuan Penelitian 4
1.5 Kontribusi Penelitian 4
1.6 Metode Penelitian 4
1.7 Tinjauan Pustaka 4
Bab 2 Landasan Teori 7
2.1 Teori Dasar Kriptografi 7
2.2 Algoritma Kriptografi 10
2.2.1 Algoritma Simetris 10
2.2.2 Algoritma Asimetris 11
2.3 Teknik Dasar Kriptografi 13
2.3.1. Metode Subtitusi 13
2.3.2. Teknik blok (blocking) 14 2.3.3. Teknik permutasi atau teknik transposisi 14
2.4 Algoritma RSA 15
2.4.1 Sejarah RSA 15
2.4.2 Mekanisme dasar kerja RSA 16
2.4.3 Proses Pembuatan Kunci 16
2.4.4 Proses Enkripsi Pesan 17
2.4.5 Proses Dekripsi Pesan 17
2.4.7. Keamanan RSA 19 2.5
Algoritma DES 19 2.5.1
Cara kerja Algoritma DES 20
2.5.2 Keamanan DES 27
2.5.3 Triple DES 28
2.6 Perbandingan Kriptografi Kunci Simetris dengan
Kritptografi Kunci Asimetris 29
(8)
2.6.2 Kelemahan Kriptografi Kunci Simetris 29 2.6.3 Kelebihan Kriptografi Kunci Asimetris 30 2.6.4 Kelemahan Kriptografi Kunci Asimetris 30
2.7 Bilangan Prima 31
2.7.1 Teorema Fermat 31
2.7.2 Fungsi Totient Euler φ 32
Bab 3 Pembahasan 34
3.1 Implementasi Algoritma RSA 34
3.1.1 Pembentukan Kunci 34
3.1.2 Proses Enkripsi 35
3.1.3 Proses Dekripsi 37
3.2 Implementasi Algoritma Triple DES 38
3.2.1 Proses Enkripsi 40
3.2.2 Proses Dekripsi 45
3.3 Perancangan Flowchart 49
3.3.1 Halaman Utama 50
3.3.2 Halaman Hasil 50
Bab 4 Kesimpulan dan Saran 56
4.1 Kesimpulan 56
4.2 Saran 56
Daftar Pustaka 57
(9)
DAFTAR TABEL
Halaman
Tabel 2.1 Tabel Subtitusi 13
Tabel 2.2 Teknik blok (blocking) 14
(10)
DAFTAR GAMBAR
Halaman
Gambar 2.1 Proses Enkripsi 8
Gambar 2.2 Proses Dekripsi 8
Gambar 2.3 Skema algoritma simetris 11
Gambar 2.4 Skema algoritma asimetris 12
Gambar 2.5 Permutasi 15
Gambar 2.6 Diagram Alir Enkripsi dengan metode DES 22
Gambar 2.7 Algoritma fungsi f (metode DES) 23
Gambar 2.8 Diagram Alir Blok Kunci 26
Gambar 2.9 Triple DES 28
Gambar 3.1 Skema Dasar Algoritma Triple DES 38
Gambar 3.2 Skema Algoritma Triple DES 39
Gambar 3.3 Flowchart yang terjadi dalam Aplikasi
Enkripsi dan Dekripsi file teks 49
Gambar 3.4 Tampilan Halaman Utama 50
Gambar 3.5 Enkripsi File Teks coba2.txt dengan Algoritma RSA 51 Gambar 3.6 Hasil Enkripsi File Teks coba2.txt dengan Algoritma RSA 51 Gambar 3.7 Dekripsi File Teks coba2.txt dengan Algoritma RSA 52 Gambar 3.8 Hasil Dekripsi File Teks coba2.txt dengan Algoritma RSA 52 Gambar 3.9 Enkripsi File Teks coba2.txt dengan Algoritma Triple DES 53 Gambar 3.10 Hasil Enkripsi File Teks coba2.txt dengan Algoritma Triple DES 53 Gambar 3. 11 Dekripsi File Teks coba2.txt dengan Algoritma Triple DES 54 Gambar 3. 12 Hasil Dekripsi File Teks coba2.txt dengan Algoritma Triple DES 54 Gambar 3. 13 Grafik Lama Proses Dekripsi RSA dan Triple DES 55
(11)
ABSTRAK
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Algoritma RSA dan Triple DES adalah dua metode yang digunakan untuk proses enkripsi dan dekripsi pada tugas akhir ini. Proses enkripsi dan dekripsi dengan ke dua algoritma tersebut digunakan pada enkripsi dan dekripsi file teks. Pada dasarnya ke dua algoritma ini berbeda berdasarkan kesamaan kuncinya. Pada algoritma RSA, menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Sedangkan Triple DES setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan kunci yang sama.
Pada tugas akhir ini dibuat perangkat lunak yang menggunakan bahasa pemrograman Visual Basic 6.0 untuk membandingkan ke dua algoritma tersebut. Perbandingan dilakukan dalam hal lama proses dekripsi antara algoritma RSA dan Triple DES.
(12)
COMPARISON OF RSA AND TRIPLE DES ALGORITHMS IN ENCRYPTION AND DECRYPTION OF TEXT FILE
ABSTRACT
Cryptography is the study of mathematical techniques related to aspects of information security such as confidentiality, data integrity, entity authentication, and data origin authentication.In this project, RSA Algorithm and Tripple DES are two method would use for encryption and decryption process.The encryption and decryption process with use both algorithm would used for encrypt and decrypt text file. Both algorithm have different key. In RSA algorithm, used two key for encrypt and decrypt process but in Tripple DES every encrypt and decrypt process uses one key at all.
In this final project both two algorithm implemented with visual basic 6.0 program languange. This would be puposed to compare time process both of algorithm.
(13)
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Masalah keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa pentingnya informasi tersebut dikirim dan diterima oleh orang yang berkepentingan. Informasi akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak.
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Ilmu sandi (kriftografi) sendiri telah ada sejak lama. Tercatat dalam sejarah bahwa Julius Caesar (kaisar romawi) menggunakan penyandian untuk menyampaikan pesan rahasia saat perang.
Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan dan atau alat khusus. Sedangkan dekripsi merupakan algoritma atau cara yang dapat digunakan untuk membaca informasi yang telah dienkripsi untuk kembali dapat dibaca.
Algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografis. Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi:
1. Kunci simetris/ symetric key
Skema algoritma sandi akan disebut kunci simetris apabila untuk setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan kumci yang sama. Contoh algoritma yang menggunakan kunci simetris: DES, MARS, IDEA, Triple DES, AES
2. Kunci asimetris/ asymetric key
Skema ini adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Contoh algoritma yang menggunakan kunci asimetris: Knapsack, RSA, Diffie Hellman.
(14)
Saat ini terdapat berbagai algoritma penyandian dalam ilmu kriptografi, namun pada penulisan skripsi ini penulis memilih RSA dan Triple DES dalam proses enkripsi dan dekripsi file teks. Kedua metode ini merupakan metode yang paling banyak dipakai di dunia.
Dari sekian banyak algoritma kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Pada RSA, masalah pemfaktoran berbunyi: Faktorkan n menjadi dua faktor primanya, p dan q, sedemikian sehingga n = p . q. Sekali n berhasil difaktorkan menjadi p dan q, maka φ(n) = (p - 1) (q - 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e . d ≡ 1 (mod φ(n)).
Selain RSA, DES juga merupakan metode yang paling banyak dipakai di dunia. DES (Data Encryption Standart) adalah algortima cipher blok yang populer karena dijadikan standart algoritma enkripsi kunci-simetris. Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey), sebanyak 16 putaran/ronde. Pada setiap ronde, blok R (kanan) tidak akan mengalami perubahan apapun karena hanya akan dipindah menjadi blok L (kiri) pada ronde selanjutnya. Namun blok R akan digunakan bersamaan dengan subkey 56-bit untuk diolah pada fungsi F dan akan di XOR-kan dengan blok L (kiri). Triple DES mengenkripsi pesan tiga kali. Triple DES mengenkripsi plainteks dengan satu kunci DES dan kemudian mengenkripsinya lagi dengan kunci DES kedua sama tidak amannya dengan enkripsi menggunakan satu kunci DES. Kelihatan bahwa jika kedua kunci memiliki n bit, serangan brute force untuk mencoba semua kunci memiliki yang mungkin akan membutuhkan 2n × 2n × 2n kombinasi yang berbeda. Merkle dan Hellman menunjukkan bahwa plaintext yang diketahui, serangan Man in the Middle dapat memecahkan enkripsi ganda pada 2n+1 kali percobaan. Tipe serangan ini dicapai dengan mengenkripsi dari akhir, dan dekripsi dari yang lainnya, dan membandingkan hasilnya ditengah. Karena itu, Triple DES digunakan untuk mendapatkan enkripsi yang lebih kuat.
(15)
1.2 Perumusan Masalah
Perumusan masalah yang akan diteliti dalam tulisan ini adalah bagaimana mengimplementasikan algoritma RSA dan Triple DES dalam hal lama proses dekripsi diantara kedua algoritma tersebut.
1.3 Pembatasan Masalah
Dalam melakukan perbandingan Algoritma RSA dan Triple DES dilakukan beberapa batasan sebagai berikut:
1. Pada skripsi ini tidak membahas mengenai sulitnya dan cara-cara untuk memecahkan mekanisme penyandian.
2. File teks yang akan digunakan adalah file dokumen teks (*.txt).
3. Perbandingan yang dilakukan berdasarkan lama proses dekripsi diantara kedua algoritma tersebut, didalam implementasinya dalam suatu program sederhana.
1.4 Tujuan Penelitian
Penelitian ini bertujuan untuk membandingkan lama proses dekripsi file teks dari implementasi algoritma RSA dan Triple DES.
1.5 Kontribusi Penelitian
Dengan membandingkan metode RSA dan Triple DES, kita dapat mengetahui metode mana yang lebih mudah digunakan untuk menghindari pencurian, penyadapan, dan pemalsuan informasi. Dimana kedua metode tersebut digunakan untuk mengamankan data dari kejadian - kejadian tersebut maka diperlukan penyandian terhadap data yang akan dikirim.
(16)
Dalam penyusunan tulisan ini, penulis menggunakan tahapan sebagai berikut: 1. Membahas karakteristik Algoritma RSA dan Triple DES.
2. Mengimplementasikan Algoritma RSA dan Triple DES kedalam suatu program.
3. Melakukan analisa untuk membandingkan kinerja setiap algoritma berdasarkan lama proses dekripsinya.
1.7 Tinjauan Pustaka
(Rinaldi Munir, 2006) dalam buku yang berjudul Kriptografi memberikan penjelasan bahwa kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Pada RSA, masalah pemfaktoran berbunyi: Faktorkan n menjadi dua faktor primanya, p dan q, sedemikian sehingga n = p . q. Sekali n berhasil difaktorkan menjadi p dan q, maka φ(n) = (p - 1) (q - 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e . d ≡ 1 (mod φ(n)). DES (Data Encryption Standart) adalah algortima cipher blok yang populer karena dijadikan standart algoritma enkripsi kunci-simetris. Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey).
(Wahana komputer yang diterbitkan ANDI Yogyakarta, 2003) dalam buku yang berjudul Memahami Model Enkripsi dan Security Data menjelaskan bahwa enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Isu-isu yang terkait dengan keamanan dan kerahasiaan data adalah privacy (kerahasiaan), integrity (keutuhan), authenticity (keaslian), non-repudiation (pembuktian yang tak tersangkal). Algoritma DES dirancang untuk menulis dan membaca berita blok data
(17)
yang terdiri dari 64 bit dibawah kontrol kunci 64 bit. Dalam pembacaan berita harus dikerjakan dengan menggunakan kunci yang sama dengan waktu menulis berita, dengan penjadualan alamat kunci bit yang diubah sehingga proses membaca adalah kebalikan dari proses menulis.
(Dony Ariyus, 2006) dalam buku yang berjudul Kriptografi Keamanan Data dan Komunikasi memberikan penjelasan bahwa RSA algoritma melakukan pemfaktoran bilangan yang sangat besar, oleh karena alasan tersebut RSA dianggap aman. Untuk membangkitkan kedua kunci, yang dipilih dua bilangan prima acak yang besar. Algoritma DES merupakan salah satu proposal yang terbaik pada tahun 1977, tidak ada kritik yang datang dari kalangan ilmuan tentang panjang kunci yang digunakan dan S-Box yang merupakan bagian internal dari DES. DES merupakan keamanan dasar yang digunakan diseluruh dunia, oleh karena itu, ada kemungkinan DES akan tetap dilanjutkan penelitiannya sehingga menjadi suatu sistem enkripsi yang kuat, baik dari segi password, store data, dan sistem akses control.
(Tino Dwiantoro, 2008) dalam situsnya di www.dwiantoro.com menjelaskan bahwa enkripsi adalah bentuk dari chriptography yang mengacak plaintext ke ciphertext yang tidak dapat dipahami atau tidak mudah dibaca.
(18)
BAB 2
LANDASAN TEORI
2.1 Teori Dasar Kriptografi
Teknik pengacakan data yang disebut enkripsi, telah membentuk suatu bidang keilmuan yang disebut kriptografi. Kriptografi adalah suatu ilmu dan seni dalam menjaga kerahasiaan suatu pesan (kode). Kriptografi juga dapat diartikan sebagai ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data (A. Menezes, P. Van Oorschot and S. Vanstone – Handbook of Applied Cryptography). Namun, pada kriptografi tidak semua aspek keamanan informasi akan ditangani.
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan informasi, yaitu sebagai berikut :
1. Kerahasiaan (confidentiality)
Kerahasiaan layanan yang digunakan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2. Integritas Data ( data integrity)
Integritas data adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman.
3. Otentikasi (authentication)
Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication).
(19)
Dua pihak yang saling berkomunikasi harus dapat mengontetikasi satu sama lain sehingga dapat memastikan sumber pesan.
4. Nirpenyangkalan (non-repudiation)
Nirpenyangkalan (non-repudiation) adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman pesan atau penerima pesan menyangkal telah menerima pesan.
Secara umum kriptografi terdiri dari dua proses yaitu enkripsi dan dekripsi.
Enkripsi
Plaintext Ciphertext
Gambar 2.1 Proses Enkripsi
Deskripsi Plaintext
Ciphertext
Gambar 2.2 Proses Dekripsi
Plaintext adalah pesan yang akan dirahasiakan, dinotasikan dengan m (Message), yang dapat berupa bit tream, file text, digitized voice stream, digital video image atau lebih singkatnya m adalah data binary.
Enkripsi adalah proses pengaman data atau informasi dengan membuat informasi tersebut seolah tidak bermakna atau tidak dapat dibaca. enkripsi dinotasikan dengan E, berfungsi untuk mengubah m menjadi c, dalam matematika dinotasikan dengan:
E(m) = c. Keterangan rumus:
E = enkripsi m = plaintext c = ciphertext
(20)
Ciphertext adalah hasil dari proses enkripsi, dinotasikan dengan c, juga berupa data binary yang kadang-kadang mempunyai ukuran yang sama dengan m, lebih kecil dari m atau lebih besar dari m.
Dekripsi adalah kebalikan dari enkripsi yaitu proses mengubah data menjadi bermakna. Fungsi dekripsi D, berfungsi untuk mengubah c menjadi m, dalam matematika dinotasikan dengan:
D(c) = m. Keterangan rumus:
D = dekripsi c = ciphertext m = plaintext
Crypanalyst adalah orang mempelajari ilmu dan seni ilmu membongkar ciphertext. Menurut ISO 7498-2 istilah yang lebih tepat untuk decryption adalah ”decipher”
Cipher adalah kata lain dari algoritma yang digunakan untuk melakukan melakukan proses kriptografi. Cipher juga sering disebut teknik yang digunakan untuk proses enkripsi dan deskripsi.
2.2 Algoritma Kriptografi
Algoritma kriptografi atau sering disebut dengan cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan dekripsi (Schneier, 1996). Ada dua macam algoritma kriptografi, yaitu algoritma simetris (symmetric
algorithms) dan algoritma asimetris (asymmetric algorithms).
2.2.1 Algoritma Simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Algoritma ini mengharuskan pengirim dan penerima menyetujui
(21)
suatu kunci tertentu sebelum mereka saling berkomunikasi. Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Algoritma simetris sering juga disebut dengan algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci.
Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan adalah orang yang dapat dipercaya. Masalahnya akan menjadi rumit apabila komunikasi dilakukan secara bersama-sama oleh sebanyak n pengguna dan setiap dua pihak yang melakukan pertukaran kunci, maka akan terdapat sebanyak
2 ) 1 n .( n ! 2 )!. 2 n ( ! n Cn2
− = −
= kunci rahasia yang harus
dipertukarkan secara aman.
Gambar 2.3. Skema algoritma simetris
Contoh dari algoritma kriptografi simetris adalah Cipher Permutasi, Cipher Substitusi, Cipher Hill, OTP, RC6, Twofish, Magenta, FEAL, SAFER, LOKI,CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi, DES dan IDEA
2.2.2 Algoritma Asimetris
Algoritma asimetris, sering juga disebut dengan algoritma kunci publik, menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia (secret key). Kunci publik merupakan kunci yang digunakan untuk mengenkripsi pesan. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan.
(22)
Kunci publik bersifat umum, artinya kunci ini tidak dirahasiakan sehingga
dapat dilihat oleh siapa saja. Sedangkan kunci rahasia adalah kunci yang dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya. Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal satu sama lainnya.
Gambar 2.4. Skema algoritma asimetris
Algoritma asimetris pertama kali dipublikasikan oleh Diffie dan Hellman pada tahun 1976 dalam papernya yang berjudul “New Directions in Cryptography”. Menurut Diffie dan Hellman, ada beberapa syarat yang perlu diperhatikan pada algoritma asimetris, yaitu:
1. Penerima B membuat pasangan kunci, yaitu kunci publik kpB dan kunci rahasia krB 2. Pengirim A dengan kunci publik B dan pesan x, pesan dienkripsi dan diperoleh
cipherteks k (x) pB E c=
3. Penerima B untuk mendekripsi cipherteks menggunakan kunci privat B untuk mendapatkan kembali pesan aslinya d d x d c x
rB rB
rB k k
k [ ( )] ( )=
4. Dengan mengetahui kunci publik kpB , bagi penyerang akan kesulitan dalam melakukan untuk mendapatkan kunci rahasia.
5. Dengan mengetahui kunci publik kpB dan cipherteks c, bagi penyerang akan mengalami kesulitan untuk mengetahui pesan x.
Contoh dari algoritma asimetris adalah RSA, ElGamal, McEliece, LUC dan DSA (Digital Signature Algorithm). Dalam melakukan proses enkripsi, sering digunakan plainteks berupa data ataupun pesan yang besar, sehingga membutuhkan waktu yang lama apabila dilakukan proses sekaligus pada plainteks tersebut. Oleh karena itu, plainteks dapat
(23)
dipotong-potong menjadi beberapa blok-blok yang sama panjang. Kemudian dari blok-blok yang diperoleh tersebut dilakukan proses enkripsi, dan hasil cipherteksnya dapat didekripsi dan digabungkan kembali menjadi plainteks. Algoritma kriptografi yang menggunakan mekanisme seperti ini disebut dengan cipher blok (block cipher).
2.3. Teknik Dasar Kriptografi
Berikut ini dicontohkan motode atau cipher yang menjadi dasar dalam melakukan proses enkripsi dan deskripsi pada suatu data.
2.3.1. Metode Subtitusi
Metode ini berkerja dengan menukar satu karakter yang lain. Langkah pertama adalah membuat suatu tabel substitusi. Tidak ada aturan khusus dalam membuat tabel subsitusi , dapat dibuat sesuai keinginan, dengan catatan bahwa penerima pesan memiliki tabel yang sama utuk keperluan deskripsi. Semakin acak tabel subtitansi maka semakin sulit pemecahan chipertext. Salah satu contoh teknik ini adalah Cesar cipher.
Tabel 2.1. Tabel Subtitusi
A B C D E F G H I J K L M N O P Q R S T U E F G H I J K L M N O P Q R S T U V W X Y
Plaintext : METODE SUBTITUSI Ciphertext : QIXSHI OYFXMXYWM
2.3.2. Teknik blok (blocking)
V W X Y Z
(24)
Sistem enkripsi kadang membagi plintext menjadi blok-blok yang terdiri atas beberapa karakter yang kemudian dienkripsikan secara independen (masing-masing). Contoh plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah
Tabel 2.2 Teknik blok (blocking) E P K I Blok 1
N S R Blok 2
K I I Blok 3
R D P Blok 4
I E S Blok 5
Dengan menggunakan teknik blok dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini. Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan bloknya. Jadi ciphertext yang dihasilkan dengan teknik ini adalah “EPEKINSR KII RDP IES”. Plaintext dapat pula ditulis secara horizontal dan ciphertext-nya adalah hasil pembacaan secara vertikal
2.3.3. Teknik permutasi atau teknik transposisi
Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya dalah berlawanan dengan teknik subtitusi. Dalam teknik subtitusi, karakter berada posisi yang tetap tetapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.sebelum dilakukan permutasi, umumnya plaintext dibagi menjadi blok-blok dengan panjang yang sama. Contoh:
(25)
1 2 3 4
1 2 3 4
Plaintext
Chipertext
Gambar 2.5 Permutasi
2.4 Algoritma RSA
2.4.1 Sejarah RSA
Algoritma RSA diperkenalkan oleh 3 peneliti dari MIT (Massachussets Institute of Technology), yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman pada tahun 1977. RSA adalah kependekan dari Rivest Shamir Adleman yang diambil dari 3 nama penemu RSA.
MIT diberikan paten AS nomor 4405829 untuk "Cryptographic communications system and method" (Sistem dan metode komunikasi kriptografi) yang menggunakan algoritma RSA pada tahun 1983. Paten ini akan kadaluwarsa pada tanggal 21 September 2000. Karena sebuah makalah yang menjelaskan tentang algoritma RSA telah dipublikasikan pada bulan Agustus 1977, aplikasi paten yang telah disimpan pada Desember 1977 tidak mendapat paten dari belahan dunia manapun selain di AS karena peraturan yang terkait dan regulasi yang berlaku.
2.4.2 Mekanisme dasar kerja RSA
Tingkat keamanan algoritma penyandian RSA sangat bergantung pada ukuran kunci sandi tersebut (dalam bit), karena makin besar ukuran kunci, maka makin besar juga kemungkinan kombinasi kunci yang bisa dijebol dengan metode mengencek kombinasi satu persatu kunci atau lebih dikenal dengan istilah brute force attack. Jika dibuat suatu sandi RSA dengan
(26)
panjang 256 bit, maka metode brute force attack akan menjadi tidak ekonomis dan sia-sia dimana para hacker pun tidak mau/sanggup untuk menjebol sandi tersebut.
2.4.3 Proses Pembuatan Kunci
Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat adalah sebagai berikut:
1. Pilih dua bilangan prima sembarang, p dan q..
2. Hitung n = p . q (sebaiknya p ≠ q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n).
3. Hitung φ(n) = (p - 1) (q - 1).
4. Pilih kunci publik e, yang relatif prima terhadap φ(n).
5. Bangkitkan kunci privat dengan menggunakan persamaan e . d ≡ 1 (mod φ(n)). Perhatikan bahwa e . d ≡ 1 (mod φ(n)).
Hitung d hingga d e≡ 1 (mod φ) ekivalen dengan e . d = 1 + k φ(n), sehingga secara sederhana d dapat dihitung dengan
� = 1 + ��(�)
� Hasil dari algoritma di atas:
- Kunci publik adalah pasangan (e, n) - Kunci privat adalah pasangan ( d, n)
Algoritma RSA memiliki besaran-besaran sebagai berikut:
1. p dan q bilangan prima (rahasia)
2. n = p . q (tidak rahasia)
3. φ(n) = (p - 1) (q - 1) (rahasia)
4. e = kunci enkripsi (tidak rahasia)
5. d = kunci dekripsi (rahasia)
6. m = plainteks (rahasia) 7. c = cipherteks (tidak rahasia)
(27)
2.4.4 Proses Enkripsi Pesan
Proses enkripsi pesan sebagai berikut:
1. Ambil kunci publik penerima pesan e, dan modulus n.
2. Nyatakan plainteks m menjadi blok-blok m1, m2, ..., sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, n - 1].
3. Setiap bok mi dienkripsi menjadi blok ci dengan rumus ci= mie mod n
2.4.5 Proses Dekripsi Pesan
1. Setiap blok cipherteks ci didekripsi kembali menjadi blok mi dengan rumus mi= cid mod n.
2.4.6. Keamanan RSA
Keamanan dari sistem kriptografi RSA adalah didasari oleh dua problem matematika: 1. Problem dalam faktorisasi bilangan berjumlah banyak
2. Problem RSA, yaitu mencari modulo akar en dari sebuah bilangan komposit n yang faktor-faktornya tidak diketahui.
Proses dekripsi penuh dari sebuah ciphertext RSA dianggap sesuatu hal yang tidak mudah karena kedua problem ini diasumsikan sulit. Belum ada algoritma yang mangkus untuk menyelesaikannya.
Metode pendekatan yang diyakini dapat menyelesaikan problem RSA saat ini adalah memfaktor dari modulus n. Dengan kemampuan untuk mengembalikan faktor yang merupakan bilangan prima, sebuah serangan dapat menghitung eksponen rahasia dari d dan dari kunci publik (e, n), lalu mendekripsi c menggunakan prosedur standar.
(28)
DES, akronim dari Data Encryption Standard, adalah nama dari Federal Information Processing Standard (FIPS) 46-3, yang menggambarkan Data Encryption Algorithm (DEA). DEA juga didefinisikan dalam ANSI standard X3.92. DEA merupakan perbaikan dari algoritma Lucifer yang dikembangkan oleh IBM pada awal tahun 1970-an.
Meskipun algoritmanya pada intinya dirancang oleh IBM, NSA dan NBS (sekarang NIST (National Institute of Standards and Technology)) memainkan peranan penting pada tahap akhir pengembangan. DEA, sering disebut DES, telah dipelajari secara ekstensif sejak publikasinya dan merupakan algoritma simetris yang paling dikenal dan paling banyak digunakan. DEA memiliki ukuran blok 64-bit dan menggunakan kunci 56-bit kunci selama eksekusi (8 bit paritas dihilangkan dari kunci 64 bit).
DEA adalah symmetric cryptosystem, khususnya cipher Feistel 16-rounddan pada mulanya dirancang untuk implementasi hardware. Saat digunakan untuk komunikasi, baik pengirim maupun penerima harus mengetahui kunci rahasia yang sama, yang dapat digunakan untuk mengenkrip dan mendekrip pesan, atau untuk menggenerate dan memverifikasi message authentication code (MAC). DEA juga dapat digunakan untuk enkripsi single user, seperti untuk menyimpan file pada harddisk dalam bentuk terenkripsi. Dalam lingkungan multiuser, distribusi kunci rahasia akan sulit. Public-key cryptography menyediakan solusi yang ideal untuk masalah ini.
NIST telah mensertifikasi kembali DES (FIPS 46-1, 46-2, 46-3) setiap 5 tahun.FIPS 46-3 mensahkan kembali penggunaan DES sampai Oktober 1999, namun single DES hanya diijinkan untuk legacy systems. FIPS 46-3 mencakup definisi dari triple-DES (TDEA, menurut X9.52); TDEA adalah "pilihan algoritma simetris yang disetujui oleh FIPS." Dalam beberapa tahun, DES dan triple-DES akan digantikan dengan AES (Advanced Encryption Standard.)
2.5.1 Cara kerja Algoritma DES
DES (data encrytion standard) mengenkrip plaintext sebesar 64 bit (8 byte) dengan panjang kunci sekitar 56 bit (7 byte), sebanyak 16 putaran. Data 64 bit akan disubtitusi terlebih dahulu
(29)
dengan permutasi IP (initial permutation). IP digunakan sebelum putaran pertama dari 16 putaran, dan mensubtitusi blok input dengan ketentuan sebagai berikut:
IP = 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7.
Sebagai contoh IP akan memindahkan bit 58 dari plaintext menjadi bit 1, bit ke-50 menjadi bit ke-2, bit ke-43 menjadi bit ke-3, dan seterusnya.
IP (initial permutation) dan final permutation atau invers IP tidak mempengaruhi keamanan dari DES. Tujuan utamanya yaitu hanya untuk memudahkan dalam memanggil data plaintext atau data ciphertext ke dalam chip DES yang berbentuk potongan-potongan byte dalam software/program komputer.
Plaintext yang telah disubtitusi akan dipecah menjadi dua bagian sebesar 32 bit kiri L dan 32 bit kanan R. pada setiap putarannya data kiri akan menjadi data kanan, data kanan akan dilakukan operasi data kiri di-Xor-kan dengan fungsi f.
Li=Ri-1
Ri=Li-1 Xor f(Ri-1,Ki)
Kemudian dilanjutkan dengan melakukan subtitusi final permutation atau invers IP (IPinv). Ipinv merupakan invers dari IP dan digambarkan dengan ketentuan sebagai berikut:
Ipinv = 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25.
(30)
dalam putaran terakhirnya, blok R16L16 tidak terjadi pertukaran tetapi blok ini menjadi input
untuk IPinv.
Gambar 2 6. Diagram Alir Enkripsi dengan metode DES
Untuk fungsi f, data sebelah kanan sebesar 32 bit akan dipermutasi dengan expansion permutation (E) sehingga akan menghasilkan ciphertext sebesar 48 bit, kemudian dilakukan operasi Xor dengan blok kunci dan diinputkan ke dalam sbox. Sbox terdiri atas 8 buah. Hasilnya akan disubtitusi dengan P-Box permutation (P) sekaligus membentuk data menjadi 32 bit lagi. Berikut isi dari E dan P:
E = 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,
(31)
16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1. P = 16, 7, 20, 21, 29, 12, 28, 17,
1, 15, 23, 26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25
Gambar 2.7 Algoritma fungsi f (metode DES)
Isi dari Sboxnya adalah sebagai berikut:
S1 = 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13.
(32)
S2 = 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9. S3 = 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12.
S4 = 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 5, 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9, 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14. S5 = 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9, 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6, 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14, 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3. S6 = 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11, 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8, 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6, 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13. S7 = 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1, 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6, 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2, 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12.
S8 = 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7, 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2, 7, 11, 14, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8,
(33)
Blok kunci terdiri atas 16 blok, masing-masing berjumlah 56 bit. Sebelumnya, inputan blok kunci (64 bit) akan didistribusi terlebih dahulu dengan permuted Choice 1 (Pc1) atau disebut juga sebagai Key Permutation (blok kunci menjadi 56 bit), kemudian dipecah menjadi 2 bagian dengan setiap bagian sebesar 28 bit . Setiap blok ke 1, 2, 9, 16 akan dirotasi 1 bit ke kiri, sisanya 2 bit ke kiri kemudian digabungkan kembali menjadi 56 bit. Terakhir dilakukan permutasi dengan Permuted Choice 2 (Pc2) atau disebut juga sebagai Compression Permutation sehingga menjadi 48 bit. Berikut isi dari Pc1 dan Pc2:
Pc1 = 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4. Pc2 = 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10,
23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32.
(34)
Gambar 2.8 Diagram Alir Blok Kunci
Untuk proses deskripsinya, operasinya akan dibalik dengan operasi enkripsi yaitu: Li = Ri-1
Ri = Li-1 Xor f(Ri-1,Ki)
dengan urutan kunci terbalik yaitu dimulai dari blok kunci yang terakhir. 2.5.2 Keamanan DES
Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES: 1. Panjang kunci
DES saat ini sudah dianggap tidak aman lagi, penyebabnya karena panjang kuncinya yang pendek. Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang diusulkan IBM adalah 128 bit, tetapi atas permintaan NSA panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan. Serangan yang paling praktis terhadap DES adalah
(35)
72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor paralel mencoba setengah dari jumlah kemungkinan kunci itu, maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk menemukan kunci yang benar.
Namun, pada tahun 1998 Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive key search dengan biaya $ 250.000 dan diharapkan dapat menemukan kunci selama 5 hari. Tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari.
2. Jumlah putaran
Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acak dari setiap bit plainteks dan setiap cipherteks. Dari penelitian DES dengan jumlah putaran yang kurang dari 16 kali ternyata dapat dipecahkan dengan known-plaintext attack lebih mangkus daripada dengan brute force attack.
3. Sbox
Pengisian Sbox DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.
2.5.3 Triple DES
Triple DES merupakan pengembangan dari algoritma DES. Triple DES mempunyai kunci yang lebih panjang ( 3 kali daripada DES). Cara ini dipakai untuk membuat DES lebih kuat lagi, yaitu dengan melakukan enkripsi DES tiga kali.
Triple DES adalah jawaban untuk menutupi kekurangan dari DES. Panjang kunci yang digunakan lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang. Cara kerja dari model enkripsi ini adalah mengambil 3 kunci sebanyak 64 bit dari seluruh
(36)
kunci yang mempunyai panjang 192 bit. Triple DES memungkinkan pengguna memakai 3 sub kunci dengan masing-masing panjangnya 64 bit. Prosedur untuk enkripsi sama dengan DES tetapi diulang sebanyak 3 kali. Data dienkrip dengan kunci pertama kemudian didekrip dengan kunci kedua dan pada akhirnya dienkrip dengan kunci ketiga.
Gambar 2.9 Triple DES
Akibatnya Triple DES menjadi 3 kali lebih lambat dari DES, tetapi lebih aman jika digunakan sebagaimana mestinya.
2.6 Perbandingan Kriptografi Kunci Simetris dengan Kriptografi Kunci Asimetris 2.6.1 Kelebihan Kriptografi Kunci Simetris
Kelebihan kriptografi kunci simetris, diantaranya adalah:
1. Algoritma kriptografi kunci simetris dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat.
2. Ukuran kunci simetris relatif pendek. Algoritma kriptografi kunci simetris dapat digunakan untuk membangkitkan bilangan acak.
3. Algoritma kriptografi kunci simetris dapat disusun untuk menghasilkan cipher yang lebih kuat.
4. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.
2.6.2 Kelemahan Kriptografi Kunci Simetris DES Encryption DES Encryption DES Encryption
Plaintext
Ciphertext
Key 1 Key 2 Key 3
(37)
Kelemahan kriptografi kunci simetris, diantaranya adalah:
1. Kunci simetris harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini.
2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi. 2.6.3 Kelebihan Kriptografi Kunci Asimetris
Kelebihan kriptografi kunci asimetris, diantaranya adalah:
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetris.
2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.
3. Dapat digunakan untuk mengamankan pengiriman kunci simetris.
4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan.
2.6.4 Kelemahan Kriptografi Kunci Asimetris
Kelemahan kriptografi kunci asimetris, diantaranya adalah:
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetris, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.
2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks).
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetris.
4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan mengenai otentikasi pengirim.
5. Tidak ada algoritma kunci publik yang terbukti aman. Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik yang menjadi dasar pembangkit kunci. Kriptografi kunci publik juga tidak aman dari
(38)
serangan man-in-the-middle attack. Orang di ”tengah” mengintersepsi komunikasi lalu berpura-pura sebagai salah satu pihak yang berkomunikasi untuk mengetahui informasi rahasia.
2. 7 Bilangan Prima
Bilangan bulat positif p (p > 1) disebut bilangan prima jika pembaginya hanya 1 dan p. Contoh 23 adalah bilangan prima karena ia hanya habis dibagi oleh 1 dan 23. Karena bilangan prima harus lebih besar 1, maka barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap.
Bilangan selain prima disebut bilangan komposit (composite). Misalnya 20 adalah bilangan komposit karena 20 dapat dibagi oleh 2, 4, 5, dan 10, selain 1 dan 20 sendiri.
Teorema The Fundamental Theorem of Arithmetic. “Setiap bilangan bulat positif yang lebih besar atau sama dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima”.
2.7.1 Teorema Fermat
Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan bulat, yang terkenal dengan Teorema Fermat. Fermat (dibaca “Fair-ma”) adalah seorang matematikawan Perancis pada tahun 1640.
Teorema Fermat. “Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p, yaitu PBB (a,p) = 1, maka a p-1≡ 1 (mod p)
Contoh:
Kita akan menguji apakah 17 dan 21 bilangan prima atau bukan. Disini kita mengambil nilai a = 2 karena PBB (17,2) = 1 dan PBB (21,2) = 1.
Untuk 17,
(39)
Karena 17 tidak membagi 65536 -1 = 65535 (65535 ÷ 17 = 3855). Untuk 21,
221-1 = 1048576 ≡ 1 (mod 21)
karena 21 tidak habis membagi 1048576 – 1 = 1048575.
Kelemahan Teorema Fermat: terdapat bilangan komposit n sedemikian sehingga 2n-1 ≡ 1 (mod n). Bilangan bulat seperti ini disebut bilangan prima semu (pseudoprisme). Misalnya komposit 341 (yaitu 341 = 11 . 31) adalah bilangan prima semu karena menurut teorema Fermat, 2340 ≡ 1 (mod 341).
Untunglah bilangan prima semu relatif jarang terdapat.
2.7.2 Fungsi Totient Euler φ
Fungsi Totient Euler φ mendefenisikan φ (n) untuk n ≥ 1 yang menyatakan jumlah bilangan
bulat positif < n yang relatif prima dengan n. Contoh 1:
φ(20) = 8; Perhitungannya adalah sebagai berikut: bilangan bulat positif yang lebih
kecil dari 20 adalah 1 sampai 19. Diantara bilangan-bilangan tersebut, terdapat φ(20) = 8 buah yang relatif prima dengan 20, yaitu 1, 3, 7, 9, 11, 13, 17, 19.
Untuk n = 1, 2, ..., 10, fungsi euler adalah
φ(1) = 0 φ(6) = 2
φ(2) = 1 φ(7) = 6
φ(3) = 2 φ(8) = 4
φ(4) = 2 φ(9) = 6
φ(5) = 4 φ(10) = 4
Jika n prima, maka setiap bilangan bulat yang lebih kecil dari n relatif prima terhadap n.
Dengan kata lain, φ(n) = n – 1 hanya jika n prima. Contoh 2:
(40)
Teorema. Jika n = pq adalah bilangan komposit dengan p dan q prima, maka φ(n) = φ(p)
φ(q) = (p – 1)(q – 1).
Contoh 3:
Tentukan φ(21).
Penyelesaian: Karena 21 = 7 . 3, φ(21) = φ(7) φ(3) = 6 . 2 = 12 buah bilangan bulat yang
relatif prima terhadap 21, yaitu: 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20.
Teorema. Jika p bilangan prima dan k > 0, maka φ(pk) = pk – pk-1= pk-1(p – 1).
Contoh: Tentukan φ(16).
Penyelesaian: Karena φ(16) = φ(24
) = 24 – 23 = 16 – 8 = 8, maka ada delapan buah bilangan bulat yang relatif prima terhadap 16, yaitu: 1, 3, 5, 7, 9, 11, 13, 15.
Teorema. (Euler’s generalization of Fermat theorem). Jika PBB(a, n) = 1, maka a φ(n)mod n = 1 (atau a φ(n)≡ 1 (mod n)).
(41)
BAB 3 PEMBAHASAN 3.1 Implementasi Algoritma RSA
Implementasi Algoritma RSA dirancang dalam bahasa pemograman visual basic 6.0. Berikut beberapa tahap proses implementasi algoritma RSA.
1. Pembentukan Kunci 2. Proses Enkripsi 3. Proses Dekripsi
3.1.1 Pembentukan Kunci
Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat adalah sebagai berikut:
6. Pilih dua bilangan prima sembarang, p dan q..
7. Hitung n = p . q (sebaiknya p ≠ q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n).
8. Hitung φ(n) = (p - 1) (q - 1).
9. Pilih kunci publik e, yang relatif prima terhadap φ(n).
10. Bangkitkan kunci privat dengan menggunakan persamaan e . d ≡ 1 (mod φ(n)). Perhatikan bahwa e . d ≡ 1 (mod φ(n)).
Hitung d hingga d e≡ 1 (mod φ) ekivalen dengan e . d = 1 + k φ(n), sehingga secara sederhana d dapat dihitung dengan
� =1 + ��(�)
�
Hasil dari algoritma di atas:
- Kunci publik adalah pasangan (e, n) - Kunci privat adalah pasangan ( d, n)
(42)
3. p dan q bilangan prima (rahasia)
4. n = p . q (tidak rahasia)
3. φ(n) = (p - 1) (q - 1) (rahasia)
4. e = kunci enkripsi (tidak rahasia)
5. d = kunci dekripsi (rahasia)
6. m = plainteks (rahasia) 7. c = cipherteks (tidak rahasia)
3.1.2 Proses Enkripsi
Implementasi proses enkripsi ke dalam algoritma bahasa pemograman adalah sebagai berikut :
Algoritma untuk enkripi adalah sebagai berikut :
Public Function enc(ByVal tIp As String, eE As Double, eN As Double) As String On Error Resume Next
Dim encSt As String encSt = ""
e2st = ""
If tIp = "" Then Exit Function For I = 1 To Len(tIp)
encSt = encSt & Mult(CLng(Asc(Mid(tIp, I, 1))), eE, eN) & "+" Next I
enc = encSt End Function
Algoritma untuk fungsi mult adalah sebagai berikut :
Public Function Mult(ByVal x As Double, ByVal pg As Double, ByVal m As Double) As Double
On Error GoTo error1 y = 1
Do While pg > 0
(43)
x = nMod((x * x), m) pg = pg / 2
Loop
y = nMod((x * y), m) pg = pg - 1
Loop Mult = y Exit Function error1:
y = 0
End Function
Algoritma untuk fungsi nMod adalah sebagai berikut : Private Function nMod(x As Double, y As Double) As Double On Error Resume Next
Dim z#
z = x - (Int(x / y) * y) nMod = z
End Function
3.1.3 Proses Dekripsi
Implementasi proses enkripsi ke dalam algoritma bahasa pemograman adalah sebagai berikut :
Algoritma untuk dekripsi adalah sebagai berikut :
Public Function dec(ByVal tIp As String, dD As Double, dN As Double) As String On Error Resume Next
Dim decSt As String decSt = ""
For z = 1 To Len(tIp) ptr = InStr(z, tIp, "+") tok = Val(Mid(tIp, z, ptr))
(44)
z = ptr Next z dec = decSt End Function
3.2 Implementasi Algoritma Triple DES
Implementasi Algoritma Triple DES dirancang dengan menggunakan bahasa pemograman visual basic 6.0 berikut flowchart dari skema global algoritma Triple DES.
16 Kali
Start
Plain text
Initial Permutation Bagi dua plaintext
Enchipering
End
Gambar 3.1 Skema Dasar Algoritma Triple DES
Penjelasan dari flowchart diatas adalah sebagai berikut :
1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP).
(45)
2. Hasil permutasi awal kemudian dienciphering- sebanyak 16 kali (16 putaran).Setiap putaran menggunakan kunci internal yang berbeda.
3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks.
Pada flowchart diatas dapat disimpulkan bahwa Triple DES menggunakan skema dasar pada algoritma DES. Perbedaannya adalah dalam algoritma Triple DES dilakukan 3 kali. Bentuk Triple DES yang digunakan dalam penelitian ini adalah mode EEE dengan bentuk sebagai berikut :
Enkripsi: C = EK3(EK2(EK1 (P))) Dekripsi: P = DK1(DK2 (DK3 (C)))
Sehingga kunci yang digunakan adalah 168 bit (56 x 3). Sehingga dapat digambarkan dalam flowchart sebagai berikut
Start
Plain text
Enkripsi dengan K1
End
Enkripsi dengan K2
Enkripsi dengan K3
Chiper Text
Start
Chiper text
Dekripsi dengan K3
End
Dekripsi dengan K2
Dekripsi dengan K1
Chiper Text
P = DK1(DK2 (DK3 (C))) C=EK3(EK2(EK1 (P)))
(a) (b)
(46)
3.2.1 Proses Enkripsi
Algoritma Triple DES menggunakan skema dasar proses enkripsi pada algoritma DES. Pada tahap pertama dilakukan pembentukan sub kunci Triple DES (K1, K2, K3). Langkah
selanjutnya adalah melakukan proses algoritma DES dengan kunci yang sudah di tentukan di atas.
Berikut algoritma yang digunakan dalam proses enkripsi:
1. Proses subtitusi plaintext dengan permutasi IP. Plaintext sebesar 64 bit (8 byte) akan dibagi dua masing-masing 32 bit sekaligus disubtitusi dengan m_IP. m_IP merupakan blok bilangan dari inisial permutasi IP. algoritmanya adalah sebagai berikut:
1. Panggil Byte2Bin(BlockData(), 8, BinBlock()) 2. For a=0 to 31
L(a)=BinBlock(m_IP(a)) R(a)=BinBlock(m_IP(a+32)) 3. Next
Fungsi Byte2Bin akan mengubah byte menjadi bit, algoritmanya sebagai berikut: 1. Panggil CopyMem(BinarryArray(0), m_EmptyArray(0), ByteLen*8) 2. BinLength=0
3. Selama a=0 hingga a=(ByteLen-1) lakukan perulangan 4. ByteValue=ByteArray (a)
5. Jika (ByteValue and 128) maka BinaryArray(BinLength)=1 6. Jika (ByteValue and 64) maka BinaryArray(BinLength + 1)=1 7. Jika (ByteValue and 32) maka BinaryArray(BinLength + 2)=1 8. Jika (ByteValue and 16) maka BinaryArray(BinLength + 3)=1 9. Jika (ByteValue and 8) maka BinaryArray(BinLength + 4)=1 10. Jika (ByteValue and 4) maka BinaryArray(BinLength + 5)=1 11. Jika (ByteValue and 2) maka BinaryArray(BinLength + 6)=1 12. Jika (ByteValue and 1) maka BinaryArray(BinLength + 7)=1 13. BinLength = BinLength + 8
(47)
14. Akhir perulangan
Setelah operasi di atas, selanjutnya data disebelah kanan akan diekspansi menjadi 48 bit (6 byte) yang urutan bitnya sesuai dengan bit E, sekaligus di Xor-kan dengan hasil kunci di atas. Algoritmanya adalah sebagai berikut (i = 1 sampai 16):
1. ErxorK(0) = r(31) Xor m_Key(0, i ) 2. ErxorK(1) = r(0) Xor m_Key(1, i) 3. ErxorK(2) = r(1) Xor m_Key(2, i) 4. ErxorK(3) = r(2) Xor m_Key(3, i) 5. ErxorK(4) = r(3) Xor m_Key(4, i) 6. ErxorK(5) = r(4) Xor m_Key(5, i) 7. ErxorK(6) = r(3) Xor m_Key(6, i) 8. ErxorK(7) = r(4) Xor m_Key(7, i) 9. ErxorK(8) = r(5) Xor m_Key(8, i) 10. ErxorK(9) = r(6) Xor m_Key(9, i) 11. ErxorK(10) = r(7) Xor m_Key(10, i) 12. ErxorK(11) = r(8) Xor m_Key(11, i) 13. ErxorK(12) = r(7) Xor m_Key(12, i) 14. ErxorK(13) = r(8) Xor m_Key(13, i) 15. ErxorK(14) = r(9) Xor m_Key(14, i) 16. ErxorK(15) = r(10) Xor m_Key(15, i) 17. ErxorK(16) = r(11) Xor m_Key(16, i) 18. ErxorK(17) = r(12) Xor m_Key(17, i) 19. ErxorK(18) = r(11) Xor m_Key(18, i) 20. ErxorK(19) = r(12) Xor m_Key(19, i) 21. ErxorK(20) = r(13) Xor m_Key(20, i) 22. ErxorK(21) = r(14) Xor m_Key(21, i) 23. ErxorK(22) = r(15) Xor m_Key(22, i) 24. ErxorK(23) = r(16) Xor m_Key(23, i) 25. ErxorK(24) = r(15) Xor m_Key(24, i) 26. ErxorK(25) = r(16) Xor m_Key(25, i) 27. ErxorK(26) = r(17) Xor m_Key(26, i) 28. ErxorK(27) = r(18) Xor m_Key(27, i) 29. ErxorK(28) = r(19) Xor m_Key(28, i)
(48)
30. ErxorK(29) = r(20) Xor m_Key(29, i) 31. ErxorK(30) = r(19) Xor m_Key(30, i) 32. ErxorK(31) = r(20) Xor m_Key(31, i) 33. ErxorK(32) = r(21) Xor m_Key(32, i) 34. ErxorK(33) = r(22) Xor m_Key(33, i) 35. ErxorK(34) = r(23) Xor m_Key(34, i) 36. ErxorK(35) = r(24) Xor m_Key(35, i) 37. ErxorK(36) = r(23) Xor m_Key(36, i) 38. ErxorK(37) = r(24) Xor m_Key(37, i) 39. ErxorK(38) = r(25) Xor m_Key(38, i) 40. ErxorK(39) = r(26) Xor m_Key(39, i) 41. ErxorK(40) = r(27) Xor m_Key(40, i) 42. ErxorK(41) = r(28) Xor m_Key(41, i) 43. ErxorK(42) = r(27) Xor m_Key(42, i) 44. ErxorK(43) = r(28) Xor m_Key(43, i) 45. ErxorK(44) = r(29) Xor m_Key(44, i) 46. ErxorK(45) = r(30) Xor m_Key(45, i) 47. ErxorK(46) = r(31\) Xor m_Key(46, i) 48. ErxorK(47) = r(0) Xor m_Key(47, i)
Kemudian hasil di atas akan disubtitusikan dengan m_sBox (blok Sbox DES) sebanyak 6 bit yang menghasilkan keluaran 4 bit ditampung dalam array sBox sebanyak 32 bit. Algoritmanya sebagai berikut:
1. Panggil CopyMem(sBox(0),m_sBox(0, ErxorK(0),
ERxorK(1), ERxorK(2), ERxorK(3), ERxorK(4), ERxorK(5)),4) 2. Panggil CopyMem(sBox(4),m_sBox(1, ErxorK(6),
ERxorK(7), ERxorK(8), ERxorK(9), ERxorK(10), ERxorK(11)),4) 3. Panggil CopyMem(sBox(8),m_sBox(2, ErxorK(12),
ERxorK(13), ERxorK(14), ERxorK(15), ERxorK(16), ERxorK(17)),4) 4. Panggil CopyMem(sBox(12),m_sBox(3, ErxorK(18),
ERxorK(19), ERxorK(20), ERxorK(21), ERxorK(22), ERxorK(23)),4) 5. Panggil CopyMem(sBox(16),m_sBox(4, ErxorK(24),
(49)
6. Panggil CopyMem(sBox(20),m_sBox(5, ErxorK(30),
ERxorK(31), ERxorK(32), ERxorK(33), ERxorK(34), ERxorK(35)),4) 7. Panggil CopyMem(sBox(24),m_sBox(6, ErxorK(36),
ERxorK(37), ERxorK(38), ERxorK(39), ERxorK(40), ERxorK(41)),4) 8. Panggil CopyMem(sBox(28),m_sBox(7, ErxorK(42),
ERxorK(43), ERxorK(44), ERxorK(45), ERxorK(46), ERxorK(47)),4)
Setelah sBox dihasilkan, kemudian hasilnya akan di Xor-kan dengan data sebelah kiri dengan urutan bit sesuai dengan m_P Permutasi dari blok P) dan hasilnya akan ditampung dalam array LiRi sebanyak 32 bit. Algoritmanya sebagai berikut:
1. LiRi(0) = L(0) Xor sBox(15) 2. LiRi(1) = L(1) Xor sBox(6) 3. LiRi(2) = L(2) Xor sBox(19) 4. LiRi(3) = L(3) Xor sBox(20) 5. LiRi(4) = L(4) Xor sBox(28) 6. LiRi(5) = L(5) Xor sBox(11) 7. LiRi(6) = L(6) Xor sBox(27) 8. LiRi(7) = L(7) Xor sBox(16) 9. LiRi(8) = L(8) Xor sBox(0) 10. LiRi(9) = L(9) Xor sBox(14) 11. LiRi(10) = L(10) Xor sBox(22) 12. LiRi(11) = L(11) Xor sBox(25) 13. LiRi(12) = L(12) Xor sBox(4) 14. LiRi(13) = L(13) Xor sBox(17) 15. LiRi(14) = L(14) Xor sBox(30) 16. LiRi(15) = L(15) Xor sBox(9) 17. LiRi(16) = L(16) Xor sBox(1) 18. LiRi(17) = L(17) Xor sBox(7) 19. LiRi(18) = L(18) Xor sBox(23) 20. LiRi(19) = L(19) Xor sBox(13) 21. LiRi(20) = L(20) Xor sBox(31) 22. LiRi(21) = L(21) Xor sBox(36) 23. LiRi(22) = L(22) Xor sBox(2)
(50)
24. LiRi(23) = L(23) Xor sBox(8) 25. LiRi(24) = L(24) Xor sBox(18) 26. LiRi(25) = L(25) Xor sBox(12) 27. LiRi(26) = L(26) Xor sBox(29) 28. LiRi(27) = L(27) Xor sBox(5) 29. LiRi(28) = L(28) Xor sBox(21) 30. LiRi(29) = L(29) Xor sBox(10) 31. LiRi(30) = L(30) Xor sBox(3) 32. LiRi(31) = L(31) Xor sBox(24)
Hasil data diatas akan dijadikan data sebelah kanan, data kiri diisi dengan data kanan sebelumnya lalu keduanya disatukan kembali menjadi data 64 bit kembali sekaligus disubtitusi dengan m_IP dan 64 bit tersebut dijadikan 8 byte kembali. m_IP merupakan blok bilangan dari invers permutasi pada DES. Algoritmanya sebagai berikut:
1. Panggil CopyMem(RL(0), r(0), 32) 2. Panggil CopyMem(RL(32), L(0), 32)
3. Selama a=0 hingga a=63 lakukan perulangan BinBlock(a)=RL(m_IPInv(a))
4. Akhir perulangan
5. Panggil Bin2Byte(BinBlock(), 8, BlockData())
Fungsi Bin2Byte akan mengubah bin menjadi byte, algoritmanya sebagai berikut: 1. BinLength=0
2. Selama a=0 hingga a=(ByteLen – 1) lakukan perulangan 3. ByteValue=0
4. Jika (BinarryArray(BinLength)=1)maka ByteValue=ByteValue+128 5. Jika (BinarryArray(BinLength+1)=1)maka ByteValue=ByteValue+64 6. Jika (BinarryArray(BinLength+2)=1)maka ByteValue=ByteValue+32 7. Jika (BinarryArray(BinLength+3)=1)maka ByteValue=ByteValue+16 8. Jika (BinarryArray(BinLength+4)=1)maka ByteValue=ByteValue+8 9. Jika (BinarryArray(BinLength+5)=1)maka ByteValue=ByteValue+4 10. Jika (BinarryArray(BinLength+6)=1)maka ByteValue=ByteValue+2 11. Jika (BinarryArray(BinLength+7)=1)maka ByteValue=ByteValue+1
(51)
12. ByteArray(a)=ByteValue 13. BinLength=BinLength + 8 14. Akhir perulangan
3.2.2 Proses Dekripsi
Proses ini merupakan kebalikan dari proses enkripsi yaitu proses mengembalikan data yang terenkripsi menjadi data yang sebenarnya. Pada proses dekripsi ini juga dilakukan tahapan-tahapan yang sama seperti tahapan-tahapan enkripsi.
Algoritmanya adalah sebagai berikut (i = 16 sampai 1):
For i = 16 To 1 Step -1 1. 'E(R[i]) xor K[i]
2. ERxorK(0) = R(31) Xor m_Key(0, i) 3. ERxorK(1) = R(0) Xor m_Key(1, i) 4. ERxorK(2) = R(1) Xor m_Key(2, i) 5. ERxorK(3) = R(2) Xor m_Key(3, i) 6. ERxorK(4) = R(3) Xor m_Key(4, i) 7. ERxorK(5) = R(4) Xor m_Key(5, i) 8. ERxorK(6) = R(3) Xor m_Key(6, i) 9. ERxorK(7) = R(4) Xor m_Key(7, i) 10. ERxorK(8) = R(5) Xor m_Key(8, i) 11. ERxorK(9) = R(6) Xor m_Key(9, i) 12. ERxorK(10) = R(7) Xor m_Key(10, i) 13. ERxorK(11) = R(8) Xor m_Key(11, i) 14. ERxorK(12) = R(7) Xor m_Key(12, i) 15. ERxorK(13) = R(8) Xor m_Key(13, i) 16. ERxorK(14) = R(9) Xor m_Key(14, i) 17. ERxorK(15) = R(10) Xor m_Key(15, i) 18. ERxorK(16) = R(11) Xor m_Key(16, i) 19. ERxorK(17) = R(12) Xor m_Key(17, i)
(52)
20. ERxorK(18) = R(11) Xor m_Key(18, i) 21. ERxorK(19) = R(12) Xor m_Key(19, i) 22. ERxorK(20) = R(13) Xor m_Key(20, i) 23. ERxorK(21) = R(14) Xor m_Key(21, i) 24. ERxorK(22) = R(15) Xor m_Key(22, i) 25. ERxorK(23) = R(16) Xor m_Key(23, i) 26. ERxorK(24) = R(15) Xor m_Key(24, i) 27. ERxorK(25) = R(16) Xor m_Key(25, i) 28. ERxorK(26) = R(17) Xor m_Key(26, i) 29. ERxorK(27) = R(18) Xor m_Key(27, i) 30. ERxorK(28) = R(19) Xor m_Key(28, i) 31. ERxorK(29) = R(20) Xor m_Key(29, i) 32. ERxorK(30) = R(19) Xor m_Key(30, i) 33. ERxorK(31) = R(20) Xor m_Key(31, i) 34. ERxorK(32) = R(21) Xor m_Key(32, i) 35. ERxorK(33) = R(22) Xor m_Key(33, i) 36. ERxorK(34) = R(23) Xor m_Key(34, i) 37. ERxorK(35) = R(24) Xor m_Key(35, i) 38. ERxorK(36) = R(23) Xor m_Key(36, i) 39. ERxorK(37) = R(24) Xor m_Key(37, i) 40. ERxorK(38) = R(25) Xor m_Key(38, i) 41. ERxorK(39) = R(26) Xor m_Key(39, i) 42. ERxorK(40) = R(27) Xor m_Key(40, i) 43. ERxorK(41) = R(28) Xor m_Key(41, i) 44. ERxorK(42) = R(27) Xor m_Key(42, i) 45. ERxorK(43) = R(28) Xor m_Key(43, i) 46. ERxorK(44) = R(29) Xor m_Key(44, i) 47. ERxorK(45) = R(30) Xor m_Key(45, i) 48. ERxorK(46) = R(31) Xor m_Key(46, i) 49. ERxorK(47) = R(0) Xor m_Key(47, i)
Kemudian hasil di atas akan disubtitusikan dengan m_sBox. Algoritmanya sebagai berikut:
(53)
1. Call CopyMem(sBox(0), m_sBox(0, ERxorK(0), ERxorK(1), ERxorK(2), ERxorK(3), ERxorK(4), ERxorK(5)), 4)
2. Call CopyMem(sBox(4), m_sBox(1, ERxorK(6), ERxorK(7), ERxorK(8), ERxorK(9), ERxorK(10), ERxorK(11)), 4)
3. Call CopyMem(sBox(8), m_sBox(2, ERxorK(12), ERxorK(13), ERxorK(14), ERxorK(15), ERxorK(16), ERxorK(17)), 4)
4. Call CopyMem(sBox(12), m_sBox(3, ERxorK(18), ERxorK(19), ERxorK(20), ERxorK(21), ERxorK(22), ERxorK(23)), 4)
5. Call CopyMem(sBox(16), m_sBox(4, ERxorK(24), ERxorK(25), ERxorK(26), ERxorK(27), ERxorK(28), ERxorK(29)), 4)
6. Call CopyMem(sBox(20), m_sBox(5, ERxorK(30), ERxorK(31), ERxorK(32), ERxorK(33), ERxorK(34), ERxorK(35)), 4)
7. Call CopyMem(sBox(24), m_sBox(6, ERxorK(36), ERxorK(37), ERxorK(38), ERxorK(39), ERxorK(40), ERxorK(41)), 4)
8. Call CopyMem(sBox(28), m_sBox(7, ERxorK(42), ERxorK(43), ERxorK(44), ERxorK(45), ERxorK(46), ERxorK(47)), 4)
Kemudian algoritmanya adalah sebagai berikut (i = 16 sampai 1): 1. LiRi(0) = l(0) Xor sBox(15)
2. LiRi(1) = l(1) Xor sBox(6) 3. LiRi(2) = l(2) Xor sBox(19) 4. LiRi(3) = l(3) Xor sBox(20) 5. LiRi(4) = l(4) Xor sBox(28) 6. LiRi(5) = l(5) Xor sBox(11) 7. LiRi(6) = l(6) Xor sBox(27) 8. LiRi(7) = l(7) Xor sBox(16) 9. LiRi(8) = l(8) Xor sBox(0) 10. LiRi(9) = l(9) Xor sBox(14) 11. LiRi(10) = l(10) Xor sBox(22) 12. LiRi(11) = l(11) Xor sBox(25) 13. LiRi(12) = l(12) Xor sBox(4) 14. LiRi(13) = l(13) Xor sBox(17) 15. LiRi(14) = l(14) Xor sBox(30) 16. LiRi(15) = l(15) Xor sBox(9) 17. LiRi(16) = l(16) Xor sBox(1)
(54)
18. LiRi(17) = l(17) Xor sBox(7) 19. LiRi(18) = l(18) Xor sBox(23) 20. LiRi(19) = l(19) Xor sBox(13) 21. LiRi(20) = l(20) Xor sBox(31) 22. LiRi(21) = l(21) Xor sBox(26) 23. LiRi(22) = l(22) Xor sBox(2) 24. LiRi(23) = l(23) Xor sBox(8) 25. LiRi(24) = l(24) Xor sBox(18) 26. LiRi(25) = l(25) Xor sBox(12) 27. LiRi(26) = l(26) Xor sBox(29) 28. LiRi(27) = l(27) Xor sBox(5) 29. LiRi(28) = l(28) Xor sBox(21) 30. LiRi(29) = l(29) Xor sBox(10) 31. LiRi(30) = l(30) Xor sBox(3) 32. LiRi(31) = l(31) Xor sBox(24) 33. Call CopyMem(l(0), R(0), 32) 34. Call CopyMem(R(0), LiRi(0), 32) 35. Next
3.3 Perancangan Flowchart
Gambaran secara umum proses yang terjadi dalam aplikasi enkripsi dan dekripsi file teks adalah:
Mulai
Tampilkan form halaman
t
Pilih algoritma yang akan digunakan
(55)
Gambar 3.3 Flowchart yang terjadi dalam Aplikasi Enkripsi dan Dekripsi file teks 3.3.1 Halaman Utama
Pada halaman utama terdapat beberapa menu antara lain form untuk enkripsi dan dekripsi file teks dengan algoritma Triple DES, form untuk enkripsi dan dekripsi file teks dengan algoritma RSA dan form bantuan. Gambar 3.4 menampilkan halaman utama dari aplikasi enkripsi dan dekripsi file teks.
Gambar 3.4 Tampilan Halaman Utama Input file teks
Pilih proses
Enkripsi Dekripsi
File hasil
(56)
3.3.2 Halaman Hasil
Halaman hasil digunakan untuk melihat tampilan hasil dari program aplikasi enkripsi dan dekripsi file teks yang telah dijalankan. Setelah kolom browse diinput dengan sebuah file teks dan menekan tombol encrypt, selanjutnya untuk mendekripsikan file tersebut pilih kembali kolom browse. Maka akan diperoleh sebuah file teks hasil dari dekripsi dan tampilan informasi yang dibutuhkan. Tampilan halaman hasil menggunakan algoritma Triple DES dan algoritma RSA dapat dilihat pada gambar halaman berikut.
(57)
Gambar 3.6 Hasil Enkripsi File Teks coba2.txt dengan Algoritma RSA
(58)
Gambar 3.8 Hasil Dekripsi File Teks coba2.txt dengan Algoritma RSA
(59)
Gambar 3.10 Hasil Enkripsi File Teks coba2.txt dengan Algoritma Triple DES
(60)
Gambar 3. 12 Hasil Dekripsi File Teks coba2.txt dengan Algoritma Triple DES
Dari hasil percobaan program yang dilakukan untuk lama proses dekripsi dengan ukuran file yang berbeda untuk algoritma Triple DES dan RSA. Untuk melakukan pengujian, dipilih sejumlah file dengan ukuran dan file teks yang berbeda-beda. Untuk percobaan ini digunakan Pentium IV 1,8 Ghz, DDRAM 352 MB yaitu:
Tabel 3.1 Lama Proses Dekripsi Algoritma Triple DES dan RSA
No. Nama File Ukuran File (bytes)
Lama Proses Dekripsi (Detik)
RSA Triple DES
1 baru.txt 50 0.01 0.01
2 kunci.txt 457 0.02 0.01
3 blok.txt 2058 0.06 0.06
4 license.txt 5396 0.2 0.14
5 visio.txt 10312 0.28 0.27
(61)
Gambar 3.13 Grafik Lama Proses Dekripsi RSA dan Triple DES
BAB 4
KESIMPULAN DAN SARAN 4.1. Kesimpulan
Dari penelitian mengenai perbandingan kedua algoritma kriptografi yang telah diimplementasikan, dapat disimpulkan bahwa algoritma RSA lebih aman dibandingkan algoritma Triple DES. Karena algoritma RSA menggunakan faktorisasi bilangan berjumlah banyak.
(62)
Sebagai saran yang ditujukan kepada pembaca yang ingin menggunakan algoritma RSA dan Triple DES dalam proses enkripsi dan dekripsi, agar dapat memproses tipe file yang lain selain tipe file teks dan mengimplementasikannya dengan bahasa pemrograman yang berbeda.
DAFTAR PUSTAKA
Andi, 2003. Memahami Model Enkripsi dan Security Data, Andi Yogyakarta, Semarang. Ariyus, Dony, 2006. Kriptografi Keamanan Data dan Komunikasi, Graha Ilmu, . Yogyakarta. Dwiantoro, Tino, 2008 dalam situsnya di http:// www.dwiantoro.com.
Kurniawan, Yusuf, 2004. Keamanan Internet dan Jaringan Telekomunikasi. Informatika Bandung, Bandung.
(63)
Sebagai saran yang ditujukan kepada pembaca yang ingin menggunakan algoritma RSA dan Triple DES dalam proses enkripsi dan dekripsi, agar dapat memproses tipe file yang lain selain tipe file teks dan mengimplementasikannya dengan bahasa pemrograman yang berbeda.
DAFTAR PUSTAKA
Andi, 2003. Memahami Model Enkripsi dan Security Data, Andi Yogyakarta, Semarang. Ariyus, Dony, 2006. Kriptografi Keamanan Data dan Komunikasi, Graha Ilmu, . Yogyakarta. Dwiantoro, Tino, 2008 dalam situsnya di http:// www.dwiantoro.com.
Kurniawan, Yusuf, 2004. Keamanan Internet dan Jaringan Telekomunikasi. Informatika Bandung, Bandung.
(1)
Gambar 3.8 Hasil Dekripsi File Teks coba2.txt dengan Algoritma RSA
(2)
Gambar 3.10 Hasil Enkripsi File Teks coba2.txt dengan Algoritma Triple DES
(3)
Gambar 3. 12 Hasil Dekripsi File Teks coba2.txt dengan Algoritma Triple DES
Dari hasil percobaan program yang dilakukan untuk lama proses dekripsi dengan ukuran file yang berbeda untuk algoritma Triple DES dan RSA. Untuk melakukan pengujian, dipilih sejumlah file dengan ukuran dan file teks yang berbeda-beda. Untuk percobaan ini digunakan Pentium IV 1,8 Ghz, DDRAM 352 MB yaitu:
Tabel 3.1 Lama Proses Dekripsi Algoritma Triple DES dan RSA
No. Nama File Ukuran File (bytes)
Lama Proses Dekripsi (Detik)
RSA Triple DES
1 baru.txt 50 0.01 0.01
2 kunci.txt 457 0.02 0.01
3 blok.txt 2058 0.06 0.06
4 license.txt 5396 0.2 0.14
5 visio.txt 10312 0.28 0.27
(4)
Gambar 3.13 Grafik Lama Proses Dekripsi RSA dan Triple DES
BAB 4
KESIMPULAN DAN SARAN
4.1. Kesimpulan
Dari penelitian mengenai perbandingan kedua algoritma kriptografi yang telah diimplementasikan, dapat disimpulkan bahwa algoritma RSA lebih aman dibandingkan algoritma Triple DES. Karena algoritma RSA menggunakan faktorisasi bilangan berjumlah
(5)
Sebagai saran yang ditujukan kepada pembaca yang ingin menggunakan algoritma RSA dan Triple DES dalam proses enkripsi dan dekripsi, agar dapat memproses tipe file yang lain selain tipe file teks dan mengimplementasikannya dengan bahasa pemrograman yang berbeda.
DAFTAR PUSTAKA
Andi, 2003. Memahami Model Enkripsi dan Security Data, Andi Yogyakarta, Semarang. Ariyus, Dony, 2006. Kriptografi Keamanan Data dan Komunikasi, Graha Ilmu, . Yogyakarta. Dwiantoro, Tino, 2008 dalam situsnya di http:// www.dwiantoro.com.
Kurniawan, Yusuf, 2004. Keamanan Internet dan Jaringan Telekomunikasi. Informatika Bandung, Bandung.
(6)
Sebagai saran yang ditujukan kepada pembaca yang ingin menggunakan algoritma RSA dan Triple DES dalam proses enkripsi dan dekripsi, agar dapat memproses tipe file yang lain selain tipe file teks dan mengimplementasikannya dengan bahasa pemrograman yang berbeda.
DAFTAR PUSTAKA
Andi, 2003. Memahami Model Enkripsi dan Security Data, Andi Yogyakarta, Semarang. Ariyus, Dony, 2006. Kriptografi Keamanan Data dan Komunikasi, Graha Ilmu, . Yogyakarta. Dwiantoro, Tino, 2008 dalam situsnya di http:// www.dwiantoro.com.
Kurniawan, Yusuf, 2004. Keamanan Internet dan Jaringan Telekomunikasi. Informatika Bandung, Bandung.