• Tidak ada hasil yang ditemukan

Kunci Algoritma Enkripsi Blowfish menggunakan Algoritma Simetris (IDEA)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Kunci Algoritma Enkripsi Blowfish menggunakan Algoritma Simetris (IDEA)"

Copied!
95
0
0

Teks penuh

(1)PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. KUNCI ALGORITMA ENKRIPSI BLOWFISH MENGGUNAKAN ALGORITMA SIMETRIS (IDEA). Skripsi Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika. Oleh Sifian Cahyo Haryanto 085314104. PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015. i.

(2) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. KEY BLOWFISH ALGORITHM USING A SYMMETRIC ALGORITHM (IDEA) A Thesis Presented as Partial Fulfillment of The Requirements To Obtain Sarjana Komputer Degree in Informatics Engineering Study Program. By Sifian Cahyo Haryanto 085314104. INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015. ii.

(3) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. HALAMAN MOTO. “Jika orang lain bisa, kenapa kita tidak ?”. vi.

(4) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. HALAMAN PERSEMBAHAN. Tugas akhir ini saya persembahkan untuk : Allah Tritunggal, Bunda Maria, Orangtuaku, saudara- saudaraku, sahabat – sahabatku dan orang – orang tersayang.. vii.

(5) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. ABSTRAK. Pada proses pengiriman data terdapat beberapa aspek keamanan yang perlu diperhatikan yaitu : Confidentiality, Authentication, Integrity, Nonrepudiation, Access Control, dan Availability. Untuk menjaga kerahasiaan isi data dan integritas suatu data dibutuhkan proses penyandian atau pengkodean data sebelum dilakukan proses pengiriman data. Salah satu hal yang dapat dilakukan untuk meningkatkan keamanan data yaitu dengan menggunakan metode yang dikenal dengan istilah Kriptografi. Dalam kriptografi sendiri terdapat berbagai algoritma antara lain algoritma IDEA, DES, AES, Blowfish, 3DES, RSA, dan lain-lain. Banyak algoritma kriptografi yang telah ada. Tetapi kebanyakan jika algoritmanya sangat kompleks, pasti membutuhkan waktu dan penggunaan memori yang besar untuk melakukan proses enkripsi – dekripsi. Ini yang menjadi kendala jika ingin aman tapi tidak efisien. Tetapi jika efisien belum tentu aman. Semakin aman suatu algoritma, semakin lama waktu yang dibutuhkan untuk proses enkripsi – dekripsinya. Begitu juga sebaliknya. Dalam tugas akhir ini akan menggabungkan algoritma IDEA dan algoritma Blowfish sebagai algoritma hibrid dimana pemilihan algoritma dipilih berdasarkan kemudahan penerapan algoritma, kecepatan eksekusi serta penggunaan memori. Dengan penggabungan algoritma ini diharapkan nantinya tercipta algoritma yang mudah dipahami dan efektif untuk diterapkan di berbagai aplikasi enkripsi-dekripsi khususnya untuk dokumen yang tidak membutuhkan level enkripsi yang terlalu tinggi. Selain itu diharapkan algoritma yang dihasilkan memiliki tingkat keamanan yang baik namun tetap memiliki waktu eksekusi yang singkat dan penggunaan memori yang sedikit.. viii.

(6) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. ABSTRACT. In the data transmission process, there are several security aspects to note are: Confidentiality, Authentication, Integrity, nonrepudiation, Access Control, and Availability. To maintain the confidentiality and integrity of the data content of a data encryption or encoding process takes the data prior to the data transmission process. One of the things that can be done to improve the security of data is by using a method known as cryptography. In itself there are various cryptographic algorithms include the IDEA algorithm, DES, AES, Blowfish, 3DES, RSA, and others. Many existing cryptographic algorithms. But most if the algorithm is very complex, certainly takes time and large memory usage to make the process of encryption - decryption. It is a constraint if you want a safe but inefficient. But if efficient is not necessarily safe. The more secure the algorithm, the longer it takes for the process of encryption - decryption. Vice versa, the less time is needed, not necessarily secure an algorithm. In this final project will combine the IDEA algorithm and the Blowfish algorithm as a hybrid algorithm where choice of algorithm selected based on ease of implementation of the algorithm, the execution speed and memory usage. With the incorporation of this algorithm is expected to eventually create an algorithm that is easy to understand and effective to be applied in a variety of encryption and decryption applications, especially for documents that do not require encryption level is too high. Also expected resulting algorithm has a good level of security but still have a short execution time and memory usage slightly.. ix.

(7) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR ISI HALAMAN JUDUL................................................................................................ i. HALAMAN PERSETUJUAN........................................................................................... iii HALAMAN PENGESAHAN .................................................................................. iv. PERNYATAAN KEASLIAN KARYA.................................................................... v. HALAMAN MOTTO .............................................................................................. vi. HALAMAN PERSEMBAHAN........................................................................................ vii ABSTRAK........................................................................................................................viii ABSTRACT ............................................................................................................ ix. LEMBAR PERNYATAAN PERSETUJUAN .......................................................... x. KATA PENGANTAR.............................................................................................. xi. DAFTAR ISI.....................................................................................................................xiii DAFTAR GAMBAR........................................................................................................ xvi DAFTAR TABEL...........................................................................................................xviii BAB I PENDAHULUAN 1.1. Latar Belakang Masalah ............................................................................ 1. 1.2. Rumusan Masalah ..................................................................................... 4. 1.3. Batasan Masalah ....................................................................................... 4. 1.4. Tujuan Penelitian ...................................................................................... 4. 1.5. Metodologi Penelitian ............................................................................... 5. 1.6. Sistematika Penulisan................................................................................ 6. BAB II LANDASAN TEORI. xiii.

(8) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2.1. Keamanan Data ........................................................................................ 2.1.1. Representasi Data ............................................................................ 8 9. 2.1.2. Aspek – Aspek Keamanan Komputer...................................................... 10 2.1.3. Masalah Yang Terkait Dengan Keamanan Data...................................... 11 2.2. Kriptografi.......................................................................................................... 12 2.2.1. Algoritma Kriptografi...............................................................................14 2.2.2. Chiper Blok.............................................................................................. 16 2.2.3. Enkripsi.....................................................................................................18 2.2.4. Dekripsi.................................................................................................... 19 2.2.5. Algoritma International Data Encryption Algorithym (IDEA)................ 19 2.2.5.1 Proses Enkripsi IDEA.................................................................. 24 2.2.6. Algoritma Blowfish..................................................................................31 2.2.7. Penelitian Algoritma Simetri....................................................................34 BAB III ANALISA DAN PERANCANGAN SISTEM 3.1. Analisa Sistem .......................................................................................... 37. 3.1.1. Analisa Kebutuhan Sistem ............................................................... 37. 3.1.2. Diagram Alir ................................................................................... 38. 3.1.3. Analisa Teknologi ........................................................................... 49. 3.2. Perancangan Sistem................................................................................... 40. 3.2.1. Perancangan Antar Muka Pengguna................................................. 40. BAB IV IMPLEMENTASI 4.1. Spesifikasi Software Dan Hardware yang Dibutuhkan......................................42 4.1.1. Spesifikasi Software................................................................................. 42 4.1.2. Spesifikasi Hardware............................................................................... 42 4.2. Implementasi.......................................................................................................42 4.2.1. Implementasi Algoritma IDEA................................................................ 42 4.2.2. Implementasi Algoritma Blowfish........................................................... 48 4.2.3. Implementasi Block chiper.......................................................................59. xiv.

(9) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 4.3. Implementasi Antar Muka.................................................................................. 59 4.3.1. Halaman Awal Sistem.............................................................................. 59 4.3.2. Halaman Enkripsi Dokumen.................................................................... 60 4.3.3. Halaman Dekripsi Dokumen.................................................................... 61 BAB V HASIL DAN PEMBAHASAN 5.1. Hasil Percobaan.................................................................................................. 63 BAB VI KESIMPULAN DAN SARAN........................................................................... 75 6.1. Kesimpulan........................................................................................................ 75 6.2. Saran.................................................................................................................. 75 Daftar Pustaka.................................................................................................................... 76. xv.

