makalah kriptografi

129
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.1Kriptanalisis 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.2Keamanan Algoritma Kriptografi 1

Upload: ihsan-badruzaman

Post on 28-Oct-2015

495 views

Category:

Documents


22 download

DESCRIPTION

Serangan Terhadap Kriptografi,

TRANSCRIPT

Page 1: makalah kriptografi

BAB ISerangan 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 2nd), 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 232 kunci atau 4.3 x 109 kunci.

1.2 Keamanan Algoritma Kriptografi

Lars Knudsen (Aplied Cryptography 2nd) 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 DK(C)=P

2. DEDUKSI (penarikan kesimpulan) GLOBAL (global deduction). Kriptanalis menemukan algoritma alternatif A yang ekivalen dengan DK(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.

1

Page 2: makalah kriptografi

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.4x1024 tahun.

1.3 Kompleksitas SeranganKompleksitas 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 Serangan1. Berdasar Keterlibatan Penyerang dalam Komunikasi

a. Serangan Pasif (passive attack)b. Serangan Aktif (active attack)

2. Berdasar Banyaknya Informasi yang Diketahuia. Ciphertext-Only Attackb. Known-Plaintext Attackc. Chosen-Plaintext Attackd. Chosen-Ciphertext Attacke. Chosen-Text Attack

3. Berdasar Teknik Untuk Menemukan Kuncia. Exhaustive Attack / Brute Force Attackb. Analytical Attack

4. Related-Key Attack5. Rubber-Hose Cryptanalysis

2

Page 3: makalah kriptografi

A B

a b

f

A B

a 1

f

b

c

2

3

BAB IILandasan Matematika

2.1. FungsiRelasi dari A ke B merupakan FUNGSI jika setiap elemen dalam A dihubungkan dengan tepat satu elemen di dalam B.

f : A Bfmemetakan 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 ab. 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) f dan (a,c) f, maka b=c

Fungsi Satu-ke-SatuFungsi 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

.

3

Page 4: makalah kriptografi

A B

a 1

f

b

c

2

3

d

A B

a 1

f

b

c

2

3

A B

a 1

f

f-1

Fungsi PadaFungsi 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-SatuFungsi f dari himpunan A ke B dikatakan BERKORESPONDEN SATU-KE-SATU atau BIJEKSI (BIJECTION) jika merupakan fungsi SATU-KE-SATU sekaligus fungsi PADA.

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

4

Page 5: makalah kriptografi

Fungsi Satu Arah

Fungsi f dari himpunan A ke B dikatakan FUNGSI SATU ARAH jika f(x) “mudah” untuk dihitung untuk semua x A tetapi “sangat sukar” atau bahkan “hampir tidak mungkin secara komputasi” menemukan inversinya, yaitu menemukan x sedemikian hingga f(x) = y untuk semua y 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 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 Kombinasia. 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 :

5

Page 6: makalah kriptografi

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} . 

6

Page 7: makalah kriptografi

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 = {}. 

7

Page 8: makalah kriptografi

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, pi=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 :

8

Page 9: makalah kriptografi

Entropi 1,75 berarti setiap simbol dikodekan sebanyak 1,75 bit.

Sifat-sifat entropi adalah :

1. 0 ≤ H(X) ≤ log2(n)

2. H(X) = 0 jika dan hanya jika pi = 1 untuk semua i dan pj = 0 untuk semua j ≠ i

3. H(X) = log2(n) jika dan hanya jika pi = 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 = log226 = 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 = log2256 = 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.

9

Page 10: makalah kriptografi

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

Contoh : 20 dan 3 relatif prima (PBB(20,3)=1), 20 dan 5 TIDAK relatif prima (PBB(20,5)=5)

10

Page 11: makalah kriptografi

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 Komunikasia. Serangan Pasif (passive attack)b. Serangan Aktif (active attack)

2. Berdasar Banyaknya Informasi yang Diketahuia. Ciphertext-Only Attackb. Known-Plaintext Attackc. Chosen-Plaintext Attackd. Chosen-Ciphertext Attacke. Chosen-Text Attack

