Anda di halaman 1dari 98

1

BAB I
Serangan Terhadap Kriptografi

Yang dimaksud SERANGAN (attack) adalah setiap usaha (attempt) atau percobaan yang dilakukan
oleh kriptanalis untuk menemukan kunci atau menemukan plainteks dari cipherteksnya.


1.1 Kriptanalisis

Kriptanalisis : memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang
digunakan. Sehingga kriptanalis berusahan menemukan kelemahan sistem kriptografi yang pada
akhirnya mengarah untuk menemukan kunci untuk mengungkap plainteks

Prinsip KERCKHOFF : Semua algoritma harus publik, hanya kunci yang rahasia.
Artinya : Mengasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan secara
detail, sehingga satu-satunya keamanan terletak sepenuhnya pada kunci.

Dengan membuat algoritma menjadi publik,maka cukup kunci saja yang dirahasiakan. Jika kunci
berhasil dicuri, maka kunci baru dapat dibangkitkan (generate) tanpa mengganti algoritmanya.

Menurut Scheiner (Aplied Cryptography 2
nd
), algoritma yang terbaik adalah algoritma yang telah
dipublikasikan dan telah diserang oleh para kriptografer dan kriptanalis terbaik dunia dan
hingga kini belum berhasil dipecahkan.

Dengan mempublikasi algoritma kriptografi, kriptografer memperoleh konsultasi gratis dari
sejumlah kriptologis akademisi yang ingin sekali memecahkan algoritma sehingga mereka dapat
mempublikasikan paper yang memperlihatkan kecerdasan mereka.

Jika banyak pakar telah mencoba memecahkan algoritma selama 5 tahun setelah dipublikasikan
dan tidak seorangpun berhasil, maka mungkin algoritma tersebut tangguh.

Karena keamanan sistem secara eksklusif ditentukan oleh kunci, maka PANJANG KUNCI
MENENTUKAN TINGGINYA TINGKAT KEAMANAN.
Kunci sepanjang 32bit memiliki kemungkinan 2
32
kunci atau 4.3 x 10
9
kunci.


1.2 Keamanan Algoritma Kriptografi

Lars Knudsen (Aplied Cryptography 2
nd
) mengelompokkan hasil kriptanalisis ke dalam beberapa
kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan :

1. PEMECAHAN TOTAL (total break). Kriptanalis menemukan kunci K sehingga Dekripsi
D
K
(C)=P
2. DEDUKSI (penarikan kesimpulan) GLOBAL (global deduction). Kriptanalis menemukan
algoritma alternatif A yang ekivalen dengan D
K
(C) tapi tidak mengetahui kunci K.
3. DEDUKSI TOTAL (instance/local deduction). Kriptanalis menemukan plainteks dari
cipherteks yang disadap.
4. DEDUKSI INFORMASI (information deduction). Kriptanalis menemukan beberapa
informasi perihal kunci atau plainteks. Misal kriptanalis mengetahui beberapa bit kunci,
bahasa yang digunakan untuk menulis plainteks, format plainteks, dll.

Sebuah algoritma kriptografi dikatakan AMAN MUTLAK TANPA SYARAT (unconditionally
secure) bila cipherteks yang dihasilkan oleh algoritma tersebut tidak mengandung cukup
informasi untuk menentukan plainteksnya.

2

Artinya : Berapapun cipherteks yang dimiliki kriptanalis tidak memberikan informasi yang cukup
untuk mendeteksi plainteksnya.
Sebaliknya, sebuah algoritma kriptografi dikatakan AMAN SECARA KOMPUTASI
(computationally secure) bila memenuhi dua kriteria berikut :

1. Biaya untuk memecahkan cipherteks melampaui nilai informasi yang terkandung di dalam
cipherteks
2. Waktu yang diperlukan untuk memecahkan cipherteks melampaui lama waktu informasi
tersebut harus dijaga rahasianya.
Contoh : Untuk panjang kunci 128bit, waktu yang diperlukan 5.4x10
24
tahun.


1.3 Kompleksitas Serangan
Kompleksitas serangan dapat diukur dengan beberapa cara :

1. KOMPLEKSITAS DATA (data complexity)
Semakin banyak data yang dibutuhkan untuk melakukan serangan, semakin kompleks
serangan tersebut, yang berarti semakin bagus sistem kriptografi yang digunakan.
2. KOMPLEKSITAS WAKTU (time complexity)
Semakin lama waktu yang dibutuhkan untuk melakukan serangan, semakin bagus kriptografi
yang digunakan.
3. KOMPLEKSITAS RUANG MEMORI (space/storage complexity)
Semakin banyak memori yang dibutuhkan untuk melakukan serangan, semakin bagus
kriptografi yang digunakan.


1.4 Jenis-jenis Serangan
1. Berdasar Keterlibatan Penyerang dalam Komunikasi
a. Serangan Pasif (passive attack)
b. Serangan Aktif (active attack)

2. Berdasar Banyaknya Informasi yang Diketahui
a. Ciphertext-Only Attack
b. Known-Plaintext Attack
c. Chosen-Plaintext Attack
d. Chosen-Ciphertext Attack
e. Chosen-Text Attack
3. Berdasar Teknik Untuk Menemukan Kunci
a. Exhaustive Attack / Brute Force Attack
b. Analytical Attack
4. Related-Key Attack
5. Rubber-Hose Cryptanalysis













3



A B
a 1

f


b
c
2
3
BAB II
Landasan Matematika

2.1. Fungsi
Relasi dari A ke B merupakan FUNGSI jika setiap elemen dalam A dihubungkan dengan tepat
satu elemen di dalam B.
f : A B
fmemetakan A ke B

Nama lain dari FUNGSI adalah PEMETAAN atau TRANSFORMASI.
Himpunan A disebut DAERAH ASAL (DOMAIN) dari f dan himpunan B disebut DAERAH HASIL
(CODOMAIN) dari f.


Kita menuliskan f(a)=b jika elemen a didalam A dihubungkan dengan elemen b didalam B.
a. dinamakan BAYANGAN (IMAGE) dari a
b. dinamakan PRA_BAYANGAN (PRE-IMAGE) dari b

Himpunan yang berisi semua nilai pemetaan f disebut JELAJAH (RANGE) dari f.
Fungsi adalah relasi yang khusus. Kekhususan ini tercakup pada dua hal penting yaitu :
1. Tiap elemen dalam himpunan A, yang merupakan daerah asal f, harus digunakan oleh
prosedur atau kaidah yang mendefinisikan f.
2. Frasa dihubungkan dengan tepat satu elemen didalam B berarti bahwa jika (a,b) e f dan
(a,c) e f, maka b=c

Fungsi Satu-ke-Satu
Fungsi f dari himpunan A ke B dikatakan SATU-KE-SATU (ONE-TO-ONE) atau INJEKTIF
(INJECTIVE) jika tidak ada dua elemen himpunan A yang memiliki bayangan sama.

Fungsi f dari himpunan A ke B dikatakan BERKORESPONDEN SATU-KE-SATU atau BIJEKSI
(BIJECTION) jika merupakan fungsi SATU-KE-SATU sekaligus fungsi PADA










.







A
B
a b
f
4



A B
a 1

f


b
c
2
3

d


A B
a 1
f




f
-1



A B
a 1

f


b
c
2
3
Fungsi Pada
Fungsi f dari himpunan A ke B dikatakan PADA (ONTO) atau SURJEKTIF (SURJECTIVE) jika
setiap elemen B merupakan bayangan dari SATU atau LEBIH elemen A.















Fungsi Berkoresponden Satu-ke-Satu
Fungsi f dari himpunan A ke B dikatakan BERKORESPONDEN SATU-KE-SATU atau BIJEKSI
(BIJECTION) jika merupakan fungsi SATU-KE-SATU sekaligus fungsi PADA.












Fungsi Inversi
Fungsi INVERSI (INVERS) atau BALIKAN adalah fungsi yang memetakan kembali B ke A.
Dilambangkan dengan f
-1












5

Fungsi Satu Arah
Fungsi f dari himpunan A ke B dikatakan FUNGSI SATU ARAH jika f(x) mudah untuk dihitung
untuk semua x e A tetapi sangat sukar atau bahkan hampir tidak mungkin secara komputasi
menemukan inversinya, yaitu menemukan x sedemikian hingga f(x) = y untuk semua y e jelajah f
Contoh :
Perkalian bilangan prima p=48611 dan q=53993 akan menghasilkan n=2624653723
Tetapi sangat sulit untuk menemukan faktor prima dari 2624653723, apalagi bila bilangan yang
digunakan cukup besar.
Fungsi Pintu-Kolong
Fungsi f dari himpunan A ke B dikatakan FUNGSI PINTU-KOLONG (TRAPDOOR FUNCTION)
jika f(x) mudah dihitung untuk semua x e A tetapi sangat sukar secara komputasi menemukan
inversinya tanpa INFORMASI TAMBAHAN yang disebut PINTU-KOLONG (TRAPDOOR).
Jika f adalah fungsi pintu-kolong, maka terdapat INFORMASI RAHASIA k sedemikian hingga bila
diberikan f(x) dan k maka x lebih mudah dihitung.
Dalam kriptografi, fungsi pintu-kolong dan fungsi satu-arah banyak digunakan pada kriptografi kunci-
publik.

2.2. Permutasi dan Kombinasi
a. Permutasi
Adalah jumlah urutan berbeda dari pengaturan objek-objek. Permutasi dari n objek adalah :

Permutasi r dari n objek disimbolkan dengan P(n,r), adalah kemungkinan urutan r buah objek yang
dipilih dari n buah objek, dengan r n. Yang dalam hal ini pada setiap kemungkinan urutan tidak ada
objekyang sama.

Contoh : Ada 26 huruf dalam alfabet. Jika huruf-huruf disusun, maka ada 26! Urutan susunan yang
dihasilkan.
Jika menyusun 5 huruf dari alfabet, maka kemungkinan susunan huruf yang terbentuk :


6

b. Kombinasi
Bentuk khusus dari permutasi adalah KOMBINASI.
Jika pada permutasi urutan kemunculan diperhitungkan, maka pada kombinasi urutan kemunculan
DIABAIKAN. Contoh urutan abc,cba,acb dianggap sama dan dihitung sekali.

Kombinasi r elemen dari n elemen disimbolkan dengan C(n,r) adalah jumlah pemilihan yang tidak
terurut r elemen yang diambil dari n buan elemen, yang banyaknya adalah :

Contoh :
Setiap karakter ASCII panjangnya 1 byte. Jumlah byte yang mengandung 3 buah bit 1 adalah


2.3. Teori Peluang
Ruang Sampel adalah himpunan semua kemungkinan hasil dari suatu percobaan, biasanya
dilambangkan dengan S. Kejadian adalah suatu himpunan bagian dari ruang sampel.Kejadian dapat
terdiri dari satu titik sampel yang disebut kejadian sederhana, sedangkan kejadian yang terdiri dari
lebih dari titik sampel disebutkejadian majemuk.Jadi kejadian majemuk merupakan gabungan dari
beberapa kejadian sederhana. Ruang nol adalah himpunan bagian ruang sampel yang tidak memuat
anggota.Elemen / anggota dari ruang sampel dinamakan titik sampel.
Gambar 1 merupakan diagram ruang sampel S={a, b, c, d, e, f, g} yang terdiri dari titik sampel a, b, c,
d, e, f, dan g. Kejadian A={a, b, c}, kejadian B={b, c, d, e},kejadian C={c, d, f},
dan D={e} merupakan kejadian bagian dari ruang sampel S.
Gambar 1. Ruang Sampel
Irisan dua kejadian A dan B, dinotasikan dengan A N B, adalah kejadian yang memuat semua titik
sampel yang ada di A dan juga ada di B. Dua kejadian Adan B dikatakan kejadian saling
terpisah (saling asing) apabila dua kejadian tersebut tidak memiliki unsur persekutuan, atau A N B = {
}. Untuk ruang sampel pada Gambar 1.1.1, A N B = {b, c}, A NC = {c}, A N D = { }, B N C = {c,
d}, B N D = {e}, dan C N D = {}. Kejadian A dan D dikatakan saling terpisah.
Gabungan dua kejadian A dan B, dinotasikan dengan A U B , adalah kejadian yang memuat semua
titik sampel yang ada di A atau B. Untuk ruang sampel pada Gambar 1.1.1, A U B = {a, b, c, d,
e}, A U C = {a, b, c, d, f}, A UD = {a, b, c, e}, B U C = {b, c, d, e, f}, B U D = {b, c, d, e},
danC U D = {c, d, e, f}.
Komplemen suatu kejadian A, dinotasikan dengan A', adalah himpunan semua titik sampel di Syang
bukan anggota A. Untuk ruang sampel pada Gambar 1.1.1, A' = {d, e, f, g} dan B' = {a, f, g} .
7

Contoh 1.1.1
Pada percobaan pelemparan sebuah dadu, kemungkinan hasil percobaannya adalah:
Jika ditinjau dari angka yang muncul maka ruang sampelnya adalah
S = {1, 2, 3, 4, 5, 6}
Elemen 1, 2, 3, 4, 5, atau 6 merupakan titik sampel.
Jika ditinjau dari keadaan angkanya maka ruang sampelnya adalah
S = {genap, gasal} Elemen genap atau gasal merupakan titik sampel.
Contoh 1.1.2
Pada percobaan pengambilan sebuah kartu bridge, kemungkinan hasil percobaannya adalah
Jika ditinjau dari jenis kartu maka ruang sampelnya adalah
S = {, , , }
Jika ditinjau dari warna kartu maka ruang sampelnya adalah
S = { merah, hitam }
Contoh 1.1.3
Percobaan pelemparan 2 buah mata dadu, ruang sampel-nya adalah
S = {(1,1), (1,2), (1,3), (1,4), (1,5), (1,6),
(2,1), (2,2), (2,3), (2,4), (2,5), (2,6),
(3,1), (3,2), (3,3), (3,4), (3,5), (3,6),
(4,1), (4,2), (4,3), (4,4), (4,5), (4,6),
(5,1), (5,2), (5,3), (5,4), (5,5), (5,6),
(6,1), (6,2), (6,3), (6,4), (6,5), (6,6)}
Jika A adalah kejadian munculnya dadu dengan jumlah mata dadu sama dengan 1 maka A = { },
kejadian mustahil.
Jika B adalah kejadian munculnya dadu dengan jumlah mata dadu sama dengan 7 maka B = {(1,6),
(2,5), (3,4), (4,3), (5,2), (6,1)}.
Jika C adalah kejadian munculnya dadu dengan jumlah mata dadu sama dengan 11 maka C = {(5,6),
(6,5)}.
Jika D adalah kejadian munculnya mata dadu pertama adalah 5 maka
D = {(5,1), (5,2), (5,3), (5,4), (5,5), (5,6)}.
Irisan kejadian A dan B adalah A N B = {}.
8

Irisan kejadian B dan C adalah B N C = {}.
Irisan kejadian C dan D adalah C N D = {(5, 6)}.
Gabungan kejadian A dan B adalah A U B = {(1,6), (2,5), (3,4), (4,3), (5,2), (6,1)} = B.
Gabungan kejadian B dan C adalah B U C = {(1,6), (2,5), (3,4), (4,3), (5,2), (6,1), (5,6), (6,5)}.
Gabungan kejadian C dan D adalah C U D = {(5,1), (5,2), (5,3), (5,4), (5,5), (5,6), (6,5)}.

2.4. Teori Informasi
Teori yang mendefinisikan jumlah informasi di dalam pesan sebagai jumlah minimum bit yang
dibutuhkan untuk mengkodekan pesan
Contoh : 1 bit untuk mengkodekan jenis kelamin, 3 bit untuk nama hari.
Entropi (entropy) adalah ukuran yang menyatakan jumlah informasi di dalam pesan. (Biasanya
dinyatakan dalam satuan bit), Entropi digunakan untuk memperkirakan jumlah bit rata-rata untuk
mengkodekan elemen dari pesan.
Contoh : entropi untuk pesan yang menyatakan jenis kelamin = 1 bit untu, entropi untuk pesan yang
menyatakan nama hari = 3 bit.
Shannon merumuskan entropi pesan, disimbolkan dengan H, yang dihitung dengan persamaan :

X=pesan, n=jumlah simbol berbeda di dalam pesan, p
i
=peluang kemunculan simbol ke-i
Misalkan pesan X adalah string AABBCBDB. Jumlah simbol berbeda di dalam pesan adalah n=4
(yaitu A,B,C,D).
Sehingga p(A)=2/8, p(B)=4/8, p(C)=1/8 dan p(D)=1/8.
Entropi pesan X adalah :





9

Entropi 1,75 berarti setiap simbol dikodekan sebanyak 1,75 bit.
Sifat-sifat entropi adalah :
1. 0 H(X) log
2
(n)
2. H(X) = 0 jika dan hanya jika p
i
= 1 untuk semua i dan p
j
= 0 untuk semua j i
3. H(X) = log
2
(n) jika dan hanya jika p
i
= 1/n untuk setiap i, 1 i n
Entropi juga menyatakan ketidaktentuan (uncertainty) dari pesan. Contohnya, bila kriptogram
Y6RuPZ menyatakan plainteks MALE atau FEMALE, maka uncertainty pesan = 1. Kriptanalis
harus mempelajari hanya 1 bit yang dipilih secara tepat untuk menemukan plainteks.
Entropi sistem kriptografi adalah ukuran ruang kunci K. Misal sistem kriptografi dengan kunci 64-bit
mempunyai entropi 64 bit.Semakin besar entropi, semakin sulit memecahkan cipherteks.
Laju bahasa (rate of a language) didefinisikan sebagai berikut :

N = panjang pesan. Contohnya, laju normal Bahasa Inggris adalah 1,0 bit/huruf sampai dengan 1,5
bit/huruf untuk N besar
Laju mutlak (absolute rate) didefinisikan sebagai berikut :

L = jumlah karakter didalam bahasa. Contohnya, dalam bahasa Inggris (26 huruf), R = log
2
26 = 4,7
bit/huruf.
Redundansi bahasa (D) didefinisikan sebagai berikut :

Contoh, di dalam bahasa Inggris (ambil r = 1,3) D = 4,7 1,3 = 3,4 bit/huruf. Artinya setiap huruf
dalam bahasa Inggris membawa 3,4 bit informasi redundan (mubazir).
Contoh lain, pada pesan ASCII (256 karakter),
R = log
2
256 = 8 dan r = 1,3 (sama seperti bahasa Inggris), sehingga D = 8 1,3 = 6,7 bit/karakter.
Kriptanalis menggunakan redundansi alami dari bahasa untuk mengurangi kemungkinan jumlah
plainteks.
Contoh, kata dan dalam bahasa Indonesia redundan. Misal jika dalam cipherteks banyak muncul
kriptogram ftY (3 huruf) maka kemungkinan besar itu adalah dan.Semakin besar redundansi
bahasa, semakin mudah melakukan kriptanalisis.
Dalam dunia nyata, implementasi kriptografi dilengkapi dengan program KOMPRESI sebelum
mengenkripsi pesan.
10

1.5. Teori Bilangan
Number theory adalah teori yang mendasar dalam memahami kriptografi.Khususnya sistem
kriptografi kunci-publik.Bilangan yang dimaksud di sini hanyalah bilangan bulat (integer).
Sifat pembagian pada Bilangan Bulat
Misal a dan b adalah dua bilanga bulat dengan syarat a 0, dapat dinyatakan bahwa a HABIS
MEMBAGI b (a divides b) jika terdapat bilangan bulat c sedemikian hingga b = ac.
TEOREMA EUCLIDAN. Misal m dan n adalah dua bilangan bulat dengan syarat n > 0. Jika m dibagi
dengan n maka terdapat dua bilangan bulat unik q (quotient) dan r (remainder) sedemikian hingga :
Contoh : 1987 dibagi 97 memberikan hasil bagi 20 dan sisa 47. Atau ditulis 1987=97.20 + 47
PBB (Pembagi Bersama Terbesar)
Misal a dan b adalah dua bilangan bulat tidak nol. Pembagi bersama terbesar dari a dan b adalah
bilangan bulat terbesar d sedemikan hingga d | a dan d | b. Dalam hal ini dinyatakan PBB(a,b) = d.
Contoh : Faktor pembagi 45 : 1,3,5,9,15 ; 36 : 1,2,3,4,9,12,18,36. FPB dari 45 dan 36 adalah 1,3,9.
Sehingga PBB(45,36) = 9
Algoritma Euclidan
Adalah algoritma untuk mencari PBB dari dua buah bilangan bulat. Euclid, penemu algoritma
Euclidan adlah seorang matematikawan Yunani yang menuliskan algoritmanya dalam bukunya
Element .
Diberikan dua buah bilangan bulat tak-negatif m dan n (m n). Algoritma Euclidan berikut
mencari pembagi bersama terbesar dari m dan n :
1. Jika n=0 maka m adalah PBB(m,n);stop; Kalau tidak, (yaitu n 0) lanjutkan ke langkah 2
2. Bagilah m dengan n dan misalkan r adalah sisanya
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang dari langkah 1
Misalkan m=80, n=12 dan dipenuhi syarat m n, maka PBB(80,12) dihitung dengan algoritma
Euclidan sbb :
80 = 6 . 12 + 8
12 = 1 . 8 + 4
8 = 2 . 4 + 0
Relatif Prima
Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB (a,b) = 1. Jika a dan b elatif prima,
maka terdapat bilangan bulat m dan n sedemikian hingga :
ma + nb = 1
11

Contoh : 20 dan 3 relatif prima (PBB(20,3)=1), 20 dan 5 TIDAK relatif prima (PBB(20,5)=5)
Aritmetika Modulo
Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca a
modulo m) memberikan sisa jika a dibagi dengan m. Bilangan m disebut MODULUS atau
MODULO, dan hasil aritmetika modulo m terletak dalam himpunan {0,1,2,,m-1}
Notasi : a mod m = r sedemikian hingga a=mq + r, dengan 0 r < m
Aritmetika Modulo dan Kriptografi
Aritmetika modulo cocok digunakan untuk kriptografi :
1. Oleh karena nilai-nilai aritmetika modulo berada dalam himpunan berhingga (0 sampai
modulus m-1), maka kita tidak perlu khawatir hasil perhitungan berada di luar himpunan
2. Karena kita bekerja dengan bilangan bulat, maka kita tidak khawatir kehilangan informasi
akibat pembulatan (round off) sebagaimana pada operasi bilangan real.

1.6. Jenis-Jenis Serangan

1. Berdasar Keterlibatan Penyerang dalam Komunikasi
a. Serangan Pasif (passive attack)
b. Serangan Aktif (active attack)

2. Berdasar Banyaknya Informasi yang Diketahui
a. Ciphertext-Only Attack
b. Known-Plaintext Attack
c. Chosen-Plaintext Attack
d. Chosen-Ciphertext Attack
e. Chosen-Text Attack

3. Berdasar Teknik Untuk Menemukan Kunci
a. Exhaustive Attack / Brute Force Attack
b. Analytical Attack
c. Related-Key Attack

4. Rubber-Hose Cryptanalysis













12

BAB III
Algoritma Kriptografi Klasik

3.1. Cipher SUBSTITUSI
Pada suatu cipher substitusi masing masing huruf atau kelompok akan digantikan dengan
huruf atau kelompok huruf lainnya untuk disamarkan.Salah satu cipher paling tua dikenal
dengan sebutan Cipher Caesar yang dikaitkan dengan Julius Caesar, dalam Cipher ini
plaintext diberikan dalam huruf kecil sedangkan Ciphertext diberikan dalam huruf besar.
Penyempurnaan berikutnya adalah dengan menizinkan penggunaan symbol didalam plaintext
misalnya :
Plaintext : abcdefghijklmnopqrstuvwxyz
Ciphertext : QWERTYUIOPASDFGHJKLZXCVBNM

System umum ini biasa disebut Substitusi Monoalphabetis, yang berkaitan dengan alphabet
Dengan kunci diatas maka plaintext attack akan ditransformasikan kedalam ciphertext
menjadi QZZQEA

3.2. Jenis-Jenis Cipher Subtitusi
a. Cipher Alfabet Tunggal
Disebut juga CIPHER SUBSTITUSI SEDERHANA.Satu huruf di plainteks diganti dengan
tepat satu huruf cipherteks.
Contoh : Caesar Cipher, cipherteks diperoleh dari menggeser huruf plainteks sejauh n
karakter.
Contoh : Tabel substitusi
A B C D E F .. .. Y Z
D I Q M T B .. .. N G

b. Cipher Alfabet Majemuk
Dibuat dari sejumlah cipher alfabet-tunggal, masing-masing dengan kunci yang berbeda.
Ditemukan pertama kali tahun 1568 oleh Leon Battista Alberti.Digunakan oleh tentara
AS selama Perang Sipil Amerika.
Contoh : Vigenere Cipher Misal K adalah barisan kunci
K = k
1
k
2
k
3
k
4
k
5
.....k
m

Maka cipherteks : y
1
(p) = (p+k
i
) mod 26 Dimana k
i
untuk 1 i m
Misalkan periode m=20, maka 20 karakter pertama dienkripsi dengan persamaan sebelumnya, dimana
setiap karakter ke-i menggunakan kunci k
i
dan diulang untuk setiap 20 karakter selanjutnya.
13

