Kriptografi Dan Stenografi Menggunakan Algoritma Vigenere Dan Tea.

(1)

KRIPTOGRAFI DAN STENOGRAFI MENGGUNAKAN

ALGORITMA VIGENERE DAN TEA

(TINY ENCRYPTION ALGORITHM)

Akik Hidayat

Jurusan Matematika, Universitas Padjadjaran, Bandung Jatinangor, Km 21 Bandung – Sumedang, 45363

ABSTRAK

Keamanan dan kerahasiaan sangat dibutuhkan dalam dunia komunikasi khususnya dalam dunia komunikasi digital. Diperlukan metode khusus untuk menjamin keamanan informasi, supaya informasi hanya dapat dimengerti oleh pihak yang dituju. Teknik yang umum digunakan adalah dengan mengacak data atau Kriptografi. Tetapi informasi yang diacak sering menimbulkan kecurigaan, maka dibutuhkan teknik lain yaitu dengan menyembunyian data atau Steganografi. Teknik Steganografi dapat diterapkan sebagai kelanjutan dari Kriptografi, dan kombinasi dari keduanya akan menghasilkan tingkat keamanan data yang sangat tinggi. Akan diperlihatkan menggabungkan teknik Kriptografi dan Steganografi untuk menjaga keamanan data teks sekaligus menyisipkan data teks tersebut dalam gambar digital tanpa mengubah gambar tersebut secara visual,sehingga menghasilkan sebuah metode Steganografi yang optimal untuk menyembunyikan suatu pesan teks di dalam sebuah gambar digital.

ABSTRACT

For many reasons, safety and secrecy is vitally needed in digital communication. There have to be some special method to ensure the safety of message, so only the correct recipient able to know the content of message. The general method is encrypt the message (Cryptography), but encrypted message is very suspicious and will attract everyone who see it. The other method is to hide the message (Steganography). Steganography can be applied with the Cryptography, and the combination of both methods will increase the safety of information. Cryptography scramble the message but it still exist, and Steganography cover and hide the encrypted message to other media so the original message cannot be seen. Combine the Cryptography and Steganography methods for data communication security, to hide the text message in a digital image without any change in image visually, targets is to know the Steganography and to make an optimal Steganography methods that can able to hide a text message into a digital image.


(2)

I. PENDAHULUAN.

Untuk berbagai alasan, keamanan dan kerahasiaan sangat kita butuhkan dalam komunikasi data. Ada berbagai cara untuk menjamin keamanan dan kerahasiaan komunikasi data kita di antaranya adalah dengan seni pengacakan data / Kriptografi dan seni penyembunyian data / Steganografi. Pada makalah ini Akan diperlihatkan teknik enkripsi serta dekripsi pada algoritma Vigenere dan TEA serta teknik Encoding data teks atau file text (TXT) ke dalam file gambar Bitmap (BMP) dan Decoding data teks tersebut dari dalam gambar. Yang bertujuan untuk memberikan salah satu solusi pada keamanan komunikasi data berupa teks atau file teks (TXT) karena telah dienkripsi dan disembunyikan ke dalam sebuah gambar Bitmap (BMP) dan menerapkan Kriptografi dan Steganografi serta gabungan keduanya menjadi suatu teknik dalam masalah pengamanan komunikasi data.

II. TEORI PENDUKUNG

II.1. Kriptografi

Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan.

Kriptografi Klasik (Mode teks)

Cipher Subsitusi (Subsitution Cipher)

Cipher Transposisi (Transposition Cipher) Kriptografi Modern (Mode bit)

Cipher Kunci Simetri : Cipher Aliran, Cipher Blok

Cipher Kunci Publik (Cipher Public Key);

Cipher Fungsi Hash

II.2. Algoritma Vigenere

Algoritma Vigenere dibuat oleh Blaise de Vigènere pada abad ke 16. Rumus Enkripsi :

Ci = ( Pi + Ki ) Mod(26) Rumus Dekripsi :

Pi = ( Ci - Ki ) Mod(26)

Dimana: Ci = nilai desimal karakter cipherteks ke-i Pi = nilai desimal karakter plainteks ke-i Ki = nilai desimal karakter kunci ke-i

II.3. TEA (

Tiny Encryption Algorithm

)

TEA (Tiny Encryption Algorithm) dibuat oleh David Wheeler & Roger Needham dari Cambridge University Inggris pada Tahun 1994. TEA merupakan algortima enkripsi blok, dengan blok-blok sebagai berikut:

 64-bit input L0 dan R0 @32-bit.

 128-bit kunci k[0], k[1], k[2], k[3] @32-bit.

Dan menggunakan Delta (golden number) = (√5 -1)231= $9e3779b9 H dengan Round sebanyak 32 kali. Rumus Enkripsi:

SUM = n * Delta