3. Berdasar Teknik Untuk Menemukan Kuncia. Exhaustive Attack / Brute Force Attackb. Analytical Attackc. Related-Key Attack

4. Rubber-Hose Cryptanalysis

BAB IIIAlgoritma Kriptografi Klasik

11

Page 12: makalah kriptografi

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 : abcdefghijklmnopqrstuvwxyzCiphertext : QWERTYUIOPASDFGHJKLZXCVBNM

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

3.2. Jenis-Jenis Cipher Subtitusia. 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 = k1 k2 k3 k4k5 .....km

Maka cipherteks : y1(p) = (p+ki) mod 26 Dimana ki untuk 1 ≤ i ≤ m

Misalkan periode m=20, maka 20 karakter pertama dienkripsi dengan persamaan sebelumnya, dimana setiap karakter ke-i menggunakan kunci ki dan diulang untuk setiap 20 karakter selanjutnya.

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

12

Page 13: makalah kriptografi

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

3.4. Super Enkripsi

13

Page 14: makalah kriptografi

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

14

Page 15: makalah kriptografi

Top 10 huruf yang sering muncul dalam teks Bahasa Inggris: E, T, A, O, I, N, S, H, R, D, L,

15

Page 16: makalah kriptografi

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)

p1=10c1=(7.10)+10=80=2(mod26) hasil : “C”

Dst… sehingga Ciphreteks : CZOLNE

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)

16

Page 17: makalah kriptografi

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.

ci = (pi + ki) 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.

BAB IVAlgoritma Kriptografi Modern

4.1. Rangkaian Bit dan Operasinya

17

Page 18: makalah kriptografi

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 :

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 :

18

Page 19: makalah kriptografi

KeystreamGenerator

KeystreamGenerator

pi

ki

ci p

i

ki

PlainteksEnkripsi

Keystream Keystream

Cipherteks Plainteks

Dekripsi

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).

19

Page 20: makalah kriptografi

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 ki Keystream ki

ci

pi pi

Plainteks Enkripsi Cipherteks Dekripsi Plainteks

20

Page 21: makalah kriptografi

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 2n – 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 ki Keystream ki

ci

pi pi

Plainteks Enkripsi Cipherteks Dekripsi Plainteks

21

Page 22: makalah kriptografi

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 = gK(Z)

sehingga proses enkripsi dan dekripsi didefinisikan sebagai

C =PK = PgK(Z)

P =CK = CgK(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)

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)

22

Page 23: makalah kriptografi

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

0 0 1 0 0

0 0 0 1 0

1 0 0 0 1

1 1 0 0 0

23

Page 24: makalah kriptografi

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.

4.8. Serangan Terhadap Cipher Aliran

Serangan yang dapat dilakukan oleh kriptanalis terhadap cipher aliran adalah:

1. Known-plaintext attackMisalkan 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

24

Page 25: makalah kriptografi

2. Ciphertext-only attackMisalkan kriptanalis memiliki dua potongan cipherteks berbeda (C1 dan C2) 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:

C1C2= (P1K ) (P2K)

= (P1P2 ) (K K)

= (P1P2 ) 0

= (P1P2 )

P1 dan P2 dapat diperoleh dengan mudah. Selanjutnya, XOR-kan salah satu plainteks dengan cipherteksnya untuk memperoleh bit-aliran-kunci K yang berkoresponden:

P1C1= P1 (P1K) = 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]

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

25

Page 26: makalah kriptografi

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

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.

26

Page 27: makalah kriptografi

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.

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 Pi dienkripsi secara individual dan independen menjadi blok cipherteks Ci.

Enkripsi :

27

Page 28: makalah kriptografi

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 264 – 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.

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 :

28

Page 29: makalah kriptografi

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

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.

29

Page 30: makalah kriptografi

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, C0 = IV (INITIALIZATION VECTOR).

IV digunakan untuk menggantikan blok cipherteks sebelumnya (C0).

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.

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.

