SlideShare a Scribd company logo
1 of 5
Download to read offline
Aris Cahyadi Risdianto - 23210016
ET 4085 – Keamanan Jaringan Telekomunikasi



                                      CAST-128 Encryption


1. Pendahuluan

Algoritma ini diciptakan pada tahun 1996 oleh Carlisle Adams dan Stafford Tavares menggunakan
prosedur desain Cast; salah satu anggota keluarga dari cipher CAST, Cast-256 (merupakan mantan
kandidat AES) juga diturunkan dari CAST-128. Menurut beberapa sumber, nama Cast didasarkan pada
inisial penemunya, meskipun Bruce Schneier laporan klaim penulis bahwa "nama harus menyulap
gambar acak" (Schneier, 1996).
Algoritma ini mirip dengan kriptografi DES dengan menggunakan sistem Substitusi Permutasi
Network (SPN) yang tampaknya memiliki ketahanan yang baik terhadap kripto analisis diferensial,
kripto analisis linear
, dan kripto analisis related-key. Cipher ini juga
 memiliki sejumlah properti kriptografi lain yang diinginkan,
 termasuk Avalanche , Strict Avalanche Criterion (SAC), Bit
    Independence Criterion (BIC), tidak ada complementation property, dan tidak adanya kunci lemah
dan kunci semi-lemah.


2. Deskripsi Algoritma

CAST-128 merupakan kelas algoritma enkripsi yang dikenal sebagai Feistel cipher, yang keseluruhan
operasinya mirip dengan Data Encryption Standard (DES). Algoritma enkripsi yang lengkap
diberikan dalam empat langkah berikut :

INPUT          : plain teks m1 ... m64, kunci K = k1 ... k128.
OUTPUT         : ciphertext c1 ... C64.

   1. (Key Schedule) menghitung 16 pasang subkunci {KMI, Kri} dari K (Lihat Bagian 2.1 dan 2.4
      untuk lebih detail).
   2. (L0, R0) <- (m1. .. m64). Membagi plaintext ke kiri dan 32-bit kanan bagian L0 = m1 ... m32
      dan R0 = M33 ... m64
   3. (16 Rounds) untuk i dari 1 sampai 16, menghitung Li dan Ri sebagai berikut:
      Li = Ri-1, Ri = Li-1 ^ f (Ri-1, KMI, Kri), dimana f didefinisikan dalam Bagian 2.2 (F adalah
      tipe 1, tipe 2, atau Tipe 3, tergantung pada i).
   4. c1 ... C64 <- (R16, L16). Mempertukarkan final cipher blok L16, R16 dan menggabungkannya
      untuk membentuk ciphertext.

Dekripsi identik dengan algoritma enkripsi yang diberikan di atas, kecuali putaran (dan karena itu
pasangan subkey) digunakan secara terbalik untuk menghitung (L0, R0) dari (R16, L16).


                                                    1
Aris Cahyadi Risdianto - 23210016
ET 4085 – Keamanan Jaringan Telekomunikasi




                                    Illustration 1: Three Rounds of
                                    The CAST-128 Block Cipher


2.1 Pairs Round Keys

CAST-128 menggunakan sepasang subkeys untuk setiap putarannya: 32-bit Km digunakan sebagai
kunci "masking" dan 5-bit Kr digunakan sebagai "Rotasi" tombol.


2.2. Non-Identical Rounds

Ada Tiga buah rounds function yang berbeda digunakan dalam CAST-128. Round tersebut adalah
sebagai berikut (dimana "D" adalah input data ke fungsi f dan "Ia" - "Id" adalah byte paling signifikan
ke bukan paling signifikan dari I). Perhatikan bahwa "+" dan "-" adalah penambahan dan pengurangan
modulo 2 ** 32, "^" adalah bitwise XOR, dan "<<<" adalah melingkar kiri shift operasi.

                                                    2
Aris Cahyadi Risdianto - 23210016
ET 4085 – Keamanan Jaringan Telekomunikasi


 Tipe 1:       I = ((KMI + D) <<<Kri)
               f = ((S1 [Ia] ^ S2 [Ib]) - S3 [Ic]) + S4 [Id]
 Tipe 2:       I = ((^ KMI D) <<<Kri)
               f = (([Ia] S1 - S2 [Ib]) + S3 [Ic]) ^ S4 [Id]
 Tipe 3:       I = ((KMI - D) <<<Kri)
               f = ((S1 [Ia] + S2 [Ib]) ^ S3 [Ic]) - S4 [Id]