Ln = L(n-1)+((R(n-1) Shl 4)+K[0]) XOR (R(n-1)+SUM) XOR ((R(n-1) Shr 5)+K[1]))

Rn = R(n-1) + ((Ln Shl 4)+K[2]) XOR (Ln+SUM) XOR ((Ln Shr 5)+K[3])

Rumus Dekripsi:

Rn = R(n-1)– ((L(n-1) Shl 4)+k[2]) XOR (L(n-1)+SUM) XOR ((L(n-1) Shr 5)+k[3])

Ln = L(n-1)– ((Rn Shl 4)+k[0]) XOR (Rn+SUM) XOR ((Rn Shr 5)+k[1]) )


(3)

Steganografi adalah teknik/seni menyembunyikan informasi di balik informasi lain, sehingga informasi sesungguhnya tidak kelihatan. Media yang digunakan dalam Steganografi:

 Gambar (Image Steganography)

 Suara (Audio Steganography)

 Text (Text Steganography/Text Mimicking)

II.5. File Gambar

1. Bitmap ( bmp, rle ) tidak menggunakan kompresi (1-32bit) 2. GIF ( gif ) (1-8bit /256 warna saja), transparasi dan animasi

3. JPEG (jpg, jfif , jpg2000) membuang informasi2 yang tidak terlalu penting 4. Portable Network Graphic (png) Penganti GIF, PNG berlisensi gratis 5. TIFF Format komputer Apple, format standar untuk Mancintosh.

6. RAW Mirip dengan Bitmap. Format ini menyimpan semua informasi yang ada menggunakan teknik lossles compression untuk mengurangi ukuran file.

7. TGA (True Vision Targa) Biasanya untuk gambar2 pada game.

III. ANALISIS DAN PERANCANGAN

III.1. Diagram Alur Proses Enkripsi dan

Encoding :

DFD level 0 Program Aplikasi Steganografi :

DFD level 1 Proses Enkripsi dan Encoding (Proses 1.0) :

Pengirim Pesan

Penerima Pesan

Program Aplikasi Steganografi 1.Teks Pesan

2.Teks Kunci 3.Gambar

Stego Image 1.Teks Pesan 2.Teks Kunci 3.Gambar Stego

Image

Tulis Kunci

Tulis kunci Stego image

Teks Output gambar output

Teks pesan gambar Gambar

Pesan

10 Proses Enkripsi dan

Encoding

20 Proses Decoding dan Dekripsi

Stego Image

Penerima Pesan

Pesan Rahasia Pengirim

Pesan


(4)

Tulis kunci Pilih FIle teks

Plain Teks

File teks

Cipherteks

Pilih file gambar

file gambar (BMP)

File gambar

Gambar Stego (BMP) Pengirim Pesan Pesan 12 Proses Enkripsi 14 Encode teks ke file gambar 11 Buka Teks dari File Teks 13 Buka gambar dari file

Gambar Stego Image

Proses Encode Steganografi (Proses 1.0)

DFD level 2 Proses Enkripsi (Proses 1.2) :

Ciphertext Chiperteks Vigenere Ciphertext teks kunci teks kunci Plainteks 121 Proses Enkripsi dengan Algoritma Vigenere Plain Text Kunci Cipher Text Vigenere 122 Proses Enkripsi dengan Algoritma

TEA Cipher Text Vigenere & TEA

Proses Enkripsi (Proses 1.2)

DFD level 2 Proses Encode (Proses 1.4) :

Bit gambar Bit teks gambar teks gambar (BMP) 143 Proses Encoding (Sisipkan bit teks ke

dalam bit gambar) Cipher Text

Vigenere & TEA

Proses Encoding (Proses 1.4)

Gambar (BMP) Stego Image 141 Ubah jadi bit teks 142 Ubah jadi bit gambar

III.2. Algoritma Vigènere Algoritma Enkripsi Vigènere:

a GetTextLen (plainteks) //Hitung jumlah array dari plaintext b GetTextLen(kunci) // Hitung jumlah array dari kunci x 0 // isi variabel x dengan nilai 0 While x <= a

begin

for j 1 to b do begin


(5)

c c + 97 // K ode ASCII diubah mjd huruf Ciphertext Ciphertext+c // Tulis hasil ke dalam Ciphertext

inc ( x ) // nilai x ditambah 1 end

end

Algoritma Dekripsi Vigènere:

a GetTextLen (Ciphertext) //Hitung jumlah array dari Ciphertext b GetTextLen (kunci) // Hitung jumlah array dari kunci x 0 // isi variabel x dengan nilai 0 While x <= a

begin

for j 1 to b do begin

c Ord (Ciphertext [x]) //Mengubah char menjadi kode ASCII

c c – 97 //Kode ASCII diubah (a menjadi 0) k ord ( kunci[j] ) // key menjadi ASCII

