TINY ENCRYPTION ALGORITMA

DEFINISI KRIPTOGRAFI
 


Menurut Munir (2006), kriptografi (cryptography) berasal dari kata kryptos  yang artinya tersembunyi dan grafia yang artinya sesuatu yang tertulis (bahasa Yunani) sehingga kriptografi dapat juga disebut sebagai sesuatu yang tertulis secara rahasia (tersembunyi), Schneier(1996). Menurut Menezes et al (1996), kriptografi adalah ilmu yang mempelajari teknik teknik matematika yang berhubungan dengan aspek-aspek pada keamanan informasi misalnya kerahasiaan, integritas data, otentikasi pengirim / penerima data, dan otentikasi data. Dengan pengembangan bidang kriptografi, pembagian antara apa yang termasuk kriptografi dan apa yang tidak telah menjadi kabur. Dewasa ini, kriptografi dapat dianggap sebagai perpaduan antara studi teknik dan aplikasi yang tergantung kepada keberadaan masalah masalah sulit.
Terdapat dua proses penting di dalam kriptografi yang berperan dalam merahasiakan suatu informasi yakni enkripsi (encryption) dan dekripsi (decryption). Enkripsi adalah  transformasi data (plaintext) ke dalam bentuk yang hampir tidak dapat dibaca (ciphertext) tanpa pengetahuan yang cukup. Tujuan dari enkripsi adalah untuk menjamin kerahasiaan dengan menjaga informasi tersembunyi dari siapapun yang bukan pemilik atau yang berkepentingan dengan informasi tersebut, bahkan bagi orang yang memiliki akses terhadap data yang telah dienkripsi. Sedangkan dekripsi adalah kebalikan dari enkripsi, yakni transformasi dari data yang telah dienkripsi (ciphertext) kembali ke bentuk semula (plaintext). Proses enkripsi dan dekripsi pada umumnya membutuhkan penggunaan sejumlah informasi yang rahasia, yang sering disebut kunci (key).


TUJUAN KRIPTOGRAFI
 


Menurut Stalling (1998), ada beberapa tuntutan yang terkait dengan isu keamanan data yaitu :

  • Confidentiality

Menjamin bahwa data-data tersebut hanya bisa diakses oleh pihak-pihak tertentu saja.
Authentication
Baik pada saat mengirim atau menerima informasi, kedua belah pihak perlu mengetahui bahwa pengirim dari pesan tersebut adalah orang yang sebenarnya seperti yang diklaim.

  • Integrity

Tuntutan ini berhubungan dengan jaminan setiap pesan yang dikirim pasti sampai pada penerimanya tanpa ada bagian dari pesan tersebut yang diganti, diduplikasi, dirusak, diubah urutannya, dan ditambahkan.

  • Nonrepudiation

Nonrepudiation mencegah pengirim maupun penerima mengingkari bahwa mereka telah mengirimkan atau menerima suatu pesan/informasi. Jika sebuah pesan dikirim, penerima dapat membuktikan bahwa pesan tersebut memang dikirim oleh pengirim yang tertera. Sebaliknya, jika sebuah pesan diterima, pengirim dapat membuktikan bahwa pesannya telah diterima oleh pihak yang ditujunya.

  • Access Control

Membatasi sumber-sumber data hanya kepada orang-orang tertentu.

  • Availability

Jika diperlukan setiap saat semua informasi pada sistem komputer harus tersedia bagi semua pihak yang berhak atas informasi tersebut.



TINY ENCRYPTION ALGORITMA (TEA)



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 penyandian block cipher yang dirancang untuk penggunaan memory yang seminimal mungkin dengan kecepatan proses yang maksimal. System penyandian TEA menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penambahan dan pengurangan sebagai operator pembalik selain XOR. Hal ini dimaksudkan untuk menciptakan sifat non-linearitas. Pergeseran dua arah (ke kiri dan ke kanan) menyebabkan semua bit kunci dan data bercampur secara berulang ulang. Algoritma TEA merupakan algoritma kriptography simeteris atau disebut juga algoritma kriptography konvensional yaitu algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi.
Kelebihan:
1.    Dalam kriptografi, TEA terkenal karena kesederhanaan dalam implementasinya, yang biasanya hanya beberapa baris kode.
2.    TEA dan turunannya diklaim mempunyai tingkat keamanan yang tinggi jika dibandingkan dengan algoritma kriptografi sejenis.
3.    Keunggulan utama dari TEA adalah keringanan prosesnya, operasi-operasi yang digunakan hanya berupa operasi bit biasa, tanpa substitusi, permutasi, ataupun operasi matrix.
Kelemahan:
TEA memiliki beberapa kelemahan. Terutama, ia lemah dalam Equivalent Keys diamana setiap keys setara dengan tiga lainnya, yang berarti ukuran keys efektif hanya 126 bit . Akibatnya, TEA sangat buruk sebagai fungsi hash kriptografi. Kelemahan ini menyebabkan sebuah metode hacking konsol game Microsoft Xbox, dimana cipher digunakan sebagai fungsi hash. TEA juga rentan terhadap serangan kunci terkait yang membutuhkan 2 plainteks terpilih di bawah pasangan kunci tersebut, dengan 2 kerumitan waktu. Karena kelemahan ini, XTEA dirancang yang kemudian muncul lagi XXTEA yang merupakan generasi ketiga TEA.





