implementasi kriptografi dengan algoritma blowfish dan ......crypton yang dibahas di sini termasuk...
Post on 24-Aug-2021
10 Views
Preview:
TRANSCRIPT
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
1faizal.zuli@yahoo.com,
2ari.irawan@uinjkt.ac.id
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]
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.
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.
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.
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.
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
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.
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
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
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
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
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.
top related