Putaran 1, 4, 7, 10, 13, dan 16 menggunakan fungsi f Tipe 1.
Putaran 2, 5, 8, 11, dan 14 menggunakan fungsi f Tipe 2.
Putaran 3, 6, 9, 12, dan 15 menggunakan fungsi f Tipe 3.

2.3 Substitution box

CAST-128 menggunakan delapan kotak substitusi: s-box S1, S2, S3, dan S4 adalah s-box untuk round
functions, sedangkan S5, S6, S7, dan S8 adalah s-box untuk key schedule. Meskipun 8 s-box
memerlukan total 8 KByte ruang penyimpanan, perhatikan bahwa hanya 4 KByte yang diperlukan
selama enkripsi aktual / dekripsi karena subkunci biasanya dibangkitkan sebelum setiap inputan data.

2.4 Key Schedule

Sebagai contoh kunci 128-bit tersebut adalah x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF, dimana x0
mewakili byte paling signifikan dan XF merupakan byte yang paling tidak signifikan.

Maka Z0 .. zF menjadi intermediate (sementara) byte, sedangkan Si [] merupakan s-box ke i dan
simbol "^" merupakan penambahan XOR.
Maka Subkunci yang terbentuk dari x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF kunci 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]

                                                      3
Aris Cahyadi Risdianto - 23210016
ET 4085 – Keamanan Jaringan Telekomunikasi


 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]
 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]
 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]
 K17 = S5[z8] ^ S6[z9] ^ S7[z7] ^ S8[z6] ^ S5[z2]
 K18 = S5[zA] ^ S6[zB] ^ S7[z5] ^ S8[z4] ^ S6[z6]
 K19 = S5[zC] ^ S6[zD] ^ S7[z3] ^ S8[z2] ^ S7[z9]
 K20 = 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]
 K21 = S5[x3] ^ S6[x2] ^ S7[xC] ^ S8[xD] ^ S5[x8]
 K22 = S5[x1] ^ S6[x0] ^ S7[xE] ^ S8[xF] ^ S6[xD]
 K23 = S5[x7] ^ S6[x6] ^ S7[x8] ^ S8[x9] ^ S7[x3]
 K24 = 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]
 z8z9zAzB = xCxDxExF ^ S5[z7] ^ S6[z6] ^ S7[z5] ^ S8[z4] ^ S5[x9]
 zCzDzEzF = x4x5x6x7 ^ S5[zA] ^ S6[z9] ^ S7[zB] ^ S8[z8] ^ S6[xB]
 K25 = S5[z3] ^ S6[z2] ^ S7[zC] ^ S8[zD] ^ S5[z9]
 K26 = S5[z1] ^ S6[z0] ^ S7[zE] ^ S8[zF] ^ S6[zC]
 K27 = S5[z7] ^ S6[z6] ^ S7[z8] ^ S8[z9] ^ S7[z2]
 K28 = 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]

                                             4
Aris Cahyadi Risdianto - 23210016
ET 4085 – Keamanan Jaringan Telekomunikasi


 xCxDxExF = zCzDzEzF ^ S5[xA] ^ S6[x9] ^ S7[xB] ^ S8[x8] ^ S6[z3]
 K29 = S5[x8] ^ S6[x9] ^ S7[x7] ^ S8[x6] ^ S5[x3]
 K30 = S5[xA] ^ S6[xB] ^ S7[x5] ^ S8[x4] ^ S6[x7]
 K31 = S5[xC] ^ S6[xD] ^ S7[x3] ^ S8[x2] ^ S7[x8]
 K32 = S5[xE] ^ S6[xF] ^ S7[x1] ^ S8[x0] ^ S8[xD]

2.5 Variabel Keysize

