• Tidak ada hasil yang ditemukan

Implementasi Algoritma Affine Cipher dan Algoritma Advanced Encryption Standard (AES) pada Aplikasi Short Message Service (SMS) Berbasis Android

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Algoritma Affine Cipher dan Algoritma Advanced Encryption Standard (AES) pada Aplikasi Short Message Service (SMS) Berbasis Android"

Copied!
102
0
0

Teks penuh

(1)

SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID

SKRIPSI

HARI RAHMAN NIHE

111401114

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

IMPLEMENTASI ALGORITMA AFFINE CIPHER DAN ALGORITMA ADVANCED ENCRYPTION STANDARD (AES) PADA APLIKASI

SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

HARI RAHMAN NIHE 111401114

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA AFFINE CIPHER DAN ALGORITMA ADVANCED ENCRYPTION STANDARD (AES) PADA APLIKASI SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID

Kategori : SKRIPSI

Nama : HARI RAHMAN NIHE

Nomor Induk Mahasiswa : 111401114

Program Studi : SARJANA(S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (Fasilkom-TI)

Diluluskan di Medan, Agustus 2015

Komisi Pembimbing:

Dosen Pembimbing II Dosen Pembimbing I

Ade Candra, ST, M.Kom M. Andri Budiman, ST, M.Comp.Sc, MEM NIP. 19790904 200912 1 002 NIP. 19751008 200801 1 011

Diketahui/Disetujui oleh

Program Studi S1 IlmuKomputer Ketua,

(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA AFFINE CIPHER DAN ALGORITMA ADVANCED ENCRYPTION STANDARD (AES) PADA APLIKASI

SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Agustus 2015

(5)

ABSTRAK

Semakin berkembangnya teknologi, keamanan suatu pesan sangat penting untuk dijaga ataupun dirahasiakan. Ada beberapa cara dan teknik yang digunakan untuk menjaga kerahasian pesan, yaitu Kriptografi dimana pesan disamarkan menjadi sandi. Dalam penelitian ini penulis menggabungkan dua algoritma simetri untuk mengamankan pesan yang akan dikirim. Algoritma Advanced Encryption Standard digunakan untuk mengamankan teks pesan dan Algoritma Affine Cipher untuk mengamankan kunci dari pesan yang telah dienkripsi. Jumlah nilai karakter setelah dienkripsi akan semakin besar dan akan kembali seperti semula setelah didekripsi. Waktu rata-rata enkripsi selama 0,00178 detik sedangkan waktu rata rata dekripsi selama 0,0039 detik.

(6)

IMPLEMENTATION OF AFFINE CIPHER AND ADVANCED ENCRYPTION STANDARD IN ANDROID-BASED

SHORT MESSAGE SERVICE APPLICATION

ABSTRACT

The continued development of technology, the security of the message is very important to be maintained. There are several ways and techniques that are used to maintain the confidentiality of message, namely Cryptography where the message disguised as a password. In this research, the author of combining two symmetric algorithms to secure messages to be sent. Advanced Encyption Standard algorithm used for securing data message text and Affine Cipher algorithm to secure key from a message that has been encrypted. The number of characters after the encrypted value will be greater and will return to normal after decrypted. The average time encryption for 0,00178 seconds, while the average time decryption for 0,0039 seconds.

(7)

DAFTAR ISI

Hal

Persetujuan Ii

Pernyataan Iii

Penghargaan Iv

Abstrak Vii

Abstract Viii

Daftar Isi Ix

Daftar Tabel Xii

Daftar Gambar Xiii

Bab I Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 1.6 Metode Penelitian 1.7 Sistematika Penelitian

3 3 4

(8)

2.1 Kriptografi 6

2.1.1 Terminologi 6

2.2 Jenis-Jenis Algoritma Kriptografi 7

2.3.1 Algoritma Simetri 7

2.3.2 Algoritma Asimetri 8

2.3 Teori Bilangan 8

2.3.1 Faktor Persekutuan terbesar 2.3.2 Euclid

2.3.3 Algoritma Euclid dan Extended Euclid 2.3.4 Chinese Remainder Theorem

(9)

Bab III Analisis Dan PerancanganSistem 23

3.1 AnalisisSistem 23

3.1.1 Analisis Masalah 23

3.1.2 Analisis Kebutuhan 24

3.1.2.1 Kebutuhan Fungsional Sistem 24 3.1.2.2 Kebutuhan Non-Fungsional Sistem 25

3.1.3 Analisis Proses 26

3.2 Pemodelan 26

3.2.1 Use Case Diagram 26

3.2.2 Sequence Diagram 3.2.3. Activity Diagram

28 30 3.3 Flowchart Sistem

3.3.1 Flowchart Enkripsi Pesan dengan AES

3.3.2 Flowchart Enkripsi Kunci dengan Affine Cipher 3.3.3 Flowchart Dekripsi Pesan dan Kunci Pesan

30 32 32 33 3.4 Pseudocode Sistem

3.4.1 Pseudocode Enkripsi Pesan

3.4.2 Pseudocode Enkripsi Kunci Pesan

34 34 34 3.4.3 Pseudocode Dekripsi Kunci Pesan

3.4.4 Pseudocode Dekripsi Pesan

(10)

Bab IV Implementasi dan Pengujian 40

4.2 Pengujian Sistem 43

4.2.1 Skenario Enkripsi AES 4.2.1.1 AddRounkey 4.2.1.2 SubBytes

4.2.1.3 ShiftRows 4.2.1.4 Mix Colomns 4.2.2 Skenario Dekripsi AES 4.2.2.1 AddRounkey 4.2.2.2 InvShiftRows 4.2.2.3 InvSubBytes 4.2.2.4 InvMix Colomns 4.2.3 Ekspansi Kunci AES

4.2.4 Skenario Enkripsi Affine Cipher 4.2.3 Skenario Dekripsi Affine Cipher 4.2.6 Pengujian Enkripsi Pesan

(11)

4.2.7 Pengujian Dekripsi Pesan

Bab V Kesimpulan dan Saran 58

5.1 Kesimpulan 58

5.2 Saran 59

(12)

DAFTAR TABEL

Narrative Use-Case Enkripsi Pesan Narrative Use-Case Dekripsi Pesan S-Box AES

Proses Enkripsi Inversi S-Box AES

E Galois Field Multiplication L Galois Field Multiplication Enkripsi Affine Cipher Dekripsi Affine Cipher

Hasil Pengujian Enkripsi dengan variasi Panjang Plaintext

Hasil Pengujian Dekripsi dengan variasi Panjang Plaintext

Perbandingan Waktu Enkripsi dan Dekripsi Pesan

(13)

DAFTAR GAMBAR

Nomor Gambar

Nama Gambar Halaman

2.1

Skema Proses Enkripsi dan Dekripsi

Skema Kriptografi Simetris

Skema Kriptografi Asimetris

Skema Sandi Affine

Struktur enkripsi AES

Operasi Transformasi Substitusi Byte dengan Kotak-S

Operasi Transformasi Shiftrow

Operasi Tranformasi MixColomns

Tranformasi Penambahan Kunci dengan Operasi XOR

Sturktur dekripsi AES

Diagram Ishikawa

Diagram Use-Case

Diagram Sequence untuk Enkripsi

Diagram Sequence untuk Dekripsi

Activity Diagram

Flowchart Sistem

Flowchart Enkripsi Pesan dengan Algoritma Advanced Encryption Standard

Flowchart Enkripsi Kunci dengan Algoritma Affine Cipher

Flowchart dekripsi pesan dan Kunci PesanRancangan Rancangan Tampilan Form Utama

(14)

3.12

4.1

4.2

4.3

4.4

4.5

4.6

4.7

Rancangan Form Penerima

Form Home

Form Pesan Baru

Form Pesan Masuk

Form Pesan Keluar

Grafik Pengujian Enkripsi Pesan

Grafik Pengujian Dekripsi Pesan

Grafik perbandingan Enkripsi dan Dekripsi Pesan

38

40

41

42

42

55

56

(15)

DAFTAR LAMPIRAN

A.Listing Program 62

(16)

ABSTRAK

Semakin berkembangnya teknologi, keamanan suatu pesan sangat penting untuk dijaga ataupun dirahasiakan. Ada beberapa cara dan teknik yang digunakan untuk menjaga kerahasian pesan, yaitu Kriptografi dimana pesan disamarkan menjadi sandi. Dalam penelitian ini penulis menggabungkan dua algoritma simetri untuk mengamankan pesan yang akan dikirim. Algoritma Advanced Encryption Standard digunakan untuk mengamankan teks pesan dan Algoritma Affine Cipher untuk mengamankan kunci dari pesan yang telah dienkripsi. Jumlah nilai karakter setelah dienkripsi akan semakin besar dan akan kembali seperti semula setelah didekripsi. Waktu rata-rata enkripsi selama 0,00178 detik sedangkan waktu rata rata dekripsi selama 0,0039 detik.

(17)

IMPLEMENTATION OF AFFINE CIPHER AND ADVANCED ENCRYPTION STANDARD IN ANDROID-BASED

SHORT MESSAGE SERVICE APPLICATION

ABSTRACT

The continued development of technology, the security of the message is very important to be maintained. There are several ways and techniques that are used to maintain the confidentiality of message, namely Cryptography where the message disguised as a password. In this research, the author of combining two symmetric algorithms to secure messages to be sent. Advanced Encyption Standard algorithm used for securing data message text and Affine Cipher algorithm to secure key from a message that has been encrypted. The number of characters after the encrypted value will be greater and will return to normal after decrypted. The average time encryption for 0,00178 seconds, while the average time decryption for 0,0039 seconds.

(18)

BAB I

PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang penilitian judul skripsi “Implementasi algoritma affine cipher dan algoritma advanced encryption standard (AES) pada aplikasi short message service (SMS) berbasis android”. Rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, tinjauan pustaka,dan sistematika penulisan skripsi.

1.1. Latar Belakang

Perkembangan ilmu pengetahuan dapat dirasakan dalam berbagai dimensi kehidupan manusia. Perkembangan ilmu pengetahuan itu sendiri telah memicu perkembangan teknologi. Ilmu pengetahuan dikembangkan untuk menciptakan teknologi yang mempermudah pekerjaan manusia. Perkembangan teknologi juga menuntut kita untuk meningkatkan keamanan.

Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan atau informasi yang dapat dibaca. Pesan biasanya disebut juga sebagai plaintext (Kromodimoeljo, 2010). Dalam kriptografi banyak algoritma yang bisa diterapkan seperti: hill cipher, vigenere cipher, caesar cipher,affine cipher,AES,DES,IDEA , dan lain-lain.

Algoritma Affine Cipher merupakan algoritma kriptografi klasik yang bersifat simetri (Sadikin, 2012). Algoritma ini menggunakan fungsi linier untuk enkripsi dan dekripsi-nya, dengan memiliki 2 buah nilai integer sebagai kunci enkripsi dan dekripsinya.

Algortima Advanced Encryption Standard (AES) merupakan algoritma kriptografi modern yang bersifat simetris. Pada algoritma AES kunci yang dipakai memiliki panjang bervariasi yaitu 128,192,256 dengan memiliki jumlah ronde yang berbeda pula tergantung panjang kunci-nya, sehingga algoritma ini sangat baik untuk pengaman teks maupun data (Kromodimoeljo, 2010).

(19)

suatu pesan. Sebagai contoh penyadapan pesan singkat yang pernah dialami oleh beberapa petinggi Negara. Bagi dirinya penyadapan itu merugikan dirinya karena beberapa rahasia pribadinya terbongkar ke khalayak ramai.

Berdasarkan penjelasan di atas, penulis akan merancang suatu sistem aplikasi kerahasian pesan atau SMS pada perangkat berbasis android. Sistem ini menggukan ilmu kriptografi untuk enkripsi dan dekripsi suatu SMS, agar pesan yang dikirim tidak memiliki arti apapun bagi siapapun termasuk operator, jika tidak memiliki kunci pembuka dari pesan tersebut. Sehingga pesan atau SMS dapat dijaga kerahasiannya.

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah penulis uraikan, rumusan masalah yang akan dibahas pada penelitian ini adalah bagaimana menerapkan algoritma affine cipher dan advanced encryption standard (AES) pada perangkat berbasis android sebagai cara merahasiakan pesan dalam bentuk Short Message Service (SMS).

1.3 Batasan Masalah

Batasan masalah yang dapat diambil dari latar belakang di atas adalah

1) Penelitian ini hanya membahas teknik pengamanan pesan dengan algoritma Affine Cipher serta Algoritma Advanced Encryption Standard (AES) sebagai pengaman kunci.

2) Karakter yang digunakan menggunakan tabel ASCII 127. 3) Pada algortima AES menggunakan panjang kunci 128 bit.

