implementasi kriptografi dengan algoritma blowfish dan ......crypton yang dibahas di sini termasuk...

12
Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615 27 Implementasi Kriptografi Dengan Algoritma Blowfish dan Riverst Shamir Adleman (RSA) Untuk Proteksi File Faizal Zuli 1 , Ari Irawan 2 1 Universitas Satya Negara Indonesia, 2 UIN Syarif Hidayatullah 1 [email protected], 2 [email protected] Abstract - Blowfish is one of the algorithms are not patentable and strong enough because it has a large key space and the length can vary so it is not vulnerable on the key. A cryptographic system that is well located on the secrecy of the key and not on secrecy algorithm used. RSA (RivestShamirAdleman) stands for the makers are RonRivest, Adi Shamir, and Leonard Adleman created in 1977. RSA is an asymmetric cryptography system. Keyword: Criptography, Blowfish, RSA, Secrecy Algorithm, Cryptographic Abstrak - Blowfish merupakan salah satu algoritma yang tidak dipatenkan dan cukup kuat karena memiliki ruang kunci yang besar dan panjangnya bisa beragam sehingga tidak mudah diserang pada bagian kuncinya. Suatu sistem kriptografi yang baik terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan. RSA (RivestShamirAdleman) adalah singkatan dari para pembuatnya yaitu RonRivest, Adi Shamir, dan Leonard Adleman yang dibuat pada tahun1977. RSA merupakan sistem kriptografi asimetrik. Kata Kunci: Kriptografi, Blowfish, RSA I. PENDAHULUAN Untuk melindungi file yang terdapat pada komputer atau tempat penyimpanan data dari akses illegal salah satu caranya adalah dengan menggunakan kriptografi. Kriptografi juga diperlukan dalam melindungi dokumen dari orang yang tidak berhak untuk merubah isi dokumen, merubah password atau pemanfaatan dokumen tersebut untuk keuntungan pribadi. Kriptografi akan merahasiakan informasi dengan menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Saat ini banyak bermunculan algoritma kriptografi yang terus dianalisis, dicoba dan disempurnakan untuk mencari algoritma yang dianggap memenuhi standar keamanan. Beberapa algoritma kriptografi yang dikenal antara lain DES, Rijndael, Blowfish, RC4, Vigenere Cipher, Enigma, IDEA dan lainnya. II. LANDASAN TEORI Dokumen Digital Dokumen merupakan suatu sarana transformasi informasi dari satu orang ke orang lain atau dari suatu kelompok ke kelompok lain. Dokumen meliputi berbagai kegiatan yang diawali dengan bagaimana suatu dokumen dibuat, dikendalikan, diproduksi, disimpan, didistribusikan, dan digandakan. Dokumen digital merupakan setiap informasi elektronik yang dibuat, diteruskan, dikirimkan, diterima, atau disimpan dalam bentuk analog, digital, elektromagnetik, optikal, atau sejenisnya, yang dapat dilihat, ditampilkan dan/atau didengar melalui komputer atau sistem elektronik, termasuk tetapi tidak terbatas pada tulisan, suara atau gambar, peta, rancangan, foto atau sejenisnya, huruf, tanda, angka, kode akses, simbol atau perforasi yang memiliki makna atau arti atau dapat dipahami oleh orang yang mampu memahaminya [1] Metode Keamanan Data Ada 2 metode keamanan data yang digunakan yaitu Kriptografi menggunakan algoritma Advanced Encryption Standard (AES) dan Steganografi menggunakan Command/DOS dan menampilkan warna pada citra digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu Red, Green, Blue [2]

Upload: others

Post on 24-Aug-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

27

Implementasi Kriptografi Dengan Algoritma

Blowfish dan Riverst Shamir Adleman (RSA)

Untuk Proteksi File

Faizal Zuli1, Ari Irawan

2

1Universitas Satya Negara Indonesia,

2UIN Syarif Hidayatullah

[email protected],

[email protected]

Abstract - Blowfish is one of the algorithms are not patentable and strong enough because it has a large key

space and the length can vary so it is not vulnerable on the key. A cryptographic system that is well located

on the secrecy of the key and not on secrecy algorithm used. RSA (RivestShamirAdleman) stands for the

makers are RonRivest, Adi Shamir, and Leonard Adleman created in 1977. RSA is an asymmetric

cryptography system.

Keyword: Criptography, Blowfish, RSA, Secrecy Algorithm, Cryptographic

Abstrak - Blowfish merupakan salah satu algoritma yang tidak dipatenkan dan cukup kuat karena memiliki

ruang kunci yang besar dan panjangnya bisa beragam sehingga tidak mudah diserang pada bagian

kuncinya. Suatu sistem kriptografi yang baik terletak pada kerahasiaan kunci dan bukan pada kerahasiaan

algoritma yang digunakan. RSA (RivestShamirAdleman) adalah singkatan dari para pembuatnya yaitu

RonRivest, Adi Shamir, dan Leonard Adleman yang dibuat pada tahun1977. RSA merupakan sistem

kriptografi asimetrik.

Kata Kunci: Kriptografi, Blowfish, RSA

I. PENDAHULUAN

Untuk melindungi file yang terdapat pada komputer atau tempat penyimpanan data dari akses illegal salah

satu caranya adalah dengan menggunakan kriptografi.

Kriptografi juga diperlukan dalam melindungi dokumen dari orang yang tidak berhak untuk merubah isi