P : K R I P T O G R F I K L A S I K D E
K : L A M P I O N L A M P I O N L A M P
C : V R . . . . . . . . . . . . . . . .
Maka huruf K dienkripsi dengan kunci L : (K+L)mod26 = (10+11)mod26 = 21 = V
Huruf R dienkripsi dengan kunci A : (R+A)mod26 = (17+0)mod26 = 17 = R Dan seterusnya
c. Cipher Substitusi Homofonik
Seperti cipher alfabet-tunggal, tetapi setiap huruf dalam plainteks dapat dipetakan ke
SALAH SATU dari BEBERAPA unit cipherteks (CDL,BK,AU ; YDO,DA). Semua
unit cipherteks yang berkorespondensi dengan satu huruf plainteks : homofonik
Semakin sering frekuensi kemunculan suatu huruf, makin banyak pilihan untuk memilih
korespondensi cipherteksnya.Tujuan : menyembunyikan hubungan statistik antara
plainteks dengan cipherteks sehingga menyulitkan teknik analisis frekuensi. Setiap
kelompok huruf disubstitusi dengan kelompok huruf cipherteks.Misal AS diganti dengan
RT, BY diganti dengan SL, dll.
Keuntungan : distribusi kemunculan poligraf menjadi datar, sehingga menyulitkan
analisis frekuensi.

3.3 Cipher TRANSPOSISI
Huruf-huruf dalam plainteks tetap sama, hanya saja urutanya dirubah atau melakukan
TRANSPOSE terhadap rangkaian karakter dalam teks.
Nama lain : PERMUTASI / PENGACAKAN
Contoh : Scytale oleh tentara sparta.
Contoh : P : TEKNIKPERANGKATLUNAK
Tulis pesan secara horisontal selebar 5 karakter :
TEKNI
KPERA
NGKAT
LUNAK


14

3.4. Super Enkripsi
Cipher substitusi dan transposisi dapat dikombinasikan untuk memperoleh cipher yang lebih kuat
daripada hanya satu cipher saja.
1. Substitusi dulu baru transposisi
2. Transposisi dulu baru substitusi
Plainteks : HELLO WORLD
Enkripsi dengan Caesar Cipher : KHOOR ZRUOG
Enkripsi dengan transposisi : KHOO
RZRU
OGZZ

3.5. Teknik Analisis Frekuensi













Tabel 2. Frekuensi kemunculan (relatif) huruf-huruf
dalam teks Bahasa Inggris (sampel mencapai 300.000 karakter di dalam
sejumlah novel dan suratkabar

Huruf % Huruf %
A
B
C
D
E
F
G
H
I
J
K
L
M
8,2
1,5
2,8
4,2
12,7
2,2
2,0
6,1
7,0
0,1
0,8
4,0
2,4
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
6,7
7,5
1,9
0,1
6,0
6,3
9,0
2,8
1,0
2,4
2,0
0,1
0,1

15


16

Top 10 huruf yang sering muncul dalam teks Bahasa Inggris: E, T, A, O, I, N, S, H, R, D, L,
U
Top 10 huruf bigram yang sering muncul dalam teks B. Inggris: TH, HE, IN, EN, NT, RE,
ER, AN, TI, dan ES
Top 10 huruf trigram yang sering muncul dalam teks B. Inggris: THE, AND, THA, ENT,
ING, ION, TIO, FOR, NDE, dan HAS
Kriptanalis menggunakan tabel frekuensi kemunculan huruf dalam B. Inggris sebagai kakas
bantu melakukan dekripsi.
Kemunculan huruf-huruf di dalam sembarang plainteks tercermin pada tabel tersebut.
Misalnya, jika huruf R paling sering muncul di dalam cipherteks, maka kemungkinan besar
itu adalah huruf E di dalam plainteksnya.
Contoh: Diberikan cipherteks berikut ini:
UZ QSO VUOHXMOPV GPOZPEVSG ZWSZ OPFPESX UDBMETSX AIZ VUEPHZ
HMDZSHZO WSFP APPD TSVP QUZW YMXUZUHSX EPYEPOPDZSZUFPO MB ZWP FUPZ
HMDJ UD TMOHMQ
Lakukakan kriptanalisis dengan teknik analisis frekuensi untuk memperoleh plainteks.
Asumsi: bahasa yang digunakan adalah Bahasa Inggris dan cipher yang digunakan adalah cipher
abjad-tunggal.

3.6. Affine Cipher
Perluasan dari Caesar Cipher.Mengalikan plainteks dengan sebuah nilai dan menambahkannya
dengan sebuah pergeseran.
C = mP + b (mod n)
n : ukuran alphabet
m : bilangan bulat relatif prima dengan n (jika tidak relatif prima, dekripsi tidak dapat dilakukan)
b : jumlah pergeseran
Contoh : K R I P T O
10 17 8 15 19 14 (memisalkan A=0, Z=25)
Dienkripsi dengan mengambil m=7 (karena relatif prima dengan 26)
C = 7P + 10 (mod26)
p
1
=10c1=(7.10)+10=80=2(mod26) hasil : C
Dst sehingga Ciphreteks : CZOLNE
17

4. One Time Pad
Satu-satunya cipher yang TIDAK DAPAT DIPECAHKAN (unbreakable cipher). Cipher yang tidak
dapat dipecahkan dikatakan memiliki tingkat kerahasiaan yang sempurna (perfect secrecy)
Dua syarat untuk merancang unbreakable cipher :
1. Kunci harus dipilih secara acak dan mempunyai peluang yang sama untuk terpilih
2. Panjang kunci harus sama dengan panjang plainteks yang akan dienkripsi
Kedua syarat tersebut menyebabkan plainteks yang sama dalam beberapa kali proses enkripsi pasti
menjadi cipherteks yang sama sekali berbeda. One time pad (pad=kertas bloknot) adalah kertas yang
berisi deretan karakter-karakter kunci yang berisi huruf-huruf yang tersusun acak.
Satu pad hanya digunakan sekali (one-time) untuk mengenkripsi pesan, kemudian pad yang sama
digunakan sekali untuk mendekripsi pesan. Setelah itu pad harus dihancurkan supata tidak dipakai
kembali untuk mengenkripsi pesan lain.
Satu karakter kunci mengenkripsikan satu karakter plainteks.
c
i
= (p
i
+ k
i
) mod 26
Sistem OTP tidak dapat dipecahkan karena :
1. Barisan kunci acak yang ditambahkan ke plainteks yang tidak acak menghasilkan cipherteks
yang seluruhnya acak
2. Beberapa barisan kunci untuk mendekripsi cipherteks mungkin menghasilkan beberapa
plainteks yang mempunyai makna.
Cipherteks : HOJKOREGHP
Jika Kunci : LMCCAWAAZD Plainteks : SALMONEGGS
Jika Kunci : ZDVUZOEYEO Plainteks : GREENFIELD
Meski OTP merupakan cipher yang sempurna aman, tetapi faktanya tidak digunakan secara universal
dalam aplikasi kriptorafi sebagai satu-satunya sistem cipher yang tidak dapat dipecahkan (hanya
sedikit sistem komunikasi yang menggunakan OTP).
Alasan mengapa OTP jarang digunakan :
1. Karena panjang kunci harus sama dengan panjang pesan, maka OTP hanya cocok untuk pesan
berukuran kecil. Pada aplikasi untuk mengenkripsi data tersimpan, timbul masalah dalam
penyimpanan kunci. Pada aplikasi untuk komunikasi pesan, timbul masalah dalam
pendistribusian kunci.
2. Karena kunci dibangkitkan secara acak, maka tidak mungkin pengirim dan penerima
membangkitkan kunci yang sama secara simultan. Jadi, salah seorang dari mereka harus
membangkitkan kunci lalu mengirimkannya ke pihak lain.


18

BAB IV
Algoritma Kriptografi Modern

4.1. Rangkaian Bit dan Operasinya
Umumnya data diproses dalam bentuk blok-blok bit yang dituliskan dalam sejumlah cara tergantung
pada panjang blok.
Misal P : 1 0 0 1 1 1 0 1 0 1 1 0 dibagi menjadi bit yang panjangnya 4 bit menjadi :
1001 1101 0110 alias 9 13 6
Bila panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang ditetapkan, maka blok terakhir
ditambahkan dengan bit-bit semu yang disebut PADDING BIT.
Misal : 1 0 0 1 1 1 0 1 0 1 1 0 dibagi dengan blok 5 bit menjadi : 10011 10101 00010
Cara lain untuk menyatakan rangkaian bit adalah dengan notasi heksadesimal (HEX). Rangkaian
dibagi menjadi blok yang berukuran 4 bit :
0000 = 0 0001 = 1 0010 = 2 0011 = 3
0100 = 4 0101 = 5 0110 = 6 0111 = 7
1000 = 8 1001 = 9 1010 = A 1011 = B
1100 = C 1101 = D 1110 = E 1111 = F
Misal P : 100111010110 dibagi menjadi 1001 1101 0110, dalam notasi HEX menjadi 9 D 6
Operator biner yang sering digunakan dalam cipher yang beroperasi dalam mode bit adalah XOR atau
exclusive-OR. Notasi matematis XOR adalah
0 0 = 0
0 1 = 1
1 0 = 1
1 1 = 0

Jika dua rangkaian bit dioperasikan dengan XOR, maka operasinya dilakukan dengan meng-XOR-kan
setiap bit yang berkoresponden dari kedua rangkaian bit.
Contoh :



19

4.2. Algoritma Enkripsi dengan XOR Sederhana
Dengan cara meng-XOR-kan Plainteks (P) dengan Kunci (K) sehingga menghasilkan Cipherteks (C)
Karena meng-XOR-kan nilai yang sama dua kali berturut-turut menghasilkan nilai semula, maka
dekripsi menggunakan persamaan :
Algoritma Kunci Simetri Pengirim dan penerima memiliki kunci yang sama. Beroperasi dalam
mode bit.
1. Cipher Aliran (Stream Cipher)
Beroperasi pada plainteks/cipherteks dalam bentuk BIT TUNGGAL. Rangkaian bit dienkripsi
/ didekripsi bit per bit.
2. Cipher Blok (Block Cipher)
Beroperasi pada plainteks/cipherteks dalam bentuk BLOK BIT. Rangkaian bit dibagi menjadi
blok-blok dng ukuran tertentu. dienkripsi / didekripsi blok per blok.

4.3. Kategori Cipher Kunci Simetri
Algo ritma ku nci - simetri mengacu pada metode enkripsi yang dalam hal ini baik pengirim maupun
penerima memiliki kunci yang sama. Algoritma kunci- simetri modern beroperasi dalam mode bit
dan dapat dikelompokkan menjadi dua kategori:
1. Cipher Aliran (Stream Cipher )
Algoritma kriptografi beroperasi pada plaintext/ciphertext dalam bentuk bit tunggal, yang dalam hal
ini rangkaian bit dienkripsi/didekripsikan bit per bit. Cipher aliran mengenkripsi satu bit pada setiap
kali proses enkripsi.
2. Cipher Blok (Block Cipher)
Algoritma kriptografi beroperasi pada plaintext/ciphertext dalam bentuk blok bit, yang dalam hal ini
rangkaian bit dibagi menjadi blok- blok bit yang panjangnya sudah ditentukan sebelumnya. Misalnya
panjang blok adalah 64 bit, ma ka ituberarti algoritma enkripsi memerlukan 8 karakter setiap kali
enkripsi (1 karakter = 8 bit dalam pengkodean ASCII). Cipher blok mengenkripsi satu blok bit pada
setiap kali proses enkripsi. (Munir, 2006)
4.4. Cipher Aliran (Stream Cipher)
Pada cipher aliran, bit hanya mempunyai dua buah nilai, sehingga proses enkripsi hanya
menyebabkan dua keadaan pada bit : berubah atau tidak berubah. Dua keadaan tersebut ditentukan
oleh ALIRAN-KUNCI (keystream) yang dibangkitkan oleh PEMBANGKIT ALIRAN KUNCI
(keystream generator).
20

Keystream
Generator
Keystream
Generator
p
i

k
i

c
i
p
i

k
i

Plainteks
Enkripsi
Keystream Keystream
Cipherteks Plainteks
Dekripsi






Keamanan sistem ini sepenuhnya
bergantung pada keystream generator. Jika yang dibangkitkan hanya bit 0,maka cipherteks = plainteks
Tidak berguna Jika keystream generator mengeluarkan aliran kunci dengan pola 16-bit yang
berulang, maka algoritma enkripsinya menjadi sama persis dengan XOR sederhana dengan tingkat
keamanan yang rendah.
Jika keystream generator mengeluarkan aliran kunci yang benar-benar acak (truly random), maka
algoritma enkripsinya sama dengan one-time pad dengan tingkat keamanan yang sempurna. Dalam
hal ini aliran kunci sama panjangnya dengan panjang plainteks sehingga akan didapatkan unbreakable
cipher.
Kesimpulan : hanya dengan perhitungan XOR sederhana, KUNCI ACAK yang di-generate
SEPANJANG plainteks dan metode enkripsi ONE-TIME PAD, akan didapatkan cipherteks yang sulit
dipecahkan.

4.5. Pembangkit Aliran-Kunci
- Pembangkit bit-aliran-kunci dapat membangkitkan bit-aliran-kunci berbasis bit per bit atau
dalam bentuk blok-blok bit. Untuk yang terakhir ini, cipherblok dapat digunakan untuk untuk
memperoleh cipher aliran.
- Untuk alasan praktis, pembangkit bit-aliran-kunci diimplementasikan sebagai prosedur
algoritmik, sehingga bit-aliran-kunci dapat dibangkitkan secara simultan oleh pengirim dan
penerima pesan.
- Prosedur algoritmik tersebut menerima masukan sebuah kunci U. Keluaran dari prosedur
merupakan fungsi dari U (lihat Gambar 6.2). Pembangkit harus menghasilkan bit-aliran-kunci
yang kuat secara kriptografi.

UKeystream U Keystream
Generator Generator

Keystream k
i
Keystream k
i

c
i

21

p
i
p
i

Plainteks Enkripsi Cipherteks Dekripsi Plainteks

Gambar 6.2Cipher aliran dengan pembangkit bit-aliran-kunci yang bergantung pada kunci U.
- Karena pengirim dan penerima harus menghasilkan bit-aliran-kunci yang sama , maka
keduanya harus memiliki kunci U yang sama. Kunci U ini harus dijaga kerahasiaanya.
- Cipher aliran menggunakan kunci U yang relatif pendek untuk membangkitkan bit-aliran-
kunci yang panjang.
Contoh: Misalkan U adalah kunci empat-bit yang dipilih sembarang, kecuali 0000. Bit-aliran-
kunci yang dibangkitkan akan berulang setiap 15 bit. Misalkan
U = 1111
Barisan bit-bit aliran-kunci diperoleh dengan meng-XOR-kan bit pertama dengan
bit terakhir dari empat bit sebelumnya, sehingga menghasilkan:
111101011001000
dan akan berulang setiap 15 bit.
Secara umum, jika panjang kunci U adalah n bit, maka bit-aliran-kunci tidak akan
berulang sampai 2
n
1 bit.

- Karena U adalah besaran yang konstan, maka bit-aliran-kunci yang dihasilkan pada setiap
lelaran tidak berubah jika bergantung hanya pada U.
- Ini berarti pembangkit bit-aliran-kunci tidak boleh mulai dengan kondisi awal yang sama
supaya tidak menghasilkan kembali bit-aliran-kunci yang sama pada setiap lelaran.
Oleh karena itu, beberapa pembangkit bit-aliran-kunci menggunakan besaran vektor
inisialisasi atau umpan (seed), disimbolkan dengan Z, agar diperoleh kondisi awal yang
berbeda pada setiap lelaran (lihat Gambar 6.3).

Z Z


UKeystream U Keystream
Generator Generator

Keystream k
i
Keystream k
i

22

c
i

p
i
p
i

Plainteks Enkripsi Cipherteks Dekripsi Plainteks
Gambar 6.3Cipher aliran dengan pembangkit bit-aliran-kunci yang bergantung pada kunci U
dan umpan Z.

- Dengan demikian, bit-aliran-kunci K dapat dinyatakan sebagai hasil dari fungsi g dengan
parameter kunci U dan masukan umpan Z:
K = g
K
(Z)
sehingga proses enkripsi dan dekripsi didefinisikan sebagai
C =PK = Pg
K
(Z)

P =CK = Cg
K
(Z)
- Nilai Z yang berbeda-beda pada setiap lelaran menghasilkan bit-aliran-kunci yang berbeda
pula.
Merancang pembangkit bit-aliran-kunci yang bagus cukup sulit karena membutuhkan pengujian
statistik untuk menjamin bahwa keluaran dari pembangkit tersebut sangat

4.6. Jenis-jenis Cipher Aliran
Jenis cipher yang umum dipakai dalam proses enkripsi/dekripsi data di komputer biasanya
adalah jenis cipher blok(block cipher) dan cipheraliran(stream cipher). Cipher blok adalah
jenis cipher yang melakukan proses enkripsi/dekripsi dengan membagi bit-bit data menjadi
beberapa blok bit yang panjangnya sudah ditentukan, sedangkan cipher aliran melakukan
proses enkripsi/dekripsi terhadap masing-masing bit tunggal dari bit-bit data. Sebagian
besar cipher aliran yang ada sekarang mempunyai kelemahan baik di bagian kuncinya mudah
dipecahkan maupun di performanya yang buruk terhadap komputer.
Dari beberapa kelemahan yang telah disebutkan di atas maka kami membuat model enkripsi
baru dengan karakter huruf Wingdings3. Dengan harapan model enkripsi baru lebih simpel
tetapi lebih aman dibanding dengan model algoritma yang lain, dikarenakan belum banyak
orang mengenal karakter huruf Wingdings3.


4.7. Linear Feedback Shift Register (LFSR)
23


LFSR adalah salah satu dari kelas dari perangkat yang dikenal sebagai mesin negara.Isi dari register,
bit disadap untuk fungsi umpan balik, dan output dari umpan balik berfungsi bersama-sama
menggambarkan keadaan LFSR. Dengan setiap shift, LFSR pindah ke negara baru. (Ada satu
pengecualian untuk ini -. Ketika isi register semua nol, LFSR tidak akan pernah berubah negara)
Untuk setiap negara diberikan, hanya ada satu negara berhasil. Kebalikannya juga benar: setiap negara
diberikan hanya dapat memiliki satu negara sebelumnya. Selama sisa diskusi ini, hanya isi register
akan digunakan untuk menggambarkan keadaan dari LFSR.
Sebuah ruang keadaan LFSR adalah daftar semua negara LFSR dapat dalam untuk urutan keran
tertentu dan nilai awal tertentu. Setiap urutan keran akan menghasilkan setidaknya dua ruang negara
untuk sebuah LFSR. (Salah satu ruang akan menjadi orang yang hanya berisi satu negara - semua satu
nol.) Tap urutan yang menghasilkan hanya dua ruang negara yang disebut sebagai urutan panjang
keran maksimal.
Keadaan sebuah LFSR yang adalah n bit panjang bisa salah satu dari 2 ^ n nilai yang berbeda. Ruang
negara terbesar mungkin untuk seperti sebuah LFSR akan ada 2 ^ n - 1 (semua kemungkinan nilai
minus negara nol). Karena setiap negara dapat memiliki hanya sekali berhasil negara, sebuah LFSR
dengan urutan keran panjang maksimal akan melewati setiap negara bagian bukan nol sekali dan
hanya sekali sebelum mengulangi negara.
Salah satu akibat wajar untuk perilaku ini adalah aliran bit output. Masa sebuah LFSR didefinisikan
sebagai panjang sungai sebelum mengulangi.Periode, seperti ruang negara, terkait dengan urutan
keran dan nilai awal. Sebagai soal fakta, periode sama dengan ukuran ruang negara. Periode
terpanjang mungkin sesuai dengan ruang negara terbesar mungkin, yang diproduksi oleh urutan keran
panjang maksimal. (Oleh karena itu "panjang maksimal")
Tabel 2 adalah daftar negara internal dan bit stream output dari LFSR 4-bit dengan urutan keran [, 4
1]. (Ini adalah LFSR ditunjukkan pada Gambar 1.)
Tabel 2) 4-Bit LFSR [4, 1] Amerika dan Output
Pendaftaran Amerika

Bit 1 (Tap) Bit 2 Bit 3 Bit 4 (Tap)
Keluaran
Streaming
1 1 0 1

0 1 1 0 1
0 0 1 1 0
1 0 0 1 1
0 1 0 0 1
24

0 0 1 0 0
0 0 0 1 0
1 0 0 0 1
1 1 0 0 0
1 1 1 0 0
1 1 1 1 0
0 1 1 1 1
1 0 1 1 1
0 1 0 1 1
1 0 1 0 1
1 1 0 1 0

TAP PANJANG URUTAN MAKSIMAL
Yang LFSR dapat memiliki urutan keran panjang beberapa maksimal. Urutan panjang maksimal
keran juga menjelaskan eksponen dalam apa yang dikenal sebagai mod polinomial primitif 2. Sebagai
contoh, urutan ketukan 4, 1 menggambarkan polinomial primitif x ^ 4 + x ^ 1 + 1. Mencari mod
polinomial primitif 2 derajat n (eksponen terbesar di polinomial) akan menghasilkan sebuah urutan
panjang keran maksimal untuk LFSR yang adalah n bit panjang.
Tidak ada cara cepat untuk menentukan apakah urutan keran adalah panjang maksimal. Namun, ada
beberapa cara untuk mengetahui apakah seseorang tidak panjang maksimal:
1) urutan panjang maksimal keran selalu memiliki bahkan jumlah keran.
2) nilai-nilai Keran dalam urutan keran panjang maksimal semua relatif prima. Urutan keran seperti
12, 9, 6, 3 tidak akan panjang maksimal karena nilai keran semua habis dibagi 3.
Menemukan satu urutan panjang maksimal keran otomatis mengarah ke yang lain. Jika urutan
panjang maksimal keran digambarkan oleh [n, A, B, C], lain urutan panjang maksimal keran akan
dijelaskan oleh [n, nC, nB, nA]. Jadi, jika [32, 3, 2, 1] adalah urutan panjang maksimal tap, [32, 31,
30, 29] juga akan menjadi urutan panjang maksimal keran. Sebuah perilaku yang menarik dari dua
sekuens keran tersebut adalah bahwa output stream bit merupakan pencerminan pada waktunya.





25

4.8. Serangan Terhadap Cipher Aliran

- Serangan yang dapat dilakukan oleh kriptanalis terhadap cipher aliran adalah:
1. Known-plaintext attack
Misalkan kriptanalis memiliki potongan plainteks (P) dan cipherteks (C) yang
berkoresponden, maka ia dapat menemukan bagian bit-aliran-kunci (K) yang
berkoresponden dengan meng-XOR-kan bit-bit plainteks dan cipherteks:
PC = P (PK)= (PP) K = 0 K = K
2. Ciphertext-only attack
Misalkan kriptanalis memiliki dua potongan cipherteks berbeda (C
1
dan C
2
) yang
dienkripsi dengan bit-aliran-kunci yang sama. Ia meng-XOR-kan kedua cipherteks
tersebut dan memperoleh dua buah plainteks yang ter-XOR satu sama lain:
C
1
C
2
= (P
1
K ) (P
2
K)
= (P
1
P
2
) (K K)
= (P
1
P
2
) 0
= (P
1
P
2
)
P
1
dan P
2
dapat diperoleh dengan mudah. Selanjutnya, XOR-kan salah satu plainteks
dengan cipherteksnya untuk memperoleh bit-aliran-kunci K yang berkoresponden:
P
1
C
1
= P
1
(P
1
K) = K
Pesan dari dua serangan di atas adalah: pengguna cipher aliran harus mempunyai bit-aliran-kunci
yang tidak dapat diprediksi sehingga mengetahui sebagian dari bit-aliran-kunci tidak memungkinkan
kriptanalis dapat mendeduksi bagian sisanya.

4.9. RC4

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher, yaitu memproses
unit atau input data pada satu saat. Unit atau data pada umumnya sebuah byte atau kadang-kadang bit.
Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini
tidak harus menunggu sejumlah input data tertentu sebelum diproses, atau menambahkan byte
tambahan untuk mengenkripsi. Algoritma ini ditemukan pada tahun 1987 oleh Ronald Rivest dan
menjadi simbol keamanan RSA.[WAH04]

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. RC4 tidak dipatenkan oleh RSADSI, hanya saja tidak diperdagangkan
secara bebas (trade secret).[WAH04]

26

Algoritma RC4 bekerja pada dua tahap, menyetem susunan (key setup) dan pengkodean
(ciphering).Kunci susunan merupakan hal yang lebih awal dan merupakan tahap yang paling sulit dari
algoritma ini. Selama menyetem susunan suatu N-bit ( N menjadi panjangnya kunci), kunci enkripsi
digunakan untuk menghasilkan suatu variabel enkripsi yang menggunakan dua arrays, state dan kunci,
dan jumlah N dari operasi pencampuran. Operasi pencampuran terdiri dari menukar bytes, modulo
operasi, dan rumusan lain. Suatu modulo operasi adalah proses sisa dari suatu hasil divisi. Sebagai
contoh, 11/4 adalah 2 sisa 3; oleh karena itu 11 mod 4 sama dengan 3. [WAH04]
Sekali variabel enkripsi dihasilkan dari key setup, langkah selanjutnya adalah masuk ke fase ciphering
di mana dalam proses ini hasilnya akan diXORkan dengan plaintext. Sekali penerima mendapat pesan
yang dienkripsi, langkah selanjutnya adalah mendekripsinya dengan XOR pesan yang dienkripsi
dengan menggunakan variabel yang sama.[WAH03]


