bab ii tinjauan pustaka 2.1 pengertian kriptografi ii.pdfuntuk melakukan enkripsi dan dekripsi,...

12
1 BAB II TINJAUAN PUSTAKA 2.1 Pengertian kriptografi kriptografi adalah seni atau ilmu yang digunakan untuk menjaga keamanan informasi atau pesan dengan mengubahnya menjadi suatu yang tidak memiliki arti. Pada kriptografi terdapat enkripsi dan dekripsi, enkripsi adalah mengubah pesan menjadi data yang tidak bisa dibaca atau di mengerti sedangkan dekripsi adalah mengembalikan data seperti semula sehingga data dapat dibaca dengan baik. Selain itu kriptografi juga dapat dibagi berdasarkan jenis kunci yaitu algoritma simetris dan asimetris. Agoritma simetris adalah algortima yang menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi, sedangkan algoritma asimetris adalah algoritma yang menggunakan kunci berbeda untuk melakukan enkripsi dan dekripsi, untuk eknripsi menggunakan kunci public dan dekripsi menggunakan kunci private. 2.1.1 Kriptografi simetris Algoritma simetris (symmetric algorithm) adalah algortima yang menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi. Gambar 2.1 Proses algoritma kriptografi simetris (Sumber : Kristoforus, Aditya, 2012) 2.1.2 Algoritma AES AES merupakan standar algoritma kriptografi terbaru yang dipublikasikan oleh NIST ( National Institute of Standard and Technology ) sebagai pengganti algoritma DES ( Data Encryption Standard ) yang sudah berakhir masa penggunaannya. Algoritma AES adalah algoritma kriptografi yang dapat mengenkripsi dan mendekripsi data dengan panjang kunci 128 bit, 192 bit, dan 256 bit. Pada algoritma AES (Yuniati dkk, 2009) perbedaan panjang kunci akan mempengaruhi jumlah round yang akan diimplementasikan pada algoritma AES.

Upload: phungtuong

Post on 14-Jul-2019

233 views

Category:

Documents


0 download

TRANSCRIPT

1

BAB II

TINJAUAN PUSTAKA

2.1 Pengertian kriptografi

kriptografi adalah seni atau ilmu yang digunakan untuk menjaga keamanan

informasi atau pesan dengan mengubahnya menjadi suatu yang tidak memiliki

arti. Pada kriptografi terdapat enkripsi dan dekripsi, enkripsi adalah mengubah

pesan menjadi data yang tidak bisa dibaca atau di mengerti sedangkan dekripsi

adalah mengembalikan data seperti semula sehingga data dapat dibaca dengan

baik. Selain itu kriptografi juga dapat dibagi berdasarkan jenis kunci yaitu

algoritma simetris dan asimetris. Agoritma simetris adalah algortima yang

menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi,

sedangkan algoritma asimetris adalah algoritma yang menggunakan kunci berbeda

untuk melakukan enkripsi dan dekripsi, untuk eknripsi menggunakan kunci public

dan dekripsi menggunakan kunci private.

2.1.1 Kriptografi simetris

Algoritma simetris (symmetric algorithm) adalah algortima yang

menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi.

Gambar 2.1 Proses algoritma kriptografi simetris

(Sumber : Kristoforus, Aditya, 2012)

2.1.2 Algoritma AES

AES merupakan standar algoritma kriptografi terbaru yang dipublikasikan

oleh NIST ( National Institute of Standard and Technology ) sebagai pengganti

algoritma DES ( Data Encryption Standard ) yang sudah berakhir masa

penggunaannya. Algoritma AES adalah algoritma kriptografi yang dapat

mengenkripsi dan mendekripsi data dengan panjang kunci 128 bit, 192 bit, dan

256 bit. Pada algoritma AES (Yuniati dkk, 2009) perbedaan panjang kunci akan

mempengaruhi jumlah round yang akan diimplementasikan pada algoritma AES.

2