dokumen, merubah password atau pemanfaatan dokumen tersebut untuk keuntungan pribadi.

Kriptografi akan merahasiakan informasi dengan menyandikannya ke dalam bentuk yang tidak dapat

dimengerti lagi maknanya. Saat ini banyak bermunculan algoritma kriptografi yang terus dianalisis, dicoba dan

disempurnakan untuk mencari algoritma yang dianggap memenuhi standar keamanan. Beberapa algoritma

kriptografi yang dikenal antara lain DES, Rijndael, Blowfish, RC4, Vigenere Cipher, Enigma, IDEA dan lainnya.

II. LANDASAN TEORI

Dokumen Digital

Dokumen merupakan suatu sarana transformasi informasi dari satu orang ke orang lain atau dari suatu

kelompok ke kelompok lain. Dokumen meliputi berbagai kegiatan yang diawali dengan bagaimana suatu dokumen

dibuat, dikendalikan, diproduksi, disimpan, didistribusikan, dan digandakan. Dokumen digital merupakan setiap

informasi elektronik yang dibuat, diteruskan, dikirimkan, diterima, atau disimpan dalam bentuk analog, digital,

elektromagnetik, optikal, atau sejenisnya, yang dapat dilihat, ditampilkan dan/atau didengar melalui komputer atau

sistem elektronik, termasuk tetapi tidak terbatas pada tulisan, suara atau gambar, peta, rancangan, foto atau

sejenisnya, huruf, tanda, angka, kode akses, simbol atau perforasi yang memiliki makna atau arti atau dapat

dipahami oleh orang yang mampu memahaminya [1]

Metode Keamanan Data

Ada 2 metode keamanan data yang digunakan yaitu Kriptografi menggunakan algoritma Advanced Encryption

Standard (AES) dan Steganografi menggunakan Command/DOS dan menampilkan warna pada citra digital

berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu Red, Green,

Blue [2]

Page 2: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

28

Kompresi File (File Compress)

Kompresi file adalah suatu cara untuk mengkodekan informasi dengan menggunakan bit yang lebih rendah

yang digunakan untuk memperkecil ukuran data agar dapat disimpan dengan ruang penyimpanan yang kecil dan

juga dapat mempersingkat waktu dalam transfer data [2].

File

File adalah entitas dari data yang disimpan didalam sistem file yang dapat diakses dan diatur oleh pengguna.

Sebuah file memiliki nama yang unik dalam direktori di mana ia berada. Alamat direktori dimana suatu berkas

ditempatkan diistilahkan dengan path.

Sebuah file berisi aliran data (atau data stream) yang berisi sekumpulan data yang saling berkaitan serta

atribut berkas yang disebut dengan properties yang berisi informasi mengenai file yang bersangkutan seperti

informasi mengenai kapan sebuah berkas dibuat [2]

Kriptografi

Kriptografi berasal dari bahasa Yunani yaitu cryptós yang artinya “secret” (yang tersembunyi) dan gráphein

yang artinya “writting” (tulisan). Jadi, kriptografi berarti ”secret writting” (tulisan rahasia). Definisi yang

dikemukakan oleh Bruce Schneier (1996), kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan

(Cryptography is the art and science of keeping messages secure).

Kriptografi mempunyai beberapa tujuan. Munir menyampaikan tujuan kriptografi bahwa untuk memberi

layanan keamanan (yang juga dinamakan sebagai aspek-aspek keamanan) sebagai berikut [2]:

a. Kerahasiaan (confidentiality), adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapt dibaca oleh

pihak-pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan

menjadi chiperteks.

b. Integritas data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah

dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pernyataan:

“Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”. Untuk menjaga

integritas data, system harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang

tidak berhak, antara lain penyisipan, penghapusan, dan pensubstitusian data lain ke dalam pesan yang

sebenarnya.

Kriptografi mempunyai dua komponen utama yaitu enkripsi dan dekripsi. Selain itu dibutuhkan kunci untuk

mengubah plainteks menjadi chiperteks dan juga sebaliknya.Tanpa kunci plainteks tidak bisa mengenkrip masukan

menjadi chiperteks, demikian juga sebaliknya. Kerahasiaan kunci sangatlah penting, apabila kerahasiaannya

terbongkar maka isi pesan akan terbongkar. Gambar 1 adalah skema yangmengilustrasikan enkripsi dan dekripsi.

.

Gambar 1. Skema Enkripsi dan Dekripsi

Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua jenis yaitu, algoritma

simetrik (symmetric) dan asimetrik (asymmetric).

Algoritma Simetrik

Algoritma simetrik dapat pula disebut sebagai algoritma konvensional, dimana kunci dekripsi dapat ditentukan

dari kunci enkripsinya, begitu pula sebaliknya. Pada algoritma simetrik, kunci enkripsi dan kunci dekripsinya sama

[2].

Keamanan dari algoritma ini terletak pada kuncinya, jika kunci diberitahukan atau dibocorkan maka siapa saja

dapat mengenkrip dan mendekrip data, jadi kunci harus benar-benar rahasia dan aman.

Proses enkripsi dan dekripsi dari fungsi algoritma ini dapat dinotasikan sebagai berikut :

Ek (P) = C (Proses Enkripsi) Dk (C) = P (Proses Dekripsi)

di mana E adalah fungsi enkripsi, D adalah fungsi dekripsi, k adalah kunci enkripsi dan dekripsi, P adalah

plaintext (pesan yang sebenarnya) dan C adalah ciphertext (hasil enkripsi dari plaintext). Proses enkripsi dan

