Implementasi Tiny Encryption Algorithm

BAB III ANALISIS DAN PERANCANGAN SISTEM

1.7 Implementasi Tiny Encryption Algorithm

Tiny Encryption Algorithm TEA merupakan Algoritma yang menggunakan kunci simetris, dimana plaintext yang berjumlah 64 bit dibagi menjadi 2 blok, yaitu blok kiri dan blok kanan, setiap blok berjumlah 32 bit. Kemudian memiliki proses pembentukan kunci algoritma TEA yaitu kunci yang berjumlah 128 bit dibagi menjadi 4 blok, dimana setiap blok berjumlah 32 bit. TEA berbasiskan dengan jaringan fiestel dan memiliki 32 kali putaran 1 kali putaran memiliki 2 round. Sebagai contoh implementasi dari algoritma Tiny Encryption Algorithm pada kasus berikut ini. Plaintext : USUMEDAN Key : muhammad__alfian Plaintext dibagi menjadi 2 blok kedalam blok A dan blok B : A = USUM B = EDAN Kemudian, Key = 128 bit, dibagi menjadi 4 blok masing-masing 32 bit : Kunci[0] = muha Kunci[1] = mmad Kunci[2] = __al Kunci[3] = fian Universitas Sumatera Utara Plaintext diubah menjadi kode ASCII, kemudian diubah ke biner USUMEDAN U = 85 = 01010101 S = 83 = 01010011 U = 85 = 01010101 M = 77 = 01001101 E = 69 = 01000101 D = 68 = 01000100 A = 65 = 01000001 N = 78 = 01001110 Key diubah menjadi kode ASCII, kemudian diubah ke biner m = 109 = 01101101 u = 117 = 01110101 h = 104 = 01101000 a = 97 = 01100001 m = 109 = 01101101 m = 109 = 01101101 a = 97 = 01100001 d = 100 = 01100100 _ = 95 = 01011111 _ = 95 = 01011111 a = 97 = 01100001 l = 108 = 01101100 f = 102 = 01100110 i = 151 = 01101100 a = 97 = 01100001 n = 110 = 01101101 Universitas Sumatera Utara Biner plaintext digabungkan dan akan terbentuk seperti berikut : Ar = 01010101010100110101010101001101 Bl = 01000101010001000100000101001110 Biner Key digabungkan dan akan terbentuk seperti berikut : Kunci[0] = 01101101011101010110100001100001 Kunci[1] = 01101101011011010110000101100100 Kunci[2] = 01011111010111110110000101101100 Kunci[3] = 01100110011011000110000101101101 Plaintext mengalami pergeseran bit ke kiri sebanyak 4 bit kemudian 5 bit pergeseran ke kanan. Ar = 01010101010100110101010101001101 Akiri = 01010101001101010101010011010101 Akanan = 10101010101010011010101010100110 Akiri ditambah dengan Kunci[0] : Akiri = 01010101010100110101010101001101 Kunci[0] = 01101101011101010110100001100001 ALKunci[0] = 01111101011101110111110101101101 Akanan ditambah dengan Kunci[1]: Akanan = 10101010101010011010101010100110 Kunci[1] = 01101101011011010110000101100100 ARKunci[1] = 11101111111011011110101111100110 Plaintext awal Ar ditambah dengan bilangan delta. Secara konstan nilai delta, diubah ke nilai Hexadesimal = 9E3779B9 dan di ubah ke biner dengan membagi kedalam 4 bagian: 9E = 10011110 37 = 00110111 79 = 01111001 B9 = 10111001 Universitas Sumatera Utara Ar = 01010101010100110101010101001101 Delta = 10011110001101110111100110111001 ArDelta = 10111111011101110111110111111101 Kemudian di XOR kan dengan plaintext ALKunci[0] : ArDelta = 10111111011101110111110111111101 ALKunci[0] = 01111101011101110111110101101101 11000010000000000000000010010000 Kemudian di XOR kan dengan plaintext ARKunci[1] : = 11000010000000000000000010010000 ARKunci[1] = 11101111111011011110101111100110 00101101111011011110101101110110 Untuk Plaintext Bl mengalami pergeseran bit ke kiri sebanyak 4 bit kemudian 5 bit pergeseran ke kanan. Bl = 01000101010001000100000101001110 Bkiri = 01010100010001000001010011100100 Bkanan = 00100010101000100010000010100111 Bkiri ditambah dengan Kunci[2] : Bkiri = 01010100010001000001010011100100 Kunci[2] = 01011111010111110110000101101100 BLKunci[2] = 01011111010111110111010111101100 Bkanan ditambah dengan Kunci[3] : Bkanan = 00100010101000100010000010100111 Kunci[3] = 01100110011011000110000101101101 BRKunci[3] = 01100110111011100110000111101111 Universitas Sumatera Utara Plaintext awal Bl ditambah dengan bilangan delta. Bl = 01000101010001000100000101001110 Delta = 10011110001101110111100110111001 11011111011101110111100111111111 Kemudian di XOR kan dengan BLKunci[2] 11011111011101110111100111111111 BLKunci[2] = 01011111010111110111010111101100 10000000001010000000110000010011 Kemudian di XOR kan dengan BRKunci[3] 10000000001010000000110000010011 BRKunci[3] = 01100110111011100110000111101111 11100110110001100110110111111100 Hasil akhir = 00101101111011011110101101110110 01000101010001000100000101001110 01101101111011011110101101111110 B 1 l 1 Hasil akhir = 11100110110001100110110111111100 01010101010100110101010101001101 11110111110101110111110111111101 A 1 R 1 Telah didapat proses hasil enkripsi dari Tiny Encryption Algorithm dengan 2 round1 cycle dengan hasil A 1 1 1 digabung denga B 1 R 1 , namun proses enkripsi akan berakhir sampai 32 round 16 cycle, dimana setiap penyelesainnya setiap 2 round digunakan hasil cipher sebelumnya untuk melanjukan 2 round berikutnya. Hasil ciphertext dari studi kasus tersebut adalah ÷oÙåÔ´I฀ ฀ÜûÖ©Xþ’฀Aè5¾­øŒc”0¯Û . Konsep pendekripsian dari Tiny Encryption Algorithm memiliki proses yang sama dengan enkripsi, perbedaannya pada penjumlahan Kunci yang terjadi setelah pergeseran bit. Pada saat dekripsi Ar dilakukan pergeseran bit ke kiri Universitas Sumatera Utara sebanyak 4 bit maka ditambah Kunci[1]. Kemudian setelah pergeseran bit ke kanan sebanyak 5 bit ditambah Kunci [0]. Untuk dekripsi Al dilakukan pergeseran bit ke kiri sebanyak 4 bit maka ditambah Kunci[3]. Kemudian setelah pergeseran bit ke kanan sebanyak 5 bit ditambah Kunci [2].

1.8 Implementasi End Of File