Kasus-Studi Kasus di mana 

jumlah data tidak diketahui, atau kontinu - seperti aliran jaringan. Blok cipher, di sisi lain, atau lebih 

berguna saat  jumlah data sudah diketahui sebelumnya - seperti file, bidang data, atau protokol 

permintaan/respons, seperti HTTP di mana panjang total pesan diketahui sudah ada di awal.

Dengan deskripsi karakteristik algoritma enkripsi yang berbeda ini, kita sekarang dapat beralih ke 

beberapa algoritma enkripsi yang banyak dipakai . Kami menyajikan bagaimana masing-masing 

bekerja, sedikit konteks historis dan motivasi untuk masing-masing, dan beberapa kekuatan dan 

kelemahan. Kami mengidentifikasi algoritme ini berdasarkan nama sebab  nama-nama ini muncul 

dalam literatur populer. Kami juga memperkenalkan algoritme simetris lainnya di Bab 12. Tentu saja 

Anda harus mengetahui bahwa ini hanyalah contoh algoritme populer; dari waktu ke waktu algoritma 

ini dapat digantikan oleh orang lain. Untuk sebagian besar kriptografi telah menjadi plug-and-play, 

yang berarti bahwa dalam sebuah aplikasi pengembang dapat mengganti satu algoritma untuk 

yang lain dari jenis yang sama dan karakteristik yang sama. Dengan demikian kemajuan di bidang 

kriptografi tidak mengharuskan semua aplikasi yang memakai  kriptografi harus ditulis ulang.

2.5.5 DES: Data Encryption Standard

DES merupakan salah satu algoritma kriptografi cipher block dengan ukuran blok 64 bit dan ukuran 

kuncinya 56 bit. Algoritma DES dibuat di IBM, dan merupakan modifikasi daripada algoritma terdahulu 

yang bernama Lucifer. Lucifer merupakan algoritma cipher block yang beroperasi pada blok masukan 

64 bit dan kuncinya berukuran 128 bit. 


95

Pengurangan jumlah bit kunci pada DES dilakukan dengan alasan agar mekanisme algoritma ini 

bisa diimplementasikan dalam satu chip. DES pertama kali dipublikasikan di Federal Register pada 

17 Maret 1975. Setelah melalui banyak diskusi, akhirnya algortima DES diadopsi sebagai algoritma 

standar yang dipakai  oleh NBS (National Bureau of Standards) pada 15 Januari 1977. Sejak 

saat itu, DES banyak dipakai  pada dunia penyebaran informasi untuk melindungi data agar tidak 

bisa dibaca oleh orang lain.

Skema Algoritma DES

Algoritma DES dikembangkan di IBM dibawah kepemimpinan 

W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada 

algoritma Lucifer yang dibuat oleh Horst Feistel. Algoritma ini telah 

disetujui oleh National Bureau of Standard (NBS) setelah penilaian 

kekuatannya oleh National Security Agency (NSA) Amerika Serikat. 

DES termasuk ke dalam kriptografi kunci-simetri dan tergolong 

jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. Lihat 

Gambar 2.21.

Panjang kunci ekternal = 64 bit (sesuai ukuran blok), namun  hanya 56 

bit yang dipakai (8 bit paritas tidak dipakai ). Setiap blok (plainteks 

atau cipherteks) dienkripsi dalam 16 putaran. Setiap putaran memakai  kunci internal berbeda. 

Kunci internal (56-bit) dibangkitkan dari kunci eksternal. Setiap blok mengalami permutasi awal (IP), 

16 putaran enciphering, dan inversi permutasi awal (IP-1 ).

Algoritma dimulai dengan mengenkripsi plaintext sebagai blok 64 bit. Kuncinya panjangnya 64 bit, 

namun  sebenarnya bisa berupa angka 56-bit. (Ekstra 8 bit sering dipakai  sebagai digit cek namun  

tidak mempengaruhi enkripsi dalam implementasi normal. Jadi kami mengatakan bahwa DES 

memakai  kunci, kekuatannya yaitu  56 bit.) pemakai  dapat memilih kunci baru kapan saja 

di sana yaitu  ketidakpastian tentang keamanan kunci lama.

DES mengenkripsi blok 64-bit dengan memakai  kunci 56-bit

DES hanya memakai  operasi aritmatika dan logika standar pada data biner hingga panjang 64 

bit, sehingga cocok untuk diimplementasikan dalam perangkat lunak pada sebagian besar komputer 

saat ini. Enkripsi dengan DES melibatkan 16 iterasi, masing-masing memakai  penggantian blok 

bit (disebut langkah substitusi), mengacak bit (disebut langkah permutasi), dan mencampur bit dari 

kunci (disebut transformasi kunci). Meskipun rumit, prosesnya berbasis tabel dan berulang, sehingga 

cocok untuk diimplementasikan pada chip tujuan tunggal. Faktanya, beberapa chip seperti itu tersedia 

di pasaran untuk dipakai  sebagai komponen dasar pada perangkat yang memakai  enkripsi 

DES dalam suatu aplikasi.

Double dan Triple DES

Seperti yang Anda ketahui, daya komputasi telah meningkat pesat selama beberapa dekade terakhir, 

dan ia berjanji untuk terus melakukannya. Untuk alasan ini, panjang kunci DES 56-bit tidak cukup 

panjang untuk kenyamanan sebagian orang. Sejak tahun 1970-an, para peneliti dan praktisi telah 

tertarik dengan versi DES yang lebih panjang. Tapi kami punya masalah: Desain algoritma DES 

diperbaiki ke kunci 56-bit.

Gambar 2.21 Skema Global 

Algoritma DES


96

Double DES

Untuk mengatasi ketidaknyamanan, beberapa peneliti menyarankan memakai  enkripsi ganda 

untuk kerahasiaan yang lebih besar. Enkripsi ganda bekerja dengan cara berikut. Ambil dua kunci, 

k1 dan k2, dan lakukan dua enkripsi, satu di atas yang lain: E(k2, E(k1,m)). Secara teori, pendekatan 

ini harus melipatgandakan kesulitan memecahkan enkripsi, seperti halnya dua kunci lebih sulit untuk 

dipilih daripada satu.

Sayangnya, anggapan itu salah. Ralph Merkle dan Martin Hellman menunjukkan bahwa dua enkripsi 

hampir tidak lebih baik dari satu: dua enkripsi dengan kunci 56-bit yang berbeda setara dalam 

faktor kerja dengan satu enkripsi dengan kunci 57-bit. Dengan demikian, enkripsi ganda hanya 

menambahkan sedikit pekerjaan ekstra untuk penyerang yang mencoba menyimpulkan kunci di 

mana sepotong ciphertext dienkripsi. Seperti yang akan segera kami jelaskan, beberapa kunci 

DES 56-bit telah diturunkan hanya dalam beberapa hari; dua kali hari masih berhari-hari, saat  

harapannya yaitu  menambahkan bulan jika tidak bertahun-tahun bekerja untuk enkripsi kedua. 

Sayangnya, DES ganda pada dasarnya tidak menambahkan keamanan lagi.

Triple DES

Namun, trik sederhana memang meningkatkan keamanan DES. memakai  tiga kunci menambah 

kekuatan yang signifikan.

Yang disebut prosedur triple DES yaitu  C = E(k3, E(k2, E(k1,m))). Artinya, Anda mengenkripsi 

dengan satu kunci, lalu dengan yang kedua, dan terakhir dengan yang ketiga. Proses ini memberikan 

kekuatan yang kira-kira setara dengan kunci 112-bit (sebab  serangan DES ganda mengalahkan 

kekuatan salah satu dari tiga kunci, namun  tidak berpengaruh pada kunci ketiga).

Variasi kecil dari triple DES, yang oleh sebagian orang juga membingungkan disebut triple DES, 

yaitu  C = E(k1, D(k2, E(k1,m))). Artinya, Anda mengenkripsi dengan satu kunci, mendekripsi 

dengan yang kedua, dan mengenkripsi dengan yang pertama lagi. Versi ini hanya membutuhkan 

dua kunci. (Langkah dekripsi kedua juga membuat proses ini bekerja untuk enkripsi tunggal dengan 

satu kunci: Dekripsi membatalkan enkripsi pertama, sehingga hasil akhirnya yaitu  satu enkripsi. 

Bentuk enkripsi-dekripsi-enkripsi berguna sebab  satu algoritma dapat menghasilkan hasil untuk 

kedua konvensional DES satu kunci dan metode dua kunci yang lebih aman.) Versi dua kunci, tiga 

langkah ini tunduk pada serangan rumit lainnya, sehingga kekuatannya dinilai hanya sekitar 80 bit. 

Namun, 80 bit berada di luar kemampuan cracking yang wajar untuk perangkat keras saat ini.

Singkatnya, DES biasa memiliki ruang kunci 56 bit, DES ganda hampir tidak lebih baik, namun  DES 

tiga kunci dua memberikan panjang efektif 80 bit, dan DES tiga kunci memberikan kekuatan 112 

bit. Ingat mengapa kita begitu terpaku pada ukuran kunci: Jika tidak ada cara lain yang berhasil, 

penyerang selalu dapat mencoba semua kunci yang mungkin. Kunci yang lebih panjang berarti 

secara signifikan lebih banyak pekerjaan agar serangan ini membuahkan hasil, dengan faktor kerja 

berlipat ganda untuk setiap bit tambahan dalam panjang kunci. Sekarang, kira-kira setengah abad 

setelah DES dibuat, kunci 56-bit tidak memadai untuk kerahasiaan yang serius, namun  ukuran kunci 

efektif 80- dan 112-bit memberikan keamanan yang wajar. 


97

Sejak pertama kali diumumkan, DES menjadi kontroversi. Banyak peneliti mempertanyakan 

keamanan yang diberikannya. sebab  hubungannya dengan pemerintah AS, khususnya Badan 

Keamanan Nasional AS (NSA) yang membuat perubahan tertentu yang tidak dapat dijelaskan 