dekripsi dengan algoritma simetrik dapat diilustrasikan pada Gambar 2.

Page 3: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

29

Gambar 2: Enkripsi dan Dekripsi Algoritma Simetrik

Algoritma Asimetrik

Algoritma Asimetrik (Asymmetric atau Public Key) adalah algoritma yang menggunakan kunci yang berbeda

untuk proses enkripsi dan dekripsi. Algoritma ini disebut juga algoritma kunci umum (public key algorithm) karena

kunci untuk enkripsi dibuat umum atau dapat diketahui oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui

oleh orang yang berwenang mengetahui data yang disandikan. Jadi hanya orang tertentu saja yang berhak terhadap

kunci dekripsi, walaupun kunci enkripsi dapat diketahui dan digunakan oleh orang lain [2].

Kunci enkripsi pada algortima ini disebut kunci publik (public key) dan kunci dekripsi sering disebut dengan

kunci pribadi atau kunci rahasia (private key). Proses enkripsi dengan kunci publiknya (misalkan “ek”) dan proses

dekripsi dengan kunci rahasianya (misalkan “dk”) akan menghasilkan persamaan sebagi berikut:

Eek (P) = C (Proses Enkripsi)

Ddk (C) = P (Proses Dekripsi)

Proses enkripsi dan dekripsi dengan algoritma asimetrik dapat diilustrasikan pada Gambar 3.

Gambar 3: Enkripsi dan Dekripsi Algoritma Asimetrik

Pada dasarnya algoritma simetrik terdiri atas dua metode yaitu metode blok cipher dan aliran cipher. Pada

subbab ini pembahasan lebih ditekankan pada metode kriptografi blok cipher, karena algoritma kriptografi

CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher.

Teknik Penyandian

Pada blok cipher, penyandian dilakukan pada sebuah blok plaintext dan berorientasi pada satu bit atau satu

karakter pada blok plaintext tersebut. Algoritma kriptografi modern merupakan algoritma berbasis kunci. Teknik

penyandian pada algoritma blok cipher modern juga mengandalkan kunci untuk kerahasiaannya [2].

Beberapa teknik penyandian blok cipher modern diantaranya :

1. Cipher Berulang

Cipher berulang (iterated cipher) mengenkripsi blok plaintext dengan sebuah proses yang mengalami

beberapa putaran (round) atau iterasi untuk mendapatkan blok ciphertext. Pada masing-masing putaran diterapkan

transformasi atau fungsi putaran (round function ) yang sama pada plaintext dengan menggunakan sub kunci. Fungsi

tersebut biasanya merupakan gabungan dari proses substitusi, permutasi, transposisi, atau ekspansi terhadap blok

plaintext. Kumpulan subkunci biasanya dihasilkan dari secret key dengan fungsi khusus dan biasanya disebut

dengan daftar kunci (key schedule).

Jumlah putaran dalam cipher berulang bergantung pada tingkat keamanan yang diinginkan. Dalam banyak

kasus, penambahan jumlah putaran akan memperbaiki keamanan, tetapi untuk beberapa penyandian, jumlah putaran

untuk mencapai keamanan yang memadai akan menjadikan penyandian tidak efisien.

2. Jaringan Fiestel

Fiestel Cipher merupakan metode yang dikemukakan pertama kali oleh Horst Fiestel pada awal tahun 1970-

an. Metode ini sering juga disebut Fiestel Network. Fiestel cipher beroperasi terhadap panjang blok data tetap

sepanjang n (n adalah bilangan genap), kemudian membagi menjadi 2 blok dengan panjang masing-masing n/2,

yang dinotasikan L dan R. Fiestel cipher menerapkan metode cipher berulang dengan masukan pada putaran ke-i

didapat dari keluaran putaran sebelumnya, secara matematis [3] :

Li = Ri-2

Ri = Li-1 f (Ri-1,Ki)

i = 1, 2, 3, ..., r

(r adalah jumlah putaran)

Yang dalam hal ini Ki adalah kunci putaran pada putaran ke-i dan f adalah fungsi transformasi.

Page 4: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

30

Blok plaintext adalah gabungan L dan R awal atau secara formal plaintext dinyatakan dengan (L0,R0) .

Sedangkan blok ciphertext didapatkan dari L dan R hasil putaran terakhir setelah terlebih dahulu dipertukarkan atau

secara formal ciphertext dinyatakan dengan (Rr, Lr). Feistel cipher banyak diterapkan karena metode ini reversible

untuk proses enkripsi dan dekripsi sehingga tidak perlu mendekripsikan algoritma baru untuk dekripsi ciphertext

menjadi plaintext. Hal ini didapatkan karena operator XOR ini mempunyai sifat-sifat unik. Dari sifat unik tersebut

maka didapatkan persamaan :

Li-1 f (Ri-1,Ki) f(Ri-1,Ki) = Li-1

Dari persamaan diatas dapat dilihat bahwa sifat reversible tidak tergantung pada fungsi transformasi f yang

digunakan sehingga fungsi ini dapat dibuat serumit yang diinginkan.

Mode Operasi

Secara umum, terdapat empat mode enkripsi data baku yang dapat diterapkan pada enkripsi blok dengan

sembarang ukuran blok. Mode baku tersebut adalah Electronic Code Book (ECB), Cipher Block Chaining (CBC),

Cipher Feedback (CFB) dan Output Feedback (OFB). [2].