4) Bahasa yang digunakan adalah bahasa pemrograman Java dan Eclipse sebagai IDE

1.4 TujuanPenelitian

(20)

1.5 Manfaat Penelitian

Diharapkan penelitian ini bermanfaat untuk :

1) Menambah pengetahuan penulis dalam melakukan proses enkripsi dan dekripsi suatu pesan dengan menggunakan algoritma Advanced Encryption Standard (AES) dan algoritma Affine Cipher.

2) Penelitian ini diharapkan dapat bermanfaat untuk meningkatkan keamanan pesan singkat yang bersifat rahasia.

3) Sebagai bahan refrensi bagi peneliti lain yang ingin membahas topik yang terkait dengan penelitian ini.

4) Membangun dan merancang aplikasi sistem keamanan dalam pengiriman SMS dengan menggunakan algoritma Advanced Encryption Standard (AES) dan algoritma Affine Cipher.

1.6 Metodologi Penelitian

Tahapan penelitian yang dilakukan dalam penelitian ini adalah : 1. Studi Literatur

Pada tahan ini dilakukan peninjauan terhadap buku, artikel, jurnal, maupun hasil penelitian terdahulu sebagai referensi yang diperlukan dalam

melakukan penelitian. Ini dilakukan untuk memperoleh informasi yang terkait dengan metode Advanced Encryption Standard, Affine Cipher, serta pemrograman Java untuk pemrograman di android.

2. Analisis dan Perancangan

Tahap ini digunakan untuk mengolah data dari hasil studi literature yang kemudian dilakukan analisis dan perancangan menggunkan algoritma Advanced Encryption Standard dan Affine Cipher sehingga menjadi suatu aplikasi yang tersetruktur dan jelas. Proses ini meliputi pembuatan

algoritma program, Use case Scenario, flowchart sistem, flowchart algoritma, rancangan aplikasi, dan pembuatan User Interface aplikasi. 3. Implementasi

(21)

4. Pengujian

Menguji apakah aplikasi yang di buat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih tedapat error pada aplikasi.

5. Dokumentasi

Pada tahap ini berisi laporan dan kesimpulan akhir dari hasil akhir analisa dan pengujian dalam bentuk skripsi.

1.7 Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan inidibuat dalam lima bab, yaitu :

BAB 1 PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang penilitian

judul skripsi “Implementasi algoritma affine cipher dan algoritma

advanced encryption standard (AES) pada aplikasi short message service (SMS) berbasis android”. Rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, tinjauan pustaka,dan sistematika penulisan skripsi.

BAB 2 LANDASAN TEORI

Berisi tentang pembahasan teori-teori tentang Kriptografi algoritma Affine Cipher dan Advanced Encryption Standard.

BAB 3 ANALISIS DAN PERANCANGAN

Berisi tentang uraian analisis mengenai proses kerja dari metode affine cipher dan advanced encryption standard yang terdiri dari flowchart, pseudocode, unified modeling language (UML) serta perancangan dari aplikasi.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

(22)

BAB 5 KESIMPULAN DAN SARAN

(23)

BAB II

TINJAUAN PUSTAKA

Bab II ini berisi tentang pembahasan teori-teori tentang Kriptografi algoritma Affine Cipher dan Advanced Encrytpion Standard

2.1. Kriptografi

Kata Cryptography berasal dari bahasa Yunani yang terdiri dari dua kata yaitu kryptos yang berarti rahasia dan graphein yang berarti tulisan (Mollin,2007).

Kriptografi adalah ilmu mengenai tekhnik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, 2010

2.1.1 Terminologi

Ketika seorang pengirim ingin mengirimkan suatu pesan kepada si penerima, dimana si pengirim ingin pesan yang disampaikannya tidak dapat dibaca oleh orang lain yang ingin melakukan penyadapan. Dalam kriptografi pesan asli biasa disebut plaintext dan pesan yang disamarkan disebut ciphertext. Proses menyamarkan pesan sedemikian rupa untuk menyembunyikan substansinya disebut enkripsi. Sebuah pesan yang dienkripsi disebut ciphertext. Proses untuk mengubah ciphertext kembali ke plaintext adalah dekripsi (Mollin,2007).

Pada standar ISO 7498-2 menggunakan istilah encipher untuk proses enkripsi dan decipher untuk proses dekripsi. Skema rangkaian proses enkripsi dan dekripsi ditunjukkan secara umum pada Gambar 2.1 (Schneier, 1996).

(24)

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi(Schneier, 1996)

2.2. Jenis-Jenis Algoritma Kriptografi

Algoritma Kriptografi dibagi tiga berdasarkan kunci yang dipakai, yaitu algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi), dan fungsi hash (Ariyus, 2008).

Karakteristik kriptografi dibagi dua berdasarkan tipe operasi yang dipakai untuk enkripsi dan dekripsi (teknik substitusi dan teknik permutasi) serta berdasarkan tipe pengolahan pesan (block cipher dan stram cipher) (Sadikin, 2012).

