6
Gambar di atas menunjukkan bahwa fungsi enkripsi CAST-128 menerima masukan 32 bit data half, yang didapatkan dari 64 bit blok yang telah dibagi dua pada saat 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 masukan dari kotak-S 1 dan delapan bit kedua akan menjadi masukan dari kotak-S 2. Ingat bahwa karena kotak-S yang dipakai adalah kotak 8 x 32, dari 8 bit masukan akan dihasilkan 32 bit keluaran. Selanjutnya hasil dari kedua kotak-S tadi akan digabung dengan menggunakan operasi b. setelah itu hasil dari operasi b akan digabung dengan hasil dari kotak-S 3 dengan masukan delapan bit ketiga. Fungsi yang digunakan kali ini adalah operasi c. delapan bit terakhir akan menjadi masukan kotak-S keempat dan hasilnya akan digabung dengan hasil operasi c menggunakan operasi d. hasil yang diperoleh dari seluruh fungsi ini memiliki panjang 32 bit, sesuai dengan 32 bit masukan. Tiga puluh dua bit hasil ini akan kembali masuk ke putaran Feistel. Empat operasi a, b, c dan d inilah yang berbeda di tiga jenis fungsi CAST. 1. Tipe 1 a. Operasi a adalah penjumlahan bit modulo 2 32 dan penggeseran bit ke kiri (circular left-shift operation). Bit-bit masukan akan ditambahkan

Ilmu Kriptografi Hal 244-263

Embed Size (px)

DESCRIPTION

Ilmu Kriptografi

Citation preview

Page 1: Ilmu Kriptografi Hal 244-263

Gambar di atas menunjukkan bahwa fungsi enkripsi CAST-128 menerima masukan 32 bit data half, yang didapatkan dari 64 bit blok yang telah dibagi dua pada saat 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 masukan dari kotak-S 1 dan delapan bit kedua akan menjadi masukan dari kotak-S 2. Ingat bahwa karena kotak-S yang dipakai adalah kotak 8 x 32, dari 8 bit masukan akan dihasilkan 32 bit keluaran. Selanjutnya hasil dari kedua kotak-S tadi akan digabung dengan menggunakan operasi b. setelah itu hasil dari operasi b akan digabung dengan hasil dari kotak-S 3 dengan masukan delapan bit ketiga. Fungsi yang digunakan kali ini adalah operasi c. delapan bit terakhir akan menjadi masukan kotak-S keempat dan hasilnya akan digabung dengan hasil operasi c menggunakan operasi d. hasil yang diperoleh dari seluruh fungsi ini memiliki panjang 32 bit, sesuai dengan 32 bit masukan. Tiga puluh dua bit hasil ini akan kembali masuk ke putaran Feistel.

Empat operasi a, b, c dan d inilah yang berbeda di tiga jenis fungsi CAST.

1. Tipe 1

a. 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 iri sebanyak Kri (sesuai putaran ke-i pula).

b. Operasi b adalah XOR.

c. Operasi c adalah pengurangan bit modulo 232.

d. Operasi d adalah penjumlahan bit modulo 232.

2. Tipe 2a. 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).

b. Operasi b adalah pengurangan bit modulo 232

c. Operasi c adalah penjumlahan bit modulo 232

d. Operasi d adalah XOR.

Page 2: Ilmu Kriptografi Hal 244-263

3. Tipe 3

a. Opersi 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 dengan putaran ke-i pula).

b. Operasi b adalah penjumlahan bit modulo 232 .c. Operasi c adalah XOR.

d. Operasi d adalah pengurangan bit modulo 232.

Secara matematis ketiga tipe tersebut dinyatakan dengan:

Tipe 1:

I = ((Kmi + D) <<< Kri)

f = ((S1[Ia] ^ S2[Ib]) – S3 [Ic]) + S4 [Id]

Tipe 2:

I = ((Kmi ^ D) <<< Kri)

f = ((S1[Ia] + S2[Ib]) ^ S3[Ic]) – S4[Id]

Tipe 3:

I = ((Kmi – D) <<< Kri)

f = ((S1[Ia] + S2[Ib]) ^ S3[Ic]) – S4[Id]

Dimana D adalah 32 bit data masukan, I adalah hasil operasi a terhadap D. 1 dibagi menjadi empat bagian sepanjang 8 bit 1a, 1b, 1c, dan 1d 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 6.45 dimana empat operasi a, b, c dan d sudah diganti sesuai tipenya.

Page 3: Ilmu Kriptografi Hal 244-263

Jadwal pemakaian ketiga tipe fungsi tersebut dalam jaringan Feistel diberikan di bawah ini:

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