(10) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR GAMBAR Gambar 2.1 Bagan Pengelompokan Cipher........................................................... 17 Gambar 2.2 Algoritma IDEA................................................................................. 20 Gambar 2.3 Proses Inisialisasi Kunci Enkripsi...................................................... 25 Gambar 2.4 Proses Membaca Data Asli.................................................................26 Gambar 2.5 Proses Operasi Pengacakan................................................................ 27 Gambar 2.6 Proses Menulis Data Terenkripsi........................................................28 Gambar 2.7 Proses Inisialisasi Kunci Dekripsi...................................................... 29 Gambar 2.8 Proses Membaca Data Terenkripsi.....................................................30 Gambar 2.9 Proses Menulis Data Asli................................................................... 31 Gambar 2.10 Proses Enkripsi dan Dekripsi Blowfish............................................ 34 Gambar 3.1 Enkripsi Sistem...................................................................................38 Gambar 3.2 Dekripsi Sistem.................................................................................. 38 Gambar 3.3 Halaman Awal....................................................................................41 Gambar 3.4 Halaman Menu................................................................................... 41 Gambar 4.1 Halaman Awal Sistem........................................................................ 60 Gambar 4.2 Halaman Enkripsi Dokumen.............................................................. 61 Gambar 4.3 Halaman Dekripsi Dokumen.............................................................. 62 Gambar 5.1 Open Private Key............................................................................... 64. xvi.

(11) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Gambar 5.2 Insert Public Key................................................................................65 Gambar 5.3 Insert Plain text...................................................................................67 Gambar 5.4 Grafik Waktu Enkripsi....................................................................... 72. xvii.

(12) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. DAFTAR TABEL. Tabel 2.1 Tabel Sub-blok Kunci Enkripsi dan Dekripsi........................................ 23 Tabel 2.2 Tabel perbandingan sub-blok kunci enkripsi dengan dekripsi............... 28 Tabel 3.1 Tabel Penjadwalan Kegiatan..................................................................40 Tabel 5.1 Tabel Hasil Perhitungan waktu enkripsi RSA........................................71 Tabel 5.2 Tabel Hasil Penggunaan Memori........................................................... 73 Tabel 5.3 Tabel Testing Blackbox......................................................................... 74. xviii.

(13) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB I PENDAHULUAN 1.1. Latar Belakang Masalah Pada proses pengiriman data terdapat beberapa aspek keamanan yang perlu. diperhatikan. yaitu. :. Confidentiality,. Authentication,. Integrity,. Nonrepudiation, Access Control, dan Availability [1]. Untuk menjaga kerahasiaan isi data dan integritas suatu data dibutuhkan proses penyandian atau pengkodean data sebelum dilakukan proses pengiriman data. Salah satu hal yang dapat dilakukan untuk meningkatkan keamanan data yaitu dengan menggunakan metode yang dikenal dengan istilah Kriptografi. Dalam kriptografi sendiri terdapat berbagai algoritma antara lain algoritma IDEA, DES, AES, Blowfish, 3DES, RSA, dan lain-lain. Saat ini, algoritma kriptografi yang sedang sangat popular dan kuat yaitu RSA. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamnkan dengan menggunakan kunci yang cukup panjang. Tetapi dalam eksekusi enkripsi dan dekripsi menggunakan RSA membutuhkan waktu yang lama dikarenakan sangat kompleks algoritmanya dan membutuhkan penggunaan memori yang cukup besar.. 1.

(14) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Banyak algoritma kriptografi yang telah ada. Tetapi kebanyakan jika algoritmanya sangat kompleks, pasti membutuhkan waktu dan penggunaan memori yang besar untuk melakukan proses enkripsi – dekripsi. Ini yang menjadi kendala jika ingin aman tapi tidak efisien. Tetapi jika efisien belum tentu aman. International Data Encryption Algorithym (IDEA) salah satu algoritma kriptografi yang handal saat ini [2]. IDEA adalah suatu metode yang hanya menggunakan 3 proses utama (Operasi XOR, Operasi Penjumlahan Modulo 216, Operasi Perkalian Modulo 216 + 1) dan 9 putaran. IDEA telah dianalisis untuk mengukur kemampuannya terhadap serangan kriptanalisis diferensial dan hasilnya yaitu IDEA kebal terhadap teknik tersebut. Pada IDEA tidak terdapat serangan kriptoanalisis linear dan tidak ditemukan adanya kelemahan aljabar [5]. IDEA sangat mudah diterapkan di berbagai aplikasi dan telah banyak digunakan untuk aplikasi perbankan dan juga industri. Namun dari kelemahan IDEA yang telah diuraikan dapat disimpulkan bahwa tingkat keamanan IDEA tidak sebanding dengan kemudahan pengimplementasian dan cepatnya waktu eksekusi. Perkembangan kriptografi hingga saat ini telah menghasilkan berbagai algoritma yang lebih tangguh dibandingkan IDEA dari berbagai aspek seperti aspek kecepatan dan penyimpanan memori. Berbagai. penelitian. telah. dilakukan. untuk. menguji. dan. membandingkan performa berbagai algoritma kriptografi, khususnya algorima 2.

(15) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. simetri baik dari segi kecepatan eksekusi ataupun penggunaan memori. Sebagian besar dari hasil penelitian [5][6][7][8][9] menyebutkan bahwa Blowfish memiliki waktu eksekusi enkripsi-dekripsi yang cepat dan memiliki performa yang baik. Dari hasil penelitian [6][7] dapat disimpulkan bahwa IDEA membutuhkan kapasitas memori yang lebih kecil dibandingkan Blowfish dan AES, dimana Blowfish membutuhkan memori yang lebih kecil dibandingkan AES. Dari penelitian-penelitian tersebut dapat terlihat bahwa kecepatan waktu eksekusi proses enkripsi-dekripsi suatu algoritma berbanding terbalik dengan penggunaan memorinya, dimana semakin singkat waktu yang diperlukan untuk eksekusi maka semakin besar pula penggunaan memorinya, dan juga sebaliknya. Dalam tugas akhir ini akan menggabungkan algoritma IDEA dan algoritma Blowfish sebagai algoritma hibrid dimana pemilihan algoritma dipilih berdasarkan kemudahan penerapan algoritma, kecepatan eksekusi serta penggunaan memori. Dengan penggabungan algoritma ini diharapkan nantinya tercipta algoritma yang mudah dipahami dan efektif untuk diterapkan di berbagai aplikasi enkripsi-dekripsi khususnya untuk dokumen yang tidak membutuhkan level enkripsi yang terlalu tinggi. Selain itu diharapkan algoritma yang dihasilkan memiliki tingkat keamanan yang baik namun tetap memiliki waktu eksekusi yang singkat dan penggunaan memori yang sedikit.. 3.

(16) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 1.2. Rumusan Masalah Berdasarkan latar belakang di atas maka rumusan masalahnya yaitu : 1. Seberapa efektifkah waktu yang diperlukan untuk melakukan proses enkripsi – dekripsi dengan menggunakan algoritma gabungan IDEA dengan Blowfish dibandingkan dengan menggunakan RSA? 2. Seberapa efisienkah penggunaan memori yang dibutuhkan selama melakukan proses enkripsi – dekripsi dengan menggunakan algoritma gabungan IDEA dengan Blowfish dibandingkan dengan menggunakan RSA?. 1.3. Batasan Masalah Adapun batasan aplikasi klasifikasi dokumen skripsi Teknik Informatika adalah sebagai berikut : 1. Dokumen yang dapat diproses adalah dokumen teks (*.txt, *.doc). 2. Aplikasi ini menggunakan algoritma IDEA sebagai penguat kunci dan algoritma Blowfish untuk penyandian dokumen.. 1.4. Tujuan Penelitian Adapun tujuan dari tugas akhir ini adalah menghasilkan aplikasi penyandian isi dokumen dengan menggabungkan antara algoritma IDEA dan algoritma Blowfish. 4.

(17) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. supaya menghasilkan algoritma yang tidak memerlukan proses eksekusi enkripsidekripsi yang lama dan membutuhkan penggunaan memori yang sedikit. 1.5. Metodologi Penelitian Metodologi penelitian yanng digunakan yaitu : 1.. Studi Lapangan Pada tahap ini penulis mengumpulkan informasi mengenai algoritma kriptografi dari berbagai sumber.. 2.. Pengembangan aplikasi dirancang menggunakan pendekatan metode yang terdiri dari beberapa tahapan, antara lain: a. Analisa dan Perancangan Sistem Pada tahap ini dilakukan analisis kebutuhan aplikasi yang akan dibangun yaitu meliputi fitur dan fungsi apa saja yang akan dibangun pada aplikasi. b. Implementasi Tahap ini merupakan tahap pembuatan kode atau coding dengan menggunakan bahasa pemrograman Java. Tahap coding dilakukan untuk memenuhi kebutuhan fungsi aplikasi yang telah dirancang sebelumnya. Dalam tahap ini juga dilakukan proses testing untuk mengetahui apakah masih terdapat kesalahan-kesalahan pada aplikasi agar selanjutnya kode yang dibuat dapat diperbaiki. c. Testing. 5.

