Anda di halaman 1dari 41

Algoritma Kriptografi & Contohnya

Mata Kuliah : Sistem Keamanan Jaringan


Dosen Pembimbing : Defiana Arnaldy, M.Si


Di susun oleh :
Eka Risky Firmansyah
1110091000043

Teknik Informatika 5 B
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
2012

1

KATA PENGANTAR

Bismillahirrahmanirrahiim. Assalamualaikum, wr. wb.
Puji dan syukur senantiasa kita panjatkan kehadirat Allah SWT, shalawat serta salam
semoga senantiasa dilimpahkan kepada Nabi Muhammad SAW, juga untuk para keluarga,
sahabat dan pengikutnya sampai akhir zaman. Karena atas rahmat-Nya, penyusun dapat
menyelesaikan penyusunan makalah ini yang berjudul Algoritma Kriptografi & Contohnya.
Makalah ini disusun untuk memenuhi tugas mata kuliah Sistem Keamanan
Jaringan. Penyusun mengucapkan terimakasih kepada Bapak Defiana Arnaldy, M.Si. selaku
dosen pengampu, teman-teman dan semua pihak yang membantu dalam penyelesaian karya
tulis ini.
Penyusun berharap makalah ini dapat menambah pengetahuan pembaca dan
memberikan gambaran mengenai materi terkait yaitu Algoritma Kriptografi. Sehingga
pembaca dapat menggunakan makalah ini sebagai literatur pendukung dalam pengembangan
bidang ilmu selanjutnya yang terkait dengan penggunaan algoritma kriptografi.
Penyusun menyadari bahwa makalah ini masih jauh dari kesempurnaan, oleh karena
penyusun mengharapkan saran dan kritik yang membangun untuk perbaikan makalah ini.
Besar harapan penyusun agar penulisan makalah ini dapat berguna bagi siapapun yang
menjadikan makalah ini sebagai bahan literatur mengenai materi terkait.
Wassalamualaikum, wr. wb.
Penyusun

2

DAFTAR ISI

KATA PENGANTAR.............................................................................................................. 1
DAFTAR ISI............................................................................................................................. 2
BAB I PENDAHULUAN......................................................................................................... 3
I.1 ALGORITMA KRIPTOGRAFI............................................................................................... 3
I.2 JENIS ALGORITMA KRIPTOGRAFI ..................................................................................... 4
I.3 ALGORITMA KRIPTOGRAFI KLASIK.................................................................................. 5
I.4 ALGORITMA KRIPTOGRAFI MODERN ............................................................................... 6
BAB II PEMBAHASAN .......................................................................................................... 8
II.1 KRIPTOGRAFI SIMETRI.................................................................................................. 8
I. Block Cipher................................................................................................................ 8
1. Data Encryption Standard (DES)............................................................................. 8
2. International Data Encryption Algorithm (IDEA)................................................. 11
3. Advanced Encryption Standard (AES) .................................................................. 15
II Stream Cipher............................................................................................................ 16
1. On Time Pad (OTP)............................................................................................... 16
2. A5 .......................................................................................................................... 17
3. RC4 ........................................................................................................................ 18
II.2 KRIPTOGRAFI ASIMETRI ............................................................................................. 20
1. RSA (RivestShamirAdleman).............................................................................. 21
2. Diffie-Hellman (DH) ................................................................................................. 24
3. Elliptic Curve Cryptography (ECC).......................................................................... 25
4. Digital Signature Algorithm (DSA) ........................................................................... 25
II.3 KRIPTOGRAFI FUNGSI HASH....................................................................................... 28
1. MD5 (Message Digest 5)........................................................................................... 28
2. SHA1 (Secure Hash Algorithm) ................................................................................ 33
BAB III KESIMPULAN & SARAN..................................................................................... 39
III.1 KESIMPULAN .............................................................................................................. 39
III.2 SARAN........................................................................................................................ 39
DAFTAR PUSTAKA ............................................................................................................. 40


3

BAB I
PENDAHULUAN

I.1 Algoritma Kriptografi
Algoritma merupakan urutan langkah-langkah logis untuk menyelesaikan masalah
yang disusun secara matematis dan benar. Sedangkan kriptografi (cryptography) berasal dari
kata crypto yang berarti secret (rahasia) dan graphy yang berarti writing (tulisan).
Kriptografi merupakan 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. Sehingga algoritma kriptografi merupakan langkah-langkah logis bagaimana
menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut.
[1]

Prinsip-prinsip yang mendasari kriptografi yakni :
1. 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.
2. Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya
manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak
lain).
3. Authentication (otentik) yaitu layanan yang berhubungan dengan identifikasi.
Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi
keaslian data/informasi.
4. Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak
untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut
berasal dirinya). (Alferd J. Menezes, 1996).
Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu :
1. Enkripsi, merupakan hal yang sangat penting dalam kriptografi, merupakan pengamanan
data yang dikirimkan agar terjaga kerahasiaannya. Pesan asli disebut plaintext, yang
diubah menjadi kode-kode yang tidak dimengerti. Enskripsi bisa diartikan dengan cipher
atau kode.
4

2. Dekripsi, merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan
ke bentuk asalnya (tesk-asli), disebut dengan dekripsi pesan. Algoritma yang digunakan
untuk dekripsi tentu berbeda dengan algoritma untuk enkripsi.
3. Kunci, yang dimaksud adalah kunci yang dipakai untu melakukan enkripsi dan dekripsi.
Kunci terbagi menjadi dua bagian, kunci rahasia (private key) dan kunci umum (public
key).
Secara umum fungsi tersebut digambarkan :

Gambar 1 - Proses Enkripsi dan Dekripsi
Secara matematis, proses atau fungsi tersebut :
1. Enkripsi (E) : E(M) = C
2. Dekripsi (D) : D(C) = M
Keterangan : M adalah plaintext (message) dan C adalah ciphertext.
[2]
I.2 Jenis Algoritma Kriptografi
Berdasarkan kunci yang dipakainya, algoritma kriptografi dibagi menjadi tiga jenis :
1. Algoritma Simetri
Algoritma yang memakai kunci simetri di antaranya adalah :
a. Blok Chiper : Data Encryption Standard (DES), International Data Encryption
Algorithm (IDEA), Advanced Encryption Standard (AES).
b. Stream Chiper : On Time Pad (OTP), A5, RC2, RC4, RC5, dan RC6
2. Algoritma Asimetri
Algoritma yang memakai kunci public di antaranya adalah : Digital Signature Algorithm
(DSA), RSA, Diffle-Hellman (DH), Elliptic Curve Cryptography (ECC), Kriptografi
Quantum, dan lain sebagainya.
3. Fungsi Hash
Contoh algoritma yang menggunakan fungsi hash adalah MD5 dan SHA1.
5

I.3 Algoritma Kriptografi Klasik
Algoritma kriptografi klasik merupakan suatu algoritma yang menggunakan satu
kunci untuk mengamankan data. Teknik ini telah digunakan beberapa abad yang lalu. Teknik
dasar yang biasa digunakan adalah sebagai berikut :
1. Substitusi
Penggantian setiap karakter teks-asli dengan karakter lain berdasarkan tabel substitusi
yang dibuat, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk
keperluan dekripsi. Contohnya : tabel subsitusi Caesar Chipher dan ROT 13
SISTEM VLVWHP (Menggunanakn Caesar Chipher)
2. Blocking
Membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian
dienkripsikan secara independen. Dengan menggunakan enkripsi blocking dipilih jumlah
lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi
kriptografi dengan teknik ini.

Gambar 2 - Contoh Blocking
3. Permutasi
Sering juga disebut transposisi, teknik ini memindahkan atau merotasikan karakter
dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam
teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang diacak.
Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.
Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-
blok dengan panjang yang sama.

Gambar 3 - Contoh Permutasi
6

4. Ekspansi
Suatu metode sederhana untuk mengacak pesan adalah dengan memanjangkan pesan itu
dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan
meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di
akhir kata itu dan menambahkan akhiran "an". Bila suatu kata dimulai dengan huruf vokal
atau bilangan genap, ditambahkan akhiran "i".

Gambar 4 - Contoh Ekxpansi
5. Pemampatan
Mengurangi panjang pesan atau jumlah bloknya. Contoh sederhana ini menggunakan cara
menghilangkan setiap karakter ke-tiga secara berurutan. Karakter-karakter yang
dihilangkan disatukan kembali dan disusulkan sebagai "lampiran" dari pesan utama,
dengan diawali oleh suatu karakter khusus, dalam contoh ini digunakan "&".

