II-1
BAB II
TINJAUAN PUSTAKA
II.1 Kriptografi
Kata cryptography berasal dari bahasa Yunani krupto (hidden atau secret) dan grafh
(writing) yang artinya adalah secret writing. Definisi kriptografi menurut Schneier yaitu ilmu
dan seni untuk menjaga keamanan pesan [SCH96].
Terdapat empat tujuan mendasar dari ilmu kriptografi yang juga merupakan aspek
keamanan informasi yaitu [MUN09]:
1. Kerahasiaan
Kerahasiaan adalah layanan yang digunakan untuk menjaga isi pesan dari siapapun yang
tidak berhak untuk membacanya.
2. Integritas data
Layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi
selama pengiriman.
3. Otentikasi
Layanan untuk mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
authentication) dan untuk mengidentifikasi kebenaran sumber pesan (data origin
authentication).
4. Non-repudiasi atau nirpenyangkalan
Layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan yaitu
pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal
Terdapat dua tipe umum dari algoritma yang berbasis kunci yaitu algoritma simetrik
dan asimetrik. Kedua tipe tersebut akan dipaparkan pada subbab berikutnya.
II.1.1. Algoritma Simetrik
Algoritma simetrik adalah algoritma yang kunci enkripsinya dapat dihitung dari kunci
dekripsinya dan sebaliknya. Sebagian besar algoritma simetrik menggunakan kunci enkripsi
dan dekripsi yang sama. Keamanan dari dari suatu algoritma simetrik bergantung pada kunci.
Jika kunci sudah diketahui, maka siapa pun dapat mengenkripsi dan mendekripsi pesan
tersebut. Jika komunikasi harus tetap rahasia, maka kunci juga harus tetap rahasia.
Algoritma simetrik dapat dibagi menjadi 2 kategori yaitu stream cipher dan block
cipher. Algoritma stream cipher beroperasi pada suatu bit sedangkan algoritma block cipher
beroperasi pada kumpulan bit.
Kelebihan algoritma simetri antara lain [MUN09]:
1. Algoritma kriptografi simerti dirancang sehingga proses enkripsi atau dekripsi
membutuhkan waktu yang lebih singkat.
2. Ukuran kunci simetri relatif pendek
3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak.
4. Algortima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih
kuat.
5. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima karena
kunci hanya diketahui oleh pengirim dan penerima pesan saja.
Kelemahan kriptografi simetri antara lain [MUN09]:
1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang
berkomunikasi harus menjaga kerahasiaan kunci ini.
II.1.2. Algoritma Asimetrik
Algoritma asimetrik atau algoritma kriptografi kunci-publik didesain agar kunci yang
digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Artinya,
kunci dekripsi tidak dapat dihitung dari kunci enkripsi. Kunci enkripsi dapat disebut sebagai
kunci publik sedangkan kunci dekripsi dapat disebut dengan kunci privat. Gambar II-1
menunjukkan sistem kriptografi kunci publik.
Gambar II-1 Sistem kriptografi kunci-publik [MUN09]
Sistem kriptografi kunci-publik cocok digunakan untuk kelompok pengguna di
lingkungan jaringan komputer. Setiap pengguna jaringan mempunyai kunci-publik dan kunci
rahasia yang bersesuaian. Kunci-publik biasanya disimpan dalam basis data kunci yang dapat
diakses oleh orang lain karena bersifat tidak rahasia. Hanya penerima pesan yang berhak
yang dapat mendekripsi pesan karena ia mempunyai kunci rahasia.
Kelebihan kriptografi asimetri antara lain [MUN09]:
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang
berkomunikasi. Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem
simetri.
2. Pasangan kunci publik dan kunci privat tidak perlu diubah, bahkan dalam periode
waktu yang panjang.
3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
enkripsi
dekripsi
e
d
4. Beberapa algoritma kunci-publik dapat digunakan untuk memberikan tanda tangan
digital pada pesan.
Kelemahan kriptografi kunci-publik antara lain [MUN09]:
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri karena
enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi
perpangkatan yang besar.
2. Ukuran cipherteks lebih besar daripada plainteks.
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.
4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka
cipherteks tidak memberikan informasi mengenai otentikasi pengirim.
5. Tidak ada algoritma kunci-publik yang terbukti aman. Kebanyakan algoritma
mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmatik
yang menjadi dasar pembangkitan kunci.
II.2 Algoritma Diffie Hellman
Diffie Hellman adalah algoritma kunci publik pertama yang pernah diciptakan pada
tahun 1976. Keamanan dalam algoritma ini didapatkan dari sulitnya menghitung logaritma
diskrit dalam suatu batasan tertentu jika dibandingkan dengan mudahnya menghitung
eksponensiasi dengan batasan yang sama. Algoritma ini dapat digunakan untuk distribusi
kunci dan tidak dapat digunakan untuk mengenkripsi atau mendekripsi pesan.
Algoritma ini memiliki beberapa tahapan. Untuk lebih mudah dalam menjelaskan
tahapan dalam algoritma ini, kita akan memisalkan pihak pertama dengan nama Alice dan
pihak kedua dengan nama Bob. Pertama, Alice dan Bob menyetujui suatu n dan g yang
merupakan suatu bilangan prima yang besar. g adalah primitif dari mod n. Kedua bilangan
(1) Alice memilih suatu bilangan bulat acak besar x dan mengirimkannya kepada Bob
X = gx mod n (II-1)
(2) Bob memilih suatu bilangan bulat acak besar y dan mengirimkannya kepada Alice
Y = gy mod n (II-2)
(3) Alice menghitung
k = Yx mod n (II-3)
(4) Bob menghitung
k’ = Xy mod n (II-4)
kedua k dan k’ bersesuaian dengan gxy mod n. Orang lain hanya mengetahui n, g, X, dan Y.
Walaupun orang lain bisa menghitung logaritma diskrit dan mendapatkan nilai x atau y,
mereka tidak dapat memecahkan masalah tersebut. Jadi, k adalah kunci rahasia yang dapat
dihitung oleh Alice dan Bob secara independen.
Pemilihan g dan n dapat memberikan suatu dampak yang penting dalam hal keamanan
dari sistem tersebut. Bilangan (n-1)/2 harus prima dan yang penting nilai n harus besar.
Keamanan dari sistem berbasis pada sulitnya memfaktorkan bilangan-bilangan pada ukuran
yang sama dengan n.
II.3 Algoritma RSA
RSA merupakan algoritma yang mudah dimengerti dan diimplementasikan.
Algoritma ini juga sangat terkenal. Singkatan RSA berasal dari ketiga penemunya yaitu Ron
Rivest, Adi Shamir dan Leonard Adleman yang sudah berkecimpung dalam bidang
kriptanalisis ekstensif selama bertahun-tahun. Keamanan RSA didapatkan dari sulitnya
memfaktorkan bilangan yang besar. Kunci privat dan publik adalah fungsi dari suatu
pasangan dari dua bilangan prima besar. Pencarian plainteks dari kunci publik dan cipherteks
Untuk membangkitkan kedua kunci, dipilih dua bilangan prima besar p dan q. Untuk
keamanan yang maksimal, pilih p dan q yang panjangnya sama. Hitung hasil dari
n = pq (II-5)
Lalu secara acak pilih kunci enkripsi e sehingga e dan (p-1)(q-1) sehingga p dan q relatif
prima. Terakhir, gunakan algoritma Euclidean yang sudah diperluas untuk menghitung kunci
dekripsi d sehingga
ed = 1 (mod(p-1)(q-1)) (II-6)
atau dalam bentuk lain
d = e-1 mod ((p-1)(q-1)) (II-7)
d dan n juga harus relatif prima. Bilangan e dan n adalah kunci publik dan d adalah kunci
privat. Bilangan prima p dan q sudah tidak dibutuhkan lagi.
Untuk mengenkripsi suatu pesan m, pertama bagi pesan m menjadi blok-blok numerik
yang lebih kecil dari n. Jika kedua p dan q adalah 100 digit prima, maka n hanya akan
dibawah 200 digit dan setiap blok pesan, mi. Pesan yang telah terenkripsi yaitu c akan terdiri
atas pesan yang memiliki panjang blok yang sama yaitu ci. Formula enkripsi dalam algoritma
ini adalah sebagai berikut.
ci = mie mod n (II-8)
untuk mendekripsi pesan, ambil setiap blok yang sudah terenkripsi yaitu ci lalu hitung
mi = cid mod n. (II-9)
II.4 Algoritma Rijndael
National Institute of Standards and Technology (NIST) mengusulkan kepada
pemerintah federal Amerika Serikat untuk membuat sebuah standard kriptografi yang baru.
yang baru. Standard tersebut kelak diberi nama Advanced Encryption Standard (AES). Pada
bulan Oktober 2000, NIST mengumumkan untuk memilih Rijndael. Pada bulan November
2001, Rijndael ditetapkan sebagai AES. Algoritma Rijndael dibuat oleh dua kritografer asal
Belgia yaitu Joan Daemen dan Vincent Rijmen.
II.4.1. Gambaran Umum Algoritma
Algoritma Rijndael secara umum dapat digambarkan sebagai berikut
A. Ekspansi Kunci B. Ronde awal a. AddRoundKey C. Ronde a. SubByte b. ShiftRows c. MixColumns d. AddRoundKey D. Ronde Final a. SubBytes b. ShiftRows c. AddRoundKey II.4.2. Desain
Ada 3 kriteria dalam desain algoritma Rijndael yaitu :
1. Ketahanan terhadap semua serangan yang diketahui.
2. Kecepatan dan kekompakan kode dalam platform yang luas.
Pada sebagian besar cipher, transformasi ronde memiliki struktur feistel. Dalam
struktur ini, biasanya bagian dari bit-bit pada state pertengahan secara sederhana ditranspos
tanpa diubah ke posisi lainnya. Transformasi ronde pada Rijndael tidak memiliki struktur
feistel.
II.4.3. Spesifikasi Algoritma
Rijndael adalah suatu cipher blok iteratif yang memiliki suatu variabel panjang blok
dan variabel panjang kunci. Panjang blok dan kunci dapat secara independen dispesifikasikan
sebesar 128, 192 atau 256 bit.
II.4.4. State, Kunci Cipher dan Jumlah Ronde.
Secara internal, operasi algoritma AES dilakukan pada suatu senarai dua dimensi
yang berisi byte-byte yang disebut dengan state. Dalam state terdiri atas empat baris byte
yang masing-masing mengandung Nb byte. Nb adalah suatu panjang blok yang dibagi oleh
32. Senarai state didenotasikan oleh simbol s yang masing-masing byte memiliki dua indeks
yaitu nomor baris r pada range 0 ≤ r < 4 dan nomor kolom c dalam range 0 ≤ c < Nb. Oleh
karena itu, individual byte pada state dilambangkan dengan sr,c atau s[r,c]. Gambar II-2
menggambarkan senarai state masukan dan keluaran.
Gambar II-2 Senarai state masukan dan keluaran
Kunci cipher dapat digambarkan sebagai suatu senarai persegi dengan empat baris.
Jumlah kolom dari kunci cipher didenotasikan oleh Nk dan sebanding dengan panjang kunci
Gambar II-3 Contoh kunci cipher dengan Nk = 4
Pada beberapa instans, blok-blok ini juga dapat ditentukan sebagai senarai satu dimensi dari vektor 4 byte dengan masing-masing vektor terdiri atas kolom yang bersesuaian dalam representasi senarai persegi. Senarai ini dapat memiliki panjang 4, 6, atau 8 dan indeks dengan range 0..3, 0..5, 0..7. Vektor 4 byte dapat disebut dengan istilah word. Jumlah ronde yang didenotasikan oleh Nr dan bergantung kepada nilai Nb dan Nk. Diberikan pada Tabel II-1 jumlah ronde (Nr) sebagai suatu fungsi dari panjang blok dan kunci.
Tabel II-1 Jumlah ronde (Nr) sebagai suatu fungsi dari panjang blok dan kunci.
Nr Nb = 4 Nb = 6 Nb = 8
Nk = 4 10 12 14
Nk = 6 12 12 14
Nk = 8 14 14 14
II.4.4.1. Transformasi Ronde
Transformasi ronde terdiri atas empat transformasi yang berbeda yaitu:
1. ByteSub
2. ShiftRow
3. MixColumn
4. AddRoundKey
Ronde final dari cipher terdiri atas tiga transformasi yaitu:
1. ByteSub
3. AddRoundKey
II.4.4.2. Transformasi ByteSub
Transformasi ByteSub merupakan suatu substitusi byte nonlinear yang beroperasi
pada setiap state byte secara independen. Tabel substitusi atau S-box dapat diinvers dan
dikonstruksikan oleh komposisi dari dua transformasi yaitu:
1. Pertama, ambil invers multiplikatif dalam GF(28).
2. Aplikasikan suatu transformasi affine (atas GF(2))
Gambar II-4 ByteSub berperan dalam individual byte dari state.
Gambar II-4 mengilustrasikan transformasi ByteSub yang berperan dalam individual
byte dari state.
II.4.4.3. Transformasi ShiftRow
Dalam ShiftRow, baris-baris pada state secara siklik dipindahkan ke offset yang
berbeda. Baris ke 0 tidak dipindahkan, baris ke 1 dipindahkan sebanyak C1 byte, baris 2
sebanyak C2 byte dan baris 3 sebanyak C3 byte.
Perpindahan offset C1, C2 dan C3 bergantung pada panjang blok Nb. Nilai yang
Tabel II-2 Offset perpindahan untuk panjang blok yang berbeda
Nb C1 C2 C3
4 1 2 3
6 1 2 3
8 1 3 4
Gambar II-5 mengilustrasikan efek dari transformasi ShiftRow terhadap state.
Gambar II-5 ShiftRow beroperasi pada baris-baris pada state.
Invers dari ShiftRow adalah suatu perpindahan secara siklik dari 3 baris bawah ke
Nb-C1, Nb-C2 dan Nb-C3 byte sehingga byte pada posisi j dalam row i berpindah ke posisi (j+Nb
–Ci) modulo Nb.
II.4.4.4. Transformasi MixColumn
Dalam MixColumn, kolom-kolom pada state ditentukan sebagai polinomial terhadap
GF(28) dan dikalikan modulo x4 + 1 dengan polinomial tetap c(x) yang diberikan dengan
c(x) = ‘03’ x3 +’01’ x2 + ‘01’ x + ‘02’ (II-10)
Gambar II-6 mengilustrasikan efek dari transformasi MixColumn terhadap state.
Invers dari MixColumn adalah sama dengan MixColumn. Setiap kolom
ditransformasikan dengan mengalikannya dengan suatu perkalian polinomial tertentu yang
didefinisikan oleh
(‘03’ x3 +’01’ x2 + ‘01’ x + ‘02’) d(x) = ‘01’ (II-11)
yang diberikan oleh
d(x) = ‘0B’ x3 + ‘0D’ x2 + ‘09’ x + ‘0E’ (II-12)
II.4.4.5. Penambahan Round Key
Dalam operasi ini, suatu Round Key diaplikasikan kepada state dengan suatu operasi
bit EXOR. Round Key diturunkan dari kunci cipher dari jadwal kunci. Panjang Round Key
ekivalen dengan panjang blok Nb. Transformasi ini diilustrasikan pada Gambar II-7.
Gambar II-7 Dalam penambahan kunci Round Key adalah suatu operasi bit EXOR kepada state.
II.4.5. Penjadwalan Kunci (Key Schedule)
Round Key diturunkan dari kunci cipher sesuai dengan jadwal kunci. Hal ini terdiri
atas dua komponen yaitu ekspansi kunci dan seleksi round key. Prinsip dasarnya adalah
sebagai berikut:
1. Jumlah total dari bit round key setara dengan panjang blok dikalikan dengan
jumlah ronde tambah 1.
2. Kunci cipher diekspansi kedalam suatu kunci yang sudah diekspansi (expanded
key)
3. Round Key diambil dari Expanded Key dengan cara Round Key pertama yang
Expanded Key adalah suatu senarai linier berisi word 4 byte dan didenotasikan oleh
W[Nb*(Nr+1)]. Nk word pertama berisi kunci cipher. Semua word yang lain didefinisikan
secara rekursif dalam istilah word dengan indeks yang lebih kecil. Fungsi ekspansi kunci
bergantung kepada nilai dari Nk.
Dalam pemilihan Round Key, Round Key ke i diberikan oleh buffer word Round Key
W[Nb*i] ke W[Nb*(i+1)]. Hal ini diilustrasikan pada Gambar II-8.
Gambar II-8 Ekspansi kunci dan pemilihan Round Key untuk Nb = 6 dan Nk = 4.
II.5 Secure Hash Algorithm (SHA)
SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan bersama
DSS (Digital Signature Standard). NSA menyatakan SHA sebagai standard fungsi hash
satu-arah. SHA didasarkan pada MD4 yang dibuat oleh Ronald L. Rivest dari MIT. SHA dianggap
aman karena ia dirancang sedemikian rupa sehingga secara komputasi tidak mungkin
menemukan pesan yang berkoresponden dengan message digest yang diberikan.
Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 264 bit
(2.147.483.648 gigabyte) dan menghasilkan message digest yang panjangnya 160 bit, lebih
panjang dari message digest yang dihasilkan oleh MD5. Walaupun message digest (nilai
hash) yang dihasilkan lebih besar ukurannya, SHA memberikan jaminan keamanan dalam hal
integritas data yang lebih baik dibandingkan dengan MD5. Gambaran pembuatan message
L x 512 bit = N x 32 bit Pesan 1000...000 HSHA Panjang Pesan K bit < 264 Padding bits (1 – 512 bit) K Y0 512 512 ABCDE 160 160 HSHA 160 Y1 512 HSHA 160 Yq 512 512 512 HSHA 160 YL-1 512 Message Digest 512 160 160
Gambar II-9 Pembuatan message digest dengan algoritma SHA [MUN09]
Langkah-langkah pembuatan message digest secara garis besar adalah sebagai
berikut:
1. Penambahan bit-bit pengganjal (padding bits)
2. Penambahan nilai panjang pesan semula
3. Inisialisasi penyangga (buffer) MD
4. Pengolahan pesan dalam blok berukuran 512 bit.
II.5.1. Penambahan Bit-Bit Pengganjal
Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan
(dalam satuan bit) kongruen dengan 448 modulo 512. Ini berarti panjang pesan setelah
ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 ini muncul
karena SHA memroses pesan dalam blok-blok yang berukuran 512.
Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit pengganjal. Jika
panjang bit-bit pengganjal adalah 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah bit 1
diikuti dengan sisanya bit 0. Panjangnya seperti yang telah dijelaskan adalah antara 1 sampai
512.
II.5.2. Penambahan Nilai Panjang Pesan Semula
Pesan yang telah diberi bit-bit pengganjal selanjutnya akan ditambah lagi dengan 64
bit yang menyatakan panjang pesan semula. Panjang pesan semula merupakan ukuran pesan
asli sebelum ditambahkan dengan bit-bit pengganjal. Ukuran pesan semula ini dinyatakan
dengan ukuran byte. Setelah ditambah dengan 64 bit, panjang pesan selanjutnya menjadi 512
bit.
II.5.3. Inisialisasi Penyangga MD
SHA membutuhkan 5 buah penyangga (buffer) yang masing-masing panjangnya 32
bit (MD5 hanya mempunyai 4 buah penyangga) sehingga total panjang penyangga adalah
160 bit. Kelima penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga diinisialisasi
dengan nilai-nilai (dalam notasi HEX) sebagai berikut:
A = 67452301
B = EFCDAB89
C = 98BADCFE
D = 10325476
E = C3D2E1F0
II.5.4. Pengolahan Pesan dalam Blok Berukuran 512 Bit
Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0
sampai YL-1). Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran
banyak menggunakan fungsi-fungsi logika dengan kombinasi yang berbeda pada tiap-tiap
tahap putaran. Hasil pengolahan pada suatu blok pesan 512 bit menjadi masukan bagi blok
pesan 512 bit berikutnya. Demikian seterusnya sampai pengolahan blok ini sampai pada blok
pesan 512 bit yang terakhir seperti pada Gambar II-10.
ABCDE ← f(ABCDE, Yq, K0) A B C D E ABCDE ← f(ABCDE, Yq, K1) A B C D E ABCDE ← f(ABCDE, Yq, K79) A B C D E MDq 512 + + + + 160 MDq + 1
Gambar II-10 Pengolahan blok 512 bit (Proses HSHA) [MUN09]
Proses HSHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran) dan masing-masing
menggunakan bilangan penambah K, yaitu:
Putaran 0 ≤ t ≤ 19 Kt = 5A827999
Putaran 20 ≤ t ≤ 39 Kt = 6ED9EBA1
Putaran 60 ≤ t ≤ 79 Kt = CA62C1D6
Pada Gambar II-11, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah
bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai message
digest 160-bit dari proses HSHA ke-q. Pada awal proses, MDq berisi nilai inisialisasi
penyangga MD.
Setiap putaran menggunakan operasi dasar yang sama (dinyatakan sebagai fungsi f).
Operasi dasar SHA diperlihatkan pada Gambar II-11.
Gambar II-11 Operasi dasar SHA dalam satu putaran (fungsi f) [MUN09]
Operasi dasar SHA yang diperlihatkan pada Gambar II-11 dapat ditulis dengan
persamaan..
a, b, c, d, e ← (CLS5(a) + fr(b,c,d) + e + Wt + Kt), a, CLS30(b), c, d (II-13)
yang dalam hal ini,
a, b, c, d, e = lima buah peubah penyangga 32-bit (berisi nilai penyangga A, B, C, D, E)
ft = fungsi logika
CLSs = circular left shift sebanyak s bit
Wt = word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses
Kt = konstanta penambah
+ = operasi penambahan modulo 232
atau dapat dinyatakan dalam kode program berikut:
Kode program operasi SHA
Dalam hal ini, <<< menyatakan operasi pergeseran circular left shift. Fungsi ft adalah
fungsi logika yang melakukan operasi logika bitwise. Operasi logika yang dilakukan dapat
dilihat pada Tabel II-3.
Tabel II-3 Fungsi logika ft pada setiap putaran [RIN06]
Putaran ft(b,c,d)
0 .. 19 (b and c) or (~b and d)
20 .. 39 b xor c xor d
40 .. 59 (b and c) or (b and d) or (c and d)
60 .. 79 B xor c xor d for t ← 0 to 79 do TEMP ← (a <<< 5) + ft(b,c,d) + e + Wt + Kt e ← d d ← c c ← b <<< 30 b ← a a ← TEMP endfor
Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang diproses, sedangkan
nilai Wt berikutnya didapatkan dari persamaan II-14.
Wt = Wt-16 xor Wt-14 xor Wt-8 xor Wt-3 (II-14)
Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan
selanjutnya algoritma memroses untuk blok data berikutnya (Yq+1). Keluaran akhir dari
algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E.
II.6 Algoritma A3
Algoritma A3 adalah algoritma otentikasi dalam model keamanan GSM. Fungsinya
adalah untuk membangkitkan respon SRES (Signed RESponse) kepada random challenge
MSC (Mobile services Switching Center) yaitu RAND yang diterima oleh MSC dari HLR.
Algoritma A3 mendapatkan RAND dari MSC serta kunci rahasia Ki dari SIM (Subscriber
Identity Module) sebagai masukan dan membangkitkan keluaran 32 bit yang disebut sebagai
respon SRES. RAND dan Ki memiliki panjang 128 bit. Diagram kalkulasi respon SRES dapat
dilihat pada Gambar II-12.
Gambar II-12 Diagram kalkulasi respon SRES [PES99]
Hampir setiap operator GSM di dunia menggunakan suatu algoritma yang disebut
dengan COMP128 untuk algoritma A3 dan A8. COMP128 adalah algoritma referensi yang
II.7 Algoritma A5
Algoritma A5 adalah suatu cipher aliran yang digunakan untuk mengenkripsi transmisi
melalui udara. Cipher aliran diinisialisasi secara berkali-kali pada setiap frame yang dikirim.
Cipher aliran diinisialisasi dengan kunci sesi, Kc, dan jumlah frame yang sedang dienkripsi
atau didekripsi. Kc yang sama digunakan melalui panggilan, tetapi nomor frame 22 bit
berubah selama panggilan sehingga membangkitkan suatu kunci aliran yang unik untuk
setiap frame. Pada Gambar II-13 dapat dilihat pembangkitan kunci aliran.
Gambar II-13 Pembangkitan kunci aliran [PES99]
Algoritma A5 yang digunakan di wilayah Eropa terdiri atas tiga LSFR (Linear Shift
Feedback Register) dengan panjang yang berbeda. Keluaran-keluaran dari ketiga register
tersebut, kemudian di-XOR-kan secara bersamaan dan XOR merepresentasikan satu bit aliran
kunci. LFSR tersebut adalah sepanjang 19, 22 dan 23 bits dengan beberapa feedback
polinomial. Ketiga register tersebut dijadwalkan berdasarkan bit tengah pada register. Suatu
register dijadwalkan jika bit tengahnya sesuai dengan nilai mayoritas dari tiga bit tengah
register lainnya. Sebagai contoh, jika bit-bit tengah dari ketiga register adalah 1, 1 dan 0,
maka kedua register pertama dijadwalkan atau jika bit-bit tengahnya adalah 0,1 dan 0, maka
register pertama dan ketiga dijadwalkan. Paling tidak dua register dijadwalkan pada setiap
Gambar II-14 Konstruksi LSFR pada A5 [PES99]
Tiga LSFR pada Gambar II-14 diinisialisasi dengan kunci sesi, Kc dan nomor frame.
Kc 64 bit pertama kali dimuat ke dalam register bit demi bit. LSB dari kunci di-XOR-kan
dengan setiap LSFR. Register-register kemudian dijadwalkan semuanya. Semua kunci 64 bit
dimuat ke dalam register dengan cara yang sama. Nomor frame 22 bit juga dimuat ke dalam
register dalam cara yang sama kecuali aturan penjadwalan mayoritas diaplikasikan. Setelah
register-register diinisialisasi dengan Kc dan nomor frame yang sekarang, semua register
dijadwalkan seribu kali dan menghapus bit-bit aliran kunci yang dibangkitkan. Hal ini
dilakukan untuk menggabungkan nomor frame dan material penguncian secara bersamaan.
Sekarang 228 bit keluaran aliran kunci telah dibangkitkan. 114 bit pertama digunakan untuk
mengenkripsi frame dari MS (Mobile Subscriber) ke BTS (Base Tower Station) dan 114 bit
berikutnya digunakan untuk mengenkripsi frame dari BTS ke MS. Setelah ini, algoritma A5
diinisialisasi lagi dengan Kc yang sama dan nomor untuk frame berikutnya.
Sejak pertama kali jaringan GSM ada, algoritma selain A5 telah didesain dan
diimplementasikan. Motivasi utamanya adalah karena algoritma enkripsi A5 yang orisinil
sangat sulit untuk diterapkan di timur tengah. Sehingga algoritma A5 yang orisinil diganti
tidak ada enkripsi sama sekali, dan A5/2 yaitu suatu algoritma privasi melalui udara yang
paling lemah. Secara umum, algoritma A5 setelah A5/1 memiliki nama A5/x. Sebagian besar
algoritma A5/x lebih lemah dibandingkan dengan algoritma A5/1 yang memiliki
kompleksitas 254 seperti yang telah diperlihatkan sebelumnya. Perkiraan waktu kompleksitas
A5/2 lebih rendah yaitu 216.
II.8 Algoritma A8
Algoritma A8 adalah algoritma pembangkitan kunci dalam model keamanan GSM.
A8 membangkitkan kunci Kc, dari random challenge, RAND diterima dari MSC dan dari
kunci rahasia Ki. Algoritma A8 mengambil dua masukan 128 bit dan membangkitkan suatu
keluaran 64 bit darinya yaitu kunci sesi Kc. Kalkulasi kunci sesi (Kc) dapat dilihat pada
Gambar II-15.
Gambar II-15 Kalkulasi kunci sesi (Kc) [PES99]
COMP128 membutuhkan algoritma A3 dan A8 pada sebagian besar jaringan-jaringan
GSM. COMP128 membangkitkan respon SRES dan kunci sesi dalam sekali jalan. 54 bit
akhir dari keluaran COMP128 membentuk kunci sesi Kc sampai MS diotentikasi lagi.
Kalkulasi COMP128 dapat dilihat pada Gambar II-16.
Gambar II-16 Kalkulasi COMP128 [PES99]
Kedua algoritma A3 dan A8 disimpan pada SIM untuk mencegah orang-orang yang
independen dari produsen perangkat keras dan operator jaringan lainnya. Otentikasi bekerja
pada wilayah-wilayah lainnya dengan baik karena jaringan lokal menanyakan HLR dari
jaringan asal pelanggan tentang 5 triples. Jaringan lokal tidak perlu mengetahui apapun
tentang algoritma A3 dan A8 yang digunakan.
II.9 Tanda Tangan Digital
Pada subbab II.1, terdapat 4 tujuan mendasar dari ilmu kriptografi yang juga
merupakan aspek keamanan informasi yaitu kerahasiaan, integritas data, otentikasi dan
nirpenyangkalan. Tiga tujuan terakhir yaitu, integritas data, otentikasi dan nirpenyangkalan
dapat diselesaikan dengan teknik otentikasi pesan.
Teknik otentikasi adalah prosedur yang digunakan untuk membuktikan keaslian
pesan, keaslian identitas pengirim, dan pengirim tidak dapat melakukan penyangkalan
terhadap isi pesan. Terdapat dua alternatif cara yang digunakan untuk otentikasi yaitu:
1. Menandatangani pesan
Pesan ditandatangani oleh pengirim. Pemberian tanda tangan adalah secara digital.
Pesan yang sudah ditandatangani menunjukkan bahwa pesan tersebut otentik baik
isi maupun pengirim.
2. Menggunakan MAC (Message Authentication Code)
MAC adalah kode yang ditambahkan pada pesan. Kode tersebut dibangkitkan
oleh suatu algoritma dan bergantung pada pesan dan kunci rahasia.
Tanda tangan digital adalah tanda tangan pada data digital. Yang dimaksud dengan
tanda tangan digital bukanlah tanda tangan yang di-digitisasi dengan alat scanner, tetapi
suatu nilai kriptografis yang bergantung kepada pesan dan pengirim pesan. Dengan tanda
tangan digital, maka integritas data dapat dijamin, disamping itu ia juga digunakan untuk
Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara:
1. Enkripsi pesan
Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang
terenkripsi sudah menyatakan bahwa pesan tersebut telah ditandatangani.
2. Tanda tangan digital dengan fungsi hash
Tanda tangan digital dibangkitkan dari hash terhadap pesan. Nilai hash adalah kode
ringkas dari pesan. Tanda tangan digital berlaku seperti tanda-tangan pada dokumen
kertas. Tanda tangan digital ditambahkan pada pesan.
II.9.1. Penandatanganan dengan Cara Mengenkripsi Pesan II.9.1.1. Menandatangani Pesan dengan Algoritma Simetri
Pesan yang dienkripsi dengan algoritma simetri sudah memberikan solusi untuk
otentikasi pengirim dan keaslian pesan, karena kunci simetri hanya diketahui oleh pengirim
dan penerima. Jadi, jika B menerima pesan dari A, maka ia percaya pesan itu dari A dan
isinya tidak mengalami perubahan, karena tidak ada orang lain yang mengetahui kunci selain
merek a berdua. Namun, algoritma simetri tidak dapat menyediakan suatu mekanisme untuk
mengatasi masalah penyangkalan, yaitu jika salah satu dari dua pihak, A dan B membantah
isi pesan atau telah mengirim pesan.
II.9.1.2. Menandatangani Pesan dengan Algoritma Kunci-Publik
Jika algoritma kunci-publik digunakan, maka setiap enkripsi pesan dengan kunci
publik tidak dapat digunakan untuk otentikasi, karena setiap orang potensial mengetahui
kunci-publik. Namun, jika enkripsi pesan menggunakan kunci privat si pengirim dan dekripsi
pesan juga menggunakan kunci-publik si pengirim, maka kerahasiaan pesan dan otentikasi
Beberapa algoritma kunci-publik seperti RSA dapat digunakan untuk menandatangani
pesan dengan cara mengenkripsinya, asalkan algoritma tersebut memenuhi sifat:
DSeK(EPK(M)) = M dan DPK(ESK(M)) = M, dengan PK = kunci publik dan SK = kunci privat.
Proses penandatanganan pesan dengan algoritma kunci-publik adalah sebagai berikut:
1. Misalkan M adalah pesan yang akan dikirim. Pesan M ditandatangani menjadi pesan
terenkripsi S dengan menggunakan kunci privat (SK) si pengirim
S = ESK(M) (II-15)
yang dalam hal ini. E adalah fungsi enkripsi dari algoritma kunci-publik. Selanjutnya, S
dikirim melalui saluran komunikasi.
2. Di tempat penerima, pesan dibuktikan otentikasinya dengan menggunakan kunci publik
(PK) pengirim,
M = DPK(S) (II-16)
yang dalam hal ini, D adalah fungsi enkripsi dari algoritma kunci-publik. S dikatakan
absah apabila pesan M yang dihasilkan merupakan pesan yang mempunyai makna.
Dengan menggunakan algoritma kunci-publik, penandatanganan pesan tidak
membutuhkan pihak penengah.
II.9.2. Tanda-tangan dengan Menggunakan Fungsi Hash
II.9.3. Proses Pemberian Tanda-tangan Digital
Proses pemberian tanda tangan digital diawali dengan mengubah pesan yang akan
dikirim menjadi bentuk yang ringkas yang disebut message digest. Message digest (MD)
diperoleh dengan mentransformasikan pesan M dengan menggunakan fungsi hash satu arah
(one-way) H,
Pesan yang sudah diubah menjadi message digest oleh fungsi hash tidak dapat
dikembalikan lagi menjadi bentuk semula walaupun digunakan algoritma dan kunci yang
sama. Sembarang pesan yang berukuran apapun diubah oleh fungsi hash menjadi message
digest yang berukuran tetap. Message digest disebut juga nilai hash (hash value) dari fungsi
hash H.
Selanjutnya, MD dienkripsi dengan algoritma kunci-publik menggunakan kunci privat
(SK) pengirim. Hasil enkripsi inilah yang dinamakan dengan tanda-tangan digital S.
S = ESK(MD) (II-18)
Pesan M disambung dengan tanda tangan digital S, lalu keduanya dikirim melalui
saluran komunikasi. Dalam hal ini, kita katakan bahwa pesan M sudah ditandatangani oleh
pengirim dengan tanda-tangan digital S. Di tempat penerima, tanda-tangan diverifikasi untuk
dibuktikan keotentikannya dengan cara berikut:
1. Tanda tangan digital S didekripsi dengan menggunakan kunci-publik (PK) pengirim
pesan, menghasilkan message digest semula yaitu MD.
2. Penerima kemudian mengubah pesan M menjadi MD’ menggunakan fungsi hash satu
arah yang sama dengan fungsi hash yang digunakan oleh pengirim.
3. Jika MD’ = MD, berarti tanda-tangan yang diterima otentik dan berasal dari pengirim
yang benar.
Skema tanda tangan digital dengan menggunakan fungsi hash dapat digambarkan
Message Fungsi Hash Message Digest (MD) Encrypt Secret Key Signature Message Signature Message Signature Message Fungsi Hash Signature Decrypt Message Digest (MD) Public Key Message Digest (MD') ? = Signer Verifier
Gambar II-17 Otentikasi dengan tanda-tangan digital yang menggunakan fungsi hash satu-arah [MUN09]
Otentikasi pesan dapat dijelaskan sebagai berikut:
a. Apabila pesan M yang diterima sudah berubah, maka MD’ yang dihasilkan dari fungsi
hash berbeda dengan MD semula. Ini berarti pesan tidak asli lagi.
b. Apabila pesan M tidak berasal dari orang yang sebenarnya, maka message digest MD
yang dihasilkan dari persamaan II-17 berbeda dengan message digest MD’ yang
dihasilkan pada proses verifikasi. Hal ini dikarenakan kunci-publik yang digunakan
oleh penerima pesan tidak berkoresponden dengan kunci rahasia pengirim.
c. Bila MD = MD’ ini berarti pesan yang diterima adalah pesan yang asli dan orang
mengirim adalah orang yang sebenarnya.
II.10 Protokol
Protokol adalah suatu urutan langkah-langkah yang melibatkan dua atau lebih pihak
yang dibuat untuk menyelesaikan suatu tugas tertentu. Protokol memiliki urutan
bergiliran. Suatu langkah tidak dapat dilakukan jika langkah sebelumnya belum selesai
dilakukan. Protokol harus dilakukan oleh dua pihak atau lebih. Jika suatu hal hanya dilakukan
oleh satu pihak saja, maka hal tersebut bukanlah protokol. Protokol juga harus memiliki
tujuan tertentu untuk diselesaikan. Jika ada suatu hal yang mirip dengan protokol tetapi tidak
memiliki suatu tujuan, maka hal tersebut bukanlah protokol.
Protokol memiliki karakteristik-karakteristik tertentu yaitu :
1) Setiap orang yang terlibat di dalam protokol harus mengetahui protokol tersebut dan
semua langkah-langkah yang harus dilakukan.
2) Setiap orang yang terlibat di dalam protokol harus setuju untuk mengikutinya.
3) Protokol harus tidak ambigu. Setiap langkah harus dibuat dengan baik dan tidak
menimbulkan kesalahpahaman.
4) Protokol harus selesai yang artinya protokol harus memiliki suatu aksi yang spesifik
untuk semua situasi yang mungkin terjadi.
Protokol kriptografik adalah suatu protokol yang menggunakan kriptografi. Dalam
protokol ini, pihak-pihak dapat berupa teman yang saling percaya satu sama lain secara
implisit atau sebaliknya tidak saling mempercayai satu sama lainnya. Algoritma kriptografi
berperan dalam protokol ini. Tujuan utama penggunaan kriptografi dalam protokol adalah
untuk mencegah atau mendeteksi adanya pencurian pesan dan kecurangan.
II.10.1. Tipe-tipe protokol
Menurut [SCH96] terdapat tiga tipe protokol yaitu :
1. Arbitrated Protocol
2. Adjudicated Protocol
II.10.1.1. Arbitrated Protocol
Suatu arbitrator adalah suatu pihak ketiga yang dipercaya dan netral untuk
menyelesaikan suatu protokol. Dipercaya maksudnya adalah semua orang yang terlibat dalam
protokol mempercayai sepenuhnya kepada pihak ketiga. Arbitrator dapat membantu
menolong menyelesaikan protokol-protokol antara dua pihak yang tidak saling mempercayai.
Ada beberapa masalah dengan arbitrator komputer antara lain:
1. mudah untuk mencari dan mempercayai suatu pihak ketiga yang netral jika kita dapat
melihat siapa pihak tersebut dan dapat melihat wajahnya.
2. jaringan komputer harus menangani biaya perawatan dari suatu arbitrator.
3. terdapat suatu delay biasa dalam setiap arbitrated protocol.
4. arbitrator harus berhadapan dengan setiap transaksi. Arbitrator merupakan suatu
hambatan dalam implementasi protokol apapun dalam skala besar. Menambah jumlah
arbitrator dalam implementasi dapat menyelesaikan masalah tetapi akan menambah biaya.
5. karena setiap orang harus mempercayai arbitrator, dia merepresentasikan suatu titik
lemah untuk siapapun yang ingin menyingkirkan jaringan.
II.10.1.2. Adjudicated Protocol
Karena biaya yang tinggi dalam menyewa arbitrator, arbitrated protocol dapat dibagi
menjadi dua subprotocol tingkat rendah. Pertama adalah suatu nonarbitrated protocol,
dieksekusi ketika setiap pihak ingin menyelesaikan protokol. Kedua adalah suatu
anarbitrated subprotocol yang dieksekusi hanya pada kondisi tertentu.
Suatu adjudicator adalah suatu pihak ketiga yang tidak tertarik dengan suatu pihak
tertentu dan dipercaya. Tidak seperti arbitrator, adjudicator tidak secara langsung terlibat
dalam setiap protokol. Adjudicator hanya dipanggil untuk menentukan apakah suatu protokol
II.10.1.3. Self Enforcing Protocol
Suatu self enforcing protocol adalah tipe protokol yang terbaik. Protokol itu sendiri
menjamin keadilan. Tidak ada arbitrator yang dibutuhkan untuk menyelesaikan protokol dan
tidak dibutuhkan suatu adjudicator untuk menyelesaikan konflik. Protokol dibuat agar tidak
terjadi suatu ketidaksetujuan antar pihak. Jika suatu pihak mencoba untuk melakukan
kecurangan, maka pihak lain segera mengetahui adanya kecurangan dan protokol akan
berhenti.
II.10.2. Serangan-serangan terhadap protokol
Terdapat 2 macam serangan terhadap protokol yaitu antara lain serangan aktif dan
serangan pasif. Untuk lebih mudah dalam memahami serangan-serangan tersebut, akan
dijelaskan satu persatu.
Pada serangan pasif, suatu pihak yang tidak terlibat dalam protokol dapat mengambil
sebagian atau semua protokol. Penyerang tidak mempengaruhi protokol. Penyerang hanya
mengobservasi protokol dan berusaha untuk mendapatkan informasi. Karena serangan pasif
sulit untuk dideteksi, maka protokol harus dibuat berfokus pada pencegahan serangan pasif
daripada mendeteksinya.
Serangan yang melibatkan intervensi secara aktif disebut dengan serangan aktif. Pada
seranganan ini seorang penyerang dapat mencoba berpura-pura sebagai seseorang, membuat
pesan baru, menghapus pesan, mengganti suatu pesan dengan pesan lainnya, menginterupsi
II.11 SMS (Short Message Service)
SMS merupakan kepanjangan dari short message service. SMS merupakan layanan
nirkabel yang diterima secara global yang memungkinkan transmisi pesan alfanumerik antara
para pelanggan mobile dan sistem eksternal seperti surat elektronik dan sistem surat suara.
SMS memberikan suatu mekanisme dalam mengirimkan pesan pendek ke dan dari
alat-alat nirkabel. Layanan tersebut menggunakan fungsi dari SMSC yang berperan sebagai
sistem store-and-forward untuk pesan-pesan pendek. Jaringan nirkabel memberikan
mekanisme yang dibutuhkan untuk mencari stasiun tujuan dan membawa pesan pendek
antara SMSC-SMSC dan stasiun-stasiun nirkabel
Karakteristik dari SMS yaitu pengiriman paket out-of-band dan pengiriman pesan
dengan bandwidth yang rendah yang menghasilkan pengiriman semburan data pendek
dengan efisiensi yang tinggi. Aplikasi dasar dari SMS berfokus dalam menghilangkan pager
alfanumerik dengan mengizinkan fungsi umum dalam pengiriman pesan dua arah dan
layanan notifikasi.
Dalam dunia yang kompetitif, perbedaan merupakan suatu faktor yang signifikan
dalam kesuksesan suatu pemberi layanan. SMS memberikan suatu dasar untuk memberikan
perbedaan dalam layanan. Jika pasar mengizinkan hal tersebut, SMS juga dapat dijadikan
sebagai sumber tambahan bagi pemberi layanan.
Keuntungan dasar dari SMS antara lain pengiriman notifikasi dan pemberitahuan,
jaminan pengiriman pesan, handal, mekanisme komunikasi yang rendah biaya untuk
informasi ringkas, kemampuan untuk menampilkan pesan dan mengembalikan
panggilan-panggilan dalam suatu cara yang selektif dan menambah produktivitas para pelanggan.
Keuntungan bagi pelanggan lanjut antara lain pengiriman pesan-pesan ke banyak
generasi email, pembuatan kelompok-kelompok pengguna, dan integrasi dengan data lain dan
aplikasi berbasis internet.
Keuntungan bagi pemberi layanan antara lain kemampuan untuk menambah
pendapatan rata-rata untuk setiap pengguna, suatu layanan alternatif pengganti layanan pager,
kemampuan untuk memungkinkan akses data nirkabel untuk para penggunan korporat, dan
sebagainya.
II.12 SMS-Banking
SMS-Banking merupakan suatu layanan perbankan melalui jalur elektronik yang
memungkinkan para nasabah bank tertentu untuk melakukan berbagai transaksi perbankan
melalui fasilitas SMS pada telepon seluler. Layanan ini bertujuan untuk memberi kemudahan
kepada nasabah dalam memperoleh informasi keuangan dan melakukan transaksi dimanapun
dan kapanpun tanpa harus mengunjungi ATM atau bank tempat mereka menjadi nasabah
[ALM07]. Layanan ini sudah ditawarkan oleh berbagai bank di Indonesia. Fasilitas-fasilitas
yang ditawarkan dalam layanan ini hampir sama dengan layanan ATM (Anjungan Tunai
Mandiri) pada umumnya, kecuali dalam fasilitas penarikan uang tunai.
Berikut beberapa layanan yang disediakan oleh Bank untuk dapat melakukan
transaksi melalui SMS:
- cek saldo
- cek kurs valuta asing
- cek tiga transaksi terakhir
- pembayaran kartu kredit
Layanan ini menjanjikan mobilitas yang tinggi, bisa dilakukan kapanpun dan dimanapun,
bahkan saat roaming internasional sekalipun, tentu saja dengan syarat sistem yang digunakan
GSM dan nomor ponsel sudah terdaftar untuk roaming internasional.
II.12.1. Tinjauan SMS-Banking yang Sudah Ada
Pada saat ini terdapat beberapa contoh bank yang sudah menyediakan layanan
SMS-Banking yaitu misalnya Bank BNI dan Bank Niaga. Pada Bank BNI, penggunaan layanan
Banking masih menggunakan SMS biasa. Pengguna dapat menggunakan layanan
SMS-Banking dengan cara mengirimkan SMS dengan sintaks yang sudah ditentukan kepada nomor
layanan tertentu. Dengan cara ini, setiap nasabah yang mempunyai telepon seluler dapat
menggunakan layanan ini tanpa terhambat oleh spesifikasi telepon seluler yang mereka
punya.
Pada Bank Niaga, nasabah dapat menggunakan layanan SMS-Banking jika
penggunanya memiliki telepon seluler yang mendukung Java MIDP 2.0. Dengan
menggunakan aplikasi tambahan, keamanan layanan SMS-Banking dapat ditingkatkan.
Namun, cara ini memiliki kelemahan dalam hal terbatasnya pengguna yang memiliki telepon