Anda di halaman 1dari 16

Tugas Keamanan Data H

Disusun Oleh :

Dwiki Wicaksono (672017111)


Review Beberapa Chiper Alir dan Chiper Blok

Didalam bab ini kita membahas review beberapa cipher alir dan cipher blok saja yang
popular saja. Cipher alir yang dibahas adalah RC4 dan A5, sedangkan cipher blok yang
dibahas adalah DES, Triple DES (3DES), GOST, RC5, hingga yang terbaru adalah AES
(Advanced Encryption Standard)

6.1 RC4
RC4 (atau ARCFOUR) adalah cipher alir yang digunakan secara luas pada sistem
keamanan seperti protokol SSL (Secure Socket Layer), Algoritma kriptogafi ini sederhana
dan mudah diimplementasikan, RC4 dibuat pada tahun 1987 oleh Ron Rivest dari
Laboratorium RSA (RC adalah singkatan dari Ron’s Code, ada juga yang menyebutnya
Rivest Cipher). Selain dalam SSL, RC4 banyak digunakan sistem keamanan seperti
protokol WEP (Wired Equivalent Privacy), dan WPA (Wi-fi Protect Access) untuk layanan
nirkabel.

RC4 awalnya rahasia dagang, lalu pada bulan September 1994, RC4 dikirim secara
anonim ke milis Cybherpunks, selanjutnya dikirim newsgroup sci.crypt dan akhirnya
menyebar diinternet. Karena telah diketahui banyak orang, maka RC4 bukan lagi rahasia
dagang. Statuss RC4 sekarang tidak resmi tetapi legal, tapi tidak boleh menggunakan
nama RC4. Maka digunakan ARCFOUR untuk menghindari masalah trademark.

RC4 memiliki generator untuk membangkitkan kunci-alir (keystream) yang kemudian di


XOR-kan dengan plainteks pada proses enkripsi atau di XOR-kan dengan cipherteks pada
proses dekripsi. Tidak seperti konsep cipher alir yang memproses dalam satuan bit, RC4
memproses data dalam satuan byte (1 byte = 8 bit).

Untuk membangkitkan aliran kunci, cipher menggunakan status internal yang teridiri
dari dua bagian :
1. Sebuah larik S[0..256] yang menyimpan permutasi angka 0 sanpai 255. Setiap elemen
larik S0,S1,…,S255 berisi salah satu angka yang berbeda dari 0 sampai 255. Permutasi
merupakan fungsi dari kunci eksternal K yang diberikan oleh user. Panjang kunci K
adalah dari 40 bit sampai 256 bit (setara dengan 5 karakter hingga 16 karakter).
2. Dua buah pencacah indeks, I dan j.

RC4 terdiri dari dua sub-proses. Sub-proses peratma adalah Key-Scheduling Algorithm
(KSA) dan sub-proses kedua adalah Psuedo-random generation algorithm (PRGA).

Sub proses KSA terdiri dari dua langkah :

1. Insiliasi Si = I, sehingga S0 = 0, S1 = 1,….,S255 = 255


Dalam notasi algpritma, langkah 1 ini ditulis sebagai berikut :
For i  0 to 255 do
S[i]  i
End
2. Lakukan permutasi terhadap nilai-nilai di dalam larik S dengan cara sebagai berikut :
j0
for i  0 to 255 do
j  (j + S[i] + K[I mod Length(K)]) mod 256
swap(S[i], S[j]) (pertukaran S[i] dan S[j])
end

Permutasi ini menyebabkan elemen-elemen didalam larik S teracak, Misalkan dengan kata kunci
“halo”, maka elemen-elemen didalam S .

Sub proses PRGA membangkitkan kunci-alir dengan cara mengambil nilai S[i] dan S[j],
mempertukarkannya, lalu menjumlahkan keduanya dalam modulus 256. Kunci alir tersebut
kemudian di-XOR-kan dengan sebuah karakter plainteks. Algoritmanya sebagai berikut:

i0

j0

for idx  0 to length(P) – 1 do

i  (i + 1) mod 256

j  (j + S[i]) mod 256

swap(S[i], S[j]) {Pertukaran S[i] dan S[j]}

t  (S[i] + S[j]) mod 256

u  S[t] { keystream }
c  u XOR P[idx] { enkripsi }

end

(Keterangan: P adalah array yang berisi karakter-karakter plainteks)

