I - Official Site of Robby Candra - Gunadarma...

35
I. Pendahuluan 1. 1 Latar belakang Berkat perkembangan teknologi yang begitu pesat memungkinkan manusia dapat berkomunikasi dan saling bertukar informasi/data secara jarak jauh. Antar kota antar wilayah antar negara bahkan antar benua bukan merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring dengan itu tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi yang saling dipertukarkan tersebut semakin meningkat. Begitu banyak pengguna seperti departemen pertahanan, suatu perusahaan atau bahkan individu-individu tidak ingin informasi yang disampaikannya diketahui oleh orang lain atau kompetitornya atau negara lain. Oleh karena itu dikembangkanlah cabang ilmu yang mempelajari tentang cara-cara pengamanan data atau dikenal dengan istilah Kriptografi. Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi adalah proses dimana informasi/data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal. Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan menjadi dua jenis yaitu : 1

Transcript of I - Official Site of Robby Candra - Gunadarma...

Page 1: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

I. Pendahuluan

1. 1 Latar belakang

Berkat perkembangan teknologi yang begitu pesat memungkinkan manusia dapat

berkomunikasi dan saling bertukar informasi/data secara jarak jauh. Antar kota antar wilayah

antar negara bahkan antar benua bukan merupakan suatu kendala lagi dalam melakukan

komunikasi dan pertukaran data. Seiring dengan itu tuntutan akan sekuritas (keamanan)

terhadap kerahasiaan informasi yang saling dipertukarkan tersebut semakin meningkat. Begitu

banyak pengguna seperti departemen pertahanan, suatu perusahaan atau bahkan individu-

individu tidak ingin informasi yang disampaikannya diketahui oleh orang lain atau

kompetitornya atau negara lain. Oleh karena itu dikembangkanlah cabang ilmu yang

mempelajari tentang cara-cara pengamanan data atau dikenal dengan istilah Kriptografi.

Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi

adalah proses dimana informasi/data yang hendak dikirim diubah menjadi bentuk yang

hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu.

Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut

menjadi informasi awal.

Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan

menjadi dua jenis yaitu :

Algoritma simetris

Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi adalah kunci yang sama

Algoritma asimetris

Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi menggunakan kunci

yang berbeda.

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma

kriptografi dapat dibedakan menjadi dua jenis yaitu :

Algoritma block cipher

1

Page 2: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana

blok-blok ini dioperasikan dengan fungsi enkripsi yang sama dan akan menghasilkan

informasi rahasia dalam blok-blok yang berukuran sama.

Algoritma stream cipher

Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil

(byte atau bit), biasanya satu karakter persatuan persatuan waktu proses, menggunakan

tranformasi enkripsi yang berubah setiap waktu.

Camellia merupakan algoritma kriptografi simetris blok cipher. Dalam Camellia

proses enkripsi dan dekripsi dilakukan pada blok data berukuran 128-bit dengan kunci yang

dapat berukuran 128-bit, 192-bit, 256-bit. Algoritma Camellia dikembangkan oleh :

Kazumaro Aoki (NTT - Nippon Telegraph and Telephone Corp.)

Tetsuya Ichikawa (Mitsubishi electric Corp.)

Masayuki Kanda (NTT – Nippon Telegraph and Telephone Corp.)

Mitsuru Matsui (Mitsubishi electric Corp.)

Shiho Moriai (NTT – Nippon Telegraph and Telephone Corp.)

Junko Nakajima (Mitsubishi electric Corp.)

Toshio Tokita (Mitsubishi electric Corp.)

Dimana versi 1.0 pada bulan Juli 2000, versi 2.0 pada September 2001 dan versi 2.1 pada

Febuari 2002.

II Kriptografi

2. 1 Dasar Kriptografi

2. 1. 1 Teori Kriptografi

Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau

pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari

pihak ketiga. Menurut Bruce Scheiner dalam bukunya "Applied Cryptography", kriptografi adalah

ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure).

Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan

Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:

2

Page 3: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan

tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak

memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis

yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.

Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya

manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).

Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik

otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian

data/informasi.

Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk

menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal

dirinya).

Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan

algoritma yang digunakan (yang artinya apabila algoritma yang digunakan telah diketahui maka

pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma

tersebut), kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada

algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan

masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.

Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :

Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).

Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.

Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.

Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi

plaintext, sehingga berupa data awal/asli.

Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan

dekripsi.

Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi.

Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan

menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti.

3

Page 4: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

plaintext ciphertext plaintext

kunci enkripsi kunci dekripsi

Gambar 2.1 Diagram proses enkripsi dan dekripsi

Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi (disamping pula

algoritma yang digunakan) sehingga kerahasiaannya sangatlah penting, apabila kerahasiaannya

terbongkar, maka isi dari pesan dapat diketahui.

Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi) menggunakan

e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C (ciphertext), notasinya :

Ee(M) – C

Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi)

menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M (plaintext),

notasinya :

Dd(C) = M

Sehingga dari dua hubungan diatas berlaku :

Dd(Ee(M)) = M

2. 1. 2 Algoritma Simetris dan Asimetris

2. 1. 2. 1 Algoritma Simetris

Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci enkripsi

yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-

key algorithm.

Plaintext ciphertext plaintext

kunci enkripsi (K) kunci dekripsi (K)

4

enkripsi dekripsi

enkripsi dekripsi

Page 5: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma simetris

Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu

suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah rahasia bagi

pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia

(secret-key algorithm).

Kelebihan :

Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.

Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time

Kelemahan :

Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang

berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.

Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”

Contoh algoritma : TwoFish, Rijndael, Camellia

2. 1. 2. 2 Algoritma Asimetris

Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci

enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini menggunakan

dua kunci yakni kunci publik (public key) dan kunci privat (private key). Kunci publik

disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh si pengguna.

Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang

digunakan.

Plaintext ciphertext plaintext

kunci enkripsi (K1) kunci dekripsi (K2)

Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma asimetris

5

enkripsi dekripsi

Page 6: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi sementara

kunci privat (private key) digunakan sebagai kunci dekripsi.

Kelebihan :

Masalah keamanan pada distribusi kunci dapat lebih baik

Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit

Kelemahan :

Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris

Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan

dengan algoritma simetris.

Contoh algoritma : RSA, DSA, ElGamal

2. 1. 3 Block Cipher dan Stream Cipher

Jika kita melihat berdasarkan ukuran serta format data yang akan diproses, maka

algoritma kriptografi dapat dibagi menjadi dua bagian yang utama yaitu:

Block Cipher, algoritma kriptografi ini bekerja pada suatu data yang berbentuk

blok/kelompok data dengan panjang data tertentu (dalam beberapa byte), jadi dalam sekali

proses enkripsi atau dekripsi data yang masuk mempunyai ukuran yang sama.

Stream cipher, algoritma yang dalam operasinya bekerja dalam suatu pesan berupa bit

tunggal atau terkadang dalam suatu byte, jadi format data berupa aliran dari bit untuk

kemudian mengalami proses enkripsi dan dekripsi.

Pada algoritma penyandian blok (block cipher), plainteks yang masuk akan diproses

dengan panjang blok yang tetap yaitu n, namun terkadang jika ukuran data ini terlalu panjang

maka dilakukan pemecahan dalam bentuk blok yang lebih kecil. Jika dalam pemecahan

dihasilkan blok data yang kurang dari jumlah data dalam blok maka akan dilakukan proses

pading (penambahan beberapa bit).

2. 2 Mode Operasi dalam Block Cipher

\2. 2. 1 Electronic Codebook (ECB)

6

Page 7: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Pada mode operasi ECB sebuah blok input plaintext dipetakan secara statis ke sebuah blok

output ciphertext. Sehingga tiap plaintext yang sama akan menghasilkan ciphertext yang selalu sama

pula. Sifat- sifat dari mode operasi ECB :

Sederhana dan efisien

Memungkinkan implementasi parallel

Tidak menyembunyikan pola plaintext

Dimungkinkan terjadi adanya active attack.

Skema dari mode operasi ECB dapat digambarkan sebagai berikut :

Sender Receiver

Gambar 2.4 Skema Mode Operasi ECB

Cipher Block Chaining (CBC)

Pada mode oparasi ini hasil enkripsi dari blok sebelumnya mempengaruhi hasil enkripsi

selanjutnya, atau enkripsi sebeluimnya menjadi feedback pada enkripsi blok saat itu., jadi tiap blok

