ANALISIS DAN PERANCANGAN SISTEM YANG MENERAPKAN ALGORITMA TRIANGLE CHAIN CIPHER (TCC) UNTUK ENKRIPSI RECORD TABEL DATABASE SYSTEM ANALYSIS AND DESIGN USING TRIANGLE CHAIN CIPHER ALGORITHM (TCC) FOR DATABASE RECORD ENCRYPTION Rivalri Kristianto Hondro, Gunadi Widi Nurcahyo Universitas Putra Indonesia YPTK Padang Jl. Raya Lubuk Begalung, Padang E-Mail: rivalryhondro@gmail.com, gunadiwidi@yahoo.co.id ABSTRAK Data teks pada umumnya yang tersimpan di dalam database masih persis sama dengan teks yang ditampilkan sebagai informasi akhir bagi pengguna. Hal ini dapat mempermudah seorang kriptanalis maupun orang lain yang tidak mempunyai hak akses untuk dapat mengetahui secara langsung isi dari database. Paper ini bertujuan untuk meminimalisir masalah terhadap database tersebut dengan melakukan kegitan penyandian record table database dengan menggunakan algoritma triangle chain cipher (TCC). Pendekatan eksperimental digunakan untuk menguji algoritma Triangle Chain yang merupakan salah satu algoritma penyandian yang beroperasi berdasarkan penyandian (kriptografi) klasik khususnya dalam teknik subtitusi terhadap karakter. Setiap karakter akan disubtitusi berdasarkan kunci dan faktor pengali yang telah ditetapkan berdasarkan formula yang berlaku dalam algoritma ini. Algoritma ini melakukan penyandian pada record sebanyak dua kali dan selalu bergantung pada hasil proses sebelumnya. Hal inilah yang mendasari rumitnya pemecahan dari algoritma penyandian berantai ini. Kata kunci: Record, Table, Database, Enkripsi, Dekripsi, algoritma triangle chain cipher, Kunci ABSTRACT In generall, database record contains an array of operational data available to a company or organization, as a source of any information system that is running. Generally, text data is stored in database which is still exactly the same as the text displayed as the final information for the user. This can facilitate a cryptanalyst and others who do not have access rights to be able to know the contents of the database directly. This study aims to minimize the problem by performing record encryption using the triangle chain cipher algorithm (TCC). Triangle chain algorithm is one of the encryption algorithms that operate based on encryption (cryptography), especially in classic substitution of character technique. Each character will be substituted by a key and a multiplier factor that has been determined based on a formula that applies in this algorithm. These algorithms perform encryption on the record twice and always rely on the results of the previous process. This is what underlies the complexity of solving this chain encryption algorithms. Key Words : Record, Table, Database, Enkripsi, Dekripsi, Agoritma Traingle Chain Cipher, Key PENDAHULUAN Seiring dengan semakin meningkatnya kejahatan komputer, keamanan data merupakan suatu hal yang tak terpisah dalam pembangunan sistem berbasis jaringan komputer. Salah satu metode dalam keamanan data adalah kriptografi (Rifki Sadiki, 2012). Mengamankan data dengan teknik kriptografi merupakan sebuah aktivitas menyembunyikan data dengan mengubah data asli kedalam bentuk data yang lain, dalam arti makna pesan tersebut diubah dari data yang bermakna ke data yang tidak bermakna (Rinaldi Munir, 2006). Database secara umum kumpulan informasi suatu organisasi atau perusahaan yang disimpan di dalam komputer disebut basis data secara sistematik yang saling berhubungan dan berkaitan subjek tertentu untuk menampilkan informasi sesuai dengan subjeknya masing-masing. Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita (Bruce Schneier - Applied Cryptography). 118
TUJUAN KRIPTOGRAFI Tujuan dari kriptografi adalah untuk tidak menyembunyikan keberadaan pesan, melainkan untuk menyembunyikan maknanya. Aspek keamanan yang diberikan kriptografi selain menyandikan pesan juga menyediakan beberapa aspek keamanan. Berikut aspek keamanan kriptografi: 1. Kerahasiaan (confidentiality), adalah layanan yang digunakan untuk menjaga isi pesan dari siapapun yang tidak berhak membacanya. Layanan ini direalisasikan dengan cara menyandikan pesan menjadi bentuk yang tidak dapat dimengerti. Misalnya pesan Harap datang pukul 8 disandikan menjadi TrxC#45motypetre!%. 2. Integritas data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli / utuh atau belum pernah dimanipulasi selama pengiriman. Layanan ini direalisasikan dengan menggunakan tanda-tanda digital (digital signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli. 3. Otentifikasi (authenification), adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentification atau entity authentification) maupun mengidentifikasi kebenaran sumber pesan (data origin authentification). Layanan ini direalisasikan dengan menggunakan digital signature. 4. Nirpenyangkalan (non-repudiation), adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. KOMPONEN KRIPTOGRAFI Dalam melakukan pengamanan dengan ilmu kriptografi adapun komponen pendukung system kriptografi: a. Pesan (message) adalah data atau informasi yang dapat dibaca atau dimengerti maknanya. Nama lainnya untuk pesan adalah plainteks (plaintext) atau teks jelas (clear text). b. Pengirim (sender) adalah entitas yang melakukan pengiriman pesan kepada entitas lainnya. c. Kunci (cipher)/secret Key adalah aturan atau fungsi matematika yang digunakan untuk melakukan proses enkripsi dan dekripsi pada plaintext dan ciphertext. d. Ciphertext adalah keluaran algoritma enkripsi. Cipehertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan ciphertext yang terlihat teracak. Untuk selanjutnya digunakan istilah teks sandi sebagai padana kata ciphertext. e. Enkripsi adalah mekanisme yang dilakukan untuk merubah plaintext menjadi ciphertext. f. Dekripsi adalah mekanisme yang dilakukan untuk merubah ciphertext menjadi plaintext. g. Penerima (receiver) adalah entitas yang menerima pesan dari pengirim/entitas yang berhak atas pesan yang dikirim. Baik proses enkripsi maupun proses dekripsi melibatkan satu atau beberapa kunci kriptografi. Dalam suatu sistem dimana terdapat algoritma kriptografi, ditambah seluruh kemungkinan plaintext, chipertext dan kunci-kuncinya disebut kriptosistem (cryptosystem atau cryptographic system). Proses tersebut dapat digambarkan secara sederhana sebagai berikut: Gambar 1. Skema Enkripsi dan Dekripsi Sederhana ALGORITMA KRIPTOGRAFI Algoritma dalam kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang lain yang tidak berhak atas pesan tersebut. 1. Algoritma Enkripsi: Algoritma enkripsi memiliki 2 masukan teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi. 2. Algoritma Dekripsi: Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi. 3. Algoritma Kunci (Key): Didalam Kutipan Bahan Perkuliahan Sistem Kriptografi Ir. Rinaldi Munir, M.T., Kunci adalah yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi dua bagian yaitu kunci rahasia (private key) dan kunci umum (public key). 119
KEKUATAN ALGORITMA KRIPTOGRAFI Dari ketiga algoritma diatas Algoritma kriptografi harus memiliki kekuatan untuk melakukan: 1. Konfusi/pembinggungan (confusion), dari teks terang sehingga sulit untuk direkrontruksikan secara langsung tanpa menggunakan algoritma dekripsinya. 2. Difusi/peleburan (diffusion), dari teks terang sehingga karakteristik dari teks terang tersebut hilang sehingga dapat digunakan untuk mengamankan informasi. JENIS KUNCI (KEY) PADA KRIPTOGRAFI Berdasarkan kunci yang digunakan dalam proses kriptografi, maka algoritma kunci kriptografi dibagi menjadi (Dony Arius, 2008) : 1. Algoritma Simetri Algoritma ini sering disebut dengan algoritma klasik karena memakai kunci yang sama untuk kegiatan enkripsi dan dekripsi. Bila mengirim pesan dengan menggunakan algoritma simetri, penerima pesan harus mengetahui kunci yang digunakan agar bisa si penerima mampu mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci. Algoritma yang menggunakan kunci simetris misalnya DES, Kode Rivest s IDEA, AES, OTP, A5 dan lainlain. 2. Algoritma Asimetri Algorima asimetri sering juga disebut dengan algoritma kunci publik, dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsi berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian yaitu kunci umum (public key) yang bias diketahui oleh umum dan kunci rahasia (private key) yaitu kunci yang dirahasiakan dan hanya boleh diketahui oleh satu orang saja. 3. Fungsi Hash Fungsi hash sering disebut dengan fungsi has satu arah (one way function), message digest, fingerprint, fungsi kompersi dan Message Authentication Code (MAC) yang merupakan suatu fungsi matematika yang mengambil masukan panjang variabel dan mengubahnya ke dalam urutan biner dengan panjang yang tetap. ALGORITMA TRIANGLE CHAIN CIPHER (TCC) Algoritma kriptografi triangle cahin cipher juga dapat disebut dengan algoritma rantai segitiga, algoritma rantai segitiga merupakan algoritma yang dibuat guna memperbaiki algoritma kriptografi klasik khususnya algoritma substitusi abjad tunggal yang sangat mudah diserang dengan teknik analisis frekuensi. Algoritma rantai segitiga ini memiliki aturan substitusi berdasar pada caesar cipher yaitu dengan pergeseran huruf-huruf. Kekuatan cipher ini terletak pada kunci yaitu nilai integer yang menunjukkan pergeseran karakter-karakter sesuai dengan operasi pada caesar cipher. Kekuatan kedua terletak pada barisan bilangan-bilangan yang berfungsi sebagai pengali dengan kunci. Barisan bilangan tersebut dapat berupa bilangan tertentu seperti deret bilangan ganjil, deret bilangan genap, deret fibonaci, deret bilangan prima, serta deret bilangan yang dapat dibuat sendiri. Algoritma rantai segitiga memiliki aturan yang sama dengan Caesar Cipher yaitu dengan pergeseran huruf-huruf. 1. Algoritma Enkripsi TCC Adapun algoritma enkripsi yang ada pada metode ini dengan menggunakan rumus sebagai berikut: 1. Matriks Enkripsi Segitiga Pertama Untuk Baris Ke-1: M [1 j] = P[ j ] + (K * R[ 1 ]) Mod 26 Untuk baris ke-2 dan seterusnya untuk nilai j i : M [i j] = M [i-1] j + (K * R[ i ]) Mod 26 Sehingga nilai ciphertext yang diperoleh: M [i j] pada nilai j = (N+i) N 2. Matriks Enkripsi Segitiga Kedua Nilai P diperoleh dari nilai M i j pada i = j Untuk Baris Ke-1 M [1j] = P[ j ] + (K * R[ 1 ]) Mod 26 Untuk baris ke-2 dan seterusnya untuk nilai j (N+1)- i : M [i j] = M [i-1] j + (K * R[ i ]) Mod 26 Sehingga nilai ciphertext yang diperoleh: M [i j] pada nilai j = (N+1) i Keterangan: P = Plaintext N = Jumlah karakter plaintext M = Matriks penampung hasil penyandian K = Kunci R = Row (baris perkalian faktor pengali dengan kunci) i = indeks faktor pengali j = index karakter plaintext 2. Algoritma Dekripsi TCC Sedangkan untuk algoritma dekripsi Triangle Chain Cipher merupakan kebalikan dari algoritma enkripsi, rumusnya sebagai berikut: 1. Matriks dekripsi segitiga pertama Untuk baris ke-1: 120
M 1j = C [ j ] (K * (R[1])) Mod 26 Untuk baris ke-2: j (N+1) i M [ij] = M [i-1]j (K * (R[i])) Mod 26 Sehingga nilai plaintext hasil proses segitiga pertama diambil nilai setiap barisnya dengan ketentuan: M [ij] pada nilai i=n dan j (N+1) i 2. Matriks dekripsi segitiga kedua Untuk baris ke-1: M1j = C [ j ] (K* (R[1])) Mod 26 Untuk baris ke-2: j i M [ij] = C [i-1]j (K * (R[i])) Mod 26 sehingga nilai plaintext untuk cipertext yang asli adalah: M [ij] pada nilai j = (N+i)-N Keterangan: P = Plaintext N = Jumlah karakter plaintext M = Matriks penampung hasil cipher yang dijadikan sebagai plaintext K = Kunci R = Row (baris perkalian faktor pengali dengan kunci) i = indeks faktor pengali j = index karakter plaintext database dapat dilihat pada model gambar 3 yang terdiri dari input, proses dan output: Gambar 3. Data Masukan, Proses Dan Keluaran Pada Proses Penyandian (Enkripsi) Record Tabel Database Dari gambar 3 dapat kita pahami yang menjadi plainteks dalam proses penyandi (enkripsi) record tabel database adalah seluruh record tabel yang belum tersandikan dan untuk proses dekripsi record tabel database yang menjadi cipherteks adalah seluruh record tabel yang telah tersandikan, seperti pada model gambar 4. METODOLOGI Elemen yang paling dasar dari sebuah database diawali oleh beberapa karakter yang membentuk baris (record), kemudian record ini akan diletakkan ke dalam kolom (field) sebagai penampung record. Pertemuan antara baris dengan kolom disebut item data (data value), tabel-tabel yang ada dan dapat dihubungakan (relationship) sedemikian rupa dengan menggunakan field-field kunci (key field), struktur inilah yang akan membentuk sebuah database. Gambar 2. Komponen Pembentuk Database Pembahasan yang dibahas didalam penelitian ini adalah proses penyandian record tabel database. Proses enkripsi record tabel database didalam penelititan ini disebut penyandian record table database. Proses penyandian record tabel Gambar 4. Data Masukan, Proses Dan Keluaran Pada Proses Dekripsi Record Tabel Database SKEMA PROSES PENYANDIAN (ENKRIPSI) ALGORITMA TCC Proses penyandian (enkripsi) dengan algoritma TCC, ada 2 proses penyandian (enkripsi) yang pertama disebut enkripsi segitiga pertama dan kedua disebut enkripsi segitiga kedua. Untuk lebih jelas dapat dilihat pada model gambar 4. Dari gambar 5. dapat kita pahami proses dari pada penyandian (enkripsi) algoritma TCC dilakukan sebanyak 2 kali, dimana proses enkripsi pertama (enkripsi segitiga pertama) yang menjadi plainteks adalah data asli dan diproses menghasilkan cipherteks yang nantinya dijadikan sebagai plainteks untuk proses enkripsi kedua (enkripsi segitiga kedua) maka cipherteks pada enkripsi kedua yang menjadi akhir dari proses enkripsi algoritma TCC. 121
Gambar 5. Skema Model Proses Penyandian (Enkripsi) Algoritma TCC Skema Proses Dekripsi Algoritma TCC Proses dekripsi algoritma TCC kebalikan daripada proses enkripsi algoritma TCC, proses dekripsi algoritma TCC ada 2 proses yaitu: dekripsi segitiga pertama dan dekripsi segitiga kedua. Dekripsi pertama yang menjadi cipherteks adalah data yang telah tersandikan diproses menghasilkan plainteks yang nantinya dijadikan cipherteks untuk proses dekripsi kedua dan hasil proses dekripsi kedua (palinteks) adalah merupakan data asli yang tidak tersandikan. Untuk model dekripsi algoritma TCC dapat dilihat pada gambar 6. 3. Kunci Algoritma Triangle Chain Cipher Dalam melakukan proses enkripsi dan dekripsi algoritma triangle chain cipher data kunci yang digunakan terdiri dari deretan angka. Penerapan algoritma triangle chain cipher (rantai segitiga cipher) mengadopsi teknik penyandian Caesar, dimana dapat melakukan subtitusi setiap karakter yang akan disandikan secara berantai berdasarkan kunci dan faktor-faktor pengali yang terbentuk. Nilai kunci yang digunakan dalam proses penyandian plaintext yang ada pada record database dikalikan dengan faktor pengali yang terbentuk, dalam hal ini faktor pengali tersebut merupakan tabel bilangan dengan jumlah sepanjang plaintext yang akan disandikan. Contoh: Plaintext = RIVA dari plaintext ini faktor pengali berjumlah = 4 fp[1], fp[2], fp[3], fp[4]. Dari nilai fp (faktor pengali) diatas akan menghasilkan nilai kunci dengan rumus sebagai berikut: Kunci = K * fp Keterangan lebih lanjut dapat dilihat dalam tabel berikut dengan model matriks M ij dimana M = Matriks, i = baris, dan j = kolom Tabel 1. Faktor Pengali Terhadap Kunci P(R) P(I) P(V) P(A) Plaintext, i = 0 C11(R) C12(I) C13(V) C14 (A) i = 1 fp[1] C22(I) C23(V) C24(A) i = 2 fp[2] C33 (V) C34(A) i = 3 fp[3] C44(A) i = 4 fp[4] Ket: P = Plaintext, C = Ciphertext 4. Tabel ASCII Mod 255 Sesuai dengan tabel ASCII mod 255 yang ada pada lampiran, karakter yang akan di enkripsi atau dekripsi terlebih dahulu dirubah ke bentuk desimal. Contoh: Plaintext = R I V A Nilai Desimal pada ASCII = 82, 73, 86, 65. Gambar 6. Skema model proses dekripsi algoritma TCC 1. Penerapan Kunci Penerapan kunci dalam penelitian ini menggunakan algoritma kunci simetri yaitu kunci yang digunakan pada proses enkripsi sama dengan kunci pada proses dekripsi. Untuk penerapan nya kunci yang digunakan angka tunggal dengan deretan bilangan adalah 1 sampai dengan 20. 2. Pendistribusian Kunci Simetri Untuk pendistribusian kunci terhadap proses dekripsi dilakukan dengan memberitahu kepada orang yang akan melakukan pendekripsian record tabel database. HASIL DAN PEMBAHASAN Contoh Kasus Penerapan Algoritma Triangle Chain Cipher (TCC): 1. Proses Penyandian (Enkripsi) Algoritma Triangle Chain Cipher (TCC) a. Matriks enkripsi segitiga pertama Plaintext = RIVALRY Kunci yang digunakan = 4 (Bilangan Asli Integer) Sesuai dengan panjang plaintext N = 7 Faktor Pengali (fp = R) berdasarkan nilai N = (deret bilangan asli) (1, 2, 3, 4, 5, 6, 7). Sebelum plaintext dienkripsi, setiap karakter terlebih dahulu dirubah ke nilai desimal sesuai dengan nilai ASCII denga nilai mod 255: 122
KARAKTER R I V A L R Y NILAI DESIMAL 82 73 86 65 76 82 89 Langkah selanjutnya adalah melakukan proses enkripsi segitiga pertama sesuai dengan rumus: P = RIVALRY K = 4 N = 7 R = 1, 2, 3, 4, 5, 6, 7. Rumus untuk baris pertama (i = 1): M [1 j] = P[ j ] + (K * R[ 1 ]) Mod Maka Penyelesain enkripsi baris pertama: Hasil enkripsi keseluruhan sampai baris ke-2 ini, RIVALRY 82 73 86 65 76 82 89 i = 0 VMZEPV] 86 77 90 69 80 86 93 i = 1 UbMX^e 85 98 77 88 94 101 i = 2 Untuk baris selanjutnya prosesnya sama dengan pada baris kedua, sampai terbentuk hasil seperti pada tabel berikut: Tabel 2. Proses Enkripsi M11 = (P[1] + (4 * R[1])) Mod = (R + (4 * (1))) Mod = (82 + 4) Mod = 86 (huruf V dalam M12 = (P[2] + (4 * R[1])) Mod = (I + (4 * (1))) Mod = (73 + 4) Mod = 77 (huruf M dalam M13 = (P[3] + (4 * R[1])) Mod = (V + (4 * (1))) Mod = (86 + 4) Mod = 90 (huruf Z dalam M16 = (P[5] + (4 * R[1])) Mod = (L + (4 * (1))) Mod = (76 + 4) Mod = 80 (huruf P dalam M17 = (P[7] + (4 * R[1])) Mod = (Y + (4 * (1))) Mod = (89 + 4) Mod = 93 (huruf ] dalam M14 = (P[4] + (4* R[1])) Mod = (A + (4 * (1))) Mod = (65 + 4) Mod = 69 (huruf E dalam M16 = (P[6] + (4 * R[1])) Mod = (R + (4 * (1))) Mod = (82 + 4) Mod = 86 (huruf V dalam Hasil dari enkripsi baris pertama (i = 1) (tanpa tanda ) adalah VMZEPV] RIVALRY ( nilai desimal ASCII : 82 73 86 65 76 82 89 ) i = 0 VMZEPV] ( nilai desimal ASCII : 86 77 90 69 80 86 93) i = 1 hasil enkripsi baris pertama akan digunakan sebagai plaintext untuk baris kedua (i = 2), di mana nilai j i, sehingga: enkripsi i = 2, j = 2 Rumus untuk baris ke-2 (i = 2) dan seterusnya (i = n): M [i j] = M [i-1] j + (K * R[ i ]) Mod Penyelesain: M22 = (P[2-1]2 + (4 * R[2])) Mod = (M + (4 * (2))) Mod = (77 + 8) Mod = 85 (huruf U dalam M24 = (P[2-1]4 + (4 * R[2])) Mod = (E + (4 * (2))) Mod = (69 + 8) Mod = 77 (huruf M dalam M26 = (P[2-1]6 + (4 * R[2])) Mod = (V + (4 * (2))) Mod = (86 + 8) Mod = 94 (huruf ^ dalam M23 = (P[2-1]3 + (4 * R[2])) Mod = (Z + (4 * (2))) Mod = (90+ 8) Mod = 98 (huruf b dalam M25 = (P[2-1]5 + (4 * R[2])) Mod = (P + (4 * (2))) Mod = (80 + 8) Mod = 88 (huruf X dalam M27 = (P[2-1]7 + (4 * R[2])) Mod = ( ] + (4 * (2))) Mod = (93 + 8) Mod = 101 (huruf e dalam Hasil enkripsi baris ke-2 (i = 2) (tanpa tanda ) adalah UbMX^e dengan nilai desimal 85 98 77 88 94 101. maka dari tabel di atas hasil proses enkripsi pertama (tanpa tanda ) adalah VUniˆ É dengan nilai desimal 86 85 110 105 136 166 201. b. Matriks enkripsi segitiga kedua Plaintext: V U n i ˆ É 86 85 110 105 136 166 201 Maka penyelesain untuk baris pertama (i = 1): M11 = (P[1] + (4 * R[1])) Mod = (V + (4 * (1))) Mod = (86 + 4) Mod = 90 (huruf Z dalam M13 = (P[3] + (4 * R[1])) Mod = (n + (4 * (1))) Mod = (110 + 4) Mod = 114 (huruf r dalam M16 = (P[5] + (4 * R[1])) Mod = ( ˆ + (4 * (1))) Mod = (136 + 4) Mod = 140 (huruf Œ dalam M17 = (P[7] + (4 * R[1])) Mod = ( É + (4 * (1))) Mod = (201 + 4) Mod = 205 (huruf Í dalam M12 = (P[2] + (4 * R[1])) Mod = (U + (4 * (1))) Mod = (85 + 4) Mod = 89 (huruf Y dalam M14 = (P[4] + (4* R[1])) Mod = (i + (4 * (1))) Mod = (105 + 4) Mod = 109 (huruf m dalam M16 = (P[6] + (4 * R[1])) Mod = ( + (4 * (1))) Mod = (166 + 4) Mod = 170 (huruf ª dalam Hasil enkripsi baris ke-1 (i = 1) (tanpa tanda ) adalah ZYrmŒªÍ dengan nilai desimal 90 89 114 109 140 170 205. Hasil enkripsi keseluruhan sampai baris ke-1 ini, VUniˆ É 86 85 110 105 136 166 201 i = 0 ZYrmŒªÍ 90 89 114 109 140 170 205 i = 1 Hasil enkripsi baris pertama (i = 1) akan digunakan sebagai plaintext pada proses enkripsi baris ke-2, dimana nilai j (N+1) i, maka berdasarkan ketentuan tersebut kegiatan enkripsi dilakukan: 123
Rumus: M [i j] = M [i-1] j + (K * R[ i ]) Mod Penyelesain untuk baris ke-2 sebagai berikut: i = 2; j (7+1)-2 j 6 M21 = (P[2-1]1 + (4 * R[2])) Mod = (Z + (4 * (2))) Mod = (90 + 8) Mod = 98 (huruf b dalam M23 = (P[2-1]3 + (4 * R[2])) Mod = (r + (4 * (2))) Mod = (114 + 8) Mod = 122 (huruf z dalam M25 = (P[2-1]5 + (4* R[2])) Mod = (Œ + (4 * (2))) Mod = (140 + 8) Mod = 148 (huruf dalam M22 = (P[2-1]2 + (4 * R[2])) Mod = (Y + (4 * (2))) Mod = (89 + 8) Mod = 97 (huruf a dalam M24 = (P[2-1]4 + (4* R[2])) Mod = (m + (4 * (2))) Mod = (109 + 8) Mod = 117 (huruf u dalam M26 = (P[2-1]6 + (4* R[2])) Mod = ( ª + (4 * (2))) Mod = (170 + 8) Mod = 178 (huruf ² dalam Hasil enkripsi baris ke-2 (i = 2) (tanpa tanda ) adalah bazu ² dengan nilai desimal 98 97 122 117 148 178. Hasil enkripsi keseluruhan sampai baris ke-2 ini, VUniˆ É 86 85 110 105 136 166 201 i = 0 ZYrmŒªÍ 90 89 114 109 140 170 205 i = 1 bazu ² 98 97 122 117 148 178 i = 2 Dan untuk baris selanjutnya sama prosesnya sama dengan proses baris ke-2, hasilnya dapat dilihat pada tabel berikut: Tabel 3. Hasil Enkripsi M [1 j] = C[ j ] - (K * R[ 1 ]) Mod Maka penyelesain untuk baris pertama (i = 1): M11 = (C[1] - (4 * R[1])) Mod = (Æ - (4 * (1))) Mod = (198-4) Mod = 194 (huruf  dalam M13 = (C[3] - (4 * R[1])) Mod = ( ª - (4 * (1))) Mod = (170-4) Mod = 166 (huruf dalam M16 = (C[5] - (4 * R[1])) Mod = ( - (4 * (1))) Mod = (160 + 4) Mod = 156 (huruf œ dalam M17 = (C[7] - (4 * R[1])) Mod = ( Í - (4 * (1))) Mod = (205-4) Mod = 201 (huruf É dalam M12 = (C[2] - (4 * R[1])) Mod = ( - (4 * (1))) Mod = (169-4) Mod = 165 (huruf dalam M14 = (C[4] - (4* R[1])) Mod = ( - (4 * (1))) Mod = (145-4) Mod = 141 (huruf... dalam M16 = (C[6] - (4 * R[1])) Mod = ( ² - (4 * (1))) Mod = (178-4) Mod = 174 (huruf dalam Hasil dekripsi baris ke-1 (i = 1) (tanpa tanda ) adalah Â... œ É dengan nilai desimal 194 165 166 141 156 174 201. Hasil dekripsi keseluruhan sampai baris ke-1 ini, Æ ª..²Í 198 169 170 145 160 178 205 i = 0 Â...œ É 194 165 166 141 156 174 201 i = 1 Baris Ke-2 Rumus: M [i j] = M [i-1] j - (K * R[ i ]) Mod Penyelesain untuk baris ke-2 sebagai berikut: i = 2; j (7+1)-2 j 6 M21 = (C[2-1]1 - (4 * R[2])) Mod = ( - (4 * (2))) Mod = (194-8) Mod = 186 (huruf º dalam M22 = (C[2-1]2 - (4 * R[2])) Mod = ( - (4 * (2))) Mod = (165-8) Mod = 157 (huruf... dalam Ciphertext yang dihasilkan pada proses segitiga 2 merupakan hasil akhir dari proses enkripsi. Ciphertext yang dihasilkan ini kemudian diupdate untuk menyandikan record tabel database yang telah dipilih. Untuk lebih jelasnya dapat dilihat dari tabel berikut: Tabel 4. Hasil Proses Enkripsi Record Tabel Dengan Algoritma TCC PLAINTEXT R I V A L R Y DESIMAL 82 73 86 65 76 82 89 PLAINTEXT CIPHERTEXT Æ ª ² Í DESIMAL CIPHERTEXT 198 169 170 145 160 178 205 2. Proses Dekripsi Algoritma Triangle Chain Cipher (TCC) Untuk proses dekripsi TCC adalah kebalikan dari proses enkripsi TCC a. Matriks Enkripsi Segitiga Pertama M23 = (C[2-1]3 - (4 * R[2])) Mod = ( - (4 * (2))) Mod = (166-8) Mod = 158 (huruf ž dalam M25 = (C[2-1]5 - (4* R[2])) Mod = (œ - (4 * (2))) Mod = (156-8) Mod = 148 (huruf dalam M24 = (C[2-1]4 - (4* R[2])) Mod = ( - (4 * (2))) Mod = (141-8) Mod = 133 (huruf dalam M26 = (C[2-1]6 - (4* R[2])) Mod = ( - (4 * (2))) Mod = (174-8) Mod = 166 (huruf dalam Hasil dekripsi baris ke-2 (i = 2) (tanpa tanda ) adalah º...ž dengan nilai desimal 186 157 158 133 148 166. Hasil dekripsi keseluruhan sampai baris ke-2 ini, Æ ª..²Í 198 169 170 145 160 178 205 i = 0 Â...œ É 194 165 166 141 156 174 201 i = 1 º...ž 186 157 158 133 148 166 i = 2 Maka hasil akhir seperti pada tabel berikut Tabel 5. Hasil Akhir Enkripsi Rumus untuk baris pertama (i = 1): 124
Hasil dekripsi baris ke-2 (i = 2) (tanpa tanda ) adalah Ib] š½ dengan nilai desimal 73 98 93 124 154 189. Hasil dekripsi keseluruhan sampai baris ke-2 ini, VUniˆ É 86 85 110 105 136 166 201 i = 0 RQje Å 82 81 106 101 132 162 197 i = 1 Ib] š½ 73 98 93 124 154 189 i = 2 b. Matriks Dekripsi Segitiga Kedua Untuk baris ke-1: M1j = C [ j ] (K* (R[1])) Mod Maka penyelesain untuk baris pertama (i = 1): M11 = (C[1] - (4 * R[1])) Mod = (V - (4 * (1))) Mod = (86-4) Mod = 82 (huruf R dalam M13 = (C[3] - (4 * R[1])) Mod = ( n - (4 * (1))) Mod = (110-4) Mod = 106 (huruf j dalam M16 = (C[5] - (4 * R[1])) Mod = ( ˆ - (4 * (1))) Mod = (136 + 4) Mod = 132 (huruf dalam M17 = (C[7] - (4 * R[1])) Mod = (É - (4 * (1))) Mod = (201-4) Mod = 197 (huruf Å dalam M12 = (C[2] - (4 * R[1])) Mod = (U - (4 * (1))) Mod = (85-4) Mod = 81 (huruf Q dalam M14 = (C[4] - (4* R[1])) Mod = ( i - (4 * (1))) Mod = (105-4) Mod = 101 (huruf e dalam M16 = (C[6] - (4 * R[1])) Mod = ( - (4 * (1))) Mod = (166-4) Mod = 162 (huruf dalam Hasil dekripsi baris ke-1 (i = 1) (tanpa tanda ) adalah RQje Å dengan nilai desimal 82 81 106 101 132 162 197. Hasil dekripsi keseluruhan sampai baris ke-1 ini, VUniˆ É 86 85 110 105 136 166 201 i = 0 RQje Å 82 81 106 101 132 162 197 i = 1 Baris Ke-2 Rumus: M [ij] = C [i-1]j (K * (R[i])) Mod Penyelesain untuk baris ke-2 sebagai berikut: i = 2; j i j 2 M22 = (C[2-1]2 - (4 * R[2])) Mod = (Q - (4 * (2))) Mod = (81-8) Mod = 73 (huruf I dalam M24 = (C[2-1]4 - (4 * R[2])) Mod = ( e - (4 * (2))) Mod = (101-8) Mod = 93 (huruf ] dalam M26 = (C[2-1]6 - (4* R[2])) Mod = ( - (4 * (2))) Mod = (162-8) Mod = 154 (huruf š dalam M23 = (C[2-1]3 - (4 * R[2])) Mod = (j - (4 * (2))) Mod = (106-8) Mod = 98 (huruf b dalam M25 = (C[2-1]5 - (4* R[2])) Mod = ( - (4 * (2))) Mod = (132-8) Mod = 124 (huruf dalam M27 = (C[2-1]7 - (4* R[2])) Mod = (Å - (4 * (2))) Mod = (197-8) Mod = 189 (huruf ½ dalam Maka hasil akhir seperti pada tabel berikut: Tabel 6. Hasil Dekripsi maka dari tabel diatas hasil proses enkripsi pertama (tanpa tanda ) adalah RIVALRY dengan nilai desimal 82 73 86 65 76 82 89. Plaintext yang dihasilkan pada proses dekripsi segitiga 2 adalah plaintext yang sebenarnya. Plaintext ini kemudian untuk menggantikan record tabel database yang telah tersandikan. Untuk lebih jelasnya dapat dilihat dari tabel berikut: Tabel 7. Hasil Proses Dekripsi Record Tabel Database Dengan Algoritma TCC CIPHERTE Æ ª ² Í XT DESIMAL CIPHERTE XT PLAINTEX T DESIMAL PLAINTEX T 19 8 16 9 17 0 14 5 16 0 17 8 R I V A L R Y 20 5 82 73 86 65 76 82 89 Hasil pengujian ini menggunakan program yang telah dibangun dengan menerapkan algoritma triangle chain cipher untuk proses penyandian record tabel database, nilai kunci (key) yang digunakan sama dengan angka 5 dan database dengan nama dbrival dan nama tabel tip1207. Pada pengujian sistem ini, ada beberapa aspek yang diuji yaitu: 1. Aspek penyandian berdasarkan per record (baris) tabel Aspek penyandian berdasarkan per record (baris) awal datanya adalah karakter string dengan panjang seperti pada gambar 7. 0811199 Rivalry Kristianto Hondro 100 95 89 90 Gambar 7. Data Awal Per Record (Baris) Tabel Sebelum Disandikan 125
Berdasarkan gambar 7 record yang akan disandikan dengan nilai input kunci adalah angka 5 hasil proses penyandian seperti pada gambar 5.24 Gambar 8. Data Akhir Per Record (Baris) Tabel Setelah Disandikan Berdasarkan gambar 8 proses penyandian per baris membutuhkan waktu yang singkat dan cepat. 2. Aspek penyandian berdasarkan field (kolom) tabel Aspek penyandian berdasarkan per field (kolom) awal datanya adalah karakter string dengan panjang seperti pada gambar 9. Gambar 10. Data Akhir Per Field (Kolom) Tabel Setelah Disandikan Berdasarkan gambar 10 proses penyandian per kolom membutuhkan waktu yang lama jika dibandingkan dengan penyandian berdasrkan per record. 3. Aspek penyandian seluruh record tabel Aspek penyandian seluruh record pada tabel awal datanya adalah karakter string dengan panjang seperti pada gambar 11. Gambar 9. Data Awal Per Field (Kolom) Tabel Sebelum Disandikan Berdasarkan gambar 9 field yang akan disandikan dengan nilai input kunci adalah angka 5 hasil proses penyandian seperti pada gambar 10. Gambar 11. Data Awal Seluruh Record Tabel Sebelum Disandikan Berdasarkan gambar 11 seluruh record yang akan disandikan dengan nilai input kunci adalah angka 5 hasil proses penyandian seperti pada gambar 12. Gambar 12. Data Akhir Seluruh Record Tabel Setelah Disandikan 126
Hasil proses enkripsi record tabel database, pada proses penyandian seluruh record tabel membutuhkan waktu lama dibandingkan dengan proses penyandian perbaris dan perkolom. Maka bisa diambil kesimpulan dari hasil pengujian semakin banyak record yang akan disandikan semakin lama waktu proses penyandiannya. KESIMPULAN Setelah melakukan analisa terhadap penerapan algoritma triangle chain cipher pada penyandian record database, maka penulis menarik kesimpulan; Algoritma triangle chain melakukan proses penyandian pada setiap record dari tabel database yang terpilih sebanyak dua kali (secara ganda). Penerapan penyandian record tabel database dengan menggunakan algoritma triangle chain cipher diawali dengan penentuan nama database dan pemilihan tabel yang telah memiliki record yang akan disandikan. Masing-masing record pada tabel yang dipilij akan disandikan berdasarkan algoritma triangle chain cipher yang telah tersedia didalam aplikasi yang telah dibuat. Masing-masing record tersebut akan di update dan menggantikan record tabel yang lama dengan melakukan eksekusi perintah MySQL. Kontrol yang dapat mengakses database merupakan salah satu control yang sangat penting dalam proses penyandian record table database. menampilkan nama-nama tabel, nama-nama field dan urutan record dari database yang diakses, pengaturan kunci akan sangat pentinga dengan tujuan memberikan kebebasan kepada pengguna memilih tabel, filed, record yang akan disandikan dan kunci yang akan digunakan dalam proses penyandian. Untuk Nilai kunci di dalam penelitian ini menggunakan algoritma kunci simetri, dengan jenis nilai bilangan kunci yang di terapkan terdiri dari urutan nilai bilangan angka 1 sampai dengan 20. Untuk serangan dengan algoritma mampu menjamin Ciphertext-only attack dengan teknik Analisis frekuensi tidak lagi dapat digunakan. Cipherteks hasil enkripsi sudah tidak memiliki frekuensi yang bersesuaian dengan plainteks. Sehingga teknik analisis frekuensi tidak cocok lagi digunakan untuk menyerang algoritma ini. Menjamin Knownplainteks attack sulit untuk dilakukan. Implementasi. Edisi I. Yogyakarta: Andi. Hlm. 43-45. [4] Rosa A.S M. Shalahuddin (2011). Modul Pembelajaran Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Edisi 7. Bandung: Modula. Hlm.16-21. [5] Zebua, Taronisokhi (2013). Analisa dan Implementasi Algoritma Triangle Chain Pada Penyandian Record Database. Jurnal Pelita Informatika. ISSN:2301-9425. Vol-III. No.2 Hlm. 37-49. [6] Singh Bhalla, Jasdeep (2013). A Database Encryption Technique to Enhance Security Using Hill Cipher Algorithm. IJEAT. ISSN: 2249-8958.Vol-II. Hal. 660-664. [7] Alhanjouri, Mohammed and Al Derawi, Ayman M (2012). A New Method Of Query Over Encrypted Data in Database Using Hash Map. IJCA. ISSN:0975-8887. Vol-41.No.4. Hal. 46-51. [8] Firda Fauzan, Mohamad. Studi dan Implementasi Cipher Subtitusi Rantai Segitiga. http://www.informatika.stei.itb.ac.id/~rinaldi.munir/kriptografi/2006-2007/makalah1/makalah1-088.pdf. Diakses 12 Februari, 2014. DAFTAR PUSTAKA [1] Rinaldi Munir (2006). Kriptografi. Edisi I. Bandung: Penerbit Informatika. 1-199. [2] Rifki Sadiki (2012). "Kriptografi Untuk Keamanan Jaringan." Edisi.I. Yogyakarta: Andi. Hlm. 392 [3] Dony Ariyus (2008). Pengantar Ilmu Kriptografi Teori, Analisis, dan 127