Tiny Encryption Algorithm Kriptografi

rahasia yang hanya boleh diketahui oleh dirinya sendiri dan yang lain disebut kunci publik yang disebarkan ke orang lain. Metode enkripsi ini harus dijaga ketat supaya tidak ada pihak luar mengetahuinya. Beberapa model enkripsi dengan kunci publik, diantaranya adalah : Knapsack, Rivert Shamir Adelman, Diffie- Helman, Tree Past Protocol, Elgamal[3].

2.1.2 Tiny Encryption Algorithm

Tiny Encription Algorithm TEA merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Algoritma ini merupakan algoritma mengenkripsi suatu blok plaintext dengan jumlah bit tertentu dan menghasilkan blok ciphertext yang dirancang untuk penggunaan memory yang seminimal mungkin dengan kecepatan proses yang maksimal. Sistem penyandian TEA menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penambahan dan pengurangan sebagai operator pembalik selain XOR. Proses feistel network adalah membagi plaintext ke dalam beberapa blok dan melakukan penukaran letak blok dalam setiap round, yang akan memberikan efek konsep konfusi dan difusi. Konfusi adalah mengaburkan hubungan plaintext dan ciphertext yang menimbulkan kesulitan dalam usaha untuk mencari keteraturan plaintext dan ciphertext, sedangkan difusi adalah menyebarkan redudansi plaintext dengan menyebarkan masukan ke seluruh ciphertext. Hal ini dimaksudkan untuk menciptakan Pergeseran dua arah ke kiri dan ke kanan menyebabkan semua bit kunci dan data bercampur secara berulang ulang[5]. Universitas Sumatera Utara Gambar 2.2 Satu Putaran Enkripsi Dalam Jaringan Feistel[9] Bilangan delta berasal dari golden number, digunakan delta= √5-12 31 Suatu bilangan delta ganda yang berbeda digunakan dalam setiap roundnya sehingga tidak ada bit dari perkalian yang tidak berubah secara teratur. Berbeda dengan sruktur feistel yang semula hanya mengoperasikan satu sisi yaitu sisi sebelah kanan dengan sebuah fungsi F, pada algoritma TEA kedua sisi dioperasikan dengan sebuah fungsi yang sama. Proses diawali dengan input-bit plaintext sebanyak 64-bit[5]. Kemudian 64-bit plaintext tersebut dibagi menjadi dua bagian, yaitu sisi kiri L0 sebanyak 32-bit dan sisi kanan R0 sebanyak 32- bit. Setiap bagian plaintext akan dioperasikan sendiri-sendiri. R0 z akan digeser kekiri sebanyak empat kali dan ditambahkan dengan kunci k0. Sementara itu z ditambah dengan sum delta yang merupakan konstanta. Hasil penambahan ini di-XOR-kan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara z yang digeser kekanan sebanyak lima kali dengan kunci k1. Hasil tersebut kemudian ditambahkan dengan L0 y yang akan menjadi R1. Sisi sebelah kiri akan mengalami proses yang sama dengan sisi sebelah kanan. L0 y akan digeser kekiri sebanyak empat kali lalu ditambahkan dengan kunci k2. Sementara itu, Y ditambah dengan sum delta[7]. Hasil penambahan ini di-XOR- Universitas Sumatera Utara kan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara Y yang digeser ke kanan sebanyak lima kali dengan kunci k3. Hasil tersebut kemudian ditambahkan dengan R0 Z yang akan menjadi L1. Struktur dari penyandian dengan algoritma untuk satu cycle dua round. Berikut adalah langkah langkah penyandian dengan algoritma TEA dalam satu cycle dua round: 1. Pergeseran shift Blok plaintext pada kedua sisi yang masing masing sebanyak 32-bit akan digeser kekiri sebanyak empat 4 kali dan digeser ke kanan sebanyak lima 5 kali. 2. Penambahan Setelah digeser kekiri dan kekanan, maka Y dan Z yang telah digeser akan ditambahkan dengan kunci k0-k3. Sedangkan Y dan Z awal akan ditambahkan dengan sum delta. 3. Peng-XOR-an Setelah dioperasikan dengan penambahan pada masing-masing register maka akan dilakukan peng-XOR-an dengan rumus untuk satu round. rumus untuk satu round : y = y + z4+k0z + sumz5+k1 ............................................. 1 z = z + y4+k2y + sumy5+k3 ....................................... 2, dalam hal ini sum = sum + delta. Rumus 1 dan 2 merupakan hasil penyandian dalam satu cycle satu blok plaintext 64-bit menjadi 64-bit teks sandi adalah dengan menggabungkan y dan z. Untuk penyandian pada cycle berikutnya y dan z ditukar posisinya, sehingga y1 Universitas Sumatera Utara menjadi z1 dan z1 menjadi y1 lalu dilanjutkan proses seperti langkah-langkah diatas sampai dengan 16 cycle 32 round[7]. 4. Key Schedule Pada algoritma TEA, key schedule-nya sangat sederhana. Yaitu kunci k0 dan k1 konstan digunakan untuk round ganjil sedangkan kunci k2 dan k3 konstan digunakan untuk round genap. 5. Dekripsi Dalam proses dekripsi sama halnya seperti pada proses penyandian yang berbasis feiste cipher lainnya. Yaitu pada prinsipnya adalah sama pada saat proses enkripsi. Namun hal yang berbeda adalah penggunaan teks sandi sebagai input dan kunci yang digunakan urutannya dibalik. Pada proses dekripsi semua round ganjil menggunakan k1 terlebih dahulu kemudian k0, demikian juga dengan semua round genap digunakan k3 terlebih dahulu kemudian k2 [7]. Hasil Enkripsi sampel dalam heksadesimal Tabel 2.1 Tabel enkripsi TEA [7] Plaintext Key Ciphertext 000000 000000 00000000 00000000 00000000 00000000 41sa3a0a 94baa940 000000 000000 00000000 00000000 00000000 00000000 414091a7 a27f9c32 000000 000000 00000000 00000000 00000000 00000001 0c6d2a1d 930c3 fab ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 319bbefb 016abdb2 efffffff ffffffff ffffffff ffffffff ffffffff ffffffff dd2617de feS24008 Berdasarkan tabel 2.1 terlihat bahwa TEA mengimplementasikan prinsip diffusion milik Shanon dengan baik karena perbedaan 1 bit pada plaintext mengakibatkan perubahan besar pada ciphertext. Universitas Sumatera Utara Rumus proses dekripsi : L0 = L0 + f R0 , k1, k0, sum dan R0 = R0 + f L0, k3, k2, sum ..... 3 Rumus 3 merupakan proses dekripsi semua round ganjil menggunakan k1 terlebih dahulu kemudian k0, demikian juga dengan semua round genap digunakan k3 terlebih dahulu kemudian k2 [7] . 2.1.3 Citra Digital Citra adalah suatu representasi gambaran, kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video, sedangkan digital adalah Digital merupakan penggambaran dari suatu keadaan bilangan yang terdiri dari angka 0 dan 1 atau off dan on bilangan biner. Sehingga Definisi citra digital adalah gambar dua dimensi yang dapat ditampilkan pada layar monitor komputer sebagai himpunan berhingga diskrit nilai digital yang disebut pixel picture elements. Didalam komputer, citra digital disimpan sebagai suatu file dengan format tertentu. Format citra tersebut menunjukkan sebuah citra digital disimpan. Contoh format citra digital adalah .bmp, .gif, .img, .tif dan sebagainya. Berikut merupakan tabel 2.2 format file citra untuk melihat fungsi dari format citra secara detail[4]. Tabel 2.2 Format File Citra Nama Format Ekstensi Kegunaan Microsfot Windows Bitmap Format BMP Format umum untuk menyimpan citra bitmap yang dikembangkan microsoft Compuserve Graphics interchange Format GIF Format umum citra yang dirancang untuk keperluan transmisi melalui modern Aldus Tagged Image File Format TIF Format kompleks dan multiguna yang dikembangkan oleh Aldus bersama microsoft Universitas Sumatera Utara GEM Image Format IMG Format bitmap yang dikembangkan untuk riset digital lingkungan GEM

2.1.4 Bitmap