Proses pembangkitan kunci-alir K yaitu, kunci-alir u dipilih dengan mengambil nilai S[i] dan S[j],
mempertukarkannya, lalu menjumlahkan keduanya dalam modulo 256. Hasil penjumlahan
adalah indeks t sedemikian sehingga S[t] menjadi kunci-alir u yang kemudian di-XOR-kan dengan
karatker plainteks-idx.

Program enkripsi dan dekripsi dengan algoritma RC4 dalam bahasa C++ dituliskan didalam buku
Kriptografi edisi kedua halaman 237 dan 238. Program mengenkripsi/mendekripsi pesan dalam
bentuk berkas (file). Program dapat mengenkripsi sembarang file dengan format apapun, tidak
terbatas hanya berkas teks saja. Program dijalankan dalam bentuk command line dari prompt.

Menjalankan program enkirpsi dari command prompt:

enkrip_rc4 file_plainteks file_copherteks

Menjalankan program dekripsi dari command prompt:

dekrip_rc4 file_cipherteks file_plainteks

Keamanan RC4

RC4 adalah cipher alir, maka ia tidak kuat terhadap serangan seperti flip-bit attack maupun
serangan-serangan stream attack lainnya. Ssat ini keamanan RC4 berhasil dipecahkan dalam
hitungan jam atau hari. Serangan tipikal bias pada pembangkitan kunci-alir untuk memperoleh
plainteks yang berulang dienkripsi. Pada Februari 2015, RC4 dilarang penggunannya didalam
Transport Layer Security (TLS) seperti disebutkan didalam RFC 7465.

6.2 A5

A5 adalah cipher alir yang digunakan untuk mengenkripsi transmisi sinyal komunikasi pada
telepon seluler GSM (Group Special Mobile), baik sinyal percakapan (suara) mauppun sinyal
komunikasi data lainnya. Sinyal GSM dikirim sebagai barisan frame. Satu frame panjangnya 228
bit dan dikirim setiap 4.6 milidetik. A5 digunakan untuk menghasilkan kunci-alir 228 bit yang
kemudian di-XOR-kan dengan frame. Setiap kali percakapan dienkripsi dengan kunci sesi K. kunci
sesi untuk enkripsi panjangnya 64 bit.

A5 ada dua versi. Versi pertama adalah A5/1, ini versi kuat yang digunakan di Eropa. Versi kedua
adalah A5/2, ini versi A5 yang lemah dan untuk diekspor. Algoritma A5/1 awalnya rahasia, tetapi
apda tahun 1994 algoritma aproksimasinya berhasil bocor, barulah pada tahun 1999 algoritma
eksak A5/1 ditemukan melalui reverse engineering dengan menggunakan telepon GSM
sebenarnya.

A5/1 terdiri dari 3 buah LSFR yang masing-masing panjangnya 19,22, dan 23 bit (jumlah
seluruhnya 19 + 22 + 23 = 64). Ketiga LSFR tersebut dinamakan R1, R2, dan R3. Output dari A5
adalah hasil XOR dari ketiga buah LFSR ini. Bit-bit didalam setiap register diindeks, bit paling
kanan (LSB) diindeks dengan 0. Setiap register memiliki bit-bit detak (clock) yang akan
menentukan luaran dari setiap register. Selain itu, setiap register mempunyai bit kendali detak
yang berbeda. Bit kendali detak terletak pada bit pertengahannya :

1. Register R1 mempunyai kendali detak pada bit 8. Bit-bir detak adalah pada bit 13,16,17, dan 18.
2. Register R2 mempunyai kendali detak pada bit 10. Bit-bit detaknya adalah pada bit 20 dan 21.
3. Reguster R3 mempunyai kendali detak pada bit 10. Bit-bit detaknya adalah bit 7,20,21, dan 22.

Setiap register didetak dalam fase stop/go dengan menggunakan kaidah mayoritas. Caranya
sebagai berikut: pada setiap putaran bit-bit detak dari ketiga register diperiksa dan dihitung
mayoritasnya (50% + 1). Sebuah register didetak jika bit kendali detaknya sama dengan bit
mayoritas. Biasanya pada setiap putaran dua atau tiga buah register didetak. Ketika sebuah
register didetak, semua bit detaknya di-XOR-kan dan hasilnya diletakkan pada posisi LSB(posisi
ke-0) dengan mekanisme pergeseran bit-bit ke kiri. Bit paling kiri (MSB) terlempar keluar. Bit
yang terlempar dari setiap register di-XOR-kan bersama, bit inilah yang menjadi output dari
ketiga buah register tadi.