k k – 97 //Kode ASCII diubah (a menjadi 0) //operasi pengurangan Ciphertext dengan key-nya

p ( c - k ) mod 26 // operasi Vigènere

p p + 97 // K ode ASCII diubah mjd huruf plaintext plaintext + p // Tulis hasil ke dalam plaintext

inc ( x ) end end

III.3. Algoritma TEA (Tiny Encryption Algorithm)

TEA memproses 64-bit input dan menghasilkan 64-bit output. 64-bit input disimpan ke dalam L0 dan R0

@32-bit. Sedangkan 128-bit kunci disimpan ke dalam k[0], k[1], k[2], dan k[3] @32-bit. Output-nya disimpan dalam L32 dan R32.

Algoritma Enkripsi TEA (Tiny Encryption Algorithm)

procedure TeaEncrypt(var data: TLong2; const key: TTeaKey); var y,z,sum: Longword;

a:byte; begin

y:=data[0]; z:=data[1]; sum:=0; for a:=0 to 31 do

begin

inc(sum,Delta);

inc(y,((z shl 4)+key[0]) xor (z+sum) xor ((z shr 5)+key[1])); inc(z,((y shl 4)+key[2]) xor (y+sum) xor ((y shr 5)+key[3])); end;

data[0]:=y; data[1]:=z end;

Algoritma Dekripsi TEA (Tiny Encryption Algorithm)

procedure TeaDecrypt(var data: TLong2; const key: TTeaKey); var y,z,sum: Longword;

a:byte; begin

y:=data[0]; z:=data[1]; sum:=delta shl 5; for a:=0 to 31 do

begin

dec(z,((y shl 4)+key[2]) xor (y+sum) xor ((y shr 5)+key[3])); dec(y,((z shl 4)+key[0]) xor (z+sum) xor ((z shr 5)+key[1])); dec(sum,Delta);

end;

data[0]:=y; data[1]:=z end;


(6)

IV. IMPLEMENTASI DAN PEMBAHASAN

IV.1. Contoh Penghitungan Enkripsi dan Dekripsi Vigènere dan TEA

Berikut contoh penghitungan enkripsi dan dekripsi pada program aplikasi. Misalkan kita ingin mengirim pesan rahasia dengan kunci sebagai berikut:

Plainteks : “ s a y a ” Kunci : “ a b c “ I.A. Enkripsi Vigènere:

Plainteks : saya Kunci : abc

Kode ASCII Plainteks : 18 – 0 – 24 - 0 Kode ASCII Kunci : 0 - 1 - 2 - 0 Kode ASCII Plainteks+Kunci (Pi+Ki mod(26)) : 18 - 1 - 0 - 0

Hasil Enkripsi VIGÈNERE (Dalam huruf besar) : “SBAA” I.B. Enkripsi TEA:

Plainteks : SBAA

L0 : SBAA (83-66-65-65)d (01010011 01000010 01000011 01000011)b

R0 : - - - - (0) d (00000000 00000000 00000000 00000000)b

Kunci : abc

Key[0] : abc- (97-98-99-0)d (01100001 01100010 01100011 00000000)b

Key[1] : - - - - (0)d (00000000 00000000 00000000 00000000)b

Key[2] : - - - - (0)d (00000000 00000000 00000000 00000000)b

Key[3] : - - - - (0)d (00000000 00000000 00000000 00000000)b Round 1 :

SUM = 1 X (2654435770)

L1 = L0 + ( (R0 Shl 4) + K[0] ) XOR ( R0 + SUM ) XOR ( (R0 Shr 5) + K[1] )

L1 = 01010011 01000010 01000011 01000011 + ((00000000 00000000 00000000 00000000 Shl 4) + 01100001

01100010 01100011 00000000) XOR (00000000 00000000 00000000 00000000 + SUM) XOR ((00000000 00000000 00000000 00000000 Shr 5) + 00000000 00000000 00000000 00000000)

L1 = 10110100 10100100 10100100 01000001 (Biner)

L1 = 180 164 164 65 (Decimal)

L1 = ´ ¤ ¤ A (ASCII)

R1 = R0 + ( (L1 Shl 4) + K[2] ) XOR ( L1 + SUM ) XOR ( (L1 Shr 5) + K[3] )

R1 = 00000000 00000000 00000000 00000000 + ( (10110100 10100100 10100100 01000001 Shl 4) + 00000000

00000000 00000000 00000000) XOR (10110100 10100100 10100100 01000001 + SUM) XOR ( (10110100 10100100 10100100 01000001 Shr 5) + 00000000 00000000 00000000 00000000 )

R1 = 01110010 01001011 11011011 11110111 (Biner)

R1 = 114 75 219 247 (Decimal)