2.2.1. Algoritma Simetris

Algoritma simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Kromodimoeljo, 2010). Bila mengirim pesan dengan algoritma ini, si penerima pesan harus diberitahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci.

Jika kunci tersebut diketahui oleh orang lain maka orang tersebut dapat melakukan enkripsi dan dekripsi pada pesan (Sadikin, 2012). Yang termasuk algoritma kunci simetris adalah OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan lain-lainnya. Skema kriptografi simetris dapat dilihat pada Gambar 2.2.

Enkripsi Dekripsi

(25)

Gambar2.2. Skema Kriptografi Simetris (Fauzana, 2013)

2.2.2. Algoritma Asimetris

Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi menggunakan public key dan untuk dekripsinya menggunakan private key.Public key dan private key harus saling berpasangan secara matematis.Dengan memberikan public key, pembuat kunci berhak memberikan dan mendapatkan public key agar pesan aman dan hanya bisa dibaca oleh si pembuat kunci.Dalam kriptografi kunci asimetri, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan sebagainya (Harahap, 2014). Kecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia.Skema kriptografi asimetris dapat dilihat pada Gambar 2.3.

Gambar 2.3 Kriptografi Asimetris (Wandani, 2012).

2.3. Teori Bilangan

2.3.1. Faktor Persekutuan Terbesar

Faktor persekutuan Terbesar atau Greatest common divisor (GCD) merupakan bilangan bulat terbesar yang merupakan pembagi yang sama dari dua bilangan bulat. Misalkan a dan b adalah 2 (dua) bilangan bulat yang tidak nol. Greatest common divisor (GCD) dari a dan b adalah bilangan bulat terbesar c sedemikian

Algoritma Enkripsi

Algoritma Dekripsi

Kunci Rahasia

(26)

sehingga c|a dan c|b. Greatest common divisor (GCD) dari a dan b dapat dinotasikan dengan gcd(a,b) (Munir, 2003).

2.3.2. Euclid

Salah satu cara untuk mendapatkan gcd(a,b) adalah membuat daftar semua factor dari a, membuat daftar semua dari b, dan kemudian mencari factor yang terbesar yang ada dalam kedua daftar. Akan tetapi, untuk bilangan yang sangat besar, membuat daftar factor bukanlah sesuatu yang mudah. Ada cara yang jauh lebih efisien untuk mendapatkan gcd(a,b) yaitu dengan menggunakan algoritma Euclid (Eulidean algorithm), yang seperti halnya dengan Chinese Remainder Theorem merupakan algoritma penting yang berusia lebih dari 2000 tahun (Kromodimoeljo, 2010).

Contoh :

GCD(50,20) adalah : 50 mod 20 = 10 20 mod 10 = 0

Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan didapatlah GCD(50,20) = 20

2.3.3. Algoritma Euclid dan Extended Euclid

Teorema yang digunakan sebagai dasar dari algortima Euclid adalah sebagai berikut:

Jika = qb + r maka gcd( ,b) = gcd(b,r)………….……(8.3.1)

Algoritma Euclid menggunakan rumus diatas secara berulang untuk men-dapatkan gcd, yaitu dengan memperkecil kedua bilangan yang dijadikan patokan untuk gcd setiap kali mengulang, tanpa merubah nilai gcd itu sendiri. Hasil dari komputasi gcd di dapat saat kedua patokan untuk gcd tidak dapat diperkecil lagi.

(27)

1. Jika = 0 maka d = |b| dan jika b = 0 maka d = | | (gcd tidak dapat dikomputasi jika = b = 0).

2. Karena gcd( ,b) = gcd(- ,b) = gcd( ,-b) = gcd(- ,-b), kita dapat mentransformasikan komputasi menjadi d = gcd(| |,|b|), jadi kedua bilangan menjadi positif.

3. Karena gcd( ,b) = gcd(b, ), kita dapat saling tukar dan b jika < b, dengan hasil > b.

4. Jika = b maka d = .

Setelah preprocessing, jika 0, b 0, b, maka komputasi sudah dirubah menjadi d = gcd( ,b) dengan > b > 0 (Kromodimoeljo, 2010).

2.3.4. Chinese Remainder Theorem

Chinese Remainder Theorem (CRT) ditemukan oleh seorang matematikawan Cina bernama Sun-Tsu (juga disebut Sun Tse) sekitar 100 A.D (anno domini) atau 100 M (Stallings, 2011). Chinese Remainder Theorem (teorema sisa Cina), dinamai setelah masalah peninggalan Cina yang melibatkan sistem persamaan atau kekongruenan linear, menyatakan bahwa ketika modulus dari sistem kekongruenan linear yang berpasangan relatif prima, ada solusi unik dari sistem modulo produk dari modulus. Berikut ini adalah pertanyaan atau teka-teki Sun-Tsu (Rosen, 2012).

“Ada beberapa hal yang bilangannnya tidak diketahui. Bila dibagi dengan 11, sisanya adalah 2, ketika dibagi oleh 7, sisanya adalah 3, dan ketika dibagi 5, sisanya adalah 2. Berapakah bilangan itu?”

Teka-teki tersebut dapat dituliskan sebagai berikut.

x≡ 2 (mod 11)

x≡ 3 (mod 7)

x≡ 2 (mod 5)

Apa solusi dari sistem kekongruenan berikut ini?

Sebelum menyelesaikan teka-teki tersebut, berikut ini adalah teorema sisa Cina (Chinese Remainder Theorem) (Rosen, 2012).

Misalkan m1, m2, …, mn adalah bilangan bulat positif yang relatif prima

berpasangan (pairwise relatively prime) yang lebih besar dari 1 dan a1, a2, …, an

(28)

xa1 (mod m1),

xa2 (mod m2),

xan (mod mn)

memiliki sebuah solusi unik modulo m = m1m2…mn. (Terdapat solusi x dengan 0

x < m, dan semua solusi lainnya adalah kongruen modulo m untuk solusi ini).

Solusi dari penyelesaian teka-teki Sun-Tsu tersebut adalah sebagai berikut (Wandani, 2012).

1. Hitung hasil perkalian dari keseluruhan modulus. M = m1m2…mn

M = 11 × 7 × 5 = 385

2. Buat himpunan penyelesaian untuk masing-masing persamaan dari bilangan terkecil hingga hasil perkalian modulus (M).

x1 = {2, 13, 24, 35, 46, 57, 68, 79, 90, 101, 112, 123, 134, 145, 156,

167,

178, 189, 200, 211, 222, 233, 244, 255, 266, 277, 288, 299, 310, 321,

332, 343, 354, 365, 376}

x2 = {3, 10, 17, 24, 31, 38, 45, 52, 59, 66, 73, 80, 87, 94, 101, 108,

115,

122, 129, 136, 143, 150, 157, 164, 171, 178, 185, 192, 199, 206, 213,

220, 227, 234, 241, 248, 255, 262, 269, 276, 283, 290, 297, 304, 311,

318, 325, 332, 339, 246, 353, 360, 367, 374, 381}

x3 = {2, 7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57, 62, 67, 72, 77, 82, 87,

92,

97, 102, 107, 112, 117, 122, 127, 132, 137, 142, 147, 152, 157, 162,

(29)

237, 242, 247, 252, 257, 262, 267, 272, 277, 282, 287, 292, 297, 302,

307, 312, 317, 322, 327, 332, 342, 347, 352, 357, 362, 367, 372, 377,

382}

3. X merupakan irisan dari keseluruhan himpunan penyelesaian tersebut. X = x1∩ x2∩ … ∩ xn

X = x1∩ x2∩ x3 = 332

4. Agar tercapai seluruh bilangan yang memenuhi x, maka dihitung kelipatan persekutuan terkecil (Least Common Multiple) dari ketiga modulus (interval yang memenuhi x).

Berikut ini merupakan rumus untuk mencari LCM dari dua bilangan bulat positif (Rosen, 2012).

ab = GCD(a,b) . LCM(a, b) ………….…… (8.3.2) Dari persamaan di atas dapat disimpulkan:

GCD(11,7,5) = 1 dan LCM(3,5,7) = 385

Sehingga x memenuhi akan bilangan dalam interval 105 dimulai dari 23, yaitu x = 332 ± (k × 385). Atau interval ini dapat dituliskan:

x X ± (k × LCM (m1,m2, …,mn))

Cara yang dapat digunakan untuk menyelesaikan teka-teki Sun-Tsu menurut Rosen (2012) adalah sebagai berikut.

1. Hitung hasil perkalian dari keseluruhan modulus. M = m1m2…mn

M = 11 × 7 × 5 = 385

2. Hitung hasil bagi dari M dengan tiap-tiap modulus. Mn = M/mn

M1 = 385/11 = 35

M2 = 385/7 = 55

M3 = 385/5 = 77

3. Hitung invers modulo (yn) dari (Mn mod mn). Maka diperoleh:

y1 = 2, y2 = 6 dan y3 = 2