Proses pembangkitan bit-bit acak didalam A5/1 berdasarkan kunci sesi K adalah sebagai berikut :
1. Ketiga register pada awalnya diinsialisasi seluruh bitnya dengan 0. Selanjutnya dilakukan 64
putaran pertama (dengan mengabaikan kendali detak selama fase stop/go), 64 bit kunci sesi K
dicampur dengan bit register berdasarkan skema berikut : pada putaran 0 <= I < 64, bit K[i]
ditambahkan ke bit LSB dari setiap register R dengan menggunakan operasi XOR :
R[0] = R[0] XOR K[i]
2. Selanjutnya, ketiga register didetak selama 22 putaran tambahan (dengan mengabaikan kendali
detak selama face stop.go). selama 22 putaran tersebut, 22 –bit dari nomor frame (Fn) dicampur
dengan bit register berdasarkan skema berikut : pada putaran o <= i < 22, bit Fn [i] ditambahkan
ke bit LSB dari setiap register R dengan menggunakan operasi XOR :
R[0] = R[0] XOR Fn[i]

Isi register pada akhir putaran menyatakan kondisi awal untuk pembangkitan frame sepanjang
288-bit.

3. Ketiga register didetak selama 100 putaran dalam fase stop/go dengan menggunakan kaidah
mayoritas, namun bit-bit luarannya dibuang (tidak dipakai)
4. Selanjutnya, ketiga register didetak selama 288 putaran dalam fase stop/go menggunakan
kaidah mayoritas untuk menghasilkan bit-bit kuncil-alir sepanjang 288 bit. Pada setiap putaran
dihasilkan 1 bit yang merupakan hasil peng-XOR-an bit-bit MSB yang terlempar. Kunci-alir 288
bit inilah yang kemudian digunakan untuk mengenkripsi frame pesan sepanjang 288 bit.

Program A5/1 ditanam dalam chip pada kartu simcard. Di negara-negara dimana operator
seluler dilarang melakukan enkripsi percakapan, seperti di Indonesia, maka program algoritma
A5 tidak diaktifkan, sehingga semua sinyal terkirim dalam bentuk plainteks.

Keamanan A5/1
Keamanan A5/1 terletak pada pembangkitan bit-bit acak yang dihasilkan oleh tiga buah LSFR
diatas. Tujuannya kriptanalisis A5/1 adalah untuk menemukan kunci sesi yang digunakan dalam
pembangkitan bit-bit acak. Serangan yang dilakukan terhadap A5/1 adalah known-plaintext
attack. Serangan semacam ini pertama kali dilakukan oleh Ross Anderson pada tahun 1994. Ross
Anderson mencoba menerka 42 bit isi register R1 dan R2, menurunkan 23 bit R3 dari 42 bit
tersebut.

6.3 DES
DES (Data Encrption Standard) adalah algoritma cipher blok yang paling populer karena telah
dijadikan standart algoritma enkripsi kunci-simetri, meskipun saat ini standard tersebut telah
digantikan dengan algoritma yang lebih baru, AES, setelah keamanan DES berhasil dipecahkan.
Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahung 1972.
Algoritma ini didasarkan pada algoritma lucifer yang dibuat oleh Horst Feistel. Algoritma ini
telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh
National Security Agency (NSA) Amerika Serikat.

DES beroperasi pada pesan yang dibagi menjadi blok-blok berukuran blok 64 bit. DES
mengenkripsi 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci
internal (internal key). Kunci internal dibangkitkan dari kunci eksternal (eksternal key) yang
diberikan oleh user. Kunci eksternal panjangnya 64 bit.

Skema global fungsi E didalam algoritma DES adalah sebagai berikut :


1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP)
2. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 putaran. Setiap putaran
menggunakan kunci internal yang berbeda.
3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial
permutation atau IP-1) menjadi blok cipherteks.

Permutasi Awal
Permutasi awal atau IP bertujuan mengacak bit-bit plainteks sehingga urutan didalamnya
berubah. Pengacakan dilakukan menggunakan matriks permutasi yang berukuran 4 x 16.

Untuk matriks dan penjelasannya dapat ditemukan di buku Kriptografi Rinaldi Munir Edisi Kedua
Halaman 245

Enciphering