R1 = r K Û ÷ (ASCII) Round 2 :

SUM = 2 X (2654435770)

L2 = L1 + ( (R1 Shl 4) + K[0] ) XOR ( R1 + SUM ) XOR ( (R1 Shr 5) + K[1] )

L2 = 10110100 10100100 10100100 01000001 + ( (01110010 01001011 11011011 11110111 Shl 4) + 01100001

01100010 01100011 00000000) XOR ( 01110010 01001011 11011011 11110111 + SUM) XOR ( (01110010 01001011 11011011 11110111 Shr 5) + 00000000 00000000 00000000 00000000 )

L2 = 11111010 01000100 10011011 00100101 (Biner)

L2 = 250 68 155 37 (Decimal)

L1 = ú D › % (ASCII)


(7)

R2 = • ˜ i j (ASCII)

Penghitungan sampai round 32, akan diperoleh L31 dan R31ciphertext sebagai berikut: Ciphertext: Š ð ß Æ " z š ³ (138 - 240 - 223 - 198 - 34 - 122 - 154 - 179) II.A. Dekripsi TEA :

Ciphertext : ŠðßÆ"zš³

L0 : ŠðßÆ (138-240-223-198)d (10001010 11110000 11011111 11000110)b R0 : "zš³ (34-122-154-179)d (00100010 01111010 10011010 10110011)b

Kunci : abc

Key[0] : abc- (97-98-99-0) d (01100001 01100010 01100011 00000000)b

Key[1] : - - - - (0) d (00000000 00000000 00000000 00000000)b

Key[2] : - - - - (0) d (00000000 00000000 00000000 00000000)b

Key[3] : - - - - (0) d (00000000 00000000 00000000 00000000)b Round 1 :

SUM = 32 X (2654435770)

R1 = R0– ( (L0 Shl 4) + k[2]) XOR (L0+SUM) XOR ((L0 Shr 5) + k[3]) )

R1 = 00100010 01111010 10011010 10110011 + ( (10001010 11110000 11011111 11000110 Shl 4) + 00000000

00000000 00000000 00000000) XOR (10001010 11110000 11011111 11000110 + SUM ) XOR ( (10001010 11110000 11011111 11000110 Shr 5) + 00000000 00000000 00000000 00000000 )

R1 = 01010100 00100010 10011111 01000111 (Biner)

R1 = 84 34 159 71 (Decimal)

R1 = T » Ÿ G (ASCII)

L1 = L0– ( (R1 Shl 4) + k[0]) XOR (R1+SUM) XOR ((R1 Shr 5) + k[1]) )

L1 = 10001010 11110000 11011111 11000110 + ( (01010100 00100010 10011111 01000111 Shl 4) + 01100001

01100010 01100011 00000000 ) XOR (01010100 00100010 10011111 01000111 + SUM) XOR ( (01010100 00100010 10011111 01000111 Shr 5) + 00000000 00000000 00000000 00000000 )

L1 = 10111101 10100001 11110000 11011011 (Biner)

L1 = 189 161 240 219 (Decimal)

L1 = ½ ¡ ð Û (ASCII) Round 2 :

SUM = 31 X (2654435770)

R2 = R1– ( (L1 Shl 4) + k[2]) XOR (L1+SUM) XOR ((L1 Shr 5) + k[3]) )

R2 = 01010100 00100010 10011111 01000111 + ( (10111101 10100001 11110000 11011011 Shl 4) + 00000000

00000000 00000000 00000000 ) XOR (10111101 10100001 11110000 11011011 + SUM ) XOR ( (10111101 10100001 11110000 11011011 Shr 5) + 00000000 00000000 00000000 00000000 )

R2 = 10011101 11111111 10000010 10011010 (Biner)

R2 = 157 255 130 154 (Decimal)

R2 = • ÿ ‚ š (ASCII)

L2 = L1– ( (R2 Shl 4) + k[0]) XOR (R2+SUM) XOR ((R2 Shr 5) + k[1]) )

L2 = 10111101 10100001 11110000 11011011 + ( (10011101 11111111 10000010 10011010 Shl 4) + 01100001

01100010 01100011 00000000 ) XOR (10011101 11111111 10000010 10011010 + SUM) XOR ( (10011101 11111111 10000010 10011010 Shr 5) + 00000000 00000000 00000000 00000000 )

L2 = 01011110 11110111 11110001 00011110 (Biner)

L2 = 94 247 241 30 (Decimal)

L2 = ^ ÷ ñ - (ASCII)

Pada akhir penghitungan dekripsi TEA sebanyak 32 round ini diperoleh ciphertext sebagai berikut : SBAA “.

II.B. Dekripsi Vigènere :

Ciphertext : SBAA

Kunci : abc

Kode ASCII Ciphertext : 83 – 66 – 65 – 65