(30)

xa1M1y1 + a2M2y2+ … + anMnyn

xa1M1y1 + a2M2y2 + a3M3y3≡ (2.35.2) + (3.55.6) + (2.77.2)

x≡ 1487 ≡ 332 (mod 385).

2.3.5. Inversi Modulo

Inversi modulo biasanya dilambangkan dengan m-1 yang disebut inversi dari m (m mod n) apabila m-1.m mod n =1

contoh :

Berapa inversi dari 7 (mod 43)…?

Jawab :

Jadi , m-1 dari 6 (mod 43) = 6 2.3.6. ɸ -Euler

ɸ-Euler adalah fungsi yang mengembalikan jumlah bilangan integer a yang

0 < a < n dan a relatif prima dengan n (a disebut dengan n bila gcd(a,n) = 1). Beberapa hasil fungsi ɸ(n) adalah :

1. ɸ(1) = 0

2. ɸ(p) = p -1 jika p adalah bilangan prima. Sebab semua elemen

{1,… , p –1} merupakan prima relative dengan p.

3. ɸ(m.n) = ɸ(m). ɸ(n) jika m merupakan prima relatif dengan n. 4. ɸ(pe) = pe- pe-1dengan p adalah bilangan prima (Sadikin, 2012).

Contoh :

Temukan nilai ɸ(6)…?

Jawab :

(31)

2.4. Sistem Kriptografi Affine Cipher

Affine cipher adalah perluasan dari Caesar cipher yaitu sistem persandian klasik berbasis substitusi yang sederhana. Enkripsi dan dekripsi pada sistem persandian Caesar menggunakan operasi shift. Operasi Shift adalah mensubtitusi suatu huruf menjadi huruf pada daftar alfabet berada di-k sebelah kanan atau kiri huruf itu. Skema sandi Affine cipher diilustrasikan pada gambar 2.4 (Sadikin, 2012).

p, c ∈Z¬26 K=|(a,b) ∈Z^*26|

Gambar 2.4 Skema Sandi Affine

2.4.1. Enkripsi Affine Cipher

Secara sistematis enkripsi plainteks P lalu menghasilkan C dinyatakan dengan fungsi kongruen :

C≡ mP + b(mod n)

...……….(8.4. 1)

Berdasarkan persamaaan (2), plainteks dapat dihitung sebagai berikut : Plainteks : I L K O M

n = 26, m = 5, b = 2

(32)

M = 12.5 + 2 = 62 (mod 26) = 10  K Cipherteks : P F A U K

2.4.2. Dekripsi Affine Cipher

Dalam melakukan dekripsi diperlukan m-1, jika syarat terpenuhi maka dekripsi dilakukan dengan persamaan :

P≡ m-1 (C - b ) (mod n) ……….(8.4.2)

Berdasarkan persamaan (3), Cipherteks dapat dikembalikan sebagai berikut : Cipherteks : P F A U K

n = 26, m = 5, b = 2, m-1 = 21 P = 21(16 – 2)(mod 26) = 8  I F = 21(5 – 2)(mod 26) = 11L A = 21(0 – 2)(mod 26) = 10K U = 21(20 – 2)(mod 26)= 14O K = 21(10-2)(mod 26)= 12M

2.5. Sistem Kriptografi Advanced Encryption Standard (AES)

Pada tahun 90-an, setelah beberapa tahun standar penyandian simetris dianggap tidak lagi aman, lembaga standar Amerika Serikat NIST (National Institute of Standards and Technology) membuat sayembara untuk menggantikan DES dengan sebuah sistem penyandian yang disebut Advanced encryption Standard pada tanggal 12 September 1997.

Setelah beberapa seleksi, NIST memilih sistem penyadian Rijndael yang dikembangkan oleh Joan Daemen dan Vincent Rijment sebagai sistem penyandian AES pada tahun 2000. Pemilihan Rijndael berdasarkan pada kriteria :

1. Keamanan. Sistem penyandian harus tahan terhadap serangan analisis sandi

(33)

2. Biaya. Sistem penyandian harus memiliki biaya komputasi dan memori yang efisien sehingga dapat diimplementasikan secara perangkat keras maupun perangkat lunak.

3. Karakteristik algoritma dan implementasi. Sistem penyandian harus bersifat terbuka, fleksibel, dan sederhana (Sadikin, 2012).

2.5.1. Enkripsi AES

Jumlah putaran (Nr) tergantung pada besar kunci yang digunakan. Tabel 2.1 menunjukkan jumlah putaran (Nr) untuk kunci sebesar 128 bit, 192 bit dan 256 bit. Jadi untuk kunci sebesar 128 bit, besar kunci (Nk) adalah 4 word (setiap word mempunyai 32 bit), besar blok (Nb) adalah 4 word, dan jumlah putaran (Nr) adalah 10 (Kromodimoeljo, 2010).

Tabel 2.1 Tabel Jumlah Putaran

Dari tabel 2.1 AES-128 bit menggunakan panjang kunci Nk = 4 word (kata) yang

setiap katanya terdiri dari 32 bit sehingga total kunci 128 bit, ukuran blok teks-asli 128 bit den memiliki 10 putaran. Sedangkan putaran untuk kunci terdiri dari Ki =

4 kata dan total putaran kunci 128 bit dan kunci yang diperluas mempunyai ukuran 44 kata dan 176 byte (Ariyus, 2008).

(34)

Gambar 2.5 Sturktur enkripsi AES

(35)

Gambar 2.6 Operasi Transformasi Substitusi Byte dengan Kotak-S

(36)

Gambar 2.7 Operasi Transformasi Shiftrow

3. Transformasi Pencampuran kolom: operasi ini beroperasi pada state kolom, dengan memperlakukan setiap kolom sebagai polynomial. Kolom dianggap sebagai polonomial pada GF (28) (Ariyus, 2008). Tranformasi pencampuran kolom dapat digambarkan dengan perkalian matriks seperti gambar 2.8 :

Gambar 2.8 Operasi Tranformasi MixColomns

(37)

Gambar 2.9 Tranformasi Penambahan Kunci dengan Operasi XOR

Matriks yang pertama adalah state dan yang kedua adalah merupakan perputaran kunci. Inversi dari transformasi perputaran kunci menambah perputaran kunci karena adanya operasi XOR. Setiap penambahan kunci memberikan efek untuk setiap bit state. Kompleksitas dari penambahan kunci membuat algoritma AES lebih aman dari yang lain (Ariyus, 2008).

2.5.2. Dekripsi AES

Secara ringkas dekripsi AES merupakan kebalikan enkripsi. Dekripsi AES menggunakan transformasi invers semua tansformasi dasar yang digunakan pada enkripsi AES. Setiap transformasi dasar AES memiliki transformasi invers, yaitu : InversSubByte, InversShiftRows, dan InvMixColomns. AddRoundKey merupakan tranformasi bersifat self-invers dengan syarat menggunakan kunci yang sama.

(38)

Gambar 3.10 Sturktur dekripsi AES 2.5.3. Ekspansi Kunci AES

Algoritma AES melaksanakan kunci-kode dan membuat suatu kunci ekspansi untuk menghasilkan suatu kunci skedul. Kunci ekspansi yang diperlukan AES Nb(Nr+1) kata sehingga bisa digunakan AES 128 bit sehingga 4(10+1)= 40 kata = 44 x 32 bit = 1408 bit kunci. Ekspansi dari 128 bit menjadi 1408 bit upa-kunci. Proses ini disebut dengan kunci skedul. Upa-kunci ini siperlukan karena setiap putaran merupakan suatu inisial dari Nb kata untuk Nr = 0 dan 2 Nb untuk Nr = 1,3 Nb untukNr = 2,…, 11 Nb untuk Nr = 10. Dari Operasi ini didapatkan kunci skedul yang berisi larik linier empat byte kata (wi), 0=i Nb (Nr + 1).

Tahap dari kunci ekspansi seperti berikut ini :

(39)

2. Subword () mengambil masukan empat byte kata dan menggunakan Kotak-S sehingga di dapat empat byte prosedur keluaran kata.