Didalam proses enciphering, blok plainteks terbagi menjadi dua bagian, sub-blok kiri (L) dan sub-
blok kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini nantinya masuk
kedalam 16 putaran DES. Pada setiap putaran ke-I, sub-blok R merupakan masukan untuk fungsi
transformasi yang disebut f. Didalam fungsi f, sub-blok R dikombinasikan dengan kunci internal
Ki. Luaran dari fungsi f selanjutnya di-XOR-kan dengan sub-blok L untuk mendapatkan sub-blok R
yang baru. Sedangkan sub-blok L yang baru langsung diambil dari blok R sebelumnya.

Satu putaran DES merupakan model jaringan Feistel. Secara sistematis, satu putaran DES
dinyatakan sebagai

Li = Ri – 1

Ri = Li – 1 XOR f(Ri-1, Ki)

Pada contoh diatas, hasil permutasi awal dibagi menjadi L0 dan R0 adalah sebagai berikut :

L0 = 01110000010100011010110010110100

R0 = 11110000010011000101100100111110

Pembangkitan Kunci Internal

Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K1, K2, …, K16.
Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan
proses enkripsi. Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna.
Kunci eksternal panjangnya 64 bit atau 8 karakter.

Didalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil
permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56
bit.

Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya
28 bit, yang masing-masing disimpan dalam C0 dan D0:

C0: berisi bit-bit dari K pada posisi


57,49,41,33,25,17,9,1,58,50,42,34,26,18

10,2,59,51,43,35,27,19,11,3,60,52,44,36

D0: berisi bit-bit dari K pada posisi

63,55,47,39,31,23,15,7,62,54,46,38,30,22

14,6,61,53,45,37,29,21,13,5,28,20,12,4

Permutasi Terakhir (Inverse Initial Permutation)

Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok
kanan. Proses permutasi menggunakan matriks permutasi awal balikan (inverse initial
permutation atau IP-1).

Mode DES

DES dapat dioperasikan dengan ECB, CBC, OFB, dan CFB. Namun karena kesederhanannya,
mode ECB lebih sering digunakan pada paket program komersil meskipun sangat rentan
terhadap serangan. Mode CBC lebih kompleks daripada ECB namun memberikan tingkat
keamanan yang lebih bagus daripada mode ECB. Mode CBC hanya kadang-kadang saja
digunakan.

Implementasi Hardware dan Software DES

DES sudah diimplementasikan dalam bentuk perangkat keras, DES diimplementasikan didalam
chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik).
Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik
pada komputer mainframe IBM 3090 (komputer yang ada saat itu).

Keamanan DES

Isu yang menjadi perdebatan kontroversial menyangkut keamanan DES adalah (schneier, 1996):

1. Panjang kunci
DES saat ini sudah dianggap tidak aman lagi, penyebabnya karena panjang kuncinya
yang pendek. Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang
dipakai hanya 56 bit. Pada rancangan awal, oanjang kunci yang diusulkan IBM adalah
128 bit, tetapi atas permintaan NSA, panjang kunci diperkecil menjadi 56 bit. Alasan
pengurangan tidak diumumkan.
2. Jumlah Putaran
Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi
acak dari setiap bit plainteks dan setiap bit cipherteks. Jadi, mengapa harus 16 kali
putaran ? dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata
dapat dipecahkan dengan known-plaintext attack lebih mangkus daripada dengan brute
force attack (Schneier, 1996)
3. Kotak-S
Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih
konstanta-konstanta didalam kotak itu.

Kunci Lemah dan Kunci Setengah Lemah

DES mempunuai beberapa kunci lemah (weak key). Kunci lemah menyebabkan kunci-kunci
internal pada setiap putaran sama (K1 = K2 = … = K16). Akibatnya, enkripsi dua kali berturut-
berturut terhadap plainteks menghasilkan kembali plainteks semula.

Kunci lemah terjadi bila bit-bit didalam C1 dan D1 semuanya 0 atau 1, atau setengah dari kunci
seluruh bitnya 1 dan setengah lagi seluruhnya 0, kunci bitnya 1 dan setengah lagi menyebabkan
terjadinya kunci lemah adalah (ingat bahwa setiap bit kedelapan adalah bit paritas).

Selain kunci lemah, DES juga mempunyai sejumlah pasangan kunci setengah lemah (semiweak
key). Pasangan kunci setengah lemah mengenkripsiskan plainteks menjadi cipherteks yang
sama. Sehingga, satu kunci dalam pasangan itu dapat mendekripsi pesan yang dienkripsi oleh
kunci yang lain dalam pasangan itu.