Algoritma enkripsi Cast-128 telah dirancang untuk memungkinkan ukuran kunci yang dapat bervariasi
dari mulai 40 bit hingga 128 bit, dengan kenaikan setiap 8-bit (maksudnya ukuran kunci yang diijinkan
adalah 40, 48, 56, 64, ..., 112, 120, dan 128 bit). Spesifikasi untuk pengoperasian keysize variabel,
adalah sebagai berikut:

   1) Untuk ukuran kunci kurang dan sama dengan 80 bit (yaitu,, 40, 48, 56 64, 72, dan 80 bit),
      algoritma ini sama seperti yang ditetapkan tetapi hanya menggunakan 12 rounds saja, bukan 16
      rounds
   2) Untuk ukuran kunci lebih besar dari 80 bit, algoritma menggunakan 16 rounds penuh
   3) Untuk ukuran kunci kurang dari 128 bit, kunci akan diisi dengan nol byte (di posisi paling
      kanan, atau posisi paling tidak signifikan,) dari 128 bit yang kurang (karena Cast-128 key
      schedule mengasumsikan kunci input 128 bit).

Perhatikan bahwa meskipun-CAST 128 dapat mendukung semua 12 ukuran kunci terdaftar di atas,
tetapi 40 bit, 64 bit, 80 bit, dan 128 bit adalah ukuran yang ditemukan utilitas di lingkungan typical.
Oleh karena itu, kemungkinan besar akan cukup bagi sebagian besar implementasi untuk mendukung
beberapa subset saja dari kunci hanya empat ukuran.

Untuk menghindari ambigu bila variabel operasi keysize digunakan, nama Cast-128 adalah dianggap
sinonim dengan nama CAST5, yang memungkinkan keysize yang akan ditambahkan tanpa ambiguitas.
Misalnya, Cast-128 dengan kunci 40-bit disebut sebagai CAST5-40, tetapi untuk kunci 128-bit secara
eksplisit harus dimaksudkan, CAST5-128 harus digunakan.



3. Referensi

   •   Internet Engineering Task Force (IETF), RFC 2144, “The CAST-128 Encryption Algorithm”,
       May 1997
   •   English Wikipedia, “CAST-128”, 2010.




                                                  5

More Related Content

What's hot (20)

Pertemuan 2 limit dan kontinuitas
Pertemuan 2   limit dan kontinuitasPertemuan 2   limit dan kontinuitas
Pertemuan 2 limit dan kontinuitas
 
Integral
IntegralIntegral
Integral
 
Kalkulus asas terbitan pertama
Kalkulus asas  terbitan pertamaKalkulus asas  terbitan pertama
Kalkulus asas terbitan pertama
 
limit fungsi
limit fungsilimit fungsi
limit fungsi
 
Turunan kedua suatu fungsi
Turunan kedua suatu fungsiTurunan kedua suatu fungsi
Turunan kedua suatu fungsi
 
Ringkasanturunanfungsi
RingkasanturunanfungsiRingkasanturunanfungsi
Ringkasanturunanfungsi
 
Turunan fungsi n_variabel_ppt_
Turunan fungsi n_variabel_ppt_Turunan fungsi n_variabel_ppt_
Turunan fungsi n_variabel_ppt_
 
Turunan fungsi
Turunan fungsiTurunan fungsi
Turunan fungsi
 
Bab 05-pernyataan select (function)
Bab 05-pernyataan select (function)Bab 05-pernyataan select (function)
Bab 05-pernyataan select (function)
 
Met num 4-1
Met num 4-1Met num 4-1
Met num 4-1
 
Limit fungsi
Limit fungsiLimit fungsi
Limit fungsi
 
Limitkekontinuan stt-b
Limitkekontinuan stt-bLimitkekontinuan stt-b
Limitkekontinuan stt-b
 
Turunan
TurunanTurunan
Turunan
 
Kalkulus
KalkulusKalkulus
Kalkulus
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Integral
IntegralIntegral
Integral
 
DIFFERENSIASI
DIFFERENSIASIDIFFERENSIASI
DIFFERENSIASI
 
kekontinuan fungsi
kekontinuan fungsikekontinuan fungsi
kekontinuan fungsi
 
L i m i t
L i m i tL i m i t
L i m i t
 
interpolasi
interpolasiinterpolasi
interpolasi
 

Viewers also liked

gangways m.neger certificate
gangways m.neger certificategangways m.neger certificate
gangways m.neger certificateTomer Neger
 
Ploshhad pryamougolnika 5_klass
Ploshhad pryamougolnika 5_klassPloshhad pryamougolnika 5_klass
Ploshhad pryamougolnika 5_klassDimon4
 
Ploshhadi figur
Ploshhadi figurPloshhadi figur
Ploshhadi figurDimon4
 