30

Page 31: makalah kriptografi

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 C1

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 C2

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

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.

31

Page 32: makalah kriptografi

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.

Langkah proses dekripsi CFB dapat dijelaskan sebagai berikut :

32

Page 33: makalah kriptografi

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.

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.

33

Page 34: makalah kriptografi

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)

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)

34

Page 35: makalah kriptografi

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 C0 dan cipherteks dinyatakan dengan Cr

Secara matematis cipher berulang dinyatakan sebagai

i = 1,2,….,r (r adalah jumlah putaran)

Ki = 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 :

Li = Ri-1

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

Plainteks adalah gabungan L dan R awal, atau secara formal dinyatakan dengan (L0 ,R0).

Sedangkan cipherteks didapatkan dari L dan R hasil dari putaran terakhir setelah terlebih dahulu dipertukarkan, atau secara formal dinyatakan sebagai (Rr ,Lr)

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.

35

Page 36: makalah kriptografi

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 KLadalah 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.

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

36

Page 37: makalah kriptografi

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,

b1b2b3b4b5b6

Nomor baris dari tabel ditunjukkan oleh string bit b1b6

Nomor kolom ditunjukkan oleh string bit b2b3b4b5

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

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.

37

Page 38: makalah kriptografi

4. Dihitung Secara Matematis (Math-Made)

Entry dalam S-Box dibangkitkan berdasarkan prinsip matematika yang terbukti aman dari serangan kriptanalis.

BAB VKriptografi 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).

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.

38

Page 39: makalah kriptografi

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).

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.

39

Page 40: makalah kriptografi

- 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)

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:

40

Page 41: makalah kriptografi

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.

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).

41

Page 42: makalah kriptografi

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. RSABeberapa 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) :

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

42

Page 43: makalah kriptografi

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

M = Cd mod n = (Me)d mod n = Med 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 :

43

Page 44: makalah kriptografi

1. kemungkinan menemukan nilai e,d,n sedemikian rupa sehingga Med = M mod n untuk semua

M < n

2. relative mudah menghitung Me dan Cd 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 = p2 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]

o Teks Rahasia didapat dari C = Me (mod n)

o Kirim C ke A

Dekripsi

Untuk mendekripsi, A melakukan

o Gunakan kunci pribadi d untuk menghasilkan M

44

Page 45: makalah kriptografi

o Teks rahasia adalah C

o Teks asli didapat dari M = Cd (mod n)

5.6. ElGamaldigunakan 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 rumusa = gk mod pb = ykm mod pPasangan 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 pCatatlah bahwa karenaax º gkx (mod p)

maka

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

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

45

Page 46: makalah kriptografi

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 ulrichmenghitunga = gk mod p = 21520 mod 2357 = 1430b = ykm mod p = 11851520 × 2035 mod 2357 = 697

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

46

Page 47: makalah kriptografi

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 = gx mod n2. Bob membangkitkan bilangan bulat acak yang besar y dan mengirim hasil perhitungan berikut

kepada Alice:Y = gy mod n

3. Alice menghitungK = Yx mod n

4. Bob menghitungK’ = Xy mod n

Jika perhitungan dilakukan dengan benar, maka K = K’.

Baik K dan K’ sama dengan gxy 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 w1, w2, …, wn. Tentukan nilai bisedemikian sehingga

M = b1w1 + b2w2+ … + bnwn (1)

yang dalam hal ini, bi bernilai 0 atau 1. Jika bi= 1, berarti objek i dimasukkan ke dalam knapsack, sebaliknya jika bi = 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 widi dalam persoalan knapsack merupakan kunci rahasia, sedangkan bit-bit plainteks menyatakan bi.

Contoh 1: Misalkan n = 6 dan w1 = 1, w2 = 5, w3 = 6,

w4 = 11, w5 = 14, dan w6 = 20.

47

Page 48: makalah kriptografi

Plainteks: 111001010110000000011000

