BAB 2 TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

TINJAUAN PUSTAKA. Kriptografi

Advanced Encryption Standard (AES)

BAB I PENDAHULUAN. Universitas Sumatera Utara

BAB 2 LANDASAN TEORI

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

MENGENAL PROSES PERHITUNGAN ENKRIPSI MENGGUNAKAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD(AES) RIJDNAEL

Algoritma Kriptografi Modern (AES, RSA, MD5)

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

BAB 2 TINJAUAN PUSTAKA

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

Algoritma Spiral shifting

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

BAB 2 LANDASAN TEORI

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

BAB II LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Pengenalan Kriptografi

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

Perhitungan dan Implementasi Algoritma RSA pada PHP

Algoritma AES (Advanced Encryption Standard) dan Penggunaannya dalam Penyandian Pengompresian Data

STUDI DAN IMPLEMENTASI ADVANCED ENCRYPTION STANDARD DENGAN EMPAT MODE OPERASI BLOCK CIPHER

BAB II TINJAUAN PUSTAKA

Algoritma Enkripsi Baku Tingkat Lanjut

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

STUDI TERHADAP ADVANCED ENCRYPTION STANDARD (AES) DAN ALGORITMA KNAPSACK DALAM PENGAMANAN DATA

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

LAMPIRAN A ALGORITMA AES 128

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

BAB 2 TINJAUAN PUSTAKA

RANCANG BANGUN PROGRAM KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD

BAB III ANALISIS DAN PERANCANGAN

BAB Kriptografi

General Discussion. Bab 4

ADVANCED ENCRYPTION STANDARD (AES) DENGAN ONE TIME PASSWORD UNTUK KEAMANAN LAYANAN SMS BANKING

BAB 2 LANDASAN TEORI

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

Proses Enkripsi dan Dekripsi menggunakan Algoritma Advanced Encryption Standard (AES)

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN

Algoritma AES sebagai Metode Enkripsi dalam Password Management

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

KRIPTOGRAFI KUNCI PUBLIK

ANALISA ALGORITMA BLOCK CIPHER DALAM PENYANDIAN DES DAN PENGEMBANGANNYA

Kriptografi Kunci Rahasia & Kunci Publik

Data Encryption Standard (DES)

KOMBINASI ALGORITMA AES, RC4 DAN ELGAMAL DALAM SKEMA HYBRID UNTUK KEAMANAN DATA

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

KOMBINASI ALGORITMA AES, RC4 DAN ELGAMAL DALAM SKEMA HYBRID UNTUK KEAMANAN DATA

KRIPTOGRAFI CITRA DIGITAL DENGAN ALGORITMA RIJNDAEL DAN TRANSFORMASI WAVELET DISKRIT HAAR

POLYNOMIAL FUNCTIONS DAN IMPLEMENTASINYA DALAM ALGORITMA ADVANCED ENCRYPTION STANDARD PADA DATABASE ACCOUNTING

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

STUDI KRIPTOGRAFI MENGENAI TRIPLE DES DAN AES

STUDI DAN IMPLEMENTASI ALGORITMA RIJNDAEL UNTUK ENKRIPSI SMS PADA TELEPON GENGGAM YANG BERBASIS WINDOWS MOBILE 5.0

BAB III KUNCI PUBLIK

ALGORITMA KRIPTOGRAFI AES RIJNDAEL

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB 2 LANDASAN TEORI

RSA (Rivest, Shamir, Adleman) Encryption

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

Serangan (Attack) Terhadap Kriptografi

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

BAB II TINJAUAN PUSTAKA

Pengaruh Variasi Panjang Kunci, Ukuran Blok, dan Mode Operasi Terhadap Waktu Eksekusi pada Algoritma Rijndael

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB 1 PENDAHULUAN Latar Belakang

Implementasi Disk Encryption Menggunakan Algoritma Rijndael

Pengkajian Metode dan Implementasi AES

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Blok Cipher JUMT I. PENDAHULUAN

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

KOMBINASI ALGORITMA TRIPLE DES DAN ALGORITMA AES DALAM PENGAMANAN FILE

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

BAB II LANDASAN TEORI

Public Key Cryptography

Transkripsi:

6 BAB 2 TINJAUAN PUSTAKA 2.1. Kriptografi Kriptografi berasal dari bahasa Yunani, cryptosdan graphein. Cryptosberarti rahasia dan graphein berarti tulisan. Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika dikirim dari suatu tempat ke tempat yang lain. Kriptografi telah dikenal sejak ribuan tahun lalu, bahkan beberapa ahli mengatakan ilmu penyembunyian pesan ini telah dikenal sejak zaman mesir kuno, masyarakat mesir menulisnya dalam bentuk hieroglyphy yang bentuk tulisannya tidak standard dalam aturan penulisan pesan. (Konheim, 2007). Kriptografi dapat pula diartikan sebagai ilmu atau teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasian, integritas data, serta otentikasi. Prinsip dasar kriptografi adalah menyembunyikan informasi dalam bentuk sedemikian rupa sehingga hanya orang-orang yang berhak saja yang dapat mengetahui isi informasi yang disembunyikan itu. (Smart, 2004). Dalam algoritma kriptografi dikenal beberapa komponen yaitu: 1. Enkripsi merupakan suatu proses pengubahan pesan asli yang disebut plainteks menjadi suatu kode yang tidak bisa dimengerti atau disebut juga cipherteks.

7 2. Dekripsi merupakan proses pengubahan cipherteks menjadi plainteks. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma yang digunakan untuk enkripsi. 3. Kunci Berfungsi untuk melakukan enkripsi dan dekripsi. Berdasarkan jenis kunci yang digunakan kriptografi terbagi dua yaitu algoritma kriptografi simetris dan algoritma kriptografi asimetris. 4. Plainteks merupakan pesan asli (clearteks). Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan akan diproses menggunakan algoritma kriptografi untuk menjadi kode-kode yang tidak bisa dipahami. 5. Cipherteks merupakan bentuk pesan yang telah disandikan sehingga tidak bisa dibaca karena berupa karakter yang tidak mempunyai makna. Dari lima komponen dalam kriptografi tersebut saling berhubungan. Plainteks dan cipherteks merupakan hasil pemetaan dari fungsi enkripsi dan dekripsi dengan menggunakan sebuah kunci. Misalkan P menyatakan plainteks, C menyatakan cipherteks, dan k menyatakan kunci, maka fungsi enkripsi dan dekripsi dapat ditulis E k (P) = C maka D k (C) = P sehingga D k (E k (P)) = P. (Munir, 2006). 2.1.1. Algoritma kriptografi kunci simetris Dalam algoritma ini kunci pada saat penyandian pesan sama dengan kunci pada saat pendekripsian pesan. Jadi pembuat pesan dan penerimanya harus menyepakati kunci yang akan digunkan. Masalah yang paling jelas disini terkadang bukanlah masalah pengiriman cipherteks nya, melainkan masalah bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan karena sekali saja kunci tersebut diketahui oleh pihak yang lain maka pesan tersebut akan mudah untuk dienkripsi dan didekripsi oleh orang lain.

8 Contoh algoritma kunci simetris yang terkenal salah satunya adalah DES (Data Encryption Standard), AES Rijndael, dan IDE, kelemahan pada algoritma kunci simetris, kunci harus didistribusi dengan aman, jika ada n pengguna maka dibutuhkan jumlah kunci sebanyak n(n-1)/2 kunci. Jika kunci berhasil ditemukan oleh pihak yang tidak berhak, maka sistem kriptografi tidak lagi aman. Dibalik kelemahan di atas, terdapat juga keuntungan dari penggunaan algoritma ini yaitu prosesnya lebih cepat jika dibandingkan dengan kriptografi asimetri. Keuntungan inilah yang menjadi dasar mengapa algoritma ini masih banyak digunakan dan terus dikembangkan. Kunci privat,k Kunci privat,k Plainteks Enkripsi Ciphertext Dekripsi Plainteks E k (P)=C D k (C)=P User A User B Gambar 2.1 Skema Kriptografi Simetri (Munir, 2006) 2.1.2. Algoritma kriptografi kunci asimetri Whitfield Diffie dan Martin Hellman memperkenalkan konsep kriptografi kunci publik (kunci asimetris) pada tahun 1976. Pada algoritma asimetris kunci terbagi menjadi dua bagian yaitu: 1. Kunci umum (public key): kunci yang boleh diketahui semua orang (dipublikasikan). 2. Kunci rahasia (private key): kunci yang dirahasiakan (hanya boleh diketahui oleh satu orang saja).