(8)

Kode ASCII Ciphertext- Kunci (Ci-Ki mod(26)) : 18 – 0 - 25 - 0 Hasil Enkripsi VIGÈNERE : “saya”

III.4. Image Steganografi

Contoh kita mempunyai nilai titik-titik pixel bitmap 24 bit sebagai berikut: Titik (0,0) (01100101 11001001 11001001)

Titik (0,1) (00100111 11101001 11001010) Titik (0,2) (00100111 11001000 11101001) Titik (0,3) (11001000 00100111 10101001) Titik (0,4) (00101110 11101001 11001010) Titik (0,5) (10100111 11000000 11101101) Titik (0,6) (11001000 00100011 11101001) Titik (0,7) (00100111 11101001 11001001)

Kita akan menyisipkan huruf “Z” (90) representasi biner adalah 01011010 : Titik (0,0) (01100100 11001001 11001001)

Titik (0,1) (00100111 11101001 11001010) Titik (0,2) (00100110 11001000 11101001) Titik (0,3) (11001001 00100111 10101001) Titik (0,4) (00101111 11101001 11001010) Titik (0,5) (10100110 11000000 11101101) Titik (0,6) (11001001 00100011 11101001) Titik (0,7) (00100110 11101001 11001001)

Gambar 3.1. Tampilan Halaman Enkripsi

Gambar 3.2. Halaman encode Steganografi


(9)

IV. Kesimpulan

1. Kriptografi merupakan ilmu mengacak pesan, sedangkan Steganografi merupakan ilmu menyembunyikan informasi di balik informasi lain. Jenis informasi yang disembunyikan dan Medianya bermacam-macam seperti menyembunyikan pesan teks di dalam gambar Bmp.

2. Kriptografi Klasik Vigenere (mode teks) dan Kriptografi Modern TEA (mode bit) dapat digabungkan. 3. Teknik Kriptografi dan Steganografi dapat diintegrasikan.

4. Stego Image yang dihasilkan Program Aplikasi dengan gambar inputnya secara kasat mata tidak terdapat perbedaan, jadi teknik Steganografi yang digunakan efektif.

5. Gabungan Kriptografi dan Steganografi menghasilkan tingkat keamanan yang cukup tinggi. V. DAFTAR PUSTAKA

1.

Agus J. Alam. M. 2000. Belajar Sendiri Borland Delphi 5.0 Jakarta : PT Elex Media Komputindo Kelompok Gramedia.

2.

Cantu, Marco. 1999, Mastering Delphi 5. San Fransisco, United States : Sybex.

3.

Pranata, Antony. 1997. Pemograman Borland Delphi. Yogyakarta : Andi.

4.

Munir, Rinaldi. 2006. Kriptografi. Bandung : Informatika.

5.

Johnson, Neil F. 1998. Exploring Steganography: Seeing the Unseen. George Mason University : Dep. Of Information and Software System.

6.

Roger M. Needham, David J. Wheeler. 1997. TEA (Tiny

Encryption Algorithm) Extensions Technical report. University of Cambridge: Computer Laboratory.

7.

Andem , Vikram Reddy. 2003. A Cryptanalysis Of The Tiny


(1)

Tulis kunci Pilih FIle teks

Plain Teks

File teks

Cipherteks

Pilih file gambar

file gambar (BMP)

File gambar

Gambar Stego (BMP) Pengirim Pesan Pesan 12 Proses Enkripsi 14 Encode teks ke file gambar 11 Buka Teks dari File Teks 13 Buka gambar dari file

Gambar Stego Image

Proses Encode Steganografi (Proses 1.0)

DFD level 2 Proses Enkripsi (Proses 1.2) :

Ciphertext Chiperteks Vigenere Ciphertext teks kunci teks kunci Plainteks 121 Proses Enkripsi dengan Algoritma Vigenere Plain Text Kunci Cipher Text Vigenere 122 Proses Enkripsi dengan Algoritma

TEA Cipher Text

Vigenere & TEA

Proses Enkripsi (Proses 1.2)

DFD level 2 Proses Encode (Proses 1.4) :

Bit gambar Bit teks gambar teks gambar (BMP) 143 Proses Encoding (Sisipkan bit teks ke

dalam bit gambar) Cipher Text

Vigenere & TEA

Proses Encoding (Proses 1.4)

Gambar (BMP) Stego Image 141 Ubah jadi bit teks 142 Ubah jadi bit gambar

III.2. Algoritma Vigènere Algoritma Enkripsi Vigènere:

a GetTextLen (plainteks) //Hitung jumlah array dari plaintext

b GetTextLen(kunci) // Hitung jumlah array dari kunci

x 0 // isi variabel x dengan nilai 0

While x <= a begin

for j 1 to b do begin

p Ord (plainteks [x] ) //Mengubah char menjadi kode ASCII

