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