Plainteks dibagi menjadi blok yang panjangnya n, kemudian setiap bit di dalam blok dikalikan dengan wiyang 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 b1, b2, …, b6 sedemikian sehingga

32= b1 + 5b2+ 6b3 + 11b4 + 14b5 + 20b6 (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.

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 xidienkripsi menjadi blok yi dengan rumusyi = xi

PK mod r

dan blok cipherteks yididekripsi kembali menjadi blok xi

dengan rumus

xi = yiSK mod r

48

Page 49: makalah kriptografi

Pada algoritma DSA, kunci publik y dihitung dengan rumusy = gxmod p

dan sidik dijital dihitung dengan rumus

r = (gk 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 5123 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 abmod 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.

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%.

49

Page 50: makalah kriptografi

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/2t.

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 2b adalah nilai pangkat 2 terbesar yang habis

membagi p – 1.3. Hitung m sedemikian sehingga p = 1 + 2bm.

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 = am 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 zp – 1, nyatakan z = z2 mod p dan kembali ke

langkah (d). Jika z = p – 1, maka p lolos pengujian dan mungkin prima. (f) Jika j = b dan zp – 1, maka p tidak prima.

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

BAB VIPembangkit 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)

50

Page 51: makalah kriptografi

Pembangkit bilangan acak kongruen-lanjar (linear congruential generator atau LCG ) adalah PRNG yang berbentuk:

  Xn = (aXn – 1 + b) mod m

Xn = bilangan acak ke-n dari deretnya

Xn – 1 = bilangan acak sebelumnya

a = faktor pengali

b = increment

m = modulus

Kunci pembangkit adalah X0 yang disebut umpan (seed).

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 m3. a – 1 adalah kelipatan 4 jika m adalah kelipatan 44. m> maks(a, b, x0)5. a> 0, b> 0

51

Page 52: makalah kriptografi

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 ShutCSPRNG 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 Blum3. Pilih bilangan bulat acak lain, s, sebagai umpan sedemikian sehingga:

(i)     2 s<n

(ii) s dan n relatif prima

kemudian hitung x0 = s2 mod n

4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang diinginkan: (i)     Hitung xi= xi – 1

2 mod n

(ii)    zi= bit LSB (Least Significant Bit) dari xi

Barisan bit acak adalah z1, z2, z3, …

Contoh. Misalkan kita memilih p = 11 dan q = 23 sehingga n = pq = 253. Kita pilih s = 3 dan kita hitung x0 =32 mod 253 = 9. Barisan bit acak kita hasilkan sebagai berikut:

 x1 = x02 mod n = 92 mod 253 = 81 z1 = 1 (karena 81 ganjil, bit LSB-nya pasti 1)

x2 = x12 mod n = 812 mod 253 = 236 z2 = 0 (karena 236 genap, bit LSB-nya pasti 0)

x3 = x22 mod n = 2362 mod 253 = 36 z1 = 0

x4 = x32 mod n = 362 mod 253 = 31 z1 = 1

x5 = x42 mod n = 312 mod 253 = 202 z1 = 0

52

Page 53: makalah kriptografi

 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 = pq3. Pilih bilangan bulat acak lain, s, sebagai x0 yang dalam hal ini 2 sn4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang diinginkan:

a.   Hitung xi= xi – 1 e mod n degan x0 = s.

b.   zi= bit LSB (Least Significant Bit) dari xi

5. Barisan bit acak adalah z1, z2, z3, …

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)

f(x) = r x(1 – x)

Dalam bentuk persamaan iteratif:

xi+1 = rxi(1 – xi)

r : laju pertumbuhan ( 0 r 4 )

x : nilai-nilai chaos (0 x 1)

53

Page 54: makalah kriptografi

Sistem chaos berguna untuk pembangkitan bilangan acak

xi+1 = rxi(1 – xi)

Misal r = 4.0 dan nilai awal x0 = 0.456

x1 = 4.0x0(1 – x0 ) = 0.992256

x2 = 4.0x1(1 – x1 ) = 0.030736

x99 = 4.0x98 (1 – x98 ) = 0.914379