p p – 97 //Kode ASCII diubah (a menjadi 0)

k ord ( kunci[j] ) // key menjadi ASCII

k k – 97 //K ode ASCII diubah (a menjadi 0) //operasi penambahan plaintext dengan key-nya


(2)

c c + 97 // K ode ASCII diubah mjd huruf Ciphertext Ciphertext+c // Tulis hasil ke dalam Ciphertext

inc ( x ) // nilai x ditambah 1

end end

Algoritma Dekripsi Vigènere:

a GetTextLen (Ciphertext) //Hitung jumlah array dari Ciphertext

b GetTextLen (kunci) // Hitung jumlah array dari kunci

x 0 // isi variabel x dengan nilai 0

While x <= a begin

for j 1 to b do begin

c Ord (Ciphertext [x]) //Mengubah char menjadi kode ASCII

c c – 97 //Kode ASCII diubah (a menjadi 0)

k ord ( kunci[j] ) // key menjadi ASCII

k k – 97 //Kode ASCII diubah (a menjadi 0) //operasi pengurangan Ciphertext dengan key-nya

p ( c - k ) mod 26 // operasi Vigènere

p p + 97 // K ode ASCII diubah mjd huruf

plaintext plaintext + p // Tulis hasil ke dalam plaintext inc ( x )

end end

III.3. Algoritma TEA (Tiny Encryption Algorithm)

TEA memproses 64-bit input dan menghasilkan 64-bit output. 64-bit input disimpan ke dalam L0 dan R0

@32-bit. Sedangkan 128-bit kunci disimpan ke dalam k[0], k[1], k[2], dan k[3] @32-bit. Output-nya disimpan dalam L32 dan R32.

Algoritma Enkripsi TEA (Tiny Encryption Algorithm)

procedure TeaEncrypt(var data: TLong2; const key: TTeaKey); var y,z,sum: Longword;

a:byte; begin

y:=data[0]; z:=data[1]; sum:=0; for a:=0 to 31 do

begin

inc(sum,Delta);

inc(y,((z shl 4)+key[0]) xor (z+sum) xor ((z shr 5)+key[1])); inc(z,((y shl 4)+key[2]) xor (y+sum) xor ((y shr 5)+key[3]));

end;

data[0]:=y; data[1]:=z

end;

Algoritma Dekripsi TEA (Tiny Encryption Algorithm)

procedure TeaDecrypt(var data: TLong2; const key: TTeaKey);

var y,z,sum: Longword;

a:byte; begin

y:=data[0]; z:=data[1]; sum:=delta shl 5; for a:=0 to 31 do

begin

dec(z,((y shl 4)+key[2]) xor (y+sum) xor ((y shr 5)+key[3])); dec(y,((z shl 4)+key[0]) xor (z+sum) xor ((z shr 5)+key[1])); dec(sum,Delta);

end;

data[0]:=y; data[1]:=z


(3)

IV. IMPLEMENTASI DAN PEMBAHASAN

IV.1. Contoh Penghitungan Enkripsi dan Dekripsi Vigènere dan TEA

Berikut contoh penghitungan enkripsi dan dekripsi pada program aplikasi. Misalkan kita ingin mengirim pesan rahasia dengan kunci sebagai berikut:

Plainteks : “ s a y a ” Kunci : “ a b c “ I.A. Enkripsi Vigènere:

Plainteks : saya

Kunci : abc

Kode ASCII Plainteks : 18 – 0 – 24 - 0

Kode ASCII Kunci : 0 - 1 - 2 - 0

Kode ASCII Plainteks+Kunci (Pi+Ki mod(26)) : 18 - 1 - 0 - 0 Hasil Enkripsi VIGÈNERE (Dalam huruf besar) : “SBAA” I.B. Enkripsi TEA:

Plainteks : SBAA

L0 : SBAA (83-66-65-65)d (01010011 01000010 01000011 01000011)b

R0 : - - - - (0) d (00000000 00000000 00000000 00000000)b

Kunci : abc

Key[0] : abc- (97-98-99-0)d (01100001 01100010 01100011 00000000)b

Key[1] : - - - - (0)d (00000000 00000000 00000000 00000000)b

Key[2] : - - - - (0)d (00000000 00000000 00000000 00000000)b

Key[3] : - - - - (0)d (00000000 00000000 00000000 00000000)b

Round 1 :

SUM = 1 X (2654435770)

L1 = L0 + ( (R0 Shl 4) + K[0] ) XOR ( R0 + SUM ) XOR ( (R0 Shr 5) + K[1] )

L1 = 01010011 01000010 01000011 01000011 + ((00000000 00000000 00000000 00000000 Shl 4) + 01100001

01100010 01100011 00000000) XOR (00000000 00000000 00000000 00000000 + SUM) XOR ((00000000 00000000 00000000 00000000 Shr 5) + 00000000 00000000 00000000 00000000)