Tabel 2.1 Jumlah proses berdasarkan bit blok dan kunci

( Sumber : Yuniati dkk, 2009 )

Pada table diatas memperlihatkan jumlah round / putaran ( Nr ) yang harus

diimplementasikan pada masing-masing panjang kunci. Dibawah ini adalah

diagram proses enkripsi dan dekripsi dari algoritma AES.

Gambar 2.2 Diagram proses enkripsi

(Sumber : Kristoforus, Aditya, 2012)

Gambar 2.3 Diagram proses dekripsi

(Sumber : Kristoforus, Aditya, 2012)

3

2.2 Proses Enkripsi Advanced Enryption Standard (AES)

Proses enkripsi algoritma AES terdiri dari 4 jenis transformasi bytes, yaitu

SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey.

2.2.1 Sub bytes

Proses SubBytes adalah mengganti setiap byte state dengan byte pada

sebuah tabel yang dinamakan tabel S-Box. Sebuah tabel S-Box terdiri dari 16x16

baris dan kolom dengan masing-masing berukuran 1 byte.

Gambar 2.4 S-box

( Sumber : Yuniati dkk, 2009 )

Gambar 2.5 Proses sub bytes

( Sumber : Yuniati dkk, 2009 )

2.2.2 Shift Row

Shift rows adalah proses pergeseran bit, bit paling kiri akan dipindahkan

menjadi bit paling kanan ( rotasi bit ).

Gambar 2.6 Proses shift row

( Sumber : Yuniati dkk, 2009 )

4

2.2.3 Mix Columns

MixColumns mengoperasikan setiap elemen yang berada dalam satu kolom

pada state. lebih jelasnya bisa dilihat pada perkalian matriks dibawah ini :

Hasil dari perkalian matriks diatas dapat dilihat dibawah ini :

Berikut adalah contoh perhitungan MixColumns :

Input = D4 BF 5D 30

Output (0) = (D4*2) XOR (BF*3) XOR (5D*1) XOR (30*1)

= E(L(D4)+L(02)) XOR E(L(BF)+L(03)) XOR 5D XOR 30

= E(41+19) XOR E(9D+1) XOR 5D XOR 30

= E(5A) XOR E(9E) XOR 5D XOR 30

= B3 XOR DA XOR 5D XOR 30

= 04

Output (1) = (D4*1) XOR (BF*2) XOR (5D*3) XOR (30*1)

= D4 XOR E(L(BF)+L(02)) XOR E(L(5D)+L(03)) XOR 30

= D4 XOR E(9D+19) XOR E(88+01) XOR 30

= D4 XOR E(B6) XOR E(89) XOR 30

= D4 XOR 65 XOR E7 XOR 30

= 66

Output (2) = (D4*1) XOR (BF*1) XOR (5D*2) XOR (30*3)

= D4 XOR BF XOR E(L(5D)+L(02)) XOR E(L(30)+L(03))

= D4 XOR BF XOR E(88+19) XOR E(65+01)

= D4 XOR BF XOR E(A1) XOR E(66)

5

= D4 XOR BF XOR BA XOR 5D

= 81

Output (3) = (D4*3) XOR (BF*1) XOR (5D*1) XOR (30*2)

= E(L(D4)+L(03)) XOR BF XOR 5D XOR E(L(30)+L(02))

= E(41+01) XOR BF XOR 5D XOR E(65+19)

