Analisa Masukan Analisa Kebutuhan Perangkat Keras dan Perangkat Lunak Analisa Proses Enkripsi Perancangan Flowchart Implementasi

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 PEMBAHASAN

3.1 Analisa Masukan

Masukan dari aplikasi enkripsi dengan algoritma twofish adalah adalah plaintext dan kunci. Plaintext dapat berupa file teks,file grafik,file sound dan lain sebagainya. Kunci dimasukkan secara manual setelah proses input plaintext.

3.2 Analisa Kebutuhan Perangkat Keras dan Perangkat Lunak

Perangkat keras yang digunakan ketika menguji implementasi dari algoritma twofish ini adalah sebagai berikut : 1. Procesor Pentium IV 1,8D GHz 2. Memory 512 MB 3. Hard Disk 40 GB 4. OS Windows XP 5. Monitor Samsung 17’’ Sedangkan perangkat lunak yang digunakan adalah sebagai berikut : 1. Sistem Operasi Windows XP 2. Microsoft Visual Basic 6.0 3. Microsoft Visio 2003

3.3 Analisa Proses Enkripsi

Ukuran blok chipper simetries yang digunakan untuk enkripsi data pada algoritma Twofish adalah 128 bit. Tahap dalam enkripsi dengan menggunakan algoritma Twofish adalah : Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 1. Penjadwalan 2. Pembagian Plaintext dan proses subsitusi

3.4 Analisa Prosedural

Analisa prosedural merupakan analisa implementasi pada pemrograman sistem. Sistem yang dimaksud disini adalah analisa sistem pemograman enkripsi dengan menggunakan algoritma twofish.

3.4.1 Pembangkitan Kunci

Jumlah kunci internal yang harus dibangkitkan adalah sejumlah 40 kunci masing- masing 32 bit K hingga K 39 . Dan juga dibutuhkan pembangkitan 4 buah kotak substitusi dari yang bergantung pada kunci. Twofish dapat menerima kunci sepanjang 128, 192, dan 256 bit N. Kemudian terdefinisi k=N64. Kunci M terdiri dari 8k byte, m , ..., m 8k-1 . Byte- byte tersebut pertama-tama diubah menjadi 2k buah yang masing-masing terdiri dari 32 bit. Hasil fungsi diatas kemudian digolongkan menjadi dua buah, ganjil dan genap. M e = M , M 2 , ..., M 2k-2 M o = M 1 , M 3 , ..., M 2k-1 Selanjutnya adalah kotak S. Langkah pertama adalah dengan mengelompokkan kunci tersebut dikalikan dengan matriks 4x8 yang diturunkan dari RS. Setiap hasil sepanjang 4 byte duartikan sebagai satu buah 32 bit, menghasilkan kotak S. Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 Hasil keluaran tahap ini adalah 2 buah matriks, matriks M genap dan matriks M ganjil, dan sebuah matriks kotak substitusi. Adapun algoritma untuk membangkitan kunci adalah sebagai berikut Tahap I : Pada tahap pertama adalah pengujian ukuran kunci apakah sudah memenuhi syarat berikut pseudocode untuk menguji kunci : If KeyLength 192 Then ReDim Preserve Key31 KeyLength = 256 ElseIf KeyLength 128 Then ReDim Preserve Key23 KeyLength = 192 ElseIf KeyLength 64 Then ReDim Preserve Key15 KeyLength = 128 ElseIf KeyLength 32 Then ReDim Preserve Key7 KeyLength = 64 Else ReDim Preserve Key3 KeyLength = 32 End I Tahap II : Pada tahap kedua adalah pembentukan kunci yang tergantung pada S-box pseudocodenya adalah: Private Static Sub KeyCreateK As Byte, KeyLength As Long Dim i As Long Dim lA As Long Dim lB As Long Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 Dim b3 As Byte Dim k64Cnt As Long Dim k32e3 As Long Dim k32o3 As Long Dim subkeyCnt As Long Dim sBoxKey3 As Long Dim Key0 To 3, 0 To 3 As Byte Const SK_STEP = H2020202 Const SK_BUMP = H1010101 Const SK_ROTL = 9 k64Cnt = KeyLength \ 8 subkeyCnt = ROUND_SUBKEYS + 2 ROUNDS For i = 0 To IIfKeyLength 32, KeyLength \ 8 - 1, 3 Call CopyMemk32ei, Ki 8, 4 Call CopyMemk32oi, Ki 8 + 4, 4 sBoxKeyKeyLength \ 8 - 1 - i = RS_RemRS_RemRS_RemRS_RemRS_RemRS_RemRS_RemRS_Remk32oi Xor k32ei Next ReDim sKeysubkeyCnt For i = 0 To subkeyCnt 2 - 1 lA = F32k64Cnt, i SK_STEP, k32e lB = F32k64Cnt, i SK_STEP + SK_BUMP, k32o lB = lBSLlB, 8 Or lBSRUlB, 24 If m_RunningCompiled Then lA = lA + lB Else lA = UnsignedAddlA, lB End If sKey2 i = lA If m_RunningCompiled Then lA = lA + lB Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 Else lA = UnsignedAddlA, lB End If sKey2 i + 1 = lBSLlA, SK_ROTL Or lBSRUlA, 32 - SK_ROTL Next Call CopyMemKey0, 0, sBoxKey0, 16 For i = 0 To 255 If k64Cnt And 3 = 1 Then sBox2 i = MDS0, P0, i Xor Key0, 0 sBox2 i + 1 = MDS1, P0, i Xor Key1, 0 sBoxH200 + 2 i = MDS2, P1, i Xor Key2, 0 sBoxH200 + 2 i + 1 = MDS3, P1, i Xor Key3, 0 Else b0 = i b1 = i b2 = i b3 = i If k64Cnt And 3 = 0 Then b0 = P1, b0 Xor Key0, 3 b1 = P0, b1 Xor Key1, 3 b2 = P0, b2 Xor Key2, 3 b3 = P1, b3 Xor Key3, 3 End If If k64Cnt And 3 = 3 Or k64Cnt And 3 = 0 Then exception = True Then b0 = P1, b0 Xor Key0, 2 b1 = P1, b1 Xor Key1, 2 b2 = P0, b2 Xor Key2, 2 b3 = P0, b3 Xor Key3, 2 End If sBox2 i = MDS0, P0, P0, b0 Xor Key0, 1 Xor Key0, 0 Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 sBox2 i + 1 = MDS1, P0, P1, b1 Xor Key1, 1 Xor Key1, 0 sBoxH200 + 2 i = MDS2, P1, P0, b2 Xor Key2, 1 Xor Key2, 0 sBoxH200 + 2 i + 1 = MDS3, P1, P1, b3 Xor Key3, 1 Xor Key3, 0 End If Next End Sub