1. Electronic Code Book (ECB)

Pada metode ini setiap blok plaintext dienkripsi secara independent menjadi blok ciphertext. Secara

matematis dapat dinyatakan :

Ci = Ek (Pi)

Pi = Dk (Ci)

2. Cipher Block Chaining (CBC)

Pada proses enkripsi mode CBC, blok plaintext terlebih dahulu di-XOR-kan dengan blok ciphertext hasil

enkripsi blok sebelumnya. Blok pertama plaintext di-XOR-kan dengan suatu initialization vector (vektor awal) yang

besarnya sama dengan blok plaintext. Secara matematis dapat dinyatakan :

Ci = Ek (Pi Ci-1)

Pi = Ci-1 Dk (Ci)

Kotak-S (S-box)

S-box (Substitution-box) adalah komponen dasar dari algoritma kunci simetris yang berfungsi melakukan

proses substitusi. Pada sistem blok cipher, S-box dimaksudkan untuk mengaburkan hubungan antara kunci dan

cipherteks. Secara umum, cara kerja S-box adalah dengan menerima sejumlah bit masukan, m, dan

mentransformasinya ke dalam beberapa bit keluaran, n. Tabel yang digunakan biasanya bernilai tetap seperti yang

digunakan pada algoritma DES (Data Encryption Standard), namun di beberapa algoritma kriptografi tabel tersebut

dibuat secara dinamis berdasarkan kata kunci seperti yang digunakan pada algoritma blowfish. Tabel 1 adalah

contoh penggunaan S-Box pada DES dengan tabel bernilai tetap berukuran 6 x 4 bit (6 bit masukan, 4 bit keluaran)

[3]:

TABEL 1.

TABEL S-BOX

Tabel 1 menggunakan 6 bit masukan dan 4 bit keluaran yang didapat dengan menggunakan 2 bit terluar (bit

pertama dan bit terakhir) untuk menentukan baris dan 4 bit tengah untuk menentukan kolom. Menggunakan

bit ”011011” sebagai masukan didapatkan bahwa 2 bit terluarnya adalah bit “01” dan 4 bit tengahnya adalah “1101”

maka keluaran yang didapat adalah bit “1001”. Algoritma Blowfish menggunakan sistem S-Box yang sama hanya

nilainya saja yang berbeda.

Pembuatan Subkunci (Subkey Generator)

Algorima blowfish diawali dengan proses pembuatan subkunci. Terdapat dua buah subkunci yang digunakan

pada algoritma blowfish. Subkunci pertama berupa 18 buah P-array berukuran 32 bit:

P1, P2, P3,..., P18.

Subkunci kedua merupakan S-box dengan 4 x 256 buah array multidimensi berukuran 32 bit:

S1,0, S1,1, S1,2,..., S1,255;

S2,0, S2,1, S2,2,..., S2,255;

S3,0, S3,1, S3,2,..., S3,255;

S4,0, S4,1, S4,2,..., S4,255.

Page 5: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

31

Langkah-langkah pembuatan subkunci pada algoritma blowfish adalah sebagai berikut:

1. Inisialisasi semua array P dan S secara berurutan menggunakan digit heksadesimal bilangan pi/π (nilai

dibelakang angka 3), misal:

P1 = 0x243f6a88, P2 = 0x85a308d3, P3 =

0x13198a2e, dst.

2. Lakukan operasi XOR pada P1 dengan 32 bit pertama dari kunci yang digunakan, XOR P2 dengan 32 bit kedua

dari kunci tersebut dan lakukan terus hingga bagian akhir bit kunci (maksimal hingga P14). Ulangi kembali dari

bit kunci awal hingga seluruh array P dan S selesai di-XOR-kan dengan bit-bit kunci.

3. Lakukan enkripsi menggunakan algoritma blowfish pada variabel 64 bit yang semua bitnya bernilai 0

menggunakan subkunci pada proses 1 dan 2.

4. Ganti subkunci P1 dan P2 dengan hasil keluaran pada proses 3

5. Enkripsi hasil keluaran pada proses 3 menggunakan blowfish dengan subkunci yang telah dimodifikasi pada

proses 4.

6. Ganti subkunci P3 dan P4 dengan hasil keluaran pada proses 5.

7. Terus lanjutkan proses diatas untuk mengganti semua nilai array P dan S secara berurutan.

Algoritma Blowfish

Blowfish diciptakan oleh seorang Cryptanalyst bernama Bruce Schneier, Presiden perusahaan Counterpane

Internet Security, Inc (Perusahaan konsultan tentang kriptografi dan keamanan komputer) dan dipublikasikantahun

1994. Dibuat untuk digunakan pada komputer yang mempunyai microposesor besar (32-bit keatas dengancache data

yang besar). Blowfish merupakan algoritma yang tidak dipatenkan dan licensefree, dan tersediasecara gratis untuk

berbagai macam kegunaan (Syafari, 2007). Pada saat blowfish dirancang, diharapkan mempunyai kriteria

perancangan sebagai berikut [4] :

1. Cepat

Blowfish melakukan enkripsi data pada microprocessors 32-bit dengan rate 26 clock cycles perbyte.

2. Compact (ringan)

Blowfish dapat dijalankan pada memori kurang dari 5K.

3. Sederhana

Blowfish hanya menggunakan operasi-operasi sederhana: penambahan, XOR, dan lookuptabel pada operan 32-

bit.