Gambar 5 - Contoh Pemampatan
I.4 Algoritma Kriptografi Modern
Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode
karakter (seperti yang dilakukan pada cipher substitusi atau cipher transposisi dari algoritma
kriptografi klasik). Operasi dalam mode bit berarti semua data dan informasi (baik kunci,
plainteks, maupun ciphertext) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1.
7

Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk
rangkaian bit. Rangkaian bit yang menyatakan plaintext dienkripsi menjadi ciphertext dalam
bentuk rangkaian bit, demikian sebaliknya.
Enkripsi modern berbeda dengan enkripsi konvensional. Enkripsi modern sudah
menggunakan komputer untuk pengoperasiannya, berfungsi untuk mengamankan data baik
yang ditransfer melalui jaringan komputer mauapun yang bukan. Hal ini sangat berguna
untuk melindungi privacy, data integrity, authentication dan non-repudiation. Perkembangan
algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang
merepresentasikan data dalam bentuk biner.
[3]


8

BAB II
PEMBAHASAN

II.1 Kriptografi Simetri
Sering disebut dengan algoritma klasik karena memakai kunci yang sama untuk
kegiatan enkripsi maupun dekripsi. Algoritma ini sudah ada sejak lebih dari 4000 tahun yang
lalu. Bila mengirim pesan dengan menggunakan algoritma ini, si penerima pesan harus
diberitahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang terkirim.
Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci. Jika kunci
tersebut diketahui oleh orang lain maka orang tersebut akan dapat melakukan enkripsi dan
dekripsi terhadap pesan.
[4]

Gambar 6 - Kriptografi Simetri
[5]

I. Block Ci pher
Yaitu proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per
blok). Berikut ini merupakan beberapa algoritma kriptografi yang dikembangkan
menggunakan kriptografi simetri dan merupakan pengembangan dari kriptografi klasik.
1. Data Encryption Standard (DES)
Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L.
Tuchman pada tahun 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.
[6]

DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher
blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks
menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key)
9

atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external
key) yang panjangnya 64 bit.
Skema global dari 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 kali (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.

Gambar 7 - Skema Global DES
Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri
(L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk
ke dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk
fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan
kunci internal K
i
. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk
mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari
blok R sebelumnya. Ini adalah satu putaran DES. Secara matematis, satu putaran DES
dinyatakan sebagai :
- L
i
= R
i 1

- R
i
= L
i 1
f(R
i 1
, K
i
)
10

Plainteks
IP
L
0
R
0
f

) , (
1 0 0 1
K R f L R =
L
1
= R
0
K
1
f

) , (
2 1 1 2
K R f L R =
L
2
= R
1
K
2
) , (
15 14 14 15
K R f L R =
L
15
= R
14
K
16
) , (
16 15 15 16
K R f L R =
L
16
= R
15
IP
-1
Cipherteks
f


11

Keamanan DES
Isu-isu yang menyangkut keamanan DES :
1. Panjang kunci
Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang dipakai
hanya 56 bit. Tahun 1998, Electronic Frontier Foundation (EFE) merancang dan
membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive
search key dengan biaya $250.000 dan diharapkan dapat menemukan kunci
selama 5 hari. Tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi
internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci
DES kurang dari 1 hari.
2. Jumlah putaran
Berdasarkan penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata
dapat dipecahkan dengan known-plaintext attack lebih mangkus daripada dengan
brute force attack.
3. Kot ak-S
Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih
konstanta-konstanta di dalam kotak itu.
4. Kunci Lemah dan Kunci Setengah Lemah
DES mempunyai beberapa kunci lemah (weak key). Kunci lemah menyebabkan
kunci-kunci internal pada setiap putaran sama (K1 = K2 = = K16). Akibatnya,
enkripsi dua kali berturut-turut terhadap plainteks menghasilkan kembali plainteks
semula. Kunci lemah terjadi bila bit-bit di dalam Ci dan Di semuanya 0 atau 1,
atau setengah dari kunci seluruh bitnya 1 dan setengah lagi seluruhnya 0. Kunci
eksternal (dalam notasi HEX) yang menyebabkan terjadinya kunci lemah adalah
(ingat bahwa setiap bit kedelapan adalah bit paritas).
2. International Data Encryption Algorithm (IDEA)
Adalah algoritma enkripsi blok kunci yang aman dan rahasia yang
dikembangkan oleh James Massey dan Xuejia Lai. Algoritma ini berkembang pada
1992 dari algoritma semula yang disebut dengan Proposed Encryption Standard and
The Inproved Proposed Encryption Standard. IDEA beroperasi pada blok plaintext 64
bit dan menggunakan kunci 128 bit. Algoritma IDEA menggunakan delapan round
12

dan beroperasi pada subblok 16 bit dengan menggunakan kalkulasi aljabar yang dapat
digunakan untuk implementasi hardware. Operasi ini adalah penjumlahan modulo
216, perkalian modulo 216 + 1, dan XOR. Dengan kunci 128 bitnya, cipher IDEA
lebih sulit untuk dibobol daripada DES.
[7]

Pada Algoritma IDEA, plaintext memiliki panjang 64 bit dan kunci sepanjang
128 bit. Metodologi dari algoritma IDEA menggunakan operasi yang berbeda seperti
berikut ini :
- Bit per bit XOR 16 bit sub-block
- Penambahan 16 bit integer modulo 2
16

- Perkalian 16 bit integer modulo 2
16
+1
- Operasi ini tidak berlaku hukum distributif atau hukum asosiatif.
Langkah-langkah Enkripsi IDEA adalah sebagai berikut :
- Blok pesan terbuka dengan lebar 64-bit, X, dibagi menjadi 4 sub-blok 16-bit, X1,
X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-blok 16-bit itu
ditransformasikan menjadi sub-blok 16-bit, Y1, Y2, Y3, Y4, sebagai pesan rahasia
64-bit Y = (Y1, Y2, Y3, Y4) yang berada dibawah kendali 52 subblok kunci 16-
bit yang dibentuk dari blok kunci 128 bit.
- Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukan untuk
putaran pertama dari algoritma IDEA. Dalam setiap putaran dilakukan operasi
XOR, penjumlahan, perkalian antara dua sub-blok 16-bit dan diikuti pertukaran
antara sub-blok 16-bit putaran kedua dan ketiga. Keluaran putaran sebelumnya
menjadi masukan putaran berikutnya. Setelah putaran kedelapan dilakukan
transformasi keluaran yang dikendalikan oleh 4 sub-blok kunci 16-bit.
- Pada setiap putaran dilakukan operasi-operasi sebagai berikut :
1. Perkalian X1 dengan sub-kunci pertama, A = X1 K1
2. Penjumlahan X2 dengan sub-kunci kedua, B = X2 + K2
3. Pejumlahan X3 dengan sub kunci ketiga, E = A C
4. Perkalian X4 dengan sub kunci keempat, C = X3 + K3
5. Operasi XOR hasil langkah 1 dan 3, D = X4 K4
6. Operasi XOR hasil langkah 2 dan 4, F = B D
7. Perkalian hasil langkah 5 dengan sub-kunci kelima, G = E K5
13

8. Penjumlahan hasil langkah 6 dengan langkah 7, H = G + F
9. Perkalian hasil langkah 8 dengan sub-kunci keenam, J = H K6
10. Penjumlahan hasil langkah 7 dengan 9, L = J + G
11. Operasi XOR hasil langkah 1 dan 9, R1 = A J
12. Operasi XOR hasil langkah 3 dan 9, R2 = C J
13. Operasi XOR hasil langkah 2 dan 10, R3 = B L
14. Operasi XOR hasil langkah 4 dan 10, R4 = D L
Ket : = Xor, = Perkalian Modulo 216 + 1, + = Penambahan modulo 216.

Gambar 8 - Skema Putaran Algoritma IDEA
14

Keluaran setiap putaran adalah 4 sub-blok yang dihasilkan pada langkah 11,
12, 13, dan 14 dan menjadi masukan putaran berikutnya. Setelah putaran kedelapan
terdapat t ransformasi keluaran, yaitu :
1. Perkalian X1 dengan sub-kunci pertama
2. Penjumlahan X2 dengan sub-kunci ketiga
3. Penjumlahan X3 dengan sub-kunci kedua
4. Perkalian X4 dengan sub-kunci keempat
Terakhir, keempat sub-blok 16-bit 16-bit yang merupakan hasil operasi 1, 2, 3,
dan 4 digabung kembali menjadi blok pesan rahasia 64-bit.
Untuk proses Deskripsi IDEA :
Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi
tetapi 52 buah sub-blok kunci yang digunakan masing-masing merupakan hasil
turunan 52 buah sub-blok kunci enkripsi.


15

3. Advanced Encryption Standard (AES)
Advanced Encryption Standard (AES) merupakan standar enkripsi dengan
kunci-simetris yang diadopsi oleh pemerintah Amerika Serikat. Standar ini terdiri atas
3 blok cipher, yaitu AES-128, AES-192 and AES-256, yang diadopsi dari koleksi
yang lebih besar yang awalnya diterbitkan sebagai Rijndael. Masing-masing cipher
memiliki ukuran 128-bit, dengan ukuran kunci masing-masing 128, 192, dan 256 bit.
AES telah dianalisis secara luas dan sekarang digunakan di seluruh dunia, seperti
halnya dengan pendahulunya, Data Encryption Standard (DES).
[8]

AES diumumkan oleh Institut Nasional Standar dan Teknologi (NIST) sebagai
Standar Pemrosesan Informasi Federal (FIPS) publikasi 197 (FIPS 197) pada tanggal
26 November 2001 setelah proses standardisasi selama 5 tahun, di mana ada 15 desain
enkripsi yang disajikan dan dievaluasi, sebelum Rijndael terpilih sebagai yang paling
cocok. AES efektif menjadi standar pemerintah Federal pada tanggal 26 Mei 2002
setelah persetujuan dari Menteri Perdagangan. AES tersedia dalam berbagai paket
enkripsi yang berbeda. AES merupakan standar yang pertama yang dapat diakses
publik dan sandi-terbuka yang disetujui oleh NSA untuk informasi rahasia.
Rijndael dikembangkan oleh dua kriptografer Belgia, Joan Daemen dan
Vincent Rijmen, dan diajukan oleh mereka untuk proses seleksi AES. Rijndael
(diucapkan [rinda l]) adalah permainan kata dari kedua nama penemu.


16

Proses shift dalam AES
Ada 10, 12, atau 14 putaran (round) dalam AES. Jumlah putaran ini sesuai
dengan ukuran kunci yang digunakan. Setiap putarab mengandung :
- Penggantian Byte (SubByte) yang sama seperti DES
- Peralihan = Pertukaran baris
- Campur Jalur = Peralihan Kiri & XOR Bit-bit.
- Penambahan Subkunci = XOR Bagian Kunci dengan Keputusan Putaran
II Stream Ci pher
Yaitu proses penyandiannya berorientasi pada satu bit atau satu byte data. Berikut ini
merupakan beberapa algoritma kriptografi yang dikembangkan menggunakan kriptografi
simetri dan merupakan pengembangan dari kriptografi klasik.
1. On Time Pad (OTP)
One Time Pad (OTP) atau yang sering disebut sebagai Vernam cipher karena
ditemukan oleh Mayor J. Maugborne dan G. Vernam ditahun 1917. Metode ini telah
diklaim sebagai satu-satunya algoritma kriptografi sempurna yang tidak dapat
dipecahkan. Suatu algoritma dikatakan aman, apabila tidak ada cara untuk
menemukan plaintext-nya Sampai saat ini, hanya algoritma One Time Pad (OTP)
yang dinyatakan tidak dapat dipecahkan meskipun diberikan sumber daya yang tidak
terbatas. Algoritma One Time Pad adalah salah satu jenis algorima simetri
(konvensional).
[9]

Jumlah kunci sama panjangnya dengan jumlah plainteks. Jika anda ingin agar
cipherteks sulit untuk di pecahkan maka pemakaian kunci seharusnya :
- Jangan gunakan kunci yang berulang
- Pilihkan kunci yang random
Pemakaian One Time Pad digunakan pada sederetan abjad A..Z dengan
memberikan nilai urutan abjad yaitu A=0, B=1, C=2, D=3, E=4..sampai Z. Rumus
melakukan One Time Pad ini yaitu :
- Enkripsi : E(x) = (P(x) + K(x) ) Mod 26
- Dekripsi : D(x) = (C(x) K(x) ) Mod 26
17

Contoh Enkripsi Pesan :
- Pesan : BUDIDARMA
- Kunci : ABCDEFGH I
Maka langkah-langkahnya seperti di bawah ini :
- Plainteks 1(B) 20(U) 3(D) 8(I) 3(D) 0(A) 17(R) 12(M) 0(A)
- Kunci 0(A) 1(B) 2(C) 3(D) 4(E) 5(F) 6(G) 7(H) 8(I)
- -------------------------------------------------------------------------- +
- Hasil mod 26 1 21 5 11 7 5 23 19 8
- Chiperteks B V F L H F X T I
Jadi Chiperteks yang di hasilkan yaitu : BVFLHFXTI
Deskripsi pesan, perhatikan langkah di bawah ini :
- Chiperteks 1(B) 21(V) 5(F) 11(L) 7(H) 5(F) 23(X) 19(T) 8(I)
- Kunci 0(A) 1(B) 2(C) 3(D) 4(E) 5(F) 6(G) 7(H) 8(I)
- ---------------------------------------------------------------------------- -
- Hasil mod 26 1 20 3 8 3 0 17 12 0
- Plainteks B U D I D A R M A
Jadi Plainteks yaitu : BUDIDARMA
2. A5
Algoritma A5 adalah cipher aliran yang digunakan untuk mengenkripsi pesan
dalam transmisi udara. Cipher aliran ini diinisialisasi setiap frame dikirim. Cipher
aliran ini diinisialisasi dengan kunci sesi, Kc, dan jumlah frame yang akan dienkripsi.
Kunci sesi yang sama digunakann sepanjang panggilan berlangsung, tetapi 22 bit
nomor frame berubah selama proses berlangsung, kemudian membangkitkan
keystream yang unik untuk setiap frame.
[10]


18

Kunci yang digunakan dalam algoritma ini adalah 64 bit Kc, ditambah input
berupa nomer frame TDMA dalam suatu multiframe. Out put yang dihasilkan berupa
sepasang 114 bit codeword (S1 dan S2) untuk arah downlink dan uplink. Selanjutnya
masing-masing codeword di-XOR dengan 114 bit plain text untuk menghasilkan 114
bit chipertext yang akan dikirimkan.
Jaringan GSM saat ini menggunakan algoritma A3, A8, dan A5 dalam sistem
pengamanannya. Algoritma A3 dan A8 digunakan dalam proses autentikasi, yaitu
proses pengenalan identitas pelanggan, yang terjadi pada MS (Mobile Station) dan
AUC (Authentication Centre). Sedangkan algoritma A5 digunakan dalam proses
pengiriman informasi pada link radio antara MS dengan BTS (Base Transceiver
Station). Namun pada sistem pengamanan dengan menggunakan algoritma ini
ditemukan kelemahan-kelemahan yang memungkinkan terjadinya penyadapan data
ataupun penipuan identitas pelanggan.digunakan pula jaringan feistel atau dan chiper
berulang.
3. RC4
RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau
input data, pesan atau informasi pada satu saat. Unit atau data pada umumnya sebuah
byte atau bahkan kadang kadang bit (byte dalam hal RC4). Dengan cara ini enkripsi
atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini tidak
harus menunggu sejumlah input data, pesan atau informasi tertentu sebelum diproses,
atau menambahkan byte tambahan untuk mengenkrip.
[11]

RC4 merupakan enkripsi stream simetrik proprietary yang dibuat oleh RSA
Data Security Inc (RSADSI). Penyebarannya diawali dari sebuah source code yang
diyakini sebagai RC4 dan dipublikasikan secara 'anonymously' pada tahun 1994.
Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada
produk resmi. RC4 digunakan secara luas pada beberapa aplikasi dan umumnya
dinyatakan sangat aman. Sampai saat ini diketahui tidak ada yang dapat
memecahkan/membongkarnya, hanya saja versi ekspor 40 bitnya dapat dibongkar
dengan cara "brute force" (mencoba semua kunci yang mungkin). RC4 tidak
dipatenkan oleh RSADSI, hanya saja tidak diperdagangkan secara bebas (trade
secret).
19

Algoritma RC4 cukup mudah untuk dijelaskan. RC4 mempunyai sebuah S-
Box, S
0
,S
1
,...,S
255
, yang berisi permutasi dari bilangan 0 sampai 255, dan permutasi
merupakan fungsi dari kunci dengan panjang yang variabel. Terdapat dua indeks yaitu
i dan j, yang diinisialisasi dengan bilangan nol. Unt uk menghasilkan random byte
langkahnya adalah sebagai berikut :
- i = ( i + 1 ) mod 256
- j = ( j + S
i
) mod 256
- swap S
i
dan S
j

- t = (S
i
+ S
j
) mod 256
- K = S
t

Byte K di XOR dengan plaintext untuk menghasilkan ciphertext atau di XOR
dengan cipherteks untuk menghasilkan plaintext. Enkripsi sangat cepat kurang lebih
10 kali lebih cepat dari DES. Inisialisasi S-Box juga sangat mudah. Pertama isi secara
berurutan S
0
= 0, S
1
= 1,...,S
255
= 255. Kemudian isi array 256 byte lainnya dengan
kunci yang diulangi sampai seluruh array K
0
, K
1
,...,K
255
terisi seluruhnya. Set indeks j
dengan nol, Kemudian lakukan langkah berikut :
- for i = 0 to 255
- j = (j + S
i
+ Ki) mod 256
- swap S
i
dan S
j

Salah satu kelemahan dari RC4 adalah terlalu tingginya kemungkinan terjadi
tabel S-box yang sama, hal ini terjadi karena kunci user diulang-ulang untuk mengisi
256 bytes, sehingga 'aaaa' dan 'aaaaa' akan menghasilkan permutasi yang sama. Unt uk
mengatasi ini maka pada implementasinya nanti kita menggunakan hasil hash 160 bit
SHA dari password kita untuk mencegah hal ini terjadi. Kekurangan lainnya ialah
karena enkripsi RC4 adalah XOR antara data bytes dan pseudo-random byte stream
yang dihasilkan dari kunci, maka penyerang akan mungkin untuk menentukan
beberapa byte pesan orisinal dengan meng-XOR dua set cipher byte, bila beberapa
dari pesan input diketahui (atau mudah untuk ditebak). Unt uk mengatasinya pada
aplikasinya kita menggunakan initialization vector (IV) yang berbeda-beda untuk
setiap data, sehingga bahkan untuk file yang sama akan dihasilkan ciphertext yang
20

berbeda. IV ini tidak perlu dirahasikan karena digunakan hanya agar setiap proses
enkripsi akan menghasilkan ciphertext yang berbeda.
Unt uk lebih meningkatkan keamanan dari metoda ini dapat juga
mengembangkan inisialisasi kunci yang baru yang kita sebut saja inisialisasi SK
(strengtened key), pada proses ini kunci user di-expand hingga 260 byte (tetapi
kemudian hanya 256 byte saja yang digunakan) dengan menggunakan SHA-1,
caranya pertama kunci user dijadikan kunci, kemudian 1-20 byte pertama pada buffer
diproses dengan SHA kemudian digestnya diletakan pada 20 byte pertama, kemudian
diambil byte 1-40 diproses dengan SHA dan hasilnya diletakan mulai pada byte 20,
berikutnya byte 1-60 hasilnya diletakkan pada mulai byte 40, dan seterusnya.
Kemudian buffer ini dienkrip dengan RC4, lalu buffer dijadikan kunci kembali,
proses terakhir ini diulang sebanyak 16 kali untuk mencoba mencampur dengan baik
sehingga dihasilkan kunci yang se-random mungkin.
II.2 Kriptografi Asimetri
Sering juga disebut dengan algoritma kunci public, dengan arti kata kunci yang
digunakan melakukan enkripsi dan dekripsi berbeda. Pada algoritma asimetri kunci terbagi
menjadi dua bagian, yaitu :
a. Kunci umum (public key), kunci yang boleh semua orang tahu (dipublikasikan).
b. Kunci rahasia (private key), kunci yang dirahasiakan (hanya boleh diketahui oleh satu
orang atau orang tertentu).
Kunci-kunci tersebut berhubungan satu sama lain. Dengan kunci public orang dapat
mengenkripsi pesan tetapi tidak bisa mendekripsikannya. Hanya orang yang memiliki kunci
rahasia yang dapat mendekripsikan pesan tersebut. Algoritma asimetri bisa mengirimkan
pesan dengan lebih aman daripada algoritma simetri.

Gambar 9 - Kriptografi Asimetris

ENKRIPSI

DESKRIPSI
Plaintext Chipertext Plaintext
KUNCI PUBLIK KUNCI RAHASIA
21

1. RSA (RivestShamirAdleman)
Merupakan algoritma yang paling populer dari algoritma kriptografi kunci-publik
yang pernah dibuat. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT
(Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron Rivest, Adi Shamir,
dan Leonard Adleman.
[12]

Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar
menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi.
Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan
algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA t etap terjamin.
Besaran-besaran yang digunakan pada algoritma RSA :
1. p dan q bilangan prima (rahasia)
2. r = p q (tidak rahasia)
3. |(r) = (p 1)(q 1) (rahasia)
4. PK (kunci enkripsi) (tidak rahasia)
5. SK (kunci dekripsi) (rahasia)
6. X (plainteks) (rahasia)
7. Y (cipherteks) (t idak rahasia)
- Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa :
a
|
(r)
1 (mod r) (1)
yang dalam hal ini :
1. a harus relatif prima terhadap r
2. |(r) = r(1 1/p
1
)(1 1/p
2
) (1 1/p
n
), yang dalam hal ini p
1
, p
2
, , p
n
adalah
faktor prima dari r.
- |(r) adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3, ,
r yang relatif prima terhadap r.
- Berdasarkan sifat a
m
b
m
(mod r) untuk m bilangan bulat > 1, maka persamaan (1)
dapat ditulis menjadi a
m
|
(r)
1
m
(mod r) atau a
m
|
(r)
1 (mod r) (2)
- Bila a diganti dengan X, maka persamaan (2) menjadi X
m
|
(r)
1 (mod r) (3)
- Berdasarkan sifat ac bc (mod r), maka bila persamaan (3) dikali dengan X menjadi:
X
m
|
(r) + 1
X (mod r) (4)
yang dalam hal ini X relatif prima terhadap r.
- Misalkan SK dan PK dipilih sedemikian sehingga SK PK 1 (mod |(r)) (5)
22

At au SK PK = m|(r) + 1 (6)
- Sulihkan (6) ke dalam persamaan (4) menjadi: X
SK

PK
X (mod r) (7)
- Persamaan (7) dapat ditulis kembali menjadi (X
PK
)
SK
X (mod r) (8)
yang artinya, perpangkatan X dengan PK diikuti dengan perpangkatan dengan SK
menghasilkan kembali X semula.
- Berdasarkan persamaan (8), maka enkripsi dan dekripsi dirumuskan sebagai berikut :
E
PK
(X) = Y X
PK
mod r (8)
D
SK
(Y) = X Y
SK
mod r (9)
- Karena SK PK = PK SK, maka enkripsi diikuti dengan dekripsi ekivalen dengan
dekripsi diikuti enkripsi : E
SK
(D
SK
(X)) = D
SK
(E
PK
(X)) X
PK
mod r (10)
- Oleh karena X
PK
mod r (X + mr)
PK
mod r untuk sembarang bilangan bulat m, maka
tiap plainteks X, X + r, X + 2r, , menghasilkan cipherteks yang sama. Dengan kata
lain, transformasinya dari banyak ke satu. Agar transformasinya satu-ke-satu, maka X
harus dibatasi dalam himpunan {0, 1, 2, , r 1} sehingga enkripsi dan dekripsi
tetap benar seperti pada persamaan (8) dan (9).
Prosedur Membuat Pasangan Kunci
1. Pilih dua buah bilangan prima sembarang, p dan q.
2. Hitung r = p q. Sebaiknya p = q, sebab jika p = q maka r = p
2
sehingga p dapat
diperoleh dengan menarik akar pangkat dua dari r.
3. Hitung |(r) = (p 1)(q 1).
4. Pilih kunci publik, PK, yang relatif prima terhadap |(r).
5. Bangkitkan kunci rahasia dengan menggunakan persamaan (5), yaitu SK PK 1
(mod |(r)).
Perhatikan bahwa SK PK 1 (mod |(r)) ekivalen dengan SK PK = 1 + m|(r),
sehingga SK dapat dihitung dengan
PK
r m
SK
) ( 1 | +
=
(11)
Akan terdapat bilangan bulat m yang menyebabkan memberikan bilangan bulat SK.
Contoh : Misalkan plainteks yang akan dienkripsikan adalah X = HARI INI atau
dalam sistem desimal (pengkodean ASCII) adalah 7265827332737873. Pecah X menjadi
blok yang lebih kecil, misalnya X dipecah menjadi enam blok yang berukuran 3 digit:
o x
1
= 726 x
4
= 273
23

o x
2
= 582 x
5
= 787
o x
3
= 733 x
6
= 003
Nilai-nilai x
i
ini masih terletak di dalam rentang 0 sampai 3337 1 (agar transformasi
menjadi satu-ke-satu). Blok-blok plainteks dienkripsikan sebagai berikut:
- 726
79
mod 3337 = 215 = y
1

- 582
79
mod 3337 = 776 = y
2

- 733
79
mod 3337 = 1743 = y
3

- 273
79
mod 3337 = 933 = y
4

- 787
79
mod 3337 = 1731 = y
5

- 003
79
mod 3337 = 158 = y
6

Jadi, cipherteks yang dihasilkan adalah Y = 215 776 1743 933 1731 158.
Dekripsi dilakukan dengan menggunakan kunci rahasia SK = 1019. Blok-blok
cipherteks didekripsikan sebagai berikut:
- 215
1019
mod 3337 = 726 = x
1

- 776
1019
mod 3337 = 582 = x
2

- 1743
1019
mod 3337 = 733 = x
3

-
Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita
memperoleh kembali plainteks semula P = 7265827332737873 yang dalam karakter
ASCII adalah P = HARI INI.
Kekuatan dan Keamanan RSA
- Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan
bilangan non prima menjadi faktor primanya, yang dalam hal ini r = p q.
- Sekali r berhasil difaktorkan menjadi p dan q, maka |(r) = (p 1) (q 1) dapat
dihitung. Selanjutnya, karena kunci enkrispi PK diumumkan (tidak rahasia), maka
kunci dekripsi SK dapat dihitung dari persamaan PK SK 1 (mod |(r)).
- Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit.
Dengan demikian hasil kali r = p q akan berukuran lebih dari 200 digit. Menurut
Rivest dan kawan-kawan, uasaha untuk mencari faktor bilangan 200 digit
24

membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa
algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan
komputer yang dipakai mempunyai kecepatan 1 milidetik).
- Unt unglah algoritma yang paling mangkus untuk memfaktorkan bilangan yang besar
belum ditemukan. Inilah yang membuat algoritma RSA tetap dipakai hingga saat ini.
Selagi belum ditemukan algoritma yang mangkus untuk memfaktorkan bilangan bulat
menjadi faktor primanya, maka algoritma RSA tetap direkomendasikan untuk
menyandikan pesan.
2. Di ffie-Hellman (DH)
Diffie Hellman pertama kali memperkenalkan algoritma kunci publik pada tahun
1976. Algoritma ini memiliki keamanannya dari kesulitan menghitung logaritma diskrit
dalan finite field, dibandingkan kemudahan dalam menghitung bentuk eksponensial dalam
finite field yang sama. Algoritma ini dapat digunakan dalam mendistribusikan kunci
publik yang dikenal dengan protokol pertukaran kunci.
[13]

Penjelasan protokol pertukaran kunci ini dapat diilustrasikan antara dua orang,
misalkan saja Tera dan Jana, yang keduanya sepakat mengenai bilangan prima yang
besar misalkan n dan g dimana g merupakan modulo n. Selanjutnya akan terdapat dua
buah integer yang tidak dirahasiakan atau merupakan kunci publik dan dapat
didistribusikan dalam saluran bebas. Proses berikutnya dijelaskan dalam tahapan-tahapan
di bawah ini :
Algoritma Pertukaran Kunci Diffie-Hel lman
Berikut ini algoritma pertukaran kunci Diffien Hellman yang diilustrasikan dua
orang user Tera dan Jana
1. Tera memilih secara acak sebuah bilangan integer x yang besar dan
mengirimkannnya ke Jana. X = g
x
mod n
2. Jana memilih secara acak sebuah bilangan integer y yang besar dan mengirimkannya
ke Tera. Y = g
y
mod n
3. Tera menghitung nilai k
1
= Y
x
mod n
4. Jana menghitung nilai k
2
= X
y
mod n
25

maka kedua nilai k
1
dan k
2
adalah sama untuk g
xy
mod n, sehingga k adalah kunci
rahasia Tera dan Jana yang dihitung secara terpisah.
3. Elliptic Curve Cryptography (ECC)
Pada tahun 1985, Neil Koblitz dan Viktor Miller secara terpisah memproposalkan
kriptosistem kurva elips (Elliptic Curves Cryptosystem - ECC) yang menggunakan
masalah logaritma diskrit pada titik-titk kurva elips yang disebut dengan ECDLP (Elliptic
Curves Discrete Logarithm Problem). Kriptosistem kurva ellips ini dapat digunakan pada
beberepa keperluan seperti :
- Skeme enkripsi (ElGamal ECC)
- Tanda tangan digital (ECDSA Elliptic Curves Digital Signature)
- Protokol pertukaran kunci (Diffie Hellman ECC)
Kriptosistem kurva elips (elliptic curves cryptosystem) atau disingkat dengan ECC,
merupakan salah satu sistem kriptografi asimetris yang menggunakan persoalan logaritma
diskrit (discrete logarithm problem). Struktur kurva elips digunakan sebagai grup operasi
matematis untuk melangsungkan proses enkripsi dan deskripsinya. Pada tulisan ini
diuraikan teknik dasar ECC yang diimplementasikan pada protokol pertukaran kunci
publik Diffie-Hellman dan Skema enkripsi ElGamal. Jumlah bit yang digunakan pada
parameter-parameter ECC berkisar antara 32 bit sampai dengan 256 bit dengan kenaikan
masing-masing sebesar 32 bit.
Pada pertukaran kunci, hasil implementasinya memperlihatkan pertukaran kunci
publik antara dua user dan menghitungnya dimasing-masing user yang akan
menghasilkan kunci rahasia bersama. Sementara pada skema enkripsi, hasil implementasi
telah menunjukan pesan berupa bilangan integer besar dipetakan dalam titik kurva yang
kemudian dienkripsi berhasil dibuka kembali pada proses deskripsinya.
4. Di gital Signature Algorithm (DSA)
Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology)
mengumumkan algoritma sidik dijital yang disebut Digital Signature Algorithm (DSA).
DSA dijadikan sebagai bakuan (standard) dari Digital Signature Standard (DSS). DSS
adalah standard, sedangkan DSA adalah algoritma. Standard tersebut menggunakan
algoritma ini, sedangkan algoritma adalah bagian dari standard (selain DSA, DSS
menggunakan Secure Hash Algorithm atau SHA sebagai fungsi hash). DSA termasuk ke
26

dalam sistem kriptografi kunci-publik. Meskipun demikian, DSA tidak dapat digunakan
untuk enkripsi. DSA mempunyai dua fungsi utama:
[14]

1. Pembentukan sidik dijital (signature generation), dan
2. Pemeriksaan keabsahan sidik dijital (signature verivication).
Sebagaimana halnya pada algoritma kriptografi kunci-publik, DSA menggunakan dua
buah kunci, yaitu kunci publik dan kunci rahasia. Pembentukan sidik dijital menggunakan
kunci rahasia pengirim, sedangkan verifikasi sidik dijital menggunakan kunci publik
pengirim. DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk
mengubah pesan menjadi message digest yang berukuran 160 bit (SHA akan dijelaskan
pada kuliah selanjutnya).
Parameter DSA
DSA dikembangkan dari algoritma Elgamal. DSA menggunakan beberapa parameter
sebagai berikut:
1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 s L s 1024 dan
L harus kelipatan 64. Parameter p bersifat publik dan dapat digunakan bersama-sama
oleh orang di dalam kelompok.
2. q, bilangan prima 160 bit, merupakan faktor dari p 1. Dengan kata lain, (p 1) mod
q = 0. Parameter q bersifat publik.
3. g = h
(p 1)/q
mod p, yang dalam hal ini h < p 1 sedemikian sehingga h
(p 1)/q
mod p >
1. Parameter g bersifat publik.
4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci rahasia.
5. y = g
x
mod p, adalah kunci publik.
6. m, pesan yang akan diberi sidik digital.
Pembentukan Sepasang Kunci
1. Pilih bilangan prima p dan q, yang dalam hal ini (p 1) mod q = 0.
2. Hitung g = h
(p 1)/q
mod p, yang dalam hal ini 1 < h < p 1 dan h
(p 1)/q
mod p > 1.
3. Tentukan kunci rahasia x, yang dalam hal ini x < q.
4. Hitung kunci publik y = g
x
mod p.
Pembentukan Sidik Dijital (Signing)
1. Ubah pesan m menjadi message digest dengan fungsi hash SHA, H.
2. Tentukan bilangan acak k < q.
27

3. Sidik dijital dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai berikut:
r = (g
k
mod p) mod q
s = (k
1
(H(m) + x * r)) mod q
4. Kirim pesan m dan sidik dijital r dan s.
Verifi kasi Keabsahan Sidik Dijital (Verifying)
1. Hitung
w = s
1
mod q
u
1

= (H(m) * w) mod q
u
2

= (r * w) mod q
v = ((g
u1
* y
u2
) mod p) mod q)
2. Jika v = r, maka sidik dijital sah, yang berarti bahwa pesan masih asli dan dikirim
oleh pengirim yang benar.
Contoh Perhitungan DSA
a. Pembentukan Sepasang Kunci
1. Pilih bilangan prima p dan q, yang dalam hal ini (p 1) mod q = 0.
p = 59419
q = 3301 (memenuhi 3301 * 18 = 59419 1)
2. Hitung g = h
(p 1)/q
mod p, yang dalam hal ini 1 < h < p 1 dan h
(p 1)/q
mod p > 1.
g = 18870 (dengan h = 100)
3. Tentukan kunci rahasia x, yang dalam hal ini x < q.
x = 3223
4. Hitung kunci publik y = g
x
mod p.
y = 29245
b. Pembentukan Sidik Digital (Signing)
1. Hitung nilai hash dari pesan, misalkan H(m) = 4321
2. Tentukan bilangan acak k < q.
k = 997
k
1
= 2907 (mod 3301)
3. Hitung r dan s sebagai berikut:
r = (g
k
mod p) mod q = 848
s = (k
1
(H(m) + x * r)) mod q
= 7957694475 mod 3301 = 183
4. Kirim pesan m dan sidik digital r dan s.