antara apa yang diusulkan IBM dan apa yang sebenarnya diterbitkan oleh NBS, beberapa orang 

menduga bahwa algoritme entah bagaimana melemah, untuk memungkinkan pemerintah mengintip 

data terenkripsi. Sebagian besar kontroversi ini telah muncul dalam literatur terbuka, namun  fitur DES 

tertentu belum diungkapkan oleh para desainer atau disimpulkan oleh analis luar.

Whitfield Diffie dan Martin Hellman berpendapat pada tahun 1977 bahwa kunci 56-bit terlalu pendek. 

Pada tahun 1977, dilarang untuk menguji semua 256 (sekitar 1015) kunci pada komputer saat itu. 

namun  mereka berpendapat bahwa seiring waktu, komputer akan menjadi lebih kuat dan algoritma 

DES akan tetap tidak berubah; akhirnya, kecepatan komputer akan melebihi kekuatan DES. Persis 

itu terjadi sekitar 20 tahun lalu . Pada tahun 1997, para peneliti yang memakai  jaringan 

lebih dari 3.500 mesin secara paralel dapat menyimpulkan kunci DES dalam pekerjaan empat bulan. 

Dan pada tahun 1998 dengan biaya sekitar $200.000, peneliti AS membangun mesin “DES cracker” 

khusus yang dapat menemukan kunci DES dalam waktu sekitar empat hari, hasilnya lalu  

ditingkatkan menjadi beberapa jam.

Apakah ini berarti DES tidak aman? Tidak, tidak persis. Belum ada yang menunjukkan kelemahan 

serius dalam algoritma DES itu sendiri. Serangan tahun 1997 membutuhkan banyak kerja sama, 

dan mesin tahun 1998 agak mahal. namun  bahkan jika DES konvensional dapat diserang, triple 

DES masih jauh di luar kekuatan serangan ini. Ingat dampak pertumbuhan eksponensial: Mari 

kita katakan, untuk kesederhanaan, DES kunci tunggal dapat dipecahkan dalam satu jam. Versi 

kunci ganda yang sederhana lalu  dapat dipecahkan dalam dua jam. Tapi 2, yang lebih dari 

16.700.000, berarti akan memakan waktu 16 juta jam, hampir 2.000 tahun, untuk mengalahkan 

enkripsi DES tiga kunci dua, dan jauh lebih lama untuk versi tiga kunci.

Namun demikian, struktur dasar DES dengan kunci 56-bit dengan panjang tetap dan jumlah iterasi 

yang tetap menunjukkan perlunya algoritma baru yang lebih kuat, dan lebih fleksibel. Pada tahun 

1995, NIST mulai mencari algoritma enkripsi baru yang kuat. Tanggapan terhadap pencarian itu 

telah menjadi Standar Enkripsi Lanjutan, atau AES.

2.5.6 AES: Advanced Encryption System

Setelah kompetisi dan peninjauan publik, NIST memilih algoritme bernama Rijndael sebagai sistem 

enkripsi canggih baru; Rijndael sekarang lebih dikenal sebagai AES. AES diadopsi untuk dipakai  

oleh pemerintah AS pada bulan Desember 2001 dan menjadi Federal Information Processing 

Standard 197. AES kemungkinan akan menjadi algoritme simetris kelas komersial pilihan selama 

bertahun-tahun, jika bukan beberapa dekade. Mari kita lihat lebih dekat.

Sekilas tentang Rijndael

Rijndael yaitu  algoritma cepat yang dapat dengan mudah diimplementasikan pada prosesor 

sederhana. Meskipun memiliki dasar matematis yang kuat, ia terutama memakai  operasi 

substitusi, transposisi, pergeseran, OR eksklusif, dan penjumlahan. Seperti DES, AES memakai  

siklus berulang.


98

Ada 10, 12, atau 14 siklus untuk kunci masing-masing 128, 192, dan 256 bit. Di Rijndael, siklusnya 

disebut “putaran”. Setiap putaran terdiri dari empat langkah yang menggantikan dan mengacak bit. 

Bit dari kunci sering digabungkan dengan bit hasil antara, jadi bit kunci juga tersebar dengan baik 

di seluruh hasil. Selanjutnya, keempat langkah ini sangat cepat. Algoritma AES digambarkan pada 

Gambar 2-22.

Gambar  2-22 Algoritma Enkripsi AES

Kekuatan Algoritma

Karakteristik dan kekuatan nyata dari DES dan AES dibandingkan pada Tabel 2-12. Ingat, tentu 

saja, bahwa angka-angka kekuatan ini hanya berlaku jika penerapan dan pemakai annya kuat; 

algoritma yang kuat kehilangan kekuatan jika dipakai  dengan kelemahan yang memungkinkan 

orang luar menentukan properti kunci dari data terenkripsi.


99

Tabel 2-12 Perbandingan DES dan AES

Dasar untuk 

Perbandingan DES (Standar Enkripsi Data) AES (Standar Enkripsi Lanjutan)

Dasar

Dalam DES, blok data dibagi menjadi 

dua.

Di AES seluruh blok data diproses 

sebagai matriks tunggal.

Prinsip

DES bekerja pada struktur Feistel 

Cipher.

AES bekerja pada Prinsip Substitusi 

dan Permutasi.

Plaintext Plaintext yaitu  dari 64 bit 

Plaintext bisa dari 128.192, atau 256 

bit

Ukuran kunci

DES dibandingkan dengan AES 

memiliki ukuran kunci yang lebih 

kecil. 

AES memiliki ukuran kunci yang lebih 

besar dibandingkan dengan DES.

Babak 16 putaran

10 putaran untuk 128-bit algo

12 putaran untuk 192-bit algo

14 putaran untuk 256-bit algo

Rounds 

Names

Permutasi Ekspansi, Xor, S-box, 

P-box, Xor dan Swap.

Subbytes, Shiftrows, Campur kolom, 

Addroundkeys.

Keamanan

DES memiliki kunci yang lebih kecil 

yang kurang aman.

AES memiliki kunci rahasia yang besar 

sehingga, lebih aman.

Kecepatan DES relatif lebih lambat. AES lebih cepat.

Selain itu, jumlah siklus dapat diperpanjang secara alami. Dengan DES algoritme didefinisikan 

untuk 16 siklus secara tepat; untuk memperluas jumlah itu akan membutuhkan redefinisi algoritma 

yang substansial. Struktur internal AES tidak memiliki batasan apriori pada jumlah siklus. Jika 

cryptanalyst pernah menyimpulkan bahwa 10 atau 12 atau 14 putaran terlalu rendah, satu-satunya 

perubahan yang diperlukan untuk meningkatkan algoritma yaitu  dengan mengubah batas pada 

pengulangan.

Sebuah tanda kepercayaan yaitu  bahwa pemerintah AS telah menyetujui AES untuk melindungi 

dokumen rahasia Rahasia dan Top Secret. Ini yaitu  pertama kalinya Amerika Serikat menyetujui 

pemakai an algoritma komersial yang berasal dari luar pemerintah (dan lebih jauh lagi, di luar 

Amerika Serikat) untuk mengenkripsi data rahasia.

Namun, kami tidak bisa berpuas diri. Tidak ada yang bisa memprediksi sekarang batasan apa yang 

mungkin diidentifikasi oleh cryptanalyst di masa depan. Untungnya, ahli kriptologi berbakat terus 

menyelidiki algoritma yang lebih kuat yang akan dapat menggantikan AES saat  menjadi usang. 

Saat ini, AES tampaknya merupakan peningkatan yang signifikan dari DES, dan dapat ditingkatkan 

secara alami jika perlu. DES masih dipakai  secara luas, namun  AES juga diadopsi secara luas, 

terutama untuk aplikasi baru.


100

2.5.7 Kriptografi Kunci Publik

Sejauh ini, kita telah melihat algoritma enkripsi dari sudut pandang membuat pengacakan mudah 

bagi pengirim (sehingga enkripsi cepat dan sederhana) dan dekripsi mudah bagi penerima namun  

tidak untuk penyusup. namun  pandangan fungsional untuk mengubah plaintext menjadi ciphertext 

ini hanyalah sebagian dari gambarannya. Kita juga harus mencari cara untuk mendistribusikan 

kunci enkripsi. Kami telah mencatat betapa bergunanya kunci dalam menghalangi penyusup, namun  

kuncinya harus tetap rahasia agar efektif. Algoritma enkripsi yang telah kami sajikan sejauh ini disebut 

algoritma simetris atau kunci rahasia. Dua algoritma simetris yang paling banyak dipakai , DES 

dan AES, beroperasi dengan cara yang sama: Dua pemakai  memiliki salinan dari: kunci yang 

sama. Satu pemakai  memakai  algoritma untuk mengenkripsi beberapa plaintext di bawah 

kunci, dan pemakai  lain memakai  kebalikan dari algoritma dengan kunci yang sama untuk 

mendekripsi ciphertext. Inti dari masalah ini yaitu  bahwa semua kekuatan enkripsi bergantung 

pada kerahasiaan kunci.

Pada tahun 1976, Whitfield Diffie dan Martin Hellman menemukan kriptografi kunci publik, jenis 

enkripsi baru. Dengan sistem enkripsi kunci publik, setiap pemakai  memiliki dua kunci, salah 

satunya tidak harus dirahasiakan. Meskipun berlawanan dengan intuisi, sebenarnya sifat publik 

dari kunci ini  tidak mengkompromikan kerahasiaan sistem. Sebaliknya, dasar untuk enkripsi 

kunci publik yaitu  untuk membiarkan kunci ini  dibocorkan namun  untuk menjaga rahasia 

teknik dekripsi. Kriptosistem kunci publik mencapai tujuan ini dengan memakai  dua kunci: satu 

untuk mengenkripsi dan yang lainnya untuk mendekripsi. Meskipun kunci-kunci ini diproduksi dalam 

pasangan yang berhubungan secara matematis, orang luar secara efektif tidak dapat memakai  

satu kunci untuk menurunkan yang lain.