4. Memiliki tingkat keamanan yang bervariasi, panjang kunci yang digunakan oleh Blowfish dapatbervariasi dan

bisa sampai sepanjang 448 bit.

Algoritma Blowfish terdiri atas dua bagian, yaitu ekspansi kunci dan enkripsi data [3]

a. Ekspansi Kunci (Key-expansion)

Berfungsi merubah kunci (minimum 32-bit, maksimum 448-bit)menjadi beberapa array subkunci

(subkey)dengan total 4168 byte (18x32-bit untuk P-array dan 4x256x32-bit untuk S-box sehingga totalnya 33344 bit

atau4168 byte). Kunci disimpan dalam K-array:

K1, K2, ... Kj 1 j 14

Kunci-kunci ini yang dibangkitkan (generate) dengan menggunakan subkunci yang harus dihitung

terlebihdahulu sebelum enkripsi atau dekripsi data. Sub-sub kunci yang digunakan terdiri dari:P-array yang terdiri

dari 18 buah 32-bit subkunci,

b. Enkripsi Data

Terdiri dari iterasi fungsi sederhana (Feistel Network) sebanyak 16 kali putaran (iterasi), masukannya adalah

64-bit elemen data X. Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi kunci- dan data-

dependent.Semua operasi adalah penambahan (addition) dan XOR pada variabel 32-bit. Operasi tambahan lainnya

Algoritma RSA ( Riverst Shamir Adleman )

Pada tahun 1997 kontes pemilihan suatu standar algoritma kriptografi baru pengganti DES dimulai dan

diikuti oleh 21 peserta dari seluruh dunia. Setelah melewati tahap seleksi yang ketat, pada tahun 1999 hanya tinggal

5 calon yaitu algoritma Serpent (Ross Anderson-University of Cambridge, Eli Biham-Technion, Lars Knudsen-

University of California San Diego), MARS (IBM Amerika), Twofish (Bruce Schneier, John Kelsey, dan Niels

Ferguson-Counterpane Internet Security Inc, Doug Whiting-Hi/fn Inc, David Wagner-University of California

Berkeley, Chris Hall-Princeton University), Rijndael (Dr. Vincent RijmenKatholieke Universiteit Leuven dan Dr.

Joan Daemen-Proton World International), dan RC6 (RSA Amerika). Setahun kemudian pada tahun 2000, algoritma

Rijndael terpilih sebagai algoritma kriptografi yang selain aman juga efisien dalam implementasinya dan dinobatkan

sebagai AES. Nama Rijndael sendiri berasal dari gabungan nama penemunya [5].

Algoritma ini dikembangkan oleh Ron Rivest, Adi Shamir, dan Len Adleman pada tahun 1977. Algoritma ini

sekaligus menjawab tantangan dari sebuah tulisan yang dibuat oleh Diffie dan Hellman tentang pendekatan baru

mengenai algoritma kriptografi yang dapat memenuhi kebutuhan untuk metode kunci publik. Algoritma Rivest

Shamir Adleman (RSA) ini adalah algoritma metode kunci publik yang paling banyak dipakai sampai saat ini.

Page 6: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

32

Cara kerja dari algoritma RSA ini adalah sebagai berikut :

RSA merupakan algoritma yang melibatkan ekspresi dengan fungsi eksponensial.

Plaintext dienkripsi dalam blokblok, dimana setiap blok tersebut mempunyai nilai biner yang kurang dari

angka tertentu (n).

Proses enkripsi dan dekripsi untuk plaintext blok M dan ciphertext blok C dapat digambarkan sebagai

berikut :

C = Me mod n

M = Cd mod n = (Me)d mod n = Med mod n

Advanced Encryption Standard (AES) Advanced Encryption Standard (AES) merupakan algoritma cryptographic yang dapat digunkan untuk

mengamakan data. Algoritma AES adalah blokchipertext simetrik yang dapat mengenkripsi (encipher) dan dekripsi

(decipher) informasi. Enkripsi merubah data yang tidak dapat lagi dibaca disebut ciphertext; sebaliknya dekripsi

adalah merubah ciphertext data menjadi bentuk semula yang kita kenal sebagai plaintext [5].

Algoritma AES mengunakan kunci kriptografi 128, 192, dan 256 bits untuk mengenkrip dan dekrip data pada

blok 128 bits. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses

enkripsi dan dekripsi.

Blok-blok data masukan dan kunci dioperasikan dalam bentuk array. Setiap anggota array sebelum

menghasilkan keluaran ciphertext dinamakan dengan state. Setiap state akan mengalami proses yang secara garis

besar terdiri dari empat tahap yaitu, AddRoundKey, SubBytes, ShiftRows, dan MixColumns. Kecuali tahap

MixColumns, ketiga tahap lainnya akan diulang pada setiap proses sedangkan tahap MixColumns tidak akan

dilakukan pada tahap terakhir. Proses dekripsi adalah kebalikan dari dekripsi. Karena terjadi beberapa tahap dalam

proses enkripsi, maka diperlukan subkeysubkey yang akan dipakai pada tiap tahap. Pengembangan jumlah kunci

yang akan dipakai diperlukan karena kebutuhan subkey-subkey yang akan dipakai dapat mencapai ribuan bit,

sedangkan kunci yang disediakan secara default hanya 128-256 bit. Jumlah total kunci yang diperlukan sebagai

subkey adalah sebanyak Nb(Nr+1), dimana Nb adalah besarnya blok data dalam satuan word. Sedangkan Nr adalah