(18) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Pada tahap ini dilakukan uji coba program untuk mengetahui apakah aplikasi sudah dapat berjalan sesuai dengan fungsi aplikasi yang dirancang sebelumnya. 1.6. Sistematika Penulisan BAB I. PENDAHULUAN Memberikan gambaran secara umum tentang isi skripsi yang meliputi: latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat, metode penelitian dan sistematika penulisan.. BAB II. LANDASAN TEORI Berisi konsep dasar tentang kriptografi, IDEA, dan Blowfish. BAB III ANALISA DAN PERANCANGAN Berisi gambaran umum sistem, metode pengumpulan data, usecase diagram, sekenario perancangan, analisa peracangan, perancangan basis data, perancangan tampilan masukan dan keluaran untuk pengguna. BAB IV IMPLEMENTASI Bab ini menjelaskan tentang implementasi ke dalam bentuk program berdasarkan desain yang telah dibuat, berupa tampilan antar muka dan cara kerja sistem.. 6.

(19) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB V. HASIL DAN PEMBAHASAN Pada bab ini akan dipaparkan mengenai hasil dan analisa dari hasil percobaan yang telah dilakukan.. BAB VI KESIMPULAN DAN SARAN Bab ini berisi semua kesimpulan yang didapatkan dari penelitian yang telah dilakukan. Kesimpulan menjawab rumusan masalah yang dituliskan pada bab pendahuluan secara ringkas dan jelas.. 7.

(20) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB II LANDASAN TEORI. II.1 Keamanan Data Keamanan dan kerahasiaan sebuah data atau informasi pada sebuah jaringan komputer saat ini menjadi sebuah isu yang sangat penting dan hal ini akan terus berkembang [11]. Sistem - sistem vital seperti sistem pertahanan, sistem perbankan dan sistem - sistem lain yang setingkat dengan itu, membutuhkan tingkat keamanan yang sangat tinggi supaya tidak semua orang dapat mengaksesnya. Hal ini lebih disebabkan karena adanya kemampuan di bidang jaringan komputer menggunakan konsep open systemnya sehingga siapapun, dimanapun dan kapanpun, punya kesempatan yang besar untuk mengakses kawasan - kawasan vital tersebut. Pada garis besarnya, masalah keamanan jaringan dapat dikelompokkan menjadi 4 bagian yang saling berhubungan yaitu kerahasiaan, keaslian, pengakuan dan kontrol integritas. Kerahasiaan harus dilakukan dengan cara menjauhkan informasi ataupun data dari orang - orang yang tidak berhak untuk mengaksesnya. Hal ini merupakan sesuatu yang harus diperhatikan ketika orang membahas masalah keamanan jaringan komputer. Keaslian berkaitan dengan siapa anda berbicara sebelum memberikan informasi yang sangat penting. Pengakuan itu sendiri berkaitan dengan tanda tangan digital ataupun sertifikat digital. Untuk menjaga keamanan dan kerahasiaan data atau informasi di dalam suatu jaringan komputer, maka diperlukannya beberapa teknik enkripsi dan dekripsi 8.

(21) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. sehingga membuat data atau informasi tidak dapat dibaca atau dimengerti oleh sembarangan orang kecuali untuk penerima yang berhak. Pengamanan data atau informasi tersebut selain bertujuan untuk meningkatkan keamanan data atau informasi, juga dapat berfungsi untuk : 1.. Melindungi data atau informasi agar tidak dapat dibaca oleh orang - orang yang tidak berhak. 2.. Mencegah agar orang - orang yang tidak berhak mengakses, menyisipkan ataupun menghapus data atau informasi tersebut. Salah satu hal yang penting dalam komunikasi menggunakan komputer untuk menjamin kerahasiaan data atau informasi adalah enkripsi. Enkripsi adalah sebuah proses yang mengubah sebuah kode yang dapat dimengerti dan dibaca semua orang menjadi sebuah kode yang tidak dapat dibaca dan dimengerti oleh semua orang. Enkripsi dapat diartikan sebagai kode atau chiper. Sebuahn chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data ( stream) bit dari sebuah pesan atau data menjadi cryptogram yang sulit dimengerti.. II.1.1. Representasi Data. Pada kenyataannya, komputer - komputer yang berbeda biasanya mempunyai teknik representasi data internal yang berbeda pula [11]. Sebagai contoh, semua mainframe IBM yang sebagian besar menggunakan sistem sandi EBCDIC, sedangkan secara umum komputer produk perusahaan - perusahaan yang lain memakai sistem sandi ASCII. 9.

(22) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Oleh karena itu, walaupun suatu data diterima tanpa adanya suatu kesalahan, tapi masih terdapat perbedaan representasi data, maka hasil yang didapat akan secara otomatis berbeda juga. Untuk mengatasi adanya masalah tersebut, maka sebelum data yang diterima diolah, data yang diterima seharusnya dikonversi terlebih dahulu sehingga data yang diterima sesuai dengan sistem sandi komputer penerima.. II.1.2. Aspek - Aspek Keamanan Komputer Saat ini masalah keamanan jaringan menjadi sangatlah penting. Maraknya kejahatan komputer dikarenakan tidak adanya perhatian mengenai keamanan jaringan. Berikut ini adalah aspek - aspek yang mendukung ataupun dapat mengatasi adanya kejahatan computer [1] :. a.. Authentication. : Ini dimaksudkan agar penerima informasi atau pesan. dapat benar - benar tahu secara pasti bahwa pesan atau informasi yang diterima datang dari sumber atau pihak yang benar - benar dikehendaki. Tidak ada orang ketiga yang turut campur. b.. Integrity. : Aspek ini memastikan bahwa informasi atau pesan yang. dikirimkan melalui jaringan komputer, dapat dipastikan kebenarannya dan tidak dimodifikasi oleh pihak atau orang yang tidak berhak. c.. Confidentiality. : Merupakan salah satu usaha yang digunakan untuk. menjaga kerahasiaan suatu informasi atau pesan dari orang yang tidak berhak mengakses. Kerahasiaan ini biasanya berhubungan dengan informasi yang diberikan kepada pihak lain. 10.

(23) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. d.. Availability : Aspek ini berhubungan dengan ketersediaan informasi atau pesan ketika sedang dibutuhkan. Sistem informasi yang diserang atau dibobol oleh orang - orang yang tidak bertanggungjawab dapat menghambat atau meniadakan akses ke sumber informasi.. e.. Access Control. : Aspek ini berhubungan dengan cara pengaturan akses. ke sumber - sumber informasi. Hal ini biasanya berhubungan dengan masalah seperti otentikasi dan privasi. Biasanya untuk mengatasi masalah privasi, user menggunakan metode seperti memakai user id dan password atau sistem yang sejenis itu. II.1.3 Masalah yang Terkait Dengan Keamanan Data Akhir - akhir ini sedang marak - maraknya kejahatan yang dilakukan dengan. menggunakan. komputer.. Banyak. pihak. -. pihak. yang. tidak. bertanggungjawab membongkar ataupun membobol informasi ataupun data yangsebenarnya tidak boleh diakses oleh orang atau pihak yang tidak berkepentingan semisal ada orang yang membobol rekening milik orang lain di bank dengan menggunakan kecanggihan komputer. Ini disebabkan kurangnya pemahaman mengenai pentingnya keamanan jaringan oleh banyak orang. Beriku ini merupakan berbagai kejahatan yang dilakukan dengan menggunakan komputer [1] : a.. Interruption : Ini merupakan salah satu ancaman terhadap availability atau ketersediannya sumber informasi atau data yang ada dalam sistem komputer. Informasi atau data yang ada di dalam sistem komputer dirusak ataupun dihapus 11.

(24) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. sehingga jika pemiliknya sedang membutuhkan informasi atau data tersebut akan mengalami kesulitan untuk mengaksesnya, bahkan mungkin informasi atau data tersebut telah hilang. b. Interception : Ini merupakan ancaman terhadap kerahasiaan (secrecy). Informasi atau data tersebut disadap sehingga orang yang tidak berhak dapat mengakseskomputer dimana informasi atau data tersebut disimpan. c. Modification : Merupakan salah satu ancaman yang membahayakan integritas . Orang yang tidak berhak mengakses, berhasil menyadap lalu lintas informasi yang sedang berlangsung dan kemudian mengambil lalu mengubahnya sesuai keinginan orang tersebut. d. Fabrication : Merupakan ancaman terhadap integritas. Hampir sama. dengan. ancaman modification. Orang yang tidak berhak mengakses berhasil meniru ataupun memalsukan informasi atau data sehingga orang yang menerima informasi tersebut akan menyangka bahwa informasi tersebut berasal dari orang yang dikehendaki oleh si penerima informasi ataupun data tersebut.. II.2 Kriptografi Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Kriptografi adalah ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure) [14]. Konsep kriptografi sendiri telah. 12.

(25) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni: 1.. Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihakpihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.. 2.. Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).. 3.. Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.. 4.. Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya). Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut), kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebutdapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya. Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi: 13.