9 Seseorang dapat mengirim sebuah pesan rahasia dengan menggunakan kunci publik tetapi pesan cipherteks hanya dapat didekripsi dengan kunci rahasia yang dimiliki penerima pesan. User A Kunci publik K1 Kunci privat K2 User B Plainteks P Enkripsi E k1 (P)=C Ciphertext C Dekripsi D k2 (C)=P Plainteks P Gambar 2.2 Skema Kriptografi Asimetri (Munir, 2006) Aplikasi kunci publik dapat diimplementasi menjadi tiga kategori: 1. Kerahasian data Kriptografi kunci-publik dapat digunakan untuk menjaga kerahasiaan data melalui mekanisme enkripsi dan dekripsi. Contoh algoritma untuk aplikasi ini adalah RSA, Knapsack, dan Elgamal. 2. Tanda-tangan digital Kriptografi kunci publik dapat digunakan untuk membuktikan otentikasi pesan maupun otentikasi pengirim. Contoh algoritma untuk aplikasi ini adalah RSA, DSA, dan Elgamal. 3. Pertukaran kunci (key exchange) Algoritma kriptografi kunci publik dapat digunakan untuk pengiriman kunci simetri (sessionkey). Contoh algoritmanya adalah RSA dan Diffie-hellman. Dalam implementasinya, sistem kriptografi kunci publik bukan pengganti sistem kriptografi simetris. Sistem kriptografi kunci publik tidak digunakan untuk mengengkripsi pesan, melainkan untuk mengenkripsi kunci pada sistem kriptografi simetris. Dengan sistem kriptografi kunci publik maka pertukaran kunci pada sistem kriptigrafi simetris dapat dilakukan dengan aman.

10 2.2. Jenis-Jenis Serangan Terhadap Kriptografi Serangan terhadap sistem kriptografi dapat dikelompokkan dengan beberapa cara: 1. Berdasarkan keterlibatan penyerang dalam komunikasi: a. Serangan aktif Pada jenis serangan ini, penyerang mengintervensi komunikasi secara langsung dan ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian ciphertext, mengubah ciphertext, menyisipkan potongan ciphertext palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya. Serangan yang termasuk jenis serangan aktif adalah man-inthe-middle attack. b. Serangan pasif Pada jenis serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan data antara lain: 1) Wiretapping: penyadap mencegat data yang ditransmisikan pada saluran komunikasi dengan menggunakan sambungan perangkat keras. 2) Electromagnetic eavesdropping: penyadap mencegat data yang ditransmisikan melalui saluran wireless, misalnya radio dan microwave. 2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis: a. Ciphertext-only attack Ini adalah jenis serangan yang paling umum namun paling sulit karena informasi yang tersedia hanyalah ciphertext saja.tugas kriptanalis adalah menemukan plaintext sebanyak mungkin dari ciphertext tersebut dengan mencoba setiap kemungkinan kunci yang dimiliki.(arriyus, 2008).

11 b. Known-plaintext attack Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden. Beberapa pesan yang formatnya terstruktur membuka peluang kepada kriptanalis untuk menerka plainteks dari cipherteks yang bersesuaian. c. Chosen-plaintext attack Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteks yang lebih mengarahkan penemuan kunci. d. Chosen-ciphertext attack Ini adalah jenis serangan dimana kriptanalis memilih cipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi (misalnya terhadap mesin elektronik yang melakukan dekripsi secara otomatis). Jenis serangan ini biasanya dipakai pada sistem kriptografi. e. Chosen-text attack Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext dan chosen-ciphertext attack. 3. Berdasarkan teknik yang digunakan dalam menemukan kunci: a. Exhaustive attack atau brute force attack Ini adalah serangan untuk mengungkap plainteks atau kunci dengan mencoba semua kemungkinan kunci. b. Analytical attack Kriptanalis menganalisis kelemahan algoritma kriptografi untuk mengurangi kemungkinan kunci yang tidak mungkin ada. Analisis dapat menggunakan pendekatan matematik dan statistik dalam rangka menemukan kunci.