jumlah tahapan yang harus dilalui dalam satuan word. Sebagai contoh, bilamana digunakan 128 bit. (4 word) blok

data dan 128 bit (4 word) kunci maka akan dilakukan 10 kali proses. Dengan demikian dari rumus didapatkan

4(10+1)=44 word=1408 bit kunci. Untuk melakukan pengembangan jumlah kunci yang akan dipakai dari kunci

utama maka dilakukan key schedule.

Ekspansi Kunci AES Algoritma AES mengambil kunci cipher, K, dan melakukan rutin ekspansi kunci (key

expansion) untuk membentuk key schedule. Ekspansi kunci menghasilkan total Nb(Nr+1) word. Algoritma ini

membutuhkan set awal key yang terdiri dari Nb word, dan setiap round Nr membutuhkan data kunci sebanyak Nb

word. Hasil key schedule terdiri dari array 4 byte word linear yang dinotasikan dengan [wi]. SubWord adalah fungsi

yang mengambil 4 byte word input dan mengaplikasikan S-Box ke tiap-tiap data 4 byte untuk menghasilkan word

output. Fungsi RotWord mengambil word [a0, a1, a2, a3] sebagai input, melakukan permutasi siklik, dan

mengembalikan word [a1, a2, a3, a0]. Rcon[i] terdiri dari nilai-nilai yang diberikan oleh [xi-1, {00}, {00}, {00}],

dengan xi-1 sebagai pangkat dari x (x dinotasikan sebagai {02} dalam field GF(28). Word ke Nk pertama pada

ekspansi kunci berisi kunci cipher10. Setiap word berikutnya, w[i], sama dengan XOR dari word sebelumnya, w[i-

1] dan word Nk yang ada pada posisi sebelumnya, w[i-Nk]. Untuk word pada posisi yang merupakan kelipatan Nk,

sebuah transformasi diaplikasikan pada w[i-1] sebelum XOR, lalu dilanjutkan oleh XOR dengan konstanta round,

Rcon[i]. Transformasi ini terdiri dari pergeseran siklik dari byte data dalam suatu word RotWord, lalu diikuti

aplikasi dari lookup Tabel untuk semua 4 byte data dari word SubWord.

Enkripsi AES

Proses enkripsi pada algoritma Adavanced Encryption Standard terdiri dari 4 jenis transformasi bytes, yaitu

SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey. Pada awal proses enkripsi, input yang telah dikopikan ke

dalam state akan mengalami transformasi byte AddRoundKey. Setelah itu, state akan mengalami transformasi

SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara berulangulang sebanyak Nr. Proses ini dalam

algoritma AES disebut sebagai round function. Round yang terakhir agak berbeda dengan round-round sebelumnya

dimana pada round terakhir, state tidak mengalami transformasi MixColumns.

Transformasi cipher dapat dibalikkan dan diimplementasikan dalam arah yang berlawanan untuk

menghasilkan inverse cipher yang mudah dipahami untuk algoritma AES. Transformasi byte yang digunakan pada

invers cipher adalah InvShiftRows, InvSubBytes, InvMixColumns, dan AddRoundKey.

Steganografi

Steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia (hiding message)

sedemikian sehingga keberadaan (eksistensi) pesan tidak terdeteksi oleh indera manusia. Kata steganorafi berasal

dari bahasa Yunani yang berarti “tulisan tersembunyi” (covered writing). Steganografi membutuhkan dua properti

yaitu wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media

digital sebagai wadah penampung, misalnya citra, suara, teks, dan video. Data rahasia yang disembunyikan juga

Page 7: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

33

dapat berupa citra, suara, teks, atau video. Steganografi berbeda dengan kriptografi, letak perbedaannya adalah hasil

keluarannya [3].

Hasil dari kriptografi biasanya berupa data yang berbeda dari bentuk aslinya dan biasanya datanya seolah-

olah berantakan dan dapat dikembalikan ke bentuk semula. Sedangkan steganografi ini memiliki bentuk persepsi

yang sama dengan bentuk aslinya, tentunya persepsi di sini oleh indera manusia, tetapi tidak oleh komputer atau

perangkat pengolah digital

Teknik steganografi sudah ada sejak 4000 tahun yang lalu di kota Menet Khufu, Mesir. Awalnya adalah

penggunaan hieroglyphic yakni menulis menggunakan karakter-karakter dalam bentuk gambar. Ahli tulis

menggunakan tulisan Mesir kuno ini untuk menceritakan kehidupan majikannya. Tulisan Mesir kuno tersebut

menjadi ide untuk membuat pesan rahasia saat ini. Oleh karena itulah, tulisan Mesir kuno yang menggunakan

gambar dianggap sebagai steganografi pertama di dunia [4].

Secara umum, terdapat dua proses utama didalam steganografi, yaitu proses penyisipan

(Embedding/encoding) untuk menyembunyikan pesan dan ekstraksi (extraction/decoding) untuk mengekstraksi

pesan yang disembunyikan. Pesan dapat berupa plaintext, chipertext, citra atau apapun yang dapat ditempelkan ke

dalam bit-strem. Embedding merupakan proses menyisipkan pesan ke dalam file yang belum dimodifikasi, yang

disebut media cover (cover object). Kemudian media cover dan pesan yang ditempelkan membuat media stego

(stego object).

Extraction adalah proses menguraikan pesan yang tersembunyi dalam media stego. Suatu kunci khusus (stego

key) juga dapat digunakan secara tersembunyi, pada saat penguraian selanjutnya dari pesan. Ringkasnya

steganografi adalah teknik menanamkan embedded message pada suatu cover object, dimana hasilnya berupa stego

object. Pihak yang terkait dengan steganografi antara lain embeddor, extractor, dan stegoanalyst.

III. METODE PENELITIAN

Pengumpulan data dilakukan untuk memperoleh informasi yang dibutuhkan dalam rangka mencapai tujuan

penelitian. Tujuan yang diungkapkan dalam bentuk hipotesis merupakan jawaban sementara terhadap pertanyaan

penelitian.metode pengumpulan data bisa dilakukan dengan cara:

a. Observasi, merupakan cara untuk mendapatkan data dan informasi dengan melakukan peninjauan atau

pengamatan secara langsung ke tempat yang berkaitan dengan penulisan tugas akhir dan perancangan sistem

informasinya.

b. Komparatif, merupakan cara untuk mendapatkan data dan informasi dengan melakukan pertimbangan atau

membandingkan dua sistem atau lebih, melihat kekurangan dan kelebihan antara sistem yang lama dengan

sistem yang baru. Sehingga dapat dilakukan pengembangan sistem yang baru.

Metodologi yang digunakan dalam pembangunan aplikasi ini adalah :

a) Metode Studi Pustaka