L1 = 10110100 10100100 10100100 01000001 (Biner)

L1 = 180 164 164 65 (Decimal)

L1 = ´ ¤ ¤ A (ASCII)

R1 = R0 + ( (L1 Shl 4) + K[2] ) XOR ( L1 + SUM ) XOR ( (L1 Shr 5) + K[3] )

R1 = 00000000 00000000 00000000 00000000 + ( (10110100 10100100 10100100 01000001 Shl 4) + 00000000

00000000 00000000 00000000) XOR (10110100 10100100 10100100 01000001 + SUM) XOR ( (10110100 10100100 10100100 01000001 Shr 5) + 00000000 00000000 00000000 00000000 )

R1 = 01110010 01001011 11011011 11110111 (Biner)

R1 = 114 75 219 247 (Decimal)

R1 = r K Û ÷ (ASCII)

Round 2 :

SUM = 2 X (2654435770)

L2 = L1 + ( (R1 Shl 4) + K[0] ) XOR ( R1 + SUM ) XOR ( (R1 Shr 5) + K[1] )

L2 = 10110100 10100100 10100100 01000001 + ( (01110010 01001011 11011011 11110111 Shl 4) + 01100001

01100010 01100011 00000000) XOR ( 01110010 01001011 11011011 11110111 + SUM) XOR ( (01110010 01001011 11011011 11110111 Shr 5) + 00000000 00000000 00000000 00000000 )

L2 = 11111010 01000100 10011011 00100101 (Biner)

L2 = 250 68 155 37 (Decimal)

L1 = ú D › % (ASCII)

R2 = R1 + ( (L2 Shl 4) + K[2] ) XOR ( L2 + SUM ) XOR ( (L2 Shr 5) + K[3] )

R2 = 01110010 01001011 11011011 11110111 + ( (11111010 01000100 10011011 00100101 Shl 4) + 00000000

00000000 00000000 00000000) XOR (11111010 01000100 10011011 00100101 + SUM) XOR ( (11111010 01000100 10011011 00100101 Shr 5) + 00000000 00000000 00000000 00000000 )


(4)

R2 = • ˜ i j (ASCII)

Penghitungan sampai round 32, akan diperoleh L31 dan R31ciphertext sebagai berikut:

Ciphertext: Š ð ß Æ " z š ³ (138 - 240 - 223 - 198 - 34 - 122 - 154 - 179)

II.A. Dekripsi TEA :

Ciphertext : ŠðßÆ"zš³

L0 : ŠðßÆ (138-240-223-198)d (10001010 11110000 11011111 11000110)b

R0 : "zš³ (34-122-154-179)d (00100010 01111010 10011010 10110011)b Kunci : abc

Key[0] : abc- (97-98-99-0) d (01100001 01100010 01100011 00000000)b

Key[1] : - - - - (0) d (00000000 00000000 00000000 00000000)b

Key[2] : - - - - (0) d (00000000 00000000 00000000 00000000)b

Key[3] : - - - - (0) d (00000000 00000000 00000000 00000000)b

Round 1 :

SUM = 32 X (2654435770)

R1 = R0– ( (L0 Shl 4) + k[2]) XOR (L0+SUM) XOR ((L0 Shr 5) + k[3]) )

R1 = 00100010 01111010 10011010 10110011 + ( (10001010 11110000 11011111 11000110 Shl 4) + 00000000

00000000 00000000 00000000) XOR (10001010 11110000 11011111 11000110 + SUM ) XOR ( (10001010 11110000 11011111 11000110 Shr 5) + 00000000 00000000 00000000 00000000 )

R1 = 01010100 00100010 10011111 01000111 (Biner)

R1 = 84 34 159 71 (Decimal)

R1 = T » Ÿ G (ASCII)

L1 = L0– ( (R1 Shl 4) + k[0]) XOR (R1+SUM) XOR ((R1 Shr 5) + k[1]) )

L1 = 10001010 11110000 11011111 11000110 + ( (01010100 00100010 10011111 01000111 Shl 4) + 01100001

01100010 01100011 00000000 ) XOR (01010100 00100010 10011111 01000111 + SUM) XOR ( (01010100 00100010 10011111 01000111 Shr 5) + 00000000 00000000 00000000 00000000 )

L1 = 10111101 10100001 11110000 11011011 (Biner)

L1 = 189 161 240 219 (Decimal)

L1 = ½ ¡ ð Û (ASCII)

Round 2 :

SUM = 31 X (2654435770)

R2 = R1– ( (L1 Shl 4) + k[2]) XOR (L1+SUM) XOR ((L1 Shr 5) + k[3]) )