ciphertext bergantung bukan hanya pada blok plaintext-nya tapi bergantung pula pada blok-blok

7

P1

P1

P1

C1

C1

C1

E

E

E C1

C1

C1

P1

P1

P1

E

E

E

Page 8: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

plaintext sebelumnya. Sehingga untuk plaintext yang sama, belum tentu menghasilkan ciphertext

yang sama pula.

Skema dari mode operasi CBC dapat digambarkan sebagai berikut :

Sender Receiver

Gambar 2.5 Skema Mode Operasi CBC.

Mula-mula sebelum si pengirim hendak mengirimkan pesannya kepada si penerima, dia

terlebih dahulu harus meng-XOR plaintext dengan IV (initialization vector) baru kemudian

dienkripsi, setelah itu baru dikirimkan ciphertext pertamanya kepada si penerima. Plaintext ke-2

pun demikian, harus di-XOR terlebih dahulu dengan ciphertext sebelumnya sebelum mengalami

proses enkripsi baru kemudian dikirimkan ke si penerima sebagai ciphertext 2 dan seterusnya.

Sifat-sifat dari mode operasi CBC :

Lebih aman dari active attacks dibandingkan mode operasi ECB

Error pada satu ciphertext dapat berakibat parah

Menutupi pola plaintext

Implementasi parallel belum diketahui

8

P1

P1

P1

C1

C1

C1

E

E

E C1

C1

C1

P1

P1

P1

E

E

E

IVIV

Page 9: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

III Algoritma Camellia

3. 1 Notasi dan Konvensi

3. 1. 1 Radix

Dalam tulisan ini akan digunakan awalan 0x untuk menunjukkan bahwa suatu bilangan

adalah bilangan heksadesimal.

3. 1. 2 Notasi

Dalam tulisan ini digunakan beberapa notasi sebagai berikut:

B menunjukkan sebuah raang vektor dengan 8-bit ( byte) elemen; dimana B := GF(2)8.

W menunjukkan sebuah ruang vektor dengan 32 bit (word) elemen; dimana W := B4 .

L menunjukkan sebuah ruang vektor dengan 64-bit (double word) elemen; dimana L := B8.

Q menunjukkan sebuah ruang vektor dengan 128-bit (quad word) elemen; dimana Q := B 16.

Sebuah elemen dengan akhiran ( n ) ( misal: x (n )) menunjukkan bahwa elemen tersebut

memiliki panjang n-bit.

Sebuah elemen dengan akhiran L (misal: XL) menunjukkan setengah bagian sebelah kiri dari x.

Sebuah elemen dengan akhiran R (e.g. XR) menunjukkan setengah bagian sebelah kanan dari

x.

3.1.3 Daftar Simbol

operasi bitwise exclusive-OR.

║ hubungan serangkai antara dua buah operand.

<<<n rotasi "left circular" dari sebuah operand sepanjang n bit.

operasi bitwise AND.

operasi bitwise OR.

komplemen bitwise dari x.

3. 1. 4 Tata Urutan Bit/Byte

Tulisan ini menggunakan tata urutan "big endian". Contoh berikut menunjukkan secara

berurutan bagaimana cara menyusun sebuah nilai 128-bit Q(128) dari dua buah nilai 64-bit Li(64) (i

9

Page 10: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

=1,2), empat buah nilai 32-bit Wi (32)(i =1,2,3.4), enam belas nilai 8-bit Bi(8) (i =1,2,....16), atau

dari 128 buah nilai 1-bit Ei(1) (i=1,2,…,128).

Q(128) = L1(64) ║ L2(64)

= W1(32) ║ W2(32) ║ W3(32) ║ W4(32)

= B1(8) ║ B2(8) ║ B3(8) ║ ….║ B14(8) ║ B15(8) ║ B16(8)

= E1(1) ║ E2(1) ║ E3(1) ║ …. ║ E126(1) ║ E127(1) ║ E128(1)

Contoh Numerik:

Q(128) = 0x0123456789ABCDEF0011223344556677(128)

L1(64) = QL(64) = 0x0l23456789ABCDEF(64)

L2(64) = QR(64) = 0x0011223344556677(64)

W1(32) = L1L(32) = 0x01234567(32)

W2(32) = L1R(32) = 0x89ABCDEF(32)