Metode Studi Pustaka ini dilakungan dengan cara mengumpulkan dan mempelajari teori - teori literatur

dari berberapa buku referensi, skripsi, jurnal serta data- data penunjang lainnya yang berhubungan dengan judul

skripsi penulis dalam menyelesaikan masalah.

b) Metode Pengembangan Perangkat Lunak

1) Analisis

Analisis dilakungan dengan cara menganalisa permasalahan yang muncul dan menentukan spesifikasi

kebutuhan atas sistem yang akan dibuat. Hasil dari analisa berupa Dokumen Spesifikasi Kebutuhan

Prangkat Lunak (SKPL).

2) Perancangan

Perancangan sistem dilakukan dengan berdasarkan hasil analisis yang telah dilakukan pada tahap

sebelumnya. Perancangan dilakukan untuk mendapatkan deskripsi arsitektural perangkat lunak, deskripsi

data dan deskripsi prosedural. Metode yang digunakan pada perancangan aplikasi kriptografi file adalah

metode waterfall.

3) Pengkodean

Pengkodean dilakukan dengan mengimplentasi hasil analisis dan perancangan kedalam program untuk

membangun aplikasi. Hasil dari pengkodean adalah kode yang siap di eksekusi.

IV. HASIL DAN PEMBAHASAN

A. Enkripsi file.

Proses enkripsi file yang dilakukan adalah sebagai berikut :

1. Pengguna memasukkan input berupa file. File yang akan diinputkan berupa file teks.

2. Masukkan kunci blowfish untuk mengenkripsi.

3. Lakukan enkripsi file yang telah diinputkan.

4. File yang telah terenkripsi menjadi file yang tidak terbaca (chipertext).

5. Chipertext dienkripsi kembali dengan algoritma RSA.

Page 8: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

34

6. RSA kunci generator (kunci publik dan kunci privat).

7. Enkripsi file selesai..

Diagram alir enkripsi dan dekripsi file disajikan pada Gambar 4 dan Gambar 5.

Gambar 4. EnkripsiFile

Gambar 5. Dekripsi File

B. Melakukan pembangkitan kunci publik dan kunci privat

1. Ambil dua buah bilangan prima sembarang, x dan y

2. Hitung n = xy dan m = (x-1)*(y-1).

3. Pilih bilangan integer e, 1 < e < m, yang relative prima terhadap m yaitu FPB(e,m) = 1.

4. Hitung eksponen rahasia d, 1 < d < m, sehingga ed ≡1 (mod m).

5. Kunci publik adalah (n,e) dan kunci privat adalah (n,d). Nilai x, y dan m juga harus dirahasiakan.

Mulai

Enkripsi

Input File

Masukkan Kunci Blowfish

Proses Enkripsi

File Terenkripsi (Chipertext)

Selesai

Tidak

Generate

KunciPublik&Privat RSA

Ya

Page 9: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

35

• n disebut juga modulus

• e disebut juga public exponent atau exponentenkripsi

• d disebut juga secret exponent atau exponentdekripsi

C. Melakukan enkripsi kunci simetris dan plain text terenkripsi dengan enkripsi kriptografi asimetris RSA

Adapun langkah – langkah pada proses ini adalah sebagai berikut :

1. Ambil kunci public (n,e)

2. Nyatakan plainteks dalam integer positif m

3. Enkripsi menjadi cipher teks c = me mod n

Gambar 6. Enkripsi Dengan Kunci Publik

D. Melakukan dekripsi kunci simetris dan plainteks terenkripsi dengan dekripsi kriptografi asimetris RSA.

Menggunakan kunci privat (n, d) untuk dekripsi dengan rumus m = cd mod n.

Gambar 7. Dekripsi Dengan Kunci Privat

E. Perancangan Tampilan Antarmuka

Pada perancangan tampilan antarmuka aplikasi asimetrisblowcrypt v1.0, dibangun dengan java untuk

menampilkan tampilan antarmuka yang nyaman dan mudah digunakan bagi pengguna.

Plain Text

Enkripsi Kriptografi

Simetris

Kunci

Enkripsi Kriptografi Asimetris

Plain Text Terenkripsi

Hasil Enkripsi