4.10. A5

A5 adalah cipher aliran yang digunakan untuk mengenkripsi transmisi sinyal percakapan dari
standard telepon seluler GSM(Group Special Mobile). Sinyal GSM dikirim sebagai barisan
frame. Satu frame panjangnya 228 bit dan dikirim setiap 4,6 milidetik. A5 digunakan untuk
menghasilkan aliran-kunci 228 bit yang kemudian di XOR-kan dengan frame. Kunci
eksternal panjangnya 64 bit.
A5 terdiri dari 3 buah LFSR yang masing-masing panjangnya 19, 22, dan 23 bit (jumlah
seluruhnya 19 + 22 + 23 = 64). Bit-bit di dalam register diindeks dimana bit paling tidak
penting (LSB) diindeks dengan 0 (elemen paling kanan). Luaran (output) dari A5 adalah hasil
XOR dari ketiga buah LFSR ini. A5 mengunakan tiga buah kendali detak (clock) yang
variable. Tiap register didetak berdasarkan bit pertengahannya.
( i ) register 1 mempunyai kendali detak pada bit 8. Bit-bit pendetakannya adalah pada bit 13,
16, 17, dan 18
( ii ) register 2 mempunyai kendali detak pada bit 10. Bit-bit pendetakannya adalah pada bit
20, dan 21
(iii) register 3 mempunyai kendali detak pada bit 10. Bit-bit pendetakannya adalah pada bit
7, 20, 21, dan 22.
Register didetak dalam mode stop atau go dengan menggunakan kaidah mayoritas. Pada tiap
putaran (seluruhnya 64 putaran). bit-bit pendetakan dari ketiga register diperiksa dan
mayoritasnya ditentukan. Sebuah register didetak jika bit kendali detaknya sama dengan bit
mayoritas. Biasanya pada setiap putaran 2 atau 3 buah register didetak. Selama 64 putaran 64
27

bit kunci rahasia dicampur berdasarkan skema berikut : pada putaran 0 i < 64, bit kunci ke-i
ditambahkan ke bit LSB dari setiap register dengan mengunakan XOR :
R[0] = R[0] K[i]
Cipher menghasilkan keystream yang panjangnya 228 bit untuk kemudian dienkripsi dengan setiap
frame.


4.11. Cipher Blok (Block Cipher)
Rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama, biasanya 64-bit atau
lebih. Kemudian setiap blok di-enkripsi dengan bit-bit kunci yang panjangnya sama dengan panjang
bit dalam blok plainteks. Algoritma cipher blok menggabungkan beberapa teknik kriptografi klasik
dalam proses enkripsi sehingga dapat menjadi super-enkripsi.
1. Substitusi
Menggantikan satu atau sekumpulan bit pada blok plainteks tanpa merubah urutannya.
2. Transposisi atau permutasi
Memindahkan atau menggeser posisi bit pada blok plainteks berdasarkan aturan tertentu.
3. Ekspansi
Memperbanyak jumlah bit pada blok plainteks berdasarkan aturan tertentu. Misal 32-bit
menjadi 48-bit.
4. Kompresi
Kebalikan dari ekspansi, jumlah bit pada blok plainteks dimampatkan berdasarkan aturan
tertentu.
Tahun 1949, Shannon mengemukakan dua prinsip (properties) penyandian (encoding) data dalam
makalahnya yang berjudul Communication Theory of Secrecy Systems.
Kedua prinsip tersebut digunakan dalam perancangan cipher blok yang kuat.

1. Confusion
Menyembunyikan hubungan apapun antara plainteks, cipherteks dan kunci. Hal ini akan
membuat kriptanalis frustasi untuk mencari pola-pola yang muncul pada cipherteks.
Confusion akan membuat hubungan statistik plainteks, cipherteks dan kunci menjadi rumit.
2. Diffusion
Menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin cipherteks
sehingga perubahan pada cipherteks tidak dapat diprediksi.
28

Untuk mendapatkan keamanan yang tinggi, prinsip confusion dan diffusion diulang berkali-kali pada
tiap-tiap blok enkripsi dengan kombinasi yang berbeda.

4.12. Electronic Code Book (ECB)
Pada mode ini, setiap blok plainteks P
i
dienkripsi secara individual dan independen menjadi blok
cipherteks C
i
.
Enkripsi :
Dekripsi :
Istilah CODE BOOK dalam ECB muncul dari fakta bahwa blok plainteks yang sama selalu menjadi
blok cipherteks yang sama, maka dimungkinkan membuat buku kode plainteks dan cipherteks yang
berkoresponden
Namun semakin besar ukuran blok, maka semakin besar pula ukuran buku kodenya. Misal jika blok
berukuran 64-bit, maka buku kode terdiri dari 2
64
1 buah kode (entry), yang berarti terlalu besar
untuk disimpan. Lagipula setiap kunci memiliki buku kode yang berbeda.
Misalkan plainteks (dalam biner) adalah :
10100010001110101001
Bagi plainteks menjadi blok-blok yang berukuran 4 bit :
1010 0010 0011 1010 1001
Atau dalam notasi HEX menjadi :
A 2 3 A 9
Misal kunci (harus sama dengan panjang blok plainteks) yang digunakan adalah : 1011 (HEX : B)
Dapat dilakukan fungsi enkripsi sederhana dengan meng-XOR-kan blok plainteks dengan kunci,
kemudian geser secara wrapping bit-bit hasil enkripsi 1 posisi ke kiri.

Plainteks : 10100010001110101001 (HEX : A23A9)
Cipherteks : 00100011000100100100 (HEX : 23124)
Catatlah bahwa blok palinteks yang sama selalu dienkripsi menjadi blok cipherteks yang sama atau
identik. Pada contoh di atas, blok 1010 muncul 2 kali dan selalu dienkripsi menjadi 0010.
29

Contoh yang lebih mudah, misalkan pesan :
KUTU BUKU DI LEMARIKU
Dibagi menjadi blok-blok yang terdiri dari dua huruf (dengan menghilangkan semua spasi) :
KU TU BU KU DI LE MA RI KU
Terlihat blok KU akan dienkripsi menjadi blok cipherteks yang sama, Keuntungan Mode ECB :
1. Karena tiap blok plainteks dienkripsi secara independen, maka tidak perlu mengenkripsi file
secara linear. Kita dapan mengenkripsi 5 blok pertama, lalu blok-blok akhir, kembali ke blok-
blok tengah dan seterusnya.
Mode ECB cocok untuk mengenkripsi arsip (file) yang diakses secara acak, misalnya arsip
basis data. Jika basis data dienkripsi menggunakan ECB, maka sembarang record dapat
dienkripsi atau didekripsi secara independen/acak dari record lainnya (dengan asumsi setiap
record mempunyai panjang data yang sama)
Jika mode ECB dikerjakan dengan prosesor paralel (multiple processor / multiple core
processor), maka setiap prosesor dapat melakukan enkripsi atau dekripsi blok plainteks yang
berbeda dalam waktu yang bersamaan (multi processing).
2. Jika salah satu atau lebih bit pada blok cipherteks mengalami kesalahan, maka kesalahan ini
hanya mempengaruhi cipherteks yang bersangkutan pada waktu dekripsi. Blok-blok
cipherteks lainnya bila didekripsi tidak terpengaruh oleh kesalahan bit cipherteks tersebut.
Kelemahan ECB
1. Karena bagian plainteks sering berulang (contoh:dari,yang,ini,itu) sehingga terdapat blok-
blok plainteks yang sama, maka hasil enkripsi menghasilkan blok cipherteks yang sama.
Untuk mengurangi kelemahan ini, gunakan ukuran blok yang besar, misal 64-bit atau lebih
sehingga mampu menghilangkan kemungkinan blok-blok yang identik.
2. Pihak yang tidak baik dapat memanipulasi cipherteks untuk mengambil membodohi atau
mengelabui penerima pesan. Dengan cara menghilangkan atau menambahkan blok cipherteks.
P : UANG DITRANSFER LIMA SATU JUTA RUPIAH

UA NG DI TR AN SF ER LI MA SA TU JU TA RU PI AH
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16

UA NG DI TR AN SF ER SA TU JU TA RU PI AH
C1 C2 C3 C4 C5 C6 C7 C10 C11 C12 C13 C14 C15 C16
30


Kondisi : Kriptanalis berhasil mendekripsi dan membuat tabel blok keseluruhan blok
cipherteks menjadi plainteks
Kedua kelemahan di atas dapat diatasi dengan mengatur enkripsi tiap blok individual
bergantung pada semua blok-blok sebelumnya. Dengan cara ini blok plainteks yang identik
akan menghasilkan blok cipherteks yang berbeda sehingga manipulasi cipherteks mungkin
menghasilkan pesan hasil dekripsi yang tidak bermakna.

4.13. Cipher Block Chaining (CBC)
Mode ini menerapkan mekanisme umpan balik (feedback) pada sebuah blok. Dimana hasil
enkripsi blok sebelumnya di-feedback-kan ke dalam enkripsi blok berikutnya. Dengan CBC,
setiap blok cipherteks bergantung pada seluruh blok plainteks sebelumnya. Untuk dekripsi,
blok cipherteks yang akan diproses dimasukkan dalam fungsi dekripsi, kemudian meng-XOR-
kan hasilnya dengan blok cipherteks sebelumnya. Hal ini disebut dengan umpan-maju
(feedforward) apda akhir proses dekripsi.
Pada enkripsi blok pertama, C
0
= IV (INITIALIZATION VECTOR).
IV digunakan untuk menggantikan blok cipherteks sebelumnya (C
0
).
IV dapat diberikan oleh pengguna atau secara otomatis acak oleh program.
Pada dekripsi, blok plainteks pertama diperoleh dengan cara meng-XOR-kan IV dengan hasil
dekripsi terhadap blok cipherteks pertama.
IV tidak perlu rahasia.
Penggunaan IV(iv) untuk enkripsi :




Penggunaan IV untuk dekripsi :



Dapat diperhatikan bahwa enkripsi terhadap blok i adalah fungsi dari semua plainteks dari blok 0
sampai blok i-1, sehingga blok plainteks yang sama menghasilkan blok cipherteks yang berbeda
hanya jika blok plainteks sebelumnya berbeda.
Jika blok plainteks sebelumnya ada yang sama, maka ada kemungkinan cipherteksnya sama. Untuk
mencegah hal ini, maka digunakan IV yang merupakan data acak sebagai blok pertama.

31

IV tidak mempunyai makna, hanya digunakan untuk membuat tiap blok cipherteks menjadi unik.
Contoh Kasus :
P : 1010 0010 0011 1010 1001
K : 1011
Fungsi Enkripsi (E) : XOR kan blok-blok P dengan K , kemudian geser secara wrapping bit-bit hasil
enkripsi ke kiri 1 bit.
iv : 0000
Tahap 1a : XOR-kan plainteks dengan cipherteks sebelumnya (dalam hal ini iv karena yang akan
di-XOR kan adalah blok pertama)
Tahap 1b : Enkripsikan dengan Key
Tahap 1c : Geser hasil tahap 1b ke kiri 1 bit sehingga menjadi 0010 C
1

Tahap 2a : XOR-kan plainteks dengan cipherteks sebelumnya
Tahap 2b : Enkripsikan dengan Key
Tahap 2c : Geser hasil tahap 1b ke kiri 1 bit sehingga menjadi 0111 C
2

Dan seterusnya sehingga Plainteks :A23A9 menjadi Cipherteks 27FBF dengan metode CBC
Dapat dilihat bahwa ternyata dengan metode CBC, plainteks A dapat menghasilkan cipherteks 2
atau B penerapan prinsip DIFFUSION
Keuntungan Mode CBC :
Karena blok-blok plainteks yang sama tidak mengha-silkan blok-blok cipherteks yang sama, maka
kriptanalisis menjadi lebih sulit. Inilah alasan utama digunakannya mode CBC.
Kelemahan Mode CBC :
Pada proses enkripsi, karena blok cipherteks yang dihasilkan bergantung pada blok-blok cipherteks
sebelumnya, maka kesalahan 1 bit pada sebuah blok plainteks akan merambat pada blok berikutnya.
Tetapi kesalahan yang terjadi pada proses enkripsi tadi tidak terjadi pada proses dekripsi. Kesalahan 1
bit pada blok cipherteks hanya mempengaruhi blok plainteks yang berkoresponden dan 1 bit pada
blok plainteks berikutnya (pada posisi bit yang berkoresponden pula). Kesalahan bit cipherteks
biasanya terjadi karena adanya gangguan (noise) saluran komunikasi data selama transmisi atau
malfunction pada media penyimpanan.
Persoalan keamanan yang muncul pada CBC
1. Karena blok cipherteks mempengaruhi blok-blok berikutnya, pihak lawan dapat
menambahkan blok cipherteks tambahan pada akhir pesan terenkripsi tanpa terdeteksi. Hal ini
menghasilkan blok plainteks tambahan pada waktu dekripsi.Pengirim pesan harus
menstrukturkan plainteksnya sehingga tahu mana saja ujung pesan sehingga dapat mendeteksi
adanya blok tambahan
32

2. Pihak lawan dapat mengubah 1 atau beberapa bit pada suatu blok cipherteks, tetapi hal ini
hanya mempengaruhi blok plainteks hasil dekripsinya dan satu bit kesalahan pada plainteks
berikutnya.

4.14. Cipher Feedback (CFB)
Jika metode sebelumnya (CBC) diterapkan untuk transmisi data, maka enkripsi tidak dapat dilakukan
bila blok plainteks yang diterima belum lengkap.
Misal : Bila pengiriman data dilakukan setiap kali karakter di-input-kan dari terminal komputer ke
host.
Pada metode CFB, data dienkripsikan dalam unit yang lebih kecil daripada ukuran blok.
Unit yang dienkripsikan dapat berupa bit per bit (seperti cipher aliran), 2-bit, 3-bit, dst.
Bila unit yang dienkripsikan 1 karakter setiap kalinya, maka mode CFB-nya disebut CFB 8-bit.
Secara umum CFB p-bit mengenkripsi plainteks sebanyak p-bit setiap kalinya dengan syarat :
p n (n = ukuran blok)
Sehingga dapat disimpulkan CFB mengenkripsi cipher blok seperti pada cipher aliran.
Metode CFB membutuhkan sebuah antrian (queue) yang berukuran sama dengan ukuran blok
masukan.
Contoh : CFB 8-bit yang bekerja pada blok berukuran 64-bit (habis dibagi 8-bit)
Langkah proses enkripsi CFB dapat dijelaskan sebagai berikut :
1. Antrian diisi dengan iv (initialization vector) seperti pada mode CBC.
2. Enkripsikan antrian dengan kunci K.
3. Nilai bit (8-bit) dari byte/karakter paling kiri dari hasil enkripsi berlaku sebagai keysteram
yang kemudian di-XOR-kan dengan nilai bit (8-bit) karakter pertama dari plainteks sehingga
menjadi karakter (8-bit) pertama dari cipherteks. Karakter cipherteks ini dikirim (pada
aplikasi komunikasi data) atau disimpan (pada aplikasi penyimpanan data).
4. Salinan dari karakter cipherteks kemudian dimasukkan kedalam antrian dari sebelah kanan.
Sehingga seluruh karakter yang ada pada antrian ikut tergeser ke kiri dan menggantikan
karakter 8-bit pertama (paling kiri) yang telah digunakan.
5. Proses berulang kembali untuk blok-blok selanjutnya.
33


Langkah proses dekripsi CFB dapat dijelaskan sebagai berikut :
1. Antrian diisi dengan iv (initialization vector) seperti pada mode CBC.
2. Enkripsikan antrian dengan kunci K.
3. Nilai bit (8-bit) dari byte/karakter paling kiri dari hasil enkripsi berlaku sebagai keysteram
yang kemudian di-XOR-kan dengan nilai bit (8-bit) karakter pertama dari cipherteks sehingga
menjadi karakter (8-bit) pertama dari plainteks.
4. Salinan blok cipherteks yang tadinya telah didekripsi kemudian dimasukkan kedalam antrian
dari sebelah kanan. Sehingga seluruh karakter yang ada pada antrian ikut tergeser ke kiri dan
menggantikan karakter 8-bit pertama (paling kiri) yang telah digunakan.
5. Proses diulang untuk blok-blok selanjutnya.


Seperti pada CBC, mode CFB menggunakan skema umpan-balik dengan mengaitkan seluruh blok
plainteks bersama-sama sehingga cipherteks bergantung pada semua blok plainteks sebelumnya.
34

iv pada CFB tidak perlu dirahasiakan. iv harus unik untuk setiap pesan, sebab iv yang sama untuk
setiap pesan yang mermeda akan menghasilkan keystream yang sama.
Perambatan kesalahan yang terjadi pada proses enkripsi, bila terdapat kesalahan 1-bit pada blok
plainteks maka akan merambat pada blok-blok cipherteks yang berkoresponden dan blok-blok
cipherteks selanjutnya pada proses enkripsi. Tetapi pada proses dekripsi, blok yang terpengaruh hanya
yang berkorespondensi dan 1 blok setelahnya.

4.15. Output Feedback (OFB)
Mode OFB mirip dengan mode CFB, perbedaannya terletak pada karakter p-bit paling kiri
hasil enkripsi terhadap antrian disalin menjadi elemen posisi paling kanan di antrian.


Perambatan kesalahan yang terjadi pada proses enkripsi, bila terdapat kesalahan 1-bit pada blok
plainteks maka akan merambat pada blok-blok cipherteks yang berkoresponden saja. Begitu pula
dengan proses dekripsi.
Karakteristik kesalahan yang dimiliki OFB cocok untuk transmisi analog yang di-digitisasi, seperti
suara atau video.Dalam hal ini kesalahan 1-bit dapat ditolelir, tetapi penjalaran kesalahan tidak
dibolehkan.
4.16. Prinsip Perancangan Cipher Blok
Perancangan algoritma kriptografi yang berbasis blok mempertimbangkan beberapa prinsip berikut :
1. Prinsip Confusion dan Diffusion dari Shannon
2. Cipher berulang (Iterated Cipher)
3. Jaringan Feistel (Feistel Network)
4. Kunci Lemah (Weak Key)
5. Kotak-S (S-box)
35

a. PPCB 1. Confusion dan Diffusion dari Shannon
Confusion : Menyembunyikan hubungan apapun antara plainteks, cipherteks dan kunci. Hal
ini akan membuat kriptanalis frustasi untuk mencari pola-pola yang muncul pada cipherteks.
Confusion akan membuat hubungan statistik plainteks, cipherteks dan kunci menjadi rumit.
Diffusion : Menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin
cipherteks sehingga perubahan pada cipherteks tidak dapat diprediksi. Untuk mendapatkan
keamanan yang tinggi, prinsip confusion dan diffusion diulang berkali-kali pada tiap-tiap blok
enkripsi dengan kombinasi yang berbeda.
b. PPCB 2. Cipher Berulang (Iterated Cipher)
Fungsi transformasi sederhana yang mengubah plainteks menjadi cipherteks diulang sejumlah
kali.
Pada setiap putaran digunakan subkey atau kunci putaran (roundkey) yang dikombinasikan
dengan plainteks. Plainteks dinyatakan dengan C
0
dan cipherteks dinyatakan dengan C
r

Secara matematis cipher berulang dinyatakan sebagai
i = 1,2,.,r (r adalah jumlah putaran)
K
i
= subkey pada putaran ke-i
f = fungsi transformasi (didalamnya terdapat fungsi substitusi, permutasi, dan/atau
ekspansi, kompresi).

c. PPCB 3. Jaringan Feistel (Feistel Network)
Hampir semua algoritma cipher blok bekerja dalam model Jaringan Feistel. Jaringan Feistel
ditemukan oleh Horst Feistel tahun 1970. Model Jaringan Feistel adalah sebagai berikut :
1. Bagi blok yang panjangnya n-bit menjadi 2 bagian. Kiri (L) dan kanan (R), yang masing-
masing panjangnya n/2 (dengan syarat n harus genap)
2. Definisikan cipher blok berulang dimana hasil dari putaran ke-I ditentukan dari hasil putaran
sebelumnya, yaitu :
L
i
= R
i-1

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


Plainteks adalah gabungan L dan R awal, atau secara formal dinyatakan dengan (L
0
,R
0
).
Sedangkan cipherteks didapatkan dari L dan R hasil dari putaran terakhir setelah terlebih dahulu
dipertukarkan, atau secara formal dinyatakan sebagai (R
r
,L
r
)
Jaringan Feistel banyakdipakai dalam algoritma kriptografi seperti DES (Data Encryption Standard),
LOKI, GOST, FEAL, Lucifer, Blowfish, Khufu, Khafre dll karena model ini bersifat REVERSIBLE
untuk proses enkripsi dan dekripsi.
Sifat REVERSIBLE ini membuat kita tidak perlu membuat algoritma baru untuk mendekripsi
cipherteks menjadi plainteks. Karena operator XOR mengkombinasikan setengah bagian kiri dengan
hasil dari fungsi transformasi f, maka persamaan berikut pasti benar :

Sifat REVERSIBLE tidak tergantung dengan fungsi f sehingga fungsi f dapat dibuat serumit mungkin

d. PPCB 4. Kunci Lemah (Weak Key)
Kunci lemah adalah kunci yang menyebabkan tidak adanya perbedaan antara enkripsi dan
dekripsi.
Dekripsi terhadap cipherteks tetap menghasilkan plainteks semula, namun enkripsi 2 kali
berturut-turut terhadap plainteks akan menghasilkan kembali plainteksnya
Misalkan K
L
adalah kunci lemah, E adalah fungsi enkripsi, D adalah fungsi dekripsi, P adalah
plainteks dan C adalah cipherteks, maka persamaan berikut menunjukkan fenomena kunci
lemah :
EKZ(P) = C
DKL(C) = EKZ(C) = P
Cipher blok yang bagus tidak mempunyai kunci lemah. Meskipun demikian, algortima yang
mempunyai sedikit kunci lemah seperti DES tidak begitu masalah, karena jumlah kunci lemah
itu relatif sangat kecil dibandingkan jumlah kunci keseluruhan.

37

e. PPCB 5. Kotak-S (S-Box)
Kotak-S adalah MATRIKS yang berisi substitusi sederhana yang memetakan suatu atau lebih
bit dengan satu atau lebih bit yang lain.
Pada kebanyakan algoritma cipher blok, Kotak-S memetakan m-bit masukan menjadi n-bit
keluaran, sehingga kotak-S dinamakan kotak m x n S-Box.
Kotak-S merupakan satu-satunya langkah nirlanjar didalam algoritma, karena operasinya
adalah LOOK-UP TABLE.Masukan dari operasi LOOK-UP TABLE dijadikan sebagai
indeks Kotak-S dan keluarannya adalah entry didalam Kotak-S.
Contoh : Kotak-S dalam DES adalah 6x4 S-Box yang berarti memetakan 6 bit masukan menjadi 4
keluaran. Salah satu Kotak-S yang ada dalam algoritma DES :
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13


Baris diberi nomor 0 sampai 3
Kolom diberi nomor 0 sampai 13
Masukan untuk proses substitusi adalah 6 bit,
b
1
b
2
b
3
b
4
b
5
b
6

Nomor baris dari tabel ditunjukkan oleh string bit b
1
b
6

Nomor kolom ditunjukkan oleh string bit b
2
b
3
b
4
b
5

Misalkan masukan adalah 110100
Nomor baris tabel = 10 (baris nomor 2 S-Box)
Nomor kolom tabel = 1010 (kolom nomor 10 S-Box)




Sehingga substitusi untuk 110100 adalah ENTRY pada baris nomor 2 dan kolom nomor 10 yaitu
angka 4 atau 0100
38

Perancangan S-Box menjadi isu penting karena S-Box harus dirancang sedemikian rupa hingga
kekuatan kriptografinya bagus dan mudah di-implementasikan.
Ada 4 cara pendekatan yang dapat digunakan dalam mengisi S-Box :
1. Dipilih secara acak
Untuk S-Box yang kecil, cara pengisian secara acak tidak aman, namun untuk S-Box yang
besar cara ini cukup bagus
2. Dipilih secara acak lalu diuji
Sama seperti cara no.1, namun nilai acak yang dibangkitkan diuji apakah memenuhi sifat
tertentu
3. Dibuat Oleh Orang (Man-Made)
Entry didalam S-Box dibangkitkan dengan teknik yang lebih intuitif.
4. Dihitung Secara Matematis (Math-Made)
Entry dalam S-Box dibangkitkan berdasarkan prinsip matematika yang terbukti aman dari
serangan kriptanalis.

BAB V
Kriptografi Kunci Publik

5.1. Konsep kripografi Kunci Publik