= E(42) XOR BF XOR (5D) XOR (E(7E)

= 67 XOR BF XOR 5D XOR 60

= E5

Hasil dari MixColumns dicari dengan menggunakan tabel Galois Field

Multiplication. Cara yang dilakukan adalah mirip dengan mencari nilai

SubByte, tetapi tabel yang digunakan bukan tabel S-Box, melainkan E-Table

dan L-Table dari Galois Field Multiplication.

Gambar 2.7 E-Table dari Galois Field Multiplication

(Sumber : Barent, 2014)

Gambar 2.8 L-Table dari Galois Field Multiplication

(Sumber : Barent, 2014)

6

2.3 Proses Dekripsi Advanced Encryption Standard (AES)

Proses dekripsi algoritma AES berbeda dengan proses enkripsi, transformasi

cipher dapat dibalikkan dan diimplementasikan dalam arah yang berlawanan.

Transformasi byte yang digunakan pada invers cipher adalah InvShiftRows,

InvSubBytes, InvMixColumns, dan AddRoundKey.

2.3.1 InvShiftRows

InvShiftRows adalah berkebalikan dengan transformasi shiftrows pada

proses enkripsi. Pada transformasi InvShiftRows, dilakukan pergeseran bit ke

kanan.

Gambar 2.9 Transformasi InvShiftRows

( Sumber : Yuniati dkk, 2009 )

2.3.2 InvSubBytes

InvSubBytes adalah berkebalikan dengan transformasi SubBytes pada

proses enkripsi. Pada InvSubBytes, tiap elemen pada state dipetakan dengan

menggunakan table Inverse S-Box.

Gambar 2.10 Inverse S-Box

( Sumber : Yuniati dkk, 2009 )

2.3.3 InvMixColumns

Setiap kolom dalam state dikalikan dengan matrik perkalian dalam AES.

Perkalian dalam matrik dapat dilihat dibawah ini :

7

Hasil dari perkalian dalam matrik adalah

Untuk mencari hasil dari invers mixcolumn hampir sama dengan

perhitungan pada mixcolumn dengan menggunakan tabel E dan tabel L.

2.4 Add Round Key

Pada proses ini subkey digabungkan dengan state. Proses penggabungan ini

menggunakan operasi XOR untuk setiap byte dari subkey dengan byte yang

bersangkutan dari state. Untuk setiap tahap, subkey dibangkitkan dari kunci utama

dengan menggunakan proses key schedule. Setiap subkey berukuran sama dengan

state yang bersangkutan.

Gambar 2.11 Proses add round key

( Sumber : Surian, 2009 )

2.5 Key Schedule

Proses key schedule diperlukan untuk mendapatkan subkey-subkey dari kunci

utama agar dapat melakukan enkripsi dan dekripsi. Proses ini terdiri dari beberapa

operasi yaitu:

Operasi Rotate, yaitu operasi perputaran 8 bit pada 32 bit dari kunci.

8

Operasi SubBytes, pada operasi ini 8 bit dari subkey disubstitusikan

dengan nilai dari S-Box.

Operasi Rcon, operasi ini dapat diterjemahkan sebagai operasi pangkat

2 nilai tertentu dari user. Operasi ini menggunakan nilai-nilai dalam

Galois field. Nilai-nilai dari Rcon kemudian akan di-XOR dengan hasil

operasi SubBytes. Operasi XOR dengan w[i-Nk] yaitu word yang

berada pada Nk sebelumnya.

Tabel 2.2 Tabel Rcon

(Sumber : Stallings, 2010)

2.6 Gambar (Citra Digital)

Gambar adalah suatu representasi kemiripan atau imitasi dari suatu objek.

Sebuah citra digital dapat diwakili oleh sebuah matriks yang terdiri dari M kolom

dan N baris, dimana perpotongan antara kolom dan baris disebut piksel, yaitu

elemen terkecil dari sebuah citra. Citra bitmap menyimpan data kode citra secara

digital dan lengkap, salah satu contoh citra bitmap yaitu bmp (Kristoforus, Aditya,

2012). Format file bmp ini biasanya digunakan oleh aplikasi dan sistem operasi

Microsoft Windows dan merupakan kompresi tipe lossless. Format ini mampu

menyimpan informasi dengan kualitas tingkat 1 bit sampai 24 bit.

2.7 Kompresi Lossless

Metode Lossless adalah metode yang dapat memperkecil filenya sehingga

ukuran datanya menjadi kecil, namun dapat dikembalikan lagi seperti aslinya.

Proses kompresi dapat dilakukan dengan mengganti suatu data dengan kode yang

berukuran lebih ringkas, data yang diganti tersebut dapat dikembalikan seperti

semula dengan melakukan proses dekompresi. Tujuan utama dari metode lossless

(Wijaya, Widodo, 2010) adalah menghasilkan file yang kecil namun tanpa

sedikitpun mengurangi kualitas dari data tersebut. Hal ini sangat penting untuk

9

data-data yang memerlukan keakuratan yang tinggi. Contoh teknik kompresi

lossless diantaranya adalah Huffman dan Lempel-Ziv-Welch, Dynamic Markov

Compression.

2.7.1 Algoritma Huffman

Algoritma Huffman ini pertama kali diterbitkan pada tahun 1952 oleh D.A.

Huffman dalam paper-nya yang berjudul “A Method for the Construction of

Minimum Redundancy Codes”. Secara umum, algoritma ini dapat memberikan

penghematan sebesar 20%- 30%. Prinsip kerja dari Algoritma Huffman

(Adrisatria, 2006) adalah mengodekan setiap karakter ke dalam representasi bit.

Representasi bit untuk setiap karakter akan berbeda dari segi panjangnya. Hal ini

disebut sebagai variable-length code. Panjang pendek bit yang dihasilkan

ditentukan dengan sering atau tidak karakter tersebut muncul, jika sering maka

bitnya pendek sedangkan jika jarang maka bitnya makin panjang. Untuk cabang

kiri pada pohon biner diberikan label 0, sedangkan pada cabang kanan diberikan

label 1.

Kompresi Huffman adalah metode paling efisien dari metode lain yang

sejenis karena pemetaan lain menghasilkan simbol dari sumber data menjadi

string unik dan menghasilkan file output yang lebih kecil. Algoritma huffman

merupakan algoritma yang paling sederhana dibandingkan dengan algoritma

pengompresian lainnya karena Algoritma Huffman Statis hanya membutuhkan 2

langkah dalam pengompresian hal ini membuatnya begitu cepat, yaitu encoding

dan decoding karena peta kode akan selalu sama (Soendoro,2009). Algoritma

huffman ini dibagi menjadi dua yaitu statis dan dinamis. Algoritma huffman

dinamis lebih sering dipakai dalam proses transfer data (streaming) dan Algoritma

huffman statis dipakai dalam proses pengompresian internal (Soendoro,2009).

Kode Huffman pada dasarnya ( Putra dkk, 2013) adalah himpunan yang

berisi sekumpulan kode biner yang direpresentasikan dari pohon biner yang

diberikan nilai atau label. Untuk cabang kiri diberikan label 0, sedangkan pada

cabang kanan diberikan label 1. Pohon biner ini biasa disebut pohon Huffman

(Huffman tree). Langkah-langkah pembentukannya sebagai berikut :

10

Gambar 2.12 Diagram alir pengkodean Huffman

(Sumber : Zulen, 2009)

Setelah mendapatkan pohon biner, data asli dapat digantikan dengan kode

bit berdasarkan pohon biner, proses ini dinamakan encoding. Encoding

merupakan sebuah cara dalam menyusun susunan (string) biner dari data yang

ada. Proses encoding dilakukan setelah kita memperoleh pohon Huffman

(Soendoro, 2009) yaitu terlebih dahulu melihat akar baru kemudian akar kiri

kemudian kanan. Penyusunan pohon Huffman harus yang kemunculan lebih

besar di kiri, karena pohon kiri akan diperiksa terlebih dahulu daripada pohon

kanan. Metode Huffman termasuk metode lossless compression.

Pengkodean citra berdasarkan pada derajat keabuan (gray level) atau

tingkat warna dari piksel-piksel dalam keseluruhan image. Dengan kata

lain, metode Huffman termasuk dalam pendekatan statistikal (statistical

compression) dalam kompresi citra (Zulen, 2009). Derajat keabuan yang

sering muncul pada citra akan dikodekan dengan jumlah bit lebih sedikit

11

sedangkan derajat keabuan yang sedikit muncul akan dikodekan dengan

jumlah yang lebih panjang. Algoritma Huffman untuk kompresi citra yaitu:

1. Buat data citra yang berupa matriks tersebut menjadi vektor.

2. Tentukan frekuensi kemunculan tiap warna atau derajat keabuan.

3. Urutkan secara menaik warna atau nilai keabuan berdasarkan frekuensi

kemunculannya atau peluang kemunculan piksel dalam citra Setiap nilai

dinyatakan sebagai pohon bersimpul tunggal dan setiap simpul di-

assign dengan frekuensi kemunculan nilai tersebut.

4. Gabungkan 2 buah pohon yang mempunyai frekuensi kemunculan

paling kecil pada sebuah akar. Akar mempunyai frekuensi yang

merupakan jumlah dari frekuensi dua pohon penyusunnya. Frekuensi

dengan nilai lebih kecil diletakkan di sisi kiri dan diberi bobot 0

sedangkan sisi kanan diberi bobot 1.

5. Ulangi langkah 4 sampai tersisa 1 pohon biner.

6. Telusuri pohon biner dari akar ke daun. Barisan bobot sisi dari akar

ke daun menyatakan kode Huffman untuk derajat keabuan atau warna yang

bersesuaian.

7. Mengganti data dengan kode Huffman yang bersesuaian

8. Menyimpan data lebar citra, tinggi citra, kode bit untuk tiap nilai, data

warna yang terdapat di dalam citra, dan data citra yang sudah dikodekan

ke dalam file hasil kompresi.

Berikut ini adalah langkah-langkah untuk mengembalikan data citra yang

sudah dikodekan menjadi data citra semula :

1. Baca file hasil kompresi dan data-datanya dimasukkan ke variabel yang

sesuai yaitu variabel ukuran citra, variabel kode bit data,dan variabel

warna

2. Baca data kode bit per bit dari kiri ke kanan dan dicocokkan dengan kode

Huffman dari data warna yang didapat.Demikian seterusnya konversi

dilakukan hingga data terakhir.

3. Rekonstruksi citra dengan menggunakan data ukuran citra, berarti data

pixel berbentuk 1D dipenggal baris dan kolom sesuai ukuran citra.

12

2.7.2 Rasio Kompresi

Rasio kompresi data adalah menghitung pengurangan ukuran representasi

data yang dihasilkan oleh algoritma kompresi data (Zulen, 2009). Untuk

menghitung persentase kompresi dengan cara :

……………….(1)

Sedangkan untuk menghitung rasio kompresi dengan cara :

……………….(2)

2.8 Algoritma SHA (Secure Hash Algorithm)

SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan

bersama DSS (Digital Signature Standard). Oleh NSA, SHA dinyatakan sebagai

standard fungsi hash satu-arah. Pada tahun 2002 dipublikasikan empat variasi

lainnya, yaitu SHA-224, SHA-256, SHA-384, dan SHA-512, keempatnya disebut

sebagai SHA-2 (Sutanto, 2011).

Algoritma hash menghitung suatu representasi digital dengan panjang yang

telah ditentukan (message digest) dari suatu masukkan data yang panjangnya

berbeda-beda atau bermacam-macam. SHA-1 menerima masukan berupa pesan

dengan ukuran maksimum 264 bit (2.147.483.648 gigabyte) dan menghasilkan

message digest yang panjangnya 160 bit, lebih panjang dari message digest yang

dihasilkan oleh MD5 yang hanya 128 bit. Algoritma utama SHA-1 terdiri dari

enam proses utama berikut.

1. Inisialisasi variabel kunci

2. Penambahan bit 1

3. Pemecahan pesan ke dalam kelompok berukuran 512-bit

4. Ekstensi pesan

5. Iterasi utama

6. Pembangkitan hash value.