BAB II TINJAUAN PUSTAKA
2.5 Landasan Matematika Kriptografi
2.5.6 Pergeseran Bit (Shift)
Pergeseran bit (Shift) adalah operasi pergeseran terhadap suatu barisan bit sebanyak yang diinginkan. Bit kosong yang telah tergeser akan diberikan nilai bit
“0” (nol). Operasi pergeseran terbagi menjadi dua macam yaitu,
1. Operasi Geser Kiri (Shift Left) yaitu operasi yang menggeser (shift) sejumlah bit ke kiri (left) dengan nilai bit “0” (nol). Operasi shift left dilambangkan dengan “
<<
”.Contoh operasi shift left :
11000110 << 1 : 10001100 11000110 << 2 : 00011000
Operasi Geser Kanan (Shift Right) yaitu operasi yang menggeser (shift) sejumlah bit ke kanan (right) dengan nilai bit “0” (nol). Operasi shift right dilambangkan dengan “
>>
”.Contoh operasi shift right :
11000110 >> 1 : 01100011 11000110 >> 2 : 00110001 2.5.7 Rotasi Bit (Rotate)
Rotasi bit (Rotate) adalah operasi perputaran terhadap suatu barisan bit sebanyak yang diinginkan. Bit yang tergeser akan dipindahkan ke sisi barisan bit yang berlawanan dengan arah putaran bit. Operasi rotasi terbagi atas dua macam yaitu,
1. Operasi Rotasi Kiri (Rotate Left) yaitu operasi memutar barisan bit ke kiri sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kanan akan digantikan dengan bit yang telah tergeser di sebelah kirinya. Operasi rotate left dilambangkan dengan “
<<<
”. Contoh operasi rotate left :11000110 <<< 1 : 10001101 11000110 <<< 2 : 00011011 11000110 <<< 3 : 00110110
2. Operasi Rotasi Kanan (Rotate Right) yaitu operasi memutar barisan bit ke kanan sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kiri akan digantikan dengan bit yang telah tergeser di sebelah kanannya. Operasi rotate right dilambangkan dengan “
>>>
”.Contohoperasi rotate right :
11000110 >>> 1 : 01100011 11000110 >>> 2 : 10110001 11000110 >>> 3 : 11011000
2.5.8 Perkalian Modulo
Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki invers.
Perkalian modulo n juga tidak memiliki invers jika angka yang dikalikan tidak relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi yang memiliki inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh karena itu, operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki inversi. Jika kita membentuk suatu tabel perkalian untuk bilangan-bilangan mulai dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja.
Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya.
Contoh :
(32542 * 10) mod 65537 = 325420 mod 65537 = 63272 (3154 * 25) mod 65537 = 78850 mod 65537 = 13313
2.6 ALGORITMA IDEA 2.6.1 Sejarah Algoritma IDEA
Metoda IDEA diperkenalkan pertama kali oleh Xuejia Lai dan James Massey pada tahun 1990 dengan nama PES (Proposed Encryption Standard).
Tahun berikutnya, setelah Biham dan Shamir mendemonstrasikan cryptanalysis yang berbeda, sang penemu memperkuat algoritma mereka dari serangan dan algoritma hasil pengubahan tersebut diberi nama IPES (Improved Proposed Encryption Algorithm). Kemudian pada tahun 1992, IPES diganti namanya menjadi IDEA (International Data Encryption Algorithm). IDEA dirancang untuk menggantikan DES (Data Encryption Standard).
2.6.2 Arsitektur Umum Prosesor Kriptografi IDEA
Pada gambar berikut diperlihatkan arsitektur atau penggambaran umum sebuah processor yang mengolah sistem keamanan data dengan menggunakan
algoritma IDEA. Makalah Perbandingan Algoritma IDEA dengan DES (Stevens Jethefer) :
Gambar 2.3 Arsitektur Prosesor Kriptografi IDEA
Keterangan :
1. Blok Penyandi IDEA
Blok ini berfungsi untuk melakukan proses penyandian data. Jika sub-kunci yang diproses oleh blok ini berupa sub-sub-kunci enkripsi maka pesan yang dihasilkan adalah pesan rahasia (Chipertext) dan jika yang diproses berupa sub-kunci deskripsi maka pesan yang dihasilkan adalah pesan sebenarnya (Plaintext).
2. Blok pembangkit sub-kunci
Blok ini berfungsi untuk membentuk 52 buah sub-kunci enkripsi 16 bit dari kunci enkripsi 128 bit. Sehingga membentuk 52 buah sub-kunci dekripsi 16 bit dari kunci dekripsi 128 bit.
3. Blok port data-in
Blok ini berfungsi untuk membaca 2 buah blok data masukan 32 bit dan penyimpanannya sebagai blok data masukan 64 bit yang akan dienkripsi atau didekripsi.
4. Blok port data-out
Blok ini berfungsi untuk mengeluarkan blok data keluaran 64 bit yang merupakan hasil enkripsi atau dekripsi dengan cara membagi menjadi 2 buah blok data keluaran 32 bit.
5. Blok port kunci-n
Blok ini berfungsi untuk membaca 4 buah blok kunci 32 bit dan menyimpannya sebagai blok kunci 128 bit.
6. Blok mode operasi
Blok ini berfungsi untuk menentukan mode operasi yang digunakan pada proses enkripsi dan dekripsi.
7. Blok control
Blok ini berfungsi untuk mengontrol operasi antara blok fungsional yang menyusun sebuah blok besar seperti sinkronisasi transfer data antara blok.
2.6.3 Kekuatan Algoritma IDEA
Makalah Perbandingan Algoritma IDEA dengan DES (Stevens Jethefer) IDEA menunjukkan dirinya sendiri bahwa algoritma yang kebal menghadapi berbagai serangan dari para kriptanalisis dengan asumsi tertentu. Pembuat dari algoritma ini mengetahui kelemahan dari DES dan mencoba memperbaikinya dan membuat suatu algoritma yang lebih kebal/tangguh terhadap berbagai jenis serangan.
Pada tahun 1992, Joan Daemen menemukan sebuah kelas yang merupakan titik lemah dari kunci.
Contoh kunci berikut ini, k = 0000,0000,0x00,0000,0000,000x,xxxx,x000 dalam bentuk hexadecimal akan menjadi lemah/rentan terhadap serangan, artinya adalah seorang kriptanalisis dapat mengidentifikasi kunci ini dengan satu serangan pada plaintext yang sudah terpilih. Posisi x dapat memiliki nilai apapun dalam hexadecimal.
Kemungkinan dari tipe kunci yang seperti ini dapat digunakan adalah hanya 1 sampai 296, dan itu semua mungkin terjadi. Namun hal ini juga bisa
dihindari dengan melakukan proses desain yang baik. Sampai tahun 2004, serangan terbaik yang dapat dilakukan pada semua kunci yang dapat memecahkan IDEA dilakukan di bawah putaran ke-5 (algoritma IDEA yang penuh menggunakan 8.5 putaran).
Pada tahun 1996, Bruce Schneier sangat memandang tinggi IDEA, beliau menulis, "Menurut saya, IDEA merupakan algoritma blok-chiper yang terbaik dan paling aman yang tersedia pada masyarakat luas pada saat ini." (Applied Cryptography, 2nd ed.) Akan tetapi, pada tahun 1999 dia tidak lagi merekomendasikan algoritma IDEA dikarenakan ketersediaan dari algoritma lain yang lebih cepat, beberapa perkembangan para kriptanalisis, dan munculnya hak paten pada IDEA.
Sampai saat ini, serangan apapun pada sistem yang menggunakan algoritma kriptografi IDEA baik secara aljabar maupun linear masih belum diketahui oleh para kriptanalisis. Pada tahun 1997, Joan Daemen and Vincent Rijmen akan menciptakan RIJNDAEL, sebuah standar NIST yang baru pada akhir tahun 2001.
2.6.4 Kelebihan Algoritma IDEA
Algoritma IDEA mempunyai kelebihan-kelebihan sebagai berikut :
1. Dalam segi keamanan penyandian data algoritma IDEA mempunyai standar yang lebih sederhana namun cukup ampuh untuk mencegah serangan cryptanalysis terhadap kunci enkripsi dan dekripsi. Pembangkit kunci yang diperoleh dengan menjalankan fungsi pembangkit bilangan acak terbukti dapat menyandikan data plaintext menjadi ciphertext yang sulit untuk diterjemahkan langsung namun mudah untuk didekripsi dengan menggunakan kunci dekripsi yang asli.
2. Dari segi efisiensi waktu algoritma IDEA mempunyai akselerasi yang cukup baik dalam mengenkripsi dan mendekripsi data, terutama karena struktur algoritmanya lebih singkat namun tidak mengurangi kemampuan dasar dalam mengamankan penyandian data.
2.6.5 Algoritma IDEA
IDEA merupakan block cipher (cipher blok), yang beroperasi pada blok plaintext 64 bit. Panjang kuncinya 128 bit. Algoritma yang sama digunakan untuk proses enkripsi dan dekripsi. Sebagaimana algoritma enkripsi yang lain, IDEA menggunakan confusion dan diffusion, berbeda dengan DES yang menggunakan permutasi dan substitusi untuk confusion dan diffusion, IDEA menggunakan operasi aljabar yang tidak kompatibel sebagai berikut,
a. XOR.
b. Penambahan modulo 216.
c. Perkalian modulo 216+1 (operasi ini menggantikan kotak-S atau S-Box).
Algoritma IDEA (International Data Encryption Algorithm) menggunakan perkalian modulo 216+1 dengan pertimbangan berikut ini.
Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki inversi.
Perkalian modulo n juga tidak memiliki inversi jika angka yang dikalikan tidak relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi yang memiliki inversi. Angka 65537 (216+1) adalah sebuah bilangan prima. Oleh karena itu, operasi perkalian modulo (216+1) pada algoritma IDEA memiliki inversi. Jika kita membentuk suatu tabel perkalian untuk bilangan-bilangan mulai dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja.
Dalam Algoritma IDEA untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya. Algoritma IDEA ini dapat dibagi menjadi dua bagian besar, yaitu enkripsi dan dekripsi.
3.1 DATA PENELITIAN
IDEA merupakan block cipher (chipper blok) yang beroperasi pada blok plaintext 64 bit dan kunci 128 bit. Dalam proses metode IDEA memiliki input 128 bit kunci (key) yang identik dengan 32 digit heksadesimal ataupun 16 karakter yang diproses untuk menghasilkan 52 subkey dengan perincian masing-masing 6 buah subkey akan digunakan pada 8 putaran dan 4 buah subkey untuk transformasi output. Algoritma IDEA ini menggunakan kunci (key) simetris, dimana kunci yang digunakan enkripsi sama dengan dekripsi.
3.2 ALAT-ALAT YANG DIGUNAKAN
Adapun alat-alat yang digunakan dalam melakukan penelitian ini adalah:
3.2.1 Perangkat Lunak
Adapun perangkat lunak yang akan digunakan dalam penelitian ini adalah:
1. Microsoft Windows 7 2. Microsoft Word 2007 3. Microsoft Visio 2007 4. Visual Basic 6.0 3.2.2 Perangkat Keras
Adapun perangkat keras yang digunakan dalam penelitian ini adalah:
1. Processor Intel Core ™ i5 Turbo Baster 2. RAM 2 GB
3. HDD 500 GB 4. Mouse
3.3 PROSES ENKRIPSI ALGORITMA IDEA
Proses enkripsi algoritma IDEA adalah sebagai berikut, pertama–tama plaintext 64 bit dibagi menjadi 4 buah sub blok dengan panjang 16 bit, yaitu X1, X2, X3, X4. Empat sub blok ini menjadi masukan bagi iterasi tahap pertama algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok di-XOR-kan, ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit.
Diantara iterasi sub blok kedua dan ketiga saling dipertukarkan. Akhirnya 4 buah sub blok dikombinasikan dengan 4 subkey dalam transformasi output. Pada setiap tahapan, urutan berikut ini dikerjakan,
1. Kalikan X1 dengan K1 mod (216 + 1).
2. Tambahkan X2 dengan K2 mod 216. 3. Tambahkan X3 dengan K3 mod 216. 4. Kalikan X4 dengan K4 mod (216 + 1).
5. XOR hasil dari step 1 dan 3.
6. XOR hasil dari step 2 dan 4.
7. Kalikan hasil dari step 5 dengan K5 mod (216 + 1).
8. Tambahkan hasil dari step 6 dan 7 mod 216.
9. Kalikan hasil dari step 8 dengan K6 mod (216 + 1).
10. Tambahkan hasil dari step 7 dan 9 mod 216. 11. XOR hasil dari step 1 dan 9.
12. XOR hasil dari step 3 dan 9.
13. XOR hasil dari step 2 dan 10.
14. XOR hasil dari step 4 dan 10.
Output dari setiap round adalah empat sub blok yang dihasilkan pada langkah 11, 12, 13 dan 14. Sub blok 12 dan 13 di-swap (kecuali untuk putaran terakhir) sehingga input dari putaran berikutnya adalah hasil kombinasi dari langkah 11 13 12 14.Setelah 8 putaran, akan dilakukan tranformasi output berikut,
1. Kalikan X1 dengan subkey K1 mod (216 + 1).
2. Tambahkan X2 dengan subkey K2 mod 216. 3. Tambahkan X3 dengan subkey K3 mod 216. 4. Kalikan X4 dengan subkey K4 mod (216 + 1).
3.4 PROSES DEKRIPSI ALGORITMA IDEA
Proses dekripsi sama persis dengan proses enkripsi. Perbedaannya hanya terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi dan subkey-nya di-inverse-kan. Subkey pada langkah transformasi output pada proses enkripsi di-inverse-kan dan digunakan sebagai subkey pada putaran 1 pada proses dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada putaran 1 dan 2 pada proses dekrips. Demikian seterusnya, agar lebih jelas lihatlah tabel berikut ini.
Table 3.1 Proses Dekripsi
Round Subkey Enkripsi Subkey Dekripsi
1 K1(1) K2(1) K3(1) K4(1) K5(1) K6(1) K1(9)-1-K2(9)-K3(9) K4(9)-1 K5(8) K6(8) 2 K1(2) K2(2) K3(2) K4(2) K5(2) K6(2) K1(8)-1 -K3(8) -K2(8) K4(8)-1 K5(7) K6(7) 3 K1(3) K2(3) K3(3) K4(3) K5(3) K6(3) K1(7)-1 -K3(7) -K2(7) K4(7)-1 K5(6) K6(6) 4 K1(4) K2(4) K3(4) K4(4) K5(4) K6(4) K1(6)-1 -K3(6) -K2(6) K4(6)-1 K5(5) K6(5) 5 K1(5) K2(5) K3(5) K4(5) K5(5) K6(5) K1(5)-1 -K3(5) -K2(5) K4(5)-1 K5(4) K6(4) 6 K1(6) K2(6) K3(6) K4(6) K5(6) K6(6) K1(4)-1 -K3(4) -K2(4) K4(4)-1 K5(3) K6(3) 7 K1(7) K2(7) K3(7) K4(7) K5(7) K6(7) K1(3)-1 -K3(3) -K2(3) K4(3)-1 K5(2) K6(2) 8 K1(8) K2(8) K3(8) K4(8) K5(8) K6(8) K1(2)-1 -K3(2) -K2(2) K4(2)-1 K5(1) K6(1) Transfor
masi output
K1(9) K2(9) K3(9) K4(9) K1(1)-1 -K2(1) -K3(1) K4(1)-1
3.5 Flowchart sistem dengan menggunakan Algoritma IDEA
Berikut ini adalah flowchart sistem kerja dari perangkat lunak kriptografi dengan Algoritma IDEA yang penulis rancang. Flowchart sistem ini terdiri dari dua flowchart sistem, yaitu flowchart sistem Enkripsi dan flowchart sistem dekripsi.
START
INPUT PLAIN TEXT DAN
KUNCI
MENGAMBIL VARIABEL PLAIN TEXT DAN KUNCI
JIKA VARIBLE MEMENUHI SYARAT
Xn & Kn
PROSES VARIABLE DENGAN FORMULA
ENKRIPSI
CHIPER TEKS &
INFORMASI PROSES ENKRIPSI
SELESAI
TIDAK
BLOCK KUNCI
=1 TIDAK
YA YA
Gambar 3.1 Flowchart Sistem Proses Enkripsi Algoritma IDEA
START
INPUT CHIPER TEXT
DAN KUNCI
MENGAMBIL VARIABEL CHIPER TEXT DAN
KUNCI
JIKA VARIBLE MEMENUHI SYARAT
Xn & Kn
PROSES VARIABLE DENGAN FORMULA
DENKRIPSI
PLAIN TEKS &
INFORMASI PROSES DEKRIPSI
SELESAI
TIDAK
BLOCK KUNCI
=1 TIDAK
YA KUNCIN DESKRIPT =
KUNCI ENKRIPT TIDAK
YA
YA
Gambar 3.2 Flowchart Sistem Proses Dekripsi Algoritma IDEA
3.6 Proses Perancangan dan Analisa
Pada penelitian ini pendekatan yang digunakan dalam pembangunan sistem ini adalah terstruktur. Perancangan dari bentuk kerja sistem di lakukan dengan menggunakan DFD. Pengambaran DFD secara lengkap akan di perlihatkan di dalam bab IV.
4.1 ANALISA ALGORITMA IDEA
4.1.1 Analisa Permasalahan Algoritma IDEA
Tahapan analisis terhadap suatu sistem dilakukan sebelum tahapan perancangan dilakukan. Tujuan diterapkannya analisis terhadap suatu sistem adalah untuk mengetahui alasan mengapa sistem tersebut diperlukan, merumuskan kebutuhan-kebutuhan dari sistem tersebut untuk mereduksi sumber daya yang berlebih serta membantu merencanakan penjadwalan pembentukan sistem, meminimalisir penyimpangan yang mungkin terdapat di dalam sistem tersebut sehingga fungsi yang dalam sistem tersebut bekerja secara optimal.
Salah satu unsur pokok yang harus dipertimbangkan dalam tahapan analisis sistem ini yaitu masalah perangkat lunak, karena perangkat lunak yang digunakan haruslah sesuai dengan masalah yang akan diselesaikan.
4.1.2 Analisa Kebutuhan Algoritma IDEA
Faktor yang mendasari dibentuknya perangkat lunak dengan algoritma kriptografi IDEA adalah keamanan data. Keamanan telah menjadi aspek yang sangat penting dari suatu sistem informasi. Sebuah informasi umumnya hanya ditujukan bagi segolongan tertentu. Oleh karena itu sangat penting untuk mencegahnya jatuh kepada pihak-pihak lain yang tidak berkepentingan. Untuk keperluan tersebut, maka diperlukan teknik kriptografi dengan metode enkripsi dan dekripsi. Salah satu metode enkripsi dan dekripsi data yang digunakan adalah algoritma IDEA.
Setiap sistem yang akan dibangun selalu memiliki kebutuhan. Analisis yang dilakukan terhadap kebutuhan suatu sistem dapat berfungsi untuk mereduksi sumber daya yang berlebih dari sistem tersebut serta membantu pembentukan penjadwalan pembentukan sistem.
Berdasarkan analisis yang dilakukan terhadap keperluan perangkat lunak, maka dapat diambil keputusan bahwa nama dari perangkat lunak yang akan
dibangun adalah KriptIDEA, dimana Kript menunjukkan fungsi dari perangkat lunak dan Idea merupakan nama algoritma yang di gunakan. Perangkat lunak yang dibangun nantinya akan menghasilkan file cipherteks dari proses enkripsi dan menghasilkan file plainteks dari proses dekripsi. Format file cipherteks nantinya akan tetap sama dengan file asli tetapi tidak dapat dipahami oleh pihak yang tidak berhak.
4.1.3 Pemodelan Fungsional
Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana caranya agar sistem yang dibangun memiliki fungsi yang berdaya guna maksimal. Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis. Pada sistem kriptografi IDEA, secara garis besar terdapat dua fungsi, yaitu: enkripsi pesan, dekripsi pesan.
4.2 PERANCANGAN SISTEM
Pada perancangan perangkat lunak dengan algoritma IDEA (International Data Encryption Algorithm), tahap perancangan yang dilakukan mencakup perancangan data, perancangan struktur program, dan perancangan prosedural.
4.2.1 Perancangan Data
Secara umum Algoritma penyandian IDEA (International Data Encryption Algorithm) dihitung menggunakan rumus sebagai berikut:
1. Proses Enkripsi
ek(M) = C ... ( 1) 2. Proses Deskripsi
dk(C) = M ... ( 2) Keterangan:
e = adalah fungsi enkripsi d = adalah fungsi dekripsi M = adalah pesan terbuka C = adalah pesan rahasia
K = adalah kunci enkripsi atau dekripsi
Pada proses enkripsi, terdapat tiga operasi yang berbeda untuk pasangan sub-blok 16-bit yang digunakan, sebagai berikut :
- XOR dua sub-blok 16-bit bir per bit
- Penjumlahan integer modul (216 + 1) dua sub-blok 16-bit , dimana kedua sub-blok itu dianggap sebagai representasi biner dari integer biasa,
- Perkalian modulo (216 + 1) dua sub-blok 16-bit, dimana kedua sub-blok 16-bit itu dianggap sebagai representasi biner dari integer biasa kecuali sub-blok nol dianggap mewakili integer 216
Blok pesan terbuka dengan lebar 64-bit , X, dibagi menjadi 4 sub-blok 16-bit, X1, X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-blok 16-bit itu ditransformasikan menjadi sub-blok 16-bit, Y1, Y2, Y3, Y4, sebagai pesan rahasia 64-bit Y = (Y1, Y2, Y3, Y4) yang berada dibawah kendali 52 sub_blok kunci 16-bit yang dibentuk dari dari blok kunci 128 bit.
Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukan untuk putaran pertama dari algoritma IDEA. Dalam setiap putaran dilakukan operasi XOR, penjumlahan, perkalian antara dua sub-blok 16-bit dan diikuti pertukaran antara sub-blok 16-bit putaran kedua dan ketiga. Keluaran putaran sebelumnya menjadi masukan putaran berikutnya. Setelah putaran kedelapan dilakukan transformasi keluaran yang dikendalikan oleh 4 sub-blok kunci 16-bit.
Berikut contoh perhitungan enkripsi dan deskripsi secara manual dengan variable Plain Text bernilai “abcdefgh” dan kunci bernilai “1234567890123456”
1. Nilai konversi karakter ke binary
Table 4.1 Nilai ASCII dari Plainteks dan Kunci Enkripsi
Char Desimal Binary
a 97 01100001
b 98 01100010
c 99 01100011
d 100 01100100
e 101 01100101
f 102 01100110
g 103 01100111
h 104 01101000
1 49 00110001
2 50 00110010
3 51 00110011
2. Kemudian Kunci digabung menjadi seperti ini
001100010011001000110011001101000011010100110110001101110 011100000111001001100000011000100110010001100110011010000 11010100110110
3. Kunci dipecah menjadi 8 kelompok
KE1 (Putaran 1) = 0011000100110010 KE2 (Putaran 1) = 0011001100110100 KE3 (Putaran 1) = 0011010100110110 KE4 (Putaran 1) = 0011011100111000 KE5 (Putaran 1) = 0011100100110000 KE6 (Putaran 1) = 0011000100110010 KE1 (Putaran 2) = 0011001100110100 KE2 (Putaran 2) = 0011010100110110
4. Selanjutnya dilakukan rotasi ke kiri sebanyak 25 karakter
(00110001001100100011001100110100001101010011011000110111
5. Kemudian menghasilkan kunci baru sebagai berikut:
KE3 (Putaran 2) = 0110100001101010 KE4 (Putaran 2) = 0110110001101110 KE5 (Putaran 2) = 0111000001110010 KE6 (Putaran 2) = 0110000001100010 KE1 (Putaran 3) = 0110010001100110 KE2 (Putaran 3) = 0110100001101010 KE3 (Putaran 3) = 0110110001100010 KE4 (Putaran 3) = 0110010001100110
6. Begitu seterusnya sampai 6 kali putaran, sampai pada putaran ke 7 hanya 4 pecahan kunci terakhir yang digunakan sehingga menjadi:
KE1 (Transformasi Output) = 1100110100001101 = X1 KE2 (Transformasi Output) = 0100110110001101 = X2 KE3 (Transformasi Output) = 1100111000001110 = X3 KE4 (Transformasi Output) = 0100110000001100 = X4
Ini adalah sebuah kunci yang nantinya akan digunakan untuk perhitungan enkripsi dan deskripsi.
A. Proses Enkripsi
Pada proses enkripsi ini dilakukan perhitungan 8 kali putaran dengan setiap putarannya dilakukan sebagai berikut:
Table 4.2 Langkah Proses Enkripsi
L Rumus Nilai Proses Hasil Proses
0011011100111000 mod (2^16 + 1)
1110000001110011 5 L#1 XOR L#3 1011010001101110 XOR
1001101010011100
0010111011110010 6 L#2 XOR L#4 1001011010011000 XOR
1110000001110011
0111011011101011 7 (L#5 * K5) mod (2^16 + 1) 0010111011110010 *
0011100100110000 mod (2^16 + 1)
1010010011100100 8 (L#6 + L#7)) mod 2^16 0111011011101011 +
1010010011100100 mod 2^16
0001101111001111 9 (L#8 * K6) mod (2^16 + 1) 0001101111001111 *
0011000100110010 mod (2^16 + 1)
0000100000010110 10 (L#7 + L#9)) mod 2^16 1010010011100100 +
0000100000010110 mod 2^16
1010110011111010 11 L#1 XOR L#9 1011010001101110 XOR
0000100000010110
1011110001111000 12 L#3 XOR L#9 1001101010011100 XOR
0000100000010110
1001001010001010 13 L#2 XOR L#10 1001011010011000 XOR
1010110011111010
0011101001100010 14 L#4 XOR L#10 1110000001110011 XOR
1010110011111010
0100110010001001
Kemudian 4 langkah terakhir 11,12,13,14 menjadi nilai X1,X2,X3,X4 untuk proses selanjutnya. Begitu seterusnya sampai 8 putaran.
Sehingga diperoleh nilai transformasi dari perhitungan ini:
X1 = L#11 = 1011110000010111 X2 = L#13 = 0101111011011111 X3 = L#12 = 1000001001101111 X4 = L#14 = 1101111001110010
Nilai-nilai ini kemudian ditransformasikan dengan rumus seperti ini:
Table 4.3 Proses Transformasi Enkripsi
0100110000001100 mod (2^16 + 1)
0000001101000100
Hasil Proses (Binary) kemudian diterjemahkah kedalam bentuk karakter ascii sehingga menjadi:
Y1 = 0110000110000100 = a„
Y2 = 1010110001101100 = ¬l Y3 = 0101000001111101 = P}
Y4 = 0000001101000100 = D
Ini hasil akhir dari proses perhitungan enkripsi sehingga menghasilkan sebuah Cipher text dengan nilai “a„¬lP} D”
B. Proses Deskripsi
Pada dasarnya proses yang dilakukan untuk deskripsi ini hampir sama dengan proses enkripsi, terdapat sedikit perbedaan pada 52 buah sub-blok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah sub-blok kunci enkripsi. Berikut bentuk perhitungan manual untuk desckripsi dengan nilai chipper text “a„¬lP}D” dan kunci “1234567890123456”.
1. Nilai konversi chipper text
Table 4.4 Nilai ASCII dari Chiperteks
Char Desimal Binary
2. Proses Perhitungan berikutnya sama dengan proses enkripsi yaitu menggunakan rumus-rumus sebanyak 8 kali putaran sebagai berikut:
Table 4.5 Langkah Proses Dekripsi
L Rumus Nilai Proses Hasil Proses
0010101111000000 mod (2^16 + 1)
1101111001110010 5 L#1 XOR L#3 1011110000010111 XOR
1000001001101111
0011111001111000 6 L#2 XOR L#4 0101111011011111 XOR
1101111001110010
1000000010101101 7 (L#5 * K5) mod (2^16 + 1) 0011111001111000 *
0100011001100110 mod (2^16 + 1)
1010001010100011 8 (L#6 + L#7)) mod 2^16 1000000010101101 +
1010001010100011 mod 2^16
0010001101010000 9 (L#8 * K6) mod (2^16 + 1) 0010001101010000 *
1000011010100110 mod (2^16 + 1)
1011001101001110 10 (L#7 + L#9)) mod 2^16 1010001010100011 +
1011001101001110 mod 2^16
0101010111110001 11 L#1 XOR L#9 1011110000010111 XOR
1011001101001110
0000111101011001 12 L#3 XOR L#9 1000001001101111 XOR
1011001101001110
0011000100100001 13 L#2 XOR L#10 0101111011011111 XOR
0101010111110001
0000101100101110 14 L#4 XOR L#10 1101111001110010 XOR
0101010111110001
1000101110000011
Kemudian 4 langkah terakhir 11,12,13,14 menjadi nilai X1,X2,X3,X4 untuk proses selanjutnya. Begitu seterusnya sampai 8 putaran.
Sehingga diperoleh nilai transformasi dari perhitungan ini:
X1 = L#11 = 0000111101011001 X2 = L#13 = 0011000100100001 X3 = L#12 = 0000101100101110 X4 = L#14 = 1000101110000011
Nilai-nilai ini kemudian ditransformasikan dengan rumus seperti ini:
Table 4.6 Proses Transformasi Dekripsi
Y Rumus Nilai Proses Hasil Proses
1 (X1 * K1) mod (2^16 + 1) 1011010001101110 *
1011100111100101 mod (2^16 + 1)
0110000101100010 2 (X2 + K2) mod 2^16 1001011010011000 +
1100110011001100 mod 2^16
0110001101100100 3 (X3 + K3) mod 2^16 1001101010011100 +
1100101011001010 mod 2^16
0110001101100100 4 (X4 * K4) mod (2^16 + 1) 1110000001110011 *
1001011000010100 mod (2^16 + 1)
0110011101101000
Hasil Proses (Binary) kemudian diterjemahkah kedalam bentuk karakter ASCII sehingga menjadi:
Y1 = 0110000101100010 = ab Y2 = 0110001101100100 = cd Y3 = 0110010101100110 = ef Y4 = 0110011101101000 = gh
Ini hasil akhir dari proses perhitungan deskripsi sehingga menghasilkan sebuah Plain Text dengan nilai “abcdefgh”. Dengan demikian inilah yang menjadi dasar dari perancangan data dan variable yang akan diterapkan dalam system aplikasi IDEA nantinya.
4.2.2 Perancangan Struktur Program
Struktur program disebut juga hirarki kontrol yang mempresentasikan organisasi komponen program (modul) serta mengimplikasikan suatu hirarki kontrol. Suatu hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian/urutan dari keputusan, atau pengulangan operasi. Banyak notasi yang berbeda yang digunakan untuk mempresentasikan hirarki kontrol, yang paling umum adalah diagram pohon.
Seperti pada umumnya perancangan program terdiri dari judul program dan badan program. Dimana badan program ini dibagi lagi menjadi dua bagian yaitu bagian deklarasi dan bagian pernyataan (statement).
Berikut bentuk bagan struktur program yang akan diterapkan pada program kriptografi IDEA.
JUDUL PROGRAM
BLOCK PROGRAM
BAGIAN DEKLARASI FUNGSI-FUNGSI DAN VARIBEL
BAGIAN PERNYATAAN DAN PENERAPAN FUNGSI
IF …… THEN
……
END IF EKSEKUSI
PROSEDUR-PROSEDUR
Gambar 4.1 Bagan Struktur Program
Pada bagian deklasi fungis-fungsi dan variabel terdapat beberapa fungsi yang digunakan dalam program sebagai berikut:
1. FBiner2Dec (Fungsi untuk merubah nilai-nilai binary ke dalam bentuk decimal)
2. FDec2Biner (Fungsi untuk merubah nilai-nilai decimal ke dalam bentuk binary)
3. FMod (Fungsi untuk mengitung XOR sebuah nilai
4. GetIDEAKey (Fungsi untuk menghitung dan menghasilkan kunci IDEA) 5. FRotateLeftShift (Fungsi untuk merotasi nilai binary)
6. SpyRound (Fungsi untuk membulatkan perhitungan decimal) 7. Inverse (Fungsi untuk proses membalikkan nilai binary) 8. FMinus (Fungsi untuk menghitung pengurangan nilai binary) 9. Proses_Enkrip (Fungsi untuk menghitung enkripsi data) 10. Proses_Deskrip (Fungsi untuk menghitung deskripsi data) 11. Dll
Inilah sebagian fungsi-fungsi yang akan diterapkan dalam program kriptografi IDEA ini.
4.2.3 Perancangan Prosedural
Perancangan prosedural terjadi setelah perancangan data, perancangan struktur program diselesaikan. Dalam dunia nyata, spesifikasi prosedural diperlukan untuk menetapkan detail algoritma yang akan digunakan dalam suatu bahasa, seperti bahasa Indonesia. Sayangnya, ada satu masalah kecil, yakni perancangan prosedural harus menentukan detail desain, procedural tanpa ada ambiguitas. Oleh karena itu, untuk menghindari adanya ambiguitas pada perancangan prosedural, perancangan prosedural perangkat lunak Kript IDEA (International Data Encryption Algorithm) menggunakan algoritma dan flowchart.
Pada perangkat lunak Kript IDEA, terdapat dua prosedur utama, yaitu prosedur Enkripsi dan prosedur Dekripsi. Dalam procedure enkripsi ini terdapat 2 (dua) varibel yang akan diproses untuk menghasilkan sebuah chiper text (Pecahan Symbol) yaitu variabel Plain Text dan Variabel Kunci (Key)
Pada tahap awal , setelah Plain Teks dan Kunci dimasukkan maka program akan menghitung berapa banyak karakter yang dimasukkan dalam plainteks dan kunci untuk selanjutnya diciptakan sebuah blok proses perhitungan. Dengan
Pada tahap awal , setelah Plain Teks dan Kunci dimasukkan maka program akan menghitung berapa banyak karakter yang dimasukkan dalam plainteks dan kunci untuk selanjutnya diciptakan sebuah blok proses perhitungan. Dengan