CARA KERJA ALGORITMA TEA





1. Pergeseran (shift)
Blok teks terang 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
Langkah selanjutnya setelah digeser kekiri dan kekanan, maka Y dan Z yang telah digeser akan ditambahkan dengan kunci k[0]-k[3]. Sedangkan Y dan Z awal akan ditambahkan dengan sum (delta).
3. Peng-XOR-an
Proses selanjutnya setelah dioperasikan dengan penambahan pada masing-masing register maka akan dilakukan peng-XOR-an dengan rumus untuk satu round adalah sebagai berikut:
y = y + (((z<<4)+k[0])^z+sum^((z>>5)+k[1]))
z = z + (((y<<4)+k[2]^y+sum^((y>>5)+k[3]))
Hasil penyandian dalam satu cycle satu blok teks terang 64-bit menjadi 64-bit teks sandi adalah dengan menggabungkan Y dan Z. Untuk penyandian pada cycle berikutnya Y dan Z ditukar posisinya, sehingga Y 1 menjadi Z1 dan Z1 menjadi Y1 lalu dilanjutkan proses seperti langkah-langkah diatas sampai dengan 16 cycle (32 round).
4. Key Schedule
Algoritma TEA menggunakan key schedule -nya sangat sederhana. Yaitu kunci k[0] dan k[1] konstan digunakan untuk round ganjil sedangkan kunci k[2] dan k[3] konstan digunakan untuk round genap.
5. Dekripsi dan Enkripsi
Proses dekripsi sama halnya seperti pada proses penyandian yang berbasis feistel cipher lainnya. Yaitu pada prinsipnya adalah sama pada saat proses enkripsi. Hal yang berbeda adalah penggunaan teks sandi sebagai input dan kunci yang digunakan urutannya dibalik. Proses dekripsi semua round ganjil menggunakan k[1] terlebih dahulu kemudian k[0], demikian juga dengan semua round genap digunakan k[3] terlebih dahulu kemudian k[2]. Rumus untuk enkripsi dekripsi seperti dibawah ini:
Proses enkripsi digunakan rumus :
L0 = L0 + f (R0 , k[0], k[1], sum)
R0 = R0 + f (L0, k[2], k[3], sum)
Jadi L0 merupakan hasil penjumlahan dari L 0 ditambahkan dengan f (R0 , k[0], k[1], sum ).
Proses enkripsi untuk satu round digunakan rumus:
y = y + (((z<<4)+k[0])^z+sum^((z>>5)+k[1]))
z = z + (((y<<4)+k[2]^y+sum^((y>>5)+k[3]))
Proses dekripsi digunakan rumus :
L0 = L0 + f ( R0 , k[1], k[0], sum )
R0 = R0 + f ( L0, k[3], k[2], sum )
Jadi L0 merupakan hasil penjumlahan dari L0 ditambahkan dengan f (R0 , k[0], k[1], sum ).
Proses dekripsi untuk satu round digunakan rumus:
y = y + (((z<<4)+k[1])^z+sum^((z>>5)+k[0]))
z = z + (((y<<4)+k[3]^y+sum^((y>>5)+k[2]))
Rumus Y diatas menjelaskan bahwa Y merupakan hasil dari Y yang ditambahkan dengan Z yang yang digeser kekiri sebanyak empat kali dengan penambahan kunci k[1]. Kemudian hasil penjumlahan tadi di XOR kan dengan Z yang dijumlahkan dengan sum(delta). Hasil dari peng-XOR-an dari kedua penjumlahan tadi di XORkan lagi dengan Z yang digeser kekanan sebanyak lima kali dengan penambahan kunci k[0]. Demikian juga dengan rumus Z sama halnya dengan rumus Y, hanya kunci yang digunakan menggunakan kunci k[3] dan k[2].

 








Referensi :
http://edipermadi.files.wordpress.com/2008/06/tea-spec.pdf




Comments