Ploshhad mnogougolnika
Ploshhad mnogougolnikaPloshhad mnogougolnika
Ploshhad mnogougolnikaDimon4
 
100 ДНІВ || Міністерство екології та природних ресурсів України
100 ДНІВ || Міністерство екології та природних ресурсів України100 ДНІВ || Міністерство екології та природних ресурсів України
100 ДНІВ || Міністерство екології та природних ресурсів УкраїниMitray Lysenko
 
Ploshhad treugolnika
Ploshhad treugolnikaPloshhad treugolnika
Ploshhad treugolnikaDimon4
 
Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...
Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...
Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...ICRISAT
 
Ploshhad trapecii
Ploshhad trapeciiPloshhad trapecii
Ploshhad trapeciiDimon4
 
Ploshhad mnogougolnikov
Ploshhad mnogougolnikovPloshhad mnogougolnikov
Ploshhad mnogougolnikovDimon4
 
Ploshhad pryamougolnika
Ploshhad pryamougolnikaPloshhad pryamougolnika
Ploshhad pryamougolnikaDimon4
 
Format laporan 1
Format laporan 1Format laporan 1
Format laporan 1Erni Othman
 
Process documentation research of CAPI uses in VDSA project
Process documentation research of CAPI uses in VDSA project Process documentation research of CAPI uses in VDSA project
Process documentation research of CAPI uses in VDSA project ICRISAT
 
ΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥ
ΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥ
ΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥkaratzid
 
Cropping Pattern Changes in Andhra Pradesh
Cropping Pattern Changes in Andhra PradeshCropping Pattern Changes in Andhra Pradesh
Cropping Pattern Changes in Andhra PradeshICRISAT
 
Helsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, Palmu
Helsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, PalmuHelsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, Palmu
Helsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, PalmuService Design Breakfast
 

Viewers also liked (20)

gangways m.neger certificate
gangways m.neger certificategangways m.neger certificate
gangways m.neger certificate
 
Ploshhad pryamougolnika 5_klass
Ploshhad pryamougolnika 5_klassPloshhad pryamougolnika 5_klass
Ploshhad pryamougolnika 5_klass
 
Ploshhadi figur
Ploshhadi figurPloshhadi figur
Ploshhadi figur
 
Ploshhad mnogougolnika
Ploshhad mnogougolnikaPloshhad mnogougolnika
Ploshhad mnogougolnika
 
100 ДНІВ || Міністерство екології та природних ресурсів України
100 ДНІВ || Міністерство екології та природних ресурсів України100 ДНІВ || Міністерство екології та природних ресурсів України
100 ДНІВ || Міністерство екології та природних ресурсів України
 
Ploshhad treugolnika
Ploshhad treugolnikaPloshhad treugolnika
Ploshhad treugolnika
 
Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...
Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...
Whether Draft Animals are Disappearing from Rural India: Macro and Micro Leve...
 
Ploshhad trapecii
Ploshhad trapeciiPloshhad trapecii
Ploshhad trapecii
 
Ploshhad mnogougolnikov
Ploshhad mnogougolnikovPloshhad mnogougolnikov
Ploshhad mnogougolnikov
 
Doc1
Doc1Doc1
Doc1
 
Ploshhad pryamougolnika
Ploshhad pryamougolnikaPloshhad pryamougolnika
Ploshhad pryamougolnika
 
Cain and Abel Tools
Cain and Abel ToolsCain and Abel Tools
Cain and Abel Tools
 
Perfil a 4
Perfil  a 4Perfil  a 4
Perfil a 4
 
Format laporan 1
Format laporan 1Format laporan 1
Format laporan 1
 
Process documentation research of CAPI uses in VDSA project
Process documentation research of CAPI uses in VDSA project Process documentation research of CAPI uses in VDSA project
Process documentation research of CAPI uses in VDSA project
 
Audience - The Simpsons
Audience - The SimpsonsAudience - The Simpsons
Audience - The Simpsons
 
Gulf innovation web
Gulf innovation webGulf innovation web
Gulf innovation web
 
ΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥ
ΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥ
ΠΑΡΟΥΣΙΑΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΕΥΝΑΣ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ ΓΑΛΛΙΚΟΥ
 
Cropping Pattern Changes in Andhra Pradesh
Cropping Pattern Changes in Andhra PradeshCropping Pattern Changes in Andhra Pradesh
Cropping Pattern Changes in Andhra Pradesh
 
Helsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, Palmu
Helsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, PalmuHelsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, Palmu
Helsinki Service Jam 2013 keynote presentation - Maiju Nöyränen, Palmu
 

Similar to CAST encryption

Similar to CAST encryption (20)

Soal un matematika ips sma tahun 2014 13
Soal un matematika ips sma tahun 2014 13Soal un matematika ips sma tahun 2014 13
Soal un matematika ips sma tahun 2014 13
 
Kriptografi klasik
Kriptografi klasikKriptografi klasik
Kriptografi klasik
 
Matlab Tutorial Chapter 3
Matlab Tutorial Chapter 3Matlab Tutorial Chapter 3
Matlab Tutorial Chapter 3
 
Konsep dan Terapan Matriks
Konsep dan Terapan MatriksKonsep dan Terapan Matriks
Konsep dan Terapan Matriks
 
Algoritma rsa
Algoritma rsaAlgoritma rsa
Algoritma rsa
 
Trial penang 2014 spm matematik tambahan k1 [scan]
Trial penang 2014 spm matematik tambahan k1 [scan]Trial penang 2014 spm matematik tambahan k1 [scan]
Trial penang 2014 spm matematik tambahan k1 [scan]
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
 
Tutorialmatlab
TutorialmatlabTutorialmatlab
Tutorialmatlab
 
Penerapan Integral Tentu
Penerapan Integral TentuPenerapan Integral Tentu
Penerapan Integral Tentu
 
Soal un matematika ips sma tahun 2014 4
Soal un matematika ips sma tahun 2014 4Soal un matematika ips sma tahun 2014 4
Soal un matematika ips sma tahun 2014 4
 
Kriptografi - MD5
Kriptografi - MD5Kriptografi - MD5
Kriptografi - MD5
 
Kriptografi - Data Encryption Standard
Kriptografi - Data Encryption StandardKriptografi - Data Encryption Standard
Kriptografi - Data Encryption Standard
 
Soal un matematika ips sma tahun 2014 11
Soal un matematika ips sma tahun 2014 11Soal un matematika ips sma tahun 2014 11
Soal un matematika ips sma tahun 2014 11
 
19.advanced encryption standard (aes)
19.advanced encryption standard (aes)19.advanced encryption standard (aes)
19.advanced encryption standard (aes)
 
Grafika komputer
Grafika komputerGrafika komputer
Grafika komputer
 
Soal un matematika ips sma tahun 2014 12
Soal un matematika ips sma tahun 2014 12Soal un matematika ips sma tahun 2014 12
Soal un matematika ips sma tahun 2014 12
 
Soal un matematika ips sma tahun 2014 1
Soal un matematika ips sma tahun 2014 1Soal un matematika ips sma tahun 2014 1
Soal un matematika ips sma tahun 2014 1
 
Enkripsi RC4
Enkripsi RC4Enkripsi RC4
Enkripsi RC4
 
Konsep Array_sns
Konsep Array_snsKonsep Array_sns
Konsep Array_sns
 
persamaan kuadrat
persamaan kuadratpersamaan kuadrat
persamaan kuadrat
 