- Konsep kriptografi kunci-publik sederhana dan elegan, tetapi mempunyai konsekuensi
penggunaan yang hebat.
- Misalkan E adalah fungsi enkripsi dan D adalah fungsi dekripsi. Misalkan (e, d) adalah
pasangan kunci untuk enkripsi dan dekripsi sedemikian sehingga
Ed(m) = c dan Dd(c) = m
untuk suatu plainteks m dan cipherteks c.
Kedua persamaan ini menyiratkan bahwa dengan mengetahui e dan c, maka secara
komputasi hampir tidak mungkin menemukan m. Asumsi lainnya, dengan mengetahui e,
secara komputasi hampir tidak mungkin menurunkan d.
Ee digambarkan sebagai fungsi pintu-kolong (trapdoor) satu arah dengan d adalah
informasi trapdoor yang diperlukan untuk menghitung fungsi inversinya, D, yang dalam hal
ini membuat proses dekripsi dapat dilakukan.
- Konsep di atas menjadi penting bila kriptografi kunci-publik digunakan untuk
mengamankan pertukaran pesan dari dua entitas yang berkomunikasi.
Misalkan Alice berkomunikasi dengan Bob. Bob memilih pasangan kunci (e, d). Bob
mengirimkan kunci enkripsi e (kunci publik) kepada Alice melalui sembarang saluran tetapi
tetap menjaga kerahasiaan kunci dekripsinya, d (kunci privat).
39

Kemudian, Alice ingin mengirim pesan m kepada Bob. Alice mengenkripsikan pesan
m dengan menggunakan kunci public Bob, untuk mendapatkan c = Ee(m), lalu mengirimkan c
melalui saluran komunikasi (yang tidak perlu aman). Bob mendekripsi cipherteks c dengan
menggunakan kunci privatnya untuk memperoleh m = Dd(c),
Perhatikan skema komunikasi dengan kriptografi kuncipublik pada Gambar
4.2.Gambar ini memperlihatkan perbedaan mendasar sistem asimetri dengan sistem simetri.Di
sini kunci enkripsi dikirim kepada Alice melalui saluran yang tidak perlu aman (unsecure
channel). Saluran yang tidak perlu aman ini mungkin sama dengan saluran yang digunakan
untuk mengirim cipherteks.

Gambar 14.2 Enkripsi/dekripsi dengan kriptorafi kunci-publik.
- Sistem kriptografi kunci-publik juga cocok untuk kelompok pengguna di lingkungan jaringan
komputer (LAN/WAN). Setiap pengguna jaringan mempunyai pasangan kunci public dan kunci
privat yang bersuaian. Kunci publik, karena tidak rahasia, biasanya disimpan di dalam basisdata
kunci yang dapat diakses oleh pengguna lain. Jika ada pengguna yang hendak berkirim pesan ke
pengguna lainnya, maka ia ia perlu mengetahui kunci publik penerima pesan melalui basis data
kunci ini lalu menggunakannya untuk mengenkripsi pesan. Hanya penerima pesan yang berhak
yang dapat mendekripsi pesan karena ia mempunyai kunci privat.
- Dengan sistem kriptografi kunci-publik, tidak diperlukan pengiriman kunci privat melalui saluran
komunikasi khusus sebagaimana pada sistem kriptografi simetri.

Meskipun kunci publik diumumkan ke setiap orang di dalam kelompok, namun kunci publik perlu
dilindungi agar otentikasinya terjamin (misalnya tidak diubah oleh orang lain).






40

5.2. Sejarah Kriptografi Kunci Publik
- Sampai akhir tahun 1970, hanya ada sistem kriptografi simetri. Karena sistem kriptografi
simetri menggunakan kunci yang sama untuk enkripsi dan dekripsi, maka hal ini
mengimplikasikan dua pihak yang berkomunikasi saling mempercayai. Kedua pihak harus
menjaga kerahasiaan kunci (sehingga, junci enkripsi/dekripsi disebut juga secret key)
- Pada sistem kriptografi kunci-publik, kunci kriptografi dibuat sepasang, satu kunci untuk
enkripsi dan satu kunci untuk dekripsi (Gambar 14.1);
- Kunci untuk enkripsi diumumkan kepada publik oleh karena itu tidak rahasia sehingga
dinamakan kunci public (public-key), disimbolkan dengan e.
- Kunci untuk dekripsi bersifat rahasia sehingga dinamakan kunci privat (private key),
disimbolkan dengan d.
Karena ada kunci enkripsi kunci dekripsi, maka sistem kriptografi kunci-publik kadang-
kadang disebut juga sistem kriptografi asimetri.

Gambar 1.Sistem kriptografi kunci-publik.
Ket: e = public key, d = private key
Sistem kriptografi kunci-publik didasarkan pada fakta:
1. Komputasi untuk enkripsi/dekripsi pesan mudah dilakukan.
2. Secara komputasi hampir tidak mungkin (infeasible) menurunkan kunci privat, d, bila diketahui
kunci publik, e, pasangannya.
Kedua fakta di atas analog dengan:
- Perkalian vs pemfaktoran
Mengalikan dua buah bilangan prima, a b = n, mudah, tetapi memfaktorkan n menjadi faktor-faktor
primanya sulit.
Contoh: 31 47 = 1457 (perkalian)
1457 = ? ? (pemfaktoran)
- Perpangkatan vs logaritmik
Melakukan perpangkatan, y = ax, mudah, tetapi menghitung
x = a log y sulit jika a tidak diketahui.
Contoh: 125 = 248832 (perpangkatan)
x = a log 248832 = ? (logaritmik)
41