x100 = 4.0x99(1 – x99 ) = 0.313162

Bilangan acak dengan chaos tidak punya periode

BAB VIIFungsi Hash Satu-Arah dan MAC

7.1. Fungsi Hash satu arahFungsi 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

54

Page 55: makalah kriptografi

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 checksum4. 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)

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

55

Page 56: makalah kriptografi

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 TunggalPesan 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 SemulaPesan yang telah diberi bit-bit pengganjalselanjutnya ditambah lagi dengan 64 bit yang

menyatakan panjang pesan semula. Jika panjang pesan > 264 maka yang diambil adalah

panjangnya dalam modulo 264. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan K modulo 264. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi 512 bit.

3. Inisialisai Penyangga MDMD5 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:

56

Page 57: makalah kriptografi

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-0S2. SHA-13. SHA-2

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.

57

Page 58: makalah kriptografi

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 AplikasinyaMAC 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.

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.

58

Page 59: makalah kriptografi

7.5. Algoritma MACPerancangan 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.

BAB VIIITandatangan Digital

8.1. Konsep tanda tangan digitalSejak 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.

59

Page 60: makalah kriptografi

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

8.2. Penandatangan dengan Cara Mengenkripsi PesanA. 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).

60

Page 61: makalah kriptografi

Misalkan BB (Big Brothers) adalah otoritas arbitrase yang dipercaya oleh Alice dan Bob.

BB memberikan kunci rahasia KA kepada Alice dan kunci rahasia KB kepada Bob. Hanya Alice dan BB yang mengetahui KA, begitu juga hanya Bob dan BB yang

mengetahui KB.

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.

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.

61

Page 62: makalah kriptografi

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)

62

Page 63: makalah kriptografi

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 – 12. 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 ≠ 13. 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 ≤ q−1

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 ≤ q−1

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)

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

63

Page 64: makalah kriptografi

5. hitung X = gu1yu2 mod p dan v = X mod q

6. tanda tangan benar jika dan hanya jika v = r

BAB IXProtokol Kriptografi

9.1. Protokol komunikasi dengan sistem kriptografi simetriProtokol 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.

64

Page 65: makalah kriptografi