3. Rcon () menghasilkan putaran yang tetap dari larik kata dan berisi nilai yang diberikan oleh [[xi-1, {00}, {00}, {00}] dengan xi-1 dari i ke 1.

Rcon [i] adalah suatu komponen dari putaran tetap larik kata dalam perhitungan kunci ekspansi routine (Ariyus, 2008).

2.6. Android

(40)

One. Fenomena ini tentu mengakibatkan kita sebagai konsumen memliki banyak pilihan dalam menggunakan ponsel bersistem operasi Android. Tidak sama dengan iPhone yang bentuk persis untuk setiap seri atau Blacberry yang jumlahnya terbatas, ponsel berbasis Android memilik banyak bentuk dan merek (Jubille, 2010).

Sejak April 2009, versi Android dikembangkan dengan nama kode yang dinamai berdasarkan makanan pencuci mulut dan penganan manis. Masing-masing versi dirilis sesuai urutan alfabet, yakni Cupcake (1.5), Donut (1.6), Eclair (2.0–2.1), Froyo (2.2–2.2.3), Gingerbread (2.3–2.3.7), Honeycomb (3.0–3.2.6), Ice Cream Sandwich (4.0–4.0.4), Jelly Bean (4.1–4.3), dan KitKat (4.4+).

2.7. Penelitian yang Relevan

Berikut ini beberapa penelitian tentang kriptografi yang berkaitan dengan Algoritma Afffine Cipher dan Advanced Encryption Standard (AES) :

No Nama/Tahun Judul Hasil Penelitian

1. M. Rizki

kedua algoritma yang digunakan untuk melekukan proses enkripsi masing-masing algoritma memliki kelebihan masing-masing

Berdasarkan hasil pengujian grafik hubungan antara waktu proses dan panjang plainteks diperoleh hasil panjang plainteks berbanding lurus terhadap waktu, semakin panjang plainteks maka waktu yang dibutuhkan juga akan semakin banyak.

3. Sabriyanto,

(41)

BAB III

ANALISIS DAN PERANCANGAN

Berisi tentang uraian analisis mengenai proses kerja dari metode Affine cipher dan Advanced Encryption Standard yang terdiri dari flowchart, pseudocode, Unified Modeling Language (UML)serta perancangan dari aplikasi.

3.1 Analisis Sistem

Analisis sistem terdiri dari fase-fase berbeda yang mendeskripsikan pengembangan sistem. Dalam tugas akhir ini, ada tiga fase analisis yaitu: analisis masalah, analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk memahami kelayakan masalah. Analisis kebutuhan dilakukan untuk menjelaskan fungsi-fungsi yang ditawarkan dan mampu dikerjakan sistem. Sedangkan analisis proses untuk memodelkan tingkah laku sistem.

3.1.1 Analisis Masalah

Saat ini keamanan dalam pengiriman pesan rahasia sangatlah rentan oleh pihak ketiga yang ingin mengetahui isi dari pesan tersebut. Masalah utama didalam penelitian ini adalah bagaimana menerapkan algortima AES dan Affine Cipher dalam pengamanan data teks.

Masalah-masalah pada penelitian ini diidentifikasikan dengan menggunakan diagram Ishikawa. Diagram Ishikawa atau yang sering dikenal dengan Cause and Effect Diagram adalah diagram yang digunakan untuk memahami dan mengidentifikasi serta menggambarkan beberapa masalah yang terjadi pada sistem dan akibat yang ditimbulkan oleh masalah.

(42)

Mengamankan data berupa pesan

Gambar 3.1 Diagram Ishikawa

Pada gambar 3.1, dapat disimpulkan bahwa permasalahannya adalah muncul rasa curiga atau ingin tahu dari pihak ketiga terhadap kerahasian sebuah pesan yang disebabkan faktor perubahan ciphertext dan penggunaan menggunakan satu kunci yang tidak aman dalam mengirimkan pesan kepada orang lain.

Solusi yang dapat ditawarkan adalah dengan mengunci ciphertext dengan algortima AES serta mengunci cipherkey dengan algoritma Affine Cipher dalam pengiriman pesan.

3.1.2 Analisis Kebutuhan

Didalam analisis kebutuhan ini terdapat dua kebutuhan yaitu kebutuhan fungsional dan kebutuhan non fungsional.

3.1.2.1 Kebutuhan Fungsional

(43)

1. Fungsi Enkripsi

Pengguna dapat melakukan proses enkripsi pesan dari plaintext menjadi ciphertext dengan memasukkan kunci enkripsi terlebih dahulu.

2. Fungsi Dekripsi

Pengguna Pengguna dapat melakukan proses dekripsi pesan dari ciphertext menjadi plaintext dengan memasukkan kunci yang sama pada saat proses enkripsi.

3.1.2.2 Kebutuhan Non-Fungsional

Kebutuhan non-fungsional adalah mendeskripsikan fitur, karakteristik dan batasan lainnya seperti performa, penggunaan, model penyimpanan data, dokumentasi, kontrol, dan ekonomi. Terdapat beberapa hal yang menjadi syarat kebutuhan non-fungsional antara lain:

1. Performa

Aplikasi yang dibangun dapat menampilkan hasil dari fungsi kriptografi yang dilakukan oleh sistem.

2. Mudah dipelajari dan digunakan

Aplikasi yang dibangun harus sederhana dan user friendly agar mudah digunakan dan dipelajari oleh pengguna.

3. Dokumentasi

Aplikasi yang akan dibangun memiliki panduan penggunaan aplikasi.

4. Kontrol

Aplikasi yang akan dibangun memiliki pesan error jika pengguna tidak memasukkan data input tidak lengkap atau salah.

5. Ekonomi

Aplikasi yang dibangun tidak membutuhkan biaya dan perangkat tambahan.

(44)

Pada penelitian ini Aplikasi yang dibangun menggunakan algoritma Advanced Encryption Standard untuk melakukan proses enkripsi dan dekripsi pesan dan Affine Cipher dalam melakukan proses enkripsi dan dekripsi kunci pesan.

3.2 Pemodelan

Pemodelan sistem dilakukan untuk menunjukkan dan mendeskripsikan gambaran dari sistem yang akan dibangun. Pada penelitian ini dilakukan pemodelan dengan menggunakan UML untuk mendesain serta merancang sistem.UML adalah bahasa yang digunakan untuk memberikan penjelasan mengenai komponen-komponen untuk membangun sistem dan interaksi antar komponen sistem. Model UML yang digunakan dalam penelitian ini antara lain adalah use case diagram, activity diagram serta sequance diagram.

3.2.1 Use-Case Diagram

Use-case Diagram adalah gambaran skenario penggunaan aplikasi sistem tentang bagaimana cara sistem bekerja dengan pengguna. Use-case Diagram membutuhkan identifikasi siapakah pengguna yang akan menggunakan sistem tersebut. Pengguna tersebut dinamakan actor. Actor berperan untuk melakukan komunikasi dengan sistem. Hubungan antar actor dengan use-case dihubungkan dengan garis lurus. Sedangkan hubungan dimana satu use-case digunakan untuk meredudansi use-case lainnya digunakan garis putus-putus dengan keterangan include. Untuk extend digunakan untuk mensimplifikasi satu use-case dengan use-case lainnya

(45)

Pada gambar 3.2 terdapat actor yang mempunyai peran yaitu sebagai pengirim atau penerima. Actor (pengirim pesan) mengenkripsikan pesan terlebih dahulu dengan algoritma Advanced Encryption Standard setelah plaintext dienkripsikan menjadi ciphertext lalu kunci dari Advanced Encryption Standard dienkripsikan dengan algoritma Affine Cipher. Kemudian Actror (penerima) membutuhkan kunci Affine Cipher untuk mendeksripsikan Ciphertext kunci Advanced Encryption Standard menjadi Plaintext kunci Advanced Encryption Standard yang digunakan untuk mendeksripsikan pesan yang sebenarnya.

Berikut ini merupakan tabel narrative use-case yang dapat dilihat pada tabel 3.1

Tabel 3.1 Narrative Use-Case Enkripsi Pesan

Use-case Name Enkripsi Pesan Design Scope Sistem (black box) Goal Level User-goal

Stakeholder and Interest

Pengirim(Pengguna): dapat mengenkripsikan pesan dan kunci pesan untuk menjaga keamanan pesan.

Precondition Penggirim(Pengguna) menginputkan pesan dan kunci.

Minimal Guarantee Sistem akan memberikan pesan error ketika enkripsi pesan gagal. Success Guarantee Sistem akan memberikan pesan enkripsi telah sukses.

Trigger Pengguna menekan tombol enkripsi pesan.

Main Success Scenario

1. Pengirim menginputkan plaintext yang akan dienkripsi 2. Pengirim memasukkan kunci dan menekan tombol enkripsi.

3. Sistem akan melakukan enkripsi pesan.

4. Pengirim melakukan proses enkripsi kunci pesan dengan affine cipher.

5. Sistem akan melakukan enkripsi kunci pesan.

6. Sistem akan memberikan pesan bahwa enkripsi pesan dan kunci pesan telah sukses.

Extensions 2. Kunci enkripsi tidak lengkap atau kosong.

a. Sistem akan memberikan pesan kepada pengirim untuk dilakukan cek ulang kembali input-an yang telah diberikan.

(46)

Tabel 3.2 Narrative Use-Case Dekripsi Pesan

Use-case Name Dekripsi Pesan Design Scope Sistem (black box) Goal Level User-goal

Stakeholder and Interest

Penerima dapat mendekripsikan kembali cipherkey dan ciphertext ke dalam bentuk plaintext.

Precondition Penerima ciphertext dan cipherkey AES

Minimal Guarantee Sistem akan memberikan pesan error ketika dekripsi pesan gagal.

Success Guarantee

Sistem akan memberikan pesan dekripsi telah sukses.

Trigger Pengguna dapat menekan tombol Dekripsi Pesan. Main Succes Scenario 1. Penerima memiliki kunci affine cipher

2. Penerima mengdenkripsikan kunci Pesan dengan Kunci affine cipher.

3. Penerima mengdenkripsikan ciphertext menjadi plaintext.

4. Sistem akan melakukan dekripsi pesan.

5. Sistem akan memberikan pesan bahwa dekripsi telah sukses.

6. Sistem akan menampilkan plaintext

3.2.2 Sequence Diagram

Sequence Diagram berfungsi untuk menggambarkan rangkaian pesan yang akan

dikirim antara object yang ada serta interaksi yang terjadi antar object. Berikut

(47)

Gambar 3.3 Diagram Sequence untuk Enkripsi

Gambar 3.4 Diagram Sequence untuk Dekripsi

(48)

3.2.3 Activity Diagram

Pada Activity Diagram menggambarkan berbagai alur aktivitas yang ada di dalam

sistem yang sedang dirancang dan bagaimana masing-masing alur yang ada

berawal serta berakhir. Activity Diagram juga bertujuan untuk membantu

bagaimana memahami proses dan menggambarkan setiap interaksi yang ada

antara beberapa use case yang digunakan. Activity Diagram dari sistem dapat

dilihat pada gambar 3.5.

(49)

3.3 Flowchart Sistem

Flowchart merupakan diagram alir dari bagan-bagan tertentu yang memiliki arus penggambaran mengenai langkah-langkah penyelesaian suatu permasalahan.

Selain itu, flowchart juga memiliki fungsi memudahkan proses pengecekan terhadap sistem yang akan dibuat. Berikut merupakan flowchart dari sistem yang dibangun.

Gambar 3.6 Flowchart Sistem

Dekripsi Pesan

Pilih Menu?

start

Kotak Keluar Info

Enkrispi pesan

Kirim Pesan

Pilih Pesan

Dekripsi Pesan

Pilih Pesan Tampilkan info aplikasi

End

(50)

3.3.1 Flowchart Enkripsi Pesan dengan Algoritma Advanced Encryption Standard

Berikut adalah flowchart enkripsi pesan dari sistem yang dibangun dapat dilihat pada gambar 3.7

Gambar 3.7 Flowchart Enkripsi Pesan dengan Algoritma Advanced Encryption Standard

3.3.2. Flowchart Enkripsi Kunci dengan Algoritma Affine Cipher

Berikut adalah flowchart enkripsi kunci pesan dari sistem yang dibangun dapat dilihat pada gambar 3.8

Gambar 3.8 Flowchart Enkripsi Kunci dengan Algoritma Affine Cipher

START

KUNCI AES, PESAN

ENKRIPSI PESAN DENGAN KUNCI AES

CIPHERTEX

END

STAR

KUNCI AFFINE,

ENKRIPSI KUNCI AES DENGAN KUNCI AFFINE

CIPHER

CIPHERTEXT KUNCI AES

(51)

3.3.3. Flowchart Dekripsi Pesan dan Kunci Pesan

Berikut adalah flowchart dekripsi pesan dari sistem yang dibangun dapat dilihat pada gambar 3.9

Gambar 3.9 Flowchart dekripsi pesan dan Kunci Pesan PLAINTEXT

END DEKRIPSI CIPHER

PESAN DENGAN START

CIPHERTEXT, CIPHERTEXT KUNCI AES, KUNCI AFFINE CIPHER

DEKRIPSI CIPHER KUNCI AES DENGAN

KUNCI AFFINE CIPHER

(52)

3.4 Pseudocode Sistem

Pseudocode merupakan pendeskripsian dari algoritma pemrograman komputer

yang ada dimana menggunakan struktur sederhana dari bahasa pemrograman yang

digunakan dan dapat dimengerti. Berikut merupakana pseudocode dari sistem

yang dibangun.

3.4.1. Psuedocode Enkripsi Pesan ENKRIPSI PESAN DENGAN AES

Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) begin