5.3. Perbandingan Kriptografi Kunci Simetri dengan Kriptografi Kunci Publik
Baik kriptografi simetri maupun kriptografi asimetri (kuncipublik), keduanya mempunyai
kelebihan dan kelemahan.
Kelebihan kriptografi simetri:
1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan
waktu yang singkat.
2. Ukuran kunci simetri relatif pendek.
3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak.
4. Algorima 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:
1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi
harus menjaga kerahasisan kunci ini.
2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
Kelebihan kriptografi kunci-publik (asimetri):
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh seiap entitas yang berkomuniaksi
(tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci
kunci privat sebagaimana pada sistem simetri.
2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang
panjang.
3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada
pesan (akan dijelaskan pada materi kuliah selanjutnya)
Kelemahan kriptografi kunci-publik (asimetri):
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 (bisa dua sampai empat kali ukuran
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 (sama seperti block cipher).
Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-
persoalan aritmetik (pemfaktoran, logaritmik, dsb) yang menjadi dasar pembangkitan kunci.


42

5.4. Aplikasi Kriptografi Kunci Publik
Aplikasi kriptogafi kunci-publik dapat dibagi menjadi 3 kategori:
1. Enkripsi/dekripsi
Seperti pada algoritma kriptografi simetri, algoritma kunci-publik dapat digunakan untuk menjaga
kerahasiaan pesan (provide confidentiality/secrecy).
Contoh algoritma: RSA, Knapsack, Rabin, ElGamal
2. Digital signatures
Algoritma kriptografi kunci-publik dapat digunakan untuk membuktikan otentikasi pesan maupun
otentikasi pengirim (provide authentication)
Contoh algoritma: RSA, DSA, ElGamal, GOST
3. Pertukaran kunci (key exchange)
Algoritma kriptografi kunci-publik dapat digunakan untuk pengiriman kunci simetri (session
keys)
Contoh algoritma: RSA, Diffie-Hellman
Beberapa algoritma kriptografi kunci-publik cocok digunakan untuk ketiga macam kategori
aplikasi (misalnya RSA), beberapa algoritma hanya ditujukan untuk aplikasi spesifik (misalya
DSA untuk digital signature).

5.5. RSA
Beberapa algoritma kriptografi kunci-publik dapat digunakan untuk ketiga macam kategori aplikasi
(misalnya RSA) beberapa algoritma hanya ditujukan untuk aplikasi spesifik (misalnya DSA untuk
digital signature). Dan konsep kriptogafu kunci-publik atau kunci asimetri telah dijelaskan pada bab 2
sebelumnya.
Kelebihan kriptografkunci-publik (asimetri) :
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang
berkomunikasi (tetapi otentikasi knci public tetap harus terjamin). Tidak ada kebutuhan
mengirim kunci privat sebagaimana pada system simetri.
2. Pasangan kunci public/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang
panjang.
3. Dapat digunakan untuk mengamankan pengirman kunci simetri
4. Beberapa algoritma kunci-publik dapat digunakan untuk memebri tanda tangan digital
pada pesan.
Kelemahan kriptogafi kunci public (asimetri) :
43

1. Enkripsi dan dekripsi data umumnya lebih lambat daripada system simetri, karena
enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi
perpangkatan yang besar.
2. Ukuran cipherteks lebih besar dari plainteks (bisa dua sampai empat kali ukuran
plainteks)
3. Ukuran kunci relative lebih besar daripada ukuran kunci simetri
4. Karena kunci public diketahui secara luas dan dapat digunakan setiap orang, maka
cipherteks tidak memberikan informasi mengenai otentikasi pengirim
5. Tidak ada algoritma kunci public yang terbukti aman (sama seperti blok cipher).
Kebanyakan algoritma mendasarkan keamannya pada suitnya memecahkan persoalan-
persoalan aritmetik yang menjadi dasar pembangkitan kunci. Kriptografi kunci-publik
juga tidak aman dari serangan man-in-the-middle attack. Orang di tengah mengintersepsi
komunikasi lalu berpura-pura sebagai salah satu pihak yang berkomunikasi untuk
mengetahui informasi rahasia.

Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma yang
paling popular adalah algoritma RSA. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan
bilangan yang besar menjadi factor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci
privat. Selama pemfaktoran bilangan besar menjadi factor-faktor prima belum ditemukan algoritma
yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin.
Algoritma RSA memiliki besaran-besaran sebagai berikut :
1. p dan q bilangan prima (rahasia)
2. n = p . q (tidak rahasia)
3. |(n) = (p-1)(q-1) (rahasia)
4. e ( kunci enkripsi ) (tidak rahasia)
5. d ( kunci dekripsi ) ( rahasia )
6. m ( plainteks ) ( rahasia )
7. c (cpherteks) ( tidak rahasia )

RSA adalah suatu blok sandi rahasia tempat teks asli dan teks rahasia merupakan bilangan
bulat antara 0 dan n-1 untuk beberapa n. Enkripsi dan dekripsi berasal dari beberapa bentuk berikut
ini, untuk beberapa blok teks asli M dan blok teks rahasia C.
C = M mod n
44

M = C
d
mod n = (M
e
)
d
mod n = M
ed
od n
Blok pengirim meupun penerima harus mengetahui nilai n dan e, dan hanya penerima saja
yang mengetahui nilai d. ini merupakan algoritma enkripsi kunci umum dengan kunci umum sebesar
KU = {e,n} dan kunci khusus sebesar KR = {d,n}. Agar algoritma ini bisa memenyhi syarat sebagai
enkripsi kunci umum yang baik, maka harus memenuhi ketentuan-ketentuan seperti berikut :
1. kemungkinan menemukan nilai e,d,n sedemikian rupa sehingga M
ed
= M mod n untuk semua
M < n
2. relative mudah menghitung M
e
dan C
d
untuk semua nilai M < n
3. tidak mudah menghitung menentukan d, yang diberi e dan n.
dua ketentuan pertama bisa terpenuhi dengan mudah. Sedangkan ketentuan ketiga baru bisa terpenuhi
untuk nilai e dan n yang besar.
- Pembangkitan Kunci
o Memilih dua bilangan prima p, q . bilangan ini harus cukup besar (minimal 100 digit)
o Menghitung n = p . q. Bilangan n disebut parameter security
(sebaiknya p q, sebab jika p = q maka n = p
2
sehingga p dapat diperoleh dengan
menarik akar pangkat dua dari n)
o Menghitung (n) = (p-1)(q-1).
o Memilih bilangan bulat e dengan algoritma Euclid yaitu gcd((n),e)=1; dimana 1< e
< (n).
o Menghitung d dengan rumus d = e
-1
mod (n)
Atau e . d 1 (mod (n)).
Perhatikan bahwa e . d 1 (mod (n)) ekivalen dengan e . d = 1 + k (n), sehingga
secara sederhana d dapat dihitung dengan :
d = ( 1 + k . (n)) / e
o Kunci umum (kunci public) adalah KU = {e,n}
o Kunci pribadi (kunci privat adalah KR = {d,n}
Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada perhitungan enkripsi/dekripsi
- Enkripsi
B mengenkripsi message M untuk A, yang harus dilakukan B :
o Teks asli dengan syarat M < n
o Ambil kunci public A yang otentik (n,e)
o Representasikan message sebagai integer M dalam interval [0,n-1]
45

o Teks Rahasia didapat dari C = M
e
(mod n)
o Kirim C ke A
- Dekripsi
Untuk mendekripsi, A melakukan
o Gunakan kunci pribadi d untuk menghasilkan M
o Teks rahasia adalah C
o Teks asli didapat dari M = C
d
(mod n)

5.6. ElGamal
digunakan untuk enkripsi dan deskripsi. ElGamal digunakan dalam perangkat lunak sekuriti yang
dikembangkan oleh GNU, program PGP, dan pada sistem sekuriti lainnya. Kekuatan algoritma ini
terletak pada sulitnya menghitung logaritma diskrit.
Algoritma Elgamal tidak dipatenkan.Tetapi, algoritma ini didasarkan pada algoritma Diffie
Hellman, sehingga hak paten algoritma Diffie Hellman juga mencakup algoritma ElGamal.Karena
hak paten algoritma Diffie Hellman berakhir pada bulan April 1997, maka algoritma ElGamal dapat
diimplementasikan untuk aplikasi komersil.

Besaran-besaran yang digunakan di dalam algoritma ElGamal:

1. Bilangan prima, p (tidak rahasia)
2. Bilangan acak, g ( g< p) (tidak rahasia) 3. Bilangan acak, x (x < p) (rahasia) 4.M (plainteks)
(rahasia) 5.a dan b (cipherteks) (tidak rahasia) Prosedur Membuat Pasangan Kunci
Pilih sembarang bilangan prima p.
Pilih dua buah bilangan acak, g dan x, dengan syarat g < p dan 1 x p 2. Hitung y = gx mod p.
Kunci publik adalah y, kunci rahasia adalah x. Nilai g dan p tidak dirahasiakan dan dapat diumumkan
kepada anggota kelompok. Enkripsi
Plainteks disusun menjadi blok-blok m1, m2, ,sedemikian sehingga setiap blok merepresentasikan
nilai di dalam rentang 0 sampai p 1.
Pilih bilangan acak k, yang dalam hal ini 0 k p 1, sedemikian sehingga k relatif prima dengan p
1.
Setiap blok m dienkripsi dengan rumus
a = gk mod p
b = ykm mod p
Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran
plainteksnya.

Dekripsi

Untuk mendekripsi a dan b digunakan kunci rahasia, x, dan plainteks m diperoleh kembali dengan
persamaan

m = b/ax mod p
Catatlah bahwa karena
ax gkx (mod p)
46


maka

b/ax ykm/ax
gxkm/gxk
m (mod p)

yang berarti bahwa plainteks dapat ditemukan kembali dari pasangan cipherteks a dan b.

Flowchart sebagai berikut:



Contoh

james hetfield ingin membangkitkan pasangan kuncinya. james hetfieldmemilih p = 2357, g = 2, dan
x = 1751. Kemudian menghitung :
y = gx mod p = 21751 mod 2357 = 1185

Jadi kunci publiknya ( y = 1185, g = 2, p = 2357 ) dan kunci privatnya ( x = 1751, p = 2357 ).
Enkripsi

Misalkan lars ulrich ingin mengirim plainteks m = 2035 (nilai m masih berada di dalam selang [ 0,
2357 1 ] ). lars ulrich memilih bilangan acak k = 1520 ( nilai k masih berada di dalam selang [ 0,
2357 1 ] ). Kemudian lars ulrichmenghitung
a = gk mod p = 21520 mod 2357 = 1430
b = ykm mod p = 11851520 2035 mod 2357 = 697
47


Jadi, cipherteks yang dihasilkan adalah (1430, 697). lars ulrich mengirim cipherteks ini ke james
hetfield.

Dekripsi

james hetfield mendeskripsi cipherteks dari lars ulrich dengan melakukan perhitungan sebagai
berikut :
1/ax = (ax) 1 = a p 1 x mod p = 1430605 mod 2357 = 872
m = b/ax mod p = 697 872 mod 2357 = 2035

Plainteks yang didekripsi, 2035, sama dengan plainteks yang dikirim oleh lars Ulrich.


5.7. Algoritma Pertukaran Kunci Diffie-Hellman

1. Alice membangkitan bilangan bulat acak yang besar x dan mengirim hasil perhitungan berikut
kepada Bob:
X = g
x
mod n
2. Bob membangkitkan bilangan bulat acak yang besar y dan mengirim hasil perhitungan berikut
kepada Alice:
Y = g
y
mod n
3. Alice menghitung
K = Y
x
mod n
4. Bob menghitung
K = X
y
mod n

Jika perhitungan dilakukan dengan benar, maka
K = K.
Baik K dan K sama dengan g
xy
mod n.
Eve yang menyadap pembicaraan antara Alice danBob tidak dapat menghitung K. Ia hanya memiliki
informasi n, g, X dan Y, tetapi ia tidak mempunyai informasi nilai x dan y. Untuk mengetahui x atau y,
ia perlu melakukan perhitungan logaritma diskrit, yang mana sangat sulit dikerjakan.



5.8. Algoritma Knapsack

- Algoritma ini didasarkan pada persoalan 1/0 Knapsack Problem yang berbunyi:
Diberikan bobot knapsack adalah M. Diketahui n buah objek
yang masing-masing bobotnya adalah w
1
, w
2
, , w
n
. Tentukan nilai b
i
sedemikian sehingga

M = b
1
w
1
+ b
2
w
2
+ + b
n
w
n
(1)

48

yang dalam hal ini, b
i
bernilai 0 atau 1. Jika b
i
= 1, berarti objek i dimasukkan ke dalam
knapsack, sebaliknya jika b
i
= 0, objek i tidak dimasukkan.
- Dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok NP-complete.
Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polinomial.
- Ide dasar dari algoritma knapsack adalah mengkodekan pesan sebagai rangkaian solusi dari
dari persoalan knapsack. Setiap bobot w
i
di dalam persoalan knapsack merupakan kunci
rahasia, sedangkan bit-bit plainteks menyatakan b
i
.
Contoh 1: Misalkan n = 6 dan w
1
= 1, w
2
= 5, w
3
= 6,
w
4
= 11, w
5
= 14, dan w
6
= 20.
Plainteks: 111001010110000000011000
Plainteks dibagi menjadi blok yang panjangnya n, kemudian setiap bit di dalam blok
dikalikan dengan w
i
yang berkorepsonden sesuai dengan persamaan (1):
Blok plainteks ke-1 : 111001
Knapsack : 1, 5, 6, 11, 14, 20
Kriptogram : (1 1) + (1 5) + (1 6) + (1 20)
= 32
Blok plainteks ke-2 : 010110
Knapsack : 1, 5, 6, 11, 14, 20
Kriptogram : (1 5) + (1 11) + (1 14) = 30
Blok plainteks ke-3 : 000000
Knapsack : 1, 5, 6, 11, 14, 20
Kriptogram : 0
Blok plainteks ke-4 : 011000
Knapsack : 1, 5, 6, 11, 14, 20
Kriptogram : (1 5) + (1 6) = 11
Jadi, cipherteks yang dihasilkan: 32 30 0 11
- Sayangnya, algoritma knapsack sederhana di atas hanya dapat digunakan untuk enkripsi,
tetapi tidak dirancang untuk dekripsi. Misalnya, jika diberikan kriptogram = 32, maka
tentukan b
1
, b
2
, , b
6
sedemikian sehingga
32= b
1
+ 5b
2
+ 6b
3
+ 11b
4
+ 14b
5
+ 20b
6
(2)
Solusi persamaan (2) ini tidak dapat dipecahkan dalam orde waktu polinomial dengan semakin
besarnya n (dengan catatan barisan bobot tidak dalam urutan menaik). Namun, hal inilah yang
dijadikan sebagai kekuatan algoritmaknapsack.


49

5.9. Algoritma untuk Perpangkatan Modulo

- Algoritma kunci-publik seperti RSA, Elgamal, DSA, dan sebagainya, sederhana dalam
perhitungannya namun sulit dalam implementasinya dalam perangkat lunak. Hal ini karena
algoritma tersebut melakukan operasi perpangkatan dengan bilangan yang besar.
- Misalnya, pada algoritma RSA, setiap blok x
i
dienkripsi menjadi blok y
i
dengan rumus
y
i
= x
i
PK
mod r
dan blok cipherteks y
i
didekripsi kembali menjadi blok x
i

dengan rumus
x
i
= y
i
SK
mod r
Pada algoritma DSA, kunci publik y dihitung dengan rumus
y = g
x
mod p
dan sidik dijital dihitung dengan rumus
r = (g
k
mod p) mod q
- Karena bilangan bulat yang dioperasikan bisa sangat besar, maka kita perlu membuat
algoritma perpangkatan semangkus mungkin.
- Sebagai contoh, kita akan menghitung 5
123
mod 713. Jika dilakukan secara konvensional,


5.10. Tipe Data Bilangan Bulat yang Besar
- Masalah lain yang muncul adalah penggunaan bilangan bulat yang sangat besar. Nilai-nilai
parameter di dalam algoritma kriptografi kunci-publik (seperti bilangan prima p dan q)
disarankan adalah bilangan bulat yang sangat besar (panjang). Semua bahasa pemrograman
tidak menyediakan tipe data bilangan bulat yang panjang.
- Satu cara untuk mengatasi tipe data tersebut adalah membuat primitif aritmetika bilangan
bulat yang besar. Kita dapat menggunakan tipe string untuk menyimpan bilangan bulat yang
setiap angkanya diperlakukan sebagai karakter.
Misalnya, bilangan
4568732459909876451245890
akan disimpan sebagai string
4568732459909876451245890
- Selanjutnya, kita harus membuat primitif operasi aritmetika seperti a b, a + b, ab, a div b,
a mod b, dan a
b
mod c.

5.11. Pembangkitan Bilangan Prima
- Sebagian besar algoritma kunci-publik menggunakan bilangan prima sebagai salah satu nilai
parameternya. Bilangan prima yang disarankan berkuran besar sehingga penggunaan tipe data
bilangan bulat yang besar mutlak diperlukan.
- Cara lain untuk membangkitkan bilangan prima adalah:
1. Bangkitkan bilangan acak p sepanjang n angka.
50

2. Uji brute force terhadap p dengan membagi p dengan bilangan prima kurang dari 256.
Pengujian ini akan menghilangan bilangan bukan prima sebesar 80%. Yang paling
mangkus adalah membagi p dengan bilangan prima yang lebih kecil dari 2000.
3. Jika p berhasil melewati uji brute force, uji p dengan algoritma Lehmann.
Algoritma Lehmann
{ Masukan: p (yang akan diuji keprimaannya)
Keluaran: p adalah prima atau tidak prima }
(a) Bangkitkan bilangan acak a yang lebih kecil dari p.
(b) Hitung a
(p 1)/2
mod p.
(c) Jika a
(p 1)/2
/ 1 atau 1 (mod p), maka p tidak prima.
(d) Jika a
(p 1)/2
1 atau 1 (mod p), maka peluang p bukan prima adalah 50%.
4. Ulangi pengujian dengan algoritma Lehmann di atas sebanyak t kali (dengan nilai a
yang berbeda). Jika hasil perhitungan langkah (b) sama dengan 1 atau 1, tetapi
tidak selalu sama dengan 1, maka peluang p adalah prima mempunyai kesalahan
tidak lebih dari 1/2
t
.
- Bilangan acak a yang digunakan pada algoritma Lehmann dapat dipilih nilai yang kecil agar
perhitungan lebih cepat. Sedangkan jumlah pengujian yang disarankan adalah lima kali.
- Selain algoritma Lehmann, metode lain yang banyak digunakan untuk menguji bilangan
prima adalah Rabin-Miller.

Algoritma Rabin-Miller
{ Sebelum algoritma ini dijalankan, lakukan prosedur
berikut:
1. Bangkitkan bilanagn p yang akan diuji keprimaannya.
2. Hitung b, yang dalam hal ini 2
b
adalah nilai pangkat 2 terbesar yang habis
membagi p 1.
3. Hitung m sedemikian sehingga p = 1 + 2
b
m.

Masukan: p, m, dan b
Keluaran: p adalah prima atau tidak prima. }
(a) Bangkitkan bilangan acak a yang lebih kecil dari p.
(b) Nyatakan j = 0 dan hitung z = a
m
mod p.
(c) Jika z = 1 atau z = p 1, maka p lolos dari pengujian dan mungkin prima.
(d) Jika z> 0 dan z = 1, maka p bukan prima.
(e) Nyatakan j = j + 1. Jika j<b dan z=p 1, nyatakan z = z
2
mod p dan kembali ke
langkah (d). Jika z = p 1, maka p lolos pengujian dan mungkin prima.
(f) Jika j = b dan z=p 1, maka p tidak prima.

Ulangi pengujian dengan algoritma Rabin-Miller di atas sebanyak t kali (dengan nilai a yang
berbeda).
51

BAB VI
Pembangkit bilangan Acak Semu

Bilangan acak: bilangan yang tidak dapat diprediksi dan banyak digunakan di dalam kriptografi.
Misalnya untuk pembangkitan parameter kunci pada algoritma kunci-publik,
pembangkitaninitialization vector (IV) pada algoritma kunci-simetri, dan sebagainya. Tidak ada
komputasi yang benar-benar menghasilkan deret bilangan acak secara sempurna. Bilangan acak yang
dihasilkan dengan rumus-rumus matematika adalah bilangan acak semu (pseudo), karena
pembangkitan bilangannya dapat diulang kembali. Pembangkit deret bilangan acak semacam itu
disebut pseudo-random number generator (PRNG) .
6.1. Linear Congruential Generator (LCG)
Pembangkit bilangan acak kongruen-lanjar (linear congruential generator atau LCG ) adalah PRNG
yang berbentuk:
X
n
= (aX
n 1
+ b) mod m
X
n
= bilangan acak ke-n dari deretnya
X
n 1
= bilangan acak sebelumnya
a = faktor pengali
b = increment
m = modulus
Kunci pembangkit adalah X
0
yang disebut umpan (seed).













Contoh: X
n
= (7X
n 1
+ 11) mod 17,
dan X
0
= 0

n X
n

0 0
1 11
2 3
3 15
4 14
5 7
6 9
7 6
8 2
9 8
10 16
11 4
12 5
13 12
14 10
15 13
16 0
17 11
18 3
19 15
20 14
21 7
22 9
23 6
24 2

52

LCG mempunyai periode tidak lebih besar dari m, dan pada kebanyakan kasus periodenya
kurang dari itu.
LCG mempunyai periode penuh (m 1) jika memenuhi syarat berikut:
1. brelatif prima terhadap m.
2. a 1 dapat dibagi dengan semua faktor prima dari m
3. a 1 adalah kelipatan 4 jika m adalah kelipatan 4
4. m> maks(a, b, x
0
)
5. a> 0, b> 0

Keunggulan LCG terletak pada kecepatannya dan hanya membutuhkan sedikit operasi bit. Sayangnya,
LCG tidak dapat digunakan untuk kriptografi karena bilangan acaknya dapat diprediksi urutan
kemunculannya.Oleh karena itu LCG tidak aman digunakan untuk kriptografi. Namun demikian, LCG
tetap berguna untuk aplikasi non-kriptografi seperti simulasi, sebab LCG mangkus dan
memperlihatkan sifat statistik yang bagus dan sangat tepat untuk uji-uji empirik .
6.2. Pembangkit Bilangan Acak yang Aman untuk Kriptografi

Pembangkit bilangan acak yang cocok untuk kriptografi dinamakan cryptographically secure
pseudorandom generator (CSPRNG).
Persyaratan CSPRNG adalah:
1. Secara statistik ia mempunyai sifat-sifat yang bagus (yaitu lolos uji keacakan statistik).
Tahan terhadap serangan (attack) yang serius.Serangan ini bertujuan untuk memprediksi bilangan
acak yang dihasilkan.
6.3. Blum Blum Shut
CSPRNG yang paling sederhana dan paling mangkus (secara kompleksitas teoritis).BBS dibuat
pada tahun 1986 oleh Lenore Blum, Manuel Blum, dan Michael Shub.Berbasis teori bilangan.
Algoritma:
1. Pilih dua buah bilangan prima rahasia, p dan q, yang masing-masing kongruen dengan 3
modulo 4.
2. Kalikan keduanya menjadi n = pq. Bilangan m ini disebut bilangan bulat Blum
3. Pilih bilangan bulat acak lain, s, sebagai umpan sedemikian sehingga:
(i) 2 ss<n
(ii) s dan n relatif prima
kemudian hitung x
0
= s
2
mod n
4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang diinginkan:
(i) Hitung x
i
= x
i 1
2
mod n
(ii) z
i
= bit LSB (Least Significant Bit) dari x
i

Barisan bit acak adalah z
1
, z
2
, z
3
,
53

Contoh. Misalkan kita memilih p = 11 dan q = 23 sehingga n = pq = 253. Kita pilih s = 3 dan kita
hitung x
0
=3
2
mod 253 = 9. Barisan bit acak kita hasilkan sebagai berikut:
x
1
= x
0
2
mod n = 9
2
mod 253 = 81 z
1
= 1 (karena 81 ganjil, bit LSB-nya pasti 1)
x
2
= x
1
2
mod n = 81
2
mod 253 = 236 z
2
= 0 (karena 236 genap, bit LSB-nya pasti 0)
x
3
= x
2
2
mod n = 236
2
mod 253 = 36 z
1
= 0
x
4
= x
3
2
mod n = 36
2
mod 253 = 31 z
1
= 1
x
5
= x
4
2
mod n = 31
2
mod 253 = 202 z
1
= 0
dst
Barisan bit acak yang dihasilkan 10010..
6.4. CSPRNG Berbasis RSA

1. Pilih dua buah bilangan prima rahasia, p dan q, dan bilangan bulat e yang relatif prima dengan
(p 1)(q 1)
2. Kalikan keduanya menjadi n = pq
3. Pilih bilangan bulat acak lain, s, sebagai x
0
yang dalam hal ini 2 sssn
4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang diinginkan:
a. Hitung x
i
= x
i 1
e
mod n degan x
0
= s.
b. z
i
= bit LSB (Least Significant Bit) dari x
i

5. Barisan bit acak adalah z
1
, z
2
, z
3
,
6.5. CSPRNG Berbasis chaos

Teori chaos menggambarkan perilaku sistem dinamis nirlanjar yang menunjukkan fenomena
chaos. Salah satu karakteristik sistem chaos: peka pada nilai awal (sensitive dependence on initial
condition).




Sebagai hasil dari sensitifitas, kelakuan sistem yang memperlihatkan chaos muncul acak
(random), meskipun sistem chaos sendiri deterministik (dapat didefinisikan dengan baik dan tidak
punya parameter acak).
Contoh fungsi chaos: persamaan logistik (logistic map)


54

f(x) = r x(1 x)
Dalam bentuk persamaan iteratif:
x
i+1
= rx
i
(1 x
i
)
r : laju pertumbuhan ( 0 sr s 4 )
x : nilai-nilai chaos (0 sx s 1)









Sistem chaos berguna untuk pembangkitan bilangan acak
x
i+1
= rx
i
(1 x
i
)
Misal r = 4.0 dan nilai awal x
0
= 0.456
x
1
= 4.0x
0
(1 x
0
) = 0.992256
x
2
= 4.0x
1
(1 x
1
) = 0.030736

x
99
= 4.0x
98
(1 x
98
) = 0.914379
x
100
= 4.0x
99
(1 x
99
) = 0.313162
Bilangan acak dengan chaos tidak punya periode





55

BAB VII
Fungsi Hash Satu-Arah dan MAC

7.1. Fungsi Hash satu arah
Fungsi hash satu arah (one-way hash function) digunakan untuk membuat sidik jari
(fingerprint) dari suatu dokumen atau pesan X. Pesan X (yang besarnya dapat bervariasi) yang
akan di-hash disebut pre-image, sedangkan outputnya yang memiliki ukuran tetap, disebut hash-
value (nilai hash). Fungsi hash dapat diketahui oleh siapapun, tak terkecuali, sehingga siapapun
dapat memeriksa keutuhan dokumen atau pesan X tersebut. Tak ada algoritma rahasia dan
umumnya tak ada pula kunci rahasia. Contoh algoritma fungsi hash satu arah adalah MD-5 dan
SHA. Message Authentication Code (MAC) adalah salah satu variasi dari fungsi hash satu arah,
hanya saja selain pre-image, sebuah kunci rahasia juga menjadi input bagi fungsi MAC.
Fungsi hash dapat menerima masukan string apa saja. Jika string menyatakan pesan (message),
maka sembarang pesan
M berukuran bebas dikompresi oleh fungsi hash H melalui persamaan:
h = H(M)
Nama lain fungsi hash adalah:
1. Fungsi kompresi/kontraksi (compression function)
2. Cetak-jari (fingerprint)
3. cryptographic checksum
4. message integrity check (MIC)
5. manipulation detection code (MDC)

Fungsi hash satu-arah adalah fungsi hash yang bekerja dalam satu arah: pesan yang sudah diubah
menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula.
Sifat-sifat fungsi hash satu-arah adalah sebagai berikut:
1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja.
2. H menghasilkan nilai (h) dengan panjang tetap (fixedlength output).
3. H(x) mudah dihitung untuk setiap nilai x yang diberikan.
4. Untuk setiap h yang dihasilkan, tidak mungkin dikembalikan nilai x sedemikian sehingga
H(x) = h. Itulah sebabnya fungsi H dikatakan fungsi hash satu-arah (onewayhash function).
5. Untuk setiap x yang diberikan, tidak mungkin mencari y x sedemikian sehingga H(y) =
H(x).
6. Tidak mungkin mencari pasangan x dan y sedemikian sehingga H(x) = H(y).

Masukan fungsi hash adalah blok pesan (M) dan keluaran dari hashing blok pesan sebelumnya,
hi= H(Mi, hi 1)

56

Fungsi hash adalah publik (tidak dirahasiakan), dan keamanannya terletak pada sifat satu arahnya itu.
Ada beberapa fungsi hash satu-arah yang sudah dibuat orang, antara lain:
Fungsi hash yang banyak dipakai di dalam aplikasi kriptografi adalah MD5 dan SHA.
Algoritma MD5 diberikan di bawah ini, sedangka SHA akan diberikan pada materi DSS (Digital
Signature Standard).
7.2. Algoritma MD5
MD5 adalah fungsi hash satu-arah yang dibuat oleh Ron Rivest. MD5 merupakan perbaikan dari
MD4 setelah MD4 berhasil diserang oleh kriptanalis. Algoritma MD5 menerima masukan berupa
pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit.







Gambaran pembuatan message digest dengan algoritma MD5
Langkah-langkah pembuatan message digest secara garis besar adalah sebagai berikut:
1. Penambahan Bit Bit Tunggal
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 MD5 memperoses
pesan dalam blok-blok yang berukuran 512.
Pesan dengan panjang 448 bit pun tetap ditambah dengan bitbit 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 pengganjalselanjutnya ditambah lagi dengan 64 bit yang
menyatakan panjang pesan semula. Jika panjang pesan > 2
64
maka yang diambil adalah
panjangnya dalam modulo 2
64
. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit
yang ditambahkan menyatakan K modulo 2
64
. Setelah ditambah dengan 64 bit, panjang pesan
sekarang menjadi 512 bit.

57

3. Inisialisai Penyangga MD
MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total
panjang penyangga adalah 4 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil
akhir.
Keempat penyangga ini diberi namaA, B, C, dan D. Setiap penyangga diinisialisasi dengan nilai-
nilai (dalam notasi HEX) sebagai berikut:
A = 01234567
B = 89ABCDEF
C = FEDCBA98
D = 76543210
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 HMD5.











7.3. Secure hash Algorithm (SHA)
Dalam kriptografi, SHA-1 adalah sebuah fungsi has kriptografi yang dirancang oleh National
Security Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing
Standard . SHA singkatan dari Secure Hash Algorithm. Tiga SHA algoritma disusun berbeda dan
dibedakan sebagai:
1. SHA-0S
2. SHA-1
3. SHA-2
58

SHA-1 menghasilkan 160-bit digest dari pesan dengan panjang maksimum (2 64-1) bit. SHA-1 adalah
berdasarkan prinsip sama dengan yang digunakan oleh Ronald L. Rivest dari MIT dalam desain MD4
dan MD5 mencerna pesan algoritma, namun memiliki desain yang lebih konservatif.





Spesifikasi asli dari algoritma ini diterbitkan pada tahun 1993 sebagai Secure Hash Standard,
FIPS PUB 180 standar lembaga pemerintah, oleh US NIST (Lembaga Nasional Standar dan
Teknologi). Versi ini sekarang sering disebut sebagai SHA-0. Itu ditarik oleh NSA lama setelah
publikasi dan telah digantikan oleh versi revisi, yang diterbitkan pada tahun 1995 dalam FIPS PUB
180-1 dan umumnya disebut sebagai SHA-1. SHA-1 berbeda dari SHA-0 hanya oleh rotasi bitwise
tunggal dalam jadwal pesan yang fungsi kompresi , ini dilakukan, menurut NSA, untuk memperbaiki
cacat dalam algoritma asli yang mengurangi keamanan kriptografi nya. Namun, NSA tidak
memberikan penjelasan lebih lanjut atau mengidentifikasi cacat yang telah dikoreksi. Kelemahan
yang kemudian dilaporkan di kedua-SHA 0 dan SHA-1. SHA-1 tampaknya memberikan resistensi
yang lebih besar untuk serangan, mendukung pernyataan bahwa perubahan NSA meningkatkan
keamanan.
7.4. MAC dan Aplikasinya
MAC adalah fungsi hash satu arah yang menggunakan kunci rahasia (secret key) dalam
pembangkitan nilai hash. Dengan kata lain, nilai hash adalah fungsi dari pesan dan kunci. MAC
disebut juga keyed hash function atau keydependent one-way hash function. MAC memiliki sifat
dan properti yang sama seperti fungsi hash satu arah lainnya, hanya saja terdapat komponen kunci
pada MAC. Kunci ini juga akan digunakan oleh penerima pesan untuk melakukan verifikasi nilai
hash.
Secara matematis, MAC dinyatakan sebagai berikut:
MAC = CK(M)
Fungsi C memampatkan pesan M yang berukuran sembarang dengan menggunakan kunci K.
Fungsi ini bersifat many-to-one, yang berarti beberapa pesan yang berbeda dapat memiliki MAC
yang sama. Namun pada kenyataannya, menemukan pesan-pesan seperti itu sangatlah sulit
(secara komputasi).
MAC digunakan untuk otentikasi pesan tanpa perlu merahasiakan (melakukan enkripsi) pesan.
Mulamula, pengirim pesan melakukan perhitungan MAC dari pesan yang akan ia kirim dengan
menggunakan kunci rahasia K. Dalam hal ini diasumsikan bahwa pengirim dan oenerima pesan
sudah berbagi kunci rahasia. Kemudian, MAC yang diperoleh ini dilekatkan pada
pesan.Selanjutnya, pesan dikirim bersama-sama dengan MAC ke penerima.

59

Penerima kemudian akan menggunakan kunci K yang sama untuk menghitung MAC pesan
dan membandingkannya dengan MAC yang ia terima. Jika kedua MAC ini sama, maka dapat
disimpulkan bahwa pesan dikirim oleh orang yang seharusnya dan tidak terjadi pengubahan isi
pesan selama transmisi. Kesimpulan tersebut dapat diambil berdasarkan dua kondisi berikut:
- Jika pesan tidak berasal dari orang yang seharusnya, MAC yang dihitung penerima tidak akan
sama dengan MAC yang ia terima, karena pihak ketiga tidak mengetahui kunci rahasia K.
- Jika isi pesan diubah selam transmisi, maka MAC yang dihitung tidak akan sama dengan MAC
yang diterima.

7.5. Algoritma MAC
Perancangan algoritma MAC dapat dilakukan dengan dua pendekatan. Pendekatan
pertama adalah dengan menggunakan algoritma kriptografi kunci simetri berbasis blok (block
cipher), dan pendekatan kedua adalah dengan menggunakan fungsi hash satu arah. Namun dalam
pembahasan selanjutnya dalam makalah ini, pendekatan yang akan diuraikan secara lebih rinci
adalah pendekatan kedua.

Gambar di bawah ini merupakan skema yang mengilustrasikan penggunaan MAC untuk
otentikasi pesan.



























60

BAB VIII
Tandatangan Digital

8.1. Konsep tanda tangan digital
Sejak zaman dahulu, tanda-tangan sudah digunakan untuk otentikasi dokumen cetak.
Tanda-tangan mempunyai karakteristik sebagai berikut:
- Tanda-tangan adalah bukti yang otentik.
- Tanda tangan tidak dapat dilupakan.
- Tanda-tangan tidak dapat dipindah untuk digunakan ulang.
- Dokumen yang telah ditandatangani tidak dapat diubah.
- Tanda-tangan tidak dapat disangkal(repudiation).

Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk otentikasi pada data digital (pesan,
dokumen elektronik).Tanda-tangan untuk data digital dinamakan tanda-tangan digital.Tanda-tangan
digital bukanlah tulisan tanda-tangan yang di-digitisasi (di-scan).Tanda-tangan digital adalah nilai
kriptografis yang bergantung pada isi pesan dan kunci. Tanda-tangan pada dokumen cetak selalu
sama, apa pun isi dokumennya. Tanda-tangan digital selalu berbeda-beda antara satu isi dokumen
dengan dokumen lain.
Contoh
















Kepada Yth.
Bapak Dekan
Di Tempat

Dengan hormat.
Bersama surat ini saya ingin mengabarkan bahwa nilai skripsi mahasiswa yang bernama Faisal Saleh dengan NIM
13902021 adalah 86,5 atau dalam nilai indeks A. Sidang skripsi sudah dilakukan pada Hari Rabu Tanggal 21 Januari
20 Juli 2005.

Atas perhatian Bapak saya ucapkan terima kasih.


Bandung, 25 Juli 2005

Dosen Pembimbing Skripsi


Ir. Ahmad Agus

-----BEGIN PGP SIGNATURE-----

iQA/AwUAQnibsbPbxejK4Bb3EQJXvQCg8zN6UL0xnwBTPR5
FfWNt4uxh3AEAn2NC/G2VTUrLpcSyo2l/S/D/+rUl=pZeh

-----END PGP SIGNATURE-----


61

8.2. Penandatangan dengan Cara Mengenkripsi Pesan
A. Menggunakan kriptografi 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.
- namun cara ini tidak menyediakan mekanisme untuk anti-penyangkalan.
- Agar dapat mengatasi masalah penyangkalan, maka diperlukan pihak ketiga yang
dipercaya oleh pengirim/penerima.
- Pihak ketiga ini disebut penengah (arbitrase).
- Misalkan BB (Big Brothers) adalah otoritas arbitrase yang dipercaya oleh Alice dan
Bob.
- BB memberikan kunci rahasia K
A
kepada Alice dan kunci rahasia K
B
kepada Bob.
- Hanya Alice dan BB yang mengetahui K
A
, begitu juga hanya Bob dan BB yang
mengetahui K
B
.












Jika Alice menyangkal telah mengirim pesan tersebut, maka pernyataan dari BB pada pesan
yang diterima oleh Bob digunakan untuk menolak penyangkalan Alice.

Bagaimana BB tahu bahwa pesan tersebut dari Alice dan bukan dari Charlie?Karena hanya BB dan
Alice yang mengetahui kunci rahasia, maka hanya Alice yang dapat mengenkripsi pesan dengan kunci
terebut.



Jika Alice bekirim pesan P kepada Bob, maka langkah-langkahnya adalah sebagai
berikut:
1. Alice mengenkripsi pesan M untuk Bob dengan K
A
, lalu mengirim
cipherteksnya ke BB.
2. BB melihat bahwa pesan dari Alice, lalu mendekripsi pesan dari Alice dengan
K
A
.
3. BB membuat pernyataan S bahwa ia menerima pesan dari Alice, lalu
menambahkan pernyataan tersebut pada plainteks dari Alice.
4. BB mengenkripsi bundel pesan (M + S) dengan K
B
, lalu mengirimkannya
kepada Bob.
5. Bob mendekripsi bundel pesan dengan K
B
. Ia dapat membaca pesan dari Alice
(M) dan pernyataan (S) dari BB bahwa Alice yang mengirim pesan tersebut.
) (M E
A
K
) ( S M E
B
K
+
Alice BB Bob

62

8.3. Tandatangan dengan menggunakan Fungsi Hash

Penandanganan pesan dengan cara mengenkripsinya selalu memberikan dua fungsi berbeda:
kerahasiaan pesan dan otentikasi pesan. Pada beberapa kasus, seringkali otentikasi yang diperlukan,
tetapi kerahasiaan pesan tidak.Maksudnya, pesan tidak perlu dienkripsikan, sebab yang dibutuhkan
hanya keotentikan pesan saja. Algoritma kunci-publik dan fungsi hash dapat digunakan untuk kasus
seperti ini.























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
Keotentikan ini 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 3 berbeda
dengan message digest MD yang dihasilkan pada proses
verifikasi (hal ini karena kunci publik yang digunakan oleh
penerima pesan tidak berkoresponden dengan kunci privat
pengirim).
c. Bila MD = MD, ini berarti pesan yang diterima adalah pesan
yang asli (message authentication) dan orang yang mengirim
adalah orang yang sebenarnya (user authentication).
63

Dua algoritma signature yang digunakan secara luas adalah RSA dan ElGamal.
Pada RSA, algoritma enkripsi dan dekripsi identik, sehingga proses signature dan verifikasi
juga identik.
Selain RSA, terdapat algoritma yang dikhususkan untuk tanda-tangan digital, yaitu Digital
Signature Algorithm (DSA), yang merupakan bakuan (standard) untuk Digital Dignature
Standard (DSS).
Pada DSA, algoritma signature dan verifikasi berbeda

8.4. Digital Standard Algorithm (DSA)

Tanda tangan digital DSA berbentuk sepasang besar angka yang ditampilkan computer sebagai string
dari digit biner.Tanda tangan digital dihitung dengan menggunakan sejumlah aturan dan sejumlah
parameter sehingga identitas pemilik dan integritas data dapat diverifikasi. Pembuat tanda tangan
menggunakan kunci privat untuk membuat tanda tangan; sedangkan kunci publik, yang
berkorespodensi dengan kunci privat namun tidak sama, digunakan untuk memverifikasi tanda
tangan. Setiap user memiliki sepasang kunci publik dan kunci privat.Kunci publik diasumsikan
diketahui public secara umum, sedangkan kunci privat tidak pernah disebar.

DSA dapat dilihat sebagai variasi dari skema tanda tangan ElGamal. Keamanan DSA berdasarkan
pada kemampuan logaritma diskrit dalam urutan bilangan prima Z*p. Domain parameter DSA
dibangkitkan untuk setiap entitas dalam domain keamanan tertentu :
1. Pilih bilangan prima sepanjang 160 bit dan 1024 bit dengan kondisi : q | p 1
2. Pilih pembangkit g yang memiliki kelompok putaran yang unik di mana q beradadalam Z*p.
Pilih sebuah elemen h Z*p dan hitung g = h (p-1)/q mod p. Ulangi hingga g 1
3. Parameter domain adalah p, q dan g.

Setiap entitas A dalam domain, dengan domain parameter (p,q,g) melakukan :
1. pilih bilangan acak x dengan ketentuan 1 x q1
2. hitung y = gx mod p
3. kunci publik A adalah y, sedangkan kunci privat A adalah x
Untuk menandatangani pesan m, A melakukan :
1. pilih bilangan acak k dengan ketentuan 1 k q1
2. hitung X = gk mod p dan r = X mod q. Jika r = 0, lakukan langkah 1
3. hitung k-1 mod q
4. hitung e = SHA-1(m)
5. hitung s = k-1 { e+xr } mod q. Jika s = 0, lakukan langkah 1
6. tanda tangan A untuk pesan m adalah (r,s)
64

Untuk memverifikasi tanda tangan A (r,s) pada m, B mendapat salinan sah dari omain
parameter A (p,q,g) dan kunci publik y dan melakukan :
1. verifikasi bahwa r dan s berada dalam interval [1,q-1]
2. hitung e = SHA-1(m)
3. hitung w = s-1 mod q
4. hitung u1 = ew mod q dan u2 = rw mod q
5. hitung X = gu1yu2 mod p dan v = X mod q
6. tanda tangan benar jika dan hanya jika v = r






























65

BAB IX
Protokol Kriptografi

9.1. Protokol komunikasi dengan sistem kriptografi simetri
Protokol 1:
(1) Alice dan Bob menyepakati algoritma kriptografi simetri yang akan digunakan.
(2) Alice dan Bob menyepakati kunci yang akan digunakan.
(3) Alice menulis pesan plainteks dan mengenkripsinya dengan kunci menjadi cipherteks.
(4) Alice mengirim pesan cipherteks kepada Bob.
(5) Bob mendekripsi pesan cipherteks dengan kunci yang sama dan membaca plainteksnya.
- Eve mendengar semua percakapan antara Alice dan Bob pada protokol ini.
- jika Eve menyadap transmisi pesan pada langkah (4), ia harus mencoba mengkriptanalisis
cipherteks untuk memperoleh plainteks tanpa mengetahui kunci.
- jika ia mendengar pembicaraan pada langkah (1)dan (2), maka ia mengetahui algoritma
dan kunci yang digunakan, sehingga ia dapat mendekripsi cipherteks dengan kunci tsb.
- Protokol kriptografi di atas tidak bagus karena kunci harus tetap rahasia sebelum, sepanjang,
dan setelah protokol. Langkah (1) dapat dilakukan dalam mode publik, namun langkah (2)
harus dilakukan dalam mode rahasia. Sistem kriptografi kunci-publik dapat memecahkan
masalah distribusi kunci ini.

9.2. Protokol komunikasi dengan sistem kriptografi kunci publik
Protokol 2:
9.3. Alice dan Bob menyepakati algoritma kriptografi kunci-publik yang akan digunakan.
9.4. Bob mengirimi Alice kunci publiknya (kunci publik Bob).
9.5. Alice mengenkripsi pesannya dengan kunci publik Bob kemudian mengirimkannya ke
Bob
9.6. Bob mendekripsi pesan dari Alice dengan kunci rahasia miliknya (kunci rahasia Bob).

9.6.1. Pada umumnya, pengguna di jaringan menyepakati algoritma kriptografi kunci-publik yang
digunakan. Setiap pengguna jaringan mempunyai kunci publik dan kunci rahasia, yang dalam
hal ini kunci publik dipublikasikan melalui basisdata yang dapat diakses bersama. Dengan
demikian, protokol kriptografi kunci-publik menjadi lebih sederhana sebagai berikut:

Protokol 3:
(1) Alice mengambil kunci publik Bob dari basisdata kunci-publik.
(2) Alice mengenkripsi pesannya dengan kunci publik Bob kemudian mengirimkannya
kepada Bob.
(3) Bob mendekripsi pesan dari Alice dengan kunci rahasia miliknya (kunci rahasia
Bob).

9.6.2. Eve yang mendengar pembicaraan selama protokol ini akan mendapatkan kunci publik Bob,
tetapi Eve tidak dapat mendekripsi cipherteks karena ia tidak mengetahui kunci rahasia Bob.
66

9.6.3. Dalam dunia nyata, sistem kriptografi kunci-publik bukanlah pengganti sistem kriptografi
sismetri. Sistem kriptografi kunci-publik tidak digunakan untuk mengenkripsi pesan,
melainkan untuk mengenkripsi kunci pada sistem kriptografi simetri.
9.6.4. Dengan sistem kriptogfai kunci-publik, maka pertukaran kunci pada sistem kriptografi simetri
dapat dilakukan dengan protokol kriptografi kunci-publik sebagai berikut:

Protokol 4:
(1) Bob mengirimi Alice kunci publiknya.
(2) Alice membangkitkan kunci simetri K, mengenkripsikannya dengan kunci publik
(PK) Bob, dan mengirimkannya ke Bob,
E
PK
(K)
(3) Bob mendekripsi pesan dari Alice dengan menggunakan kunci rahasianya (SK) untuk
mendapatkan kembali kunci simetri K,
D
SK
(E
PK
(K)) = K
(4) Baik Alice dan Bob dapat saling berkirim pesan dengan sistem kriptografi simetri
dengan menggunakan kunci K.

- Dua gabungan sistem kriptografi yang digunakan pada protokol 4 di atas disebut hybrid
cryptosystem dan kunci sismetri yang dipertukarkan disebut session key.

Dengan protokol 4 di atas, kita katakan bahwa sistem kriptografi kunci-publik berhasil memecahkan
masalah manajemen kunci yang sangat penting, yaitu pertukaran kunci.

9.3. Protokol untuk tanda tangan digital
9.3.1.1.1.1. Menandatangani Dokumen dengan Sistem Kriptografi Simetri dan Seorang Juru Penengah.
Alice ingin menandatangani dokumen digital (pesan atau arsip) dan mengirimkannya
ke Bob.Ia meminta Trent sebagai juru penengah (misalnya pengacara) antara Alice dan Bob
(diperlukan jika sewaktu-waktu ada pertengkaran antara Alice dan Bob). Trent akan
memberikan sidik berupa sertifikasi terhadap dokumen yang dikirim oleh Alice. Sistem
kriptografi yang digunakan adalah simetri.Trent memberikan kunci rahasia K
A
kepada Alice
dan kunci rahasia K
B
kepada Bob (K
A
dan K
B
berbeda).

Protokol 5:
(1) Alice mengenkripsi dokumen dengan K
A
dan mengirimkannya kepada Trent.
(2) Trent mendekripsi dokumen dari Alice dengan K
A
.
(3) Trent menambahkan pada dokumen yang sudah didekripsi sebuah pernyataan
sertifikasi bahwa dia telah menerima dokumen itu dari Alice, kemudian
mengenkripsi keseluruhannya dengan K
B
.
(4) Trent mengirim cipherteks yang dihasilkan kepada Bob.
(5) Bob mendekripsi cipherteks dengan K
B
. Ia membaca dokumen dan sertifikasi dari
Trent bahwa Alice yang mengirimkan dokumen tersebut.
67


- Karakteristik pemberian tanda tangan dengan prtotokol 5 adalah sbb:
1. Sidik (signature) pasti otentik, karena Trent adalah juru penegah yang dipercaya, Trent
mengetahui bahwa dokumen dari Alice. Sertifikasi dari Trent berlaku sebagai bukti
bagi Bob.
2. Sidik tidak dapat digunakan lagi untuk dokumen yang lain. Jika Bob menggunakan
sertifikasi dari Trent untuk dokumen yang lain, maka kecurangan Bon ini dapat
diketahui oleh Trent sbb:
9.3.1.2. Trent meminta dokumen tersebut dari Bob.
9.3.1.3. Trent mengenkripsi dokumen tersebut dengan K
A
dan membandingkannya
dengan cipherteks dari Alice.
9.3.1.4. Jika hasil enkripsi dokumen dari Bob tidak sama dengan cipherteks dari
Alice, maka Bob telah mekakukan kecurangan.

3. Dokumen yang sudah ditandatangani tidak dapat diubah. Trent dapat membuktikan
bahwa dokumen sudah berubah dengan cara yang sama seperti 2 di atas.
4. Sidik tidak dapat disangkal. Jika Alice menyangkal bahwa dia yang mengirim
dokumen, sertifikasi dari Trent dapat menyanggah sangkalan Alice.

- Protokol 5 di atas tidak praktis karena membutuhkan pihak ketiga (Trent) untuk memberikan
sertifikasi keabsahan dokumen dan prosesnya memakan waktu.

b. Menandatangani Dokumen dengan Sistem Kriptografi Kunci-Publik.
Protokol 6:
(1) Alice mengenkripsi dokumen dengan kunci rahasianya. Ini sekaligus juga berarti
Alice telah memberikan sidik (signature) pada dokumennya.
(2) Alice mengirim dokumen yang terenkripsi kepada Bob.
(3) Bob mendekripsi dokumen dengan kunci publik Alice. Ini sekaligus juga berarti
Bob telah memverifikasi sidik pada dokumen.

- Protokol 6 tidak membutuhkan pihak ketiga (Trent) untuk memberikan tandatangan (Trent
hanya diperlukan untuk mensertifikasi bahwa kunci publik Alice memang benar milik Alice).
- Protokol 6 memiliki karakteristik yang sama seperti pada protokol 5.

c. Menandatangani Dokumen dengan Sistem Kriptografi Kunci-Publik dan Fungsi Hash Satu-
Arah
Protokol 7:
(1) Alice meringkas dokumennya menjadi message digest dengan fungsi hash satu-arah.
(2) Alice mengenkripsi message digest dengan kunci rahasianya. Hasil enkripsinya
disertakan (embedded) pada dokumen. Ini berarti Alice telah memberi sidik dijital
pada dokumennya.
68

(3) Alice mengirim dokumen yang sudah diberi sidik dijital kepada Bob.
(4) Bob meringkas dokumen dari Alice menjadi mesaage digest dengan fungsi hash yang
sama. Bob mendekripsi sidik dijital yang disertakan pada dokumen Alice. Jika hasil
dekripsinya sama dengan message digest yang dihasilkan, maka sidik dijital tersebut
sah.

- Jika dokumen yang sama ingin ditandatangani oleh dua orang (Alice dan Bob), maka orang
ketiga, Carol, dibutuhkan pada proses verifikasi. Protokolnya adalah sebagai berikut:

Protokol 8:
(1) Alice memberi sidik dijital pada message digest dari dokumen.
(2) Bob memberi sidik dijital pada message digest dari dokumen.
(3) Bob mengirimkan sidik dijitalnya kepada Alice.
(4) Alice mengirim dokumen yang sudah diberi sidik dijitalnya dan sidik dijital dari Bob
kepada Carol.
Carol memverifikasi sidik dijital Alice dan sidik dijital Bob (Carol mengetahui kunci publik Alice dan
kunci publik Bob).

9.4. Protokol untuk tanda tangan digital dengan enkripsi
9.4.1. Protokol ini dapat dianalogikan seperti pengiriman surat yang menggunakan amplop tertutup.
Tanda tangan pada surat memberikan bukti kempemilikan, hal ini sama dengan fungsi sidik
dijital pada pada dokumen elektrinis. Sedangkan amplop memberikan perlindungan
keamanan (privacy), hal ini sama dengan fungsi enkripsi pada dokumen.

9.4.2. Sidik dijital diberikan dengan menggunakan kunci rahasia pengirim (lihat protokol 6) dan
dokumen dienkripsi dengan kunci publik penerima.

9.4.3. Protokolnya adalah sbb:

Protokol 9:
(1) Alice menandatangi dokumen atau pesan (M) dengan menggunakan kunci
rahasianya (SK-A).
S
SK-A
(M)
(2) Alice mengenkripsi dokumen yang sudah ditandatangi dengan kunci publik Bob
(PK-B) dan mengirimkannya kepada Bob
E
PK-B
(S
SK-A
(M))
(3) Bob mendekripsi cipherteks yang diterima dengan kunci rahasianya (SK-B).
D
SK-B
(E
PK-B
(S
SK-A
(M))) = S
SK-A
(M))
69

(4) Bob melakukan verifikasi dengan mendekripsi hasil pada langkah 3 dengan
menggunakan kunci publik Alice dan sekaligus mendapatkan kembali dokumen yang
belum dienkripsi.
V
PK-A
(S
SK-A
(M)) = M

- Menandatangani dokumen sebelum mengenkripsikannya adalah cara yang alamiah. Dalam
kehidupan sehari-hari, kita menulis surat, menandatanganinya, dan memasukkannya ke dalam
amplop. Bila Alice memasukkan surat ke dalam amplop, kemudian menandatangani amplop,
maka keabsahannya diragukan. Jika Bob memperlihatkan surat Alice tersebut kepada Carol,
maka Carol mungkin menuduh Bob berbohong tentang isi surat tersebut.
- Alice tidak harus menggunakan menggunakan kunci publik/kunci rahasia yang sama untuk
enkripsi dan tanda tangan. Alice dapat menggunakan dua pasang kunci: sepasang untuk
enkripsi dan sepasang untuk pemberian tanda tangan.
- Misalkan Bob ingin mengkonfirmasi bahwa dia telah menerima dokumen dari Alice. Maka,
Bob mengirimkan konfirmasi tanda terima kepada Alice. Protokol pengiriman pesan tanda
terima adalah sebagai berikut:
Protokol 10:
(1) Alice menandatangi dokumen atau pesan (M) dengan menggunakan kunci
rahasianya (SK-A), mengenkripsikannya dengan kunci publik Bob (PK-B) dan
mengirimkannya kepada Bob
E
PK-B
(S
SK-A
(M))
(2) Bob mendekripsi cipherteks yang diterima dengan kunci rahasianya (SK-B),
memverifikasi sidik dijital dengan kunci publik Alice dan sekaligus mendapatkan
kembali dokumen yang belum dienkripsi.
V
PK-A
(D
SK-B
(E
PK-B
(S
SK-A
(M)))) = M
(3) Bob menandatangani dokumen (M) dengan kunci rahasianya (SK-B),
mengenkripsikannya dengan kunci publik Alice (PK-A), dan mengirimkannya ke
Alice.
E
PK-A
(S
SK-B
(M))
(4) Alice mendekripsi dokumen dengan kunci rahasianya (SK-A) dan memverifikasi sidik
dijital dengan kunci publik Bob (PK-B).
V
PK-B
(D
SK-A
(E
PK-A
(S
SK-B
(M)))) = M
Jika M yang dihasilkan sama dengan dokumen yang dikirim oleh Alice (M), maka Alice tahu bahwa
Bob menerima dokumennya dengan benar.




70

9.5. Pertukaran kunci

- Seperti yang sudah disebutkan pada bab sebelum ini, session key adalah kunci simetri yang
digunakan untuk mengenkripsi pesan selama berkomunikasi saja.
- Protokol 4 pada bab sebelum ini menyebutkan bahwa Alice (atau Bob) mengirimkan kunci
publiknya terlebih dahulu sebelum mengenkripsi session key. Dalam praktek, kunci publik
disimpan di dalam basisdata. Hal ini membuat pertukaran kunci menjadi lebih mudah dengan
protokol berikut:

Protokol 11:
(1) Alice mengambil kunci publik Bob dari basisdata.
(2) Alice membangkitkan session keyK, mengenkripsikannya dengan kunci publik (PK)
Bob, dan mengirimkannya ke Bob,
E
PK
(K)
(3) Bob mendekripsi pesan dari Alice dengan menggunakan kunci rahasianya (SK) untuk
mendapatkan kembali session keyK,

D
SK
(E
PK
(K)) = K
(4) Baik Alice dan Bob dapat saling berkirim pesan dengan sistem kriptografi simetri
dengan menggunakan kunci K.
- Pertukaran kunci dan pengiriman pesan dapat dilakukan bersamaan. Jadi, Alice dan Bob tidak
perlu menyelesaikan protokol pertukaran kunci sebelum bertukar pesan.

Protokol 12:
(1) Alice membangkitkan session key K, dan mengenkripsi pesan M dengan
menggunakan K,
E
K
(M)
(2) Alice mengambil kunci publik Bob dari basisdata.
(3) Alice mengenkripsi K dengan dengan kunci publik (PK) Bob,
E
PK
(K)
(4) Alice mengirim pesan terenkripsi bersama-sama dengan kunci terbenkripsi kepada
Bob,
E
K
(M), E
PK
(K)
(5) Bob mendekripsi menggunakan kunci rahasianya (SK) untuk mendapatkan kembali
session keyK,
D
SK
(E
PK
(K)) = K
(6) Bob mendekripsi pesan dengan menggunakan kunci K,
D
K
(E
K
(M)) = M

71

- Jika Alice ingin mengirim pesannya tidak hanya kepada Bob, tetapi juga kepada Carol dan
Dave, maka protokol pertukaran kunci dan pengiriman pesan dilakukan secara broadcast
dengan protokol berikut:

Protokol 12:
(1) Alice membangkitkan session key K, dan mengenkripsi pesan M dengan
menggunakan K,
E
K
(M)
(2) Alice mengambil kunci publik Bob, Carol, dan Dave dari basisdata.
(3) Alice mengenkripsi K masing-masing dengan dengan kunci publik Bob (PK-B),
Carol (PK-C), (PK-D),
E
PK-B
(K), E
PK-C
(K), E
PK-D
(K)
(4) Alice mengirim pesan terenkripsi bersama-sama dengan kunci terbenkripsi masing-
masing kepada Bob, Carol, dan Dave,
E
PK-B
(K), E
PK-C
(K), E
PK-D
(K), E
K
(M),
(5) Hanya Bob, Carol, dan Dave yang dapat mendekripsi kunci K dengan menggunakan
kunci rahasianya (SK) masing-masing.
(6) Hanya Bob, Carol, dan Dave yang dapat mendekripsi pesan dengan menggunakan
kunci K.

- Protokol 12 di atas dapat diimplementasikan pada jaringan store-and-forward. Dalam hal ini,
servermemforwardkan pesan terenkripsi dan kunci terenkripsi dari Alice kepada Bob, Carol,
dan Dave.

- Diffie-Hellman membuat algoritma pertukaran kunci yang keamanannya didasarkan pada
fakta bahwa menghitung logaritma diskrit sangat sulit.
Mula-mula Alice dan Bob menyepakati bilangan prima yang besar, n dan g, sedemikian
sehingga g<n. Bilangan n dan g tidak perlu rahasia.Bahkan, Alice dan Bob dapat
membicarakannya melalui saluran yang tidak aman sekalipun.
Protokol pertukaran kunci Diffie-Hellman dinyatakan dalam protokol 13 berikut:
Protokol 13:
(1) Alice memilih bilangan bulat acak yang besar x dan mengirim hasil perhitungan
berikut kepada Bob:
X = g
x
mod n
(2) Bob memilih bilangan bulat acak yang besar y dan mengirim hasil perhitungan
berikut kepada Alice:
Y = g
y
mod n
(3) Alice menghitung
K = Y
x
mod n
(4) Bob menghitung
K = X
y
mod n
72

- Jika perhitungan dilakukan dengan benar, maka K = K. Baik K dan K sama dengan g
xy
mod
n. Eve yang mendengarkan semua hal selama protokol berlangsung tidak dapat menghitung
kunci K. Ia hanya memiliki informasi n, g, X dan Y, tetapi ia tidak mempunyai informasi nilai
x dan y. Untuk mengetahui x atau y, ia perlu melakukan perhitungan logaritma diskrit, yang
mana sangat sulit dikerjakan.

- Varian dari algoritma Diffie-Hellman dikemukakan oleh Hughes sebagai berikut:
Protokol 14:
(1) Alice memilih bilangan bulat acak yang besar x dan menghitung:
K = g
x
mod n
(2) Bob memilih bilangan bulat acak yang besar y dan mengirim hasil perhitungan
berikut kepada Alice:
Y = g
y
mod n
(3) Alice mengirim hasil perhitungan berikut kepada Bob
X = Y
x
mod n
(4) Bob menghitung
z =y
-1
(balikan y dalam modulo n)
K = X
z
mod n
Jika perhitungan dilakukan dengan benar, maka K = K. Keuntungan dari protokol ini, Alice dapat
langsung mendapatkan kunci rahasia K sebelum interaksi dengan Bob.Alice dapat mengenkripsi
pesannya kepada Bob sebelum protokol pertukaran kunci selesai.
9.6. Otentikasi
Identifikasi dan otentikasi merupakan dua sarat mutlak dari teknik kriptografi yang sangat
banyak digunakan saat ini. Identifikasi adalah suatu proses verifikasi identitas suatu objek.
Sebagai contoh, ketika mengambil dana dari suatu bank dengan menggunakan kartu, yang
dilengkapi dengan saatu password yang rahasia tersebut, demikian juga dengan rekening yang
bersangkutan.
Ketika kartu dimasukkan ke dalam mesin , maka mesin tersebut akan meminta pengguna
kartu untuk memasukkan password. Jika Password yang dimasukkan benar, mesin akan
mengidentifikasikan orang tersebut benar sebagai pemilik kartu sehingga kepada orang tersebut
akan diberikan tanda bahwa yang bersangkutan dapat melanjutkannya. Sehingga teknik penting
lainnya dari kriptografi adalah otentikasi.
Otentikasi sama juga dengan indetifikasi, diantara keduanya memberikan kemampuan
dalam mengakses ke dalam teknik tertentu pula, tetapi otentikasi memiliki jangkauan yang lebih
luas sehingga tidak perlu mengidentifikasikan objeknya.






73

BAB X
Infrastruktur Kunci Publik
10.1. Sertifikasi Digital(PKI dan CA)
Cara kerja sertifikat digital (PKI dan CA)







Secara Narasi:
- Cara Kerja Sertifikasi Digital Infrastruktur Kunci Publik (Public Key Infrasstructure)
Public Key Infrastructure merupakan Kerangka kerja untuk membuat sebuah metode yang aman
untuk pertukaran informasi berdasarkan kriptografi kunci publik. Dimana dasar suatu PKI adalah
otoritas sertifikat (CA), yang mengeluarkan sertifikat digital yang mengesahkan identitas organisasi
dan individu melalui sistem publik seperti Internet.Selain itu, sertifikat ini juga digunakan untuk
menandatangani yang menjamin bahwa pesan yang belum dirusak, dimana sertifikat digital dan
infrastruktur kunci publik bergabung untuk membentuk sebuah produk, kategori kesatuan tunggal.
Sertifikat digital bertujuan untuk memastikan bahwa kunci publik yang terdapat dalam sertifikat milik
entitas untuk sertifikat yang telah diterbitkan. Tanpa sertifikat, akan mungkin untuk menciptakan
sepasang kunci baru dan mendistribusikan kunci publik, mengklaim bahwa itu adalah kunci publik
untuk hampir semua orang. Anda bisa mengirim data dienkripsi dengan kunci pribadi dan kunci
publik akan digunakan untuk mendekripsi data, tapi tidak akan ada jaminan bahwa data ini berasal
oleh orang tertentu.
Salah satu bagian infrastruktur penting dari e-business adalah Publik Key Infrastructure (PKI) dimana
harus ada satu lembaga independen yang dipercaya sebagai penyelenggara Public Key tersebut.
Lembaga ini juga dikenal dengan sebutan lembaga Certification Authority (CA).Dengan adanya
lembaga ini sehingga order, kontrak elektronik dijamin keamanannya dan secara teknis hampir tidak
mungkin untuk diubah atau dipalsukan. Dimana setiap order atau kontrak yang dikirimkan dengan
menggunakan kombinasi private key dan public key maka order atau kontrak yang sudah sampai ke
penerima baru bisa dibuka atau diketahui isinya setelah public key diverifikasi oleh lembaga CA.
74

Mengingat pentingnya lembaga CA untuk menjamin keamanan transaksi elektronik maka pemerintah
Indonesia dalam hal ini diwakili oleh Kementerian Kominfo perlu untuk segera mendorong
pengambil keputusan di pemerintah untuk membentuk lembaga ini. Dengan mengingat perannya
sebagai fasilitator maka Kominfo berperan untuk menyiapkan program realisasi lembaga CA.
Sedangkan dengan perannya sebagai regulator Kominfo perlu menyiapkan peraturan atau tata cara
penggunaan lembaga ini agar bisa digunakan secara efektif, aman, dan akurat.
Jenis jenis Sertifikat :
1. Pribadi Sertifikat
Sertifikat ini digunakan untuk otentikasi pengguna dengan server, atau untuk
mengaktifkan aman e-mail dengan menggunakan S-Mime.
2. Sertifikat server
Mengidentifikasi server yang berpartisipasi dalam komunikasi yang aman dengan
komputer lain menggunakan protokol komunikasi seperti SSL. Sertifikat ini memungkinkan
server untuk memverifikasi identitas untuk klien sertifikat server. Mengikuti format sertifikat
X.509 yang didefinisikan oleh Kriptografi Kunci Publik-Standar (PKCS)
3. Perangkat Lunak Sertifikat Penerbit
Menjelaskan bahwa Microsoft Authenticode tidak menjamin bahwa kode
ditandatangani adalah aman untuk dijalankan, tetapi menginformasikan pengguna apakah atau
tidak penerbit adalah berpartisipasi dalam infrastruktur penerbit terpercaya dan CA. Sertifikat
ini digunakan untuk menandatangani perangkat lunak untuk didistribusikan melalui Internet.
4. Sertifikat Otoritas Sertifikat
Internet Explorer 5 CA membagi ke dalam dua kategori, Root Sertifikasi Sertifikasi
Wewenang dan Menengah Wewenang. Root sertifikat yang ditandatangani sendiri, yang
berarti bahwa subjek sertifikat juga merupakan penandatangan sertifikat. Root Sertifikasi
Pihak berwenang memiliki kemampuan untuk menetapkan sertifikat untuk Intermediate
Sertifikasi Otoritas.Sebuah Intermediate Sertifikasi Otoritas memiliki kemampuan untuk
mengeluarkan sertifikat server, sertifikat pribadi, sertifikat penerbit, atau sertifikat untuk
lainnya Intermediate Sertifikasi Otoritas.
Komponen PKI:
- Otoritas Sertifikasi : otoritas sertifikasi ini bertindak sebagai akar dari kepercayaan pada
infrastruktur lunci publik dan menyediakan jasa yang mengesahkan indentitas individu ,
komputer , dan entitas lain di jaringan
- Pendaftaran Otoritas : Pendaftaran Otoritas ini disertifikasi oleh root CA untuk
menerbitkan sertifikat untuk keperluan tertentu yang diijinkan oleh root.
- Sertifikat Database : berperan untuk menyimpan sertifikat permintaan dan menerbitkan
serta mencabut sertifikat dan permintaan serifikat di CA atau RA
75

- Sertifikat Store : menyimpan dan mengeluarkan sertifikat yang tertunda dan menolak
permohonan sertifikat pada komputer local.
- Arsip Lunci Server : Menyimpan dienkripsi kunci pribadi di database sertifikat untuk
pemulihan setelah rugi
10.2. X.509
Standar X.509 mendefinisikan informasi apa yang bisa masuk ke sertifikat, dan menjelaskan
cara menuliskannya (format data). Semua sertifikat X.509 memiliki data sebagai berikut, di
samping tanda tangan:
Versi
Ini mengidentifikasi versi standar X.509 berlaku untuk sertifikat ini, yang mempengaruhi
informasi apa yang dapat ditentukan di dalamnya. Sejauh ini, tiga versi didefinisikan.
Nomor seri
Entitas yang menciptakan sertifikat bertanggung jawab untuk menetapkan itu nomor seri
untuk membedakannya dari sertifikat lainnya itu masalah. Informasi ini digunakan dalam
berbagai cara, misalnya ketika sertifikat dicabut nomor urut ditempatkan dalam Daftar
Pencabutan Sertifikat (CRL).
Tanda tangan Algoritma Identifier
Ini mengidentifikasi algoritma yang digunakan oleh CA untuk menandatangani sertifikat.
Emiten Nama
Nama X.500 dari entitas yang menandatangani sertifikat.Hal ini biasanya CA. Menggunakan
sertifikat ini berarti mempercayai entitas yang menandatangani sertifikat ini. (Perhatikan bahwa
dalam beberapa kasus, seperti root atau tingkat atas CA sertifikat, penerbit menandatangani
sertifikat sendiri.)
Masa Berlaku
Setiap sertifikat ini hanya berlaku untuk waktu terbatas.Periode ini dijelaskan oleh tanggal
mulai dan waktu dan tanggal akhir dan waktu, dan bisa sesingkat beberapa detik atau hampir
selama satu abad.Masa berlaku yang dipilih tergantung pada sejumlah faktor, seperti kekuatan
kunci privat digunakan untuk menandatangani sertifikat atau jumlah seseorang bersedia
membayar untuk sertifikat.Ini adalah periode yang diharapkan entitas dapat bergantung pada nilai
publik, jika kunci pribadi terkait belum dikompromikan.
Nama Subjek
Nama entitas yang kunci publik sertifikat mengidentifikasi.Nama ini menggunakan standar
X.500, sehingga dimaksudkan untuk menjadi unik di Internet. Ini adalah Nama Distinguished
(DN) entitas, misalnya,
CN = Jawa Duke, OU = Divisi, O = Sun Microsystems Inc, C = US
(Ini mengacu pada Common Name subyek, Unit Organisasi, Organisasi, dan Negara.)

76

Subyek Informasi Kunci Publik
Ini adalah kunci publik dari entitas yang bernama, bersama dengan pengidentifikasi algoritma
yang menentukan yang kripto kunci publik sistem kunci ini milik dan setiap parameter kunci
terkait.
X.509 Versi 1 telah tersedia sejak tahun 1988, secara luas digunakan, dan yang paling generik.
X.509 Versi 2 memperkenalkan konsep pengidentifikasi subjek dan penerbit yang unik untuk
menangani kemungkinan penggunaan kembali subjek dan / atau penerbit nama dari waktu ke
waktu. Dokumen sertifikat Kebanyakan profil sangat merekomendasikan bahwa nama tidak
digunakan kembali, dan bahwa sertifikat tidak harus menggunakan pengidentifikasi unik.
Versi 2 sertifikat tidak banyak digunakan.
X.509 Versi 3 adalah yang paling terakhir (1996) dan mendukung gagasan ekstensi, dimana
setiap orang dapat menentukan ekstensi dan memasukkannya dalam sertifikat. Beberapa
ekstensi umum digunakan saat ini adalah: KeyUsage (batas penggunaan satu kunci untuk
tujuan tertentu seperti "sign-satunya") dan AlternativeNames (memungkinkan identitas lain
untuk juga dikaitkan dengan kunci publik, DNS misalnya nama, alamat Email, IP alamat).
Ekstensi dapat ditandai penting untuk menunjukkan bahwa ekstensi harus diperiksa dan
diberlakukan / digunakan. Misalnya, jika sertifikat memiliki ekstensi KeyUsage ditandai kritis
dan set "keyCertSign" maka jika sertifikat ini disampaikan dalam komunikasi SSL, harus
ditolak, sebagai perpanjangan sertifikat menunjukkan bahwa kunci pribadi terkait hanya boleh
digunakan untuk menandatangani sertifikat dan tidak untuk digunakan SSL.
Semua data dalam sertifikat dikodekan menggunakan dua standar terkait yang disebut
ASN.1/DER. Sintaks Notasi Abstrak 1 menggambarkan data.Aturan Encoding Pasti menjelaskan
cara tunggal untuk menyimpan dan mentransfer data tersebut. Orang telah dikenal untuk
menggambarkan kombinasi ini secara bersamaan sebagai "kuat dan fleksibel" dan sebagai "samar
dan canggung".
The IETF PKIX kelompok kerja sedang dalam proses mendefinisikan standar untuk
Infrastruktur Kunci Publik Internet. Kami erat mengikuti pekerjaan mereka, dan mendukung
X.509 Certificate dan Profil CRL, yang sedang ditentukan.

10.3. Infrastruktur Kunci Publik

Infrastruktur Kunci Publik (IKP) adalah sebuah cara untuk otentikasi, pengamanan data
dan perangkat anti sangkal. Secara teknis, IKP adalah implementasi dari berbagai teknik
kriptografi yang bertujuan untuk mengamankan data, memastikan keaslian data dan pengirimnya
serta mencegah penyangkalan. Teknik-teknik kriptografi yang digunakan antara lain fungsi hash,
algoritma kriptografi simetrik, dan algoritma kriptografi asimetrik. Fungsi hash akan digunakan
bersama dengan algoritma kriptografi asimetrik dalam bentuk tanda tangan digital untuk
memastikan integritas atau keaslian data berikut pengirimnya. Algoritma kriptografi simetrik
digunakan untuk mengamankan data saat berkomunikasi. Dalam IKP penggunaan algoritma
enkripsi simetrik tidak secara langsung didefinisikan tetapi telah diimplementasikan oleh berbagai
perangat lunak melalui berbagai macam protokol yang ada. IKP diwujudkan dalam bentuk
kolaborasi antar komponen-komponennya. Wujud implementasi IKP adalah penggunaan sertifikat
digital untuk otentikasi klien.
77


IKP memiliki beberapa komponen penting yang menyusunnya. Adapun komponen-komponen
dalam IKP terdiri dari:
1. Certification Authority (CA)
2. Key Repository
3. Certificate
4. Certificate Revocation List (CRL)
5. Management Function
6. Policy Approving Authority
7. Policy Certification Authority
8. Registration Authority (RA)
9. Certification Authority (CA)

IKP memiliki beberapa subyek penting dalam pembangunannya. Adapun subyek-subyek yang
terlibat dalam IKP terdiri dari:
1. Certification Authority
Merupakan lembaga yang mengeluarkan sertifikat digital. Lembaga ini bisa berasal dari
luar (external-CA) maupun dari dalam lembaga itu sendiri (internal-CA). Adapun contoh CA
yang berasal dari luar adalah DigiCert Inc, Entrust Inc, Equifax Eecure Inc, ElobalSign Inc,
SecureTrust Corporation, Thawte Inc, dan VeriSign Inc.
2. End Entity (EE)
Merupakan individu ataupun lembaga yang bertindak sebagai pemilik sertifikat digital. EE
adalah obyek utama dalam skema IKP.
3. Registration Authority (RA)
Merupakan lembaga perantara antara CA dengan EE. Lembaga ini berfungsi
mengumpulkan data personal dari EE yang selanjutnya meminta pengeluaran sertifikat digital
ke CA untuk EE tersebut.
4. Validation Authority (VA)
Merupakan lembaga independen pihak ketiga yang berperan mengatur proses verifikasi
dan validasi sertifikat digital secara online. VA menyimpan daftar sertifikat digital yang
dikeluarkan oleh CA dan berfungsi sebagai repository database sertifikat digital. Peranan VA
saat ini masih bersifat pelengkap dalam skema IKP, karena peranannya masih dipegang
secara penuh oleh CA.
78

IKP melindungi aspek keamanan informasi yang dikirimkan saat bertransaksi. Adapun fungsi
yang dilakukan IKP dijabarkan sebagai berikut:
1. Mengotentikasi identitas. Dengan sertifikat digital yang dikeluarkan oleh IKP maka tiap pihak
dapat mengotentikasi pihak lawan dalam melakukan transaksi sehingga pihak dapat meyakini
bahwa pihak yang melakukan transaksi adalah pihak yang berhak.
2. Verifikasi integritas dokumen. Dengan adanya sertifikasi digital maka dokumen dapat diyakini
tidak mengalami perubahan selama pengiriman.
3. Jaminan privasi. Dengan protokol yang digunakan selama transmisi menggunakan sertifikat
digital maka jalur yang digunakan dalam transmisi dipastikan aman dan tidak dapat diakses oleh
pihak lain yang tidak berhak.
4. Sertifikat digital dari IKP dapat menggantikan peranan proses otentikasi user dalam sebuah
sistem.
5. Dengan menggunakan sertifikat digital dari IKP maka suatu pihak dapat menentukan transaksi
yang aman dengan menggunakan validasi kunci publik.
Dukungan anti penyangkalan. Dengan adanya validasi pada sertifikat digital maka tidak mungkin
untuk melakukan penyangkalan pada suatu transaksi yang telah dilakukan.


10.4. Microsoft Authenticode
Otentikasi dengan menggunakan sandi-lewat dan fungsi hash satu-arah.
- Misalkan Alice log on ke komputer host (misalnya automatic teller machine). Bagaimana
host tahu bahwa yang masuk adalah Alice? Secara tradisionil, sandi-lewat (password)
digunakan untuk otentikasi.
Host tidak perlu menyimpan sandi-lewat, ia hanya perlu menyimpan nilai hash dari sandi-lewat
dengan fungsi hash satu-arah. Protokol otentikasinya adalah sebagai berikut:
Protokol 15
(1) Alice mengirim sandi-lewatnya ke host.
(2) Host mengkompresi sandi-lewat dengan fungsi hash satu-arah.
(3) Host membandingkan hasil dari fungsi hash dengan nilai hash yang disimpan
sebelumnya di dalam tabel (basisdata).
- Kelemahan otentikasi dengan protokol 15 ini adalah rentan terhadap serangan dictionary
attack. Misalkan Mallory (seorang penyerang aktif yang sangat dengki) berhasil meng-hack
komputer host dan mencuri tabel data sandi-lewat yang sudah dikompres dengan fungsi hash
satu-arah. Selanjutnya Mallory menggunakan kamus yang berisi 1.000.000 sandi-lewat yang
sangat umum dipakai orang (nama jalan, tanggal kelahiran, nama anak, dsb). Ia mengkompres
seluruh entry di dalam kamus dengan fungsi hash satu-arah dan menyimpan hasilnya.
Kemudian ia membandingkan tabel data sandi-lewat yang dicuri dari host dengan hasil hash
terhadap isi kamus, dan melihat kecocokannya.
79

- Untuk membuat dictionary attack lebih sulit, sistem keamanan komputer biasanya
menambahkan garam (salt). Salt adalah rangkaian bit yang dibangkitkan secara acak dan
disambungkan dengan sandi-lewat. Kemudian sandi-lewat yang sudah disambung dengan salt
dikompres dengan fungsi hash dan hasilnya disimpan di dalam tabel. Semakin panjang salt
semakin bagus. Sistem UNIX menggunakan salt 12-bit.
2. Otentikasi dengan menggunakan sistem kriptografi kunci-publik.
- Host menyimpan tabel yang berisi kunci publik semua pengguna. Setiap pengguna memiliki
kunci rahasia yang bersesuaian dengan kunci publiknya. Protokol otentikasinya adalah
sebagai berikut:

Protokol 16
(1) Host mengirimi Alice sebuah string acak.
(2) Alice mengenkripsi string dengan kunci rahasianya dan mengirimkannya kembali ke
host beserta user-id-nya.
(3) Host mencari kunci publik Alice berdasarkan user-id yang diberikan dan mendekripsi
cipherteks dari Alice dengan kunci publik tersebut.
(4) Jika hasil dekripsi sama dengan string yang semula dikirim oleh host, maka host
mengizinkan Alice mengakses sistem.






























80

BAB XI
Manajemen Kunci

- Kekuatan sistem kriptografi secara total bergantung pada keamanan kunci. Kunci perlu
dilindungi selama fase daur hidupnya.
- Daur hidup kunci dimulai dari pembangkitan kunci (generation) sampai kunci tidak
diperlukan lagi untuk kemudian dihancurkan (destruction). Secara garis besar, daur hidup
kunci digambarkan pada Gambar 1 sbb:

Generation
Usage
Storage
Distribution
Change
Destruction

Gambar 1. Daur hidup kunci

- Tujuan manajemen kunci adalah menjaga keamanan dan integritas kunci pada semua fase di
dalam daur hidupnya.
Pada umumnya setiap kunci akhirnya diganti dengan kunci lain. Jadi, keseluruhan fase
membentuk siklus (lingkaran) karena penghancuran kunci biasanya diikuti dengan
penggantiannya dengan kunci baru (garis putus-putus).
- Manajemen kunci yang dibahas difokuskan pada algoritma kriptografi simetri karena
manajemen kunci untuk algoritma kunci-publik sangat berbeda dengan algoritma simetri.

11.1. Pembangkitan Kunci (Key Generation)
- Pembangkitan kunci pada algoritma simetri jauh lebih mudah daripada pembangkitan kunci
pada algoritma kunci-publik. Karena kunci simetri umumnya rangkaian bii atau rangkaian
karakter, maka setiap pengguna dapat membangkitkan kuncinya sendiri.
- Masalah utama yang muncul pada pembangkitan kunci adalah bagaimana membuat kunci
yang tidak dapat diprediksi. Metode yang dapat digunakan untuk menjawab hal ini adalah
dengan teknik manual (misalnya pelemparan koin/dadu), pembangkitan dari data pribadi
(misalnya PIN), atau menggunakan pembangkit bilangan acak.
- Pada algoritma kunci-publik, pembangkitan kunci merupakan masalah tersendiri, karena
pembangkitan kunci membutuhkan perhitungan matematis yang rumit. Selain itu,
pembangkitan bilangan prima yang besar juga dibutuhkan untuk membentuk kunci.
- Oleh karena itu, pada algoritma kunci-publik dibutuhkan program khusus untuk
membangkitkan kunci. Masalah yang timbul di sini adalah kepercayaan pengguna terhadap
81

program tersebut. Pada RSA misalnya, bila program hanya dapat membangkitkan bilangan
prima yang terbatas, maka pihak lawan dapat membangkitkan sendiri bilangan-bilangan
prima yang terbatas itu dan menggunakannya sebagai faktor dari salah satu parameter RSA.

11.2. Penyebaran Kunci (Key Distribution)
- Jika pengguna menggunakan kunci untuk melindungi informasi yang disimpan di dalam
storage, maka tidak ada kebutuhan untuk menyebarkan kunci.
- Tetapi, untuk kebutuhan komunikasi secara aman, maka diperlukan kebutuhan untuk
mengirimkan kunci.
- Protokol pertukaran kunci dengan menggunakan algoritma kunci-publik (lihat pembahasan
Protokol Kriptografi) dapat digunakan untuk mendistribusikan kunci.

11.3. Penyimpanan Kunci (Key Storage)
- Kunci disimpan di tempat yang aman yang tidak memungkinkan pihak lawan mengaksesnya.
Oleh karena itu, penyimpanan kunci mungkin memerlukan perlindungan secara fisik
(misalnya disimpan di dalam lemari besi).
- Alternatif lain, kunci dapat disimpan di dalam smart card yang hanya dapat dibaca dengan
menggunakan kode rahasia.
- Kunci sebaiknya disimpan tidak dalam bentuk jelas. Ada dua solusi alternatif untuk masalah
ini.
1. kunci disimpan dengan mengenkripsinya dengan menggunakan kunci lain. Konsep ini
mengarah pada konsep key hierarchy, yang dalam hal ini setiap kunci di dalam hirarkhi
digunakan untuk melindungi kunci di bawahnya.
2. kunci dipecah menjadi beberapa komponen, setiap komponen disimpan di tempat
terpisah. Jika kunci akan digunakan, maka setiap komponen direkonstruksi kembali.

- Misalkan kunci K dibagi menjadi dua komponen, K
1
dan K
2
. Membagi dua langsung K
sedemikian sehingga setengah bagian pertama menjadi K
1
dan setengah bagian sisanya
menjadi K
2
tidak dianjurkan, karena dapat memungkinkan pihak lawan menemukan K jika ia
hanya mengetahui salah satu dari K
1
dan K
2
. Misalkan K panjangnya 64 bit, dan lawan
mengetahui K
1
, maka K dapat ditentukan dengan hanya 2
32
percobaaan untuk menemukan K
2

secara exhaustive search (lebih sedikit dibandingkan 2
64
percobaan).
- Solusi pemecahan yang lebih baik adalah membentuk kunci K dari K
1
dan K
2
sedemikian
sehingga K = K
1
K
2
. Dalam hal ini, ukuran K
1
dan K
2
sama dengan ukuran K, sehingga jika
salah satu dari komponen K
1
atau K
2
diketahui, maka K relatif lebih sukar ditentukan.

11.4. Penggunaan Kunci (Key Usage)
- Setiap kunci digunakan sesuai tujuannya. Misalnya ada kunci yang digunakan untuk
mengenkripsi pesan, dan ada kunci yang digunakan untuk mengenkripsi kunci lainnya.
- Supaya setiap kunci mempunyai penggunaan yang unik, maka kita perlu membeli label pada
setiap kunci, yang dalam hal ini label menspesifikasikan penggunaan kunci. Misalnya, label
tersebut menspesifikasikan kunci untuk mengenkripsi data, kunci untuk mengenkripsi
kunci, kunci untuk pembangkitan bilangan acak, dan sebagainya.
82

- Untuk algoritma kunci-publik, pengguna perlu memberi label untuk dua pasang kunci yang
setiap pasang terdiri dari kunci publik dan kunci rahasia. Satu pasang kunci untuk enkripsi
dan satu pasang lagi untuk sidik dijital.

11.5. Perubahan Kunci (Key Change)
- Kunci sebaiknya diubah secara periodik dan teratur. Sistem kriptografi harus mempunyai
kemampuan untuk mengubah kunci.
- Kunci diubah secara teratur untuk membatasi lama keberadaanya dan mengurangi nilainya
dimata penyerang.
- Pada sistem EFTPOS (Electronic Funds Transfer at Point of Sale), kunci diubah setiap kali
setelah selesai satu transaksi.
- Tidak ada aturan seberapa sering kunci seharusnya diubah. Tetapi cukup jelas dimengerti
bahwa setiap kunci seharusnya diubah jauh sebelum ia dapat ditemukan dengan cara
exhaustive search.

11.6. Penghancuran Kunci (Key Destruction)
- Kunci yang tidak dibutuhkan lagi seharusnya dihancurkan dengan cara yang aman.
- Jika kunci dicatat pada media kertas, maka cara penghancurannya misalnya menggunakan
alat pemotong kertas (crosscut), membakarnya, atau menguburnya.
- Jika kunci disimpan di dalam media elektronik (seperti CD), maka cara penghancurannya bisa
dengan menghapusnya atau menimpanya (overwritten) sedemikian sehingga tidak
meninggalkan jejak yang bisa dilacak oleh penyerang.
- Kunci yang yang disimpan pada material lain dihancurkan sedemikian rupa sehingga ia tidak
mungkin ditemukan kembali secara fisik maupun secara elektronik.






















83

BAB XII
Kriptografi dalam Kehidupan Sehari-hari

12.1. Kartu Cerdas
Salah satu aplikasi kriptografi adalah kartu cerdas ( smart card).Kartu cerdas saat ini
tumbuhsangat pesat. Kartu cerdas yang mirip dengankartu kredit dapat melayani banyak fungsi,
mulaidariotentikasi sampaipenyimpanandata.Dengan menggunakan kartu cerdas, pengguna
dapatmengaksesinformasi dari berbagaiperalatan dengan kartu cerdas yang sama. Kartu cerdas
yang paling popular adalah memory card dan microprocessor card mirip dengan komputer
kecildengansistemoperasi,sekuriti,danpenyimpanan data.Kartu cerdas mempunyai
beberapajenisantarmuka(interface)yangberbeda.
Jenis antarmuka yang umum adalah contact interface, yang dalam hal ini kartu cerdas
dimasukkan kedalamalatpembaca(card reader) dan secara fisik terjadi kontak fisikantara
alat dan kartu. Kartu cerdas menyimpan kunci privat, sertifikatdigital, dan informasi lainnya.Kartu
cerdas jugamenyimpan nomor kartu kredit dan informasikontak personal (no telpon).Sertifikat
digitalditandatangani oleh card issuer (CA) untukmensertifikasi kunci publik pemilik
kartu.Penggunaan kartu cerdas dikombinasikan dengan PIN (Personal Identification Number). Jadi,
adadua level yang harus dari penggunaan kartu cerdas, yaitu memiliki kartu cerdas itu
sendiridan mengetahui PIN yang mengakses informasiyang disimpan di dalam kartu.
Komputer servermengotentikasi kartu dengan cara mengirimkansuatu nilai atau string (yang
disebut challenge)kekartuuntukditandatanganidenganmenggunakan kunci privat (yang
tersimpan didalamkartu),lalutanda-tangantersebutdiverifikasi oleh mesin dengan
menggunakankunci publik pemilik kartu. Komputer serverperlu menyimpan kunci publik card
issuer untukmemvalidasi sertifikat digital Banyak peralatan mobile yang menggunakan kart cerdas
untuk otentikasi namun kartu cerdas tidak menjamin keamanan secara total jika peralatan mobile
di curi sertifikat digital dan kunci privat dalam kartu (yang terdapat diperalatan tersebut)
berpotensi diakses oleh pencuri untukmengakses informasi rahasia. Telpon seluler dengan
teknologi GSM memiliki kartu cerdasyang terintegrasi di dalam handphone.Pemilikhandphone
memiliki opsi untuk men-set PINuntuk proteksitambahan,sehinggajikahandphone hilang atau
dicuri, handphone tidakdapat digunakan tanpa mengetahui PIN tersebut.

12.2. Transaksi Lewat Anjungan Tunai Mandiri (ATM)
- Anjungan Tunai Mandiri atau Automatic Teller Machine (ATM) digunakan nasabah bank untuk
melakukan transaski perbankan. Utamanya, kegunaan ATM adalah untuk menarik uang secara
tunai (cash withdrawal), namun saat ini ATM juga digunakan untuk transfer uang
(pemindahbukuan), mengecek saldo, membayar tagihan kartu ponsel, membeli tiket kereta api, dan
sebagainya.
- Transaksi lewat ATM memerlukan kartu magnetik (disebut juga kartu ATM) yang terbuat dari
plastik dan kode PIN (Personal Information Number) yang berasosiasi dengan kartu tersebut.
- PIN terdiri dari 4 angka yang harus dijaga kerahasiannya oleh pemilik kartu ATM, sebab orang
lain yang mengetahui PIN dapat menggunakan kartu ATM yang dicuri atau hilang untuk
melakukan penarikan uang.

84

- PIN digunakan untuk memverifikasi kartu yang dimasukkan oleh nasabah di ATM. Proses
verifikasi dilakukan di komputer pusat (host) bank, oleh karena itu harus ada komunikasi dua arah
antara ATM dan komputer host. ATM mengirim PIN dan informasi tambahan pada kartu ke
komputer host, host melakukan verifikasi dengan cara membandingkan PIN yang di-entry-kan oleh
nasabah dengan PIN yang disimpan di dalam basisdata komputer host, lalu mengirimkan pesan
tanggapan ke ATM yang menyatakan apakah transaksi dapat dilanjutkan atau ditolak.
- Selama transmisi dari ATM ke komputer host, PIN harus dilindungi dari penyadapan oleh orang
yang tidak berhak.
- Bentuk perlindungan yang dilakukan selama transmisi adalah dengan mengenkripsikan PIN. Di
sisi bank, PIN yang disimpan di dalam basisdata juga dienkripsi.
- Algoritma enkripsi yang digunakan adalah DES dengan mode ECB. Karena DES bekerja dengan
mengenkripsikan blok 64-bit, maka PIN yang hanya terdiri dari 4 angka (32 bit) harus ditambah
dengan padding bits sehingga panjangnya menjadi 64 bit. Padding bits yang ditambahkan
berbeda-beda untuk setiap PIN, bergantung pada informasi tambahan pada setiap kartu ATM-nya.
- Karena panjang PIN hanya 4 angka, maka peluang ditebak sangat besar. Seseorang yang
memperoleh kartu ATM curian atau hilang dapat mencoba semua kemungkinan kode PIN yang
mungkin, sebab hanya ada 10 10 10 10 = 10.000 kemungkinan kode PIN 4-angka. Untuk
mengatasi masalah ini, maka kebanyakan ATM hanya membolehkan peng-entry-an PIN
maksimum 3 kali, jika 3 kali tetap salah maka ATM akan menelan kartu ATM. Masalah ini juga
menunjukkan bahwa kriptografi tidak selalu dapat menyelesaikan masalah keamanan data.

12.3. Pay TV
- Pay TV adalah siaran TV yang hanya dapat dinikmati oleh pelanggan yang membayar saja,
sedangkan pemilik TV yang tidak berlangganan tidak dapat menikmati siarannya (Di Indonesia
Pay TV dikelola oleh PT. IndoVision).
- Siaran Pay TV dipancarkan secara broadcast, namun hanya sejumlah pesawat TV yang berhasil
menangkap siaran tersebut yang dapat mengerti isinya.
- Pada sistem Pay TV, sinyal broadcast dienkripsi dengan kunci yang unik. Orang-orang yang
berlangganan Pay TV pada dasarnya membayar untuk mengetahui kunci tersebut.
- Bagaimana mengetahui bahwa kunci tersebut dimiliki oleh pelanggan yang sah, dan bukan orang
yang mengetahui kunci tersebut dari pelanggan lainnya? Solusi yang umum adalah setiap
pelanggan diberikan smart card yang mengandung kunci rahasia (private key) yang unik dalam
konteks algoritma kriptografi kunci-publik.
- Smart card dimasukkan ke dalam card reader yang dipasang pada pesawat TV. Selanjutnya,
pelanggan Pay TV dikirimi kunci simetri yang digunakan untuk mengenkripsi siaran. Kunci
simetri ini dikirim dalam bentuk terenkripsi dengan menggunakan kunci publik pelanggan. Smart
card kemudian mendekripsi kunci simetri ini dengan kunci rahasia pelanggan. Selanjutnya, kunci
simetri digunakan untuk mendekripsi siaran TV.





85

12.4. Komunikasi dengan Telepon Seluler
- Penggunaan telepon seluler (ponsel) yang bersifat mobile memungkinkan orang berkoumikasi
dari tempat mana saja.
- Telepon seluler bersifat nirkabel (wireless), sehingga pesan yang dikirim dari ponsel
ditransmisikan melalui gelombang mikro (microwave) atau radio sampai ia mencapai base station
(BST) terdekat, selanjutnya ditransfer melalui saluran kabel fixed.
- Karena menyadap sinyal radio jauh lebih mudah daripada menyadap sinyal pada saluran kabel,
maka ini berarti GSM tidak lebih aman daripada telepon fixed konvensional.
- Untuk membuat komunikasi lewat ponsel aman, maka pesan dienkripsi selama transmisi dari
ponsel ke BST terdekat. Metode enkripsi yang digunakan adalah metode cipher aliran (stream
cipher).
- Masalah keamanan lain adalah identitas penelpon. Operator seluler harus dapat mengidentifikasi
suatu panggilan (call) dan mengetahui siapa yang melakukan panggilan tersebut. Jadi, pada GSM
diperlukan dua kebutuhan keamanan lainnya, yaitu kerahasiaan (confidentiality), yang merupakan
kebutuhan bagi pelanggan, dan otentikasi pengguna (user authentication), yang merupakan
kebutuhan bagi sistem.
- Dua kebutuhan ini dipenuhi dengan penggunaan smart card yang disebut SIM card. SIM card
disediakan oleh operator seluler (service provider). SIM card berisi nilai otentikasi rahasia
sepanjang 128-bit yang diketahui hanya oleh operator. Nilai ini digunakan sebagai kunci pada
protokol otentikasi dengan menggunakan algoritma yang dipilih oleh operator.
- Ketika pengguna ponsel melakukan panggilan (call), identitasnya dikirim ke komputer host via
BST untuk keperluan otentikasi. Komputer host melakukan verifikasi pengguna lalu
membangkitkan pesan (challenge) dan mengirimnya ke BST.
- Program otentikasi menerima masukan 128-bit dan mengeluarkan response 128-bit, yang
bergantung pada kunci otentikasi di dalam kartu. Dari 128-bit keluaran, hanya 32 bit yang dikirim
dari SIM card ke BST sebagai response. Jadi, masih ada 96 bit yang hanya diketahui hanya oleh
SIM card, BST, dan komputer host.
- SIM card juga berisi program stream cipher untuk mengenkripsi pesan dari ponsel ke BST. Kunci
enkripsi panjangnya 64 bit, yang diambil dari 96 bit sisa dari response SIM card.

12.5. E-commerce di Internet dan SSL
12.5.1. Sekarang banyak orang berbelanja melalui web di internet. Pembayaran barang dilakukan
dengan menggunakan kartu kredit, yang berarti bahwa pembeli harus mengirimkan kode PIN
kartu kredit dan informasi lainnya melalui internet. Karena alasan keamanan yang
menyangkut informasi kartu kredit maka transaksi barang lewat internet tidak terlalu populer.
12.5.2. Browsing web secara aman adalah fitur paling penting pada e-commerce. Secure Socket Layer
(SSL) adalah protokol yang digunakan untuk browsing web secara aman. Kedua protokol ini
memfasilitasi penggunaan enkripsi untuk data yang rahasia dan membantu menjamin
integritas informasi yang dipertukarkan antara website dan web brwoser (misalnya Netscape,
Interner Explorer, dsb).
12.5.3. SSL adalah contoh protokol client-server, yang dalam hal ini webbrowser adalah client dan
website adalah server. Client yang memulai komunikasi, sedangkan server memberi respon
terhadap permintaan client. Fungsi paling dasar yang digunakan SSL adalah membentuk
saluran untuk mengirimkan data terenkripsi, seperti data kartu kredit, dari browser ke website
yang dituju.

86

12.6. Pengamanan E-mail dengan PGP (Pretty Good Privacy)
Pretty Good Privacy atau PGP dikembangkan oleh Phil Zimmermann pada akhir tahun 1980.
Pada mulanya, PGP digunakan untuk melindungi surat elektronik (e-mail) dengan memberi
perlindungan kerahasiaan (enkripsi) dan otentikasi (tanda-tangan digital). Saat ini PGP tidak hanya
ditujukan untuk keamanan e-mail, tetapi juga untuk keamanan berbagai file dan program pada
komputer personal (PC).PGP menggunakan kriptografi simetri dan kriptografi kunci-publik.Oleh
karena itu, PGP mempunyai dua tingkatan kunci, yaitu kunci rahasia (simetri) yang disebut juga
sessionkey untuk enkripsi data, dan pasangan kunci privat- kunci publik untuk pemberian tanda
tangan dan melindungi kunci simetri.
Kunci simetri hanya dipakai sekali (one-time) dan dibuat secara otomatis dari gerakan tetikus
(mouse) atau ketikan tombol kunci. PGP tersedia sebagai freeware maupun sebagai paket komersil
dalam berbagai versi yang dapat dioperasikan dalam berbagai sistem operasi (DOS, Windows, UNIX,
Mac).PGP versi-versi awal menggunakan IDEA sebagai algoritma simetri dan RSA sebagai algoritma
kunci-publik (asimetri), sedangkan versi-versi terakhir menggunakan algoritma CAST sebagai
algoritma simetri dan algoritam DH (Diffie-Hellman) sebagai algoritma kunci-publik.


















87

BAB XIII
Steganografi dan Watermarking

13.1. Sejarah steganografi
Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan
suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau
menyadari bahwa ada suatu pesan rahasia. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan,
tapi tidak menyembunyikan bahwa ada suatu pesan.Kata steganografi (steganografi) berasal dari
bahasa Yunani steganos, yang artinya tersembunyi atau terselubung, dan graphein, menulis.
Kini, istilah steganografi termasuk penyembunyian data digital dalam file-file komputer.
Contohnya, si pengirim mulai dengan file gambar biasa, lalu mengatur warna setiap pixel ke-100
untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada
seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya).
Pada umumnya, pesan steganografi muncul dengan rupa lain seperti gambar, artikel, daftar
belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini merupakan tulisan yang menyelubungi
atau menutupi.Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak
terlihat diantara garis-garis yang kelihatan.
Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan
rahasia (teks atau gambar) di dalam file-file lain yang mengandung teks, image, bahkan audio tanpa
menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula.
Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur
tersembunyi dan komunikasi spektrum lebar.Tujuan dari steganografi adalah merahasiakan atau
menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam
prakteknya kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain yang
isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang
terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan
untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi
terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.
Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi
komputer karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan
pesan. Format yang biasa digunakan diantaranya:
Format image : bitmap (bmp), gif, pcx, jpeg, dll.
Format audio : wav, voc, mp3, dll.
Format lain : teks file, html, pdf, dll.



88

13.2. Persoalan tahanan penjara

Alisa
Bobi
Fred

Pesan rahasia: Lari jam satu

Bagaimana Bobi mengirim pesan rahasia kepada Alisa tanpa diketahui oleh Fred?
Alternatif 1: mengenkripsinya
xjT#9uvmY!rc$
Fred pasti curiga!
Alternatif 2: menyembunyikannya di dalam pesan lain
Lupakan asal rumor itu jangan ambil manfaatnya setelah aku tutup usia
Fred tidak akan curiga!
Information hiding dengan steganografi!
13.3. Konsep dan terminology
Steganografi adalah ilmu pengetahuan dan seni dalam menyembunyikan komunikasi.Suatu sistem
steganografi sedemikian rupa menyembunyikan isi suatu data di dalam suatu sampul media yang
tidak dapat di duga oleh orang biasa sehingga tidak membangunkan suatu kecurigaan kepada orang
yang melihatnya.
Di masa lalu, orang-orang menggunakan tato tersembunyi atau tinta tak terlihat untuk menyampaikan
isi steganografi. Sekarang, teknologi jaringan dan komputer menyediakan caraeasy-to-use jaringan
komunikasi untuk steganografi. Proses penyembunyian informasi di dalam suatu sistem steganografi
dimulai dengan mengidentifikasi suatu sampul media yang mempunyai bit berlebihan
(yang dapat dimodifikasi tanpa menghancurkan integritas media). Proses menyembunyikan
(embedding) menciptakan suatu proses stego medium dengan cara menggantikan bit yang berlebihan
ini dengan data dari pesan yang tersembunyi .



89

13.4. Teknik penyembunyian data
Tiga aspek berbeda di dalam sistem penyembunyian informasi bertentangan dengan satu sama lain
yaitu: kapasitas, keamanan, dan ketahanan (robustness). Kapasitas adalah mengacu pada jumlah
informasi yang dapat tersembunyi di dalam sampul media, keamanan adalah pencegahan bagi orang
biasa yang tidak mampu untuk mendeteksi informasi tersembunyi, dan ketahanan adalah untuk
modifikasi media stego sehingga dapat bertahan terhadap suatu attack yang dapat menghancurkan
informasi tersembunyi.
Penyembunyian informasi biasanya berhubungan dengan watermarking dan steganografi. Tujuan
utama sistem watermarking adalah untuk mencapai tingkat ketahanan yang lebih tinggi, sangatlah
mustahil untuk menghilangkan suatu proses watermarking tanpa menurunkan tingkat kualitas objek
data. steganografi, pada sisi lain, mengejar kapasitas dan keamanan tinggi, yang dimana sering
diketahui bahwa informasi yang tersembunyi mudah diketahui. Bahkan modifikasi kecil kepada
media stego dapat menghancurkannya (Provos, 2003).
Model dasar untuk embedding adalah sebagaimana pada Gambar 3 (Zolnerr et al., 2004).Sementara
Gambar 2 menunjukkan hubungan antara steganografi dengan watermarking (Suhono et al., 2000).









Gambar 1. Model dasar embedding







Gambar 2. Pembagian steganografi
90

Berdasar Gambar 2, steganografi terbagi menjadi 2 buah model yaitu:
a. Proteksi terhadap deteksi untuk teknik penyembuyian data
Proteksi model ini banyak digunakan di dalam dunia steganografi untuk piranti keamanan
dalam suatu pengiriman dokumen melalui media internet atau yang lainnya. Proteksi ini
mempunyai metode agar suatu file yang telah disisipi oleh data tidak dapat dideteksi oleh suatu
program steganalisis sehingga hanya orang yang mempunyai program steganografi tertentu saja
yang dapat menampilkan/ekstrakting data yang ada.

b. Proteksi terhadap kehilangan untuk teknik pemberian tanda tehadap data
Proteksi model ini banyak digunakan di dalam media secure digital atau steganografi yang
berfungsi sebagai penanda hak cipta (copyright) agar tidak dapat dimusnahkan maupun
digandakan olah pihak yang tidak bertanggung jawab. Salah satu metode yang dapat digunakan
adalah watermarking.
Watermarking merupakan suatu bentuk dari steganografi (ilmu yang mempelajari bagaimana
menyembunyikan suatu data pada data yang lain), dalam mempelajari teknik-teknik bagaimana
penyimpanan suatu data (digital) kedalam data host digital yang lain (istilah host digunakan untuk
data/sinyal digital yang ditumpangi). Parameter-parameter yang perlu diperhatikan dalam penerapan
metoda watermarking adalah:
a. Jumlah data (bitrate) yang akan disembunyikan.
b. Ketahanan (robustness) terhadap proses pengolahan sinyal.
c. Tak terlihat (invisibly) atau output tidak berbeda dengan input awal.

Kesatuan dari ketiga parameter tersebut dikenal sebagai trade-off dalam watermarking.Gambar 3
menunjukkan ilustrasi trade-off dalam watermarking.







Gambar 3. Trade-off dalam watermarking



91

13.5. Watermarking

Watermarking merupakan salah satu cara untuk menyisipkan atau menyembunyikan suatu
pesan atau data rahasia di dalam data atau pesan lain sehingga tidak tampak oleh pihak-pihak yang
tidak berhak, dan hanya dapat diakses oleh orang yang berhak dengan suatu kunci. Teknologi
watermarking biasa diterapkan pada berbagai macam data, yaitu image, audio, dan video.
Watermarking video mempunyai keuntungan yaitu dapat menyisipkan informasi dalam ukuran besar
karena pada dasarnya video merupakan gabungan image yang bergerak dan audio sehingga sulit
dideteksi.
Watermarking atau tanda air dapat diartikan sebagai suatu teknik penyembunyian data atau
informasi rahasia kedalam suatu data lainnya untuk ditumpangi (kadang disebut host data ), tetapi
orang lain tidak menyadari adanya kehadiran data tambahan pada host-nya. Jadi seolah-olah tidak ada
perbedaan antara data host sebelum dan sesudah proses watermarking. Disamping itu data yang ter-
watermark harus tahan (robust) terhadap serangan-serangan baik secara sengaja ataupun tidak di
sengaja untuk menghilangkan data watermark di dalamnya. Watermark juga harus tahan terhadap
berbagai jenis pengolahan/proses bisa berupa text, image, audio, maupun video.
13.6. Jenis-jenis Image Watermarking

Fragile watermarking
Tujuan: untuk menjaga integritas/orisinilitas media digital.
Robust watermarking
Tujuan: untuk menyisipkan label kepemilikan media digital.
Suatu teknik watermark yang baik diharapkan dapat memenuhi kriteria-kriteria
karakteristikwatermarkantara lain yaitu:
i. Imperceptibility
Hal terpenting dalam pembuatan teknik watermarking adalah bahwa watermark yang
disisipkan tidak merusak fungsi asli dari host. Imperceptibility jika diterapkan dalam
watermarking yang bersifat tidak terlihat(invisible) maka karakteristik ini dapat berbarti
bahwa watermark yang disisipkan tidak dapat dipersepsi oleh indera manusia tetapi dapat
dideteksi oleh algoritma komputer.
ii. Robustness
Karakteristik watermark mengenai robustness umumnya berkaitan dengan modifikasi
watermarked media. Hal yang ingin dicapai dalam karakteristik ini adalah meskipun
watermarked media sudah dilakukan modifikasi tetapi masih dapat dikenali watermark yang
disisipkan. Karakteristik ini penting untuk suatu tujuan pemberian watermark tetapi tidak
harus selalu ada.
iii. Kapasitas
Kapasitas biasanya merujuk pada seberapa besar ukuran watermarkyang dapat disisipkan ke
dalam host. Ukuran watermark tentu didasarkan pada total bit karena baik watermark, host
dan watermarked media berbentuk data dijital. Besarnya kapasitas yang dapat ditampung
sangat tergantung pada algoritma watermarking itu sendiri.
92


iv. Keamanan
Dengan mengasumsikan bahwa pihak yang tidak berkepentingan mengetahui algoritma watermarking
maka dimungkinkan untuk mengganti atau memalsukan watermark yang sudah disisipkan.
Keberadaan kunci dalam algoritma watermarking sangat berperan penting dalam menentukan faktor
keamanan dari watermark.

13.7. Aplikasi image watermarking

Watermarking dapat diimplementasikan pada media teks, citra, audio maupun video yang bertipe data
dijital. Secara umum klasifikasi aplikasi watermarking dapat dibagi menjadi beberapa kelompok
yaitu:
a. Copyright protection
Copyright dapat berupa informasi kepemilikan seperti nama dan alamat atau pun gambar logo yang
disisipkan secara tampak ataupun tidak tampak dalam suatu host. Biasanya teknik yang digunakan
untuk melakukan watermarking dengan tujuan copyright protection adalah teknik yang memiliki
karakteristik robustness yang tinggi. Klaim oleh pihak lain atas kepemilikan multimedia dijital
tersebut dapat dibantah dengan melakukan ekstraksi terhadap watermarked media yang selanjutnya
dilakukan perbandingan.
b. Autentikasi
Sebagian referensi menyebutkan aplikasi watermarking untuk autentikasi juga dapat berguna untuk
tamper proofing. Secara umum bahwa pemilik multimedia dijital menyisipkan watermarknya
sedemikian sehingga jika terjadi sedikit saja perubahan dapat diketahui dengan melihat watermark
hasil ekstraksinya. Dengan kata lain bahwa jika watermark hasi ekstraksi tidak sama persis dengan
watermark aslinya maka sudah dapat dipastikan bahwa watermarked media sudah dilakukan
perubahan. Manfaat kunci pada skema juga dimungkinkan sebagai salah satu faktor autentikasi. Jika
hasil ekstraksi dengan kunci tersebut menghasilkan watermark yg berbeda maka disimpulkan bahwa
watermarked media telah diubah.
Pada era dijital, data rekam medis dapat dengan mudah dilakukan perubahan oleh pihak yang ingin
mengambil keuntungan pribadi. Dengan memberikan watermark yang berupa informasi pasien pada
data rekam medis maka usaha perubahan dapat diketahui.
c. Device Control
Konsep yang diberikan adalah dengan memberikan suatu watermark yang berbeda untuk masing-
masing distributor multimedia. Pihak pabrik ingin memastikan bahwa satu distributor hanya menjual
multimedia pada area tertentu sehingga jika ditemukan watermark yang berbeda disuatu daerah maka
dipastika adanya pelanggaran. Konsep semacam ini umumnya digunakan oleh distributor DVD.
Dengan memanfaatkan perangkat tambahan pada player DVD maka konsep watermark semacam ini
dapat ditingkatkan menjadi aplikasi watermark yang bersifat piracy protection.


93

13.8. Metode image watermarking

Metode dalam ranah spasial
Menyisipkan watermark langsung pada nilai byte dari pixel citra.
Metode dalam ranah transform
Menyisipkan watermark pada koefisien transformasi dari citra.
Image Watermarking dalam Ranah DCT
Menyisipkan dan mendeteksi watermark dalam ranah frekuensi, menghasilkan robustness
yang lebih tinggi bila dibandingkan dengan ranah spasial. Selain itu watermarking dalam
ranah frekuensi kompatibel dengan standard kompresi citra seperti JPEG.Kompatibalitas
tersebut menjamin bahwa metode watermarking dalam ranah frekuensi memiliki kinerja yang
baik bila citra ber-watermark mengalami kompresi lossy, yang merupakan operasi pengolahan
citra yang paling umum.
Metode Spread Spectrum
Diusulkan pertama kali oleh Cox dalam makalah Secure Spread Spectrum Watermarking for
Multimedia (1997).Watermark disebar (spread) di dalam citra.
Spread spectrum dapat dilakukan dalam 2 ranah:
1. Ranah spasial
Menyisipkan watermark langsung pada nilai byte dari pixel citra.
2. Ranah transform
Menyisipkan watermark pada koefisien transformasi dari citra.
Penyisipan dalam ranah frekuensi lebih robust dibandingkan dalam ranah spasial.Pada metode Cox,
komponen frekuensi yang disisipi adalah komponen yang signifikan secara persepsi.Ada trade-off
antara robustness dan visibility (o).Citra ditransformasi ke dalam ranah frekuensi dengan DCT
(Discrete Cosine Transform). Setelah penyisipan, ranah frekuensi dkembalikan ke ranah spasial
dengan IDCT (Inverse Discrete Cosine Transform)
13.9. Watermarking pada media digital lain

- Sebagian besar penelitian, publikasi, dan aplikasi di bidang watermarking ditujuan untuk citra
digital. Namun, watermarking juga dapat diterapkan pada jenis multimedia lain seperti suara
(misalnya musik MP3), video, dan teks.

- Sedangkan watermarking pada video digital harus sedemikian rupa sehingga peralihan
gambar dari satu frame ke frame lainnya harus tetap baik dan tidak terlihat dimodifikasi.
Karena video digital ukurannya relatif besar daripada citra, maka watermark yang disisipkan
dapat lebih banyak.


94

- Khusus watermarking pada data audio, kehati-hatian perlu dilakukan pada perancangan
algoritma watermarking-nya, karena suara lebih sensitif daripada gambar. Hal ini berarti suara
digital lebih mudah rusak bila ditambahkan watermarking.

- Saat ini, Microsoft sedang meneliti untuk mengembangkan sistem watermarking untuk audio
digital, yang akan dimasukkan ke dalam media player Windows. Dengan sistem
watermarking ini, data seperti informasi lisensi disisipkan ke dalam musik/lagu; media player
tidak akan memainkan file audio yang memuat watermark yang salah.

- Terakhir, watermarking pada dokumen teks menggunakan metode yang berbeda daripada 3
media lainnya. Salah satunya dengan menyisipkan spasi antara dua buah kata atau antara dua
buah kalimat di dalam dokumen.


13.10. Watermarking pada program komersil

Microsoft mengembangkan sistem watermarking untuk audio digital, yang akan dimasukkan
ke dalam media playerWindows.
Data seperti informasi lisensi disisipkan ke dalam musik/lagu; media player tidak akan
memainkan file audio yang memuat watermark yang salah.







\
Penyisipan Watermark







95


Perangkat lunak digital watermarking dari Blue Spikes GiovanniTM (www.bluespike.com)
menggunakan kunci kriptografi untuk membangkitkan watermark ke dalam musik
dan citra digital.

Perusahaan software yang menawarkan solusi digital watermarking adalah Digimarc
(www.digimark.com) dan Cognicity (www.cognicity.com).
Situs web yang lain tentang steganografi dan digital watermaking yang perlu dikunjungi:
1. www.outguess.orgMenyediakan secara gratis kakas steganografi.
2. www.demcom.comPerangkat lunak Steaganos Security Suite dari DemCom mengizinkan anda
untuk mengenkripsi dan menyembunyikan arsip ke dalam berkas audio, video, teks, atau HTML.
3. www.cl.cam.ac.uk/~fapp2/steganography/index.htmlHomepage mengenai information hiding
yang memiliki informasi teknis, berita, dan link yang berkaitan dengan digital watermarking dan
steganografi.
4. www.digimarc.comHomepage lainnya dari Digimarc.

















96

PENUTUP
A. Kesimpulan

Kriptografi adalah ilmu yang berguna untuk mengacak (kata yang lebih tepat adalah
masking) data sedemikian rupa sehingga tidak bisa dibaca oleh pihak ketiga. Tentu saja data yang
diacak harus bisa dikembalikan ke bentuk semula oleh pihak yang berwenang.
Data yang ingin diacak biasanya disebut Plain Teks (Plain Text).Data diacak dengan
menggunakan Kunci Enkripsi (Encryption Key). Proses pengacakan itu sendiri disebut Enkripsi
(Encryption). Plain Teks yang telah diacak disebut Cipher Teks (Chiper Text). Kemudian proses
untuk mengembalikan Cipher Teks ke Plain Teks disebut Dekripsi (Decryption). Kunci yang
digunakan pada tahap Dekripsi disebut Kunci Dekripsi (Decryption Key).
Pada prakteknya, selain pihak yang berwenang ada pihak ketiga yang selalu berusaha
untuk mengembalikan Cipher Teks ke Plain Teks atau memecahkan Kunci Dekripsi. Usaha oleh
pihak ketiga ini disebut Kriptanalisis (Cryptanalysis).
Fungsi Hash adalah suatu cara menciptakan fingerprint dari berbagai data masukan.
Fungsi Hash akan mengganti atau mentranspose-kan data tersebut untuk menciptakan fingerprint,
yang biasa disebut hash value. Hash value biasanya digambarkan sebagai suatu string pendek
yang terdiri atas huruf dan angka yang terlihat random (data biner yang ditulis dalam notasi
heksadesimal). Algoritma fungsi hash yang baik adalah yang menghasilkan sedikit hash collision.
Sudah banyak algoritma fungsi hash yang diciptakan, namun fungsi hash yang umum digunakan
saat ini adalah MD5 dan SHA (Secure Hash Algorithm). Kedua algoritma tersebut didesain untuk
prosesor 32 bit, dan tidak dapat diimplementasikan untuk prosesor 64 bit.
Fungsi hash yang paling banyak digunakan dalam keamanan jaringan komputer dan
internet adalah MD5 yang dirancang oleh Ron Rivest yang juga merupakan salah satu
pengembang algoritma RSA pada tahun 1991. MD5 merupakan kelanjutan daru MD4 yang
dirancang dengan tujuan keamanan. Secara perhitungan matetamatis tidak dimungkinkan untuk
mendapatkan dua pesan yang memiliki hash yang sama. Tidak ada serangan yang lebih efisien
untuk membongkar/mengetahui hash suatu pesan selain brute-force.

B. Saran
Makalah ini sangat jauh dari kesempurnan, maka dari itu penulis sangat
mengharapkan kritik dan saran untuk makalah ini yang tentunya sangat bermanfaat bagi penulis
dalam menyempurnakan makalah ini.
Semoga makalah ini bisa menjadi salah satu acuan dalam pembuatan makalah
selanjutnya.



97

DAFTAR PUSTAKA

1. http://buahilmu.wordpress.com/2011/04/15/pegertian-kriptografi/
2. http://rizal.blog.undip.ac.id/kriptografi/
3. http://www.belbuk.com/kriptografi-p-11662.html
4. http://rinaldimunir.wordpress.com/2012/04/23/blog-baruku-catatan-kriptografi/
5. http://ilmu-kriptografi.blogspot.com/2011/06/buku-kriptografi-di-indonesia.html
6. http://www.docstoc.com/docs/68019780/kriptografi
7. http://www.pustakabersama.net/buku.php?id=50043&cari=irak+
8. http://informatika.stei.itb.ac.id/~rinaldi.munir/Kriptografi/2011-2012/IF3058%20Kriptografi.ppt
9. http://www.stmikbudidarma.ac.id/perpustakaan/index.php?jenis=KRIPTOGRAFI&kd=66317&sli
nk=infobukukategori.php
10. http://buahilmu.wordpress.com/2011/04/15/pegertian-kriptografi/RSA/
11. http://buahilmu.wordpress.com/2011/04/15/pegertian-kriptografi/ENKRIPSI-DEKRIPSI/
12. www.scribd.com/doc/75747966/Makalah-Kriptografi
13. contohskripsiku.com/pdf/makalah+kriptografi
14. www.pustakaskripsi.com/aplikasi-kriptografi-dengan-algoritma
15. www.ferri-zhou.com/amazon/.../contoh-makalah-kriptografi-pdf
16. www.duniaremaja.net/pdf/makalah-kriptografi.html
17. Google.com















98