(26) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 1.. Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).. 2.. Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasilenkripsi.. 3.. Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.. 4.. Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.. 5.. Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi. Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti. II.2.1 Algoritma Kriptografi Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan menjadi dua jenis yaitu :. 1. Symmetric Algorithms Algoritma simetris adalah algoritma yang menggunakan kunci yang sama dalam proses enkripsi maupun dekripsi. Algoritma ini juga sering disebut algoritma kuncirahasia, algoritma kunci-tunggal, atau algoritma satu-kunci. Algoritma simetris dapat dibagi menjadi dua kategori. Kategori pertama adalah algoritma simetris yang mengenkripsi plaintext ke dalam suatu bit tunggal dalam suatu waktu. Algoritma ini disebut algoritma stream atau stream ciphers. Kategori kedua adalah algoritma simetris yang mengenkripsi plaintext ke dalam suatu blok bit. Algoritma ini disebut 14.

(27) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. algoritma blok atau block ciphers. Contoh algoritma yang menggunakan kunci simetris yaitu IDEA, Blowfish, DES, dan lain – lain. 2. Assymmetric Algorithms Algoritma kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini juga sering disebut sebagai algoritma kunci umum / publik (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key), tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau yang sering disebut kuci pribadi (private key). Algoritma ini bekerja berdasarkan fungsi satu arah, dengan fungsi yang mudah untuk dikalkulasi akan tetapi sangat sulit untuk dibalik / invers atau reverse tanpa adanya informasi yang detil. Kunci public dapat didistribusikan secara luas, tetapi kunci privat disimpan di tempat yang tersembunyi dan akan diperoleh fungsi dari banyak ke satu. Semua orang dapat menggunakan kunci publik untuk melakukan operasi enkripsi akan tetapi hanya orang yang memegang kunci privat yang dapat melakukan invers terhadap data yang telah dienkripsi tersebut. Contoh algoritma yang menggunakan kunci asimetris yaitu RSA dan ECC. 3. Algoritma hybrid Mode enkripsi yang menggabungkan dua atau lebih sistem enkripsi. Algoritma ini umumnya. menggabungkan. kombinasi enkripsi asimetris. dan simetris untuk. mendapatkan kelebihan dari masing – masing algoritma kriptografi. Kelebihan ini. 15.

(28) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. adalah masing-masing didefinisikan sebagai kecepatan dan keamanan. Sebagai contoh yaitu PGP (Pretty Good Privacy). Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu : 1.. Algoritma block cipher Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan dengan fungsi enkripsi yang sama dan akan menghasilkan informasi rahasia dalam blok-blok yang. 2. Algoritma stream cipher Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter persatuan persatuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu.. II.2.2 Chiper Blok Sebuah cipher adalah sebuah algoritma untuk menampilkan enkripsi dan kebalikannya, dekripsi adalah serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah encipherment. Informasi yang asli disebut sebagai plaintext, dan bentuk yang sudah dienkripsi disebut sebagai chiphertext. Pesan chipertext berisi seluruh informasi dari pesan plaintext, tetapi tidak dalam format yang didapat dibaca manusia ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan dekripsi.. 16.

(29) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Cipher pada biasanya memiliki parameter dari sebagian dari informasi utama, disebut sebagai kunci. Prosedur enkripsi sangat bervariasi tergantung pada kunci yang akan mengubah rincian dari operasi algoritma. Tanpa menggunakan kunci, chiper tidak dapat digunakan untuk dienkirpsi ataupun didekripsi. Ada banyak sekali variasi pada tipe enkripsi yang berbeda. Algoritma yang digunakan pada awal sejarah kriptografi sudah sangat berbeda dengan metode modern, dan cipher modern dan diklasifikasikan berdasar pada bagaimana cipher tersebut beroperasi dan cipher tersebut menggunakan sebuah atau dua buah kunci.. Gambar 2.1 Bagan Pengelompokan Cipher Sejarah Cipher pena dan kertas pada waktu lampau sering disebut sebagai cipher klasik. Cipher klasik termasuk juga cipher pengganti dan cipher transposisi. Pada awal abad 20, mesin-mesin yang lebih mutakhir digunakan untuk kepentingan enkripsi, mesin rotor, merupakan skema awal yang lebih kompleks. Metode enkripsi dibagi menjadi Algorithm symmetric key dan Algorithm asymmetric key. Pada algoritma symmetric key (misalkan, DES dan Advanced. 17.

(30) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Encryption Standard / AES ), pengirim dan penerima harus memiliki kunci yang digunakan bersama dan dijaga kerahasiaannya. Pengirim menggunkan kunci ini untuk enkripsi dan penerima menggunakan kunci yang sama untuk dekripsi. Pada algoritma asymmetric key (misalkan RSA ), terdapat dua kunci terpisah, sebuah public key diterbitkan dan membolehkan siapapun pengirimnya untuk melakukan enkripsi, sedangkan sebuah private key dijaga kerahasiannya oleh penerima dan digunakan untuk melakukan dekripsi. Cipher symmetric key dapat dibedakan dalam dua tipe, tergantung pada bagaimana cipher tersebut bekerja pada blok simbol pada ukuran yang tetap (block cipher), atau pada aliran simbol terus-menerus ( stream cipher ). II.2.3 Enkripsi Di bidang kriptografi, enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti internet, E-commerce, jaringan telepon bergerak dan ATM pada bank.. Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan 18.

(31) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code. (MAC) atau Digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer. II.2.4 Dekripsi Dekripsi yaitu kebalikan dari proses enkripsi yaitu proses konversi data yang sudah dienkripsi ( ciphertext ) kembali menjadi data aslinya ( Original Plaintext ) sehingga dapat dibaca/ dimengerti kembali. II.2.5 Algoritma International Data Encryption Algorithym (IDEA) Algoritma penyandian IDEA (International Data Encryption Algorithm) muncul pertama kali pada tahun 1990 yang dikembangkan oleh ilmuwan Xueijia Lai dan James L Massey [15]. Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut : 1. Proses enkripsi : ek(M) = C 2. Proses dekripsi : dk(C) = M Dimana : E = adalah fungsi enkripsi. M = adalah pesan terbuka. D = adalah fungsi dekripsi. C = adalah pesan rahasia. K = adalah kunci enkripsi atau dekripsi IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka dengan lebar 64-bit. Dan menggunakan kunci yang sama , berukuran 128-bit, untuk proses enkripsi dan. 19.

(32) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. dekripsi. Pesan rahasia yang dihasilan oleh algoritma ini berupa blok pesan rahasia dengan lebar satu ukuran 64-bit Pesan dekripsi menggunakan blok penyandi yang sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari dari kunci enkripsi. Algoritma ini menggunakan operasi campuran dari tiga operasi aljabar yang berbeda, yaitu XOR, operasi penjumlahan modulo 216 dan operasi perkalian modulo ( 216 + 1 ) . Semua operasi ini digunakan dalam pengoperasian sub-blok 16-bit. Algoritma ini melakukan iterasi yang terdiri dari atas 8 putaran dan I transformasi keluaran pada putaran ke 9, dimana gambaran komputasi dan transformasi keluaran ditunjukkan oleh gambar sebagai berikut :. Gambar 2.2 Algoritma IDEA. 20.

(33) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Pada proses enkripsi, algoritma IDEA ini ditunjukkan oleh gambar di atas, terdapat tiga operasi yang berbeda untuk pasangan sub-blok 16-bit yang digunakan, sebagai berikut : - XOR dua sub-blok 16-bit bir per bit - Penjumlahan integer modulo (216 + 1) dua sub-blok 16-bit , dimana kedua sub-blok itu dianggap sebagai representasi biner dari integer biasa, Perkalian modulo (216 + 1) dua sub-blok 16-bit, dimana kedua sub-blok 16-bit itu dianggap sebagai representasi biner dari integer biasa kecuali sub-blok nol dianggap mewakili integer 216. Blok pesan terbuka dengan lebar 64-bit , X, dibagi menjadi 4 sub-blok 16-bit, X1, X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-blok 16-bit itu ditransformasikan menjadi sub-blok 16-bit, Y2, Y2, Y3, Y4, sebagai pesan rahasia 64-bit Y = (Y1, Y2, Y3, Y4) yang berada dibawah kendali 52 sub_blok kunci 16-bit yang dibentuk dari dari blok kunci 128 bit. Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukan untuk putaran pertama dari algoritma IDEA. Dalam setiap putaran dilakukan operasi XOR, penjumlahan, perkalian antara dua sub-blok 16-bit dan diikuti pertukaran antara subblok 16-bit putaran kedua dan ketiga. Keluaran putaran sebelumnya menjadi masukan putaran berikutnya. Setelah putaran kedelapan dilakukan transformasi keluara yang dikendalikan oleh 4 sub-blok kunci 16-bit. Pada setiap putaran dilakukan operasi-operasi sebagai berikut : 1) Perkalian X1 dengan sub-kunci pertama. 21.