6.4 Double DES dan Triple DES

Des mempunyai kelemahan terhadap brute force attack akibat panjang kuncinya yang realatif pendek
hanya 56 bit, maka dibuat beberapa varian DES dengan cara memperbesar ruang kunci tanpa mengubah
algoritma DES.

Double DES dieksekusi dua kali, sedangkan Triple DES dieksekusi tiga kali.

Dalam skema Double DES. Enkripsi pesan P mula-mula menggunakan kunci K1, lalu hasilnya dienkripsi
dengan K2. Hasil enkripsi terakhir adalah cipherteks C. sebaliknya deskripsi, kunci K2 digunakan untuk
mendeskripsi C, lalu hasilnya didekripsi dengan K1. Hasil dekripsi terakhir adalah pesan semula, P.
Double DES mempunyai kelemahan yaitu dapat diserang dengan algoritama yang dikenal meet-in-the-
middle attack, yang pertama kali ditemukan oleh Diffie dan Hellman.

Kriptanalis memiliki potongan cipherteks dan plainteks yang berkoresponden, maka kriptanalis
melakukan serangan dengan enkripsi P untuk semua kemungkinan nilai K1. Dekripsi C dengan semua
kemungkinan K2. Jika keduanya dibandingkan ada yang sama maka ada dua buah kunci K1 dan K2 telah
ditemukan. Tes kedua jika kedua kunci tersebut menghasilkan cipherteks dan plainteks yang benar,
maka K1 dan K2 merupakan kunci yang benar.

Triple DES menggunakan tiga kali langakah untuk mencegah meet-in-the-middle attack seperti double
DES.varian ini deikeanal dengan EEE karena proses enkripsi semuanya menggunakan enkripsi. Untuk
menyederhanakan interoperability antara DES dan TDES, maka langkah ditengah deganti dengan
dekripsi maka versi pertama TDES menggunakan 2 kunci, versi TDES kedua menggunakan tiga buah
kunci. Secara umum TDES dengan dua buah kunci mempunyai panjang kunci 2x56 = 112 bit, jauh lebih
pendek daripada Triple DES dengan tiga buah kunci yang panjangnya 168 bit.

6.5 GOST

GOST atau yang artinya standard pemerintah, adalah algoritma enkripsi dari negara Uni Soviet dahulu.
Algoritma ini dikembangkan pada tahun 1970. GOST dibuat oleh Soviet sebagai alternative terhadap
algoritma enkripsi standard Amerika Serikat, DES. Secara structural mirip dengan DES. Tahun 1970
sangat dirahasiakan dan tahun 1994 dirilis ke public.

GOST beeroprasi pada blok pesan yang panjangnya 64 bit, sedangkan kuncinya 256 bit. Didalamanya
adalah 32 putaran, setiap putaran menggunakan kunci internal. Kunci internal hanya ada 8 buah,K1
sampai K8 karena ada 32 putaran maka 8 buah kunci internal ini dijadwalkan penggunaannya. Seperti
contoh table di buku.

Pembangkitan kunci internal sangat sederhana. Kunci yang panjangnya 256 bit dibagi kedalam 8 bagian
masing masing panjangnya 32 bit. Delapan bagian ini dinamakan K1,K2,K3,…,K8.

Seperti DES , struktur GOST menggunakan Jaringan Feistel. Untuk putaran ke-I digunakan pada kunci
internal K1. Satu putaran GOST seperti DES.

Dengan kunci internal Ki menghasilkan luaran yang panjangnya 32 bit. Luaran ini dibagi menjadi 8 bit
yang masing masing panjangnya 4 bit. Setiap empat bit masuk kedalam kotak S untuk proses subtitusi.
Empat bit pertama masuk kedalam kotak S pertama, 4 bit kedua masuk kedalam kotak S kedua. Setiap
kotak berisi 16 buah elemen nilai. Yang berisi permutasi angka 0 sampai 15. Seperti contoh kotak S
dibuku. Arti setiap elemen didalam kotak S adalah masukan untuk kotak S berasosiasi dengan indeks
elemen , sedangkan luarannya berasosiasi dengan nilai didalam elemen dengan indek tersebut.
Perbedaan antara DES dengan GOST yaitu:
1. Kunci DES 56 bit, sedangkan GOST 256 bit. Sehingga membuat DES lebih mudah diserang
dibandingkan GOST.
2. Jumlah putaran DES 16 putaran sedangkan GOST 32 putaransehinga membuat kriptanalis lebih
sulit.
3. Kotak S didalam DES menerima masukan 6 bit dan luaran 4 bit. Sedangkan dalam GOST
menerima 4 bit dan luaran 4 bit.
4. Pembangkitan kunci internal didalam DES rumit, sedangkan GOST pembangkitan kunci
internalnya sederhana.
5. DES mempunyai permutasi yang tidak teratur, sedangkan GOST hanya menggunakan pergeseran
11-bit secara sirkuler.