28

c. Verifikasi Keabsahan Sidik Digital
1. Hitung
s
1
= 469 (mod 3301)
w = s
1
mod q = 469
u
1

= (H(m) * w) mod q 2026549 mod 3301 = 3036
u
2

= (r * w) mod q = 397712 mod 3301 = 1592
v = ((g
u1
* y
u2
) mod p) mod q) = 848 mod 3301 = 848
2. Karena v = r, maka sidik digital sah.
Implementasi DSA
- Adanya batasan bahwa nilai p mempunyai panjang 512 sampai 1024 bit dan q 160-
bit, menyebabkan DSA hampir tidak mungkin diimplementasikan dalam perangkat
lunak. Panjang bit yang besar ini dimaksudkan agar upaya untuk memecahkan
parameter yang lain sangat sulit dilakukan.
- Compiler C hanya sanggup menyatakan bilangan bulat hingga 2
32
. Oleh karena itu,
bila DSA diimplementasikan dalam perangkat lunak, batasan panjang bit p dan q
diubah hingga maksimum nilai p dan q adalah 2
32
.
II.3 Kriptografi Fungsi Hash
Sering disebut dengan funsi satu arah (one-way function), message digest, fingerprint,
fungsi kompresi dan message authentication code (MAC), merupakan suatu fungsi
matematika yang mengambil masukan panjang variabel dan mengubahnya ke dalam urutan
biner dengan panjang yang tetap. Fungsi hash biasanya diperlukan bila ingin membuat sidik
jari dari suatu pesan. Sidik jari pada pesan merupakan suatu tanda bahwa pesan tersebut
benar-benar berasal dari orang-orang yang diinginkan.
1. MD5 (Message Di gest 5)
MD5 adalah salah satu dari serangkaian algoritma (merupakan salah satu fungsi hash)
message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994). Saat
kerja analitik menunjukkan bahwa pendahulu MD5, yaitu MD4 mulai tidak aman, MD5
kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4
ditemukan oleh Hans Dobbertin).
[15]