Di bagian ini, kita melihat cara untuk mengizinkan kunci menjadi publik namun  tetap melindungi 

pesannya. Kami juga fokus pada algoritme RSA, sistem kunci publik kelas komersial yang populer. 

Algoritma lain, seperti kriptosistem kurva eliptik, dan algoritma El Gamal beroperasi dengan cara 

yang sama (walaupun matematika dasarnya sangat berbeda). Kami berkonsentrasi pada RSA 

sebab  banyak aplikasi yang memakai nya. Kami juga menyajikan skema matematika di 

mana dua pemakai  dapat bersama-sama membuat kunci enkripsi rahasia tanpa memiliki rahasia 

sebelumnya.

Alasan

Mengapa membuat publik kunci diinginkan? Dengan sistem kunci simetris konvensional, setiap 

pasangan pemakai  membutuhkan kunci yang terpisah. namun  dengan sistem kunci publik, siapa 

pun yang memakai  satu kunci publik dapat mengirim pesan rahasia ke pemakai , dan pesan 

ini  tetap terlindungi secara memadai agar tidak dibaca oleh pencegat. Mari kita selidiki mengapa 

demikian.

Ingat bahwa secara umum, sistem n-pemakai  memerlukan n * (n – 1)/2 kunci, dan setiap pemakai  

harus melacak dan mengingat kunci untuk setiap pemakai  lain yang ingin berkomunikasi dengannya. 

Seiring bertambahnya jumlah pemakai , jumlah kunci meningkat dengan cepat, seperti yang 

ditunjukkan pada Gambar 2-23. Menentukan dan mendistribusikan kunci ini yaitu  masalah. Masalah 

yang lebih serius yaitu  menjaga keamanan untuk kunci yang sudah didistribusikan—kami tidak 


101

dapat mengharapkan pemakai  untuk mengingat begitu banyak kunci. Lebih buruk lagi, kehilangan 

atau eksposur kunci satu pemakai  memerlukan pengaturan pasangan kunci baru dengan masing-

masing koresponden pemakai  ini .

Kunci baru yang bertambah

pemakai  saat ini

pemakai  Baru

Gambar 2-23 Ledakan dalam Jumlah pemakai  Kunci Baru

Karakteristik

Kita dapat mengurangi masalah proliferasi kunci dengan memakai  pendekatan kunci publik. 

Dalam kunci publik atau sistem enkripsi asimetris, setiap pemakai  memiliki dua kunci: kunci publik 

dan kunci pribadi. pemakai  dapat dengan bebas mempublikasikan kunci publik sebab  setiap kunci 

hanya melakukan enkripsi atau dekripsi, namun  tidak keduanya. Kunci beroperasi sebagai kebalikan, 

artinya satu kunci membatalkan enkripsi yang disediakan oleh kunci lainnya. namun  menyimpulkan 

satu kunci dari yang lain secara efektif tidak mungkin.

Untuk melihat caranya, biarkan kPRIV menjadi kunci pribadi pemakai , dan biarkan kPUB menjadi 

kunci publik yang sesuai. lalu , plaintext terenkripsi memakai  kunci publik didekripsi 

dengan penerapan kunci pribadi; kita menulis hubungan sebagai :

P = D(kPRIV, E(kPUB,P))

Artinya, pemakai  dapat memecahkan kode dengan kunci pribadi apa yang telah dienkripsi orang 

lain dengan kunci publik yang sesuai. Selanjutnya, dengan beberapa algoritma enkripsi kunci publik, 

termasuk RSA, kami memiliki hubungan ini:

P = D(kPUB, E(kPRIV,P))

Dengan kata lain, pemakai  dapat mengenkripsi pesan dengan kunci pribadi, dan pesan hanya 

dapat diungkapkan dengan kunci publik yang sesuai.

Kedua properti ini memberi tahu kita bahwa kunci publik dan pribadi dapat diterapkan dalam urutan 

mana pun. Secara khusus, fungsi dekripsi D dapat diterapkan pada argumen apa pun sehingga kita 

dapat mendekripsi sebelum mengenkripsi. Dengan enkripsi konvensional, kita jarang berpikir untuk 

mendekripsi sebelum mengenkripsi. namun  konsepnya masuk akal dengan kunci publik, di mana itu 

berarti menerapkan transformasi pribadi terlebih dahulu dan lalu  publik.

Kami telah mencatat bahwa masalah utama dengan enkripsi simetris yaitu  banyaknya kunci 

yang harus disimpan dan dilacak oleh satu pemakai . Dengan kunci publik, hanya dua kunci yang 


102

diperlukan per pemakai : satu publik dan satu pribadi. Mari kita lihat apa perbedaannya dalam jumlah 

kunci yang dibutuhkan. Misalkan kita memiliki tiga pemakai , B, C, dan D, yang harus menyampaikan 

pesan yang dilindungi ke pemakai  A dan juga satu sama lain. sebab  setiap pasangan pemakai  

yang berbeda membutuhkan sebuah kunci, setiap pemakai  akan membutuhkan tiga kunci yang 

berbeda; misalnya, A akan membutuhkan kunci untuk B, kunci untuk C, dan kunci untuk D. namun  

memakai  enkripsi kunci publik, masing-masing B, C, dan D dapat mengenkripsi pesan untuk A 

dengan memakai  kunci publik A. Jika B telah mengenkripsi pesan memakai  kunci publik 

A, C tidak dapat mendekripsinya, bahkan jika C tahu pesan ini  dienkripsi dengan kunci publik 

A. Menerapkan kunci publik A dua kali, misalnya, tidak akan mendekripsi pesan. (Kami berasumsi, 

tentu saja, bahwa kunci pribadi A tetap rahasia.) Dengan demikian, jumlah kunci yang dibutuhkan 

dalam sistem kunci publik hanya dua per pemakai .

2.5.8 Algoritma Rivest–Shamir–Adelman (RSA)

Sistem kriptografi Rivest–Shamir–Adelman (RSA) yaitu  sistem kunci publik. Berdasarkan masalah 

sulit yang mendasari dan dinamai menurut tiga penemunya (Ronald Rivest, Adi Shamir, dan Leonard 

Adleman), algoritma ini diperkenalkan pada tahun 1978. Cryptanalysts telah melakukan RSA untuk 

cryptanalysis yang ekstensif, namun  mereka tidak menemukan kekurangan yang serius. Dua kunci 

yang dipakai  dalam RSA, d dan e, dipakai  untuk dekripsi dan enkripsi. Mereka sebenarnya 

dapat dipertukarkan: Keduanya dapat dipilih sebagai kunci publik, namun  yang satu telah dipilih, 

yang lain harus dirahasiakan. Untuk mempermudah, kita sebut kunci enkripsi e dan kunci dekripsi 

d. Kami menyatakan plaintext sebagai P dan ciphertext yang sesuai sebagai C. C = RSA(P,e). Juga, 

sebab  sifat algoritme RSA, kunci dapat diterapkan dalam salah satu urutan:

P = E(D(P)) = D(E(P))

atau

P = RSA(RSA(P, e), d) = RSA(RSA(P, d), e)

(Anda dapat menganggap E dan D sebagai dua fungsi yang saling melengkapi, yang masing-masing 

dapat "membatalkan" efek yang lain.)

RSA memang memiliki properti yang disayangkan bahwa kuncinya panjang: 256 bit dianggap sebagai 

panjang minimum yang dapat dipakai , namun  dalam sebagian besar konteks, para ahli lebih 

memilih kunci pada urutan 1000 hingga 2000 bit. Enkripsi di RSA dilakukan dengan eksponensial, 

menaikkan setiap blok plaintext ke pangkat; bahwa kekuatan yaitu  kuncinya e. Berbeda dengan 

substitusi cepat dan transposisi algoritma simetris, eksponensial sangat memakan waktu di komputer. 

Lebih buruk lagi, waktu untuk mengenkripsi meningkat secara eksponensial saat eksponen (kunci) 

bertambah panjang. Dengan demikian, RSA jauh lebih lambat dari DES dan AES.

Algoritme enkripsi didasarkan pada masalah mendasar dari memfaktorkan bilangan besar dalam 

himpunan berhingga yang disebut bidang. Sejauh ini, belum ada yang menemukan jalan pintas 

atau cara mudah untuk memfaktorkan bilangan besar dalam suatu bidang. Dalam makalah yang 

sangat teknis namun sangat bagus, Dan Boneh [BON99] meninjau semua serangan kriptanalitik 

yang diketahui pada RSA dan menyimpulkan bahwa tidak ada yang signifikan. sebab  masalah 

faktorisasi telah terbuka selama beberapa dekade, sebagian besar kriptografer menganggap masalah 

ini sebagai dasar yang kuat untuk sistem kripto yang aman.


103

Untuk meringkas, dua algoritma simetris DES dan AES menyediakan enkripsi solid dari blok 64 

hingga 256 bit data. Algoritma asimetris RSA mengenkripsi blok dengan berbagai ukuran. DES dan 

AES secara substansial lebih cepat daripada RSA, dengan faktor 10.000 atau lebih, dan operasi 

primitif mereka yang agak sederhana telah dibangun ke dalam beberapa chip komputer, membuat 

enkripsi mereka bahkan lebih efisien daripada RSA. Oleh sebab  itu, orang cenderung memakai  

DES dan AES sebagai pekerjaan utama kriptografi, dan memesan RSA yang lebih lambat untuk 

pemakai an terbatas di mana ia unggul.

Karakteristik algoritma kunci rahasia (simetris) dan kunci publik (asimetris) dibandingkan pada 

Tabel 2-13.

Tabel 2-13 Perbandingan Kunci Rahasia dan Enkripsi Kunci Publik

Kunci Rahasia (Symmetric Key) Kunci Publik (Asymmetric)

Jumlah Kunci 1 2

Ukuran Kunci  

(bits)

Tergantiung dari algoritmanya : 56 

-112 (DES); 128 - 256 (AES)

Tak terbatas : umumnya tidak 