Keamanan GOST

Sebelum 2007 belum ada yang melaporkan kriptanalis terhadap GOST sehingga GOST masih dianggap
cipher yang sangat aman. Hal ini disebabkan panjang putaran dank unci yang lebih banyak dari DES.
Semakin bertambanhnya tahun para kriptanalis melaporkan serangan terhadap GOST versi putaran
penuh dengan kompleksitas komputasi yang semakin berkurang. Menunjukan bahwa GOST merupakan
block cipher yang sangat tidak aman.

6.6 RC5

RC5 dibuat oleh Ron Rovest dari Laboratorium RSA tahun 1994. Seperti RC4, RC adalah singkatan dari
Rivest Cipher . RC5 menjadi dasar untuk menurunkan RC6. Berbeda dengan cipher block lain yang
ukurannnya tetap RC5 mempunyai ukuran blok(w) yang variable (32,64, atau 128 bit),panjang kunci(r)
yang variable 0 sampai 2040 bit dan jumlah putaran (b) yang juga vriabel 0 sampai 255. Tiga parameter
tersebut dinotasikan seperti table di buku.

Ada tiga operasi didalam RC5 yaitu penjumlahan, XOR, dan rotasi (kanan dan kiri). Dan rotasi adalah
salah satu unsur pengkaji primitive kriptografi. Rotasi bergantung pada kunci dan data. Struktur umum
algoritma jaringan Feistel.

Pembentukan Kunci Internal

Kunci internal ada sebanyak 2r+2 buah yang masing-masing disimpan di dalam elemen-elemen larik
yang dilabeli sebagi S[0], S[1],…,S[t-1] dengan t = 2r+2. Pembentukan kunci internal lebih rumit.

Enkripsi

Tinjau RC5 dengan ukuran blok 64 bit dan jumlah putaran r. Menggunakan kunci internal yang masing
masing panjangnya 32 bit. Dua kunci internal tambahan sebelum putaran pertama jadi seluruhnya ada
2r+2 buah kunci internal. Untuk melakukan enkripsi , mula-mula blok plainteks dibagi menjadi 2 bagian ,
A dan B , yang masing –masing panjanngya 32 bit.
Selanjutnya untuk setiap putaran dari 1 sampai r operasi XOR , pergeseran ke kiri secara srikuler , dan
penjumlahan (+) dalam modulo kunci internal seperti pada buku.

Cipherteks pada putaran terakhir disimpan di dalam A dan B . Gabungan keduanya adalah blok plainteks
yang berukuran 64 bit.

Deskripsi

Deskripsi berkebalikan dengan enkripsi . mula-mula membagi blok menjadi 2 bagian A dan B , yang
masing-masing panjangnya 32 bit. Selanjutnya untuk setiap putaran dari 1 sampai r dilakukan operasi
pengurangan dalam modulo dengan kunci internal, pergeseran ke kanan secara sirkuler (rotasi), dan
operasi XOR .

6.7 RC6

RC6 juga dibuat oleh Ronald Rivest, Matt Robshaw, Ray Slidney, dan Yiqun Lisa Yin dari
Laboratorium RSA(Rivest, 1998). Secara struktur, mirip dengan RC5, begitu juga operasi-operasi
seperti XOR, penjumlahan, dan rotasi. RC6 mempunyai tambahan operasi yaitu perkalian.

RC6 melakukan enkripsi terhadap blok data berukuran 128 bit, sedangkan ukuran
kuncinya bervariasi 128, 192, 256 sampai 2040 bit. Cara pembangkitan kunci internalnya identik
dengan RC5.

6.8 Advanced Encryption Standard(AES)

DES(Data Encryption Standard) sudah berakhir karena dianggap sudah tidak aman lagi
karena dengan perangkat keras khusus kunci enkripsi sudah bisa ditemukan dalam wktu
singkat. Oleh karna itu NIST mengadakan sayembara terbuka untuk membuat standard aloritma
kriptografi yang baru sebagai pengganti DES. Standard tersebut diberi nama Advanced
Encryption Standard(AES).