12 2.3. Algoritma AES Rijndael Pada tahun 1997 NIST (National Institute of Standards and Technology) berniat ingin mencari pengganti algoritma DES, hal ini dikarenakan dalam tempo 96 hari 70 ribu PC berhasil membobol kunci DES, kemudian pada tahun 1998 hanya dalam tempo 22 hari, sehingga dibuat suatu mesin khusus untuk memecahkan algoritma DES. Mesin tersebut terbukti dapat memecahkan 25% kunci DES dalam waktu 2,3 hari dan dapat memecahkan seluruh kunci DES dalam waktu rata-rata 4,3 hari. Karena alasan tersebut NIST ingin mengadakan kompetisi yang diikuti para kriptografer seluruh dunia agar segara mendapatkan pengganti dari algoritma DES.(Arriyus, 2008). Pada tanggal 9 Agustus 1999, NIST melalui seleksi yang sangat ketat mengumumkan 5 finalis yang akan memasuki seleksi akhir yaitu MARS, RC6, Rijndael, Serpent, dan Twofish. Pada seleksi akhir tanggal 2 Oktober 2000 maka terpilihlah Rijndael sebagai pemenang. Algoritma Rijndael dibuat oleh Dr. Vincent Rijmen dan Dr. Joan Daemen. Evaluasi terhadap algoritma Rijndael tersebut dapat dilihat dari beberapa sudut pandang berikut ini: 1. Dari segi general security a. Belum ada serangan yang serius dalam memecahkan skema dari Rijndael b. Rijndael menggunakan komponen S-Box non linear. c. Rijndael memiliki struktur matematika yang bisa terus mengalami perkembangan. 2. Dari segi enkripsi dekripsi a. Memiliki kode yang sangat rumit. b. Enkripsi dekripsi Rijndael berbeda satu dengan yang lainnya. c. Rijndael mendukung penuh ukuran blok dan ukuran kunci 128 bit, 192bit, dan 256 bit. Algoritma Rijndael menggunakan substitusi, permutasi, dan sejumlah putaran yang dikenakan pada tiap blok yang akan dienkripsi/dekripsi. Untuk setiap putarannya, Rijndael menggunakan kunci yang berbeda.

13 Algoritma Rijndael mampu menangani panjang kunci dan ukuran blok yang berbeda, panjang kunci dan ukuran blok yang telah ditentukan adalah 128, 192, dan 256. Ukuran blok dapat dihitung dengan (Nb= block length / 32) dan panjang kunci (Nk= key length / 32). Nilai Nb dan Nk yang akan dipakai mempengaruhi jumlah putaran (Nr) yang terjadi pada saat proses enkripsi dan dekripsi. Tabel 2.1 akan menunjukan perbedaan jumlah putaran (Nr) berdasarkan panjang kunci dan ukuran blok yang digunakan. (Mollin, 2007). Tabel 2.1 Perbandingan Jumlah Putaran pada Rijndael (Rijman & daemen, 2002) Nr Nb= 4 Nb= 6 Nb= 8 Nk= 4 10 12 14 Nk= 6 12 12 14 Nk= 8 14 14 14 Algoritma Rijndael memiliki tiga para meter yaitu: 1. Plainteks : array yang berukuran 16 byte, yang berisi data masukan. 2. Cipherteks : array yang berukuran 16 byte, yang berisi hasil enkripsi. 3. Key : array yang berukuran 16 byte, yang berisi kunci ciphering. Algoritma Rijndael beroprasi pada orientasi byte. Tiap elemen dari arraystate diisi dengan 8 bit teks (1 byte) dalam notasi HEX. Urutan pengisian dimulai dari kolom awal (c=0) sampai kolom terakhir ( c=3) dan dari baris awal (r=0) sampai baris akhir (s=3). Setiap state pasti mempunyai jumlah baris yang tetap, yaitu 4 baris, sedangkan jumlah kolom tergantung dari besarnya blok data.