W3(32) = L2L(32)= 0x00112233(32)

W4(32) = L2R(32) = 0x44556677(32)

B1(8) = 0x01(8), B2(8) = 0x23(8), B3(8) = 0x45(8), B4(8) = 0x67(8),B5(8) = 0x89(8), B6(8) = 0xAB(8), B7(8) = 0xCD(8), B8(8) = 0xEF(8),B9(8) = 0x00(8), B10(8) = 0x11(8), B11(8) = 0x22(8), B12(8) = 0x33(8),B13(8) = 0x44(8), B14(8) = 0x55(8), B15(8) = 0x66(8), B16(8) = 0x77(8),E1(1) = 0(1), E2(1) = 0(1), E3(1) = 0(1), E4(1) = 0(1),E5(1) = 0(1), E6(1) = 0(1), E7(1) = 0(1), E8(1) = 0(1),

.

.

.E121(1) = 0(1), E122(1) = 0(1), E123(1) = 0(1), E124(1) = 0(1),E125(1) = 0(1), E126(1) = 0(1), E127(1) = 0(1), E128(1) = 0(1)

Q(128)<<<1 = E2(1) ║ E3(1) ║ E4(1) ║ …. ║ E126(1) ║ E127(1) ║ E128(1) ║ E1(1)

= 0x02468ACF13579BDE0022446688AACCEE(128)

Komponen-komponen dasar yang membangun algoritma enkripsi Camellia

adalah komponen fungsi-F (F function), fungsi-P (function). Fungsi-S (S function), 4 buah

sbox, fungsi-FL (FL function), dafi fungsi-FL-1(FL-1 function). Penjelasan lebih lanjut mengenai

struktur algoritrma enkripsi Camellia dapat dilihat pada subbab berikut.

3. 2 Deskripsi Algoritma Camellia

Camellia sebenarnya bukanlah suatu bentuk algoritma enkripsi yang benar-benar baru

dan berbeda karena memiliki banyak kemiripan dengan para pendahulunya seperti AES

(Advanced Encryption Standard) / Rijndael ataupun Twofish. Dalam menjelaskan prosedur

10

Page 11: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Camellia dapat dibagi menjadi dua bagian yakni prosedur Camellia menggunakan 128-bit key

dan prosedur Camellia menggunakan 192-bit key dan 256-bit key.

3. 2. 1 Prosedur menggunakan 128-bit key

3. 2. 1. 1 Prosedur Enkripsi

Bagian pengacak data memiliki struktur Feistel 18-round dengan dua layer fungsi FL

/ FL-1 setelah round ke-6 dan round ke-12, dan operasi XOR 128-bit sebelum round pertama

dan setelah round terakhir. Pada bagian penjadwal kunci men-generate subkey kw t (64), (t = 1,

2, 3, 4), ku(64) (u = 1 ,2 , . . . , 18) dan klv(64) (v = 1, 2, 3, 4) dari suatu kunci rahasia K. Pada

bagian pengacak data, mula-mula pesan plaintext M(128) di-XOR dengan kw1(64) ║ kw2(64) dan

dipisah menjadi L0(64) dan R0(64) dengan panjang yang sama dimisalkan M(128) (kw1(64) ║

kw2(64))= L0(64) ║ R0(64) . Kemudian operasi-operasi berikut dilakukan pada mulai dari r = 1 hingga

r = 18 kecuali untuk r = 6 dan r = 12.

Lr=Rr-1 F(Lr-1 , kr),

Rr = Lr-1

Untuk r = 6 dan 12, operasi-operasi berikut inilah yang dilakukan

Lr' = Rr-1 F(Lr-1, kr),

Rr ‘ = Lr-1 ,

Lr = FL(Lr’, kl2r/6-1),

Rr = FL-1(Rr’ , kl2r/6-1),

Terakhir R18(64) dan L18(64) dirangkai dan di-XOR dengan kw3(64) ║ kw4(64) dan hasilnya

merupakan ciphertext dimisalkan C(128) = (R18(64) || L18(64)) (kw3(64) ║ kw4(64)).

11

Page 12: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 3.1 Prosedur enkripsi Camellia untuk kunci 128-bit.

3. 2. 1. 2 Prosedur Dekripsi

Proses dekripsi Camellia dapat dilakukan menggunakan cara yang sama dengan