Persyaratan yang diajukan oleh NIST :

1. Algoritma yang ditawarkan termasuk ke dalam kelompok algoritme kriptografi simetri


berbasis chipper blok.
2. Seluruh rancangan algoritme harus publik.
3. Panjang kunci fleksibel: 128, 192, dan 256 bit.
4. Ukuran blok yang dienkripsi adalah 128 bit.
5. Algoritma dapat diimplementasikan baik sebagai software maupun hardware.

Pada bulan November 2001, Rijndael ditetapkan sebagai AES, dan diharapkan menjadi
standard kriptografi yang dominan paling sedikit selama 10 tahun.
Algoritma Rijndael

ALgoritma Rijndael beroperasi padan medan Glois. Ini artinya operasi aritmetika
dilakukan pada byte berukuran 8 bit di dalam Galois. Karena AES menetapkan panjang kunci
adalah 128, 192, dan 256 maka dikenal AES-128, AES-192, dan AES-256 (Tabel 6.2).

Algoritma Rijndael mempunyai 3 parameter:

1. In : larik yang berukuran 16-byte, yang berisi data masukan.


2. Out : larik yang berukuran 16-byte, yang berisi hasil enkripsi.
3. Key : larik yang berukuran 16-byte, yang berisi kunci ciphering.

Garis besar Algoritma Rijndael yang beroperasi pada blok 128bit dengan kunci 128bit adalah
sebagai berikut:

1. AddRoundKey : melakukan XOR antara state awal dengan chipper key.


2. Putaran sebanyak NR-1 kali. Proses yang dilakukan:
a) SubByte : substitusi byte dengan menggunakan tabel substitusi.
b) ShiftRows : pergeseran baris-baris array state secara wrapping.
c) MixColumns : mengacak data dimasing-masing kolom array state.
d) AddRoundKey : melakukan XOR antara state sekarang round key.

3. Proses untuk putaran terakhir:


a) SubByte
b) ShiftRows
c) AddRoundKey

Hasil putaran terakhir adalah chiperteks yang dinyatakan di dalan state.

Transformasi SubBytes

Transformasi SubBytes merupakan operasi substitusi di dalam Rijndael berdasarkan


table lookup. SubBytes menetapkan setiap byte dari larik state dengan menggunakan tabel
substitusi S-box. Cara operasi substitusi S-box adalah untuk setiap byte pada matrik state, misal
S[r,c]=xy, yang dalam hal ini xy adalah digit heksadesimal dari nilai S[r,c], maka nilai
substitusinya adalah S[r,c], yang merupakan perpotongan baris x dengan kolom y di dalam S-
box.

Transformasi ShiftRows

Transformasi ShiftRows melakukan pergeseran secara wrapping pada 3 baris terakhir


dari matriks state. Jumlah pergeseran bergantung pada nilai baris (r). Elemen-elemen pada
baris r = 1 digeser sejauh 1 byte ke kiri, elemen-elemen pada baris r = 2 digeser sejauh 2 byte ke
kiri, dan elemen-elemen-elemen pada baris r = 3 digeser sejauh 3 byte. Baris r = 0 tidak digeser.

Transformasi AddRoundKey

Transformasi AddRoundKey melakukan operasi bitwise XOR anara sebuah round key
dengan matriks state, dan hasilnya disimpan pada matriks state yang sama.

Ekspansi Kunci

Setiap putaran di dalam algoritme Rijndael menggunakan kunci putaran atau round key.
Kunci putaran dibangkitkan dari kunci kunci eksternal dari pengguna yang dinamakan chper key
dan disimbolkan dengan peubah key. Pembangkit semua kunci putaran dilakukan oleh fungsi
KeyExpansion().

Pembangkit kunci putaran di dala Algoritma Rijndael tergolong rumit dan agak sukar
diterangkan. Tinjau sebuah larik key yang panjangnya 16byte(16 elemen) dan Nr = 10 putaran.
Sepuluh kunci putaran akan disimpan didalam matriks rk. Elemen awal key langsung menjadi
rk[0]. Elemen-elemen kunci lainya akan disimpan di dalam rk[1], rk[2], …., rk[10].

Dekripsi

Algoritma deskripsi mirip dengan algoritma enkripsi, namun dengan beberapa