Pada tahun 1993, den Boer dan Bosselaers memberikan awal, bahkan terbatas, hasil
dari penemuan pseudo-collision dari fungsi kompresi MD5. Dua vektor inisialisasi
berbeda I dan J dengan beda 4-bit diantara keduanya.
29

MD5compress(I,X) = MD5compress(J,X)
Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan pada fungsi kompresi
MD5. Dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5 sepenuhnya, hal
ini menyebabkan para pengguna kriptografi menganjurkan pengganti seperti
WHIRLPOOL, SHA-1 atau RIPEMD-160.
Ukuran dari hash 128-bit cukup kecil untuk terjadinya serangan brute force..
MD5CRK adalah proyek distribusi mulai Maret 2004 dengan tujuan untuk menunjukkan
kelemahan dari MD5 dengan menemukan kerusakan kompresi menggunakan brute force
attack. Bagaimanapun juga, MD5CRK berhenti pada tanggal 17 Agustus 2004, saat
[[kerusakan hash]] pada MD5 diumumkan oleh Xiaoyun Wang, Dengguo Feng, Xuejia
Lai dan Hongbo Yu. Serangan analitik mereka dikabarkan hanya memerlukan satu jam
dengan menggunakan IBM P690 cluster.
Pada tanggal 1 Maret 2005, Arjen Lenstra, Xiaoyun Wang, and Benne de Weger
mendemontrasikan kunstruksi dari dua buah sertifikat X.509 dengan public key yang
berbeda dan hash MD5 yang sama, hasil dari demontrasi menunjukkan adanya kerusakan.
Konstruksi tersebut melibatkan private key untuk kedua public key tersebut. Dan beberapa
hari setelahnya, Vlastimil Klima menjabarkan dan mengembangkan algortima, mampu
membuat kerusakan MD5 dalam beberapa jam dengan menggunakan sebuah komputer
notebook. Hal ini menyebabkan MD5 t idak bebas dari kerusakan.
Dikarenakan MD5 hanya menggunakan satu langkah pada data, jika dua buah awalan
dengan hash yang sama dapat dibangun, sebuah akhiran yang umum dapat ditambahkan
pada keduanya untuk membuat kerusakan lebih masuk akal. Dan dikarenakan teknik
penemuan kerusakan mengijinkan pendahuluan kondisi hash menjadi arbitari tertentu,
sebuah kerusakan dapat ditemukan dengan awalan apapun. Proses tersebut memerlukan
pembangkitan dua buah file perusak sebagai file template, dengan menggunakan blok
128-byte dari tatanan data pada 64-byte batasan, file-file tersebut dapat mengubah dengan
bebas dengan menggunakan algoritma penemuan kerusakan.
Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses pembangkitan
kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang sama.
Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5 (2
128
), tetapi terdapat
bilangan yang tak terbatas sebagai masukannya, hal ini harus dipahami sebelum
30

kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar bahwa menemukannya
adalah hal yang sulit.
Sebagai hasilnya bahwa hash MD5 dari informasi tertentu tidak dapat lagi
mengenalinya secara berbeda. Jika ditunjukkan informasi dari sebuah public key, hash
MD5 tidak mengenalinya secara berbeda jika terdapat public key selanjutnya yang
mempunyai hash MD5 yang sama.
Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan untuk memilih
kedua pesan kerusakan. Kedua pesan tersebut tidak dengan mudah untuk memberikan
serangan preimage, menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun
serangan preimage kedua, menemukan pesan dengan hash MD5 yang sama sebagai
pesan yang diinginkan.
Hash MD5 lama, yang dibuat sebelum serangan-serangan tersebut diungkap, masih
dinilai aman untuk saat ini. Khususnya pada digital signature lama masih dianggap layak
pakai. Seorang user boleh saja tidak ingin membangkitkan atau mempercayai signature
baru menggunakan MD5 jika masih ada kemungkinan kecil pada teks (kerusakan
dilakukan dengan melibatkan pelompatan beberapa bit pada bagian 128-byte pada
masukan hash) akan memberikan perubahan yang berarti. Penjaminan ini berdasar pada
posisi saat ini dari kriptoanalisis. Situasi bisa saja berubah secara tiba-tiba, tetapi
menemukan kerusakan dengan beberapa data yang belum-ada adalah permasalahan yang
lebih susah lagi, dan akan selalu butuh waktu untuk terjadinya sebuah transisi.
Cara Kerja MD5
MD5 mengolah blok 512 bit, dibagi kedalam 16 subblok berukuran 32 bit. Keluaran
algoritma diset menjadi 4 blok yang masing-masing berukuran 32 bit yang setelah
digabungkan akan membentuk nilai hash 128 bit.
31