prosedur enkripsi namun dengan membalik urutan subkey.

Pada bagian pengacak data memiliki struktur Feistel 18-round dengan dua layer fungsi

FL / FL-1 setelah round ke-6 dan round ke-12, dan operasi XOR 128-bit sebelum round

pertama dan setelah round terakhir. Pada bagian penjadwal kunci men-generate subkey kw t(64)

(t = 1, 2, 3, 4), ku(64) (u = 1 ,2 , . . . , 18) dan klV(64) (v = 1 , 2, 3, 4) dari suatu kunci rahasia K.

Pada bagian pengacak data, mula-mula pesan chipertext C(128) di-XOR dengan kw3(64) ║ kw4(64))

dan dipisah menjadi R18(64) dan L18(64) dengan panjang yang sama dimisalkan C(128) (kw3(64)

12

Page 13: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

║ kw4(64)) = R18(64) ║ L18(64). Kemudian operasi-operasi berikut dilakukan pada mulai dari r = 18

hingga r = 1 kecuali untuk r = 13 dan r = 7.

Rr-1 = Lr F(Rr, kr),

Lr-1 = Rr,

Untuk r = 13 dan 7, operasi-operasi berikut inilah yang dilakukan

Lr' = Lr F(Rr, kr),

Lr-1‘ = Rr ,

Rr-1 = FL(Rr-1’, kl2(r-1) / 6),

Lr-1 = FL-1(Lr-1’ , kl2(r-1) / 6),

Terakhir L0(64) dan R0(64) dirangkai dan di-XOR dengan kw1(64) || kw2(64), dan hasilnya

merupakan plaintext dimisalkan M(128) = L0(64) || R0(64)) (kw1(64) || kw2(64))

13

Page 14: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 3.2 Prosedur deskripsi Camellia untuk kunci 128-bit.

3. 2. 2 Prosedur menggunakan 192-bit key dan 256-bit key

3. 2. 2. 1 Prosedur Enkripsi

Prosedur enkripsi dari Camellia menggunakan 192-bit key dan 256-bit key sebenarnya

sama saja dengan prosedur enkripsi dan Camellia menggunakan 128-bit key, hanya saja

menggunakan 24 round bukannya 18 round.

Bagian pengacak data memiliki struktur Feistel 24-round dengan tiga layer fungsi FL /

FL-1 setelah round ke-6, round ke-12 dan round ke-18, dan operasi XOR 128-bit sebelum round

pertama dan setelah round terakhir. Pada bagian penjadwal kunci men-generate subkey kwt(64) (t = 1,

2, 3, 4), ku(64)) (u = 1, 2, ..., 24) dan klv(64) (v = 1, 2, 3, 4, 5, 6) dari suatu kunci rahasia K. Pada bagian

pengacak data, mula-mula pesan plaintext M(128) di-XOR dengan kw1(64) || kw2:(64) dan dipisah menjadi L0(64)

14

Page 15: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

dan R0(64) dengan panjang yang sama dimisalkan M(128) (kw1(64) || kw2(64)) = L0(64) || R0(64). Kemudian

operasi-operasi berikut dilakukan pada mulai dari r = 1 hingga r = 24 kecuali untuk r = 6, r = 12 dan r =

18.

Lr=Rr-1 F(Lr-1 , kr),

Rr = Lr-1

Untuk r = 6, 12 dan 18, operasi-operasi berikut inilah yang dilakukan

Lr' = Rr-1 F(Lr-1, kr),

Rr ‘ = Lr-1 ,

Lr = FL(Lr’, kl2r/6-1),

Rr = FL-1(Rr’ , kl2r/6-1),

Terakhir R24(64) dan L24(64) dirangkai dan di-XOR dengan kw3(64) || kw4(64), dan hasilnya

merupakan ciphertext dimisalkan C(128) = (R24(64) || L24(64)) (kw3(64) || kw4(64)).

15

Page 16: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 3.3 Prosedur enkripsi Camellia untuk kunci 192/256

3. 2. 2. 2 Prosedur Dekripsi

Prosedur dekripsi dari Camellia menggunakan 192-bit key dan 256-bit key

sebenarnya sama saja dengan prosedur dekripsi dari Camellia menggunakan 128-bit key,