14 2.3.1. Proses enkripsi algoritma Rijndael Proses enkripsi untuk algoritma Rijndael yang beroperasi pada panjang blok 128-bit dengan kunci 128-bit, total putaran (Nr) yang dilakukan hingga diperoleh cipherteks adalah 10 kali putaran. Secara garis besar proses enkripsi algoritma Rijndael diperlihatkan pada Gambar 3.3. Gambar 2.3 Diagram Proses Enkripsi Rijndael Urutan proses enkripsi Rijndael dalam mengamankan plainteks yaitu: 1. Key Expantion Pada tahap ini dilakukan ekspansi kunci sesuai dengan panjang kunci dan panjang ukuran blok yang akan digunakan, hasil ekspansi ini disebut dengan Roundkey.

15 2. Addroundkey Untuk proses Addroundkey yang pertama dilakukan XOR antara state awal (plaintext) dengan kunci utama, sedangkan Addroundkey yang selanjutnya pada tiap putaran, merupakan hasil key ekspantion dari kunci utama (sessionkey). 3. Putaran (Nr) sebanyak Nr-1 Pada proses ini akan dilakukan beberapa putaran, jumlah putaran telah ditentukan seperti yang telah dijelaskan sebelumnya. Pada tahap ini dilakukan 9 kali putaran, yaitu: a. Sub Bytes Pada proses ini dilakukan subtitusi menggunkan table S-box. Dua digit bilangan HEX yang merupakan representasi 1 byte dari tiap teks menjadi koordinat untuk substitusi pada S-box. Digit pertama sebagai koordinat x dan digit kedua sebagai koordinat y, perpotongan baris x dengan kolom y merupakan nilai yang akan diambil. (Rijmen & Daemen, 2002). Tabel 2.2 S-Box yang Digunakan dalam Transformasi Bytesub Rijndael (Rijmen & Daemen,2002)

16 b. ShiftRows Proses pergeseran baris array state dengan menggeser baris ke-r dalam array state ke kiri sebanyak r byte. Baris ke-0 dari blok tidak mengalami pergeseran. Baris ke-1 bergeser 1 byte ke kiri, baris ke-2 bergeser 2 byte ke kiri, sampai akhirnya didapatkan hasil terakhir setelah menggeser baris ke- 3 sebanyak 3 byte ke kiri. Berikut adalah table jumlah pergeseran berdasarkan blok Nb. (Rijmen & Daemen,2002). Tabel 2.3 Jumlah Pergeseran Pada Tahap Shift Rows (Rijmen & Daemen,2002) Nb C0 C1 C2 C3 4 0 1 2 3 6 0 1 2 3 8 0 1 4 4 c. MixColoumns Yaitu proses pengacakan data di masing-masing kolom array state. Transformasi MixColumns menggunakan operasi perkalian matriks dengan operasi perkalian dan penjumlahan menggunakan operator pada GF(2 8 ) dengan irreducible polynomial ( x 8 + x 4 +x 3 + x + 1). Matriks tersebut berdasarkan polinom a(x) mod (x 4 + 1) dengan polinom a(x) yang ditetapkan adalah a(x) = 3x 3 + x 2 + x +2. (Mollin, 2007).

17 Transformasi ini dinyatakan sebagai perkalian matriks: s (x) = a(x) s(x) s 0,c = ({02} s 0,c ) ({03} s 1,c ) s 2,c s 3,c s 1,c = s 0,c ({02} s 1,c ) ({03} s 2,c ) s 3,c s 2,c = s 0,c s 1,c ({02} s 1,c ) ({03} s 3,c ) s 3,c = ({03} s 0,c ) s 0,c s 1,c ({02} s 3,c ) S 0,c 02 03 01 01 S 0,c S 1,c 01 02 03 01 S 1,c = S 2,c 01 01 02 03 S 2,c S 3,c 03 01 01 02 S 3,c Gambar 2.4Perkalian Matriks MixColumn() Rijndael d. Addround key Dilakukan dengan fungsi XOR antara array state sebelumnya dengan round key. Proses ini akan terus berulang sebanyak Nr-1 sesuai besarnya blok data dan panjang kunci. Setelah semua proses dilakukan sebanyak Nr-1, proses terakhir adalah final round. Pada tahap ini proses MixColumns tidak dilakukan. 4. Final round Proses untuk putaran terakhir hanya dilakukan tiga tahap saja, proses dari ketiga tahap tersebut sama seperti proses pada tahap sebelumnya yaitu: a. SubBytes. b. ShiftRows. c. AddRoundKey.