perubahan pada beberapa konstanta dan tabel. Untuk membedakannya dengan algoritme
enkripsi, maka untuk fungsi dengan cara yang berkebalikan maka nama-nama fungsinya diberi
awalan Inv, artinya Inversi (program 6.3 Algoritma deskripsi Rijndael).

InvSubBytes0

Operasi substitusi byte di dalam InvSubBytes0 sama seperti di dalam SubBytes0, hanya
saja S-box yang digunakan adalah inversi dari S-box terdahulu.

InvShiftRows0

Transformasi ini sama seperti ShiftRows namun melakukan pergeseran dalam arah
berlawanan(ke kanan) untuk tiap-tiap baris pada tiga baris terakhir di dalam state.

InvMixColumns0
Transformasi InvMixColumns didefinisikan sebagai perkalian matrik pada gambar 6.3
halaman 296.

6.9 Penerapan Kriptografi Simetri dalam Kehidupan Sehari-hari

Algoritme kriptografi simetri, bak chipper maupun chipper blok banak diterapkan dalam
berbagai sistem aplikasi yangmembutuhkan keamanan data. Contohnya transaksi dengan ATM
dan komunikasi dengan telepon seluler.

6.9.1 Transaksi dengan Mesin ATM

Transaksi tundengan mesin ATM memerlukan sebuah kartu megnetik yang terbuat dari
plastik dan kode PIN yang berasosiasi dengan kartu tersebut. PIN terdiri dari 6 angka yang harus
dijaga kerahasiaannya oleh pemilik kartu ATM.

Algoritme enkripsi yang digunakan adalah salah satu dari algoritme kriptografi simetri
yaitu DES. karena DES bekerja dengan mengekripsikan blok 64-bit, maka PIN yang hanya terdiri
dari 6 angka(48-bit) harus ditambah dengan Padding bits sehingga panjangnya menjadi64 bit.
Padding bits yang ditambahan berbeda-beda untuk setiap PIN, bergantung pada informasi
tambahan pada setiap kartu ATM-nya.

6.9.2 Komunikasi dengan Telepom Seluler

pengguna telepon seluler atau lebih dikenal dengan nama telepon genggam yang
bersifat mobile memungkinkan orang berkomunikasi dari tempat mana saja. Telepon seluler
bersifat mirkable(wireless), sehingga pesan yang dikirim dari pinsel ditrasmisikan melalui
gelombang mikro atau radio sampai ia mencapai Base Transceiver Station terdekat, selanjutnya
ditransfer ke ponsel penerima. GSM merupakan teknologi telepon seluler yang paling banyak
digunakan diseluruh dunia.

Karena menyadap sinyal radio jauh lebih mudah daripada menyadap sinyal pada saluran
kabel, maka ini berarti GSM tidak lebih aman daripada telepon fixed konvensional. Untuk
membuat komunikasi lewat ponsel ke BTS terdekat. Algoritme enkripsi yang digunakan adalah
metode cipher alir(stream cipher) seprti A5/1.

Otentikasi Penelpon

Dilakukan melalui protokol otentikasi dengan mekanisme challenge and reponse.


Enkripsi terhadap challenge menghasilkan string sepanjang 128-bit. Dari 128-bit ini hanya 32 bit
yang dikirim dari kartu SIM ke BTS sebagai reponse. BTS meneruskan response ke komputer
operator. Ketika response sampai di momputer operator, komputer operator melakukan
komputasi yang sama dengan yang dilakukan oleh kartu SIM; yang dalam hal ini komputer
mengenkripsi challenge yang dikirim tadi dengan menggunakan kunci otentikasi penelpon, lalu
membandingkan hasil enkripsi ini dengan response yang ia terima. Jika sama, maka otentikasi
berhasil, dan penelpon dapat melakukan percakapan.

Sebagaimana dijelaskan diatas, dari 128-bit hasil enkripsi, hanya 32 bit yang dikirim
sebagai reponse, jadi, masih ada 96bit sisanya yang hanya diketahui oleh kartu SIM, BTS, dan
komputer operator.

Kerahasiaan Pesan

SIM card juga berisi program stream cipher(misalnya algoritme A5) untuk mengenkripsi
pesan dari ponsel. Kunci enkripsi penjangnya 64 bit, yang diambil dari 96 bit sisa dari respose
SIM card. Perhatikan bahwa kunci enkripsi 64-bit ini berbeda setiap kali proses otentikasi
dilakukan(mengapa?). al ini memenuhi prinsip algoritme OTP(one-time pad).

Anda mungkin juga menyukai