(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 publikProtokol 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

Bob9.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.

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,

65

Page 66: makalah kriptografi

EPK(K)

(3) Bob mendekripsi pesan dari Alice dengan menggunakan kunci rahasianya (SK) untuk mendapatkan kembali kunci simetri K,

DSK(EPK(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 digital9.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 KA kepada Alice dan kunci rahasia KBkepada Bob (KA dan KBberbeda).

Protokol 5:

(1) Alice mengenkripsi dokumen dengan KA dan mengirimkannya kepada Trent.(2) Trent mendekripsi dokumen dari Alice dengan KA. (3) Trent menambahkan pada dokumen yang sudah didekripsi sebuah pernyataan

sertifikasi bahwa dia telah menerima dokumen itu dari Alice, kemudian mengenkripsi keseluruhannya dengan KB.

(4) Trent mengirim cipherteks yang dihasilkan kepada Bob.(5) Bob mendekripsi cipherteks dengan KB. Ia membaca dokumen dan sertifikasi dari

Trent bahwa Alice yang mengirimkan dokumen tersebut.

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.

66

Page 67: makalah kriptografi

9.3.1.3. Trent mengenkripsi dokumen tersebut dengan KA 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.

(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:

67

Page 68: makalah kriptografi

(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 enkripsi9.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).

SSK-A(M)

(2) Alice mengenkripsi dokumen yang sudah ditandatangi dengan kunci publik Bob (PK-B) dan mengirimkannya kepada Bob

EPK-B(SSK-A(M))

(3) Bob mendekripsi cipherteks yang diterima dengan kunci rahasianya (SK-B).

DSK-B(EPK-B(SSK-A(M))) = SSK-A(M))

(4) Bob melakukan verifikasi dengan mendekripsi hasil pada langkah 3 dengan menggunakan kunci publik Alice dan sekaligus mendapatkan kembali dokumen yang belum dienkripsi.

VPK-A(SSK-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.

68

Page 69: makalah kriptografi

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

EPK-B(SSK-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.

VPK-A(DSK-B(EPK-B(SSK-A(M)))) = M

(3) Bob menandatangani dokumen (M) dengan kunci rahasianya (SK-B), mengenkripsikannya dengan kunci publik Alice (PK-A), dan mengirimkannya ke Alice.

EPK-A(SSK-B(M))

(4) Alice mendekripsi dokumen dengan kunci rahasianya (SK-A) dan memverifikasi sidik dijital dengan kunci publik Bob (PK-B).

VPK-B(DSK-A(EPK-A(SSK-B(M)))) = M ’

Jika M ’ yang dihasilkan sama dengan dokumen yang dikirim oleh Alice (M), maka Alice tahu bahwa Bob menerima dokumennya dengan benar.

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.

69

Page 70: makalah kriptografi

(2) Alice membangkitkan session keyK, mengenkripsikannya dengan kunci publik (PK) Bob, dan mengirimkannya ke Bob,

EPK(K)

(3) Bob mendekripsi pesan dari Alice dengan menggunakan kunci rahasianya (SK) untuk mendapatkan kembali session keyK,

DSK(EPK(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,

EK(M)

(2) Alice mengambil kunci publik Bob dari basisdata.(3) Alice mengenkripsi K dengan dengan kunci publik (PK) Bob,

EPK(K)

(4) Alice mengirim pesan terenkripsi bersama-sama dengan kunci terbenkripsi kepada Bob,

EK(M), EPK(K)

(5) Bob mendekripsi menggunakan kunci rahasianya (SK) untuk mendapatkan kembali session keyK,

DSK(EPK(K)) = K

(6) Bob mendekripsi pesan dengan menggunakan kunci K,

DK(EK(M)) = M

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,

EK(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),

70

Page 71: makalah kriptografi

EPK-B(K), EPK-C(K), EPK-D(K)

(4) Alice mengirim pesan terenkripsi bersama-sama dengan kunci terbenkripsi masing-masing kepada Bob, Carol, dan Dave,

EPK-B(K), EPK-C(K), EPK-D(K), EK(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 = gx mod n

(2) Bob memilih bilangan bulat acak yang besar y dan mengirim hasil perhitungan berikut kepada Alice:

Y = gy mod n

(3) Alice menghitungK = Yx mod n

(4) Bob menghitungK’ = Xy mod n

Jika perhitungan dilakukan dengan benar, maka K = K’. Baik K dan K’ sama dengan gxy 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 = gx mod n

(2) Bob memilih bilangan bulat acak yang besar y dan mengirim hasil perhitungan berikut kepada Alice:

Y = gy mod n

71

Page 72: makalah kriptografi

(3) Alice mengirim hasil perhitungan berikut kepada Bob

X = Yx mod n

(4) Bob menghitung

z =y-1 (balikan y dalam modulo n)

K’ = Xz 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.

BAB XInfrastruktur Kunci Publik

10.1. Sertifikasi Digital(PKI dan CA)

Cara kerja sertifikat digital (PKI dan CA)

72

Page 73: makalah kriptografi

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.

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.

73

Page 74: makalah kriptografi

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

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.509Standar 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

74

Page 75: makalah kriptografi

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.)

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

75

Page 76: makalah kriptografi

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.

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

76

Page 77: makalah kriptografi

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.

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.

77

Page 78: makalah kriptografi

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.

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.

78

Page 79: makalah kriptografi

(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.

BAB XIManajemen 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:

79

Page 80: makalah kriptografi

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 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.

80

Page 81: makalah kriptografi

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, K1 dan K2. Membagi dua langsung K sedemikian sehingga setengah bagian pertama menjadi K1 dan setengah bagian sisanya menjadi K2 tidak dianjurkan, karena dapat memungkinkan pihak lawan menemukan K jika ia hanya mengetahui salah satu dari K1 dan K2. Misalkan K panjangnya 64 bit, dan lawan mengetahui K1, maka K dapat ditentukan dengan hanya 232 percobaaan untuk menemukan K2

secara exhaustive search (lebih sedikit dibandingkan 264 percobaan). Solusi pemecahan yang lebih baik adalah membentuk kunci K dari K1 dan K2 sedemikian

sehingga K = K1K2. Dalam hal ini, ukuran K1 dan K2 sama dengan ukuran K, sehingga jika salah satu dari komponen K1 atau K2 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.

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.

81

Page 82: makalah kriptografi

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.

BAB XIIKriptografi dalam Kehidupan Sehari-hari

12.1. Kartu CerdasSalah 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.

82

Page 83: makalah kriptografi

Jenis antarmuka yang umum adalah contact interface, yang dalam hal ini kartu cerdas dimasukkan k e dalamalatpembaca(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)k e kartuuntukditandatanganidenganmenggunakan 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 selulerdengan 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.

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

83

Page 84: makalah kriptografi

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.

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

84

Page 85: makalah kriptografi

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 SSL12.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.

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,

85

Page 86: makalah kriptografi

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.

BAB XIIISteganografi dan Watermarking

13.1. Sejarah steganografiSteganografi 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).

86

Page 87: makalah kriptografi

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.

13.2. Persoalan tahanan penjara

87

Page 88: makalah kriptografi

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 lainLupakan asal rumor itu jangan ambil manfaatnya setelah aku tutup usia

Fred tidak akan curiga!

Information hiding dengan steganografi!

13.3. Konsep dan terminologySteganografi 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 .

13.4. Teknik penyembunyian dataTiga 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).

88

Page 89: makalah kriptografi

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

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.

89

Page 90: makalah kriptografi

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

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

90

Page 91: makalah kriptografi

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 watermarkingTujuan: untuk menjaga integritas/orisinilitas media digital.

Robust watermarkingTujuan: untuk menyisipkan label kepemilikan media digital.

Suatu teknik watermark yang baik diharapkan dapat memenuhi kriteria-kriteria

karakteristikwatermarkantara lain yaitu:

i. ImperceptibilityHal 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. RobustnessKarakteristik 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. KapasitasKapasitas 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.

iv. KeamananDengan 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:

91

Page 92: makalah kriptografi

a. Copyright protectionCopyright 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. AutentikasiSebagian 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 ControlKonsep 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.

13.8. Metode image watermarking

Metode dalam ranah spasialMenyisipkan watermark langsung pada nilai byte dari pixel citra.

Metode dalam ranah transformMenyisipkan watermark pada koefisien transformasi dari citra.

Image Watermarking dalam Ranah DCTMenyisipkan 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.

92

Page 93: makalah kriptografi

Metode Spread SpectrumDiusulkan 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 ().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.

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

93

Page 94: makalah kriptografi

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

Perangkat lunak digital watermarking dari Blue Spike’s 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.org Menyediakan secara gratis kakas steganografi. 2. www.demcom.com Perangkat lunak Steaganos Security Suite dari DemCom mengizinkan anda

untuk mengenkripsi dan menyembunyikan arsip ke dalam berkas audio, video, teks, atau HTML.

94

Page 95: makalah kriptografi

3. www.cl.cam.ac.uk/~fapp2/steganography/index.html Homepage mengenai information hiding yang memiliki informasi teknis, berita, dan link yang berkaitan dengan digital watermarking dan steganografi.

4. www.digimarc.com Homepage lainnya dari Digimarc.

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).

95

Page 96: makalah kriptografi

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.

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&slink=infobukukategori.php

96

Page 97: makalah kriptografi

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+kriptografi14. www.pustakaskripsi.com/aplikasi- kriptografi -dengan-algoritma 15. www.ferri-zhou.com/amazon/.../contoh- makalah - kriptografi -pdf 16. www.duniaremaja.net/pdf/makalah-kriptografi.html17. Google.com

97

Page 98: makalah kriptografi

98