(34) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2) Penjumlahan X2 dengan sub-kunci kedua 3) Pejumlahan X3 dengan sub kunciketiga 4) Perkalian X4 dengan sub kuncikeempat 5) Operasi XOR hasil langkah 1) dan 3) 6) Operasi XOR hasil angkah 2) dan 4) 7) Perkalian hasil langkah 5) dengan sub-kunci kelima 8) Penjumlahan hasil langkah 6) dengan langkah 7) 9) Perkalian hasil langkah 8) dengan sub-kunci keenam 10)Penjumlahan hasil langah 7) dengan 9) 11) Operasi XOR hasil langkah 1) dan 9). 12)Operasi XOR hasil langkah 3) dan 9) 13)Operasi XOR hasil langkah 2) dan 10) 14)Operasi XOR hasil langkah 4) dan 10) Keluaran setiap putaran adalah 4 sub-blok yang dihasilkan pada langkah 11), 12), 13), dan 14) dan menjadi masukan putaran berikutnya. Setelah putaran kedelapan terdapat transformasi keluaran, yaitu : 1) Perkalian X1 dengan sub-kuncipertama 2) Penjumlahan X2 dengan sub-kuciketiga 3) Penjumlahan X3 dengan sub-kunci kedua 4) Perkalian X4 dengan sub-kunci keempat. 22.

(35) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Terahir, keempat sub-blok 16-bit 16-bit yang merupakan hasil operasi 1), 2), 3), dan 4) digabung kembali menjadi blok pesan rahasia 64-bit. Selanjutnya, proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi tatapi 52 buah sub-blok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah sub-blok kunci enkripsi. Tabel sub-blok kunci dekripsi yang diturunkan dari sub-blok kunci enkripsi dapat dilihat pada tabel berikut :. Tabel 2.1 Sub-blok Kunci Enkripsi dan Dekripsi Keterangan : • Z-1 merupakan invers perkalian modulo 216+1 dari Z,dimana Z Z-1 = 1 • -Z merupakan invers penjumlahan modulo 216 dri Z, dimana Z Z-1 =0. 23.

(36) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Sebanyak 52 sub-blok kunci 16-bit untuk proses enkripsi diperolah dari sebuah kunci 128-bit pilihan pemakai. Blok kunci 128-bit dipartisi menjadi 8 subblok kunci 16-bit yang lansung dipakai sebagai 8 sub-blok kunci pertama. Kemudian blok kunci 128-bit dirotasi dari kiri 25 poisi untk dipartisi lagi menjadi 8 sub-blok kunci 16-bit berikutnya. Proses rotasi dan pertisi itu diulangi lagi smpai diperoleh 52 sub-blok kunci 16-bit, dengan urutan sebagai berikut : Z11 Z21 Z31 Z41 Z51 Z61. Z16 Z26 Z36 Z46 Z56 Z66. Z12 Z22 Z32 Z42 Z52 Z62. Z17 Z27 Z37 Z47 Z57 Z67. Z13 Z23 Z33 Z43 Z53 Z63. Z18 Z28 Z38 Z48 Z58 Z68. Z14 Z24 Z34 Z44 Z54 Z64. Z19 Z29 Z39 Z49. Z15 Z25 Z35 Z45 Z55 Z65 II.2.5.1 Proses Enkripsi IDEA Dalam proses enkripsi IDEA, terdapat beberapa proses yang dilakukan. Proses – proses yang dilakukan dalam enkripsi IDEA yaitu sebagai berikut : 1.. Inisialisasi Kunci Enkripsi Algoritma ini awalnya menggunakan blok kunci 128 bit. Blok tersebut. kemudian dibagi menjadi delapan sub-blok 16 bit. Delapan sub-blok kunci tersebut diperoleh dari kunci masukan yang berupa karakter. Karakter ini terlebih dahulu harus dijadikan bilangan integer sesuai nilainya dalam sistem pengkodean ASCII (The American Standard Code for International Interchange). Tiap satu karakter mempunyai besar 8 bit atau 1 byte. Padahal nilai dari kunci ini akan dimasukkan dalam perhitungan dengan blok data 24.

(37) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. yang besarnya 16 bit atau 2 byte, sehingga perlu dilakukan penggeseran bit ke kiri sebanyak 8 bit supaya menjadi blok kunci 16 bit. Cara ini hanya berlaku untuk karakter pertama pada kunci, untuk karakter yang lain caranya dengan menggeser karakter ke-(n) ke kiri sebanyak 8 bit dan me-OR-kannya dengan kunci ke-(n-1) yang digeser ke kanan sebanyak 8 bit. Total sub-blok kunci yang dibutuhkan dalam algoritma ini adalah 52. Enam sub-blok kunci digunakan dalam delapan putaran operasi aljabar dan empat sub-blok kunci lainnya akan digunakan pada akhir proses. Blok-blok kunci yang digunakan tidak sama dengan blok kunci awal. Blok kunci awal akan dirotasikan sebanyak 25 bit ke kiri. Start. Masukkan kunci (k) Ya. k > 8 karakter ?. k1 = z1, k2 = z2, … , k8 = z8 (z = sub blok). Tidak. k<8?. Tidak. Tidak. Rotasikan blok kunci 25 bit ke kiri. Ya. z sudah digunakan semua ?. Ya. Tidak. z = 52?. Ya. Operasi. Gambar 2.3 Proses Inisialisasi Kunci Enkripsi. 25. kn = 0; zn = 0.

(38) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 2.. Membaca Data Asli Algoritma ini memerlukan 64 bit blok data dalam pengoperasiannya.. Blok data ini dibagi menjadi empat sub-blok data 16 bit yang akan menjadi masukan untuk putaran pertama pada operasi yang berlaku dalam algoritma ini. Tiap sub-blok data diperoleh dengan cara membaca data sebanyak 1 byte dan menggesernya 8 bit ke kiri. Kemudian 1 byte data berikutnya dibaca dan di-OR-kan dengan sub-blok data sebelumnya. Sehingga dalam satu sub-blok data berisi satu atau dua karakter. Start. J=0. Baca data 1 byte. Geser 8 bit ke kiri. Tidak. Akhir dari data masukan?. Ya. Set nilai sub-blok data lain = 0. Baca data 1 byte. Gabungkan dengan data 1 byte sebelumnya. J++. Tidak. J < 4?. Ya. Operasi. Gambar 2.4 Proses Membaca Data Asli 3.. Operasi Pengacakan Operasi ini dapat dilakukan setelah sub-blok kunci dan sub-blok data. diketahui. Ada totalnya delapan putaran. Dalam tiap putaran, empat sub-blok. 26.

(39) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. data akan di-XOR-kan, ditambah, dan dikali dengan yang lainnya dan dengan enam buah sub-blok kunci. Jika sub-blok kunci adalah Ki dan subblok data adalah Xn, maka tiap putaran akan melewati operasi-operasi aljabar yang sama seperti di bawah ini: Start. Sub blok kunci = Ki sub-blok data = Xn. X1 X2 X3 X4 t1 t2 t1 t2 t2 t1 X1 X3 X2 X4. = = = = = = = = = = = = = =. X1 X2 X3 X4 X1 X2 t1 t2 t2 t1 X1 X3 X2 X4. * K1 + K2 + K3 * K4 XOR X3 XOR X4 * K5 + t1 * K6 + t2 XOR t2 XOR t2 XOR t1 XOR t1. X1 X2 X3 X4. = X1 * K1 = X2 + K2 = X3 + K3 = X4 + K4. Selesai. Gambar 2.5 Proses Operasi Pengacakan 4.. Tulis Data Terenkripsi Hasil dari operasi pengacakan data adalah empat sub-blok data. terenkripsi. Keempat sub-blok data ini akan ditulis per byte. Cara penulisannya adalah dengan menggeser ke kanan nilai sub-blok data sebanyak 8 bit untuk menghasilkan nilai byte pertama dari sub-blok data, dan me-AND-kan nilai sub-blok data tadi dengan 255 untuk menghasilkan nilai byte kedua dari sub-blok data ini.. 27.

