STUDI MENGENAI ALGORITMA SIMETRI CAST-128 DAN APLIKASINYA oleh Ade Gunawan 13504049 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Oktober 2006
Abstrak Pada era teknologi informasi ini, keamanan (security) dalam pengiriman pesan adalah hal yang sangat penting dan tidak dapat diabaikan. Lebih-lebih jika pesan yang dikirim bersifat penting dan rahasia. Oleh karena itu, proposal ini mengajukan bahasan tentang salah satu algoritma simetri, yaitu CAST-128. Nama CAST adalah singkatan dari Carsisle Adams and Stafford Tavares, penemu dari CAST. Selanjutnya, CAST-128 dimiliki oleh Entrust Technologies. CAST-128 adalah sebuah algoritma kriptografi yang dikatakan mirip dengan algoritma DES dimana menggunakan enam belas putaran jaringan feistel sebagai salah satu kekuatannya. CAST-128 menggunakan panjang blok 64 bit dan panjang kunci sampai 128 bit. Sebagai informasi, algoritma CAST128 ini disebut sebagai salah satu algoritma kriptografi yang kuat terhadap berbagai macam kriptanalisis, termasuk differential dan linear attack. Oleh karena itu, tidak salah jika dikatakan bahwa CAST-128 dapat menjadi kandidat kuat untuk pemakaian enkripsi untuk keamanan komunitas internet. Makalah ini juga akan membahas contoh aplikasi CAST-128, seperti enkripsi data pada telnet. Tujuan dari penelitian ini adalah untuk mengetahui secara rinci algoritma CAST-128. Penulis juga akan membahas aplikasinya, contohnya enkripsi data pada telnet. Diharapkan bahasan dapat memberikan informasi penting bagi pembaca. Penulis juga akan menyertakan alasan mengapa algoritma ini tahan terhadap berbagai macam kriptanalisis. Tidak hanya itu, penulis juga berharap informasi yang penulis paparkan dapat digunakan untuk membangun suatu aplikasi sehingga dapat membantu keamanan pengiriman datanya. Penulis mendapatkan data dari studi literatur, kemudian data tersebut dianalisis untuk mendapatkan suatu simpulan. Simpulan dari penelitian ini adalah Rincian mengenai algoritma simetri CAST-128, contoh aplikasinya, serta alasan ketahanan algoritma ini terhadap berbagai macam kriptanalisis.
simetri (symmetric-key cryptography), sedangkan algoritma kriptografinya disebut algoritma simetri atau algoritma konvensional.
1. Pendahuluan 1. 1. Latar Belakang
Berdadarkan hal tersebut, penulis tertarik dengan salah satu algoritma simetri, yaitu CAST-128. Penulis tidak hanya tertarik pada algoritmanya saja, tapi penulis juga tertarik pada aplikasinya, contohnya enkripsi data pada telnet. Algoritma CAST-128 ini disebut sebagai salah satu algoritma kriptografi yang kuat terhadap berbagai macam kriptanalisis.
Keamanan (security) dalam pengiriman pesan adalah hal yang sangat penting dan tidak dapat diabaikan. Lebih-lebih jika pesan yang dikirim bersifat penting dan rahasia. Tentunya baik pengirim dan penerima tidak ingin pesan mereka diketahui atau bahkan diubah oleh orang lain yang tidak berhak. Oleh karena itu, dikembangkanlah kriptografi, yaitu ilmu dan seni untuk menjaga keamanan pesan (message). Jika kunci enkripsi sama dengan kunci dekripsi, maka kriptografinya dinamakan kriptografi kunci-
Tujuan dari penelitian ini adalah untuk mengetahui secara rinci algoritma CAST-128. Penulis juga akan membahas aplikasinya,
1
contohnya enkripsi data pada telnet. Diharapkan bahasan dapat memberikan informasi penting bagi pembaca. Penulis juga akan menyertakan alasan mengapa algoritma ini tahan terhadap berbagai macam kriptanalisis. Tidak hanya itu, penulis juga berharap informasi yang penulis paparkan dapat digunakan untuk membangun suatu aplikasi sehingga dapat membantu keamanan pengiriman datanya.
2. Landasan Teori 2. 1. Kriptografi 2. 1. 1. Definisi •
1. 2. Rumusan Masalah •
Berdasarkan latar belakang di atas, rumusan masalah yang penulis kemukakan adalah: 1. Penjelasan rinci mengenai algoritma simetri CAST-128. 2. Contoh aplikasi dari algoritma simetri CAST-128. 3. Ketahanan algoritma simetri CAST-128 terhadap serangan kriptanalisis.
Definisi lama: Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maksudnya. Definisi batu: Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).
2. 1. 2. Algoritma Kriptografi Algoritma kriptografi adalah: • Aturan untuk mengenkripsi dan mendekripsi. • Fungsi matematika yang digunakan untuk enkripsi dan dekripsi.
1. 3. Batasan Masalah
Keterangan: • Enkripsi: Proses transformasi plainteks menjadi cipherteks. • Dekripsi: Proses transformasi cipherteks menjadi plainteks. • Plainteks: Pesan yang dapat dibaca secara langsung. • Cipherteks: Pesan yang tidak dapat dibaca secara langsung.
Untuk menjawab rumusan masalah yang dikemukakan, akan penulis kaji hal-hal berikut ini: 1. Penjelasan rinci mengenai algoritma simetri CAST-128 mulai dari proses enkripsi plainteks sampai dekripsi sehingga didapat plainteks yang sama. 2. Contoh aplikasi dari algoritma simetri CAST-128, contohnya telnet. 3. Ketahanan algoritma simetri CAST-128 terhadap berbagai macam serangan kriptanalisis. 4. Penulis tidak sampai membahas perancangan aplikasi dari algoritma simetri CAST-128, tapi diharapkan penjelasan algoritma ini dapat membatu perancangan suatu aplikasi tertentu.
Baik proses enkripsi maupun dekripsi membutuhkan sebuah parameter yang disebut kunci. Algoritma kriptografi tidak perlu dirahasiakan, tapi kunci harus dirahasiakan sehingga hanya orang yang berhak saja yang mampu membaca pesan. Skema enkripsi dan dekripsi dapat dilihat pada gambar 1 di bawah ini:
1. 4. Metode dan Teknik Pengumpulan Data Metode yang digunakan dalam penelitian ini adalah deskriptif analitis. Tahap pertama dari deskriptif analitis adalah mendeskripsikan data dan informasi yang diperoleh (dari literatur). Kemudian dari data dan informasi yang diperoleh tersebut, akan penulis analisis sehingga menghasilkan suatu simpulan. Untuk mendukung metode yang telah penulis kemukakan di atas, teknik pengumpulan data yang penulis gunakan adalah: studi literatur.
Gambar 1 Skema Enkripsi dan Dekripsi 1. 1. 3. Kriptografi Kunci Simetri / Nirsimetri Berdasarkan kunci yang digunakan enkripsi dan dekripsi, kriptografi dibedakan menjadi dua, yaitu:
2
untuk dapat
1.
2.
Kriptografi kunci simetri. Kriptografi kunci simetri adalah kriptografi yang kunci enkripsinya sama dengan kunci dekripsinya, sedangkan algoritma kriptografinya disebut algoritma simetri atau algoritma konvensional. Kriptografi kunci nirsimetri. Kriptografi kunci nirsimetri adalah kriptografi yang kunci enkripsinya tidak sama / berbeda dengan kunci dekripsinya, sedangkan algoritmanya kriptografinya disebut algoritma nirsimetri atau algoritma kunci-publik.
Gambar 2 Skema cipher block Dari gambar di atas, dapat dilihat bahwa pada cipher blok, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama (m). Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci (yang ukurannya sama dengan blok plainteks). Algoritma enkripsi menghasilkan blok cipherteks yang berukuran sama dengan blok plainteks. Dekripsi dilakukan dengan cara yang serupa seperti enkripsi.
2. 1. 3. Algoritma Kriptografi Modern Penggunaan komputer digital yang merepresentasikan data dalam bentuk biner mendorong perkembangan algoritma kriptografi modern berbasis bit. Oleh karena itu, algoritma kriptografi modern umumnya beroperasi dalam mode bit daripada mode karakter. Operasi dalam mode bit memungkinkan enkripsi dan dekripsi dalam bentuk rangkaian (string) bit biner (0 dan 1).
Misalkan blok plainteks (P) yang berukuran m bit dinyatakan sebagai vektor P = (p1, p2, ..., pm) yang dalam hal ini pi adalah bit 0 atau bit 1 untuk i = 1, 2, …, m, dan blok cipherteks (C) adalah
2. 2. Tipe dan Mode Algoritma Simetri 2. 2. 1. Stream Cipher / Block Cipher
C = (c1, c2, ..., cm)
Algoritma simetri berbasis bit dapat dibagi menjadi dua macam, yaitu: 1. Cipher aliran (stream cipher). Stream cipher adalah algoritma yang beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, sehingga rangkaian bit dienkripsikan / didedripsikan bit per bit. 2.
yang dalam hal ini ci adalah bit 0 atau bit 1 untuk i = 1, 2, …, m. Bila plainteks dibagi menjadi n buah blok, barisan blok-blok plainteks dinyatakan sebagai (P1, P2, …, Pn) Untuk setiap blok plainteks Pi, bit-bit penyusunnya dapat dinyatakan sebagai vektor
Cipher blok (block cipher). Block cipher adalah algoritma beroperasi pada plainteks/cipherteks dalam bentuk blok bit, sehingga rangkaian bit dibagi menjadi blok-blok sama panjang dan dienkripsikan / didedripsikan blok per blok. Skema cipher blok dapat dilihat pada gambar 2.
Pi = (pi1, pi2, ..., pim) Enkripsi dengan kunci K dinyatakan dengan persamaan Ek(P) = C, sedangkan dekripsi dengan kunci K dinyatakan dengan persamaan Dk(C) = P
3
Ci = Ek(Pi⊕Ci-1)
2. 2. 2. Mode Block Cipher Beberapa operasi dapat diterapkan untuk melakukan enkripsi terhadap keseluruhan blok plainteks. Empat mode operasi yang lazim digunakan pada system block cipher antara lain: 1. Electronic Code Book (ECB). 2. Cipher Block Chaining (CBC). 3. Cipher Feedback (CFB). 4. Outout-Feedback (OFB).
(Enkripsi)
dan dekripsi sebagai: Pi = Dk(Ci) ⊕Ci-1
(Dekripsi)
Dalam hal ini, Pi dan Ci masing-masing blok plainteks dan cipherteks ke-i. Skema enkripsi dan dekripsi dengan mode CBC dapat dilihat pada Gambar 4.
2. 2. 3. Electronic Code Book (ECB) Pada mode ini, masing-masing blok plainteks Pi dienkripsi secara individual dan independen menjadi blok cipherteks Ci. Secara matematis, enkripsi dengan mode ECB dinyatakan sebagai: Ci = Ek(Pi)
(Enkripsi)
dan dekripsi sebagai: Pi = Dk(Ci)
(Dekripsi) Gambar 4 SkemaCipher Block Chaining
Dalam hal ini, Pi dan Ci masing-masing blok plainteks dan cipherteks ke-i. Skema enkripsi dan dekripsi dengan mode ECB dapat dilihat pada Gambar 3.
Dengan mode CBC, setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya, tapi juga pada seluruh blok plainteks sebelumnya. Hal lain yang penting adalah C0 yang merupakan initialization vector (IV) yang dibangkitkan secara pseudo-random (acak semu). IV digunakan untuk menggantikan blok cipherteks ke-0 yang digunakan untuk menghasilkan bok cipherteks pertama (Ci). IV tidak perlu dirahasiakan, tetapi harus unik untuk setiap pesan. Jika IV yang dipakai sama untuk setiap pesan yang berbeda, akan menghasilkan keystream ki yang sama.
Gambar 3 Skema Electronic Code Book 2. 2. 4. Cipher Block Chaining (CBC)
2. 2. 5. Cipher Feedback (CFB) Pada mode ini, hasil enkripsi blok sebelumnya di umpan-balikkan ke dalam enkripsi blok yang sedang di proses (current), dengan cara mengXOR kan terlebih dahulu blok plainteks yang current dengan blok cipherteks yang sebelumnya. Setelah itu, hasil peng-XOR-an ini masuk ke dalam fungsi enkripsi. Dekripsi dilakukan dengan memasukkan blok cipherteks yang current ke fungsi dekripsi kemudian mengXOR-kan hasilnya dengan blok cipherteks sebelumnya. Secara matematis, enkripsi dengan mode CBC dinyatakan sebagai:
Secara umum, CFB n-bit mengenkripsi plainteks sebanyak n bit setiap kalinya, dimana n<=m (m=ukuran blok). Dengan kata lain, CFB mengenkripsikan cipher blok seperti pada cipher aliran. Mode CFB membutuhkan sebuah antrian (queue) yang berukuran sama dengan blok masukan. Tinjau mode CFB n-bit yang bekerja pada blok berukuran m-bit. Algoritma enkripsi dengan mode CFB adalah sebagai berikut: 1. Antrian diisi dengan IV (initialization vector).
4
2.
3.
4.
|| = operator penyambungan (concatenation) MSB = Most Significant Byte LSB = Least Significant Byte
Enkripsikan antrian dengan kunci K. n bit paling kiri dari hasil enkripsi berlaku sebagai keystream (ki) yang kemudian di-XOR-kan dengan n-bit dari plainteks menjadi n-bit pertama dari cipherteks. Salinan (copy) n-bit dari cipherteks ini dimasukkan ke dalam antrian (menempati n posisi bit paling kanan antrian), dan semua m-n bit lainnya di dalam antrian digeser ke kiri menggantikan n bit pertama yang sudah digunakan. m-n bit plainteks berikutnya dienkripsikan dengan cara yang sama seperti pada langkah 2. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi. Sebagai catatan, baik enkripsi maupun dekripsi, algoritma E dan D yang digunakan sama.
Jika m=n, mode CFB n-bit adalah seperti gambar berikut: Pi-1
Pi
Pi+1
Ek
Ci-1
Ek
Ci
Ci+1
Enkripsi CFB Ci-1
Ci+1
Ci
Dk
Gambar 5 di bawah ini akan memperjelas proses enkripsi dan dekripsi mode CFB n-bit. Pi-1
Dk
Pi Dekripsi CFB
Pi+1
Catatan: Algoritma E = Algoritma D
Gambar 6 Skema Cipher Feedback n-bit untuk blok n bit Seperti pada CBC, CFB juga menggunakan skema umpan-balik dengan mengaitkan blok plainteks bersama-sama sedemikian sehingga cipherteks bergantung pada semua blok plainteks sebelumnya. Namun, CFB memproses dahulu cipherteks sebelumnya dengan fungsi enkripsi, baru setelah itu hasilnya di-XOR-kan dengan plainteks yang current. Proses dekripsi juga memasukkan cipherteks sebelumnya ke fungsi dekripsi, lalu meng-XOR-kan hasilnya dengan cipherteks yang current. Dari gambar 6 dapat dilihat bahwa:
Gambar 5 Mode CFB n-bit Secara formal, enkripsi mode CFB n-bit dapat dinyatakan sebagai berikut: Ci = Pi ⊕ MSBm(Ek(Xi)) Xi+1 = LSBm-n(Xi) || Ci dan dekripsi sebagai berikut: Pi = Ci ⊕ MSBm(Dk(Xi)) Xi+1 = LSBm-n(Xi) || Ci
Ci = Pi⊕Ek(Ci-1) Pi = Ci⊕Dk(Ci-1)
yang dalam hal ini: Xi = isi antrian dengan Xi adalah IV E = fungsi enkripsi dengan algoritma cipher blok D = fungsi dekripsi dengan algoritma cipher blok K = kunci m = panjang blok enkripsi/dekripsi n = panjang unit enkripsi/dekripsi
(Enkripsi) (Dekripsi)
Dalam hal ini, Pi dan Ci masing-masing blok plainteks dan cipherteks ke-i, dan C0 adalah initialization vector (IV). Dengan mode CFB, setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya, tapi juga pada seluruh blok
5
2. 2. 6. Output-Feedback (OFB) Mode OFB mirip dengan mode CFB, hanya saja n-bit dari hasil enkripsi terhadap antrian disalin menjadi elemen posisi paling kanan di antrian. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi. Gambar 7 akan memperjelas mode OFB n-bit yang bekerja pada blok berukuran mbit.
Gambar 8 Enkripsi dan Dekripsi OFB n-bit untuk blok n-bit
Gambar 7 Mode OFB n-bit Secara formal, mode OFB n-bit dapat dinyatakan sebagai:
2. 3 Jaringan Feistel (Feistel Network)
Proses Enkripsi: Ci = Pi ⊕ MSBm(Ek(Xi)) Xi+1 = LSBm-n(Xi) || LSBn(Ek(Xi))
Model jaringan feistel: 1. Bagi blok dengan panjang n bit menjadi dua bagian yang sama, kiri(L), dan kanan(R). Syaratnya, panjang n harus genap sehingga panjang L dan R sama yaitu n/2. 2. Definisikan cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari hasil putaran sebelumnya, yaitu:
B
Proses Dekripsi: Pi = Ci ⊕ MSBm(Dk(Xi)) Xi+1 = LSBm-n(Xi) || LSBn(Ek(Xi)) B
yang dalam hal ini: Xi = isi antrian dengan Xi adalah IV E = fungsi enkripsi dengan algoritma cipher blok D = fungsi dekripsi dengan algoritma cipher blok K = kunci m = panjang blok enkripsi/dekripsi n = panjang unit enkripsi/dekripsi || = operator penyambungan (concatenation) MSB = Most Significant Byte LSB = Least Significant Byte
Li = Ri-1 Ri = Li-1⊕f(Ri-1, Ki) Dalam hal ini, i adalah bilangan bulat 1..r dimana r adalah jumlah putaran. Ki adalah upa-kunci (subkey) pada putaran ke-i. Sedangkan f adalah fungsi transformasi. Sebagai catatan, gabungan L0 dan R0 adalah plainteks, sedangkan cipherteks didapatkan setelah L dan R hasil putaran terakhir dipertukarkan (Rr, Lr).
Jika m=n, mode OFB n-bit akan tampak seperti gambar dibawah ini:
Jaringan feistel bersifat reversible karena operator XOR mengkombinasikan setengah bagian kiri dengan hasil dari fungsi transformasi f, sehingga: Li-1⊕f(Ri-1, Ki)⊕f(Ri-1, Ki)= Li-1
6
Keluaran: Cipherteks c1..c64. Blok cipherteks sepanjang 64 bit.
Sifat reversible ini tidak bergantung pada f, sehingga tidak perlu membuat algoritma baru untuk mendekripsi cipherteks.
Langkah-langkah: 1. Penjadwalan kunci: Menentukan enam belas pasang upakunci (subkey) dari masukan pengguna. 2. Bagi blok menjadi dua bagian: 64 bit blok plainteks dibagi menjadi dua bagian yang sama, yaitu bagian kiri dan bagian kanan dengan panjang 32 bit. 3. Enam belas putaran feistel: Lihat bagian 2. 3 Jaringan Feistel untuk rincian mengenai jaringan tersebut. 4. Konkatenasi untuk membentuk cipherteks: Tukarkan bagian kiri dengan bagian kanan blok di putaran terakhir. Setelah itu, kedua bagian digabungkan menjadi satu dan menjadi cipherteks.
Gambar 9 Skema Jaringan Feistel
2. 4 Kotak-S (S-box) Kotak-S adalah matriks yang berisi subtitusi sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit lainya. Pada kebanyakan algoritma cipher blok, kotak-S memetakan m bit masukan menjadi n bit keluaran, sehingga kotak-S tersebut dinamakan kotak m x n S-box. Kotak-S merupakan satusatunya langkah nirlanjar di dalam algoritma, karena operasinya adalah look-up table. Masukan dari operasi look-up table dijadikan sebagai indeks kotak-S dan keluarannya adalah entry di dalam kotak-S. Perancangan kotak-S menjadi isu penting karena kotak-S harus dirancang sedemikian sehingga kekuatan kriptografinya bagus dan mudah diimplementasikan.
Langkah-langkah dekripsi identik dengan langkah-langkah algoritma enkripsi yang baru saja dibahas. Hanya saja, urutan jadwal kunci yang digunakan pada keenam belas putaran dibalik. Jadi, kunci terakhir akan digunakan pada putaran pertama, dan seterusnya sampai kunci pertama digunakan pada putaran terakhir.
3. 2. Kotak-S (S-box) CAST-128 menggunakan delapan 8 x 32 S-box: S-box S1, S2, S3, dan S4 adalah S-box fungsi putaran, sedangkan empat sisanya: S5, S6, S7, dan S8 adalah S-box jadwal kunci. Karena S-box adalah kotak 8 x 32, kotak ini akan menerima 8 bit masukan dan mengeluarkan 32 bit keluaran. Kedelapan S-box tersebut dapat dilihat di bagian lampiran.
3. CAST-128 3. 1. Gambaran sederhana algoritma CAST-128
3. 3. Pembangkitan Kunci Internal Karena CAST-128 menggunakan enambelas putaran feistel, dimana setiap putarannya, CAST128 membutuhkan sepasang kunci internal, tentunya dibutuhkan kunci sebanyak 32 buah, yaitu enam belas buah (Km1..Km16) dan enam belas buah (Km1..Km16). Enam belas kunci Km1..Km16 digunakan untuk masking di setiap putaran, sedangkan Kr1..Kr16 digunakan untuk kunci rotasi. KunciKunci internal ini dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Jadi, Dari kunci eksternal yang panjangnya 128 bit, dibentuk enam belas pasang kunci internal, yaitu pasangan 32 bit kunci
CAST-128 termasuk kelas algoritma enkripsi yang menggunakan jaringan feistel. Secara umum, algoritma ini juga mirip dengan algoritma Data Encryption Standard (DES). Berikut ini langkah-langkah secara garis besar dari fungsi enkripsi dalam algoritma CAST-128: Masukan: 1. Plainteks p1..p64. Blok plainteks sepanjang 64 bit. 2. Kunci K=k1..k128. Kunci sepanjang 128 bit.
7
z8z9zAzB=xCxDxExF^S5[z7]^S6[z6]^ S7[z5]^S8[z4]^S5[x9] zCzDzEzF=x4x5x6x7^S5[zA]^S6[z9]^ S7[zB]^S8[z8]^S6[xB] K9=S5[z3]^S6[z2]^S7[zC]^S8[zD]^ S5[z9] K10=S5[z1]^S6[z0]^S7[zE]^S8[zF]^ S6[zC] K11=S5[z7]^S6[z6]^S7[z8]^S8[z9]^ S7[z2] K12=S5[z5]^S6[z4]^S7[zA]^S8[zB]^ S8[z6] x0x1x2x3=z8z9zAzB^S5[z5]^S6[z7]^ S7[z4]^S8[z6]^S7[z0] x4x5x6x7=z0z1z2z3^S5[x0]^S6[x2]^ S7[x1]^S8[x3]^S8[z2] x8x9xAxB=z4z5z6z7^S5[x7]^S6[x6]^ S7[x5]^S8[x4]^S5[z1] xCxDxExF=zCzDzEzF^S5[xA]^S6[x9]^ S7[xB]^S8[x8]^S6[z3] K13=S5[x8]^S6[x9]^S7[x7]^S8[x6]^ S5[x3] K14=S5[xA]^S6[xB]^S7[x5]^S8[x4]^ S6[x7] K15=S5[xC]^S6[xD]^S7[x3]^S8[x2]^ S7[x8] K16=S5[xE]^S6[xF]^S7[x1]^S8[x0]^ S8[xD]
masking dan 5 bit kunci rotasi. Algoritma pembangkitan kunci internal diberikan dengan asumsi sebagain berikut: Dimisalkan Kunci eksternal sepanjang 128 bit dibagi menjadi 16 bytes upakunci, yaitu: x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF, Dimana x0 menunjukkan most significant byte (MSB) dan xF menunjukkan least significant byte (LSB). Selain itu, digunakan z0..zF yang merupakan temporary byte untuk penyimpanan byte sementara. Digunakan juga Si[] yang merepresentasikan sbox ke-i Sebagai catatan, "^" merepresentasikan operasi XOR. Algoritma pembangkitan kunci internal diberikan sebagai berikut: z0z1z2z3=x0x1x2x3^S5[xD]^S6[xF]^ S7[xC]^S8[xE]^S7[x8] z4z5z6z7=x8x9xAxB^S5[z0]^S6[z2]^ S7[z1]^S8[z3]^S8[xA] z8z9zAzB=xCxDxExF^S5[z7]^S6[z6]^ S7[z5]^S8[z4]^S5[x9] zCzDzEzF=x4x5x6x7^S5[zA]^S6[z9]^ S7[zB]^S8[z8]^S6[xB] K1=S5[z8]^S6[z9]^S7[z7]^S8[z6]^ S5[z2] K2=S5[zA]^S6[zB]^S7[z5]^S8[z4]^ S6[z6] K3=S5[zC]^S6[zD]^S7[z3]^S8[z2]^ S7[z9] K4=S5[zE]^S6[zF]^S7[z1]^S8[z0]^ S8[zC] x0x1x2x3=z8z9zAzB^S5[z5]^S6[z7]^ S7[z4]^S8[z6]^S7[z0] x4x5x6x7=z0z1z2z3 ^ S5[x0] ^ S6[x2] ^ S7[x1] ^ S8[x3] ^ S8[z2] x8x9xAxB=z4z5z6z7^S5[x7]^S6[x6]^ S7[x5]^S8[x4]^S5[z1] xCxDxExF=zCzDzEzF^S5[xA]^S6[x9]^ S7[xB]^S8[x8]^S6[z3] K5=S5[x3]^S6[x2]^S7[xC]^S8[xD]^ S5[x8] K6=S5[x1]^S6[x0]^S7[xE]^S8[xF]^ S6[xD] K7=S5[x7]^S6[x6]^S7[x8]^S8[x9]^ S7[x3] K8=S5[x5]^S6[x4]^S7[xA]^S8[xB]^ S8[x7] z0z1z2z3=x0x1x2x3^S5[xD]^S6[xF]^ S7[xC]^S8[xE]^S7[x8] z4z5z6z7=x8x9xAxB^S5[z0]^S6[z2]^ S7[z1]^S8[z3]^S8[xA]
Setengah bagian siasanya identik dengan setengah bagian algoritma si atas dengan meneruskan x0..xF yang terakhir untuk membangkitkan K17..32. z0z1z2z3=x0x1x2x3^S5[xD]^S6[xF]^S 7[xC]^S8[xE]^S7[x8] z4z5z6z7=x8x9xAxB^S5[z0]^S6[z2]^S 7[z1]^S8[z3]^S8[xA] z8z9zAzB=xCxDxExF^S5[z7]^S6[z6]^S 7[z5]^S8[z4]^S5[x9] zCzDzEzF=x4x5x6x7^S5[zA]^S6[z9]^S 7[zB]^S8[z8]^S6[xB] K17=S5[z8]^S6[z9]^S7[z7]^S8[z6]^S 5[z2] K18=S5[zA]^S6[zB]^S7[z5]^S8[z4]^S 6[z6] K19=S5[zC]^S6[zD]^S7[z3]^S8[z2]^S 7[z9] K20=S5[zE]^S6[zF]^S7[z1]^S8[z0]^S 8[zC] x0x1x2x3=z8z9zAzB^S5[z5]^S6[z7]^S 7[z4]^S8[z6]^S7[z0] x4x5x6x7=z0z1z2z3^S5[x0]^S6[x2]^S 7[x1]^S8[x3]^S8[z2] x8x9xAxB=z4z5z6z7^S5[x7]^S6[x6]^S 7[x5]^S8[x4]^S5[z1]
8
xCxDxExF=zCzDzEzF^S5[xA]^S6[x9]^S 7[xB]^S8[x8]^S6[z3] K21=S5[x3]^S6[x2]^S7[xC]^S8[xD]^S 5[x8] K22=S5[x1]^S6[x0]^S7[xE]^S8[xF]^S 6[xD] K23=S5[x7]^S6[x6]^S7[x8]^S8[x9]^S 7[x3] K24=S5[x5]^S6[x4]^S7[xA]^S8[xB]^S 8[x7] z0z1z2z3=x0x1x2x3^S5[xD]^S6[xF]^S 7[xC]^S8[xE]^S7[x8] z4z5z6z7=x8x9xAxB^S5[z0]^S6[z2]^S 7[z1]^S8[z3]^S8[xA] z8z9zAzB=xCxDxExF^S5[z7]^S6[z6]^S 7[z5]^S8[z4]^S5[x9] zCzDzEzF=x4x5x6x7^S5[zA]^S6[z9]^S 7[zB]^S8[z8]^S6[xB] K25=S5[z3]^S6[z2]^S7[zC]^S8[zD]^S 5[z9] K26=S5[z1]^S6[z0]^S7[zE]^S8[zF]^S 6[zC] K27=S5[z7]^S6[z6]^S7[z8]^S8[z9]^S 7[z2] K28=S5[z5]^S6[z4]^S7[zA]^S8[zB]^S 8[z6] x0x1x2x3=z8z9zAzB^S5[z5]^S6[z7]^S 7[z4]^S8[z6]^S7[z0] x4x5x6x7=z0z1z2z3^S5[x0]^S6[x2]^S 7[x1]^S8[x3]^S8[z2] x8x9xAxB=z4z5z6z7^S5[x7]^S6[x6]^S 7[x5]^S8[x4]^S5[z1] xCxDxExF=zCzDzEzF^S5[xA]^S6[x9]^S 7[xB]^S8[x8]^S6[z3] K29=S5[x8]^S6[x9]^S7[x7]^S8[x6]^S 5[x3] K30=S5[xA]^S6[xB]^S7[x5]^S8[x4]^S 6[x7] K31=S5[xC]^S6[xD]^S7[x3]^S8[x2]^S 7[x8] K32=S5[xE]^S6[xF]^S7[x1]^S8[x0]^S 8[xD]
kunci per putaran pula). Untuk kunci rotasi, hanya 5 bit dari least significant byte yang digunakan. Algoritma penjadwalan kunci dberikan sebagai berikut: for (i=1; i<=16; i++) { Kmi = Ki; Kri = K16+i; }
Gambar 10 Putaran Feistel n Putaran Sesuai gambar 10 di halaman sebelumnya, jika n=16, yang berarti ada enam belas putaran feistel, akan diperlukan enam belas kunci, yaitu K1..K16. Dalam CAST-128 keenam belas kunci tersebut diisi dengan keenambelas pasang kunci yang telah dibangkitkan. Contohnya: K1 adalah sepasang kunci Km1 dan Kr1.
Dapat dilihat dari algoritma di atas bahwa. Pembangkitan kunci internal menggunakan operator XOR dan empat buah S-box yaitu S5, S6, S7, dan S8. Dengan algoritma ini didapat K1..K32, dimana penjadwalannya diberikan di bagian selanjutnya.
3. 5 Fungsi Enkripsi Dari enam belas putaran feistel yang digunakan, CAST-128 menggunakan tiga jenis putaran yang berbeda. Tiga jenis putaran tersebut dibedakan menurut tiga tipe fungsi enkripsi yang berbeda. Skema fungsi enkripsi yang digunakan diberikan di halaman selanjutnya:
3. 4 Penjadwalan Upakunci Dari K1..K32 yang dibangkitkan sebelumnya, enam belas kunci pertama akan digunakan untuk kunci masking (satu kunci per putaran) dan enam belas sisanya digunakan untuk kunci rotasi (satu
9
Tentunya, dari penjelasan di atas, yang menjadi pertanyaan adalah apa operasi a, b, c , dan d. Keempat operasi inilah yang berbeda di tiga jenis fungsi CAST. 1. Tipe 1 • Operasi a adalah penjumlahan bit modulo 232 dan penggeseran bit ke kiri (circular left-shift operation). Bit-bit masukan akan ditambahkan dengan Kmi (sesuai putaran ke-i) dan akan digeser ke kiri sebanyak Kri (sesuai putaran ke-i pula). • Operasi b adalah XOR. • Operasi c adalah pengurangan bit modulo 232. • Operasi d adalah penjumlahan bit modulo 232. 2. Tipe 2 • Operasi a adalah XOR dan penggeseran bit ke kiri (circular left-shift operation). Bit-bit masukan akan di-XOR-kan dengan Kmi (sesuai putaran ke-i) dan akan digeser ke kiri sebanyak Kri (sesuai putaran ke-i pula). • Operasi b adalah pengurangan bit modulo 232. • Operasi c adalah penjumlahan bit modulo 232. • Operasi d adalah XOR. 3. Tipe 3 • Operasi a adalah pengurangan bit modulo 232 dan penggeseran bit ke kiri (circular left-shift operation). Kmi (sesuai putaran ke-i) akan dikurangkan dengan bit-bit masukan dan akan digeser ke kiri sebanyak Kri (sesuai putaran ke-i pula). • Operasi b adalah penjumlahan bit modulo 232. • Operasi c adalah XOR. • Operasi d adalah pengurangan bit modulo 232.
Gambar 11 Fungsi CAST Gambar tersebut menunjukkan bahwa fungsi enkripsi CAST-128 menerima input 32 bit data half, yang didapatkan dari 64 bit blok yang telah dibagi dua pada saar masuk jaringan feistel. Lalu operasi a dilakukan pada 32 bit data masukan ini. Setelah operasi a dilakukan, hasilnya dibagi menjadi empat bagian dengan panjang yang sama (delapan bit). Delapan bit pertama akan menjadi input dari S-box 1 dan delapan bit kedua akan menjadi input dari S-box 2. Ingat bahwa karena S-box yang dipakai adalah kotak 8 x 32, dari 8 bit masukan akan dihasilkan 32 bit keluaran. Selanjutnya, Hasil dari kedua S-box tadi akan digabung dengan menggunakan operasi b. Setelah itu, hasil dari operasi b akan digabung dengan hasil dari S-box 3 dengan masukan delapan bit ketiga. Operasi yang digunakan kali ini adalah operasi c. Delapan bit terkahir akan menjadi masukan S-box keempat dan hasilnya akan digabung dengan hasil operasi c menggunakan operasi d. Hasil yang diperoleh dari seluruh fungsi ini adalah sepanjang 32 bit, sesuai dengan 32 bit masukan. Tiga puluh dua bit hasil ini akan kembali masuk ke putaran feistel.
Secara matematis ketiga tipe tersebut dinyatakan dengan: Type 1: I = ((Kmi + D) <<< Kri) f = ((S1[Ia] ^ S2[Ib]) - S3[Ic]) + S4[Id] Type 2: I = ((Kmi ^ D) <<< Kri) f = ((S1[Ia] - S2[Ib]) + S3[Ic]) ^ S4[Id] Type 3: I = ((Kmi - D) <<< Kri) f = ((S1[Ia] + S2[Ib]) ^ S3[Ic]) - S4[Id]
10
Dimana D adalah 32 bit data input, I adalah hasil operasi a terhadap D. I dibagi menjadi empat bagian sepanjang 8 bit la, lb, lc, dan ld terurut mulai dari most significant byte (MSB) sampai least significant byte (LSB). f adalah hasil fungsi enkripsi. Sebagai catatan, “+” dan “-”adalah penjumlahan dan pengurangan modulo 232, “^” adalah XOR, dan “<<<” adalah penggeseran bit ke kiri (circular left-shift operation). Untuk lebih jelasnya, diberikan gambar 12 dimana empat operasi a, b, c, dan d sudah diganti sesuai tipenya.
3. 6 Panjang Kunci dan Pengaruhnya Algoritma enkripsi CAST-128 didesain untuk mampu menerima berbagai macam panjang kunci yangn berbeda mulai dari 40 bit sampai denga 128 bit, dimana perbedaan antara nilai tersebut harus dalam kelipatan delapan. Jadi panjang kunci yang valid adalah: 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128 bit. Berdasarkan panjang kunci tersebut, ada perbedaan cara enkripsi pada CAST-128, yaitu: 1. Jika panjang kunci 40 bit sampai dengan 80 bit, algoritma yang digunakan sama persis, hanya saja digunakan hanya dua belas putaran feistel dari enam belas yang seharusnya. 2. Untuk panjang kunci lebih dari 80 bit, digunakan penuh algoritma yang telah diutarakan dengan enam belas putaran. 3. Untuk Kunci kurang dari 128 bit, kunci akan di padding dengan bit 0 di bagian kanan atau di bagian least significant byte sampai dicapai 128 bit kunci.
4. Keamanan dan Serangan Terhadap CAST-128 4. 1.
Prinsip Penyandian Shannon
Dua prinsip penyandian Shannon, confusion dan diffusion, tercapai dalam algoritma fungsi CAST ini. Confusion adalah prinsip yang menyembunyikan hubungan apapun yang ada antara plainteks, cipherteks, dan kunci. Confusion akan membuat kriptanalisis kesulitan untuk mencari pola-pola statistik yang muncul pada cipherteks, karena confusion akan membuat hubungan statistik antara plainteks, cipherteks, dan kunci menjadi sangat rumit. Confusion tercapai dalam CAST128 karena putaran feistel, tiga jenis fungsi enkripsi, dan subtitusi oleh S-box, membuat hubungan statistik antara plainteks, cipherteks, dan kunci menjadi sangat rumit
Gambar 12 Tiga Fungsi Enkripsi CAST-128 Jadwal pemakaian ketiga tipe fungsi tersebut dalam jaringan feistel diberikan di bawah ini: • Putaran 1, 4, 7, 10, 13, and 16 menggunakan fungsi tipe 1. • Putaran 2, 5, 8, 11, and 14 menggunakan fungsi tipe 2. • Putaran 3, 6, 9, 12, and 15 menggunakan fungsi tipe 3.
Diffusion adalah prinsip menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin cipherteks. Sebagai contoh, pengubahan kecil pada plainteks sebanyak satu atau dua bit mengahasilkan perubahan pada cipherteks yang tidak dapat diprediksi. Diffusion juga menyembunyikan hubungan statistik antara plainteks, cipherteks, dan kunci. Diffusion
11
tercapai dalam CAST128 karena memakai delapan buah S-box yang mendifusikan plainteks sehinggan hubungan statistiknya menjadi sangat rumit.
4. 1.
Pada pengiriman data dengan menggunakan telnet, pengirim akan membangkitkan dahulu initialization vector yang akan digunakan dan mengirimkannya dengan perintah CFB64_IV. IV dikirimkan dalam clear text. Setelah itu, penerima akan mengirimkan perintah CFB64_IV_OK setelah menerima IV. Setelah itu, pengirim harus menegosiasikan keyid dengan perintah ENC_KEYID. Setelah itu pengirim memasukkan perintah START and END. Data akan dienkripsikan menggunakan CAST-128 mode CBF 64 bit.
Differential dan Linear Attack
Differential Attack, atau biasa disebut ChosenPlaintext Attack, terjadi saat kriptanalisis memilih plainteks tertentu untuk dienkripsikan, yaitu plainteks-plainteks yang lebih mengarahkan penemuan kunci. Linear Attack, atau biasa disebut KnownPlaintext Attack, terjadi bila kriptanalisis mengetahui beberapa bagian plainteks dari cipherteks. Beberapa bagian tersebut dapat diterka biasanya dari format plainteks. Contohnya: bagian awal pada surat resmi biasanya dimulai dengan kata-kata “Dengan hormat”. Dari beberapa bagian cipherteks yang diketahui plainteksnya, dengan perhitungan, dapat dicari kunci dari enkripsinya.
5. 2. Cryptographic Message Syntax (CMS) Dalam CMS, CAST-128 adalah salah satu option dari banyak macam pilihan algoritma enkripsi. Dalam hal ini, dapat diterima kunci dengan panjang 40 sampai 128 bit dalam kelipatan delapan. Mode yang direkomendasikan adalah cipher block chaining (CBC).
Jumlah putaran yangn banyak pada jaringan feistel menyebabkan serangan ini jauh lebih banyak memakan waku dan biaya daripada exhaustive key search. Jumlah bit pada kunci sebanyak 128 bit saja sudah membuat exhaustive key search sangat lama dilakukan. Oleh karena itu, Differential dan Linear Attack akan membutuhkan waktu yang lebih lama lagi. Hanya saja, semakin banyaknya putaran pada jaringan feistel, akan membuat waktu enkripsi dan dekripsi menjadi lebih lama. Pada CAST128, tambahan waktu ini tidak membuat enkripsi menjadi sangat lama. Bahkan, terbukti bahwa enkrpsi CAST jauh lebih cepat daripada DES.
Jika pengguna ingin menggunakan algoritma CAST-128, ia harus perintah yang dia masukkan harus mengandung perintah cast5CBC OID. Jiak hal tersebut dipenuhi, pengguna akan dapat mengirimkan data dengan enkripsi yang menggunakan algoritma CAST-128 dengan mode CBC.
5. 1. Encapsulating Security Payload (ESP) Dalam ESP, CAST-128 dapat menerima masukan kunci dengan panjang 40 sampai 128 bit dalam kelipatan delapan. Akan tetapi, panjang yang direkomendasikan adalah 40, 64, 80, dan 128. Kunci yang kurang dari 128 bit akan dilakukan padding dengan bit 0. Mode yang digunakan adalah cipher block chaining (CBC). Initialization vector harus didefinisikan secara eksplisit dan sebaiknya dipilih secara pseudo-random.
5. Aplikasi CAST-128 Banyak aplikasi yang menggunakan algoritma CAST-128 karena kecepatan dan keamanannya dala mengenkripsi data.
5. 1. Telnet Performa dari algoritma enkripsi CAST-128 sangat baik. Kecepatan enkripsinya tiga sampai lima kali lebih cepat daripada implementasi DES, tergantung optimisasi yang dilakukan pada implementasi DES.
Telnet menggunakan algoritma enkripsi CAST128 dengan mode cipher feedback (CFB). Panjang kunci yang diperbolehkan hanya 40 bit dan 128 bit. Jika panjang kunci 128 bit, perintah yang digunakan adalah CAST_40_CFB64. Sedangkan, jika panjang kunci 128 bit, perintah yang digunakan adalah CAST128_CFB64.
12
6. Hasil dan Analisis Pengujian 2.
6. 1. Waktu Enkripsi Telah diuji bahwa enkripsi CAST-128 dengan mode CBC pada file dengan besar 40 MB diselesaikan dalam waktu rata-rata kurang lebih dua detik saja. Sebagai catatan, implementasi CAST-128 dalam ECB dan CBC didapatkan dari www.codeproject.com dan enkripsi dilakukan pada computer dengan processor Intel Centrino Duo 1,66 GHz. Sebagai perbandingan, pada komputer yang sama dilakukan enkripsi dengan algoritma Triple DES dan waktu enkripsinya adalah empat detik. Selain itu, dengan algoritma AES-128 dibutuhkan waktu lima detik. Ini membuktikan bahwa kecepatan enkripsi CAST128 sangat cepat.
3.
4.
5.
6. 1. Pengubahan Byte Cipherteks Telah diuji bahwa pengubahan beberapa byte pada cipherteks menyebabkan byte-byte lainnya di dalam dekripsi cipherteks menjadi rusak, sehingga isi file menjadi tidak terbaca lagi.
6.
7.
7. Simpulan 1.
CAST-128 adalah algoritma kriptografi kunci simetri yang mengenkripsi data per blok dengan panjang 64 bit, dan
dengan panjang kunci bervariasi antara 40 sampai 128 dalam kelipatan delapan. CAST-128 menggunakan enam belas putaran jaringan feistel dengan keenam belas pasang kunci yang menjadi input jaringan tersebut dibangkitkan dari kunci masukan pengguna dengan mengunakan empat buah S-box terakhir. Ada tiga tipe fungsi enkripsi dalam CAST-128. Walupun ketiganya memakai empat kotak S-box yang sama, setiap tipenya menggunakan urutan operasi penjumlahan, pengurangan, dan XOR yang berbeda. Prinsip confusion dan diffusion tercapai dalam algoritma CAST-128. Selain itu, CAST-128 juga kuat terhadap serangan diferential dan linear attack. CAST-128 dipakai dalam berbagai aplikasi pengiriman data dikarenakan kecepatan dan keamanannya. Contoh aplikasi: Telnet, CMS, ESP. CAST-128 dapat digunakan dengan mode ECB, CBC, CFB, dan OFB, dimana ECB merupakan mode dengan tingkat keamanan relatif rendah. Kecepatan enkripsi data dengan CAST128 telah dibuktikan sangat cepat. Dibandingkan dengan algoritma terkenal lainnya seperti: DES, Triple DES, dan AES, CAST-128 adalah algoritma dengan enkripsi data tercepat.
Lampiran Delapan S-box 8 x 32 yang digunakan dalam CAST-128: S-Box S1 30fb40d4 9fa0ff0b 6beccd2f 3f258c7a 1e213f2f bfd4af27 88bbbdb5 e2034090 98d09675 6e63a0e0 28683b6f c07fd059 ff2379c8 775f50e2 43c340d3 a1c9e0d6 346c4819 61b76d87 22540f2f 2abe32e1 66db40c8 a784392f 004dff2f 2db9d2de 97943fac b82cbaef d751d159 6ff7f0ed 5a097a1f 827b68d0 4b6d2f7f 50bb64a2 d2664910 bee5812d b7332290 fd45c240 ad31973f c4f6d02e 55fc8165 d5b1caad 882240f2 0c6e4f38 a4e4bfd7 4f5ba272 564c1d2f b1b6ab8a c71358dd 6385c545 110f935d 57538ad5 3a787d5f 6276a0b5 19a6fcdf 7a42206a 29f9d4d5 38901091 c6b505eb 84c7cb8c 2ad75a0f 874a1427 d7894360 425c750d 93b39e26 187184c9 6c00b32d 64459eab 3f328b82 7718cf82 59a2cea6 04ee002e 81383f05 6963c5c8 76cb5ad6 d49974c9 ca180dcf 35e79e13 47da91d0 f40f9086 a7e2419e 31366241 548300d0 00322a3c bf64cddf ba57a68e 75c6372b 6b54bfab 2b0b1426 ab4cc9d7 449ccd82 f7fbf265
13
9c004dd3 15c361d2 df2f8656 aa54166b 4a97c1d8 90ecf52e e93b159f a1ac2dae c59c5319 6a390493 f61b1891 a2d1936b 73e2bb14 89fe78e6 380782d5 051ef495 50afd341 ab85c5f3
6003e540 c2e7661d 887ca41a 22568e3a 527644b7 22b0c054 b48ee411 a2d4b76d b949e354 e63d37e0 bb72275e 2ad286af a0bebc3c 3fab0950 c7fa5cf6 aa573b04 a7c13275 1b55db94
cf9fc949 22d4ff8e a2d2bd2d a2d341d0 b5f437a7 bc8e5935 4bff345d c19b0c50 b04669fe 2a54f6b3 aa508167 aa56d291 54623779 325ff6c2 8ac31511 4a805d8d 915a0bf5 aad4e324
cfa4bd3f 954329de 7b5a41f0 bf6bb16c 75bb0fc3 3f04442f c69dff09 f01144f9 580304f0 98a52666 af1fbda7 474d6ad7 bd91e046 1a69e783
2deaa3e2 adbe4528 d37cfbad 6a70fb78 98511bfb 6188b153 c75b65f0 d2240eb1 ca042cf1 5648f725 d4234870 7c0c5e5c 9a56456e 02cc4843
9e204d02 d8710f69 1b069505 0d03d9c9 4ffbcc35 e0397a2e d9db40d8 9675b3fd 011a37ea ff5e569d a7870bf3 d1231959 dc39200c a2f7c579
c8bd25ac aa51c90f 41ece491 d4df39de b58bcf6a 5727cb79 ec0e7779 a3ac3755 8dbfaadb 0ced63d0 2d3b4d79 381b7298 20c8c571 429ef47d
eadf55b3 aa786bf6 b4c332e6 e01063da e11f0abc 9ceb418f 4744ead4 d47c27af 35ba3e4a 7c63b2cf 42e04198 f5d2f4db 962bda1c 427b169c
d5bd9e98 22513f1e 032268d4 4736f464 bfc5fe4a 1cacd68d b11c3274 51c85f4d 3526ffa0 700b45e1 0cd0ede7 ab838653 e1e696ff 5ac9f049
e31231b2 aa51a79b c9600acc 5ad328d8 a70aec10 2ad37c96 dd24cb9e 56907596 c37b4d09 d5ea50f1 26470db8 6e2f1e23 b141ab08 dd8f0f00
2ad5ad6c 2ad344cc ce387e6d b347cc96 ac39570a 0175cb9d 7e1c54bd a5bb15e6 bc306ed9 85a92872 f881814c 83719c9e 7cca89b9 5c8165bf
S-Box S2 1f201094 ada7ef79 a0b52f7b d1da4181 1fc41080 e113c85b 3d63cf73 602f64a4 10843094 fc884f69 e8256333 c5d655dd 54f03084 eccf01db 81ed6f61 5e552d25 a20c3005 ee41e729 73f98417 50d99c08 cdf0b680 7af75673 db2ffd5e b8da230c c72feffa 61d9b8c6 dc8637a0 2d6a77ab 5483697b b284600c 8f5ea2b3 43d79572
ef0ba75b 4e1d7235 59e83605 3b092ab1 179bee7a acc40083 cee234c0 d63acd9c 2537a95e 3e4de8df 844e8212 eb667064 066ff472 a6d3d0ba 20e74364 5272d237 8871df63 6e1d2d7c a1269859 cb3f4861 17844d3b 2fdd5cdb 8f32ce19 80823028 22822e99 00b24869 16a7d3b1 3527ed4b 2667a8cc d835731d fc184642 7e6dd07c
69e3cf7e d55a63ce ee15b094 f997f1c1 d37ac6a9 d7503525 d4d87e87 1bbc4635 f46f6ffe ef0e0088 128d8098 77840b4d a31aa153 b6803d5c b45e1378 79d2951c b9de2fcb 50045286 ec645c44 c26bd765 31eef84d a11631c1 306af97a dcdef3c8 82c570b4 b7ffce3f 9fc393b7 821fd216 85196048 dcb1c647 0a036b7a 06dfdf1e
393f4380 de0436ba e9ffd909 a5e6cf7b fe5830a4 f7ea615f 5c672b21 9e81032d a1ff3b1f 3559648d fed33fb4 a1b6a801 dadc4755 af77a709 de18639b c60d894c 0cc6c9e9 1e6685f3 52c877a9 64a3f6ab 7e0824e4 30f66f43 02f03ef8 d35fb171 d8d94e89 08dc283b a7136eeb 095c6e2e 8c4bacea ac4c56ea 4fb089bd 6c6cc4ef
fe61cf7a 99c430ef dc440086 01420ddb 98de8b7f 62143154 071f6181 2701f50c 208cfb6a 8a45388c ce280ae1 84db26a9 b5625dbf 33b4a34c 881ca122 488cb402 0beeff53 f33401c6 cdff33a6 80342676 2ccb49eb b3faec54 99319ad5 088a1bc8 8b1c34bc 43daf65a c6bcc63e db92f2fb 833860d4 3ebd81b3 649da589 7160a539
eec5207a 5f0c0794 ef944459 e4e7ef5b 77e83f4e 0d554b63 39f7627f 99847ab4 8f458c74 1d804366 27e19ba5 e0b56714 68561be6 397bc8d6 b96726d1 1ba4fe5b e3214517 30a22c95 a02b1741 25a75e7b 846a3bae 157fd7fa c242fa0f bec0c560 301e16e6 f7e19798 1a513742 5eea29cb 0d23e0f9 230eabb0 a345415e 73bfbe70
55889c94 18dcdb7d ba83ccb3 25a1ff41 79929269 5d681121 361e3084 a0e3df79 d9e0a227 721d9bfd d5a6c252 21f043b7 83ca6b94 5ee22b95 8049a7e8 a4b09f6b b4542835 31a70850 7cbad9a2 e4e6d1fc 8ff77888 ef8579cc a7e3ebb0 61a3c9e8 273be979 7619b72f ef6828bc 145892f5 6c387e8a 6438bc87 5c038323 83877605
72fc0651 a1d6eff3 e0c3cdfb e180f806 24fa9f7b c866c359 e4eb573b ba6cf38c 4ec73a34 a58684bb e49754bd e5d05860 2d6ed23b 5f0e5304 22b7da7b 1ca815cf 9f63293c 60930f13 2180036f 20c710e6 ee5d60f6 d152de58 c68e4906 bca8f54d b0ffeaa6 8f1c9ba4 520365d6 91584f7f 0ae6d249 f0b5b1fa 3e5d3bb9 4523ecf1
S-Box S3 8defc240 beb1f9bf 11107d9f 553fb2c0 4e1a8302 a8c01db7 99b03dbf
25fa5d9f eefbcaea 07647db9 489ae22b bae07fff 579fc264 b5dbc64b
eb903dbf e8cf1950 b2e3e4d4 d4ef9794 528246e7 67094f31 638dc0e6
e810c907 51df07ae 3d4f285e 125e3fbc 8e57140e f2bd3f5f 55819d99
47607fff 920e8806 b9afa820 21fffcee 3373f7bf 40fff7c1 a197c81c
369fe44b f0ad0548 fade82e0 825b1bfd 8c9f8188 1fb78dfc 4a012d6e
8c1fc644 e13c8d83 a067268b 9255c5ed a6fc4ee8 8e6bd2c1 c5884a28
aececa90 927010d5 8272792e 1257a240 c982b5a5 437be59b ccc36f71
14
b843c213 a747d2d0 8c96fdad efbd7d9b 23efe941 f8af918d ef303cab 8b907cee 5c76460e 1f97c090 68cc7bfb 4b39fffa 61bd8ba0 285ba1c8 1f081fab d2d02dfe 3a609437 a2d02fff a2048016 947b0001 6ea22fde 67214cb8 5727c148 282f9350 f7baefd5
6c0743f1 1651192e 5d2c2aae a672597d a903f12e 4e48f79e 984faf28 b51fd240 00ea983b 081bdb8a d90f2788 ba39aee9 d11e42d1 3c62f44f 108618ae f8ef5896 ec00c9a9 d2bf60c4 97573833 570075d2 5f08ae2b b1e583d1 2be98a1d 8334b362 4142ed9c
8309893c af70bf3e 8ee99a49 ada840d8 60270df2 8f616ddf 779faf9b e7c07ce3 d4d67881 93a07ebe 12490181 a4ffd30b cead04f4 35c0eaa5 fcfd086d e4cf52da 44715253 d43f03c0 d7207d67 f9bb88f8 af7a616d b7dc3e62 8ab41738 d91d1120 a4315c11
0feddd5f 58c31380 50da88b8 45f54504 0276e4b6 e29d840e 92dc560d e566b4a1 fd47572c b938ca15 5de5ffd4 faf7933b 127ea392 e805d231 f9ff2889 95155b67 0a874b49 50b4ef6d de0f8f3d 8942019e e5c98767 7f10bdce 20e1be24 2b6d8da0 83323ec5
2f7fe850 5f98302e 8427f4a0 fa5d7403 94fd6574 842f7d83 224d1e20 c3e9615e f76cedd9 97b03cff dd7ef86a 6d498623 10428db7 428929fb 694bcc11 494a488c d773bc40 07478cd1 72f87b33 4264a5ff cf1febd2 f90a5c38 af96da0f 642b1e31 dfef4636
d7c07f7e 727cc3c4 1eac5790 e83ec305 927985b2 340ce5c8 8437aa88 3cf8209d bda8229c 3dc2c0f8 76a2e214 193cbcfa 8272a972 b4fcdf82 236a5cae b9b6a80c 7c34671c 006e1888 abcc4f33 856302e0 61efc8c2 0ff0443d 68458425 9c305a00 a133c501
02507fbf 0a0fb402 796fb449 4f91751a 8276dbcb 96bbb682 7d29dc96 6094d1e3 127dadaa 8d1ab2ec b9a40368 27627545 9270c4a8 4fb66a53 12deca4d 5c8f82bc 02717ef6 a2e53f55 7688c55d 72dbd92b f1ac2571 606e6dc6 99833be5 52bce688 e9d3531c
5afb9a04 0f7fef82 8252dc15 925669c2 02778176 93b4b148 2756d3dc cd9ca341 438a074e 64380e51 925d958f 825cf47a 127de50b 0e7dc15b 2c3f8cc5 89d36b45 4feb5536 b9e6d4bc 7b00a6b0 ee971b69 cc8239c2 60543a49 600d457d 1b03588a ee353783
S-Box S4 9db30420 7e287aff 28147f5f ee4d111a 80530100 ce84ffdf 2649abdf abe0502e 4d351805 a5bf6d8e 26486e3e 69dead38 bd59e4d2 e756bdff 6e85cb75 20c763ef 6701902c 026a4ceb b7747f9d 61c2f50f 63315c21 d5cad3b6 ac07be6b 6f7de532 109873f6 5ce2a465 77079103 d8eeb6d2 39e4460c b5676e69
1fb6e9de e60fb663 4fa2b8cd 0fca5167 e83e5efe f5718801 aea0c7f5 ec8d77de 7f3d5ce3 1143c44f 8bd78a70 1574ca16 e3d156d5 dd3369ac be07c002 c366a5fc 9b757a54 52437eff ab2af7b4 6552daf9 5e0a72ec 0caec388 cb44a1d8 58fd7eb6 00613096 a730f32c dea03af6 e523be77 1fda8538 9bd3ddda
a7be7bef 095f35a1 c9430040 71ff904c ac9af4f8 3dd64b04 36338cc1 57971e81 a6c866c6 43958302 7477e4c1 df871b62 4fe876d5 ec17b035 c2325577 9c382880 31d477f7 2f8f76b4 efc34d20 d2c231f8 49bafefd f73001e1 8b9b0f56 d01ee900 c32d9521 d0aa3fe8 78a8565e c2154529 1987832f df7e052f
d273a298 79ebf120 0cc32220 2d195ffe 7fe72701 a26f263b 503f7e93 e14f6746 5d5bcca9 d0214eeb b506e07c 211c40b7 2f91a340 06572327 893ff4ec 0ace3205 9126b031 0df980a5 2e096b7c 25130f69 187908d9 6c728aff 013988c3 24adffc2 ada121ff 8a5cc091 dee356df 2f69efdf ca007367 db25701c
4a4f7bdb fd059d43 fdd30b30 1a05645f d2b8ee5f 7ed48400 d3772061 c9335400 daec6fea 022083b8 f32d0a25 a51a9ef9 557be8de 99afc8b0 5bbfc92d aac9548a 36cc6fdb 8674cde3 1741a254 d8167fa2 8d0dbd86 71eae2a1 b1c52fca f4990fc5 29908415 d49e2ce7 21f05cbe afe67afb a99144f8 1b5e51ee
64ad8c57 6497b7b1 c0a5374f 0c13fefe 06df4261 547eebe6 11b638e1 6920318f 9f926f91 3fb6180c 79098b02 0014377b 00eae4a7 56c8c391 d0ec3b25 eca1d7c7 c70b8b46 edda04eb e5b6a035 0418f2c8 311170a7 1f9af36e b4be31cd 9711aac5 7fbb977f 0ce454a9 8b75e387 f470c4b2 296b299e f65324e6
85510443 f3641f63 1d2d00d9 081b08ca bb9e9b8a 446d4ca0 72500e03 081dbb99 9f46222f 18f8931e e4eabb81 041e8ac8 0ce5c2ec 6b65811c b7801ab7 041afa32 d9e66a48 17a9be04 213d42f6 001a96a6 3e9b640c cfcbd12f d8782806 001d7b95 af9eb3db d60acd86 b3c50651 f3e0eb5b 492fc295 6afce36c
fa020ed1 241e4adf 24147b15 05170121 7293ea25 6cf3d6f5 f80eb2bb ffc304a5 3991467d 281658e6 28123b23 09114003 4db4bba6 5e146119 8d6d3b24 1d16625a 56e55a79 2c18f4df 2c1c7c26 0d1526ab cc3e10d7 c1de8417 12a3a4e2 82e5e7d2 29c9ed2a 015f1919 b8a5c3ef d6cc9876 9266beab 0316cc04
15
8644213e b7dc59d0 7965291f ccd6fd43 41823979 932bcdf6 b657c34d 4edfd282 7ae5290c 3cb9536b 851e20fe 9833557e 13ecf0b0 d3ffb372 3f85c5c1 0aef7ed2 S-Box S5 7ec90c04 08fbf1fa e6a2e77f 5f480a01 1a550a04 f2f3f763 6366e52d df13a280 5c1ff900 ef55a1ff 911e739a bcf3f0aa b868bf80 136e05db 26e46695 5bb5d0e8 a21de820 0ab378d5 580a249f 66b4f0a3 76f0ae02 134f616f 9fe459d2 445f7382 be60e2db 324ed72f 44094f85 3d38f5f7 6cf6e479 5ce96c28 d6cd2595 e822fe15
2c6e74b9 e7f511cc f0c720cd 0412b2aa ba8f65cb 68af8040 02d1c000 74b55bd2 fe38d399 e59ca2c2 17af8975 87ac36e9 0d26f3fd fef18391 b7566419 87d72e5a d18b69de d951fb0c 94f74bc0 c0f1648a 083be84d 2e77118d 45d34559 175683f4 a9c23101 4067b7fd 3f481d87 0ca81f36 20758184 e176eda3 68ff1ebf 88570983
9b0e66df d2051b00 c4494816 259814fc 7251f4e7 ed0c9e56 c4ac8e05 682199c0 0c4eff0b a6b62d27 32c7911c e53a7426 9342ede7 fb887a37 f654efc5 ab6a6ee1 f3f65777 ded7da56 e327888e 697ed5af 28421c9a b31b2be1 d9f2da13 cdc66a97 eba5315c 0523138e fcfeae7b 52af4a8a d0cefa65 6bac307f 7555442c 750e6249
a6337911 735aba00 ccf5c180 41d0efe2 95a51725 11b4958b 9377f571 d421e5ec 062407ea e66a4263 89f89468 01b3d82b 04a5c284 d6e7f7d4 d08d58b7 223a66ce fa02c3f6 4124bbe4 9f7b5561 49e92ff6 44489406 aa90b472 dbc65487 70be0288 224e42f2 5ca3bc78 77b5ff76 66d5e7c0 88f7be58 376829d2 f19f06be da627e55
b86a7fff 2ab722d8 38851640 4e40b48d c106ecd7 e1eb5a88 0c05372a 53fb3ce8 aa2f4fb1 df65001f 0d01e980 1a9e7449 636737b6 c7fb7dc9 48925401 c62bf3cd 407edac3 94ca0b56 c3dc0280 309e374f 736e4cb8 3ca5d717 f3e4f94e b3cdcf72 1c5c1572 dc0fd66e 8c2302bf df3b0874 4a046826 85360fa9 f9e0659a 5e76ffa8
1dd358f5 386381cb 15b0a848 248eb6fb 97a5980a 8709e6b0 578535f2 c8adedb3 4fb96976 0ec50966 524755f4 64ee2d7e 50f5b616 3063fcdf c1bacb7f 9e0885f9 cbb3d550 0f5755d1 05687715 2cb6356a c1092910 7d161bba 176d486f 6e5dd2f3 f6721b2c 75922283 aaf47556 95055110 0ff6f8f3 17e3fe2a eeb9491d b1534546
44dd9d44 acf6243a e68b18cb 8dba1cfe c539b9aa d7e07156 2261be02 28a87fc9 90c79505 dfdd55bc 03b63cc9 cddbb1da f24766e3 b6f589de e5ff550f 68cb3e47 1793084d e0e1e56e 646c6bd7 85808573 8bc95fc6 9cad9010 097c13ea 20936079 1ad2fff3 784d6b17 5f46b02a 1b5ad7a8 a09c7f70 24b79767 34010718 6d47de08
1731167f 69befd7a 4caadeff 41a99b02 4d79fe6a 4e29fea7 d642a0c9 3d959981 b0a8a774 29de0655 0cc844b2 01c94910 8eca36c1 ec2941da b6083049 086c010f b0d70eba 6184b5be 44904db3 4991f840 7d869cf4 af462ba2 631da5c7 459b80a5 8c25404e 58ebb16e 2b092801 f61ed5ad 5346aba0 f5a96b20 bb30cab8 efe9e7d4
S-Box S6 f6fa8f9d bf9f0960 33f14961 a3149619 01665991 fd41197e 083919a7 ea6f7388 284caf89 80226dae ceb2296f 53bddb65 8de4bf99 5f04456d 4ec75b95 35162386 3a62ef1d 36f73523 89dff0bb
2cac6ce1 dfa1e2ed c01937bd fec94bd5 e1992863 9305a6b0 9fbaeed9 e70bc762 aa928223 c340a4a3 53c0843a e76ffbe7 a11101a0 22258698 24f2c3c0 e6ea8926 a787e238 4cfb6e87 5fe2be78
4ca34867 83f0579d f506c6da a114174a c8f30c60 e86be3da 49dbcfb0 35f29adb 9334be53 df7e9c09 fe893655 e967fd78 7fd37975 c9c4c83b 42d15d99 3333b094 f3a5f676 7da4cec0 448f4f33
e2337f7c 63ed86b9 e4625e7e eaa01866 2e78ef3c 74bed3cd 4e670c53 5c4cdd8d 3b3a21bf a694a807 25bfe68a 0ba93563 da5a26c0 2dc156be cd0d7fa0 157ec6f2 74364853 6c152daa 754613c9
95db08e7 1ab6a6b8 a308ea99 a084db2d d0d51932 372da53c 5c3d9c01 f0d48d8c 16434be3 5b7c5ecc b4628abc 8e342bc1 e81f994f 4f628daa 7b6e27ff 372b74af 20951063 cb0396a8 2b05d08d
016843b4 de5ebe39 4e23e33c 09a8486f cf0fec14 4c7f4448 64bdb941 b88153e2 9aea3906 221db3a6 cf222ebf e8a11be9 9528cd89 57f55ec5 a8dc8af0 692573e4 4576698d c50dfe5d 48b9d585
eced5cbc f38ff732 79cbd7cc a888614a f7ca07d2 dab5d440 2c0e636a 08a19866 efe8c36e 9a69a02f 25ac6f48 4980740d fd339fed e2220abe 7345c106 e9a9d848 b6fad407 fcd707ab dc049441
325553ac 8989b138 48a14367 2900af98 d0a82072 6dba0ec3 ba7dd9cd 1ae2eac8 f890cdd9 68818a54 a9a99387 c8087dfc b87834bf d2916ebf f41e232f f3160289 592af950 0921c42f c8098f9b
16
7dede786 bf32679d 8cf63166 4e8f0252 3007cd3e 08a930f6 fba1ae12 e8816f4a b17f5505 653d7e6a b81a928a 3b4cbf9f a2d762cf
c39a3373 d45b5b75 061c87be 64d8314d 74719eef 957ef305 2d4bd736 3814f200 59357cbe 54268d49 60ed5869 4a5de3ab 49c92f54
42410005 b353fd00 88c98f88 da3870e3 dc872681 b7fbffbd 0f25faab a3f94043 edbd15c8 51a477ea 97c55b96 e6051d35 38b5f331
6a091751 cbb0e358 6062e397 1e665459 073340d4 c266e96f a4f3fceb 9c7a54c2 7f97c5ab 5017d55b eaec991b a0e1d855 7128a454
0ef3c8a6 830f220a 47cf8e7a c10908f0 7e432fd9 6fe4ac98 e2969123 bc704f57 ba5ac7b5 d7d25d88 29935913 d36b4cf1 48392905
890072d6 1f8fb214 b6c85283 513021a5 0c5ec241 b173ecc0 257f0c3d da41e7f9 b6f6deaf 44136c76 01fdb7f1 f544edeb a65b1db8
28207682 d372cf08 3cc2acfb 6c5b68b7 8809286c bc60b42a 9348af49 c25ad33a 3a479c3a 0404a8c8 088e8dfa b0e93524 851c97bd
a9a9f7be cc3c4a13 3fc06976 822f8aa0 f592d891 953498da 361400bc 54f4a084 5302da25 b8e5a121 9ab6f6f5 bebb8fbd d675cf2f
S-Box S7 85e04019 0227bce7 a05fbcf6 4d495001 2660c200 107789be 4e7b3aff 47bc2829 0a961288 c06eba30 ad4ebc46 92544a8b 0e0804e9 da6d0c74 0c4fb99a b9068d78 e7225308 f28ebfb0 2711fd60 28e74e41 f22b017d 2ec01b9c d699296e 66626c1c 9883fe66 74904698 c79f022f d3b5ab34 1814386b 97fd61a9 91da55f4 518f36b2
332bf567 4d642916 cd4181e9 38be4341 7565bde4 b3b2e9ce 5f43671b 4725ba37 e1a5c06e 07211b24 468f508b 009b4fc3 55f1be56 79aac56c bb325778 a33754f4 8b75cf77 f5b9c310 438050e3 c2610aca a4173f70 15488aa9 496cff6f 7154c24c 2ec40581 4c2b0edd 3c997e7e f72bf9b7 30bcc33d ea7759f4 40a230f3 84b1d370
662dbfff 18fac300 e150210c 913cee1d 64241f7a 0502aa8f 9cf6e037 a66ad22b 13749e67 45c28829 7829435f aba68ced e7e5363b 3ce4e1ad 3ec6d97b f430c87d 11ef8da4 a0eac280 069908a8 3d49a9cf dd1e16c3 d716e740 1c9f4986 ea082b2a 763953c3 4f757656 5e4f9504 1b0434c0 38a0c07d 2d57539d d1988f35 0fedce83
cfc65693 50f18b82 e24ef1bd 92a79c3f 8248dca9 0bc0351e 4981ac83 7ad61f1e 72fc081a c95e317f f124183b 9ac96f78 b3a1f25d 51f0c802 6e77a6a9 c8a71302 e083c858 08b9767a 3d7fedc4 bae3b9df 15e0d7f9 40055a2c dfe2ed07 93eb2939 01d6692e 5d393378 3ffafbbd 4e72b567 fd1606f2 569a58cf b6e318d2 878ddada
2a8d7f6f 2cb2cb11 b168c381 089766be c3b3ad66 166bf52a 334266ce 0c5cbafa b1d139f7 bc8ec511 821dba9f 06a5b79a f7debb85 98f8f35a cb658b5c b96d8c32 8d6b786f a3d9d2b0 826d2bef b65f8de6 50b1b887 93d29a22 b87242d1 17dcb0f0 d3a0c108 a132234f 76f7ad0e 5592a33d c363519b e84e63ad 3ffa50bc f2a279c7
ab9bc912 b232e75c fde4e789 baeeadf4 28136086 eb12ff82 8c9341b7 4437f107 f9583745 38bc46e9 aff60ff4 b2856e6e 61fe033c 1626a49f d45230c7 ebd4e7be 5a6317a6 79d34217 4eeb8476 92aeaf64 2b9f4fd5 e32dbf9a 19de7eae 58d4f2ae a1e7160e 3d321c5d 296693f4 b5229301 589dd390 462e1b78 3d40f021 94e01be8
de6008a1 4b3695f2 5c79b0d8 1286becf 0bd8dfa8 e3486911 d0d854c0 b6e79962 cf19df58 c6e6fa14 ea2c4e6d 1aec3ca9 16746233 eed82b29 2bd1408b be8b9d2d fa5cf7a0 021a718d 488dcf25 3ac7d5e6 625aba82 058745b9 053e561a 9ea294fb e4f2dfa6 c3f5e194 3d1fce6f cfd2a87f 5479f8e6 6580f87e c3c0bdae 90716f4b
2028da1f b28707de 1e8bfd43 b6eacb19 356d1cf2 d34d7516 cb3a6c88 42d2d816 bec3f756 bae8584a 16e39264 be838688 3c034c28 1d382fe3 60c03eb7 7979fb06 5dda0033 9ac6336a 36c9d566 9ea80509 6a017962 3453dc1e 15ad6f8c 52cf564c 693ed285 4b269301 c61e45be 60aeb767 1cb8d647 f3817914 4958c24c 954b8aa3
S-Box S8 e216300d 11a9cfb0 de9adeb1 0b15a15d 94074251 12a8ddec 82f3d055 99865d44
bbddfffc e5952f11 0a0cc32c 480d3168 5c7dcdfa fdaa335d 66fb9767 608bd593
a7ebdabd ece7990a be197029 8bbbde5a abbe6d63 176f43e8 15b80b4e 6c200e03
35648095 9386d174 84a00940 669ded42 aa402164 71fb46d4 1d5b47a0 39dc5ff6
7789f8b7 2a42931c bb243a0f c7ece831 b301d40a 38129022 4cfde06f 5d0b00a3
e6c1121b 76e38111 b4d137cf 3f8f95e7 02e7d1ca ce949ad4 c28ec4b8 ae63aff2
0e241600 b12def3a b44e79f0 72df191b 53571dae b84769ad 57e8726e 7e8bd632
052ce8b5 37ddddfc 049eedfd 7580330d 7a3182a2 965bd862 647a78fc 70108c0c
17
bbd35049 522fffb1 9d17dee7 7170c608 264f620f e6459788 835ffcb8 a223736f f1544107 a842eedf b6f2cf3b cd7dae0a 77853b53 132a4f94 5715f6b7 e87b40e4 730edebc 7a5b2121 11403092 a0e736a0 aa12e4f2 5938fa0f e97625a5 04f19130
2998df04 d24708cc 27eb35e6 2d5e3354 24b8d2bf c37bc75f 6df4c1f2 9fb4c428 bedeee14 fdba60b4 9f326442 57e85b7a 37effcb5 43b7950e ef3478dd e98ea084 5b643113 d187b896 00da6d77 5564a6b9 87451c0f 42399ef3 0614d1b7 ba6e4ec0
980cf42a 1c7e27cd c9aff67b d4de495a 15c1b79e db07ba0c 96f5b195 25d04979 56e9af27 f1907b75 cb15a4cc d53f5af6 c5068778 2fee7d1c f267616f 5889e9e1 94917e4f 29263a4d 4a0cdd61 10853209 e0f6a27a 36997b07 0e25244b 99265164
9b6df491 a4eb215b 36baf5b8 64c6d006 46a52564 0676a3ab fd0af0fc 34c713f8 a04aa441 20e3030f b01a4504 20cf4d8c e580b3e6 223613bd c148cbe4 efd390fc 503c2fba ba510cdf ad1f4603 c7eb8f37 3ada4819 0e84093d 0c768347 1ee7230d
9e7edd53 3cf1d2e2 09c467cd bcc0c62c f8d7e54e 7f229b1e b0fe134c c4618187 3cf7c899 24d8c29e f1e47d8d cea4d428 4e68b8f4 dd06caa2 9052815e dd07d35b 646f1282 81f47c9f 605bdfb0 2de705ca 4cf1764f 4aa93e61 589e8d82 50b2ad80
06918548 19b47a38 c18910b1 3dd00db3 3e378160 31842e7b e2506d3d ea7a6e98 92ecbae6 e139673b 844a1be5 79d130a4 c5c8b37e 37df932b 5e410fab db485694 7523d24a ad1163ed 9eedc364 8951570f 0d771c2b 8360d87b 0d2059d1 eaee6801
58cb7e07 424f7618 e11dbf7b 708f8f34 7895cda5 24259fd7 4f9b12ea 7cd16efc dd67016d efa63fb8 bae7dfdc 3486ebfb 0d809ea2 c4248289 b48a2465 38d7e5b2 e0779695 ea7b5965 22ebe6a8 df09822b 67cdb156 1fa98b0c a466bb1e 8db2a283
3b74ef2e 35856039 06cd1af8 77d51b42 859c15a5 f8bef472 f215f225 1436876c 151682eb 71873054 42cbda70 33d3cddc 398feb7c acf3ebc3 2eda7fa4 57720101 f9c17a8f 1a00726e cee7d28a bd691a6c 350d8384 1149382c f8da0a82 ea8bf59e
Daftar Pustaka Munir, Rinaldi. (Agustus, 2006). Kriptografi. Bandung. Adams, Carlisle M. (May, 1997). The CAST-128 Encryption Algorithm. Canada: Entrust Technologies. Adams, Carlisle M. (1997). Constructing Symmetric Ciphers Using the CAST Design Procedure. Canada: Entrust Technologies. Altman, J. (September 2000). Telnet Encryption: CAST-128 64 bit Cipher Feedback. Ney York: Columbia University. Adams, Carlisle M. (Oktober 2000). Use of the CAST-128 Encryption Algorithm in CMS. Canada: Entrust Technologies. Pereira, Roy. (May 1997). The ESP CAST-128-CBC Algorithm. Timestep Corporation. Lung, Chan. Studi dan Implementasi Advanced Encryption Standard dengan Empat Mode Operasi Block Cipher. Bandung: Institut Teknologi Bandung. Gunawan, Ade, dkk. (Oktober 2006). Perancangan dan Implementasi Algoritma Kriptografi “Baru” dengan Mode ECB, CBC, dan CFB. Bandung: Institut Teknologi Bandung. Dryazgov, Andrey. Strong and Fast Data Encryption with the CAST-128 Algorithm. www.codeproject.com. RSA Security. www.rsasecurity.com. Halaman web bulan September 2006. Wikipedia. http://en.wikipedia.org/wiki/CAST-128. last modified 10:52, 25 September 2006.
18