CAST encryption

  • 1. Aris Cahyadi Risdianto - 23210016 ET 4085 – Keamanan Jaringan Telekomunikasi CAST-128 Encryption 1. Pendahuluan Algoritma ini diciptakan pada tahun 1996 oleh Carlisle Adams dan Stafford Tavares menggunakan prosedur desain Cast; salah satu anggota keluarga dari cipher CAST, Cast-256 (merupakan mantan kandidat AES) juga diturunkan dari CAST-128. Menurut beberapa sumber, nama Cast didasarkan pada inisial penemunya, meskipun Bruce Schneier laporan klaim penulis bahwa "nama harus menyulap gambar acak" (Schneier, 1996). Algoritma ini mirip dengan kriptografi DES dengan menggunakan sistem Substitusi Permutasi Network (SPN) yang tampaknya memiliki ketahanan yang baik terhadap kripto analisis diferensial, kripto analisis linear , dan kripto analisis related-key. Cipher ini juga memiliki sejumlah properti kriptografi lain yang diinginkan, termasuk Avalanche , Strict Avalanche Criterion (SAC), Bit Independence Criterion (BIC), tidak ada complementation property, dan tidak adanya kunci lemah dan kunci semi-lemah. 2. Deskripsi Algoritma CAST-128 merupakan kelas algoritma enkripsi yang dikenal sebagai Feistel cipher, yang keseluruhan operasinya mirip dengan Data Encryption Standard (DES). Algoritma enkripsi yang lengkap diberikan dalam empat langkah berikut : INPUT : plain teks m1 ... m64, kunci K = k1 ... k128. OUTPUT : ciphertext c1 ... C64. 1. (Key Schedule) menghitung 16 pasang subkunci {KMI, Kri} dari K (Lihat Bagian 2.1 dan 2.4 untuk lebih detail). 2. (L0, R0) <- (m1. .. m64). Membagi plaintext ke kiri dan 32-bit kanan bagian L0 = m1 ... m32 dan R0 = M33 ... m64 3. (16 Rounds) untuk i dari 1 sampai 16, menghitung Li dan Ri sebagai berikut: Li = Ri-1, Ri = Li-1 ^ f (Ri-1, KMI, Kri), dimana f didefinisikan dalam Bagian 2.2 (F adalah tipe 1, tipe 2, atau Tipe 3, tergantung pada i). 4. c1 ... C64 <- (R16, L16). Mempertukarkan final cipher blok L16, R16 dan menggabungkannya untuk membentuk ciphertext. Dekripsi identik dengan algoritma enkripsi yang diberikan di atas, kecuali putaran (dan karena itu pasangan subkey) digunakan secara terbalik untuk menghitung (L0, R0) dari (R16, L16). 1
  • 2. Aris Cahyadi Risdianto - 23210016 ET 4085 – Keamanan Jaringan Telekomunikasi Illustration 1: Three Rounds of The CAST-128 Block Cipher 2.1 Pairs Round Keys CAST-128 menggunakan sepasang subkeys untuk setiap putarannya: 32-bit Km digunakan sebagai kunci "masking" dan 5-bit Kr digunakan sebagai "Rotasi" tombol. 2.2. Non-Identical Rounds Ada Tiga buah rounds function yang berbeda digunakan dalam CAST-128. Round tersebut adalah sebagai berikut (dimana "D" adalah input data ke fungsi f dan "Ia" - "Id" adalah byte paling signifikan ke bukan paling signifikan dari I). Perhatikan bahwa "+" dan "-" adalah penambahan dan pengurangan modulo 2 ** 32, "^" adalah bitwise XOR, dan "<<<" adalah melingkar kiri shift operasi. 2
  • 3. Aris Cahyadi Risdianto - 23210016 ET 4085 – Keamanan Jaringan Telekomunikasi Tipe 1: I = ((KMI + D) <<<Kri) f = ((S1 [Ia] ^ S2 [Ib]) - S3 [Ic]) + S4 [Id] Tipe 2: I = ((^ KMI D) <<<Kri) f = (([Ia] S1 - S2 [Ib]) + S3 [Ic]) ^ S4 [Id] Tipe 3: I = ((KMI - D) <<<Kri) f = ((S1 [Ia] + S2 [Ib]) ^ S3 [Ic]) - S4 [Id] Putaran 1, 4, 7, 10, 13, dan 16 menggunakan fungsi f Tipe 1. Putaran 2, 5, 8, 11, dan 14 menggunakan fungsi f Tipe 2. Putaran 3, 6, 9, 12, dan 15 menggunakan fungsi f Tipe 3. 2.3 Substitution box CAST-128 menggunakan delapan kotak substitusi: s-box S1, S2, S3, dan S4 adalah s-box untuk round functions, sedangkan S5, S6, S7, dan S8 adalah s-box untuk key schedule. Meskipun 8 s-box memerlukan total 8 KByte ruang penyimpanan, perhatikan bahwa hanya 4 KByte yang diperlukan selama enkripsi aktual / dekripsi karena subkunci biasanya dibangkitkan sebelum setiap inputan data. 2.4 Key Schedule Sebagai contoh kunci 128-bit tersebut adalah x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF, dimana x0 mewakili byte paling signifikan dan XF merupakan byte yang paling tidak signifikan. Maka Z0 .. zF menjadi intermediate (sementara) byte, sedangkan Si [] merupakan s-box ke i dan simbol "^" merupakan penambahan XOR. Maka Subkunci yang terbentuk dari x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF kunci 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] 3
  • 4. Aris Cahyadi Risdianto - 23210016 ET 4085 – Keamanan Jaringan Telekomunikasi 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] 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] 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] K17 = S5[z8] ^ S6[z9] ^ S7[z7] ^ S8[z6] ^ S5[z2] K18 = S5[zA] ^ S6[zB] ^ S7[z5] ^ S8[z4] ^ S6[z6] K19 = S5[zC] ^ S6[zD] ^ S7[z3] ^ S8[z2] ^ S7[z9] K20 = 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] K21 = S5[x3] ^ S6[x2] ^ S7[xC] ^ S8[xD] ^ S5[x8] K22 = S5[x1] ^ S6[x0] ^ S7[xE] ^ S8[xF] ^ S6[xD] K23 = S5[x7] ^ S6[x6] ^ S7[x8] ^ S8[x9] ^ S7[x3] K24 = 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] z8z9zAzB = xCxDxExF ^ S5[z7] ^ S6[z6] ^ S7[z5] ^ S8[z4] ^ S5[x9] zCzDzEzF = x4x5x6x7 ^ S5[zA] ^ S6[z9] ^ S7[zB] ^ S8[z8] ^ S6[xB] K25 = S5[z3] ^ S6[z2] ^ S7[zC] ^ S8[zD] ^ S5[z9] K26 = S5[z1] ^ S6[z0] ^ S7[zE] ^ S8[zF] ^ S6[zC] K27 = S5[z7] ^ S6[z6] ^ S7[z8] ^ S8[z9] ^ S7[z2] K28 = 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] 4
  • 5. Aris Cahyadi Risdianto - 23210016 ET 4085 – Keamanan Jaringan Telekomunikasi xCxDxExF = zCzDzEzF ^ S5[xA] ^ S6[x9] ^ S7[xB] ^ S8[x8] ^ S6[z3] K29 = S5[x8] ^ S6[x9] ^ S7[x7] ^ S8[x6] ^ S5[x3] K30 = S5[xA] ^ S6[xB] ^ S7[x5] ^ S8[x4] ^ S6[x7] K31 = S5[xC] ^ S6[xD] ^ S7[x3] ^ S8[x2] ^ S7[x8] K32 = S5[xE] ^ S6[xF] ^ S7[x1] ^ S8[x0] ^ S8[xD] 2.5 Variabel Keysize Algoritma enkripsi Cast-128 telah dirancang untuk memungkinkan ukuran kunci yang dapat bervariasi dari mulai 40 bit hingga 128 bit, dengan kenaikan setiap 8-bit (maksudnya ukuran kunci yang diijinkan adalah 40, 48, 56, 64, ..., 112, 120, dan 128 bit). Spesifikasi untuk pengoperasian keysize variabel, adalah sebagai berikut: 1) Untuk ukuran kunci kurang dan sama dengan 80 bit (yaitu,, 40, 48, 56 64, 72, dan 80 bit), algoritma ini sama seperti yang ditetapkan tetapi hanya menggunakan 12 rounds saja, bukan 16 rounds 2) Untuk ukuran kunci lebih besar dari 80 bit, algoritma menggunakan 16 rounds penuh 3) Untuk ukuran kunci kurang dari 128 bit, kunci akan diisi dengan nol byte (di posisi paling kanan, atau posisi paling tidak signifikan,) dari 128 bit yang kurang (karena Cast-128 key schedule mengasumsikan kunci input 128 bit). Perhatikan bahwa meskipun-CAST 128 dapat mendukung semua 12 ukuran kunci terdaftar di atas, tetapi 40 bit, 64 bit, 80 bit, dan 128 bit adalah ukuran yang ditemukan utilitas di lingkungan typical. Oleh karena itu, kemungkinan besar akan cukup bagi sebagian besar implementasi untuk mendukung beberapa subset saja dari kunci hanya empat ukuran. Untuk menghindari ambigu bila variabel operasi keysize digunakan, nama Cast-128 adalah dianggap sinonim dengan nama CAST5, yang memungkinkan keysize yang akan ditambahkan tanpa ambiguitas. Misalnya, Cast-128 dengan kunci 40-bit disebut sebagai CAST5-40, tetapi untuk kunci 128-bit secara eksplisit harus dimaksudkan, CAST5-128 harus digunakan. 3. Referensi • Internet Engineering Task Force (IETF), RFC 2144, “The CAST-128 Encryption Algorithm”, May 1997 • English Wikipedia, “CAST-128”, 2010. 5