Byte state[4,Nb] State = in

AddroundKey(state, w[0, Nb-1])

For round = 1 step 1 to Nr-1 SubBytes(state)

ShiftRows(state) MixColumns(state)

AddroundKey(state, w[round*Nb, (round+1)*Nb-1]) end for

SubBytes(state) ShiftRows(state)

AddroundKey(state, w[round*Nb, (round+1)*Nb-1])

out=state end

3.4.2 Psuedocode Enkripsi Kunci Pesan

ENKRIPSI KUNCI PESAN DENGAN AFFINE

For i= 0 to(panjangkunci-1)

Ciphertext=(a*Plaintext + b)mod 128

3.4.4 Pseudocode dekripsi Kunci Pesan

Berikut ini adalah pseudocode dari proses dekripsi pada penelitian ini.

For i= 0 to(panjangkunci-1)

(53)

3.4.5 Pseudocode Dekripsi Pesan

Dekripsi Pesan

Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) begin

Byte state[4,Nb] State = in

AddroundKey(state, w[0, Nb-1]) InvSubBytes(state)

InvShiftRows(state)

For round = 1 step 1 to Nr-1

AddroundKey(state, w[round*Nb, (round+1)*Nb-1]) InvMixColumns(state)

InvSubBytes(state) InvShiftRows(state)

end for

AddroundKey(state, w[round*Nb, (round+1)*Nb-1])

out=state end

3.5. Perancangan Antarmuka

Perancangan antarmuka adalah desain awal dari tampilan sistem yang akan sistem dibangun. Antarmuka harus dirancang dengan memperhatikan faktor pengguna sehingga sistem yang dibangun dapat memberikan kenyamanan dan kemudahan untuk digunakan oleh pengguna. Sistem yang dibangun terdiri dari form utama dan home, pengirim, dan penerima.

3.5.1 Form Utama

(54)

Gambar 3.10 Rancangan Tampilan Form Utama 3.5.2 Form Pengirim

(55)

Gambar 3.11 Rancangan Form Pengirim

Keterangan:

1) Pengguna dapat menginputkan nomor atau memilih contact yang sudah tersimpan di seluler.

2) Pesan diinputkan secara langsung yang di anggap sebagai plaintext

3) Sebelum menekan tombol enkripsi pesan, pengguna harus mengisi kunci AES untuk proses enkripsi pesan.

(56)

5) Proses selanjutnya enkripsi pesan, lalu enkripsi kunci AES, setelah itu tombol kirim pesan untuk mengirim pesan ke nomor tujuan.

3.5.3 Form Penerima

Form Penerima adalah halaman dimana pengguna dapat melakukan proses dekripsi pesan dan dekripsi kunci pesan dari si pengirim. Gambar 3.12 menunjukkan tampilan sementara dari form penerima.

Gambar 3.12 Rancangan Form Penerima

Keterangan:

(57)

2) Pengguna harus tahu ciphertext kunci AES.

3) Sebelumnya pengguna harus memiliki kunci Affine Cipher , dalam hal ini nilai a dan nilai b yang sudah disepkati oleh pengirim dan penerima untuk mengdekripsikan ciphertext AES.

4) Button untuk dekrip kunci untuk mengembalikan ciphertext kunci AES menjadi plaintext kunci AES

5) Plaintext kunci AES digunakan untuk mendekripsikan ciphertext.

(58)

BAB IV

IMPLEMENTASI DAN PENGUJIAN

Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan. Kemudian melakukan pengujian sistem

4.1 Implementasi

Dalam tugas akhir ini, program dibangun menggunakan bahasa pemrograman Java. Program ini terdiri dari 5 form utama, yaitu: form home untuk menampilkan semua menu pada program ini, form buat pesan untuk memulai membuat pesan enkripsi yang baru, form pesan masuk untuk melihat pesan yang masuk dan dapat digunakan untuk proses dekripsi di seluler , form pesan keluar untuk melihat pesan keluar dan form bantuan sebagai halaman dalam menggunakan sistem ini.

4.1.1 Form Home

(59)

4.1.2 Form Pesan Baru

Form Pesan Baru digunakan untuk membuat pesan dari plaintext ke cipher yang kemudian pesan tersebut dikirim melalui jaringan seluler. Pada form ini user dapat mengiputkan nomor handphone tujuan dengan menginputkan secara langsung ataupun yang sudah tersimpan di kontak seluler user.

Gambar 4.2 Form Pesan Baru

4.1.3 Form Pesan Masuk

(60)

Gambar 4.3 Form Pesan Masuk

4.1.4 Form Pesan Keluar

(61)

4.1.5 Form Bantuan

Form Bantuan digunakan sebagai panduan dalam menggunakan sistem ini.

4.5 Form Bantuan

4.2 Pengujian

4.2.1 Skenario Enkripsi AES