(40) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Operasi. J=0. J < 4?. Ya. Geser 8 bit ke kanan sub-blok data terenkripsi untuk karakter pertama dari sub-blok data ini. Tidak AND-kan sub-blok data tadi dengan 255 untuk karakterkedua dari sub-blok data ini. Akhir dari data masukan? Ya Tidak Baca data asli. End. J++. Gambar 2.6 Proses Menulis Data Terenkripsi Sedangkan untuk proses dekripsi IDEA juga memerlukan beberapa proses yang harus dilewati yaitu : 1.. Inisialisasi Kunci Dekripsi Inisialisasi kunci pada proses dekripsi dilakukan dengan cara mencari terlebih. dahulu 52 sub-blok kunci yang dipakai pada proses enkripsi, kemudian 52 sub-blok kunci tersebut diubah penjadwalannya seperti yang terlihat pada Tabel 2.1. PUTARAN 1 2 3 4 5 6 7 8. SUB-BLOK KUNCI ENKRIPSI Z11 Z12 Z13 Z14 Z15 Z16 Z21 Z22 Z23 Z24 Z25 Z26 Z31 Z32 Z33 Z34 Z35 Z36 Z41 Z42 Z43 Z44 Z45 Z46 Z51 Z52 Z53 Z54 Z55 Z56 Z61 Z62 Z63 Z64 Z65 Z66 Z71 Z72 Z73 Z74 Z75 Z76 Z81 Z82 Z83 Z84 Z85 Z86. 28. SUB-BLOK KUNCI DEKRIPSI 1/Z91 -Z92 -Z93 1/Z94 Z85 Z86 1/Z81 -Z82 -Z83 1/Z84 Z75 Z76 1/Z71 -Z72 -Z73 1/Z74 Z65 Z66 1/Z61 -Z62 -Z63 1/Z64 Z55 Z56 1/Z51 -Z52 -Z53 1/Z54 Z45 Z46 1/Z41 -Z42 -Z43 1/Z44 Z35 Z36 1/Z31 -Z32 -Z33 1/Z34 Z25 Z26 1/Z21 -Z22 -Z23 1/Z24 Z15 Z16.

(41) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Output. Z91 Z92 Z93 Z94. 1/Z11 -Z12 -Z13 1/Z14. Tabel 2.2 Tabel perbandingan sub-blok kunci enkripsi dengan dekripsi. 29.

(42) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Start. Masukkan kunci (k) Ya. k > 8 karakter ?. k1 = z1, k2 = z2, … , k8 = z8 (z = sub blok). Tidak. k<8?. Tidak. Tidak. Rotasikan blok kunci 25 bit ke kiri. Ya. z sudah digunakan semua ?. Tidak. 30. z=. Ya. kn = 0; zn = 0.

(43) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 52?. Ya. 31.

(44) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Operasi. Ganti key schedule. Gambar 2.7 Proses Inisialisasi Kunci Dekripsi 2.. Membaca Data Terenkripsi Proses pembacaan data terenkripsi sama dengan proses pembacaan data asli.. Yang membedakannya adalah proses pembacaan data terenkripsi akan selalu dilakukan tepat 8 byte sehingga empat sub-blok data akan selalu bernilai lebih dari 0.. 32.

(45) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Start. J=0. Baca data 1 byte. Geser 8 bit ke kiri. Tidak. Akhir dari data masukan?. Baca data 1 byte. Gabungkan dengan data 1 byte sebelumnya Ya. J++. Tidak. J < 4?. Ya. Operasi. Gambar 2.8 Proses Membaca Data Terenkripsi 3.. Operasi Pengembalian Data Operasi pengembalian data ini sama dengan operasi pengacakan data sewaktu. melakukan enkripsi. 4.. Menulis Data Asli Proses penulisan data asli sama dengan proses penulisan data terenkripsi. Yang. membedakannya adalah proses pembacaan data asli akan dilakukan sebanyak ukuran 33.

(46) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. data asli.. 34.

(47) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Operasi. J=0. J < 4?. Ukuran data masukan = 0?. Ya. Ya. Tidak Tidak. Geser 8 bit ke kanan sub-blok data asli untuk karakter pertama dari sub-blok data ini. Ukuran data masukan - 1. Akhir dari data masukan?. AND-kan sub-blok data tadi dengan 255 untuk karakter kedua dari sub-blok data ini. Tidak. Ukuran data masukan = 0?. Ya Tidak Ya. Baca data terenkripsi. End. Ukuran data masukan - 1. J++. Gambar 2.9 Proses Menulis Data Asli. II.2.6 Algoritma Blowfish Blowfish merupakan sebuah algoritma kunci simetri blok kode yang dirancang pada tahun 1993 oleh Bruce Schneier untuk mengganti DES [16]. Saat itu banyak sekali rancangan algoritma yang ditawarkan, namun hampir semua terhalang oleh paten atau kerahasiaan pemerintah Amerika. Schneier menyatakan bahwa Blowfish bebas paten dan akan diletakkan pada domain publik. Dengan pernyataan Schneier tersebut, Blowfish telah mendapatkan tempat di dunia kriptografi, khususnya bagi. 35.

(48) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. masyarakat yang membutuhkan algoritma kriptografi yang cepat, kuat, dan tidak terhalang lisensi. Blowfish adalah algoritma kriptografi kunci simetri blok kode dengan panjang blok tetap 64 bit. Blowfish menerapkan teknik kunci berukuran sembarang. Ukuran kunci yang dapat diterima oleh Blowfish adalah antara lain 32 bit hingga 448 bit, dengan ukuran default sebesar 128 bit dan memanfaatkan teknik pemanipulasian bit dan teknik pemutaran ulang dan pergiliran kunci yang dilakukan sebanyak 16 kali. Algoritma utama terbagi menjadi dua subalgoritma utama, yaitu bagian ekspansi kunci dan bagian enkripsi – dekripsi data. Pengekspansian kunci dilakukan pada saat awal dengan masukan sebuah kunci dengan panjang 32 bit hinga 448 bit, dan keluaran adalah sebuah larik upa – kunci dengan total 4168 byte. Bagian enkripsi – dekripsi data terjadi dengan memanfaatkan perulangan 16 kali terhadap jaringan Feistel. Setiap perulangan terdiri dari permutasi dengan masukan kunci dan substitusi data. Semua operasi dilakukan dengan memanfaatkan operator XOR dan operator penambahan. Penambahan dilakukan terhadap empat larik lookup yang dilakukan setiap putarannya. Kunci Blowfish dibangkitkan menggunakan upa – kunci berukuran besar. Kunci tersebut harus dikomputasikan pada saat awal, sebelum pengkomputasian enkripsi dan dekripsi data. Langkah – langkahnya adalah sebagai berikut :. 36.

(49) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 1. Terdapat kotak permutasi (P-box) yang terdiri dari 18 buah 32 bit upa – kunci : P1, P2, P3, … P18. P-box ini telah ditetapkan sejak awal, 4 buah P-box awal sebagai berikut : P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344 2. XOR-kan P1 dengan 32 bit awal kunci, XOR-kan P2 dengan 32 bit berikutnya dari kunci, dan teruskan hingga seluruh panjang kunci telah ter-XOR-kan (kemungkinan sampai P14, 14x32 = 448, panjang maksimal kunci). 3. Terdapat 64 bit dengan isi kosong. Bit – bit tersebut dimasukkan ke langkah 2. 4. Gantikan P1 dan P2 dengan keluaran dari langkah 3. 5. Enkripsikan kembali keluaran langkah 3 dengan langkah 2, namun kali ini dengan upa-kunci yang berbeda (sebab langkah 2 menghasilkan upa-kunci baru). 6. Gantikan P3 dan P4 dengan keluaran dari langkah 5. 7. Lakukan seterusnya hingga seluruh P-box teracak sempurna. 8. Total keseluruhan terdapat 521 iterasi untuk menghasilkan seluruh upa-kunci yang dibutuhkan.. 37.

(50) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Mulai. Inisialisasi P array. Inisialisasi Data. Inisialisasi Data. Mulai Masukkan data Plaintext (x). Masukkan Ciphertext (x). Inisialisasi P array Masukkan data kunci (k). Masukkan kunci (k). xL = x (1 : 32) xR = x (33 : 64) i = 1. xL = x (1 : 32) xR = x (33 : 64) i = 16. 38.

(51) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xL = xL XOR Pi xR = F(xL) XOR xR. Tukar xL dengan xR i = i + 1. tidak. i = 16. xL = xL XOR Pi xR = F(xL) XOR xR. 39. Tukar xL dengan xR i = i - 1. Tidak. i = 3.

(52) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Ya. Ya. Tukar xL dengan xR. Tukar xL dengan xR. xL = xL XOR P18 xR = xL XOR P17. xL = xL XOR P2 xR = xL XOR P1. Ciphertext = xL xR. Ciphertext = xL xR. Selesai. Selesai. Gambar 2.10 Proses Enkripsi dan Dekripsi Blowfish II.2.7 Penelitian Algoritma Simetri Pada penelitian [6] membandingkan proses enkripsi-dekripsi algoritma IDEA dan Blowfish pada semua jenis file seperti .txt, .doc, .mp3, .bmp, .3gp, .exe, .html, .zip, dan lain-lain. Penelitian ini dilakukan dengan menggunakan bahasa pemrograman Java, OS Windows XP, dan paket kriptografi dari provider cryptix.. 40.