hanya saja menggunakan 24 round bukannya 18 round. Proses dekripsi Camellia dapat

dilakukan menggunakan cara yang sama dengan prosedur enkripsi namun dengan membalik

urutan subkey.

16

Page 17: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Pada bagian pengacak data memiliki struktur Feistel 24-round dengan tiga layer

fungsi FL / FL-1 setelah round ke-6, round ke-12 dan round ke-18, dan operasi XOR 128-bit

sebelum round pertama dan setelah round terakhir. Pada bagian penjadwal kunci men-

generate subkey kwt(64) (t = 1, 2, 3, 4), ku(64) (u = 1, 2, . . . , 24) dan kl v ( 6 4 ) (v = 1, 2, 3, 4) dari

suatu kunci rahasia K. Pada bagian pengacak data, mula-mula pesan chipertext C(128) di-XOR

dengan kw3(64) || kw4(64) dan dipisah menjadi R24(64) dan L24(64) dengan panjang yang sama

dimisalkan C(128) (kw3(64) || kw4(64)) = R24(64) || L24(64). Kemudian operasi-operasi berikut

dilakukan pada mulai dari r = 24 hingga r = 1 kecuali untuk r = 19, r = 13 dan r = 7.

Rr-1 = Lr F(Rr, kr),

Lr-1 = Rr,

Untuk r = 19, 13 dan 7, operasi -operasi berikut inilah yang dilakukan

Lr' = Lr F(Rr, kr),

Lr-1‘ = Rr ,

Rr-1 = FL(Rr-1’, kl2(r-1) / 6),

Lr-1 = FL-1(Lr-1’ , kl2(r-1) / 6),

Terakhir L0(64) dan R0(64) dirangkai dan di-XOR dengan kw1(64) || kw2(64), dan hasilnya