Misalkan nilai ASCII dalam Hexadecimal plaintext dan kunci yang akan di uji, yaitu:

Plaintext =32, 43, F6, A8, 88, 51, 30, 8D, 31, 31, 98, A2, E0, 37, 07, 34 Kunci = 2B, 7E, 15, 16, 28, AE, D2, A6, AB, F7, 15, 88, 09, CF, 4F, 3C

Berikut adalah proses enkripsi dengan algoritma Advanced Encryption Standard.

4.2.1.1 AddRoundKey

(62)

4.2.1.2 SubBytes

Pada proses ini nilai Hexa setiap elemen digantikan dengan nilai pada tabel s-box AES, yaitu digit pertama dianggap X, dan digit kedua dianggap Y.

4.1 Tabel S-Box AES

4.2.1.3 ShiftRow

(63)

4.2.1.4 Mix Colomns

Pada proses ini kolom dianggap sebagai polonomial pada GF (28). Proses mix colomns dapat dilihat pada proses di bawah ini.

(64)

b0 =(02 x D4) ⊕ x BF ⊕ x 5D ⊕ x

b0 = (10 x 1101 0100) ⊕ x ⊕ x ⊕ x b0 = 1011 0011 ⊕ 1101 1010 ⊕ 01 ⊕ 0011 0000

b0 = 0000 0100  04 ( HEXA)

pada perkalian 02 x D4 dapat dilhat pada penjabaran berikut :

1101 0100 10 X

0000 0000 11010 100 ⊕ 11010 1000

karena hasilnya melebihi xFF (1111 1111) atau lebih dari 8 digit maka harus dilakukan XOR dengan nilai x11B (1 0001 1011)

110101000 ⊕ 100011011 = 0 1011 0011

angka nol didepan boleh diabaikan, sehingga di dapat hasilny adalah 1011 0011 pada perkalian 02 x D4 dapat dilhat pada penjabaran berikut :

1011 1111 11 X

1011 1111 10111 111 ⊕ 11100 0001

karena hasilnya melebihi xFF (1111 1111) atau lebih dari 8 digit maka harus dilakukan XOR dengan nilai x11B (1 0001 1011)

111000001 ⊕ 100011011 = 0 1101 1010

angka nol didepan boleh diabaikan, sehingga di dapat hasilny adalah 1101 1010 b1 =(01 x D4) ⊕ x BF ⊕ x 5D ⊕ x

b1 = (01 x 1101 0100) ⊕ x ⊕ x ⊕ x b1= 1101 0100 ⊕ ⊕ 0111 ⊕ 0011 0000

b1 = 0110 0110  66 ( HEXA)

b2 =(01 x D4) ⊕ x BF ⊕ x 5D ⊕ x 30)

b2 = (01 x 1101 0100) ⊕ x ⊕ x ⊕ 1 x 0011 0000) b2= 1101 0100 ⊕ ⊕ 1010 ⊕ 0101 0000

(65)

b3 =(03 x D4) ⊕ x BF ⊕ x 5D ⊕ x 30)

b3 = (11 x 1101 0100) ⊕ x ⊕ x ⊕ x 0011 0000) b3= 0110 0111 ⊕ ⊕ ⊕ 0110 0000

b3 = 1110 0101  E5 ( HEXA)

demikian proses ini diteruskan sehingga diperoleh proses enkripsi seperti tabel 4.2

Tabel 4.2 Proses Enkripsi

Round Mulai Round

(66)

4.2.2 Skenario Dekripsi AES

Pada proses ini digunakan kunci yang sama akan tetapi, AddRoundKey terhadap kunci dilakukan secara terbalik dari proses enkripsi. Dilihat dari tebel 4.2 Ciphertext pesan dalam bentuk ASCII dengan nilai Hexadecimal yaitu : Ciphertext : 39, 25, 84, 1D, 02, DC, 09, FB, DE, 11, 85, 92, 19, 6A, 0B, 32

4.2.2.1 AddRoundKey

Pada proses ini Ciphertext di Xor dengan kunci yang dimulai pada roundkey terakhir sampai roundkey yang pertama. Proses roundkey dapat dilihat pada ekspansi kunci.

4.2.2.2 InvShiftRows

 

4.2.2.3 InvSubBytes

Pada proses ini nilai Hexa setiap elemen digantikan dengan nilai pada tabel inversi s-box AES, yaitu digit pertama dianggap X, dan digit kedua dianggap Y.

(67)

4.3 Tabel Inversi S- Box AES

4.2.2.4 InvMixColomns

(68)

Untuk mempermudah proses perkalian dapat digunakan 2 tabel Galois Field Multiplication, yaitu :

Tabel 4.4 tabel E Galois Field Multiplication

(69)

b0 = (EB * 0E) XOR (40*0B) XOR (F2*0D) XOR (1E*09)

= E(L(EB)+L(0E)) XOR E(L(40)+L(0B)) XOR E(L(F2)+L(0D)) XOR E(L(1E)+L(09))

= E(26+DF) XOR E(96+68) XOR E(ED+EE) XOR E(1C+C7) = E(105-FF) XOR E(FE) XOR E(1DB-FF) XOR E(E3) = E(06) XOR E(FE) XOR E(DC) XOR E(E3)

= 55 XOR F6 XOR C6 XOR EE = 8B

b1 = (EB * 09) XOR (40*0E) XOR (F2*0B) XOR (1E*0D)

= E(L(EB)+L(09)) XOR E(L(40)+L(0E)) XOR E(L(F2)+L(0B)) XOR E(L(1E)+L(0D))

= E(26+C7) XOR E(96+DF) XOR E(ED+68) XOR E(1C+EE) = E(ED) XOR E(175-FF) XOR E(155-FF) XOR E(10A-FF) = E(ED) XOR E(76) XOR E(56) XOR E(0B)

= F2 XOR AD XOR DC XOR 96 = 15

b2 = (EB * 0D) XOR (40*09) XOR (F2*0E) XOR (1E*0B)

= E(L(EB)+L(0D)) XOR E(L(40)+L(09)) XOR E(L(F2)+L(0E)) XOR E(L(1E)+L(0B))

= E(26+EE) XOR E(96+C7) XOR E(ED+DF) XOR E(1C+68) = E(114-FF) XOR E(15D-FF) XOR E(1CC-FF) XOR E(84) = E(15) XOR E(5E) XOR E(CD) XOR E(84)

= 73 XOR 76 XOR CB XOR D2 = 1C

(70)

b3 = (EB * 0B) XOR (40*0D) XOR (F2*09) XOR (1E*0E)

= E(L(EB)+L(0B)) XOR E(L(40)+L(0D)) XOR E(L(F2)+L(09)) XOR E(L(1E)+L(0E))

= E(26+68) XOR E(96+EE) XOR E(ED+C7) XOR E(1C+DF) = E(8E) XOR E(184-FF) XOR E(1B4-FF) XOR E(FB) = E(8E) XOR E(85) XOR E(B5) XOR E(FB)

= 3F XOR 6D XOR 23 XOR B4 = C5

4.2.3 Ekspansi Kunci AES

Misalkan nilai ASCII dalam Hexadecimal kunci yang digunakan, yaitu: CipherKey = 2B, 7E, 15, 16, 28, AE, D2, A6, AB, F7, 15, 88, 09, CF, 4F, 3C

(71)

Sehingga didapatkan perputran kunci yang pertama, yaitu :

RoundKey 1

Berikut adalah hasil perputaran kunci dari contoh kunci tersebut yang dihasilkan dari perhitungan ekspansi kunci pada Algoritma Advanced Encryption Standard.

(72)

4.2.4 Skenario Enkripsi Affine Cipher

Misalkan plainteks adalah hari rahman dan kunci m = 5 dan b = 21 serta n = 127. Setelah proses enkripsi selesai, kata sandi diproses sebagaimana terlihat pada Tabel 4.6.

Tabel 4.6 Enkripsi Affine Cipher

Pt PASCII C=mP+b(mod n) CASCII

h 104 29 (no char)

a 97 122 z

r 114 79 O

i 105 34 “ (petik dua)

(space) 32 53 5

r 114 79 O

a 97 122 Z

h 104 29 (no char)

m 109 54 6

a 97 122 Z

n 110 59 ; (titik koma)

4.2.5 Skenario Dekripsi Affine Cipher

Dari proses enkripsi didapat ciphertext yaitu zO"5Oz 6z; dan m-1 =77 serta b =21. Proses dekripsi sebagaimana terlihat pada Tabel 4.7.

Tabel 4.7 Dekripsi Affine Cipher

Ct CASCII P = m-1 (C-b) (mod n) PASCII

(no char) 29 104 h

Z 122 97 a

O 79 114 r

“ (petik dua) 34 105 i

5 53 32

O 79 114 r

Z 122 97 a

(no char) 29 104 h

6 54 109 m

Z 122 97 a

(73)

4.2.6 Pengujian Enkripsi Pesan

