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