merupakan plaintext dimisalkan M(128) = (L0(64) || R0(64) (kw1(64) || kw2(64)).

17

Page 18: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 3.4 Prosedur deskripsi Camellia untuk kunci 192/256-bit.

3. 2. 3 Penjadwal Kunci

Pada bagian kunci Camellia, kami akan menggunakan dua variabel 128-bit KL(128)

dan KR(128) dan empat variabel 64-bit KLL(64), KLR(64), KRL(64) yang didefinisikan sebagai berikut :

K(128) = KL(128); KR(128) = 0, untuk kunci 128-bit,

K(192) = KL(128); KRR(64) = KRL(64), untuk kunci 192-bit,

K(256) = KL(128) || KR(128); untuk kunci 256-bit,

KL(128) = KLL(64) || KLR(64); untuk sembarang kunci,

KR(128) = KRL(64) || KRR(64);

18

Page 19: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Menggunakan variabel-variabel ini, di-generate dua buah variabel 128-bit KA(128) dan

KB(128), dimana KB(128) hanya digunakan jika panjang kunci K 192-bit dan 256-bit. Mula-mula K

= KL(128) di-XOR dengan KR(1 28) dan di-enkripsi dengan 2 round menggunakan nilai

konstanta Σ1(64) dan Σ2(64) sebagai "kunci". Hasilnya di-XOR dengan KL(128) dan di-enkripsi

lagi 2 round dengan nilai konstanta Σ3(64) dan Σ4(64) sebagai "kunci", hasilnya merupakan

KA(128). Kemudian KA(128) di-XOR dengan KR(128) dan di-enkripsi lagi 2 round dengan nilai

konstanta Σ5(64) dan Σ6(64) dan menghasilkan KB(128). Σi didefinisikan sebagai nilai kontinu dari

digit ke-2 hexadesimal hingga digit ke-17 hexadesimal dari suatu representasi hexadesimal

dan akar kuadrat ke-i deret bilangan prima.

Subkey-subkey kwt(64), ku(64), dan klV(64) degenerated dari menggeser secara rotasi nilai-

nilai dari KL(128), KR(128), KA(128), dan Ku(128).

Tabel 3.1 The key schedule constants

19

Page 20: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 3.5 Key schedule

Dengan mengeset KRR(64) = KRL(64), versi kunci 256-bit akan kompatibel dengan versi

kunci 192-bit sementara itu versi kunci 128-bit tidak kompatibel dengan versi-versi yang lain

karena perbedaan jumlah round pada prosedur enkripsi dan dekripsi.

20

Page 21: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Tabel 3.2 Subkey for 128-bit secret key Tabel 3.3 Subkey for 192/256-bit secret key

3. 2. 4 Komponen-komponen Carmelia

3. 2. 4. 1 F-function

F-function didefinisikan sebagai berikut :

F : L x L → L

(X(64), k(64)) → Y(64) = P(S(X(64) k(64)),

21

Page 22: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

F-function dapat digambarkan sebagai berikut :

Gambar 3.6 F-function

3. 2. 4. 2 P-function

P-function adalah bagian dari F-function yang didefinisikan sebagai berikut :

P : L → L

Z1(8) ║ Z2(8) ║ Z3(8) ║ Z4(8) ║ Z5(8) ║ Z6(8) ║ Z7(8) ║ Z8(8) → Z’1(8) ║ Z’2(8) ║ Z’3(8) ║ Z’4(8) ║

Z’5(8) ║ Z’6(8) ║ Z’7(8) ║ Z’8(8)

dimana :

22

Page 23: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Transformasi di atas dapat digambarkan secara ekivalen sebagai berikut :

3. 2. 4. 3 S-function

S-function adalah bagian dari F-function yang didefinisikan sebagai berikut :

S : L → L

I1(8) ║ I2(8) ║ I3(8) ║ I4(8) ║ I5(8) ║ I6(8) ║ I7(8) ║ I8(8) → I’1(8) ║ I’2(8) ║ I’3(8) ║ I’4(8) ║ I’5(8) ║ I’6(8)

║ I’7(8) ║ I’8(8)

dimana :

I’1(8) = S1(I1(8))

I’2(8) = S1(I2(8))

I’3(8) = S1(I3(8))

I’4(8) = S1(I4(8))

I’5(8) = S1(I5(8))

I’6(8) = S1(I6(8))

I’7(8) = S1(I7(8))

I’8(8) = S1(I8(8))

23

Page 24: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

3. 2. 4 S-box

Empat buah s-box yang digunakan oleh Camellia adalah s-box 1, s-box 2, s-box 3, dan

s-box 4 yang secara detail adalah sebagai berikut :

cara baca tabel dibawah ini s1(0) = 112, s1(1) = 130, … s1(255) = 158.

Tabel 3.4 S-box 1.

Tabel 3.5 S-box 2.

24

Page 25: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Tabel 3.6 S-box 3.

Tabel 3.7 S-box 4.

3. 2. 4. 5 FL-function

FL-function didefinisikan sebagai berikut :

FL : L x L → L

(XL(32) ║ XR(32), klR(32) ║ klR(32)) → YL(32) ║ YR(32),

dimana :

YR(32) = ((XL(32) klL(32)) <<1) XR(32),

YL(32) = (YR(32) klR(32)) XL(32),

25

Page 26: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 3.7 FL-function.

3. 2. 4. 6 FL-1-function

FL-1-function didefinisikan sebagai berikut :

FL-1 : L x L → L

(YL(32) ║ YR(32), klL(32) ║ klR(32)) → XL(32) ║ XR(32),

dimana :

XL(32) = (YR(32) klR(32)) YL(32),

XR(32) = ((XL(32) klL(32)) <<1) YR(32),

26

Page 27: I - Official Site of Robby Candra - Gunadarma …robby.c.staff.gunadarma.ac.id/Downloads/files/4543/aiqon... · Web viewContoh algoritma : TwoFish, Rijndael, Camellia 2. 1. 2. 2 Algoritma

Gambar 3.8 FL-1 –function.

Daftar pustaka :

1. K. Aoki, T. Ichikawa, M. Kanda, M. Matsui, S.Moriai, J. Nakajima, T. Tokita.

Specification of Camellia – a 128-bit block cipher. NTT and Mitsubishi Electronic

Corporation, 2000. Terdapat di http://info.isl.ntt.co.jp/camellia/

2. Yiqun Lisa Yin. A Note on the Block Cipher Camellia. NTT Multimedia

Communication Laboratories, 2000.

3. Keating, Brigaud. ‘Reuse Methodology Manual’ Kluwer Academic Publisher, London

2000.

4. Schneider, Bruce.’Applied Cryptography’ John Wiley & Sons Inc, 1996.

27