R2 = 01010100 00100010 10011111 01000111 + ( (10111101 10100001 11110000 11011011 Shl 4) + 00000000

00000000 00000000 00000000 ) XOR (10111101 10100001 11110000 11011011 + SUM ) XOR ( (10111101 10100001 11110000 11011011 Shr 5) + 00000000 00000000 00000000 00000000 )

R2 = 10011101 11111111 10000010 10011010 (Biner)

R2 = 157 255 130 154 (Decimal)

R2 = • ÿ ‚ š (ASCII)

L2 = L1– ( (R2 Shl 4) + k[0]) XOR (R2+SUM) XOR ((R2 Shr 5) + k[1]) )

L2 = 10111101 10100001 11110000 11011011 + ( (10011101 11111111 10000010 10011010 Shl 4) + 01100001

01100010 01100011 00000000 ) XOR (10011101 11111111 10000010 10011010 + SUM) XOR ( (10011101 11111111 10000010 10011010 Shr 5) + 00000000 00000000 00000000 00000000 )

L2 = 01011110 11110111 11110001 00011110 (Biner)

L2 = 94 247 241 30 (Decimal)

L2 = ^ ÷ ñ - (ASCII)

Pada akhir penghitungan dekripsi TEA sebanyak 32 round ini diperoleh ciphertext sebagai berikut : SBAA “.

II.B. Dekripsi Vigènere :

Ciphertext : SBAA

Kunci : abc

Kode ASCII Ciphertext : 83 – 66 – 65 – 65

Kode ASCII Ciphertext- 65 (Diubah dlm skala 0-25) : 18 - 1 - 0 - 0


(5)

Kode ASCII Ciphertext- Kunci (Ci-Ki mod(26)) : 18 – 0 - 25 - 0

Hasil Enkripsi VIGÈNERE : “saya”

III.4. Image Steganografi

Contoh kita mempunyai nilai titik-titik pixel bitmap 24 bit sebagai berikut:

Titik (0,0) (01100101 11001001 11001001)

Titik (0,1) (00100111 11101001 11001010)

Titik (0,2) (00100111 11001000 11101001)

Titik (0,3) (11001000 00100111 10101001)

Titik (0,4) (00101110 11101001 11001010)

Titik (0,5) (10100111 11000000 11101101)

Titik (0,6) (11001000 00100011 11101001)

Titik (0,7) (00100111 11101001 11001001)

Kita akan menyisipkan huruf “Z” (90) representasi biner adalah 01011010 :

Titik (0,0) (01100100 11001001 11001001)

Titik (0,1) (00100111 11101001 11001010)

Titik (0,2) (00100110 11001000 11101001)

Titik (0,3) (11001001 00100111 10101001)

Titik (0,4) (00101111 11101001 11001010)

Titik (0,5) (10100110 11000000 11101101)

Titik (0,6) (11001001 00100011 11101001)

Titik (0,7) (00100110 11101001 11001001)

Gambar 3.1. Tampilan Halaman Enkripsi

Gambar 3.2. Halaman encode Steganografi


(6)

I

V. Kesimpulan

1. Kriptografi merupakan ilmu mengacak pesan, sedangkan Steganografi merupakan ilmu menyembunyikan informasi di balik informasi lain. Jenis informasi yang disembunyikan dan Medianya bermacam-macam seperti menyembunyikan pesan teks di dalam gambar Bmp.

2. Kriptografi Klasik Vigenere (mode teks) dan Kriptografi Modern TEA (mode bit) dapat digabungkan. 3. Teknik Kriptografi dan Steganografi dapat diintegrasikan.

4. Stego Image yang dihasilkan Program Aplikasi dengan gambar inputnya secara kasat mata tidak terdapat perbedaan, jadi teknik Steganografi yang digunakan efektif.

5. Gabungan Kriptografi dan Steganografi menghasilkan tingkat keamanan yang cukup tinggi.

V. DAFTAR PUSTAKA

1.

Agus J. Alam. M. 2000. Belajar Sendiri Borland Delphi 5.0 Jakarta : PT Elex Media Komputindo Kelompok Gramedia.

2.

Cantu, Marco. 1999, Mastering Delphi 5. San Fransisco, United States : Sybex.

3.

Pranata, Antony. 1997. Pemograman Borland Delphi. Yogyakarta : Andi.

4.

Munir, Rinaldi. 2006. Kriptografi. Bandung : Informatika.

5.

Johnson, Neil F. 1998. Exploring Steganography: Seeing the Unseen. George Mason University : Dep. Of Information and Software System.

6.

Roger M. Needham, David J. Wheeler. 1997. TEA (Tiny

Encryption Algorithm) Extensions Technical report. University of Cambridge: Computer Laboratory.

7.

Andem , Vikram Reddy. 2003. A Cryptanalysis Of The Tiny