(53) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Dari hasil penelitian terlihat bahwa proses enkripsi-dekripsi yang dilakukan algoritma Blowfish lebih cepat dibanding dengan algoritma IDEA untuk ukuran file yang besar, sedangkan untuk file dengan ukuran yang kecil, kecepatan proses algoritma Blowfish hampir sama dengan algoritma IDEA. Sedangkan dalam pemakaian memori, algoritma Blowfish menggunakan memori dengan kapasitas yang lebih besar dibanding dengan IDEA walaupun perbedaannya tidak terlalu jauh. Penelitian [7] membandingkan algoritma AES dan Blowfish pada platform 32 bit ARM dan implementasinya menggunakan librari LPC 2148. Hasil penelitian mengatakan bahwa algoritma Blowfish membutuhkan waktu eksekusi yang sedikit dibanding AES. Algoritma AES lebih kompleks dibanding Blowfish dimana hal ini baik untuk keamanan namun AES membutuhkan penggunaan memori yang lebih besar dibanding Blowfish. Blowfish sangat baik diterapkan pada aplikasi yang menerapkan sistem yang kecil seperti telepon genggam, dan smart card. Penelitian [9] menguji performa algoritma DES, AES, dan Blowfish menggunakan bahasa pemrograman java pada platform AMD Sempron Processor dengan RAM 2GB, dan implementasinya menggunakan 4 mode enkripsi-deskripsi yaitu mode ECB, CBC, OFB, dan CFB. Hasil penelitian menyimpulkan bahwa Blowfish memiliki performa yang baik dibandingkan DES dan AES. AES menunjukkan performa yang buruk karena membutuhkan proses yang lebih lama. Sejauh ini belum ditemukan security weak points pada algoritma Blowfish. 41.

(54) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. sehingga menjadi salah satu kandidat yang baik diterapkan untuk algoritma enkripsi-dekripsi. Penelitian [5] menguji performa algoritma RC6, Blowfish, DES, IDEA, CAST-128 Block Ciphers menggunakan bahasa pemrograman JAVA dan library IAIK-JCE pada Intel(R) Core i3 32 bit dan OS Windows 7 Ultimate. Pengujian dilakukan mengeksekusi file dengan berbagai ukuran pada tiap algoritma Hasil penelitian menyebutkan bahwa algoritma RC6 memiliki waktu eksekusi yang lebih cepat dibandingkan algoritma lainnya. Algoritma RC6 lebih cepat dibanding Blowfish, dimana Blowfish lebih cepat dibanding CAST-128, dimana CAST-128 lebih cepat dibanding IDEA dan DES. Algoritma Blowfish cocok untuk aplikasi yang key-nya tidak sering berubah. Algoritma RC6 sangat menguntungkan jika digunakan pada aplikasi yang membutuhkan tingkat enkripsi yang tinggi. Penelitian [8] menguji performa algoritma Blowfish dan AES berdasarkan waktu eksekusi proses enkripsi-dekripsi pada jenis file audio. Hasil pengujian menyebutkan bahwa algoritma Blowfish membutuhkan waktu eksekusi enkripsi-dekripsi yang lebih cepat dibandingkan AES. Dari hasil pengujian tersebut disimpulkan bahwa algoritma Blowfish memiliki performa yang baik dibandingkan AES.. 42.

(55) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB III ANALISIS DAN PERANCANGAN SISTEM. 3.1 Analisa Sistem III.1.1 Analisa Kebutuhan Sistem Dalam sistem enkripsi – dekripsi dokumen dengan penggabungan metode IDEA dan Blowfish fasilitas yang dibutuhkan oleh user untuk dapat berinteraksi dengan sistem adalah : a. Input Box Kunci. : untuk memasukkan kata kunci untuk melakukan enkripsi maupun dekripsi.. b. Tombol Browse Input. : tombol untuk membuka kotak dialog open untuk mencari data.. c. Tombol Browse Output. : tombol untuk membuka kotak dialog open dimana file hasil enkripsi akan disimpan.. d. Input Box plaintext. : untuk memasukkan kata kunci untuk melakukan enkripsi maupun dekripsi.. e. Tombol enkripsi / dekripsi. : untuk memilih enkripsi atau dekripsi data. 43.

(56) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. III.1.2 Diagram Alir 1. Diagram Alir Enkripsi Sistem Mulai. Masukkan kunci. Masukkan plaintext. Proses Enkripsi IDEA. Ciphertext kunci. Masukkan file asli. Proses Enkripsi Blowfish. Ciphertext. Selesai. Gambar 3.1 Enkripsi Sitem 2. Diagram Alir Dekripsi Sistem. 44.

(57) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Mulai. Masukkan kunci. Masukkan plaintext. Proses Enkripsi IDEA. Ciphertext kunci. Masukkan file terenkripsi. Proses Dekripsi Blowfish. Plaintext. Selesai. Gambar 3.2 Dekripsi Sistem III.1.3 Analisa Teknologi Perangkat keras ( hardware ) dan perangkat lunak ( software ) yang akan dipakai dalam pembuatan system ini adalah : a. Hardware 1. Prosessor. : Pentium Dual – Core 1,86 GHz. 2. Harddisk. : 120 GB. 3. Memory. : 2560 MB. b. Software 1. Bahasa Pemrograman Sistem Operasi. : Java. : Microsoft Windows® 7 Ultimate SP 2. 45.

(58) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. III.2. Perancangan Sistem. III.2.1 Perancangan Antarmuka Pengguna Dalam. pembuatan. perangkat. lunak. ini. juga. membutuhkan. penjadwalan untuk mengatur kegiatan supaya lebih terorganisir. No. Hari / Tanggal. Kegiatan. 1. Jumat, 3 Oktober 2014. Perancangan interface awal. 2. Senin, 6 Oktober 2014. Pembuatan sistem tahap awal yaitu membuat tampilan sistem. 3. 4. Kamis, 23 Oktober. Pembuatan sistem tahap kedua yaitu inti. 2014. dari sistem enkripsi dekripsi. Kamis, 11 Desember. Pengubahan tampilan pada sistem. 2014 5. Senin, 12 Januari 2015. Pembuatan sistem tahap kedua yaitu penambahan penghitung waktu enkripsi dekripsi serta pengujian sistem. Tabel 3.1 Penjadwalan Kegiatan a. Perancangan Tampilan Utama. 46.

(59) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. Selamat Datang. 12 Desember 2013. APLIKASI ENKRIPSI DAN DEKRIPSI FILE MENGGUNAKAN IDEA DAN BLOWFISH Masuk. Copyright 2014 by Sifian. Gambar 3.3 Halaman Awal. b. Perancangan Tampilan Pilihan Menu DATA FILE Kunci. *maksimal 8 karakter. Plaintext Ulang Plain Text File. Browse. Folder Tujuan. Browse. ENKRIPSI. DEKRIPSI. PROSES OUTPUT. << DATA FILE YANG TELAH DIMASUKKAN>>. <<OUTPUT PROGRESS BAR>>. Gambar 3.4 Halaman Menu. 47.

(60) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. BAB IV IMPLEMENTASI. Pada bagian ini penulis membahas tentang implementasi pada sistem Kunci Algoritma Enkripsi Blowfish Menggunakan Algoritma Simetris (IDEA).. 4.1. Spesifikasi Software Dan Hardware yang Dibutuhkan 4.1.1. Spesifikasi Software Spesifikasi software yang digunakan dalam Kunci Algoritma Enkripsi Blowfish Menggunakan Algoritma Simetris (IDEA) adalah sebagai berikut : 1.. Sistem operasi : Windows 7 Ultimate 32 bit. 2.. Netbeans IDE 6.8. 3.. Java JDK 1.6.0. 4.1.2. Spesifikasi Hardware Spesifikasi hardware yang digunakan dalam Kunci Algoritma Enkripsi Blowfish Menggunakan Algoritma Simetris (IDEA) adalah sebagai berikut : 1.. Prosesor : Intel(R) Core (TM) i3-330M CPU @2.13 GHz. 2.. Memori RAM : 2 GB. 3.. Harddisk : 500 GB. 4.2. Implementasi 4.2.1. Implementasi Algoritma IDEA. 48.