Gambar 10 - MD5
MD5 t erdiri atas 64 operasi, dikelompokkan dalam empat putaran dari 16 operasi.
- F : Adalah fungsi nonlinear, satu fungsi digunakan pada tiap-tiap putaran.
- M
i
: Menujukkan blok 32-bit dari masukan pesan, dan
- K
i
: Menunjukkan konstanta 32-bit, berbeda untuk tiap-tiap operasi.
- <<<
s
:

Menunjukkan perputaran bit kiri oleh s; s bervariasi untuk tiap-tiap operasi
.

- : Menunjukan tambahan modulo 2
32.

Contoh
Berikut dapat dilihat satu buah operasi dari MD-5 dengan operasi yang dipakai
sebagai contoh adalah FF(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + F(b,c,d) + Mj + ti)
<<<s). Bila Mj menggambarkan pesan ke-j dari sub blok (dari 0 sampai 15) dan <<<s
menggambarkan bit akan digeser ke kiri sebanyak s bit, maka keempat operasi dari
masing-masing ronde adalah :
- FF(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + F(b,c,d) + Mj + ti) <<< s)
- GG(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + G(b,c,d) + Mj + ti) <<< s)
- HH(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + H(b,c,d) + Mj + ti) <<< s)
- II(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + I(b,c,d) + Mj + ti) <<< s)
Konstanta ti didapat dari integer 232. abs(sin(i)), dimana i dalam radian.
Setiap pesan yang akan dienkripsi, terlebih dahulu dicari berapa banyak bit yang
terdapat pada pesan. Kita anggap sebanyak b bit. Di sini b adalah bit non negatif integer,
32

b bisa saja nol dan tidak harus selalu kelipatan delapan. Pesan dengan panjang b bit dapat
digambarkan seperti berikut : m_0 m_1 ..m_(b-1)
Langkah - langkah yang dibutuhkan untuk untuk menghitung intisari pesan. Adapun
langkahlangkah tersebut adalah :
1. Penambahan Bit
Pesan akan ditambahkan bit-bit tambahan sehingga panjang bit akan kongruen dengan
448, mod 512. Hal ini berarti pesan akan mempunyai panjang yang hanya kurang 64
bit dari kelipatan 512 bit. Penambahan bit selalu dilakukan walaupun panjang dari
pesan sudah kongruen dengan 448, mod 512 bit. Penambahan bit dilakukan dengan
menambahkan 1 di awal dan diikuti 0 sebanyak yang diperlukan sehingga
panjang pesan akan kongruen dengan 448, mod 512.
2. Penambahan Panjang Pesan
Setelah penambahan bit, pesan masih membutuhkan 64 bit agar kongruen dengan
kelipatan 512 bit. 64 bit tersebut merupakan perwakilan dari b (panjang pesan
sebelum penambahan bit dilakukan). Bit-bit ini ditambahkan ke dalam dua word (32
bit) dan ditambahkan dengan low-order terlebih dahulu. Penambahan pesan ini biasa
disebut juga MD Strengthening atau Penguatan MD.
3. Inisialisasi MD5
Pada MD5 terdapat empat buah word 32 bit register yang berguna untuk
menginisialisasi message digest pertama kali. Register-register ini diinisialisasikan
dengan bilangan hexadesimal.
- word A: 01 23 45 67
- word B: 89 AB CD EF
- word C: FE DC BA 98
- word D: 76 54 32 10
Register-register ini biasa disebut dengan nama Chain variabel atau variabel rantai.
4. Proses Pesan di dalam Blok 16 Word
5. Keluaran MD5
33

Keluaran dari MD5 adalah 128 bit dari word terendah A dan tertinggi word D masing-
masing 32 bit.
MD5 memproses variasi panjang pesan kedalam keluaran 128-bit dengan panjang
yang tetap. Pesan masukan dipecah menjadi dua gumpalan blok 512-bit; Pesan ditata
sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai berikut: bit tunggal
pertama, 1, diletakkan pada akhir pedan. Proses ini diikuti dengan serangkaian nol (0)
yang diperlukan agar panjang pesan lebih dari 64-bit dan kurang dari kelipatan 512. Bit-
bit sisa diisi dengan 64-bit integer untuk menunjukkan panjang pesan yang asli. Sebuah
pesan selalu ditata setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah
kelipatan 512 dikurangi 64-bit untuk informasi panjang (panjang mod(512) = 448),
sebuah blok baru dari 512-bit ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol (0)
diikuti dengan panjang 64-bit.
Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat
word 32-bit, menunjukkan A, B, C dan D. Operasi tersebut di inisialisasi dijaga untuk
tetap konstan. Algoritma utama kemudian beroperasi pada masing-masing blok pesan
512-bit, masing-masing blok melakukan pengubahan terhadap kondisi.Pemrosesan blok
pesan terdiri atas empat tahap, batasan putaran; tiap putasan membuat 16 operasi serupa
berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke kiri. Gambar satu
mengilustrasikan satu operasi dalam putaran. Ada empat macam kemungkinan fungsi F,
berbeda dari yang digunakan pada tiap-tiap putaran:

dan operasi XOR, AND, OR, dan NOT adalah sebagai berikut :

2. SHA1 (Secure Hash Algorithm)
SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan bersama
DSS (Digital Signature Standard). Oleh NSA, SHA dinyatakan sebagai standard fungsi
34

hash satu-arah. SHA didasarkan pada MD4 yang dibuat oleh Ronald L. Rivest dari MIT.
SHA disebut aman (secure) karena ia dirancang sedemikian sehingga secara komputasi
tidak mungkin menemukan pesan yang berkoresponden dengan message digest yang
diberikan.
Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 2
64
bit
(2.147.483.648 gigabyte) dan menghasilkan message digest yang panjangnya 160 bit,
lebih panjang dari message digest yang dihasilkan oleh MD5. Gambaran pembuatan
message digest dengan algoritma SHA diperlihatkan pada gambar dibawah :
Pesan 1000. ..000
Panjang Pesan
K bit < 2
64
Padding bits K
L x 512 bit = N x 32 bit
Y
0 ... ...
Y
1
Y
q
Y
L - 1
512
512
512 512
H
SHA
H
SHA
ABCD
512 512
160 160 160
H
SHA
512
160 160
H
SHA
512
160
160
Message Digest
(1 - 512 bit)

Gambar 11 - Pembuatan Message Digest dengan Algoritma SHA
Langkah-langkah pembuatan message digest secara garis besar adalah :
1. Penambahan bit-bit pengganjal (padding bits).
- 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 memperoses pesan dalam blok-blok yang
berukuran 512.
35

- Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit pengganjal. Jika
panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960
bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512.
- Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.
2. Penambahan nilai panjang pesan semula.
- Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit
yang menyatakan panjang pesan semula.
- Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi 512 bit.
3. Inisialisasi penyangga (buffer) MD.
- SHA membutuhkan 5 buah penyangga (buffer) yang masing-masing panjangnya
32 bit (MD5 hanya mempunyai 4 buah penyangga). Total panjang penyangga
adalah 5 x 32 = 160 bit. Keempat penyangga ini menampung hasil antara dan hasil
akhir.
- Kelima penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga
diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut:
o A = 67452301
o B = EFCDAB89
o C = 98BADCFE
o D = 10325476
o E = C3D2E1F0
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
128-bit, dan ini disebut proses HSHA. Gambaran proses HSHA diperlihatkan
pada gambar berikut :
36

) , , (
0
K Y ABCDE f ABCDE
q

A
B C D
...
A B
C
D
+ + + +
MD
q
MD
q + 1
160
Y
q
512
E
A B
C D
E
) , , (
1
K Y ABCDE f ABCDE
q

) , , (
79
K Y ABCDE f ABCDE
q

E

Gambar 12 - Pengolahan Blok 512 bit (Proses H
SHA
)
- Proses H
SHA
terdiri dari 80 buah putaran (MD5 hanya 4 putaran), dan masing-
masing putaran menggunakan bilangan penambah K
t
, yaitu:
o Putaran 0 s t s 19 K
t
= 5A827999
o Putaran 20 s t s 39 K
t
= 6ED9EBA1
o Putaran 40 s t s 59 K
t
= 8F1BBCDC
o Putaran 60 s t s 79 K
t
= CA62C1D6
- Pada gambar diatas, Y
q
menyatakan blok 512-bit ke-q dari pesan yang telah
ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MD
q

adalah nilai message digest 160-bit dari proses H
SHA
ke-q. Pada awal proses, MD
q

berisi nilai inisialisasi penyangga MD.
- Setiap putaran menggunakan operasi dasar yang sama (dinyatakan sebagai fungsi
f). Operasi dasar SHA diperlihatkan pada gambar berikut :
37

a
i -1
b
i-1
c
i-1
d
i-1
e
i -1
f
t
+
+
+
+
a
i
b
i
c
i
d
i
e
i
W
t
K
t
CLS
5
CLS
30

Gambar 13 - Operasi Dasar SHA dalam Satu Putaran
- Operasi dasar SHA yang diperlihatkan pada gambar tersebut dapat ditulis dengan
persamaan sebagai berikut :
a, b, c, d, e (CLS
5
(a) + f
t
(b, c, d) + e + W
t
+ K
t
), a, CLS
30
(b), c, d
yang dalam hal ini :
o a, b, c, d, e = lima buah peubah penyangga 32-bit (berisi nilai penyangga A, B,
C, D, E)
o t = putaran, 0 s t s 79
o f
t
= fungsi logika
o CLS
s
= circular left shift sebanyak s bit
o W
t
= word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses
o K
t
= konstanta penambah
o + = operasi penjumlahan modulo 2
32
atau dapat dinyatakan dalam kode
program berikut :
for t 0 to 79 do
TEMP (a <<< 5) + f
t
(b, c, d) + e + W
t
+ K
t
)
e d
d c
38

c b <<< 30
b a
a TEMP
endfor
yang dalam hal ini, <<< menyatakan operasi pergeseran circular left shift.
- Fungsi f
t
adalah fungsi logika yang melakukan operasi logika bitwise. Operasi
logika yang dilakukan dapat dilihat pada tabel dibawah.
Tabel Fungsi logika f
t
pada setiap putaran
Putaran f
t
(b, c, d)
0 .. 19 (b . c) v (~b . d)
20 .. 39
b c d
40 .. 59
(b . c) v (b . d) v (c . d)
60 .. 79 b c d
Catatan: operator logika AND, OR, NOT, XOR masing-masing dilambangkan
dengan ., v, ~,
- Nilai W
1
sampai W
16
berasal dari 16 word pada blok yang sedang diproses,
sedangkan nilai W
t
berikutnya didapatkan dari persamaan W
t
= W
t 16
W
t 14

W
t 8
W
t 3

- Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan
selanjutnya algoritma memproses untuk blok data berikutnya (Y
q+1
). Keluaran
akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E.
Algoritma SHA mengambil pesan yang panjangnya kurang dari 264 bit dan
menghasilkan message digest 160-bit. Sehingga algoritma ini lebih lambat daripada MD5,
namun message digest yang lebih besar membuatnya semakin aman dari bruteforce
collision dan serangan inversi.


39

BAB III
KESIMPULAN & SARAN

III.1 Kesimpulan
Dari pembahasan yang telah diuraikan sebelumnya, dapat diambil suatu kesimpulan
sebagai berikut, yaitu :
- Algoritma kriptografi digunakan untuk menyembunyikan atau mengamankan pesan
dari orang-orang yang tidak berhak atas pesan tersebut.
- Algoritma memiliki tiga fungsi dasar, yaitu enkripsi, deksripsi dan kunci.
- Berdasarkan kuncinya, algoritma kriptografi dibagi menjadi simetri (block & stream),
asimetri dan fungsi hash.
- Pada algoritma kriptografi klasik digunakan beberapa teknik dasar, yaitu substitusi,
blocking, permutasi, ekspansi, dan pemampatan. Serta belum menggunakan komputer
yang datanya dikirimkan berbentuk bit (biner) namun masih berupa karakter.
- Seiring perkembangan teknologi, digunakan komputer untuk mengirimkan pesan atau
data yang dikirimkan dalam bentuk biner sehingga muncul algoritma kriptografi
modern.
- Beberapa algoritma kriptografi yang digunakan yaitu DES, IDEA, AES, OTP, A5,
RC4, RSA, DH, ECC, DSA, MD5, SHA1. Namun yang paling sering digunakan yaitu
AES, RSA dan MD5.
- Masing-masing algoritma tersebut memiliki cara kerja sendiri serta memiliki
kelemahan dan kelebihan dibandingkan dengan algoritma lainnya.
III.2 Saran
Penyusun menyarankan untuk pengembangan makalah selanjutnya agar dapat disertai
implementasi algoritma tersebut dengan menggunakan bahasa pemrograman tertentu beserta
simulasi langkah-perlangkah.


40

DAFTAR PUSTAKA

[1]
http://gilang-kurniawan.blogspot.com/2012/05/mengenal-kriptografi.html, diakses pada 27
Okt ober 2012 pukul 13.23 WIB

[2]
Defiana Arnaldy, M.Si. Presentasi Kriptografi, Enkripsi dan Dekripsi. Jakarta : Teknik
Informatika UIN Syarif Hidayatullah Jakarta.

[3]
http://jyzeet.blogspot.com/2011/07/algoritma-kriptografi-modern.html, diakses pada 27
Okt ober 2012 pukul 13.26 WIB.
[4]
http://gilang-kurniawan.blogspot.com/2012/05/kriptografi-2-macam-macam-algoritma.html,
diakses pada 27 Okt ober 2012 pukul 13.23 WIB.
[5]
http://agoydaywalker.blogspot.com/2011/03/antivirus-nod32.html, diakses pada 27 Okt ober
2012 pukul 13.31 WIB.
[6]
http://kur2003.if.itb.ac.id/file/DES.doc, diakses pada 27 Okt ober 2012 pukul 18.41 WIB.
[7]
http://elib.unikom.ac.id/files/disk1/467/jbptunikompp-gdl-muhammadar-23306-11-
pertemua-a.doc, diakses pada 27 Okt ober 2012 pukul 19.41 WIB.
[8]
http://id.wikipedia.org/wiki/Advanced_Encryption_Standard, diakses pada 27 Okt ober 2012
pukul 13.17 WIB.
[9]
http://robisahputra.blogspot.com/2011/07/one-time-pad-cipher.html, diakses pada 27
Okt ober 2012 pukul 20.20 WIB.
[10]
http://backtrack.indowebst er.com/other/tutorial/pdf/GSM%20dan%203G%20Network%20K
riptografi.pdf, diakses pada 27 Okt ober 2012 pukul 20.28 WIB.
[11]
http://budi.insan.co.id/courses/el7010/dikmenjur/slamet-report.doc, diakses pada 27 Okt ober
2012 pukul 20.36 WIB.
[12]
http://kur2003.if.itb.ac.id/file/Algoritma%20RSA.doc, diakses pada 27 Okt ober 2012 pukul
20.45 WIB.
[13]
http://budi.insan.co.id/courses/ec7010/2004-2005/nana-report.doc, diakses pada 27 Okt ober
2012 pukul 21.05 WIB.
[14]
http://kur2003.if.itb.ac.id/file/Digital%20Signature%20Algorithm.doc, diakses pada 27
Okt ober 2012 pukul 21.22 WIB.
[15]
http://www.unsri.ac.id/upload/arsip/Isi.doc, diakses pada 27 Okt ober 2012 pukul 21.32
WIB.
[16]
http://kur2003.if.itb.ac.id/file/SHA.doc, diakses pada 27 Okt ober 2012 pukul 21.58 WIB.

Anda mungkin juga menyukai