lenuh dari 256; 1000 - 2000 saat 

ini dianggap sebagai yang sering 

dipakai

Proteksi Kunci Harus di dirahasiakan

Satu kunci harus dirahasiakan; 

yang satu boleh diekspos

pemakai an 

terbaik

para pekerja di bidang cryptographic, 

kerahasiaan dan integritas data, dari 

satu karakter ke blok data, messages 

dan file

Pertukaran kunci, auntentifikasi dan 

pendaftaran

Distribusi Kunci

Harus out of band (menghubungkan 

komputer secara langsung dengan 

port console atau dengan port 

auxiliary (AUX) dari router yang akan 

dikonfigurasikan

Kunci publik bisa digunalan untuk 

membuka kunci lain

Kecepatan Cepat

Lambat, biasanya dengan faktor 

hingga 10.000 lebih lambat dari 

algoritma simetrik 

2.5.9 Kriptografi Kunci Publik untuk Bertukar Kunci Rahasia

Algoritma enkripsi saja bukanlah jawaban untuk kebutuhan enkripsi semua orang. Meskipun enkripsi 

mengimplementasikan saluran komunikasi yang dilindungi, enkripsi juga dapat dipakai  untuk 

tugas lain. Faktanya, menggabungkan enkripsi simetris dan asimetris sering kali memanfaatkan 

fitur terbaik masing-masing.

Misalkan Anda perlu mengirim pesan yang dilindungi ke seseorang yang tidak Anda kenal dan 

tidak mengenal Anda. Situasi ini lebih umum daripada yang mungkin Anda pikirkan. Misalnya, Anda 

mungkin ingin mengirimkan pengembalian pajak penghasilan Anda kepada pemerintah. Anda ingin 

informasi ini  dilindungi, namun  Anda belum tentu mengenal orang yang menerima informasi 

ini . Demikian pula, Anda mungkin ingin membeli dari situs belanja, bertukar email pribadi 

(terenkripsi), atau mengatur dua host untuk membuat saluran yang dilindungi. Masing-masing 

situasi ini bergantung pada kemampuan untuk menukar kunci enkripsi sedemikian rupa sehingga 


104

tidak ada orang lain yang dapat mencegatnya. Masalah dua pihak yang sebelumnya tidak dikenal 

bertukar kunci kriptografi yaitu  sulit dan penting. Memang, masalahnya hampir melingkar: Untuk 

membuat sesi terenkripsi, Anda memerlukan sarana terenkripsi untuk bertukar kunci.

Kriptografi kunci publik dapat membantu. sebab  kunci asimetris berpasangan, setengah dari 

pasangan dapat diekspos tanpa mengorbankan setengah lainnya. Faktanya, Anda mungkin 

menganggap bagian publik dari pasangan kunci benar-benar publik—diposting di situs web publik, 

terdaftar di direktori publik yang mirip dengan daftar telepon, atau dikirim secara terbuka dalam 

pesan email. Itulah keindahan kriptografi kunci publik: Selama kunci privat tidak diungkapkan, kunci 

publik dapat dibuka tanpa mengorbankan keamanan enkripsi.

Protokol Pertukaran Kunci

Misalkan pengirim, Nana, dan penerima, Anto, keduanya memiliki pasangan kunci asimetris untuk 

algoritma enkripsi umum. Kami menyatakan setiap fungsi enkripsi kunci publik sebagai E(k, X), yang 

berarti melakukan fungsi enkripsi kunci publik pada X dengan memakai  kunci k. Panggil kunci 

kPRIV-A, kPUB-A, kPRIV-B, dan kPUB-B, masing-masing untuk kunci privat dan publik Nana dan Anto.

Masalah yang ingin kami pecahkan yaitu  agar Nana dan Anto dapat membuat kunci enkripsi 

rahasia (algoritma simetris) yang hanya mereka yang tahu. Solusi paling sederhana yaitu  Nana 

memilih kunci simetris K, dan mengirim E(kPRIV-A, K) ke Anto. Anto mengambil kunci publik Nana, 

menghapus enkripsi, dan mendapatkan K.

Namun, analisis ini cacat. Bagaimana pengirim mengetahui kunci publik benar-benar milik penerima 

yang dituju? Pertimbangkan, misalnya, skenario berikut. Misalkan Nana dan Anto tidak memiliki 

papan buletin yang nyaman. Jadi, Nana hanya meminta kuncinya pada Anto.  Simak skenario 

percakaapan yang terjadi berikut ini :

1.  Nana berkata: Anto, tolong kirimkan saya kunci publik Anda.

2.  Anto menjawab: Ini, Nana; ini yaitu  kunci publik saya.

3.  Nana menjawab: Terima kasih. Saya telah membuat kunci simetris untuk kita gunakan untuk 

pertukaran ini. Saya mengirimi Anda kunci simetris yang dienkripsi di bawah kunci publik 

Anda.

Dalam subversi yang ditunjukkan pada Gambar 2-25, kami memasukkan penyerang, Revan, ke 

dalam komunikasi ini.

1.  Nana berkata: Anto, tolong kirimkan saya kunci publik Anda.

1a. Revan mencegat pesan dan membuat pesan baru untuk Anto, yang mengaku berasal dari Nana 

namun  dengan alamat pengirim Revan, meminta kunci publik Anto.

2.  Anto menjawab: Ini, Nana; ini yaitu  kunci publik saya. (sebab  alamat pengirim di langkah 1a, 

balasan ini ditujukan ke Revan.)

2a. Revan memegang kunci publik Anto dan mengirimkan kunci publik Revan sendiri ke Nana, 

menuduhnya dari Anto.

3.  Nana menjawab: Terima kasih. Saya telah membuat kunci simetris untuk kita gunakan untuk 

pertukaran ini. Saya mengirimi Anda kunci simetris yang dienkripsi di bawah kunci publik 

Anda.


105

3a. Revan mencegat pesan ini dan memperoleh serta menahan kunci simetris yang telah dihasilkan 

Nana.

3b. Revan membuat kunci simetris baru dan mengirimkannya ke Anto, dengan pesan yang konon 

dari Nana: Terima kasih. Saya telah membuat kunci simetris untuk kita gunakan untuk pertukaran 

ini. Saya mengirimi Anda kunci simetris yang dienkripsi di bawah kunci publik Anda.

1

1a

2

2a

3

3a

Anto, tolong kasih 

tahu kunci publikmu.

Ayolah berikan 

padaku

Ini kunciku, Nana

Ini kunci tengahnya

Ini kunci simetriknya

Ini kunci simetriknya yang lain

 

Gambar 2-25 Protokol Pertukaran Kunci dengan Pria di Tengah

Singkatnya, Revan sekarang memegang dua kunci enkripsi simetris, masing-masing dibagikan 

dengan Nana dan Anto. Revan tidak hanya bisa diam-diam mendapatkan semua simpang susun 

mereka, namun  Nana dan Anto tidak dapat berkomunikasi dengan aman satu sama lain sebab  tidak 

ada yang berbagi kunci satu sama lain.

Mulai saat ini, semua komunikasi melewati Revan. Memiliki kedua kunci simetris, Revan dapat 

mendekripsi apa pun yang diterima, memodifikasinya, mengenkripsinya di bawah kunci lain, 

dan mengirimkan versi yang dimodifikasi ke pihak lain. Baik Nana maupun Anto tidak menyadari 

peralihan itu. Serangan ini yaitu  jenis kegagalan man-in-the-middle, di mana pihak ketiga yang 

tidak berwenang menengahi aktivitas yang dianggap eksklusif antara dua orang. Lihat Studi Kasus 

2-15 untuk contoh serangan man-in-the-middle di dunia nyata.

Istilah man in the middle, terminologi ini sangat seksis. Bahkan jika kami menyebut serangan ini 

sebagai orang-di-tengah atau penyusup-di-tengah dalam buku ini, Anda hanya akan menemukan 

istilah man-in-the-middle yang dipakai  oleh penulis lain, yang juga memakai  istilah 

seperti man- in-the-browser dan man-in-the-phone. Jadi, sayangnya kita terjebak dengan istilah 

konvensional.


106

Man in The Middle attack atau MiTM merupakan istilah yang dipakai  saat  hacker memposisikan 

dirinya di antara percakapan dua belah pihak seperti user dan website. Serangan ini dilakukan 

secara diam-diam sehingga korban tidak menyadari bahwa percakapan atau komunikasi yang 

dilakukan sedang diamati oleh hacker. Agar lebih mudah dipahami, Man in The Middle juga dapat 

digambarkan seperti seorang pekerja pos jahat yang dapat membaca dan mengubah surat sebelum 

diteruskan kepada penerima sah.

Studi Kasus 2-15 : Aspidistra, Manusia Perang Dunia II di Tengah

Selama Perang Dunia II Inggris memakai  serangan man-in-the-middle untuk 

menipu pilot dan warga sipil Jerman. Aspidistra, nama tanaman hias biasa yang 

juga dikenal sebagai tanaman besi tuang sebab  tampaknya kemampuannya untuk 

hidup selamanya, juga merupakan nama yang diberikan kepada pemancar radio 

raksasa yang dibeli oleh Kantor Perang Inggris dari RCA pada tahun 1942. Pemancar 

disiarkan pada 500 kW daya, sepuluh kali daya yang diizinkan ke stasiun AS mana 

pun pada saat itu, yang berarti Aspidistra dapat mengirimkan sinyal dari Inggris ke 

Jerman.

Bagian dari operasi Aspidistra yaitu  untuk menipu pilot Jerman dengan menyiarkan 

arah palsu (darat, pergi ke sini, berbalik). Meskipun pilot juga menerima instruksi 

penerbangan yang valid dari pengontrol mereka sendiri, obrolan tambahan ini 

membingungkan mereka dan dapat mengakibatkan penerbangan yang tidak perlu 

dan kehilangan waktu. Bagian dari serangan ini hanyalah serangan peniruan 

identitas.

Stasiun radio Jerman tertentu di daerah sasaran dimatikan untuk mencegahnya 

menjadi suar yang dapat dipakai  oleh pesawat Sekutu untuk menerima sinyal; 

pengebom akan mengikuti sinyal dan menghancurkan antena dan pemancar di 

dekatnya jika stasiun-stasiun itu terus-menerus menyiarkan. saat  sebuah stasiun 

dimatikan, Inggris langsung mengudara memakai  Aspidistra pada frekuensi 

yang sama dengan stasiun yang baru saja ditutup oleh Jerman. Mereka menyalin 

dan menyiarkan ulang program dari stasiun Jerman lain, namun  mereka menyelingi 

pesan propaganda yang dapat menurunkan moral warga Jerman dan melemahkan 

dukungan untuk upaya perang.

Jerman mencoba untuk melawan siaran palsu dengan menasihati pendengar bahwa 

musuh sedang mentransmisikan dan menasihati penonton untuk mendengarkan 

pengumuman siaran resmi Jerman — yang, tentu saja, disalin dan disiarkan 

sendiri oleh Inggris. (Detail lebih lanjut dan gambar ada di http://www.qsl.net/g0crw/

Special%20Events/Aspidistra2.htm, dan http://bobrowen.com/nymas/radioproppaper.

pdf.)


107

Protokol Pertukaran Kunci yang Direvisi

Ingatlah bahwa kita memulai diskusi ini dengan serangan man-in-the-middle terhadap protokol 

pertukaran kunci sederhana. Protokol yang salah yaitu 

1.  A mengatakan: B, tolong kirimkan saya kunci publik Anda.

2.  B menjawab: Di sini, A; ini yaitu  kunci publik saya.

3.  A menjawab: Terima kasih. Saya telah membuat kunci simetris untuk kita gunakan untuk pertukaran 

ini. Saya mengirimi Anda kunci simetris yang dienkripsi di bawah kunci publik Anda.

Pada langkah 2, penyusup mencegat kunci publik B dan melewati kunci publik si penyusup. Penyusup 

dapat digagalkan jika A dan B bertukar setengah kunci sekaligus. Setengah kunci tidak berguna bagi 

penyusup sebab  tidak cukup untuk mengenkripsi atau mendekripsi apa pun. Mengetahui setengah 

dari kunci tidak secara material meningkatkan kemampuan penyusup untuk memecahkan enkripsi 

di masa depan.

Rivest dan Shamir (Rivest:84) telah menyusun protokol yang solid sebagai berikut.

1.  Nana mengirimkan kunci publiknya ke Anto.

2.  Anto mengirimkan kunci publiknya ke Nana.

3.  Nana membuat kunci simetris, mengenkripsinya memakai  kunci publik Anto, dan mengirimkan 

setengah dari hasilnya ke Anto. (Catatan: setengah dari hasilnya mungkin n/2 bit pertama, semua 

bit bernomor ganjil, atau bentuk lain yang disepakati.)

4.  Anto menjawab Nana bahwa dia menerima hasil sebagian (yang tidak dapat dia tafsirkan saat 

ini, jadi dia hanya mengkonfirmasi bahwa dia menerima beberapa bagian). Anto mengenkripsi 

nomor acak apa pun dengan kunci pribadinya dan mengirimkan setengah bit ke Nana.

5.  Nana mengirimkan setengah lainnya dari hasil terenkripsi ke Anto.

6.  Anto mengumpulkan dua bagian dari hasil Nana, mendekripsinya memakai  kunci pribadinya 

dan dengan demikian memperoleh kunci simetris bersama. Anto mengirimkan separuh nomor 

acak terenkripsi lainnya kepada Nana.

7.  Nana mengumpulkan dua bagian nomor acak Anto, mendekripsinya memakai  kunci 

pribadinya, mengekstrak nomor acak Anto, mengenkripsinya memakai  kunci simetris yang 

sekarang dibagikan, dan mengirimkannya ke Anto.

8.  Anto mendekripsi transmisi Nana dengan kunci simetris dan membandingkannya dengan nomor 

acak yang dipilihnya pada langkah 6. Kecocokan mengkonfirmasi validitas pertukaran.

Untuk melihat mengapa protokol ini bekerja, lihat langkah 3. Revan, si penyusup, pasti dapat 

mencegat kedua kunci publik di langkah 1 dan 2 dan mengganti miliknya sendiri. Namun, pada 

langkah 3 Revan tidak dapat mengambil setengah dari hasil, mendekripsi memakai  kunci 

pribadinya, dan mengenkripsi ulang di bawah kunci Anto. Bit tidak dapat didekripsi satu per satu 

dan dipasang kembali.

Pada langkah 4 Anto memilih nomor acak apa pun, yang lalu  dikembalikan Nana kepada 

Anto untuk menunjukkan bahwa dia telah berhasil menerima nilai terenkripsi yang dikirim Anto. Nilai 

acak seperti itu disebut nonce, nilai yang tidak berarti dalam dirinya sendiri, untuk menunjukkan 

aktivitas (keaktifan) dan orisinalitas (bukan replay). Dalam beberapa protokol, penerima mendekripsi 

nonce, menambahkan 1 ke dalamnya, mengenkripsi ulang hasilnya, dan mengembalikannya. Di lain 


108

waktu nonce menyertakan tanggal, waktu, atau nomor urut untuk menunjukkan bahwa nilainya saat 

ini. Konsep ini dipakai  dalam pertukaran komputer-ke-komputer yang tidak memiliki beberapa 

karakteristik interaksi manusia.

2.4.10 Keaslian

Masalah orang di tengah dapat diselesaikan dengan cara lain: Nana harus mengirim ke Anto

E(kPUB-B, E(kPRIV-A, K))

Fungsi ini memastikan bahwa hanya Anto, memakai  kPRIV-B, yang dapat menghapus enkripsi 

yang diterapkan dengan kPUB-B, dan Anto tahu bahwa hanya Nana yang dapat menerapkan kPRIV-A 

yang dihapus Anto dengan kPUB-A.

Kita dapat memikirkan pertukaran ini dalam hal kunci dan segel. Siapa pun dapat memasukkan 

surat ke dalam kotak surat yang terkunci (melalui slot surat), namun  hanya pemegang kunci yang 

dapat mengeluarkannya. Di masa lalu, orang-orang penting memiliki segel yang akan mereka 

tempelkan ke dalam lilin cair pada sebuah surat; jejak segel menunjukkan keaslian, namun  siapa 

pun dapat memecahkan segel dan membaca surat itu. Menyatukan kedua bagian ini, sebuah surat 

yang disegel di dalam kotak surat yang terkunci menegakkan keaslian pengirim (stempel) dan 

kerahasiaan penerima (kotak surat yang terkunci).

Jika Nana ingin mengirim sesuatu yang dilindungi ke Anto (seperti nomor kartu kredit atau satu 

set catatan medis), maka pertukaran bekerja seperti ini. Nana menyegel informasi yang dilindungi 

dengan kunci pribadinya sehingga hanya dapat dibuka dengan kunci publik Nana. Langkah ini 

memastikan keaslian: hanya Nana yang dapat menerapkan enkripsi yang dibalikkan dengan kunci 

publik Nana. Nana lalu  mengunci informasi ini  dengan kunci publik Anto. Langkah 

ini menambah kerahasiaan sebab  hanya kunci pribadi Anto yang dapat mendekripsi data yang 

dienkripsi dengan kunci publik Anto. Anto dapat memakai  kunci pribadinya untuk membuka 

kotak surat (sesuatu yang hanya bisa dia lakukan) dan memakai  kunci publik Nana untuk 

memverifikasi segel dalam (membuktikan bahwa paket itu berasal dari Nana).

Jadi, seperti yang telah kita lihat, fungsi kriptografi asimetris yaitu  sarana yang ampuh untuk 

bertukar kunci kriptografi antara orang-orang yang tidak memiliki hubungan sebelumnya. Fungsi 

kriptografi asimetris lambat, namun  hanya dipakai  sekali, untuk bertukar kunci simetris. Selanjutnya, 

jika kunci yang dipertukarkan yaitu  untuk sistem enkripsi simetris seperti AES atau DES, panjang 

kuncinya relatif pendek, hingga 256 bit untuk AES atau 64 untuk DES. Bahkan jika kita memakai  

bentuk AES yang diperluas dengan panjang kunci 1000 bit, kecepatan lambat kriptografi kunci 

publik tidak akan menjadi masalah yang signifikan sebab  hanya dilakukan sekali, untuk membuat 

kunci bersama.

Kriptografi asimetris juga berguna untuk konstruksi keamanan penting lainnya: tanda tangan digital. 

Tanda tangan manusia pada dokumen kertas yaitu  pengesahan yang kuat: itu menandakan 

kesepakatan (Anda setuju dengan persyaratan dalam dokumen yang Anda tandatangani) dan 

pemahaman (Anda tahu apa yang Anda tanda tangani). Orang-orang menerima tanda tangan 


109

tertulis sebagai pengganti konfirmasi langsung. Kami ingin konstruksi yang sama kuatnya untuk 

mengkonfirmasi dokumen elektronik. Untuk membangun tanda tangan digital, kami memperkenalkan 

kode integritas, sertifikat kunci, dan, terakhir, tanda tangan itu sendiri.

Kode Pendeteksi Kesalahan

Komunikasi sangat rentan terhadap kesalahan dalam transmisi. Anda mungkin telah memperhatikan 

bahwa terkadang percakapan telepon seluler akan melewatkan atau mendistorsi sebagian kecil 

percakapan, dan sinyal televisi terkadang menunjukkan masalah yang biasa disebut kebisingan. 

Dalam Studi Kasus ini, penerimaan yang lengkap dan akurat tidak penting selama kebisingannya 

relatif kecil atau jarang. Anda selalu dapat meminta mitra telepon Anda untuk mengulangi kalimat, 

dan gol kemenangan di televisi selalu disiarkan ulang berkali-kali.

Dengan data penting, bagaimanapun, kita memerlukan beberapa cara untuk menentukan bahwa 

transmisi lengkap dan utuh. Matematikawan dan insinyur telah merancang formula yang disebut 

deteksi kesalahan dan kode koreksi untuk membuat kesalahan transmisi terlihat dan untuk melakukan 

perbaikan kecil.

Kode pendeteksi kesalahan memiliki banyak nama, seperti kode hash, intisari pesan, checksum, 

pemeriksaan integritas, deteksi kesalahan dan kode koreksi, dan tes redundansi. Meskipun istilah-

istilah ini memiliki perbedaan arti yang baik, tujuan dasar dari semuanya yaitu  untuk menunjukkan 

bahwa sebuah blok data telah dimodifikasi. Kalimat itu diucapkan dengan hati-hati: Intisari pesan 

akan (kadang-kadang) memberi sinyal bahwa konten telah berubah, namun  kurang solid dalam 

menunjukkan tidak ada modifikasi, meskipun itulah yang sebenarnya kita inginkan. Kami ingin 

sesuatu untuk menunjukkan tidak ada gangguan—berbahaya atau tidak; kita mendapatkan sesuatu 

yang biasanya menunjukkan gangguan.

Rudi menulis surat, membuat dan menyimpan fotokopi, dan mengirimkan aslinya kepada Amanda. 

Sepanjang jalan, Samuel mencegat surat itu dan membuat perubahan; menjadi pemalsu yang 

terampil, Samuel menipu Amanda. Hanya saat  Amanda dan Rudi bertemu dan membandingkan 

(dimodifikasi) asli mereka mendeteksi perubahan.

Lain halnya jika Rudi dan Amanda mencurigai seorang pemalsu sudah dekat. Rudi dengan hati-hati 

menghitung huruf-huruf dalam dokumennya, menghitung 1 untuk a, 2 untuk a b, dan seterusnya 

hingga 26 untuk a z. Dia menambahkan nilai-nilai itu dan menulis jumlahnya dalam angka-angka 

kecil di bagian bawah surat itu. 

saat  Teresa menerima surat itu, dia melakukan perhitungan yang Rudia dan membandingkan 

hasilnya dengan yang tertulis di bawah. Tiga Studi Kasus muncul:

•  terhitung tidak setuju, dalam hal ini Amanda menduga ada perubahan

•  tidak ada hitungan, dalam hal ini Amanda menduga Rudi malas atau pelupa atau pemalsu 

mengabaikan kode mereka

•  Hitungan Teresa Rudia dengan yang tertulis di bawah

Studi Kasus terakhir yaitu  yang paling bermasalah. Amanda mungkin menyimpulkan dengan lega 

bahwa tidak ada perubahan. Namun, seperti yang mungkin sudah Anda tentukan, dia mungkin tidak 


110

berpikir dengan benar. Samuel mungkin menangkap kode dan menghitung dengan benar jumlah 

baru agar sesuai dengan modifikasi. Lebih buruk lagi, mungkin perubahan Samuel terjadi untuk 

menghindari deteksi. Misalkan Samuel menghapus satu huruf c (nilai=3) dan menggantinya dengan 

tiga salinan huruf a (nilai=1+1+1=3); jumlahnya Rudia, atau jika Samuel hanya mengubah huruf, 

jumlahnya tetap Rudia, sebab  tidak peka terhadap urutan.

Semua masalah ini muncul sebab  kode yaitu  fungsi banyak-ke-satu: dua atau lebih input 

menghasilkan output yang sama. Dua input yang menghasilkan output yang sama disebut collision. 

Faktanya, semua intisari pesan yaitu  fungsi banyak-ke-satu, dan dengan demikian saat  mereka 

melaporkan perubahan, satu memang terjadi, namun  saat  mereka melaporkan tidak ada perubahan, 

itu hanya mungkin — tidak pasti — bahwa tidak ada yang terjadi sebab  kemungkinan tabrakan.

Tabrakan biasanya tidak menjadi masalah sebab  dua alasan. Pertama, mereka jarang terjadi. Jika 

plaintext direduksi menjadi 64-bit digest, kami berharap kemungkinan tabrakan menjadi 1 dalam 

264, atau sekitar 1 dalam 1019, sangat tidak mungkin, memang. Lebih penting lagi, fungsi digest 

tidak dapat diprediksi, jadi dengan satu input, menemukan input kedua yang menghasilkan output 

yang sama tidak mungkin dilakukan. Jadi, dengan fungsi digest yang baik, tabrakan jarang terjadi, 

dan kami tidak dapat memicu  atau memprediksinya.

Kita dapat memakai  pendeteksi kesalahan dan kode koreksi kesalahan untuk menjaga dari 

modifikasi data. Kode deteksi dan koreksi yaitu  prosedur atau fungsi yang diterapkan pada blok 

data; Anda mungkin akrab dengan satu jenis kode pendeteksi: paritas. Kode-kode ini berfungsi 

sesuai namanya: Kode pendeteksi kesalahan mendeteksi saat  kesalahan telah terjadi, dan kode 

koreksi kesalahan sebenarnya dapat memperbaiki kesalahan tanpa memerlukan salinan data asli. 

Kode kesalahan dihitung dan disimpan dengan aman pada data asli yang dianggap utuh; nanti siapa 

pun dapat menghitung ulang kode kesalahan dan memeriksa apakah hasil yang diterima sesuai 

dengan nilai yang diharapkan. Jika nilainya tidak cocok, pasti telah terjadi perubahan; jika nilainya 

cocok, kemungkinan—namun  tidak pasti—tidak ada perubahan yang terjadi.

Pemeriksaan Paritas  (Parity Check)

Kode deteksi kesalahan yang paling sederhana yaitu  pemeriksaan paritas. Bit tambahan, yang 

kita sebut sidik jari, ditambahkan ke grup bit data yang ada, tergantung pada jumlahnya. Dua jenis 

paritas disebut genap dan ganjil. Dengan paritas genap sidik jari yaitu  0 jika jumlah bit data genap, 

dan 1 jika jumlahnya ganjil; yaitu, bit paritas diatur sehingga jumlah semua bit data ditambah bit 

paritas genap. Paritas ganjil yaitu  sama kecuali jumlah keseluruhan ganjil. Misalnya, aliran data 

01101101 akan memiliki bit paritas genap 1 (dan bit paritas ganjil 0) sebab  0+1+1+0+1+1+0+1 = 

5 + 1 = 6 (atau 5 + 0 = 5 untuk paritas ganjil).

Satu bit paritas dapat mengungkapkan modifikasi satu bit. Namun, paritas tidak mendeteksi kesalahan 

dua bit—Studi Kasus di mana dua bit dalam grup diubah. Satu bit paritas dapat mendeteksi semua 

perubahan bit tunggal, serta perubahan tiga, lima dan tujuh bit. Tabel 2-14 menunjukkan beberapa 

contoh perubahan yang terdeteksi dan tidak terdeteksi. Bit yang diubah (setiap baris menunjukkan 

perubahan dari nilai asli 00000000) dicetak tebal, digarisbawahi; tabel menunjukkan apakah paritas 

benar mendeteksi bahwa setidaknya satu perubahan terjadi.


111

TABEL 2-14 Perubahan yang Dideteksi oleh Paritas

Mendeteksi angka ganjil dari bit yang diubah mengarah ke tingkat deteksi perubahan sekitar 50 

persen, yang hampir tidak cukup baik untuk tujuan kita. Kita dapat meningkatkan kecepatan ini 

dengan lebih banyak bit paritas (misalnya menghitung bit paritas kedua dari bit 1, 3, 5, dan 7), namun  

lebih banyak bit paritas meningkatkan ukuran sidik jari; setiap kali kami menambah ukuran sidik jari, 

kami juga meningkatkan ukuran penyimpanan sidik jari ini.

Paritas hanya menandakan bahwa sedikit telah diubah; itu tidak mengidentifikasi bit mana yang 

telah diubah, apalagi kapan, bagaimana, atau oleh siapa. Pada perangkat penyimpanan perangkat 

keras, kode yang disebut pemeriksaan redundansi siklik mendeteksi kesalahan dalam perekaman 

dan pemutaran. Beberapa kode yang lebih kompleks, yang dikenal sebagai kode koreksi kesalahan, 

dapat mendeteksi kesalahan beberapa bit (dua atau lebih bit diubah dalam kelompok data) dan 

mungkin dapat menunjukkan dengan tepat bit yang diubah (yang merupakan bit yang akan diatur 

ulang untuk memperbaiki modifikasi). Ukuran sidik jari, tingkat deteksi kesalahan, dan koreksi 

membawa kita ke kode yang lebih kuat.

Kode Hash

Di sebagian besar file, elemen atau komponen file tidak terikat bersama dengan cara apa pun. 

Artinya, setiap byte atau bit atau karakter tidak tergantung satu sama lain dalam file. Kurangnya 

pengikatan ini berarti bahwa mengubah satu nilai memengaruhi integritas file namun  satu perubahan 

itu dapat dengan mudah tidak terdeteksi.

Apa yang ingin kami lakukan yaitu  memasang segel atau pelindung di sekitar file sehingga 

kami dapat mendeteksi saat  segel telah rusak dan dengan demikian mengetahui bahwa ada 

sesuatu yang telah diubah. Gagasan ini mirip dengan pemakai an segel lilin pada surat-surat di 

abad pertengahan; jika lilin itu pecah, penerima akan tahu bahwa seseorang telah memecahkan 

segelnya dan membaca pesan di dalamnya. Dengan cara yang sama, kriptografi dapat dipakai  

untuk menyegel file, membungkusnya sehingga setiap perubahan menjadi jelas. Salah satu teknik 

untuk memberikan segel yaitu  menghitung fungsi, kadang-kadang disebut hash atau checksum 

atau intisari pesan dari file.


112

Kode antara Rudi dan Amanda yaitu  kode hash. Kode hash sering dipakai  dalam komunikasi 

di mana kesalahan transmisi dapat mempengaruhi integritas data yang dikirimkan. Dalam Studi 

Kasus ini  nilai kode ditransmisikan dengan data. Apakah data atau nilai kode dirusak, penerima 

mendeteksi beberapa masalah dan hanya meminta transmisi ulang blok data.

Protokol semacam itu memadai dalam Studi Kasus kesalahan yang tidak disengaja namun  tidak 

dimaksudkan untuk menangani musuh khusus. Jika Fagin mengetahui algoritma fungsi deteksi 

kesalahan, maka ia dapat mengubah konten dan memperbaiki nilai deteksi agar sesuai. Jadi, 

saat  musuh jahat mungkin terlibat, komunikasi yang aman membutuhkan bentuk intisari pesan 

yang lebih kuat.

Fungsi Hash Satu Arah

Sebagai langkah pertama dalam mengalahkan Samuel, kita harus mencegahnya bekerja mundur 

dari nilai intisari untuk melihat input apa yang mungkin mengarah pada hasil ini . Misalnya, 

beberapa enkripsi bergantung pada fungsi yang mudah dipahami namun  sulit untuk dihitung. Sebagai 

contoh sederhana, perhatikan fungsi kubus, y = x3. Menghitung x3 dengan tangan, dengan pensil 

dan kertas, atau dengan kalkulator tidaklah sulit. namun  fungsi invers, , jauh lebih sulit untuk dihitung. 

Dan fungsi y = x2 tidak memiliki fungsi invers sebab  ada dua kemungkinan untuk : + x dan x. Fungsi 

seperti ini, yang jauh lebih mudah dihitung daripada kebalikannya, disebut fungsi satu arah.

Deteksi Perubahan File 

Fungsi satu arah dapat berguna dalam membuat algoritma pendeteksian perubahan. Fungsi harus 

bergantung pada semua bit file yang disegel, sehingga setiap perubahan bahkan satu bit pun akan 

mengubah hasil checksum. Nilai checksum disimpan dengan file. lalu , setiap kali seseorang 

mengakses atau memakai  file ini , sistem akan menghitung ulang checksum ini . Jika 

checksum yang dihitung cocok dengan nilai yang disimpan, file ini  kemungkinan akan utuh.

Properti satu arah menjaga dari modifikasi berbahaya: Penyerang tidak dapat "membatalkan" fungsi 

untuk melihat file aslinya, jadi tidak ada cara sederhana untuk menemukan serangkaian perubahan 

yang menghasilkan nilai fungsi yang sama. (Jika tidak, penyerang dapat menemukan modifikasi 

yang tidak terdeteksi yang juga memiliki dampak berbahaya.)

Tripwire [KIM98] yaitu  program utilitas yang melakukan pemeriksaan integritas pada file. Dengan 

Tripwire, administrator sistem menghitung hash dari setiap file dan menyimpan nilai hash ini di 

tempat yang aman, biasanya offline. lalu  administrator menjalankan kembali Tripwire dan 

membandingkan nilai hash baru dengan yang sebelumnya.

Checksum Kriptografi

Modifikasi berbahaya harus ditangani dengan cara yang juga mencegah penyerang memodifikasi 

mekanisme deteksi kesalahan serta bit data itu sendiri. Salah satu cara untuk mengatasinya 

yaitu  dengan memakai  teknik yang menyusutkan dan mengubah data sesuai dengan nilai 

bit data.

Sebuah checksum kriptografi yaitu  fungsi kriptografi yang menghasilkan sebuah checksum. Ini 

yaitu  fungsi intisari memakai  kunci kriptografik yang mungkin hanya diketahui oleh pencetus 

dan penerima data yang tepat. Kriptografi mencegah penyerang mengubah blok data (plaintext) 


113

dan juga mengubah nilai checksum (ciphertext) agar sesuai. Penyerang tentu saja dapat mengubah 

plaintext, namun  penyerang tidak memiliki kunci untuk menghitung ulang checksum. Salah satu contoh 

checksum kriptografi yaitu  pertama-tama memakai  fungsi checksum nonkriptografis untuk 

memperoleh intisari n-bit dari data sensitif. lalu  terapkan algoritma enkripsi simetris apa pun 

ke intisari. Tanpa kunci penyerang tidak dapat menentukan nilai checksum yang disembunyikan 

oleh enkripsi.

Dua kegunaan utama dari checksum kriptografi yaitu  perlindungan kode-tamper dan perlindungan 

integritas pesan dalam perjalanan. Perlindungan gangguan kode diimplementasikan dengan cara 

yang baru saja kami jelaskan untuk mendeteksi perubahan pada file. Demikian pula, checksum 

pada data dalam komunikasi mengidentifikasi data yang telah diubah dalam transmisi, baik secara 

sengaja maupun tidak sengaja. Pemerintah AS mendefinisikan Secure Hash Standard or Algorithm 

(SHS atau SHA), sebenarnya kumpulan algoritme, untuk menghitung checksum. 

Checksum yaitu  tindakan pencegahan yang penting untuk mendeteksi modifikasi. Di bagian ini 

kami menerapkannya pada masalah mendeteksi modifikasi berbahaya pada program yang disimpan 

di disk, namun  teknik yang sama berlaku untuk melindungi dari perubahan data, seperti yang akan 

kami tunjukkan nanti dalam buku ini.

Algoritme kriptografi yang kuat, seperti untuk DES atau AES, sangat sesuai untuk menyegel nilai, 

sebab  orang luar tidak akan mengetahui kuncinya dan dengan demikian tidak akan dapat mengubah 

nilai yang disimpan agar sesuai dengan data yang sedang dimodifikasi. Untuk aplikasi dengan 

ancaman rendah, algoritma yang lebih sederhana daripada DES atau AES dapat dipakai . 

Dalam skema enkripsi blok, chaining berarti menghubungkan setiap blok ke nilai blok sebelumnya 

(dan sebab  itu ke semua blok sebelumnya), misalnya, dengan memakai  OR eksklusif untuk 

menggabungkan blok sebelumnya yang dienkripsi dengan yang sekarang. Checksum kriptografi file 

bisa menjadi blok terakhir dari enkripsi berantai file sebab  blok itu akan bergantung pada semua 

blok lainnya. 

Seperti yang akan kita lihat nanti dalam bab ini, teknik-teknik ini membahas non-alterability dan 

non-reusability yang diperlukan dalam tanda tangan digital. Perubahan atau pemakai an kembali 

mungkin akan ditandai oleh checksum sehingga penerima dapat mengetahui bahwa ada sesuatu 

yang salah.

2.5.11 Tanda Tangan (Digital Signature)

Teknik paling ampuh untuk menunjukkan keaslian yaitu  tanda tangan digital. Seperti mitranya 

di atas kertas, tanda tangan digital yaitu  cara seseorang atau organisasi dapat membubuhkan 

pola bit ke file sedemikian rupa sehingga menyiratkan konfirmasi, berkaitan dengan file itu saja, 

tidak dapat dipalsukan, dan menunjukkan keasliannya. Kami menginginkan sarana di mana satu 

pihak dapat menandatangani sesuatu dan, seperti di atas kertas, tanda tangan itu tetap berlaku 

selama berhari-hari, berbulan-bulan, bertahun-tahun—tanpa batas. Selanjutnya, tanda tangan harus 

meyakinkan semua orang yang mengakses file ini . Tentu saja, seperti kebanyakan kondisi 

yang melibatkan metode digital, peringatannya yaitu  bahwa jaminan dibatasi oleh keterampilan 

dan energi yang diasumsikan dari siapa pun yang akan mencoba mengalahkan jaminan.


114

Tanda tangan digital sering memakai  kriptografi kunci publik atau asimetris. Seperti yang baru 

saja Anda lihat, protokol kunci publik berguna untuk pertukaran kunci kriptografi antara dua pihak 

yang tidak memiliki dasar kepercayaan lain. Sayangnya, protokol kriptografi kunci publik melibatkan 

beberapa urutan pesan dan balasan, yang dapat memakan waktu jika salah satu pihak tidak segera 

tersedia untuk membalas permintaan terbaru. Akan berguna untuk memiliki teknik di mana satu pihak 

dapat dengan andal menghitung beberapa langkah protokol dan meninggalkannya di tempat yang 

aman sehingga protokol dapat dijalankan meskipun hanya satu pihak yang aktif. Situasi ini mirip 

dengan perbedaan antara teller bank dan ATM. Anda dapat memperoleh uang tunai, melakukan 

setoran atau pembayaran, atau memeriksa saldo Anda sebab  bank telah menetapkan langkah-

langkah untuk ATM untuk menangani aktivitas sederhana ini  24 jam sehari, bahkan jika bank 

tidak buka. namun  jika Anda memerlukan cek bersertifikat atau mata uang asing, Anda mungkin 

perlu berinteraksi langsung dengan agen bank.

Di bagian ini kami mendefinisikan tanda tangan digital dan membandingkan propertinya dengan 

tanda tangan tulisan tangan di atas kertas. Kami lalu  menjelaskan infrastruktur seputar tanda 

tangan digital yang memungkinkan mereka dikenali dan valid tanpa batas.

Komponen dan Karakteristik Tanda Tangan

Tanda tangan digital hanyalah objek biner yang terkait dengan file. namun  jika kita ingin tanda tangan 

itu memiliki kekuatan tanda tangan berbasis kertas, kita perlu memahami sifat-sifat tanda tangan 

manusia. Hanya dengan begitu kami dapat menyatakan persyaratan untuk versi digital kami.

Properti Tanda Tangan Berbasis Kertas yang Aman

Pertimbangkan situasi khas yang sejajar dengan kebutuhan manusia biasa: perintah untuk 

mentransfer dana dari satu orang ke orang lain. Dengan kata lain, kami ingin dapat mengirimkan 

cek elektronik yang setara dengan cek terkomputerisasi. Kami memahami sifat-sifat transaksi ini 

untuk pemeriksaan kertas konvensional:

•  Cek yaitu  benda berwujud yang memberikan otorisasi transaksi keuangan.

•  Tanda tangan pada cek menegaskan keaslian sebab  (mungkin) hanya penandatangan yang 

sah yang dapat membuat tanda tangan ini .

•  Dalam Studi Kasus dugaan pemalsuan, pihak ketiga dapat dipanggil untuk menilai 

keasliannya.

•  Setelah cek dicairkan, cek ini  dibatalkan sehingga tidak dapat dipakai  kembali.

•  Pemeriksaan kertas tidak dapat diubah. Atau, sebagian besar bentuk perubahan mudah 

dideteksi.

Bertransaksi bisnis dengan cek tergantung pada objek nyata dalam bentuk yang ditentukan. namun  

objek berwujud tidak ada untuk transaksi di komputer. Oleh sebab  itu, otorisasi pembayaran dengan 

komputer memerlukan model yang berbeda. Mari kita pertimbangkan persyaratan situasi seperti 

itu, dari sudut pandang bank dan pemakai .

Sifat Tanda Tangan Digital

Misalkan Sheila mengirimi banknya pesan yang mengizinkannya untuk mentransfer $100 ke Rob. 

Bank Sheila harus dapat memverifikasi dan membuktikan bahwa pesan ini  benar-benar 

berasal dari Sheila jika dia lalu  menolak mengirim pesan ini . (Properti ini disebut non-


115

repudiation.) Bank juga ingin mengetahui bahwa pesan ini  sepenuhnya milik Sheila, bahwa 

pesan ini  tidak diubah selama ini. Sementara itu, Sheila ingin memastikan bahwa banknya 

tidak dapat memalsukan pesan seperti itu. (Properti ini disebut keaslian.) Kedua belah pihak ingin 

memastikan bahwa pesan ini  baru, bukan pemakai an kembali dari pesan sebelumnya, 

dan bahwa pesan ini  tidak diubah selama transmisi. memakai  sinyal elektronik sebagai 

pengganti kertas memperumit proses ini.

Tanda tangan digital yaitu  protokol yang menghasilkan efek yang sama dengan tanda tangan asli: Ini 

yaitu  tanda yang hanya dapat dibuat oleh pengirim namun  dapat dikenali dengan mudah oleh orang 

lain sebagai milik pengirim. Sama seperti tanda tangan asli, tanda tangan digital mengkonfirmasi 

persetujuan terhadap sebuah pesan.

Asli Tidak bisa 

dipalsukan

Tandai hanya 

pengirim yang 

membuat

Tandai sesuai 

dengan 

dokuman

 

Gambar  2-26 Persyaratan Tanda Tangan Digital

Tanda tangan digital harus memenuhi dua syarat utama:

•  Itu harus tidak bisa ditempa. Jika orang S menandatangani pesan M dengan tanda tangan 

Sig(S,M), tidak ada orang lain yang dapat menghasilkan pasangan [M,Sig(S,M)].

•  Itu harus asli. Jika seseorang R menerima pasangan [M, Sig(S,M)] konon dari S, R dapat 

memeriksa bahwa tanda tangan ini  benar-benar dari S. Hanya S yang dapat membuat 

tanda tangan ini, dan tanda tangan ini  melekat erat pada M.

Kedua persyaratan ini, yang ditunjukkan pada Gambar 2-26, merupakan rintangan utama dalam 

transaksi komputer. Dua properti lagi, juga diambil dari paralel dengan lingkungan berbasis kertas, 

diinginkan untuk transaksi yang diselesaikan dengan bantuan tanda tangan digital:

•  Tidak dapat diubah. Setelah ditransmisikan, M tidak dapat diubah oleh S, R, atau pencegat.

•  Tidak dapat dipakai  kembali. Pesan sebelumnya yang disajikan lagi akan langsung terdeteksi 

oleh R.

Untuk melihat cara kerja tanda tangan digital, pertama-tama kami menyajikan mekanisme yang 

memenuhi dua persyaratan pertama. Kami lalu  menambahkan solusi itu untuk memenuhi 

persyaratan lainnya. Kami mengembangkan tanda tangan digital dalam potongan-potongan: pertama 

membangun sepotong untuk mengatasi perubahan, lalu  menjelaskan cara untuk memastikan 

keaslian, dan akhirnya mengembangkan struktur untuk membangun identitas. Akhirnya semua 

bagian ini mengikat bersama dalam kerangka konseptual sederhana.

Kami baru saja menjelaskan bagian-bagian untuk tanda tangan digital: kriptografi kunci publik dan 

intisari pesan yang aman. Kedua bagian ini secara teknis cukup untuk membuat tanda tangan digital, 

namun  tidak membahas keasliannya. Untuk itu, diperlukan suatu struktur yang mengikat identitas 

pemakai  dan kunci publik dengan cara yang dapat dipercaya. Struktur seperti itu disebut sertifikat. 

Terakhir, kami menghadirkan infrastruktur untuk mentransmisikan dan memvalidasi sertifikat.


116

Kunci Publik untuk Tanda Tangan

Sistem enkripsi kunci publik cocok untuk penandatanganan. Untuk notasi sederhana, mari kita 

asumsikan bahwa enkripsi kunci publik untuk pemakai  U diakses melalui E(M,KU) dan transformasi 

kunci privat untuk U ditulis sebagai D(M,KU). Kita dapat menganggap E sebagai transformasi 

privasi (sebab  hanya U yang dapat mendekripsinya) dan D sebagai transformasi keaslian (sebab  

hanya U yang dapat memproduksinya). Ingat, bagaimanapun, bahwa di bawah beberapa algoritma 

asimetris seperti RSA, D dan E yaitu  komutatif dan salah satu dapat diterapkan untuk pesan 

apapun. Jadi,

D(E(M, KU ), KU ) = M = E(D(M, KU ), KU )

Jika S ingin mengirim M ke R, S memakai  transformasi otentisitas untuk menghasilkan D(M, KS). 

S lalu  mengirim D(M, KS) ke R. R menerjemahkan pesan dengan transformasi kunci publik S, 

menghitung E(D(M, KS), KS) = M. sebab  hanya S yang dapat membuat pesan yang masuk akal di 

bawah E(–,KS), pesan harus benar-benar berasal dari S. Pengujian ini memenuhi syarat keaslian.

R akan menghemat D(M, KS). Jika S lalu  menyatakan bahwa pesan itu palsu (bukan benar-

benar dari S), R cukup menunjukkan M dan D(M, KS). Siapapun dapat memverifikasi bahwa sebab  

D(M, KS) ditransformasikan ke M dengan transformasi kunci publik S — namun  hanya S yang dapat 

menghasilkan D(M, KS) — maka D(M, KS) harus dari S. Tes ini memenuhi persyaratan yang tidak 

dapat dipalsukan.

Gambar 2-27 pemakai an Dua Kunci dalam Tanda Tangan 

Digital Asimetris

Ada pendekatan lain untuk penandatanganan; beberapa memakai  enkripsi simetris, yang lain 

memakai  asimetris. Pendekatan yang ditunjukkan di sini mengilustrasikan bagaimana protokol 

dapat mengatasi persyaratan untuk ketidakterbatasan dan keaslian. Untuk menambah kerahasiaan, 

S menerapkan E(M, KR) seperti yang ditunjukkan pada Gambar 2-27. 

Potongan-potongan ini, fungsi hash, kriptografi kunci publik, dan protokol, memberi kita potongan 

teknis tanda tangan digital. Namun, kami juga membutuhkan satu komponen nonteknis. Penanda 

tangan S kami pasti dapat melakukan protokol untuk menghasilkan tanda tangan digital, dan siapa 

pun yang memiliki kunci publik S dapat menentukan bahwa tanda tangan itu memang berasal dari 

S. Tapi siapa S? Kami tidak memiliki cara yang dapat diandalkan untuk mengasosiasikan manusia 

tertentu dengan kunci publik itu. Bahkan jika seseorang mengatakan "kunci publik ini milik S," atas 

dasar apa kita percaya pernyataan itu? Ingat serangan man-in-the-middle di awal bab ini saat  Nana 


117

dan Anto ingin membuat kunci rahasia bersama? Selanjutnya kita mengeksplorasi cara membuat 

pengikatan yang dapat dipercaya antara kunci publik dan identitas.

3.5.12 Kepercayaan

Masalah utama perdagangan digital yaitu  kepercayaan: Bagaimana Anda tahu bahwa halaman 

web Microsoft benar-benar milik Microsoft, misalnya? Bagian ini lebih sedikit tentang teknologi dan 

lebih banyak tentang aspek kepercayaan manusia, sebab  kepercayaan itu mendasari seluruh 

konsep tanda tangan digital.

Dalam kehidupan nyata, Anda mungkin memercayai teman dekat dengan cara yang tidak Anda 

percayai kenalan baru. Seiring waktu kepercayaan Anda pada seseorang dapat tumbuh dengan 

pengalaman Anda, namun  dapat menurun jika orang itu mengkhianati Anda. Anda mencoba seseorang, 

dan, tergantung pada hasilnya, Anda menambah atau mengurangi tingkat kepercayaan Anda. 

Pengalaman-pengalaman ini membangun kerangka kepercayaan pribadi.

Halaman web dapat diganti dan dipalsukan tanpa peringatan. Sampai batas tertentu, Anda 

menganggap halaman itu asli jika tidak ada yang tampak tidak biasa, jika konten di situs tampak 

kredibel atau setidaknya masuk akal, dan jika Anda tidak memakai  situs untuk keputusan 

penting. Jika situs ini  milik bank Anda, Anda dapat memverifikasi bahwa URL ini  terlihat 

asli. Beberapa situs, terutama lembaga keuangan, sudah mulai membiarkan setiap pelanggan 

memilih gambar keamanan, misalnya, mobil sport merah panas atau tengara ikonik; pemakai  

diperingatkan untuk memasukkan informasi sensitif hanya jika mereka melihat gambar pribadi yang 

mereka pilih sebelumnya.

Dalam lingkungan komersial, jenis institusi