Pengujian ini dilakukan untuk mengetahui pengaruh panjang plaintext terhadap lama proses enkripsi dan panjang kunci yang digunakan terhadap lama proses enkripsi algoritma Advanced Encryption Standard.

Tabel 4.8 Hasil Pengujian Enkripsi dengan Variasi Panjang Plaintext NO Panjang Plaintext

(Karakter)

Waktu

(detik)

1. 17 0.012

2. 35 0.020

3. 105 0.028

4. 208 0.034

5. 420 0.037

Berdasarkan tabel 4.8 dapat dilihat grafik yang terdapat pada gambar 4.5 yaitu lama waktu dalam melakukan proses enkripsi pesan dengan lima contoh panjang plaintext yang berbeda .

(74)

4.2.7 Pengujian Dekripsi Pesan

Pengujian ini dilakukan untuk mengetahui pengaruh panjang plaintext terhadap lama proses dekripsi dengan panjang kunci yang digunakan terhadap lama proses dekripsi algoritma Advanced Encryption Standard.

Tabel 4.9 Hasil Pengujian Dekripsi dengan Variasi Panjang Plaintext NO Panjang Plaintext

(Karakter)

Waktu

(detik)

1. 17 0.017

2. 35 0.028

3. 105 0.033

4. 208 0.036

5. 420 0.04

Berdasarkan tabel 4.9 dapat dapat dilihat grafik yang terdapat pada gambar 4.6 yaitu lama waktu dalam melakukan proses enkripsi pesan dengan lima contoh panjang plaintext yang berbeda

(75)

Gambar 4.6 Grafik Pengujian Dekripsi Pesan

Tabel 4.10 Perbandingan Waktu Enkripsi dan Dekripsi Pesan

Nomor Panjang Plaintext Waktu Enkripsi Waktu Dekripsi

1 17 0.012 0.017

2 35 0.020 0.028

3 105 0.028 0.033

4 208 0.034 0.036

(76)

Gambar 4.7 Grafik Perbandingan Enkripsi dan Dekripsi

(77)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan hasil dari penelitian, maka diperoleh beberapa kesimpulan sebagai berikut:

1. Algoritma Advanced Encrytption Standard berfungsi untuk mengamankan informasi pesan yang akan dienkripsi sementara algoritma Affine cipjer berfungsi untuk mengamankan kunci dari pesan yang telah dienkripsi .

2. Jumlah nilai karakter setelah dienkripsi akan semakin besar karena pada algortima AES menggunakan matriks 4 x 4 dan akan kembali seperti semula setelah did ekripsi.

(78)

5.2 Saran

Berikut ini adalah saran yang dapat digunakan untuk tahap pengembangan penelitian sistem ini antara lain:

1. Didalam penelitian ini pesan yang akan dienkripsi dan didekripsi dalam aplikasi SMS , diharapkan kedepannya pesan yang dienkripsi dan didekripsi berupa aplikasi chat, email, ataupun media sosial.

2. Didalam penelitian ini pesan yang tekirim tersimpan didalam server penyedia jasa selular, sehingga diharapkan pada penelitian selanjutnya untuk meperhitungkan keamanan pesan dalam server tersebut.

(79)

Daftar Pustaka

Ariyus, D. 2008. Pengantar Ilmu Kriptografi: Teori, Analisis dan Implementasi. ANDI: Yogyakarta

Daemen, J & Rijmen,V. 2001. The Desain of Rijndael. Springer-Verlag: Berlin.

Entprise, Jubilee. 2010. Step By Step Ponsel Android. PT Elex Media Komputindo: Jakarta

Harahap, A.A. 2014. Implementasi Sistem Keamanan Data Menggunakan Steganografi Teknik Pemetaan Titik Hitam dengan Pencarian Sekuensialdan Rabin Cryptosystem. Skripsi. Universitas Sumatera Utara.

Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. SPK IT Consulting: Jakarta.

Munir, Rinaldi. 2003. Matematika Diskrit. Bandung, Indonesia : Penerbit Informatika Bandung.

Munir, Rinaldi. 2006. Kriptografi. Informatika: Bandung.

Mollin, Richard. A. 2007.An Introduction to Cryptography 2nd Ed. Taylor & Francis Group, LLC. United State of America.

Nasution, R. N. M. 2015. Implementasi Algoritma Hill Cipher dan RSA pada Enkripsi Hybrid Pesan SMS di Android. Skripsi. Medan. Universitas Sumatera Utara.

Pressman, Roger.S. 2001. Software Engineering. McGraw-Hill: New York. Paar, C. & Pelzl, J. 2010. Understanding Cryptography. Springer-Verlag: Berlin. Rosen, K. H. 2012. Discrete Mathematics and Its Applications. 7th Edition.

McGraw-Hill: New York nding Cryptography. Springer-Verlag: Berlin

Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java. ANDI: Yogyakarta.

Schneier, B. 1996. Applied Cryptography: Protocols, Algorithms and Source Code in C. 2nd Edition. John Wiley & Sons, Inc: New Jersey

Sebayang, M. S. A. 2014. Implementasi Kombinasi Beaufort Cipher dan Affine Cipher pada Three-Pass Protocol untuk Pengamanan Data. Skripsi. Medan. Univesitas Sumatera Utara.

(80)

option=com_repo&Itemid=34&task=detail&nim=111020245 (1 Februari 2015)

(81)

LAMPIRAN A : LISTING PROGRAM

1. Form Utama(MainActivity.java)

import android.os.Bundle;

public class MainActivity extends Activity { //Button tentang, bantuan;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

((Button)

findViewById(R.id.btnPesanbaru)).setOnClickListener(new OnClickListener() {

public void onClick(View v) {

MainActivity.this.startActivity(new

public void onClick(View v) { Intent click = new

(82)

((Button)findViewById(R.id.btnBantuan)).setOnClickListener(n ew OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub Intent i = new

public void onClick(View arg0) {

// TODO Auto-generated method stub Intent i = new

(83)

import android.telephony.SmsManager;

public class BuatPesan extends Activity { EditText nomorKontak,

text,hasilencrypt,kunci_a_enk,kunci_b_enk,kunciaes_enk,hasilenc ryptkunci;

private static final Charset UTF8_CHARSET = Charset.forName("UTF-8");

// contact picker

private static final int CONTACT_PICKER_RESULT = 1001; private long

public void doLaunchContactPicker(View view) { Uri uri =

ContactsContract.CommonDataKinds.Phone.CONTENT_URI;

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, uri);

startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

String phone = ""; Cursor contacts = null; try {

if (resultCode == RESULT_OK) { switch (requestCode) { case CONTACT_PICKER_RESULT:

(84)

Uri result = data.getData();

// get the contact id from the Uri (last part is contact

// id)

String id = result.getLastPathSegment(); // queries the contacts DB for phone no contacts = getContentResolver().query(

EditText phoneTxt = (EditText) findViewById(R.id.nomorHp);

// assigns phone no to EditText field phoneno

// gracefully handle failure Toast.makeText(BuatPesan.this,

public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.buatpesan);

Gambar

Gambar 2.4 Skema Sandi  Affine
Gambar 2.5 Sturktur enkripsi AES
gambar 2.8 :
Gambar 2.9 Tranformasi Penambahan Kunci dengan Operasi XOR
+7

Referensi

Dokumen terkait

Tujuan dari penelitian ini adalah membangun suatu aplikasi yang dapat mengamankan file gambar dengan menggunakan algoritma Advanced Encryption Standard (AES).... 1.5

2012.Implementasi algoritma rijndael untuk enkripsi dan dekripsi pada citra digital.. Secure image data by

Pada kesimpulan mengenai penulisan yang berjudul “Implementasi Pengamanan Data Pada Dokumen Menggunakan Algoritma Kriptografi Advanced Encryption Standard (AES)”,

Berdasarkan latar belakang tersebut adalah untuk membuat suatu program aplikasi kriptografi dengan algoritma Advanced Encryption Standard (AES-128 bit) dan algoritma

Dalam penelitian ini penulis akan menerapkan algoritma Advanced Encryption Standard (AES) untuk melakukan enkripsi pada tiap karakter yang terdapat pada file audio tersebut

Dari Tabel 4 dapat diketahui rata-rata dari total proses dekripsi sebesar 2,633 milisekon dengan waktu proses dekripsi paling cepat 1 milisekon di setiap jenis AES 128 bit,

Dengan menerapkan Kriptografi Affine Cipher sebagai enkripsi dan dekripsi pesan dan AES-256 sebagai enkripsi dan dekripsi file yang berupa format .pdf aplikasi dibangun berbasis

ENHANCING ADVANCED ENCRYPTION STANDARD AES S-BOX GENERATION USING AFFINE TRANSFORMATION 1NUR HAFIZA ZAKARIA, 2RAMLAN MAHMOD, 3NUR IZURA UDZIR, 4ZURIATI AHMAD ZUKARNAIN 1Faculty of