(61) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. public class IDEA extends Utils implements BlockCipher { private static final int KEY_SIZE = 16; private static final int BLOCK_SIZE = 8; public IDEA() { } protected byte[] makeKey(String keyStr) { byte[] key; if (KEY_SIZE == 0) { key = new byte[keyStr.length()]; } else { key = new byte[KEY_SIZE]; } int i, j; for (j = 0; j < key.length; ++j) { key[j] = 0; } for (i = 0, j = 0; i < keyStr.length(); ++i, j = (j + 1) % key.length) { key[j] ^= (byte) keyStr.charAt(i); } return key; } private final String charToAdd = " "; @Override public String decryptData(String text) { String decrypted_string = ""; try { byte[] encrypted_text_in_byte = Base64.decode(text); int encrypted_text_length = encrypted_text_in_byte.length; byte[] plain_text_in_byte = new byte[encrypted_text_length]; for (int i = 0; i < plain_text_in_byte.length; i += BLOCK_SIZE) {. 49.

(62) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. decrypt(encrypted_text_in_byte, i, plain_text_in_byte, i); } decrypted_string = new String(plain_text_in_byte, "UTF8"); } catch (UnsupportedEncodingException ex) { Logger.getLogger(IDEA.class.getName()).log(Level.SEVERE, null, ex); } return decrypted_string; } @Override public String encryptData(String text) { // make sure the plain text that going to be processed are fit for BLOCK_SIZE int plain_text_length = text.length(); if (plain_text_length % BLOCK_SIZE != 0) { int need_to_add = BLOCK_SIZE - (plain_text_length % BLOCK_SIZE); for (int i = 0; i < need_to_add; i++) { text += charToAdd; } } plain_text_length = text.length(); String encrypted_string = ""; try { byte[] plain_in_byte = text.getBytes("UTF-8"); byte[] cipher_in_byte = new byte[plain_text_length]; for (int i = 0; i < cipher_in_byte.length; i += BLOCK_SIZE) { encrypt(plain_in_byte, i, cipher_in_byte, i); } encrypted_string = Base64.encode(cipher_in_byte); } catch (UnsupportedEncodingException ex) { Logger.getLogger(IDEA.class.getName()).log(Level.SEVERE, null, ex); }. 50.

(63) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. return encrypted_string; } private void setKey(String keyStr) { setKey(makeKey(keyStr)); } private int[] encryptKeys = new int[52]; private int[] decryptKeys = new int[52]; private void encrypt(byte[] clearText, int clearOff, byte[] cipherText, int cipherOff) { squashBytesToShorts(clearText, clearOff, tempShorts, 0, 4); idea(tempShorts, tempShorts, encryptKeys); spreadShortsToBytes(tempShorts, 0, cipherText, cipherOff, 4); } private void decrypt(byte[] cipherText, int cipherOff, byte[] clearText, int clearOff) { squashBytesToShorts(cipherText, cipherOff, tempShorts, 0, 4); idea(tempShorts, tempShorts, decryptKeys); spreadShortsToBytes(tempShorts, 0, clearText, clearOff, 4); } private void setKey(byte[] key) { int k1, k2, j; int t1, t2, t3; for (k1 = 0; k1 < 8; ++k1) { encryptKeys[k1] = ((key[2 * k1] & 0xff) << 8) | (key[2 * k1 + 1] & 0xff); } for (; k1 < 52; ++k1) { encryptKeys[k1] = ((encryptKeys[k1 - 8] << 9) | (encryptKeys[k1 - 7] >>> 7)) & 0xffff; } k1 = 0; k2 = 51; t1 = mulinv(encryptKeys[k1++]); t2 = -encryptKeys[k1++]; t3 = -encryptKeys[k1++]; decryptKeys[k2--] = mulinv(encryptKeys[k1++]); decryptKeys[k2--] = t3; decryptKeys[k2--] = t2;. 51.

(64) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. decryptKeys[k2--] = t1; for (j = 1; j < 8; ++j) { t1 = encryptKeys[k1++]; decryptKeys[k2--] = encryptKeys[k1++]; decryptKeys[k2--] = t1; t1 = mulinv(encryptKeys[k1++]); t2 = -encryptKeys[k1++]; t3 = -encryptKeys[k1++]; decryptKeys[k2--] = mulinv(encryptKeys[k1++]); decryptKeys[k2--] = t2; decryptKeys[k2--] = t3; decryptKeys[k2--] = t1; } t1 = encryptKeys[k1++]; decryptKeys[k2--] = encryptKeys[k1++]; decryptKeys[k2--] = t1; t1 = mulinv(encryptKeys[k1++]); t2 = -encryptKeys[k1++]; t3 = -encryptKeys[k1++]; decryptKeys[k2--] = mulinv(encryptKeys[k1++]); decryptKeys[k2--] = t3; decryptKeys[k2--] = t2; decryptKeys[k2--] = t1; } private void idea(int[] inShorts, int[] outShorts, int[] keys) { int x1, x2, x3, x4, k, t1, t2; x1 = inShorts[0]; x2 = inShorts[1]; x3 = inShorts[2]; x4 = inShorts[3]; k = 0; for (int round = 0; round < 8; ++round) { x1 = multiplicationModulo65537(x1 & 0xffff, keys[k++]); x2 = x2 + keys[k++]; x3 = x3 + keys[k++]; x4 = multiplicationModulo65537(x4 & 0xffff, keys[k++]); t2 = x1 ^ x3; t2 = multiplicationModulo65537(t2 & 0xffff, keys[k++]); t1 = t2 + (x2 ^ x4); t1 = multiplicationModulo65537(t1 & 0xffff, keys[k++]);. 52.

(65) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. t2 = t1 + t2; x1 ^= t1; x4 ^= t2; t2 ^= x2; x2 = x3 ^ t1; x3 = t2; } outShorts[0] = multiplicationModulo65537(x1 & 0xffff, keys[k++]) & 0xffff; outShorts[1] = (x3 + keys[k++]) & 0xffff; outShorts[2] = (x2 + keys[k++]) & 0xffff; outShorts[3] = multiplicationModulo65537(x4 & 0xffff, keys[k++]) & 0xffff; } private static int multiplicationModulo65537(int a, int b) { int ab = a * b; if (ab != 0) { int lo = ab & 0xffff; int hi = ab >>> 16; return ((lo - hi) + (lo < hi ? 1 : 0)) & 0xffff; } if (a != 0) { return (1 - a) & 0xffff; } return (1 - b) & 0xffff; } private static int mulinv(int x) { int t0, t1, q, y; if (x <= 1) { return x; // 0 and 1 are self-inverse } t0 = 1; t1 = 0x10001 / x; // since x >= 2, this fits into 16 bits y = (0x10001 % x) & 0xffff; for (;;) { if (y == 1) { return (1 - t1) & 0xffff; } q = x / y; x = x % y;. 53.

(66) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. t0 = (t0 + q * t1) & 0xffff; if (x == 1) { return t0; } q = y / x; y = y % x; t1 = (t1 + q * t0) & 0xffff; } } @Override public void init(String key) { setKey(key); } @Override public int getBlockSize() { return BLOCK_SIZE; } } 4.2.2. Implementasi Algoritma Blowfish public class BlowFish extends Utils implements BlockCipher { private final static int[] KP = {0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, 0x9216D5D9, 0x8979FB1B}, KS0 = {0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,. 54.

(67) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, 0x2464369B,. 55.

(68) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 0xF009B91E, 0x5563911D, 0x59DFA6AA, 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A}, KS1 = {0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,. 56.

(69) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI. 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7}, KS2 = {0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, 0x55A867BC, 0xA1159A58, 0xCCA92963,. 57.

Gambar

Gambar 2.1 Bagan Pengelompokan Cipher
Gambar 2.2 Algoritma IDEA
Tabel 2.1 Sub-blok Kunci Enkripsi dan Dekripsi Keterangan :
Gambar 2.3 Proses Inisialisasi Kunci Enkripsi
+7

Referensi

Dokumen terkait

Bukit dan gunung merupakan daerah penyerap dan penyimpan cadangan air yang berasal dari air hujan.Cadangan air yang diserap tersebut masuk ke dalam tanah dan batuan.Karena volume

Kepala Dinas Penanaman Modal dan pelayanan Terpadu Satu Pintu Kota Banjarmasin3. Se

Bagi para peserta yang keberatan atas pengumuman pemenang hasil seleksi sederhana tersebut, diberi kesempatan untuk mengajukan sanggahan secara tertulis kepada

 Marketing, Contracting, Customer Relationship Skills, Kemampuan menjual tidak hanya dimiliki oleh marketer saja, akan tetapi manajer proyek harus memiliki kemampuan untuk

Visualisasi bangun ruang dapat dilihat secara lebih nyata melalui software Geogebra sehingga siswa tidak menghabiskan waktu dalam menggambar bangun ruang dan

• Pelaksanaan event fetival olahraga usia dini harus memilih jenis/ bentuk aktivitas fisik yang sesuai dengan karakteristik tumbuh kembang. • Memiliki unsur kemenarikan yang tinggi

Berdasarkan Berita Acara Penetapan Pemenang Nomor : 81 /PAN/VII/2011 tanggal 19 Juli 2011, Panitia Pengadaan Barang/Jasa Dinas Kesehatan Kota Bandar Lampung Tahun Anggaran

Dengan analisa SWOT dan IE-Matrix, disarankan beberapa hal, yaitu: strategi market intensive dilakukan melalui penetrasi pasar dan pengembangan pasar; mengembangkan