Kunci Publik

Chiper Text Terenkripsi

Kunci Privat

Enkripsi Kriptografi Asimetris

Plain Teks Terenkripsi

Cipherteks Kunci

Plain Teks

Enkripsi Kriptografi

Simetris

Page 10: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

36

1. Halaman Enkripsi

Gambar 8. Tampilan Antarmuka Halaman Enkripsi

Keterangan Gambar 8:

1. Tombol untuk menutup aplikasi.

2. Tombol untuk minimize aplikasi.

3. Nama aplikasi dan versi aplikasi.

4. Tombol tab menu enkripsi.

5. Tombol tab menu dekripsi.

6. Tombol tab menu Key RSA

7. Tombol browse file.

8. Tombol input password.

9. Tombol generate password

10. Informasi ukuran file sumber, ukuran file tujuan, dan waktu proses.

11. Progress bar.

12. Tombol Encryption

2. Halaman Dekripsi

Gambar 9. Tampilan Antarmuka Halaman Dekripsi

6

10

2 1

3

8

7

9

11

12

4

5

5

7

11

9

8

4

3

10

6

1 2

Page 11: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

37

Keterangan Gambar 9:

1. Tombol untuk menutup aplikasi.

2. Tombol untuk minimize aplikasi.

3. Nama aplikasi dan versi aplikasi.

4. Tombol tab menu enkripsi.

5. Tombol tab menu dekripsi.

6. Tombol tab menu Key RSA

7. Tombol browse file.

8. Tombol input password.

9. Informasi ukuran file sumber, ukuran file tujuan, dan waktu proses.

10. Progress bar.

11. Tombol Decryption.

3. Key RSA

Pada Gambar 10 disajikan rancangan halaman input key RSA.

Gambar 10. Tampilan Antarmuka Halaman Key RSA

Keterangan Gambar 10:

1. Tombol untuk menutup aplikasi.

2. Tombol untuk minimize aplikasi.

3. Nama aplikasi dan versi aplikasi.

4. Tombol tab menu enkripsi.

5. Tombol tab menu dekripsi.

6. Tombol tab menu Key RSA.

7. Tombol Set Key.

8. Hasil generate P.

9. Hasil generate Q.

10. Hasil generate modulus.

11. Hasil generate ctr coefficient.

12. Hasil generate Public Key.

13. Hasil generate Private Key.

11

10

9

7 4

3

13

6

5

8

12

Page 12: Implementasi Kriptografi Dengan Algoritma Blowfish dan ......CRYPTON yang dibahas di sini termasuk metode kriptografi blok cipher. Teknik Penyandian Pada blok cipher, penyandian dilakukan

Jurnal Format Volume 6 nomor 2 Tahun 2016 :: ISSN : 2089 -5615

38

Perangkat Yang Digunakan

Perangkat yang digunakan dalam proses pembuatan aplikasi terdiri dari:

a. Perangkat Lunak

1) Java (SE) Run Time Environment1.8.0_25.

2) Netbeans IDE 7.4.

3) Adobe Photoshop.

4) Visual Paradigm For UML.

5) Advance Installer 12.5

b. Perangkat Keras

Notebook MSI FX400 dengan spesifikasi Intel® Core™ i3-350M Processor (2.26 GHz, Cache 3MB),

RAM 4 GB DDR3 SODIMM PC-8500, VGA NVIDIA GeForce GT325M 1GB, Kamera onboard,

Resolusi layar 1366 x 768, dan Kapasitas Penyimpanan 320GB.

V. KESIMPULAN

Dari analisa algoritma dan implementasi program maka hasil yang didapatkan dengan menggunakan

algoritma Blowfish dan RSA dapat disimpulkan sebagai berikut:

1. Enkripsi dengan algoritma blowfish terdiri dari dua bagian, yaitu ekspansi kunci yang berfungsi merubah

kunci (minimum 32-bit, maksimum 448-bit) menjadi beberapa array subkunci (subkey) dengan total 4168

byte (18x32-bit untuk P-array dan 4x256x32-bit untuk S-box sehingga totalnya 33344 bit atay 4168 byte)

dan enkripsi data.

2. Enkripsi dengan algoritma RSA memiliki dua buah kunci yang berbeda, yaitu kunci publik dan kunci privat.

Prinsip kerja algoritma RSA menggunakan operasi pemangkatan dan operasi mod (modulus) yang

menghasilkan nilai yang relatif acak.

3. Ukuran file sebelum dan sesudah dienkripsi dengan algoritma Blowfish dan RSA terjadi perubahan karena

penambahan ukuran file sesuai dengan algoritma yang digunakan.

DAFTAR PUSTAKA

[1] Hakim S, Rachmad. 2010. Buku Pintar Windows 7. Jakarta: PT Elex Media Komputindo.

[2] Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika.

[3] Ariyus, Dony. 2006. Kriptografi: Keamanan Data dan Komunikasi. Yogyakarta: Graha Ilmu.

[4] Nani, Paskalis Adrianus. 2011. Penerapan Enkripsi Algoritma Blowfish Pada Proses Steganografi

Metode EOF. Universitas Katolik Widya Mandira: Kupang.

[5] Nandar Pabokory, Fresly., dkk. 2015. Implementasi Kriptografi Pengamanan Data Pada Pesan Teks,

Isi File Dokumen, Dan File Dokumen Menggunakan Algoritma Advanced Encryption Standard.

Jurnal Informatika Mulawarman, Vol 10.