Algoritma enkripsi CAST-128 didesain untuk mampu menerima berbagai macam kunci dengan panjang yang berbeda mulai dari 40 bit sampai dengan 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 dua belas putaran Feistel dari enam belas yang seharusnya. 2. Untuk panjang kunci lebih dari 80 bit, algoritma yang telah diutarakan disunakan penuh dengan enam belas putaran. 3. Untuk kunci kurang dari 128 bit, kunci akan ditambah dengan bit 0 di bagian kana atau di bagian least significant byte sampai mencapai kunci 128 bit.

Aplikasi Telnet menggunakan algoritma enkripsi CAST-128 dengan mode cipher feedback (CFB). Panjang kunci yang diperbolehkan hanya 40 bit dan 128 bit. Jika panjang kunci 40 bit, perintah yang digunakan adalah CAST_40_CFB64. Sedangkan jika panjang kunci 128 bit, perintah yang digunakan adalah CAST124_CFB64.

Pada pengiriman data menggunakan telnet, pengiriman akan membangkitkan dahulu initiation 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 kunci-id dengan perintah ENC_KEYID. Setelah itu pengirim memasukkan perintah START dan END. Data akan dienkripsikan menggunakan CAST-128 mode CBF 64 bit.

6.17 ALGORITMA KODE RIVEST’S

Kunci simetri (secret key) adalah salah satu algoritma kriptografi yang digunakan untuk melakukan dekripsi dan enkripsi, dengan menggunakan kunci rahasia untuk setiap bit (aliran kode) dan bit per blok (blok kode). Salah satu ilmuwan kriptografi yang mendalami metode ini adalah Ronald Linn Rivest dari Laboratorium RSA, suatu badan riset di bidang kriptografi dan sistem keamanan dari RSA Secirity Inc., sebuah organisasi komersial yang merupakan hasil merger antara Security Dinamic dan RSA Data Security yang didirikan oleh 3 penemu algoritma kunci publik RSA, Ron Rivest, Adi Shamir dan Leonard Adleman [RIV03]. Berkat penemuan RSA ini, Rivest mendapat penghargaan Turing Award dari ACM (Association for Computing Machine) pada tahun 2002 [RSA05]. Empat buah algoritma kunci simetri yang digunakannya adalah RC2, RC4, RC5, dan RC6. Adapun RC1 tidak pernah didedikasikan dan RC3 berhasil dipecahkan saat dikembangkan di RSA Security.

RC2 adalah blok kode yang menggunakan variable berupa ukuran kunci. Dengan mengubah-ubah ukuran kunci ini maka performansi RC2 dapat menjadi dua atau tiga kali lebih baik disbanding DES (Data Encryption Standard). Sama halnya dengan RC2, RC4 juga menggunakan variable berisi ukuran kunci. Hanya saja algoritma ini menggunakan aliran kode dan digunakan secara luas pada sistem enkripsi keamanan seperti protocol SSL (Secure Sockets Layer). Sedangkan RC6, yang merupakan perkembangan dari R5, adalah golongan blok kode yang menggunakan tiga parameter,

Page 4: Ilmu Kriptografi Hal 244-263

yaitu ukuran blok (32, 64 atau 128), ukuran kunci primer (0-2048 bit), dan round number (0-255). Dua algoritma ini menyediakan berbagai format pengenkripsian suatu pesan.

Keempat algoritma di atas tidak seluruhnya dipatenkan, namun sudah diimplementasikan di banyak aplikasi kriptografi dengan segala kekurangan dan kelebihan yang dimilikinya.

6.17.1 ALGORITMA RC2

RC2 adalah blok kode yang menggunakan 64 bit sebagai ukuran per bloknya dengan kunci yang ukurannya bervariasi (0-1024 bit). Dengan mengubah-ubah ukuran kunci ini maka performansi RC2 dapat menjadi dua atau tiga kali lebih baik disbanding DES, algoritma yang dikembangkan oleh NSA (National Security Agent) dan telah ditetapkan sebagai algoritma enkripsi standar oleh pemerintah AS pada tahun 1976-1997 (yang kemmudian digantikan oleh AES, Advanced Encryption Standard). Kotak-S RC2 berupa table satu dimensi berisi byte seperti di bawah ini:

Awalnya kunci masukan dari pemakai ditambah (jika kunci kurang dari 128 byte) menggunakan kotak-S RC2 dengan fungsi sebagai berikut:

for I (Len to 127 do

KeyB[i] ( sBox[KeyB[i-Len] +

KeyB[i-1])]

Endfor

KeyB[0] ( sBox[(KeyB[0]]

Len = panjang kunci