DEFINISI KRIPTOGRAFI
TUJUAN KRIPTOGRAFI
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].
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
Post a Comment