18 2.3.2. Proses dekripsi algoritma Rijndael (AES) Proses dekripsi algoritma Rijndael tidak jauh berbeda dengan proses enkripsi namun berbeda pada urutan prosesnya saja. Untuk urutan proses dekripsi yaitu: 1. Key Expantion Pada proses dekripsi juga dilakukan ekspansi kunci. Kunci pada proses enkripsi kemudian diekspansi terlebih dahulu untuk menghasilkan RoundKey yang akan digunakan pada setiap putaran. 2. AddRoundKey Dilakukan proses XOR antara state awal (cipherteks) dengan key terakhir hasil ekspansi. Tahap ini disebut juga initial round. Gambar 2.5 Diagram Proses Dekripsi Rijndael

19 3. Putaran sebanyak Nr-1 kali Proses yang dilakukan pada setiap putaran adalah: a. InvShiftRow Pergeseran baris-baris array state ke kanan dengan aturan pergesaran sama seperti pada tahap enkripsi. b. InvByteSub Dilakukan substitusi byte dengan menggunakan tabel substitusi kebalikan (inverse S-box). Tabel substitusi dapat dilihat pada Tabel 2.4. Tabel 2.4 S-Box yang Digunakan dalam Transformasi Invbytesub() Rijndael (Rijmen & Daemen,2002)

20 c. AddRoundKey Pada proses ini dilakukan XOR antara state sekarang dengan round key. d. InvMixColumn Seperti pada proses MixColumn, InvMixColumn juga dilakukan pengacakan di masing-masing data pada kolom array state. 4. Final round Proses untuk putaran terakhir hanya dilakukan tiga tahap saja, proses dari ketiga tahap tersebut sama seperti proses pada tahap sebelumnya, yaitu: a. InvShiftRow b. InvSubByte c. AddRoundKey 2.3.3. Key expantion Algoritma Rijndael (AES) membuat suatu ekspansi kunci untuk menghasilkan suatu key schedule. Jika ekspansi kunci yang diperlukan Rijndael (AES) Nb(Nr+1) word, sehingga bisa digunakan AES 128 bit, maka 4(10+1)=40 word=44x32 bit=1408 bit subkey. Ekspansi dari 128 menjadi 1408 bit subkey, proses ini disebut dengan key schedule. Subkey ini diperlukan karena setiap round merupakan suatu inisial dari Nb word untuk Nr=0 dan 2 Nb untuk Nr=1, 3 untuk Nr=2,,11 Nb untuk Nr=10, dari operasi ini akan didapatkan schedule kunci yang berisi array linier 4 byte word (Wi), 0=i(Nr+1). (Arriyus,2008).

21 2.4.Algoritrma Kriptografi RSA Sistem kriptografi asimetris pertama kali dipublikasikan pada tahun 1997 oleh Whitfield Diffie dan Martin Hellman dari Stanford University. Penelitian mereka membahas tentang pendistribusian kunci rahasia pada saluran komunikasi umum, metode ini kemudian dikenal dengan nama algoritma Diffie Hellman. Algoritma ini beranjak dari hasil penelitian sistem kriptografi asimetris yang pertama kali dilakukan oleh James H. Ellis, Clifford Cocks, dan Malcom Williamson pada tahun1970. Namun sayangnya algoritma tersebut dirahasiakan dan tidak dipublikasikan. Berkat penemuan tersebut pada tahun 1976 tiga orang ilmuan dari MIT (Massachusset Institute Of Technology) yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman, mencoba mengembangkan teknik algoritma kriptografi kunci publik, algoritma tersebut kemudian dikenal dengan naman RSA. (Munir, 2006). RSA merupakan salah satu algoritma kriptografi yang bersifat asimetris, artinya setiap pengguna memiliki sepasang kunci, satu kunci untuk enkripsi dan satu kunci lagi untuk dekripsi. Kunci enkripsi (public-key) bersifat tidak rahasia sedangkan untuk kunci dekripsi dirahasiakan (private-key). Untuk kunci publik disimbulkan dengan e dan untuk kunci privat disimbulkan dengan d. karena kunci enkripsi tidak sama dengan kunci dekripsi itulah kriptografi RSA disebut kunci asimetris. Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya. Pada algoritma RSA terdapat 3 langkah utama yaitu key generation (pembangkitan kunci), enkripsi, dan dekripsi. Kunci pada RSA mencakup dua buah kunci, yaitu public key dan private key. Public key digunakan untuk melakukan enkripsi, dan dapat diketahui oleh orang lain. Sedangkan private key tetap dirahasiakan dan digunakan untuk melakukan dekripsi. Besaran besaran yang digunakan pada RSA adalah sebagai berikut : 1. p dan q bilangan prima (dirahasiakan) 2. n= p.q (tidak dirahasiakan) 3. φ(n) = (p-1) (q-1) (dirahasiakan)

