implementasi algoritme grain v1 dan 128 bit pada raspberry...
TRANSCRIPT
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-ISSN: 2548-964X Vol. 2, No. 4, April 2018, hlm. 1572-1581 http://j-ptiik.ub.ac.id
Fakultas Ilmu Komputer
Universitas Brawijaya 1572
Implementasi Algoritme Grain V1 Dan 128 Bit Pada Raspberry PI
Syahifudin Shahid1, Ari Kusyanti2, Rakhmadhany Primananda3
Program Studi Teknik Informatika Fakultas Ilmu Komputer, Universitas Brawijaya
Email: [email protected], [email protected], [email protected]
Abstrak
NIST (National Institute of Standard Technology) adalah institusi yang mengatur standar keamanan
data. NIST mengadakan sebuah project bernama eSTREAM untuk memperbarui stream cipher lama
yang telah usang. Algoritme grain terpilih sebagai algoritme keamanan pada sisi hardware serta
menggantikan stream cipher sebelumnya. Algoritme grain memiliki versi 80 bit dan 128 bit.
Keamanan pada tingkat hardware juga diperlukan untuk menjaga sebuah data informasi. Dengan
pembaruan standar keamanan dari NIST maka pada penelitian ini menyampaikan ide untuk
memanfaatkan algoritme grain untuk keamanan data yang akan diimplemntasikan pada raspberry pi.
Penelitian ini memilih raspberry pi dikarenakan banyaknya penggunaan mini PC ini dalam Internet of
Things dan belum ada pembaruan pengamanan data stream cipher. Raspberry pi yang sudah
diimplementasikan dengan grain akan melakukan 3 pengujian yaitu pengujian validasi keystream
dengan test vector, waktu pemrosesan eksekusi IV dan Key sehingga menghasilkan keystream serta
enkripsi dan dekripsi data. Pengujian waktu eksekusi, akan dianalisis menggunakan uji statistik
Independent t- test, hasil analisa pengujian waktu eksekusi keystream pada algoritme grain v1 dan 128
adalah -2,146 dengan probabilitas (Sig.) 0,000 menandakan perbedaan yang signifikan, begitupun
dengan waktu eksekusi 8, 12 dan 16 bit enkripsi dan dekripsi. Penelitian ini menyimpulkan
performansi raspberry pi untuk kedua versi stabil.
Kata kunci: Keamanan, algoritme grain v1 dan 128, Raspberry PI, Independent t-test
Abstract
NIST (National Institute of Standard Technology) is the institution that regulates data security
standards. NIST held a project called eSTREAM to update old outdated stream ciphers. The grain
algorithm is selected as a security algorithm on the hardware side and replaces the previous stream
cipher. Grain algorithm has 2 versions, 80 bit and 128 bit. Security at the hardware level is also
required to keep information data. With the update of security standards from NIST, this research is
conveying the idea to utilize the grain algorithm for data security that will be implemented in
raspberry pi. This study chose raspberry pi due to the large use of this mini PC in the Internet of
Things and there is no update data stream cipher security. Raspberry pi that has been implemented
with grain will do 3 testing that is test of keystream validation with test vector, time of execution
process of IV and Key to produce keystream and encryption and data decryption. The test of execution
time, will be analyzed using Independent t test test, the result of testing of keystream execution time on
grain v1 and 128 algorithm is -2,146 with probability (Sig.) 0,000 indicates a significant difference, as
well as with execution time of 8, 12 and 16 bit encryption and decryption. This research concluded
raspberry pi performance for both stable versions.
Keywords: Security, grain algorithm v1 and 128, Raspberry PI, Independent t-test
1. PENDAHULUAN
Pada era digital saat ini manusia banyak
mengalami ketergantungan pada Internet
terlepas dari semua kegiatan yang dilakukan
baik dalam berkomunikasi ataupun melakukan
transaksi perbelanjaan di internet. Banyaknya
orang tanpa sadar telah memberikan data dan
informasi pribadi. Hal ini dapat memicu individu
untuk melakukan banyak kejahatan seperti
peretasan informasi dan data yang dimiliki oleh
pribadi ataupun kelompok. Faktor kejahatan ini
dipicu karena faktor keamanan data pada internet
yang kurang disadari oleh setiap individu. Ilmu
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1573
Fakultas Ilmu Komputer, Universitas Brawijaya
pengamanan data sagat dibutuhkan pada saat ini
dikarenakan tingkat kejahatan yang semakin
tinggi seperti kriptografi. Kriptografi
merupakan suatu ilmu pengamanan data yang
dapat mencegah pihak tertentu untuk tidak
mengakses data yang bukan wewenangnya.
Proses tranformasi dari plaintext menjadi
ciphertext disebut proses Encipherment atau
enkripsi (encryption), sedangkan proses
mentransformasikan kembali ciphertext
menjadi plaintext disebut proses dekripsi
(decryption) (wijaya, 2016). Dalam kriptografi
terdapat beberapa algoritme yang dapat
diaplikasikan untuk menjaga keamanan data,
algoritme tersebut juga mengalami
perkembangan dan perbaikan dari algoritme
sebelumnya agar penggunaan data dapat tetap
aman (Hamdani, 2012). Keamanan data kini
juga mulai dibutuhkan dalam dunia hardware,
seperti peralatan berkonsep IoT (Internet of
Things) yang memakai embedded device
kompatible serta efisien. Penerapan sistem
keamanan data bagi embedded system
khususnya pada IoT dapat merasa aman dengan
data-datanya, baik sebagai penunjang aplikasi
atau perangkat pendukung maupun bagian
utama system. Penelitian sebelumnya dilakukan
oleh Ahad Jafarpour tentang implementasi
algoritme trivium serta grain pada FPGA chip
dan AVR Microcontroller yang menghasilkan
sebuah perbandingan dari sisi frekuensi dan
critical path pada FPGA, sedangkan pada AVR
micro pada frekuensi, flash memory usage dan
kecepatan. Pada paper ini dijelaskan algoritme
grain and trivium yang diimplementasikan pada
fpga menghasilkan data bahwa trivium
memiliki ruang yang cukup tinggi sedangkan
grain memiliki produksi kunci yang tinggi
dapat disimpulkan bahwa ke dua algoritme
tersebut sesuai diimplementasikan pada FPGA
chip dan AVR (Ahad Jafarpour, 2011). Dari
hasil penelitian diatas tidak dijelaskan bahwa
algoritme tersebut dapat digunakan untuk
pengamanan data yang berkonsep IoT. Pada
penelitian tersebut juga hanya disebutkan
menggunakan FPGA dan AVR ATMEGA32
untuk menguji ke 2 algoritme tersebut. Penulis
mengusulkan untuk mengembangkan algoritme
tersebut sebagai core pengamanan data dalam
embededd device yang berkonsep IoT sehingga
penulis akan meneliti tentang implementasi
algoritme grain v1 dan 128 bit pada raspberry
pI. Algoritme grain merupakan algoritme
pengenkripsi data, algoritme grain menjadi
kandidat piilihan algoritme stream cipher
sebagai standar baru yang dilakukan oleh NIST
dalam proyek eSTREAM. NIST adalah sebuah
organisasi yang mengatur tentang standarisasi
sebuah keamanan data di internet (NISTIR, 2016).
Dimana standart sebuah data akan di perbarui
setiap waktu dan diterapkan diseluruh dunia.
Algoritme grain memiliki berbagai versi untuk
kebutuhan enkripsi yang berbeda untuk
menyesuaikan data, versi tersebut diantaranya
adalah grain v1 dan 128 bit. Algoritme grain v1
dan 128 bit dipilih karena merupakan standart
keamanan baru stream cipher yang telah disahkan
oleh NIST (NISTIR, 2016) Raspberry pi yang
sering disebut sebagai komputer mini, tidak hanya
memiliki fungsi sebagai komputer mini, raspberry
pi dapat juga digunakan sebagai embedded device
yang efisien dan kompatibel. Raspberry pi juga
memiliki tenaga komputasi besar sehingga untuk
perangkat berkonsep IoT yang membutuhkan
integrasi antar perangkat yang menggunakan
komputasi kompleks. Untuk mengolah data hasil
dari analisis penulis menggunakan uji statistik T-
test. Penelitian ini diharapkan akan menjadi
langkah awal diciptakannya enkripsi data
menggunakan raspberry pi yang dikhususkan
sebagai embedded device khususnya yang
berkonsep IoT, agar dapat mengolah datanya
dengan aman.
2. DASAR TEORI
2.1 Kriptografi
Kriptografi merupakan ilmu pengetahuan yang
membahas mengenai pengamanan informasi, baik
data maupun pesan. Terdapat istilah dalam
kriptografi yaitu Enkripsi merupakan proses
merubah plain text (data asli) ke cipher text (data
yang tersandi), sedangkan Dekripsi merupakan
kebalikan dari proses enkripsi (wijaya, 2016).
Dalam kriptografi memiliki tiga tujuan utama yaitu
:
a. Autentication : kriptografi yang dapat
memberikan penggunanya bukti bahwa
pesan yang dikirim merupakan pesan asli
dari sumber terpercaya
b. Confidentiality : Kriptografi yag
memastikan bahwa pesan yang dikirim
tidak dapat dilihat oleh pihak lain, keculi
pihak tersebut memiliki encyption key
yang sama.
c. Integrity : kriptografi yang bertujuan
memastikan bahwa data tersebut masih
tersegel dan tidak ada perubahan saat
proses pengiriman.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1574
Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 1. Arsitektur Grain
Dengan memiliki 3 tujuan utama
kriptografi dibagi menjadi 2 kelompok menurut
algoritmenya yaitu algoritme simetrik dan
asimetrik. Algoritme asimetrik merupakan
algoritme yang memiliki kunci yang sama
untuk proses enkripsi dan dekripsinya.
Sedangkan simetri menggunakan kunci yang
berbeda. Dalam hal ini algoritme simetrik
dibagi menjadi 2 kelompok berdasarkan cara
kerjanya yaitu Block- cipher dan Stream-
cipher. Block – cipher memiliki cara kerja
dengan mengenkripsi setiap bloknya,
sedangkan Stream- cipher mengenkripsi data
text per bit atau setiap bit- bitnya.
2.2 Algoritme Grain
Grain stream cipher adalah sebuah
algoritme yang dirancang untuk memenuhi
project eStream. Project estream akan
digunakan untuk menggantikan algoritme
sebelumnya yang sudah tidak bisa dipakai
karena sudah dapat ditemukan kelemahannya.
Pada algortime grain dibuat dengan konsep
memilki kecepatan yang tinggi , menggunakan
memory yang rendah serta daya yang rendah.
Grain memiliki beberapa versi yang dirangkum
dalam keluarga grain cipher. Keluarga grain
terdiri dari grain V0, V1, dan 128. Grain V1
memiliki key 80 bit dan IV 64 bit dengan
internal 160 bit putaran (Martin Hell T. J.,
2006). Pembaruan versi dilakukan kembali
dikarnakan tingginya perkembangan teknologi,
versi berikutnya yaitu grain 128 bit. Dengan
memiliki key 128 bit dan IV 96 bit dengan
internal 256 bit putaran. Baik V1 dan 128
memiliki arsitektur cara kerja yang sama. Grain
stream cipher memeiliki 3 blok utama yaitu
LFSR(Linear Feedback Shift Register), NFSR
(Non-linear Feedback Shift Register) dan
output. Arsitektur dan cara kerja untuk key
inisialisasi juga serupa. Berikut gambar 1
inisialisasi key:
Pada penjelasan sub bab 2.2 dijelaskan
bahwa algoritme grain memiliki 2 versi, berikut
penjelasan lebih rinci mengenai grain v1 dan 128
bit:
A. Algoritme Grain v1
Grain V1 merupakan versi stabil dari
grain dimana memiliki key 80 bit dan IV 64
bit. Grain v1 meiliki 2 fungsi yang penting yaitu
LSFR yang diberi konotasi ,
sedangkan NSFR (Martin
Hell T. J., 2006). Hasil balikan nilai dari LSFR
dinotasikan dengan persamaan 1 grain V1 yang
merupakan polinomial dari 80 bit:
= 1 + x18 + x29 + x42 + x57 + x67 + x80. . . (1)
Untuk menghapus nilai yang berkemungkinan
bertumpuk pada NFSR karena dilakukannya
internal state sebanyak 160 maka akan dilakukan
update nilai dengan notasi persamaan 2 , berikut:
Si+80 = Si+62 + Si+51 + Si+38 + Si+23 + Si+13 + Si. . . (2)
Setelah LSFR, maka selanjutnya adalah bagian
NSFR, pada NSFR feedback akan dinotasikan
menggunakan persamaan 3, g(x) (Martin Hell T.
J., 2006). Berikut feedback NSFR :
g(x) = 1 + x18 + x20 + x28 + x35 + x43 + x47+ x52 + x59+ x65 + x71 + x80 + x17 x20 + x43 x47 + x65 x71 + x20 x28 x35 + x47 x52 x59 + x17x35 x52 x71 + x20 x28 x43 x47 + x17x20 x59x65 + x17 x20 x28 x35 x43 + x47 x52x59 x65 x71 + x28 x35x43 x47 x52 + x59 (3)
Untuk menghapus nilai yang berkemungkinan
bertumpuk maka dilakukan fungsi update g(x)
pada persaamaan 4 :
bi+80 = Si + bi + bi+14 + bi+21 + bi+28 + bi+33 + bi+37 + bi+45 + bi+52 + bi+60 + bi+62 + bi+9 bi+15 + bi+33
bi+37 + bi+60bi+63 + bi+21bi+28bi+33 + bi+45bi+52bi+60 + bi+15bi+21bi+60bi+63 + bi+9bi+15bi+21bi+28bi+33 + bi+37bi+45bi+52bi+60bi+63 + bi+21bi+28bi+33bi+37bi+45bi+52 (4)
Penentuan nilai h(x) pada grain v1 , terdapat 5
variabel inputan yaitu dari LFSR dan NFSR yang
menghasilkan notasi seperti pada persamaan 5
notasi h(x) :
h(x)= x1 + x4 + x0 x3 + x2 x3 + x3 x4 + x0 x1 x2 + x0 x2 x3 + x0 x2 x4 +x1 x2 x4 + x2 x3 x4 (5)
Penentuan nilai zi pada grain v1 memiliki
ketetapan variable yaitu yang
disesuaikan untuk posisi tap masing – masing
dan . Output akan
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1575
Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 2. Raspberry Pi Model B
dijelaskan pada persamaan 6 berikut:
zi = i + k + h(Si+3 , Si+25 , Si+46 , Si+64 , bi+63) Where (6)
B. Algoritme Grain 128 bit
Pada grain versi 128 memakai key 128 bit,
IV 96 dan internal state 256 bit, LSFR pada
grain128 diberi konotasi ,
sedangkan NSFR (Martin
Hell T. J., 2006). Berikut nilai dari LSFR
dinotasikan dengan yang merupakan
polynomial dari 128 bit pada persamaan 7:
1 + x32 + x47 + x58 + x90 + x121 + x128 (7)
Untuk mencegah nilai bertupuk saat pembuatan
keystream maka dilakukan update pada LSFR.
Dengan dinotasikan pada persamaan 8 sebagai
berikut:
Si+128 = Si + Si+7 + Si+38 + Si+70+ Si+81 + Si+96 (8)
Setelah selesai pada LSFR maka menuju NSFR
, pada NSFR terdapat feedback yang akan
dinotasikan di persamaan 9 g(x) sebagai
berikut:
g(x) = 1 + x32 + x37 + x72 + x102 + x128 + x44 x60 + x61x125 + x63 x67 + x69 x101 + x80 x88 + x110 x111 + x115 x117 (9)
Untuk menghapus nilai yang berkemungkinan
bertumpuk pada NSFR , maka NSFR
memberikan update menggunakan persamaan
10:
bi+128 = Si + bi + bi+26 + bi+56 + bi+91 + bi+96 + bi+3bi+67 + bi+11 bi+13+ bi+17bi+18 + bi+27 bi+59 + bi+40bi+48 + bi+61bi+65 + bi+68 bi+84 (10)
Penentuan nilai h(x) pada grain 128 , terdapat 5
variabel inputan yaitu dari LFSR dan NFSR
yang menghasilkan notasi seperti pada notasi
persamaan 11 h(x) :
h(x)= x0 x1 + x2 x3 + x4 x5 + x6 x7 + x0 x4 x8 (11)
Terdapat 2 input yang diambil dari NSFR dan 7
input dari LSFR dan variabel x0 sampai X8 yang
masing- masing sesuai dengan posisi tap bi+12,
Si+8, Si+13, Si+20, bi+95, Si+42 , Si+60, Si+79, dan
Si+95, maka hasil dari output adalah seperti pada
persamaan 12 output berikut:
zi = i + j + h(x) + Si+93
Where (12)
2.3 Raspberry pi
Raspberry Pi adalah mini komputer dengan
kinerja single-board, low-cost, berperforma tinggi
yang dikembangkan di Inggris oleh Raspberry Pi
Foundation (Raspberry Pi Foundation, 2017).
Tidak hanya membantu perkembangan elektronik
dan pemrograman komputer di seluruh dunia.
Raspberry Pi sekarang ada dalam iterasi
keenamnya yaitu Raspberry pi 3. Tidak hanya
sebagai mini PC raspberry PI dapat pula digunakan
untuk embedded system. Raspberry pi memiliki
system On chip Broadcom BCM2835 dengan
prosesor ARM 1.2GHz 64-bit quad-core ARMv8,
maka raspberry PI memiliki klasifikasi SoC
broadcom BCM2835, CPU 4× ARM Cortex-A53,
1.2GHz. GPU broadcom VideoCore IV, RAM
1GB LPDDR2 (900 MHz). Networking 10/100
Ethernet, 2.4GHz 802.11n wireless. Bluetooth 4.1
Classic, Bluetooth Low Energy. Storage microSD.
GPIO 40-pin header, populated. Ports HDMI,
3.5mm analogue audio-video jack, 4× USB 2.0,
Ethernet, Camera Serial Interface (CSI), Display
Serial Interface (DSI). Berikut Gambar 2
spesifikasi raspberry pi:
2.4 T – Test
Untuk mengolah data dan mengambil suatu
keputusan yang komperatif maka diperlukan suatu
uji statistik, T – test merupakan sebuah uji statistik
komparatif untuk menghitung perbedaan antara
nilai tertentu mengunakan rata- rata kelompok
populasi, dapat digunakan juga untuk menguji
normalitas, yaitu uji statistik untuk menguji data
tersebut berdistribusi normal. Sebelum melakukan
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1576
Fakultas Ilmu Komputer, Universitas Brawijaya
t –test terdapat beberapa asumsi yang perlu
diperhatikan untuk menarik sebuah kesimpulan.
Penelitian ini dikhususkan menggunakan
Independent t – test ( Two – Way Sample t-
test). Independent t – test digunakan ketika
pengujian inferensial membandingkan rata –rata
dua populasi. Independent t – test dilakukan
untuk mengetahui bahwa dua populasi dari
masing – masing kelompok berasal dari
parameter yang tidak diketahui.
3.PERANCANGAN DAN IMPLEMANTASI
3.1. Gambaran umum sistem
Sebelum melakukan implementasi maka di
lakukan tahap perancangan sistem dimana tahap
perancangan sistem terdiri dari 2 kebutuhan
yaitu kebutuhan hardware dan kebutuhan
software .
Pada perancangan sistem dimulai dengan
tahapan diagram alir perancangan sistem. Pada
flowchart dibawah ini menjelaskan
implementasi sistem dimulai dengan
konfigurasi pada Raspberry Pi 3 Model B. Pada
penelitian ini perlu juga dilakukan konfigurasi
pada Netbeans 8.1. Dilanjutkan dengan
implementasi algoritme grain v1 dan 128.
Kemudian penambahan subproses enkrisi dan
dekripsi sehingga algoritme ini dapat
digunakan. Tampilan pada output digunakan
untuk pengecekan nilai hasil dari enkripsi dan
dekripsi. Berikut diagram alir perancangan
sistem pada gambar 3:
Gambar 3. Diagram Alir Perancangan Sistem
Pada perancangan sistem ini juga
memiliki fitur enkripsi dan dekripsi. Berikut
berupa flowchart untuk menjelaskan bagaimana
nilai yang akan dilakukan pada Gambar 4 proses
ini:
Mulai
Masukan Nilai Pilihan Enkripsi dan
Dekrpsi
Pilihan 8 bit
Pilihan 12 bit
Pilihan 16 bit
Enkripsi dekripsi 8 bit
Enkripsi dekripsi 12 bit
Enkripsi dekripsi 16 bit
Cetak Data
Selesai
Plihan exit
Ya
Tidak
Ya
Ya
Ya
Tidak
Tidak
Tidak
Gambar 4. Diagram Alir Perancangan Proses Enkripsi
dan Dekripsi
Pada flowchart tersebut menjelaskan
bagaimana cara enkripsi dan dekripsi pada
algoritme grain. Diawali dengan memasukkan
pilihan tentang data yang akan dienkripsi yaitu 8 ,
12 atau 16 bit. Jika tidak memasukkan nilai maka
akan keluar menuju menu exit dan mencetak data.
3.2. Implementasi
Dalam tahap implementasi akan dijelaskan
bagaimana algoritme grain v1 dan 128 diterapkan
dalam Raspberry Pi 3 Model B. Pada sisi hardware
raspberry pi akan dihubungkan dengan laptop
menggunakan kabel power dan kabel LAN, seperti
gambar 3.1 berikut:
Gambar 5. Implementasi Hardware
Sedangkan pada sisi software akan algoritme
grain akan diimplementasikan pada raspberry PI
menggunakan bahasa C/C++. Algoritme grain v1
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1577
Fakultas Ilmu Komputer, Universitas Brawijaya
dan 128 bit dibagi menjadi 4 bagian yaitu
LFSR, NFSR, h(x) dan keystream. Pada bagian
tersebut merupakan struktur implementasi
algoritme grain.Pada algoritme grain v1 LFSR
berisikan data sebanyak 80 bit, nillai – nilai
tersebut berasal dari initial value yang
berjumlah 64 bit kemudian 16 bit akhir dari
LFSR diberi nilai 1. Proses LFSR grain v1
mengambil beberapa nilai dari initial value dan
diproses kemudian hasilnya dikembalikan lagi
ke nilai paling akhir dari LFSR. NFSR grain v1
memiliki deretan nilai 80 bit yang diisi dengan
nilai KEY yang terdiri dari 80 bit. Hasil
penghitungan nilai dari NFSR akan
dikembalikan pada nilai terakhir NFSR sampai
selesainya proses iterasi pada grain v1. Filter
h(x) merupakan sebuah proses yang telah
ditentukan untuk mengambil beberapa nilai dari
NFSR dan LFSR. Proses filter ini untuk
membentuk nilai keystream zi yang digunakan
untuk proses enkripsi dan dekripsi. Proses
keystream zi merupakan proses akhir dari
algoritme grain v1 dimana proses ini
mengambil beberapa nilai dari NFSR kemudian
data tersebut diolah dengan hasil dari h(x)
hingga menghasilkan sebuah nilai biner yang
disebut dengan keystream.Algoritme grain 128
memilki fungsi – fungsi yang serupa dengan
algoritme grain v1. Perbedaan terletak pada
jumlah data sebanyak 128 bit pada LFSR dan
NFSR serta pada KEY dan IV yang bernilai
128 dan 96 bit. Pengambilan nilai pada LFSR
dan NFSR juga berbeda dengan pengambilan
data pada grain v1. Pengambilan data ini
memilki jumlah data lebih banyak dari pada
algoritme grain v1.Proses enkripsi dan dekripsi
kedua algoritme memilki kesamaan yaitu
dengan memproses nilai masukan yaitu
plaintext dengan keystream
hinggamenghasilkan ciphertext kemudian pesan
ciphertext diproses kembali dengan keystream
untuk menghasilkan plaintext kembali.
dikembalikan pada nilai terakhir NFSR sampai
selesainya proses iterasi pada grain v1. Filter
h(x) merupakan sebuah proses yang telah
ditentukan untuk mengambil beberapa nilai dari
NFSR dan LFSR. Proses filter ini untuk
membentuk nilai keystream zi yang digunakan
untuk proses enkripsi dan dekripsi. Proses
keystream zi merupakan proses akhir dari
algoritme grain v1 dimana proses ini
mengambil beberapa nilai dari NFSR kemudian
data tersebut diolah dengan hasil dari h(x)
hingga menghasilkan sebuah nilai biner yang
disebut dengan keystream. Algoritme grain 128
memilki fungsi – fungsi yang serupa dengan
algoritme grain v1. Perbedaan terletak pada jumlah
data sebanyak 128 bit pada LFSR dan NFSR serta
pada KEY dan IV yang bernilai 128 dan 96 bit.
Pengambilan nilai pada LFSR dan NFSR juga
berbeda dengan pengambilan data pada grain v1.
Pengambilan data ini memilki jumlah data lebih
banyak dari pada algoritme grain v1. Proses
enkripsi dan dekripsi kedua algoritme memilki
kesamaan yaitu dengan memproses nilai masukan
yaitu plaintext dengan keystream hingga
menghasilkan ciphertext kemudian pesan
ciphertext diproses kembali dengan keystream
untuk menghasilkan plaintext kembali.
4. PENGUJIAN DAN ANALISIS
4.1 Pengujian Validitas
Pengujian validasi algoritme grain v1 dengan
mengambil sampel masukan KEY dan IV berisi 0
serta keystream pada sistem. Test vector algoritme
grain v1 adalah sebuah pengujian yang telah
ditetapkan oleh pembuat grain v1pada Gambar 6.
KEY : 00000000000000000000
IV : 0000000000000000
KEYSTREAM : 7bd978cf36846e5f4ee0b
Gambar 6. Test Vector Grain v1
Berikut tabel 1 hasil pengujian validitas:
Tabel 1 Pengujian Validitas Grain v1
Tabel 1 menjelaskan bahwa keystream yang
dikeluarkan oleh sistem sesuai dengan test vector
KEY IV Keystream
Sistem
Test vector
grain v1
00000000
00000000
0000000000000000
00000000
00000000
0000000000000000
00000000
00000000
0
00000000
00000000
0000000000000000
00000000
00000000
0000000000000000
0111101110
0101111000
11001111001101101000
0100011011
1001011111
01001110111000001011
0111010111
1111011000
00011001010011000111
0010111010
1010001010
00100101001100000001
1101000100
0001001011
11101011111110110011
1
0111101110
0101111000
11001111001101101000
0100011011
1001011111
01001110111000001011
0111010111
1111011000
00011001010011000111
0010111010
1010001010
00100101001100000001
1101000100
0001001011
11101011111110110011
1
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1578
Fakultas Ilmu Komputer, Universitas Brawijaya
pada paper pembuat algoritme grain. Keysteam
pada test vector menggunakan tipe angka heksa
desimal, sedangkan pada sistem menggunakan
tipe data biner yang keduanya merupakan hasil
yang sama dan hasil dari pengujian validasi
grain v1 dapat dinyatakan valid. Pengujian
selanjutnya validasi algoritme grain 128 dengan
mengambil sample masukan KEY dan IV berisi
0 serta keystream pada sistem. Berikut test
vector algoritme grain 128 adalah sebuah
pengujian yang telah ditetapkan oleh pembuat
grain 128 pada Gambar 7:
KEY : 00000000000000000000000000000000
IV : 00000000000000000000000000
KEYSTREAM: 0fd9deefeb6fad437bf43fce35849cfe
Gambar 7. Test Vector Grain 128
Berikut tabel 2 hasil pengujian validitas:
Tabel 2 Pengujian Validitas Grain 128
Tabel 2 menjelaskan bahwa keystream
yang dikeluarkan oleh sistem sesuai dengan test
vector pada paper pembuat algoritme grain.
Keysteam pada test vector menggunakan tipe
angka heksa desimal, sedangkan pada sistem
menggunakan tipe data biner yang keduanya
merupakan hasil yang sama dan hasil dari
pengujian validasi grain v1 dapat dinyatakan
valid.
4.2 Pengujian dan Analisis Waktu Eksekusi
Keystream
Pengujian dan analisis waktu eksekusi
keystream dilakukan dengan tujuan untuk
mengetahui waktu pemrosesan keytsream.
Mekanisme dari keystream ini yaitu melakukan
semua fungsi yang ada dalam grain v1 dan 128
hingga keystream bisa digunakan, Pengujian
waktu pemrosesan keystream, digantikan secara
manual nilai dari KEY dan IV agar dapat
menghitung waktu yang ditempuh pada kedua
algoritme.Waktu perhitungan akan dimulai pada
saat program di compile pada raspberry pi 3 model
b menekan tombol build pada netbeans dan akan
berhenti pada tampilnya keystream pada antarmuka
utama output netbeans. Berikut merupakan grafik
dari hasil pengujian waktu eksekusi keystream
yang dilakukan oleh raspberry pi:
Gambar 8. Grafik Waktu Eksekusi Keystream
Berdasarkan Gambar 8 untuk melihat
perbandingan waktu pengujian keystream untuk
KEY dan IV pada algoritme grain v1 dan grain 128,
maka dilakukan independent sample t-test pada
data hasil pengujian. Hasil pengujian independent
sample t-test perbedaan waktu perbandingan waktu
pengujian keystream untuk KEY dan IV pada
algoritme grain v1 dan grain 128 dapat dilihat pada
Gambar 9 berikut:
Gambar 9. Tabel Analisis Independent t- test keystream
Pada Gambar 9 menjelaskan bahwa nilai
probabilitas dari hasil perhitungan t-test dari hasil
KEY IV Keystream
Sistem
Test vector
grain 128
00000000
0000000000000000
00000000
00000000
0000000000000000
00000000
00000000
0000000000000000
00000000
00000000
0000000000000000
00000000
00000000
0000000000000000
00000000
00000000
0000000000000000
00000000
00000000
0000000000000000
00000000
0000111111
01100111011110111011
1111101011
0110111110
10110101000011011110
1111110100
0011111111
00111000110101100001
0010011100
1111111001
11011110010100100010
1010010101
1000100011
11011111011011111010
0101110100
1001011010
11111000100010000011
11110011
0000111111
01100111011110111011
1111101011
0110111110
10110101000011011110
1111110100
0011111111
00111000110101100001
0010011100
1111111001
11011110010100100010
1010010101
1000100011
11011111011011111010
0101110100
1001011010
11111000100010000011
11110011
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1579
Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 11. Tabel Hasil Independent t- test 8 bit
pengujian waktu pemrosesan keystream pada
algoritme grain v1 dan grain 128 adalah (Sig.)
0,000. Karena probabilitas 0,000 < 0,05 maka
terdapat perbedaan yang signifikan antara
waktu pemrosesan keystream pada algoritme
grain v1 dan grain 128. Maka dapat
disimpulkan bahwa hasil analisis pengujian
pemrosesan keystream pada algoritme grain v1
dan grain 128 memiliki perbedaan yang
signifikan.
4.3 Pengujian dan Analisis Waktu Eksekusi
Enkripsi Dekripsi
Pengujian dan analisis waktu eksekusi
enkripsi dekripsi bertujuan untuk
mengetahui waktu pemrosesan enkripsi dan
dekripsi pada raspberry pi 3 model b.
Mekanisme dari enkripsi dan dekripsi ini
yaitu melakukan masukan plaintext
sebanyak 8, 12 dan 16 bit, maka berapa
banyak waktu yang dibutuhkan oleh
raspberry pi 3 model b untuk melakukan
enkripsi dan dekripsi yang terdapat pada
grain v1 dan 128. Berikut merupakan hasil
dari waktu enkripsi dekripsi 8, 12 dan 16
bit:
A. Enkripsi dan Dekripsi 8 bit
Berdasarkan Gambar 10 akan dilakukan
independent sample t-test pada data hasil
pengujian tersebut. Hasil pengujian independent
sample t-test akan memperlihatkan perbedaan
waktu pengujian enkripsi dan dekripsi pada
algoritme grain v1 dan grain 128 dapat dilihat
pada gambar 11 berikut:
Pada analisi hasil yang diberikan oleh gambar
4.3 diketahui nilai t dari hasil perhitungan t-test
dari hasil pengujian waktu pemrosesan enkripsi
dan dekripsi dengan masukan 8 bit pada algoritme
grain v1 dan grain 128 adalah 0,209 dengan
probabilitas (Sig.) 0,533. Karena probabilitas 0,533
> 0,05 maka Tidak terdapat perbedaan yang
signifikan antara waktu pengujian pemrosesan
enkripsi dan dekripsi dengan algoritme grain v1
dan grain 128 pada raspberry pi 3 model b.
B. Enkripsi dan Dekripsi 12 bit
Gambar 12. Grafik Hasil Perbandingan Waktu 12 bit
Berdasarkan Gambar 12 untuk melihat
perbedaan waktu pengujian pemrosesan enkripsi
dan dekripsi 12 bit masukan pada algoritme grain
v1 dan grain 128, maka dilakukanlah independent
sample t-test pada data hasil pengujian tersebut.
Hasil pengujian independent sample t-test
perbedaan waktu pengujian enkripsi dan dekripsi
pada algoritme grain v1 dan grain 128
menggunakan raspberry pi 3 model b dapat dilihat
pada Gambar 13 berikut:
Gambar 10. Grafik Hasil Perbandingan Waktu 8 bit
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1580
Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 13. Tabel Hasil Independent t- test 12 bit
Diketahui nilai probabilitas (Sig.) 0,849.
Karena probabilitas 0,849 > 0,05 maka tidak
terdapat perbedaan yang signifikan antara
waktu pengujian pemrosesan enkripsi dan
dekripsi 12 bit dengan algoritme grain v1 dan
grain 128 pada raspberry pi 3.
C. Enkripsi dan Dekripsi 16 bit
Gambar 14. Grafik Hasil Perbandingan Waktu 16 bit
Gambar 4.6 untuk melihat perbedaan
waktu pengujian pemrosesan enkripsi dan
dekripsi 16 bit masukan pada algoritme grain
v1 dan grain 128, maka dilakukanlah
independent sample t-test pada data hasil
pengujian tersebut. Hasil pengujian independent
sample t-test perbedaan waktu pengujian
enkripsi dan dekripsi pada algoritme grain v1
dan grain 128 menggunakan raspberry pi 3
dapat dilihat pada Gambar 15 berikut:
Gambar 15. Tabel Hasil Independent t- test 16 bit
Pada analisis hasil yang diberikan oleh
gambar 15 diketahui nilai probabilitas (Sig.) 0,730.
Karena probabilitas 0,730 > 0,05 maka artinya
tidak terdapat perbedaan yang signifikan antara
waktu pengujian pemrosesan enkripsi dan dekripsi
16 bit dengan algoritme grain v1 dan grain 128
pada raspberry pi 3. Berdasarkan hasil pengolahan
ke 3 data tersebut, maka dapat disimpulkan bahwa
algoritme grain v1 dan 128 bit yang
diimplementasikan pada raspberry pi tidak
memiliki perbedaan waktu eksekusi yang
signifikan. Menandakan bahwa raspberry pi
memiliki sistem yang stabil untuk melakukan
implementasi algoritme grain.
7. KESIMPULAN
Kesimpulan yang dapat diambil dari
penelitian mengenai implementasi algoritme grain
v1 dan 128 bit pada Raspberry Pi adalah sebagai
berikut:
1. Hasil validasi antara keluaran sistem yang
berupa keystream menunjukan hasil yang
serupa dengan test vector. Menandakan bahwa
sistem dapat menjalankan algoritme grain v1
dan 128 dengan baik.
2. Kinerja pemrosesan keystream pada algoritme
grain v1 dan 128 memiliki performa yang
signifikan. Pada hasil analisis antara grain v1
dan 128 menunjukan mean difference -2,444
dengan probabilitas (Sig.) 0,000 menandakan
perbedaan yang signifikan. Raspbery pi 3
memiliki performa yang stabil dalam
memproses kedua algoritme.
3. Kinerja pemrosesan enkripsi dan dekripsi data
8, 12, dan 16 bit pada algoritme grain v1 dan
128 memiliki performa yang tidak signifikan.
Hasil analisis antara grain v1 dan 128
menunjukan nilai probabilitas (Sig.) 0,533 pada
8 bit, nilai probabilitas (Sig.) 0,849 untuk 12bit
dan nilai probabilitas (Sig.) 0,730 pada 16 bit.
Dari hasil analisis tersebut menandakan tidak
adanya perbedaan yang signifikan dan
raspberry pi 3 memiliki performa yang stabil
dalam menjalankan enkripsi dan dekripsi.
8. DAFTAR PUSTAKA
Ahad Jafarpour, A. M. 2011. Grain and trivium
cipher implemntation algorithm in FPGA
chip and AVR Micro controller, 657 - 659.
FOUNDATION, R. P. 2016. Raspberry PI 3
Model B. Dipetik February 3, 2017, dari
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1581
Fakultas Ilmu Komputer, Universitas Brawijaya
www.raspberrypi.org:
https://www.raspberrypi.org/products/r
aspberry-pi-3-model-b/
Hamdani. 2012. Kriptografi. Penerapan Metode
Vigenere pada Kriptografi Klasik untuk
Pesan Rahasia.
Helmi Guntoro, Y. S. 2013. mikrokontroler.
Rancang Bangun Magnetic door lock
menggunakan keypad dan solenoid
berbasis mikrokontroler arduino uno, 1
-10.
J.M. Marmolejo-Tejada, V. T.-O.-M. 2010.
Hardware Implementation of Grain-
128, Mickey-128,Decim-128 and
Trivium, 1 - 6.
Latan, H. 2014. APLIKASI ANALISIS
DATASTATISTIK UNTUK ILMU
SOSIAL SAINS dengan IBM SPSS.
Bandung: Alfabeta.
Martin Hell, T. J. 2006. Grain - A Stream
Cipher for Constrained Environments,
6- 14.
Martin Hell, T. J. 2006. A Stream Cipher
Proposal: Grain-128, 1 - 6.
Mohammad Ubaidullah Bokhari, S. A. 2014. A
Detailed Analysis of Grain family of
Stream Ciphers, 34 - 40.
Syamsi Nurdiansah, A. A. 2013. Implementasi
Algoritme Trivium pada
Mikrokontroler Arduino Duemilonove
sebagai Modul Pembangkit Bilangan
Acak, 6.
wijaya, C. 2016. kriptografi. KEAMANAN
DATA DENGAN METODE
KRIPTOGRAFI KUNCI PUBLIK, 11 -
15.
WIBAWA, A. P., NAFALSKI, A. &
MAHMUDY, W. F. 2013. Javanese
`speech levels machine translation:
improved parallel text alignment based
on impossible pair limitation. IEEE
International Conference on
Computational Intelligence and
Cybernetics, 3-4 December,
Yogyakarta, Indonesia. 16-20.