3.4.2 Pembagian Plaintext

Plainteks dibagi menjadi beberapa blok, setiap blok P1,…. memiliki panjang 128 bit, kemudian setiap blok dibagi menjadi 4 bagian K K 1 , K 2 , K 3 . Selanjutnya masing-masing bagian diolah dengan menggunakan proses whitening masukan terdapat di xor dengan empat kata kunci. Proses ini akan diikuti oleh enam belas putaran. Adapun pseudocode pada pembagian plaintext adalah sebagai berikut : 1. Panggil GetWordLeftWord, ByteArray, Offset 2. Panggil GetWordLeftWord, ByteArray, Offset + 4 Pseudocode untuk fungsi GetWord adalah sebagai berikut: 1. CryptBuffer3 = bbOffset 2. CryptBuffer2 = bbOffset + 1 3. CryptBuffer1 = bbOffset + 2 4. CryptBuffer0 = bbOffset + 3 5. Panggil CopyMemLongValue, CryptBuffer0,4 Untuk pengembalian nilainya, data kiri ataupun kanan akan dipisah kembali menjadi 4 bilangan masing-masing 8 bit. Pseudocodenya sebagai berikut: 1. Panggil PutWordLeftWord, ByteWord, Offset Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 2. Panggil PutWordLeftWord, ByteWord, Offset + 4 Pseudocode untuk fungsi PutWord adalah sebagai berikut: 1. Panggil CopyMemCryptBuffer0, LongValue, 4 2. aByteOffset = CryptBuffer3 3. aByteOffset + 1 = CryptBuffer2 4. aByteOffset + 2 = CryptBuffer1 5. aByteOffset + 3 = CryptBuffer0

3.4.3 Proses Subtitusi

Setelah dibentuk subkey, dilanjutkan dengan melakukan enkripsi plaintext sebanyak 16 putaran dengan operasi: Li = Ri-1 Ri = Li-1 xor fRi-1,Ki Adapun pseudocode untuk proses subtitusi adalah sebagai berikut : For Offset = 0 To CipherLen - 1 Step 16 Call CopyMemDWord0, ByteArrayOffset, 16 DWord0 = DWord0 Xor CipherWord0 DWord1 = DWord1 Xor CipherWord1 DWord2 = DWord2 Xor CipherWord2 DWord3 = DWord3 Xor CipherWord3 Call EncryptBlockDWord Call CopyMemByteArrayOffset, DWord0, 16 Call CopyMemCipherWord0, DWord0, 16 Next Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.5 Perancangan Flowchart

Adapun flowchart dari program enkripsi dan deksripsi adalah sebagai berikut: Gambar 3.1 Flowchart Aplikasi EnkripsiDekripsi Algoritma Twofish Mulai Tampilan Form Utama Selesai Enkripsi Input File Masukkan Kunci Enkripsi Dekripsi Tampilkan Hasil Dekripsi Y T T Y T T Y Y Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.6 Implementasi

Implementasi dari algoritma twofish dibuat dengan menggunakan bahasa pemograman Visual Basic 6.0. Berikut tampilan dari implementasi algoritma Twofish. Aplikasi ini terdiri dari 2 tab yaitu enkripsi, dekripsi. Gambar 3.2 Form Tab Enkripsi Tab berisi nama file yang akan di ekripsi. Untuk memasukkan nama file yang dienkripsi dapat mengklik tombol buka. Untuk pengisian kunci, isi kunci pada isian pertama dan ulangi sekali lagi. Untuk mengenkrpi file terpilih klik tombol enkrip. Untuk melihat hasil dari file yang telah di enkripsi, file tersebut dapat dilihat menggunakan notepad. Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009 Gambar 3.3 Hasil Enkripsi Sedangkan untuk proses dekripsi, pilih tab dekripsi, cara penggunaan sama dengan tab enkripsi . Berikut tampilan dari tab dekripsi. Gambar 3.4 Fom Tab Dekrips Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.7 Percobaan Enkripsi dan Dekripsi