22 4. e (kunci enkripsi) (tidak rahasia) 5. d( kunci dekripsi ) (dirahasiakan) 6. m (Plainteks) (dirahasiakan) 7. c ( Cipherteks ) (tidak rahasia) Proses pembangkitan kunci atau RSA adalah sebagai berikut: 1. Pilih dua buah bilangan prima sembarang p dan q. Jaga kerahasiaan p dan q ini. 2. Hitung n = p * q. Besaran n ini tidak dirahasiakan. 3. Hitung φ(n)= (p-1) * (q-1). Sekali φ(n) telah dihitung, p dan q dapat dihapus untuk mencegah diketahuinya oleh pihak lain. 4. Pilih sebuah bilangan bulat untuk kunci publik e, yang relatif prima terhadap n (GCD(e, φ(n)) = 1) dengan syarat e (p-1), e (q-1), dan e < n. 5. Kunci publik (Public Key) = (n,e) 6. Hitung kunci privat (d). Kunci privat dapat dihitung dengan persamaan: dd = 1 + kkφ(n) ee dengan syarat k dan d adalah anggota bilangan bulat. Nilai k = 1, 2, 3,...,n diperoleh nilai d yang bulat. Nilai itu yang akan dipakai sebagai kunci pribadi untuk dekripsi pesan. Proses enkripsi dapat dilakukan dengan: C i = P i e mod n Sedangkan proses dekripsi dilakukan dengan: P i = C i d mod n Dalam implementasi sebenarnya, nilai p dan q diharapkan sangat besar sekali (misalnya 100 digit) agar pekerjaan memfaktorkan n menjadi faktor primanya menjadi sangat sukar, sehingga lebih susah untuk ditembus.

23 2.4.1. Algoritma pembangkit bilangan prima Algoritma pembangkit bilangan prima dalam kriptografi kunci publik sangat berperan penting dalam meningkatkan keamanan, besarnya nilai bilangan prima yang mampu dibangkitkan akan meningkatkan tingkat kerumitan terhadap pemecahan kode rahasia dari algoritma kunci publik itu sendiri. Algoritma Lehmann adalah salah satu algoritma pembangkit bilangan prima yang bisa digunakan, algoritma ini menggunakan beberapa kali pengujian terhadap suatu bilangan prima P sehingga diperoleh persentasi peluang bilangan tersebut adalah prima. Langkah-langkah algoritma Lehmann dapat dilihat sebagai berikut: 1. Pilih bilangan prima p yang ingin diuji keprimaannya, misalkan 71. 2. Bangkitkan bilangan acak a yang rentang nilainya 1 <a<p. misalkan 43. 3. Hitung L (legendre). pp 1 LL = 2 2 mmmmmm pp L = 41 71 1 2 mmmmmm 71 L = 41 35 mmmmmm 71 L = 1 4. Bila LL 1 (mmmmmm pp) atau LL 1 (mmmmmm pp) maka persentasi bahwa p adalah bilngan prima sebesar 50%. 5. Bila LL 1 (mmmmmm pp) atau LL 1 (mmmmmm pp) maka nilai p pasti bukan prima. Apabila pengujian diatas diulangi sebanyak t kali dengan nilai a yang berbeda, maka peluang p adalah prima mempunyai kesalahan tidak lebih dari 1/2 t. (Alan.G, 2007).