Anda di halaman 1dari 129

Pengenalan Kriptografi

Pendahuluan
Kemajuan di bidang telekomunikasi dan
komputer telah memungkinkan seseorang untuk
melakukan transaksi bisnis secara cashless,
selain itu ia juga dapat mengirimkan informasi
kepada temannya secara on-line.
Kegiatan-kegiatan tersebut tentu saja akan
menimbulkan resiko bilamana informasi yang
sensitif dan berharga tersebut diakses oleh
orang-orang yang tidak berhak (unauthorized
persons). Misalnya, informasi mengenai nomor
kartu kredit anda, bila informasi ini jatuh kepada
orang-orang yang jahat maka anda harus
bersiap-siap terhadap melonjaknya tagihan
kartu kredit anda.
Sebelum tahun 1970-an, teknologi kriptografi
digunakan terbatas hanya untuk tujuan militer
dan diplomatik. Akan tetapi kemudian bidang
bisnis dan perorangan mulai menyadari
pentingnya melindungi informasi berharga.

Pengertian Dasar
Suatu pesan yang tidak disandikan disebut
sebagai plaintext ataupun dapat disebut juga
sebagai cleartext. Proses yang dilakukan untuk
mengubah plaintext ke dalam ciphertext disebut
encryption atau encipherment. Sedangkan
proses untuk mengubah ciphertext kembali ke
plaintext disebut decryption atau decipherment.
Secara sederhana istilah-istilah di atas dapat
digambarkan sebagai berikut :

Gb. 1. Proses Enkripsi/Dekripsi Sederhana


Cryptography adalah suatu ilmu ataupun seni
mengamankan pesan, dan dilakukan oleh
cryptographer. Sedang, cryptanalysis adalah
suatu ilmu dan seni membuka (breaking)
ciphertext dan orang yang melakukannya
disebut cryptanalyst.
Cryptographic system atau cryptosystem adalah
suatu fasilitas untuk mengkonversikan plaintext
ke ciphertext dan sebaliknya. Dalam sistem ini,
seperangkat parameter yang menentukan
transformasi pencipheran tertentu disebut suatu

set kunci. Proses enkripsi dan dekripsi diatur


oleh satu atau beberapa kunci kriptografi.
Secara umum, kunci-kunci yang digunakan
untuk proses pengenkripsian dan pendekripsian
tidak perlu identik, tergantung pada sistem yang
digunakan.
Secara umum operasi enkripsi dan dekripsi
dapat diterangkan secara matematis sebagai
berikut :
EK (M) = C
DK (C) = M

(Proses Enkripsi)
(Proses Dekripsi)

Pada saat proses enkripsi kita menyandikan


pesan M dengan suatu kunci K lalu dihasilkan
pesan C. Sedangkan pada proses dekripsi,
pesan C tersebut diuraikan dengan
menggunakan kunci K sehingga dihasilkan
pesan M yang sama seperti pesan sebelumnya.
Dengan demikian keamanan suatu pesan
tergantung pada kunci ataupun kunci-kunci yang
digunakan, dan tidak tergantung pada algoritma
yang digunakan. Sehingga algoritma-algoritma
yang digunakan tersebut dapat dipublikasikan
dan dianalisis, serta produk-produk yang
menggunakan algoritma tersebut dapat
diproduksi massal. Tidaklah menjadi masalah

apabila seseorang mengetahui algoritma yang


kita gunakan. Selama ia tidak mengetahui kunci
yang dipakai, ia tetap tidak dapat membaca
pesan.
Cryptographic system (cryptosystem)
Suatu cryptosystem terdiri dari sebuah
algoritma, seluruh kemungkinan plaintext,
ciphertext dan kunci-kunci. Secara umum
cryptosystem dapat digolongkan menjadi dua
buah, yaitu :
1. Symmetric Cryptosystem
Dalam symmetric cryptosystem ini, kunci yang
digunakan untuk proses enkripsi dan dekripsi
pada prinsipnya identik, tetapi satu buah kunci
dapat pula diturunkan dari kunci yang lainnya.
Kunci-kunci ini harus dirahasiakan. Oleh karena
itulah sistem ini sering disebut sebagai secretkey ciphersystem. Jumlah kunci yang
dibutuhkan umumnya adalah :
C2 = n . (n-1)
-------2

dengan n menyatakan banyaknya pengguna.


Contoh dari sistem ini adalah Data Encryption
Standard (DES), Blowfish, IDEA.
2. Assymmetric Cryptosystem
Dalam assymmetric cryptosystem ini digunakan
dua buah kunci. Satu kunci yang disebut kunci
publik (public key) dapat dipublikasikan, sedang
kunci yang lain yang disebut kunci privat
(private key) harus dirahasiakan. Proses
menggunakan sistem ini dapat diterangkan
secara sederhana sebagai berikut : bila A ingin
mengirimkan pesan kepada B, A dapat
menyandikan pesannya dengan menggunakan
kunci publik B, dan bila B ingin membaca surat
tersebut, ia perlu mendekripsikan surat itu
dengan kunci privatnya. Dengan demikian
kedua belah pihak dapat menjamin asal surat
serta keaslian surat tersebut, karena adanya
mekanisme ini. Contoh sistem ini antara lain
RSA Scheme dan Merkle-Hellman Scheme.
Setiap cryptosytem yang baik harus memiliki
karakteristik sebagai berikut :

Keamanan sistem terletak pada kerahasiaan


kunci dan bukan pada kerahasiaan
algoritma yang digunakan.

Cryptosystem yang baik memiliki ruang


kunci (keyspace) yang besar.
Cryptosystem yang baik akan menghasilkan
ciphertext yang terlihat acak dalam seluruh
tes statistik yang dilakukan terhadapnya.
Cryptosystem yang baik mampu menahan
seluruh serangan yang telah dikenal
sebelumnya

Namun demikian perlu diperhatikan bahwa bila


suatu cryptosystem berhasil memenuhi seluruh
karateristik di atas belum tentu ia merupakan
sistem yang baik. Banyak cryptosystem lemah
yang terlihat baik pada awalnya. Kadang kala
untuk menunjukkan bahwa suatu cryptosystem
kuat atau baik dapat dilakukan dengan
menggunakan pembuktian matematika.
Hingga saat ini masih banyak orang yang
menggunakan cryptosystem yang relatif mudah
dibuka, alasannya adalah mereka tidak
mengetahui sistem lain yang lebih baik serta
kadang kala terdapat motivasi yang kurang
untuk menginvestasikan seluruh usaha yang
diperlukan untuk membuka suatu sistem.
Cryptographic Protokol
Pengertian

Suatu protokol adalah serangkaian langkah


yang melibatkan dua pihak atau lebih dan
dirancang untuk menyelesaikan suatu tugas.
Dari definisi ini dapat diambil beberapa arti
sebagai berikut :

protokol memiliki urutan dari awal hingga


akhir;
setiap langkah harus dilaksanakan secara
bergiliran;
suatu langkah tidak dapat dikerjakan bila
langkah sebelumnya belum selesai;
diperlukan dua pihak atau lebih untuk
melaksanakan protokol;
protokol harus mencapai suatu hasil;

Selain itu, suatu protokol pun memiliki


karakteristik yang lain, yaitu :
setiap orang yang terlibat dalam protokol
harus mengetahui terlebih dahulu mengenai
protokol dan seluruh langkah yang akan
dilaksanakan;
setiap orang yang terlibat dalam protokol
harus menyetujui untuk mengikutinya;
protokol tidak boleh menimbulkan
kerancuan;
protokol harus lengkap;

Cryptographic protocol adalah suatu protokol


yang menggunakan kriptografi. Protokol ini
melibatkan sejumlah algoritma kriptografi,
namun secara umum tujuan protokol lebih dari
sekedar kerahasiaan. Pihak-pihak yang
berpartisipasi mungkin saja ingin membagi
sebagian rahasianya untuk menghitung sebuah
nilai, menghasilkan urutan random, atau pun
menandatangani kontrak secara bersamaan.
Penggunaan kriptografi dalam sebuah protokol
terutama ditujukan untuk mencegah atau pun
mendeteksi adanya eavesdropping dan
cheating.
Fungsi Protokol
Dalam kehidupan kita sehari-hari terdapat
banyak sekali protokol tidak resmi, misalnya
saja dalam permainan kartu, pemungutan suara
dalam pemilihan umum. Akan tetapi tidak ada
seorang pun yang memikirkan mengenai
protokol-protokol ini, protokol-protokol ini terus
berkembang, semua orang mengetahui
bagaimana menggunakannya.
Saat ini, semakin banyak interaksi antar
manusia dilakukan melalui jaringan komputer.
Komputer ini tentu saja memerlukan suatu
protokol formal agar dapat melakukan hal yang

biasa dilakukan manusia tanpa berpikir. Bila kita


berpindah dari satu daerah ke daerah lain dan
mengetahui bahwa kartu pemilihan suaranya
berbeda dengan yang biasa kita gunakan, kita
dapat beradaptasi dengan mudah. Akan tetapi
kemampuan ini belum dimiliki oleh komputer,
sehingga diperlukan suatu protokol.
Protokol digunakan untuk mengabtraksikan
proses penyelesaian suatu tugas dari
mekanisme yang digunakan. Protokol
komunikasi adalah sama meskipun
diimplementasikan pada PC atau VAX. Bila kita
yakin bahwa kita memiliki protokol yang baik,
kita dapat mengimplementasikannya dalam
segala benda mulai dari telepon hingga
pemanggang roti cerdas.
Penyerangan terhadap protokol
Penyerangan cryptographic dapat ditujukan
pada beberapa hal berikut :

algoritma cryptographic yang digunakan


dalam protokol;
teknik cryptographic yang digunakan untuk
mengimplementasikan algoritma dan
protokol;
protokol itu sendiri;

Seseorang dapat mencoba berbagai cara untuk


menyerang suatu protokol. Mereka yang tidak
terlibat dalam protokol dapat menyadap
sebagian atau seluruh protokol. Tindakan ini
disebut penyerangan pasif, karena si penyerang
tidak mempengaruhi atau mengubah protokol, ia
hanya mengamati protokol dan berusaha untuk
memperoleh informasi.
Selain itu, seorang penyerang dapat berusaha
untuk mengubah protokol demi keuntungannya
sendiri. Ia dapat mengirimkan pesan dalam
protokol, menghapus pesan, atau bahkan
mengubah informasi yang ada di dalam suatu
komputer. Tindakan-tindakan ini disebut sebagai
penyerangan aktif, karena ia membutuhkan
suatu campur tangan aktif.
Seorang penyerang tidaklah hanya berasal dari
lingkungan luar protokol, namun ia mungkin juga
berasal dari dalam protokol itu sendiri, ia dapat
merupakan salah satu pihak yang terlibat dalam
protokol. Tipe penyerang semacam ini disebut
sebagai cheater. Passive cheater mengikuti
protokol, tetapi berusaha memperoleh informasi
lebih banyak daripada yang diperbolehkan
protokol bagi dirinya. Active cheater mengubah
protokol dalam usahanya untuk berbuat curang.

Usaha untuk menjaga keamanan protokol akan


semakin sulit apabila pihak-pihak yang terlibat
umumnya merupakan active cheater, oleh
karena itu suatu protokol yang baik harus
mampu atau pun harus aman terhadap
kemungkinan passive cheating.
Berbagai macam basic cryptanalytic attacks
Tujuan cryptanalytic attack adalah untuk
mengetahui beberapa plaintext yang sesuai
dengan ciphertext yang ada dan berusaha
menentukan kunci yang memetakan satu
dengan yang lainnya. Plaintext ini dapat
diketahui karena ia merupakan standar atau
karena pendugaan. Jika suatu teks diduga
berada di dalam suatu pesan, posisinya
mungkin tidak diketahui, tetapi suatu pesan
lazimnya cukup pendek sehingga
memungkinkan cryptanalyst menduga plaintext
yang diketahui dalam setiap posisi yang
mungkin dan melakukan penyerangan pada
setiap kasus secara paralel.
Suatu algoritma enkripsi yang kuat tidak hanya
mampu bertahan terhadap serangan plaintext
yang dikenal tetapi juga mampu bertahan
terhadap adaptive chosen plaintext. Dalam
penyerangan ini, cryptanalyst berkesempatan

memilih plaintext yang digunakan dan dapat


melakukannya secara berulang kali, memilih
plaintext untuk tahap N+1 setelah menganalisis
hasil tahap N.
Yang dimaksud cryptanalytic attacks adalah
usaha-usaha yang dilakukan seseorang untuk
memperoleh informasi ataupun data yang telah
dienkripsi. Secara ringkas terdapat tujuh macam
basic cryptanalytic attacks berdasarkan tingkat
kesulitannya bagi penyerang, dimulai dari yang
paling sulit adalah :

Ciphertext-only attack. Dalam penyerangan


ini, seorang cryptanalyst memiliki ciphertext
dari sejumlah pesan yang seluruhnya telah
dienkripsi menggunakan algoritma yang
sama.
Known-plaintext attack. Dalam tipe
penyerangan ini, cryptanalyst memiliki akses
tidak hanya ke ciphertext sejumlah pesan,
namun ia juga memiliki plaintext pesanpesan tersebut.
Chosen-plaintext attack. Pada penyerangan
ini, cryptanalyst tidak hanya memiliki akses
atas ciphertext dan plaintext untuk beberapa
pesan, tetapi ia juga dapat memilih plaintext
yang dienkripsi.

Adaptive-chosen-plaintext attack.
Penyerangan tipe ini merupakan suatu
kasus khusus chosen-plaintext attack.
Cryptanalyst tidak hanya dapat memilih
plaintext yang dienkripsi, ia pun memiliki
kemampuan untuk memodifikasi pilihan
berdasarkan hasil enkripsi sebelumnya.
Dalam chosen-plaintext attack, cryptanalyst
mungkin hanya dapat memiliki plaintext
dalam suatu blok besar untuk dienkripsi;
dalam adaptive-chosen-plaintext attack ini ia
dapat memilih blok plaintext yang lebih kecil
dan kemudian memilih yang lain
berdasarkan hasil yang pertama, proses ini
dapat dilakukannya terus menerus hingga ia
dapat memperoleh seluruh informasi.
Chosen-ciphertext attack. Pada tipe ini,
cryptanalyst dapat memilih ciphertext yang
berbeda untuk didekripsi dan memiliki akses
atas plaintext yang didekripsi.
Chosen-key attack. Cryptanalyst pada tipe
penyerangan ini memiliki pengetahuan
tentang hubungan antara kunci-kunci yang
berbeda.
Rubber-hose cryptanalysis. Pada tipe
penyerangan ini, cryptanalyst mengancam,
memeras, atau bahkan memaksa seseorang
hingga mereka memberikan kuncinya.

Analisis berbagai tipe penyerangan secara


matematis
Suatu penyerangan pasif atas cryptosystem
adalah semua metode untuk mengungkapkan
informasi tentang plaintext dan ciphertextnya
dengan tanpa mengetahui kunci. Secara
matematis :
Diberikan fungsi F, G, dan H yang
terdiri dari n variabel.
Diberikan sistem enkripsi E.
Diberikan suatu distribusi plaintext
dan kunci.
Suatu penyerangan atas E dengan
menggunakan G dengan mengasumsikan F
membagi H dengan probabilitas p adalah suatu
algoritma A dengan sepasang input f,g dan satu
buah output h sedemikian hingga terdapat
probabilitas p atas h = H(P1, , Pn), jika kita
memiliki f = F(P1, , Pn) dan g =
G(EK(P1), , EK(Pn)). Perlu diperhatikan
bahwa probabilitas ini tergantung pada distribusi
vektor-vektor (K,P1,,Pn).
Penyerangan akan merupakan suatu trivial bila
terdapat probabilitas paling sedikir p untuk h =

H(P1, , Pn) jika f = F (P1,,Pn) dan g


= G (C1,,Cn). Di sini C1,,Cn terletak pada
ciphertext yang mungkin, dan tidak memiliki
hubungan tertentu dengan P1,,Pn. Dengan
kata lain, suatu serangan akan merupakan trivial
bila ia tidak benar-benar menggunakan enkripsi
EK(P1),,EK(Pn).
Dengan merumuskan penyerangan secara
matematis, kita dapat secara tepat
memformulasikan dan bahkan membuktikan
pernyataan bahwa suatu cryptosystem itu kuat.
Kita katakan, sebagai contoh, bahwa suatu
cryptosystem adalah aman terhadap seluruh
penyerangan pasif jika sembarang penyerangan
nontrivial terhadapnya tidak praktis. Jika kita
dapat membuktikan pernyataan ini maka kita
akan memiliki keyakinan bahwa cryptosystem
kita akan bertahan terhadap seluruh teknik
cryptanalytic pasif. Jika kita dapat mereduksi
pernyataan ini hingga pada beberapa masalah
yang tidak terpecahkan maka kita masih tetap
memiliki keyakinan bahwa cryptosystem kita
tidak mudah dibuka.
Ciphertext-only attack
Dengan menggunakan notasi di atas, suatu
ciphertext-only attack adalah suatu penyerangan

dengan F adalah konstanta. Diberikan hanya


beberapa informasi G(EK(P1),..EK(Pn)) tentang n
ciphertext, penyerangan harus memiliki
kesempatan menghasilkan beberapa informasi
H(P1,,Pn) tentang plaintext. Penyerangan akan
merupakan suatu trivial bila ia hanya
menghasilkan H(P1,,Pn) ketika diberikan G(C1,
,Cn) untuk C1,,Cn acak.
Sebagai contoh, misalkan G ( C ) = C dan
misalkan H(P) adalah bit pertama P. Kita dapat
secara mudah menulis suatu penyerangan,
pendugaan, yang menduga bahwa H(P) adalah
1. Penyerangan ini adalah trivial karena tidak
menggunakan ciphertext, probabilitas
keberhasilannya adalah 50 %. Di lain pihak,
terdapat penyerangan atas RSA yang
memproduksi satu bit informasi tentang P,
dengan probabilitas keberhasilan 100 %,
menggunakan C. Jika diberikan suatu C acak
maka tingkat kesuksesan turun menjadi 50%.
Inilah yang disebut penyerangan nontrivial.
Known-plaintext attack
Penyerangan known-plaintext klasik memiliki
F(P1,P2) = P1, G(C1,C2) = (C1,C2), dan H(P1,P2)
tergantung hanya pada P2. Dengan kata lain,
bila diberikan dua ciphertext C1 dan C2 dan satu

dekripsi P1, penyerangan known-plaintext


seharusnya menghasilkan informasi tentang
dekripsi P2.
Brute-force attack
Umpamakan penyerangan known-plaintext
berikut. Kita diberikan sejumlah plaintext P1,
,Pn-1 dan ciphertext C1,,Cn-1. Kita juga
diberikan sebuah ciphertext Cn. Kita jalankan
seluruh kunci K. Bila kita temukan K sedemikian
sehingga EK(P1) = Ci untuk setiap I<n, kita cetak
DK(Cn).
Jika n cukup besar sehingga hanya satu kunci
yang bekerja, penyerangan ini akan sukses
untuk seluruh input yang valid pada setiap
waktu, sementara ia akan menghasilkan hasil
yang tepat hanya sekali untuk input acak.
Penyerangan ini adalah nontrivial, masalahnya
ia sangat lambat bila terdapat banyak
kemungkinan kunci.

Konversi ke HTML oleh Tedi Heriyanto. $ 12


September 1999. 10.30 $

Sumber Informasi Lebih Lanjut (belum


selesai)
Website dan FTP
http://www.rsa.com (RSA Inc.)
http://www.counterpane.com (Counterpane Inc.)
http://theory.lcs.mit.edu/~rivest/ (Ronald L.
Rivest-the R in RSA)
http://www.cryptography.com
Buku-buku
Scheneier, Bruce, Applied Cryptography, edisi
2, New Jersey:John Wiley & Sons, Inc., 1996.

Key-encripting Key
Kunci kriptografi yang digunakan untuk
mengenkripsi kunci lain, tetapi biasanya
tidak digunakan untu...
Cipher
Algoritma kriptografi (cryptographic
algorithm) berupa persamaan matematik
yang digunakan dalam pros...
RSA
Merupakan algoritma kriptografi untuk kunci
public (public key cryptography) yang umum
digunakan saa...
Cryptographers
Para pelaku atau praktisi kriptografi.
Digital Signature Algorithm
DSA adalah merupakan teknik kriptografi
yang berbasis kepada masalah matematika
yang disebut discret...
KRIPTOGRAFI
Sebelum melangkah lebih jauh untuk melakukan
analisis terhadap beberapa SPI yang ada, diperlukan
perangkat-perangkat untuk membantu proses analisis
tersebut. Salah satu dasar yang penting adalah
penggunaan kriptografi sebagai landasan-landasan
teoritis bagaimana sistem-sistem perdagangan di
Internet tersebut melakukan pengamanan.

Kriptografi adalah ilmu yang mempelajari bagaimana


membuat suatu pesan yang dikirim pengirim dapat
disampaikan kepada penerima dengan aman [Schn
96]. Kriptografi dapat memenuhi kebutuhan umum
suatu transaksi:
1. Kerahasiaan (confidentiality) dijamin dengan
melakukan enkripsi (penyandian).
2. Keutuhan (integrity) atas data-data pembayaran
dilakukan dengan fungsi hash satu arah.
3. Jaminan atas identitas dan keabsahan
(authenticity) pihak-pihak yang melakukan
transaksi dilakukan dengan menggunakan
password atau sertifikat digital. Sedangkan
keotentikan data transaksi dapat dilakukan
dengan tanda tangan digital.
4. Transaksi dapat dijadikan barang bukti yang
tidak bisa disangkal (non-repudiation) dengan
memanfaatkan tanda tangan digital dan sertifikat
digital.
Pembakuan penulisan pada kriptografi dapat ditulis
dalam bahasa matematika. Fungsi-fungsi yang
mendasar dalam kriptografi adalah enkripsi dan
dekripsi. Enkripsi adalah proses mengubah suatu
pesan asli (plaintext) menjadi suatu pesan dalam
bahasa sandi (ciphertext).
C = E (M)

dimana
M = pesan asli
E = proses enkripsi
C = pesan dalam bahasa sandi (untuk ringkasnya
disebut sandi)
Sedangkan dekripsi adalah proses mengubah pesan
dalam suatu bahasa sandi menjadi pesan asli kembali.
M = D (C)
D = proses dekripsi
Umumnya, selain menggunakan fungsi tertentu
dalam melakukan enkripsi dan dekripsi, seringkali
fungsi itu diberi parameter tambahan yang disebut
dengan istilah kunci.
Untuk memudahkan penggambaran suatu skenario
komunikasi dalam pembahasan selanjutnya, maka
dipergunakan nama-nama orang yang relevan dengan
peran yang dilakukannya dalam komunikasi itu.
Kode &
nama

Penjelasan

A: Anto

Pihak pertama

B: Badu

Pihak kedua

C: Chandra Pihak ketiga

E: Edi

Pihak penyadap
informasi yang tidak
diperuntukkan
kepadanya
(eavesdropper)

M: Maman Pihak yang tidak hanya


menyadap informasi,
namun juga mengubah
informasi yang disadap
(malacious person)
T: Tari,
Tata,
Tania

Pihak yang dipercaya


oleh pihak pertama,
kedua dan ketiga
(trusted person)

Tabel 3.1. Nama-nama ganti untuk mempermudah


penjelasan
Bab ini akan menguraikan mengenai beberapa jenis
serangan, jenis-jenis kunci kriptografi, berbagai jenis
perangkat dan protokol kriptografi, serta masalah
panjang kunci kriptografi.
Jenis Serangan
Selain ada pihak yang ingin menjaga agar pesan tetap
aman, ada juga ternyata pihak-pihak yang ingin

mengetahui pesan rahasia tersebut secara tidak sah.


Bahkan ada pihak-pihak yang ingin agar dapat
mengubah isi pesan tersebut. Ilmu untuk
mendapatkan pesan yang asli dari pesan yang telah
disandikan tanpa memiliki kunci untuk membuka
pesan rahasia tersebut disebut kriptoanalisis.
Sedangkan usaha untuk membongkar suatu pesan
sandi tanpa mendapatkan kunci dengan cara yang sah
dikenal dengan istilah serangan (attack).
Di bawah ini dijelaskan beberapa macam
penyerangan terhadap pesan yang sudah dienkripsi:
1. Ciphertext only attack, penyerang hanya
mendapatkan pesan yang sudah tersandikan saja.
2. Known plaintext attack, dimana penyerang selain
mendapatkan sandi, juga mendapatkan pesan
asli. Terkadang disebut pula clear-text attack.
3. Choosen plaintext attack, sama dengan known
plaintext attack, namun penyerang bahkan dapat
memilih penggalan mana dari pesan asli yang
akan disandikan.
Berdasarkan bagaimana cara dan posisi seseorang
mendapatkan pesan-pesan dalam saluran komunikasi,
penyerangan dapat dikategorikan menjadi:
1. Sniffing: secara harafiah berarti mengendus,
tentunya dalam hal ini yang diendus adalah

pesan (baik yang belum ataupun sudah


dienkripsi) dalam suatu saluran komunikasi. Hal
ini umum terjadi pada saluran publik yang tidak
aman. Sang pengendus dapat merekam
pembicaraan yang terjadi.
2. Replay attack [DHMM 96]: Jika seseorang bisa
merekam pesan-pesan handshake (persiapan
komunikasi), ia mungkin dapat mengulang
pesan-pesan yang telah direkamnya untuk
menipu salah satu pihak.
3. Spoofing [DHMM 96]: Penyerang misalnya
Maman bisa menyamar menjadi Anto. Semua
orang dibuat percaya bahwa Maman adalah
Anto. Penyerang berusaha meyakinkan pihakpihak lain bahwa tak ada salah dengan
komunikasi yang dilakukan, padahal komunikasi
itu dilakukan dengan sang penipu/penyerang.
Contohnya jika orang memasukkan PIN ke
dalam mesin ATM palsu yang benar-benar
dibuat seperti ATM asli tentu sang penipu bisa
mendapatkan PIN-nya dan copy pita magentik
kartu ATM milik sang nasabah. Pihak bank tidak
tahu bahwa telah terjadi kejahatan.
4. Man-in-the-middle [Schn 96]: Jika spoofing
terkadang hanya menipu satu pihak, maka dalam
skenario ini, saat Anto hendak berkomunikasi
dengan Badu, Maman di mata Anto seolah-olah
adalah Badu, dan Maman dapat pula menipu

Badu sehingga Maman seolah-olah adalah Anto.


Maman dapat berkuasa penuh atas jalur
komunikas ini, dan bisa membuat berita fitnah.
Kabel koaksial yang sering dipergunakan pada
jaringan sangat rentan terhadap serangan vampire tap
[Tane 89], yakni perangkat keras sederhana yang bisa
menembus bagian dalam kabel koaksial sehingga
dapat mengambil data yang mengalir tanpa perlu
memutuskan komunikasi data yang sedang berjalan.
Seseorang dengan vampire tap dan komputer jinjing
dapat melakukan serangan pada bagian apa saja dari
kabel koaksial.
Penyerang juga bisa mendapatkan kunci dengan cara
yang lebih tradisional, yakni dengan melakukan
penyiksaan, pemerasan, ancaman, atau bisa juga
dengan menyogok seseorang yang memiliki kunci
itu. Ini adalah cara yang paling ampuh untuk
mendapat kunci.
Kunci Simetris
Ini adalah jenis kriptografi yang paling umum
dipergunakan. Kunci untuk membuat pesan yang
disandikan sama dengan kunci untuk membuka pesan
yang disandikan itu. Jadi pembuat pesan dan
penerimanya harus memiliki kunci yang sama persis.
Siapapun yang memiliki kunci tersebut termasuk

pihak-pihak yang tidak diinginkan dapat membuat


dan membongkar rahasia ciphertext. Problem yang
paling jelas disini terkadang bukanlah masalah
pengiriman ciphertext-nya, melainkan masalah
bagaimana menyampaikan kunci simetris tersebut
kepada pihak yang diinginkan. Contoh algoritma
kunci simetris yang terkenal adalah DES (Data
Encryption Standard) dan RC-4.

Gambar 3.1. Kunci simetris


Kunci Asimetris
Pada pertengahan tahun 70-an Whitfield Diffie dan
Martin Hellman menemukan teknik enkripsi
asimetris yang merevolusi dunia kriptografi. Kunci
asimetris adalah pasangan kunci-kunci kriptografi
yang salah satunya dipergunakan untuk proses
enkripsi dan yang satu lagi untuk dekripsi. Semua
orang yang mendapatkan kunci publik dapat
menggunakannya untuk mengenkripsikan suatu
pesan, sedangkan hanya satu orang saja yang
memiliki rahasia tertentu dalam hal ini kunci privat
untuk melakukan pembongkaran terhadap sandi
yang dikirim untuknya.

Dengan cara seperti ini, jika Anto mengirim pesan


untuk Badu, Anto dapat merasa yakin bahwa pesan
tersebut hanya dapat dibaca oleh Badu, karena hanya
Badu yang bisa melakukan dekripsi dengan kunci
privatnya. Tentunya Anto harus memiliki kunci
publik Badu untuk melakukan enkripsi. Anto bisa
mendapatkannya dari Badu, ataupun dari pihak ketiga
seperti Tari.

Gambar 3.2. Penggunaan kunci asimetris


Teknik enkripsi asimetris ini jauh lebih lambat
ketimbang enkripsi dengan kunci simetris. Oleh
karena itu, biasanya bukanlah pesan itu sendiri yang
disandikan dengan kunci asimetris, namun hanya
kunci simetrislah yang disandikan dengan kunci
asimetris. Sedangkan pesannya dikirim setelah
disandikan dengan kunci simetris tadi. Contoh
algoritma terkenal yang menggunakan kunci
asimetris adalah RSA (merupakan singkatan
penemunya yakni Rivest, Shamir dan Adleman).
Fungsi Hash Satu Arah
Kini akan dibahas mengenai keutuhan pesan saat
dikirimkan. Bagaimana jika Anto mengirimkan surat

pembayaran kepada Badu sebesar 1 juta rupiah,


namun di tengah jalan Maman (yang ternyata berhasil
membobol sandi entah dengan cara apa)
membubuhkan angka 0 lagi dibelakangnya sehingga
menjadi 10 juta rupiah? Di mata Tari, pesan tersebut
harus utuh, tidak diubah-ubah oleh siapapun, bahkan
bukan hanya oleh Maman, namun juga termasuk oleh
Anto, Badu dan gangguan pada transmisi pesan
(noise). Hal ini dapat dilakukan dengan fungsi hash
satu arah (one-way hash function), yang terkadang
disebut sidik jari (fingerprint), hash, message
integrity check, atau manipulation detection code.
Saat Anto hendak mengirimkan pesannya, dia harus
membuat sidik jari dari pesan yang akan dikirim
untuk Badu. Pesan (yang besarnya dapat bervariasi)
yang akan di-hash disebut pre-image, sedangkan
outputnya yang memiliki ukurannya tetap, disebut
hash-value (nilai hash). Kemudian, melalui saluran
komunikasi yang aman, dia mengirimkan sidik
jarinya kepada Badu. Setelah Badu menerima pesan
si Anto tidak peduli lewat saluran komunikasi yang
mana Badu kemudian juga membuat sidik jari dari
pesan yang telah diterimanya dari Anto. Kemudian
Badu membandingkan sidik jari yang dibuatnya
dengan sidik jari yang diterimanya dari Anto. Jika
kedua sidik jari itu identik, maka Badu dapat yakin
bahwa pesan itu utuh tidak diubah-ubah sejak

dibuatkan sidik jari yang diterima Badu. Jika pesan


pembayaran 1 juta rupiah itu diubah menjadi 10 juta
rupiah, tentunya akan menghasilkan nilai hash yang
berbeda.

Gambar 3.3. Membuat sidik jari pesan


Fungsi hash untuk membuat sidik jari tersebut dapat
diketahui oleh siapapun, tak terkecuali, sehingga
siapapun dapat memeriksa keutuhan dokumen atau
pesan tertentu. Tak ada algoritma rahasia dan
umumnya tak ada pula kunci rahasia.
Jaminan dari keamanan sidik jari berangkat dari
kenyataan bahwa hampir tidak ada dua pre-image
yang memiliki hash-value yang sama. Inilah yang
disebut dengan sifat collision free dari suatu fungsi
hash yang baik. Selain itu, sangat sulit untuk
membuat suatu pre-image jika hanya diketahui hashvaluenya saja.
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.

Tanda Tangan Digital


Badu memang dapat merasa yakin bahwa sidik jari
yang datang bersama pesan yang diterimanya
memang berkorelasi. Namun bagaimana Badu dapat
merasa yakin bahwa pesan itu berasal dari Anto? Bisa
saja saat dikirimkan oleh Anto melalui saluran
komunikasi yang tidak aman, pesan tersebut diambil
oleh Maman. Maman kemudian mengganti isi pesan
tadi, dan membuat lagi sidik jari dari pesan yang baru
diubahnya itu. Lalu, Maman mengirimkan lagi pesan
beserta sidik jarinya itu kepada Badu, seolah-oleh
dari Anto.
Untuk mencegah pemalsuan, Anto membubuhkan
tanda tangannya pada pesan tersebut. Dalam dunia
elektronik, Anto membubuhkan tanda tangan
digitalnya pada pesan yang akan dikirimkan untuk
Badu sehingga Badu dapat merasa yakin bahwa
pesan itu memang dikirim oleh Anto.
Sifat yang diinginkan dari tanda tangan digital
diantaranya adalah:
1. Tanda tangan itu asli (otentik), tidak mudah
ditulis/ditiru oleh orang lain. Pesan dan tanda
tangan pesan tersebut juga dapat menjadi barang
bukti, sehingga penandatangan tak bisa

menyangkal bahwa dulu ia tidak pernah


menandatanganinya.
2. Tanda tangan itu hanya sah untuk dokumen
(pesan) itu saja. Tanda tangan itu tidak bisa
dipindahkan dari suatu dokumen ke dokumen
lainnya. Ini juga berarti bahwa jika dokumen itu
diubah, maka tanda tangan digital dari pesan
tersebut tidak lagi sah.
3. Tanda tangan itu dapat diperiksa dengan mudah.
4. Tanda tangan itu dapat diperiksa oleh pihakpihak yang belum pernah bertemu dengan
penandatangan.
5. Tanda tangan itu juga sah untuk kopi dari
dokumen yang sama persis.
Meskipun ada banyak skenario, ada baiknya kita
perhatikan salah satu skenario yang cukup umum
dalam penggunaan tanda tangan digital. Tanda tangan
digital memanfaatkan fungsi hash satu arah untuk
menjamin bahwa tanda tangan itu hanya berlaku
untuk dokumen yang bersangkutan saja. Bukan
dokumen tersebut secara keseluruhan yang
ditandatangani, namun biasanya yang ditandatangani
adalah sidik jari dari dokumen itu beserta timestampnya dengan menggunakan kunci privat. Timestamp
berguna untuk menentukan waktu pengesahan
dokumen.

Gambar 3.4. Pembuatan tanda tangan digital


Keabsahan tanda tangan digital itu dapat diperiksa
oleh Badu. Pertama-tama Badu membuat lagi sidik
jari dari pesan yang diterimanya. Lalu Badu
mendekripsi tanda tangan digital Anto untuk
mendapatkan sidik jari yang asli. Badu lantas
membandingkan kedua sidik jari tersebut. Jka kedua
sidik jari tersebut sama, maka dapat diyakini bahwa
pesan tersebut ditandatangani oleh Anto.

Gambar 3.5. Pemeriksaan keabsahan tanda tangan


digital
Masalah Pertukaran Kunci Publik

Anto hendak mengirimkan Badu suatu dokumen


rahasia. Jika mereka belum pernah bertemu
sebelumnya, tentu Badu harus mengirimkan kunci
publiknya kepada Anto agar Anto dapat melakukan
enkripsi yang pesannya hanya dapat dibuka oleh
Badu. Demikian juga pula sebaliknya, Anto harus
mengirimkan kepada Badu kunci publiknya agar
Badu dapat memeriksa keaslian tanda tangan Anto
pada pesan yang dikirim. Dengan cara ini Anto dapat
memastikan pesan itu sampai ke tujuannya,
sedangkan Badu dapat merasa yakin bahwa pengirim
pesan itu adalah Anto.
Masalah yang muncul adalah bagaimana mereka
dapat saling bertukar kunci dengan aman? Bisa saja
di tengah pertukaran kunci-kunci publik milik Anto
dan Budi itu diganti dengan kunci publik milik
Maman. Dengan begitu Maman dengan bebas dapat
menyadap dan mengubah seluruh informasi. Inilah
suatu contoh dari man-in-the-middle attack.
Anto dan Badu harus sama-sama yakin bahwa kuncikunci publik yang mereka dapatkan benar-benar
otentik. Mereka bisa mendapatkannya dari sesorang
yang dipercaya, Tari misalnya. Setiap anggota
jaringan diasumsikan telah memiliki saluran
komunikasi pribadi yang aman dengan Tari. Saluran
inilah yang dimanfaatkan untuk mengirim kunci

publik Badu ke Anto (dan sebaliknya). Tari menjadi


penjamin keabsahan kunci jika Anto dan Badu
sebelumnya tidak pernah bertukar kunci publik.
Skenario ini tetap membutuhkan kunci-kunci
kriptografi lagi (baik itu kunci simetris ataupun kunci
asimetris) untuk pengamanan saluran komunikasi
antara Tari dengan Anto atau Badu.
Sertifikat Digital
Masalah di atas dapat dipecahkan dengan
penggunaan sertifikat digital. Tari tidak lagi setiap
saat menjadi penukar kunci, namun Tari cukup
menandatangani kunci publik milik setiap orang di
jaringan tersebut. Sebenarnya dalam sertifikat
tersebut tak hanya berisi kunci publik, namun dapat
berisi pula informasi penting lainnya mengenai jati
diri pemilik kunci publik, seperti misalnya nama,
alamat, pekerjaan, jabatan, perusahaan dan bahkan
hash dari suatu informasi rahasia. Semua orang
mempercayai otoritas Tari dalam memberikan tanda
tangan, sehingga orang-orang dalam jaringan itu
merasa aman menggunakan kunci publik yang telah
ditandatangani Tari.

Gambar 3.6. Contoh sertifikat digital


Jika Maman berhasil mencuri sertifikat digital yang
dipertukarkan antara Anto dan Badu, serta
menggantinya dengan sertifikat digital milik dirinya
sendiri, maka Anto dan Badu dapat segera melihat
bahwa sertifikat digital yang diterimanya bukan
lawan bicara yang semestinya.
Bagaimana jika Chandra yang berada di luar
jaringan Tari hendak berkomunikasi dengan Anto?
Chandra memiliki juga sertifikat, tetapi tidak
ditandatangani oleh Tari, melainkan oleh Tata,
seseorang yang dipercaya dalam jaringan tempat
Chandra berada. Tari dan Tata adalah otoritas
sertifikat (certificate authority), yaitu pihak-pihak
yang berwenang memberikan sertifikat. Namun Anto
tidak mengenal dan tidak mempercayai Tata. Masalah
ini dapat diselesaikan jika ada otoritas sertifikat (OS)
yang kedudukannya lebih tinggi dari Tata dan Tari
katakanlah Tania. Tania memberikan pengesahan
kepada Tata dan Tari. Jadi ada hirarki dari sertifikat

digital. Jika Tania berada pada kedudukan hirarki


yang paling tinggi, maka Tania disebut otoritas
sertifikat utama (root certificate authority).
Anto mempercayai tanda tangan Tari. Namun karena
Tari sendiri keberadaannya disahkan oleh Tania,
tentunya Anto harus mengakui otoritas Tania. Jika
Tania memberikan pengesahan kepada OS lain
dibawahnya, seperti Tata, maka dengan merunut
struktur hirarki percabangan OS, Anto dapat
memeriksa kebenaran sertifikat digital milik Chandra
yang disahkan oleh Tata.

Gambar 3.7. Contoh hirarki otoritas sertifikat digital

Serangan terhadap sistem yang memiliki pengamanan


dengan sertifikat digital sulit dilakukan. Jelas Edi
tidak mendapatkan apa-apa kalaupun ia memainkan
ulang percakapan antara Anto dan Chandra. Edi
membutuhkan kunci privat untuk bisa membuka
pesan-pesan yang dipertukarkan, padahal kunci privat
itu tidak ada di dalam sertifikat digital.
Penukaran sertifikat digital Chandra dengan sertifikat
digital Maman akan segera diketahui, karena
sertifikat digital itu pasti berbeda. Sedangkan jika
sertifikat yang dipertukarkan antara Chandra dan
Anto tidak diganti, tetapi yang diganti oleh Maman
adalah pesan yang dipertukarkan, maka tentu ada
ketidakcocokan dalam pemeriksaan tanda tangan
digital.
Secara teoritis keunggulan dari tanda tangan digital
adalah kemampuan untuk melakukan proses
otentikasi secara off-line. Pemeriksa cukup memiliki
kunci publik dari OS utama untuk mengetahui sahtidaknya kunci publik dari lawan bicaranya. Selain
itu untuk meningkatkan keamanan, kunci publik OS
utama bisa saja diintegrasikan dalam program
aplikasi. Namun kenyataannya, karena ada
kemungkinan sertifikat digital tersebut hilang, tercuri
atau identitas pemilik sertifikat berubah (perubahan
alamat surat elektronik atau nomor KTP misalnya),

maka sertifikat digital perlu diperiksa keabsahannya


dengan melihat daftar sertifikat terbatalkan
(certificate revocation list) yang disimpan oleh OS.
Tanda Tangan Pesan Ganda
Andaikan Anto membuat perjanjian jual-beli dengan
Badu. Untuk masalah pembayaran, Anto
menginstruksikan bank untuk memberikan kepada
Badu sejumlah uang sesuai dengan perjanjian jualbeli, namun Anto tidak ingin agar bank mengetahui
isi perjanjian jual-beli itu.
1. Anto membuat sidik jari dari SPP (yaitu
Hash(SPP)) dan sidik jari SPJB (yakni
Hash(SPJB)).
2. Kemudian, Anto membuat sebuah sidik jari baru
dari gabungan kedua sidik jari sebelumnya (
Hash ( (Hash(SPP) + Hash(SPJB) ) ). Hasil hash
tersebut dinamakan sidik jari pesan ganda SPP &
SPJB.
3. Anto menyerahkan surat perjanjian jual belinya
kepada Badu. Selain itu Anto juga menyerahkan
surat perintah pembayaran beserta sidik jari
pesan ganda SPP & SPJB kepada bank.
4. Saat Badu ingin mengambil uang di bank, Badu
membuat sidik jari dari surat perjanjian jual beli
(SPJB). Badu menyerahkan sidik jari SPJB
kepada bank.

5. Bank membuat sidik jari dari surat perintah


pembayaran (SPP).
6. Bank menggabungkan sidik jari SPP dengan
sidik jari SPJB yang diterimanya dari Badu,
kemudian meng-hash-nya sehingga dihasilkan
sidik jari pesan ganda SPP & SPJB.
7. Jika sidik jari pesan ganda SPP & SPJB yang
baru dibuat itu sama dengan yang telah diberikan
oleh Anto, maka bank menjalankan
kewajibannya kepada Badu.

Gambar 3.8. Pembuatan sidik jari pesan ganda


Jika sidik jari pesan ganda SPP & SPJB dienkripsi
dengan kunci privat Anto, maka akan menjadi tanda

tangan pesan ganda (dual-signature) Anto untuk


kedua perjanjian tersebut [ViMa 97].
Protokol Pembagian Rahasia
Jika Anto memiliki rahasia, ia dapat memberikan
separuh rahasia itu kepada Badu dan separuh
rahasia itu kepada Chandra. Badu, yang menerima
paruh pertama rahasia Anto, tidak bisa mengetahui
apa isi rahasia itu. Demikian pula dengan Chandra.
Namun, jika Badu dan Chandra menggabungkan
potongan-potongan rahasia itu, maka akan tergambar
rahasia Anto. Pembagian rahasia (secret splitting)
dapat dilakukan dengan cara:
1. Anto membuat seuntai string acak R yang
panjangnya sama dengan pesan rahasia M.
2. Anto melakukan operasi XOR antara M dengan
R, sehingga menghasilkan S.
3. Anto memberikan R kepada Badu dan S kepada
Chandra
4. Jika Badu dengan Chandra bertemu, maka
mereka sanggup mendapatkan pesan rahasia M
dengan cara melakukan operasi XOR antara S
dengan R.
Protokol Komitmen-Bit
Protokol ini bermanfaat kalau misalnya Anto hendak
membuat suatu pernyataan atau komitmen

(katakanlah suatu string binari 1000), namun Anto


tak ingin agar Badu mengetahui isi pernyatan tersebut
sebelum saatnya. Badu harus merasa yakin bahwa
Anto pada saatnya nanti, benar-benar mengeluarkan
isi pernyataan yang sebenarnya saat melakukan
komitmen, dan tidak mengeluarkan pernyataan yang
sudah diubah (misalnya mengubah string tadi
menjadi 1001). Ada beberapa jenis protokol
komitmen-bit, namun di bawah ini hanya dijelaskan
salah satu diantaranya, yakni dengan fungsi hash satu
arah:
1. Anto membuat dua buah string secara acak,
yakni R1 dan R2
2. Anto menggabungkan kedua string acak itu ke
dalam pernyataannya (b) yang akan
dikomitmenkan menjadi (R1, R2, b)
3. Anto menghitung hash dari gabungan string itu,
Hash(R1, R2, b).
4. Anto kemudian mengirimkan hash tersebut
beserta R1 kepada Badu. Badu akan
menyimpannya untuk pemeriksaan nanti.
5. Jika sudah tiba saatnya untuk menunjukkan
pernyataannya, Anto memberikan seluruh string
(R1, R2, b) kepada Badu.
6. Badu memeriksa fungsi hash dari (R1, R2, b). Jika
cocok dengan hash yang diperiksanya dulu,
maka pernyataan Anto tidak diubah.

Tanda Tangan Buta


Badu disodori 100 amplop tertutup oleh Anto.
Amplop itu berisi secarik pesan dan kertas karbon.
Badu membuka 99 amplop secara acak. Jika seluruh
amplop yang dibuka ternyata berisi pesan yang mirip,
maka Badu dapat merasa bahwa amplop ke-100 juga
berisi pesan yang mirip pula. Namun, jika satu saja
dari 99 amplop tadi ada yang isi berbeda dari yang
lain, maka Badu dapat mencurigai bahwa isi amplop
ke-100 bisa saja juga tidak mirip dengan isi ke-98
amplop lainnya.
Dalam kasus dimana ternyata ke-99 amplop yang
dibuka secara acak tadi berisi pesan yang mirip, maka
dengan keyakinan yang cukup tinggi Badu berani
menandatangani amplop terakhir yang belum dibuka.
Tanda tangan Badu akan menembus amplop dan
kertas karbon, sehingga pesan dalam amplop akan
tertandatangani oleh Badu. Badu kurang lebih tahu
apa isi pesan di amplop ke-100 itu. Protokol tanda
tangan buta (blind signature) bekerja sebagai berikut:
1. Anto mengalikan dokumen (yang akan
ditandatangani) dengan sebuah faktor pembuta.
2. Anto mengirimkan dokumen itu kepada Badu
3. Badu menandatangani dokumen itu
4. Badu mengembalikan dokumen yang sudah
ditandatangani tadi kepada Anto

5. Anto membaginya dengan faktor pembuta,


sehingga mendapatkan dokumen yang asli sudah
tertandatangani oleh Badu.
Protokol Uang Digital
1. Deskripsi Protokol
Berdasarkan beberapa teori penunjang di atas, maka
dapatlah dibangun suatu protokol untuk uang digital.
David Chaum, memiliki beberapa paten atas protokol
uang digital yang diciptakannya. Berikut ini
dijelaskan salah satu protokol uang digital:
1. Anto menyiapkan n lembar uang dengan nilai
tertentu. Setiap uang diberi nomor seri acak X
yang cukup panjang, sehingga kemungkinan 2
bilangan acak sama kecil sekali. Dalam setiap
uang juga ada n (I1, I2, , In) string identifikasi
yang berguna untuk memberikan informasi
mengenai pemilik uang, yakni Anto. Anto
kemudian memecah tiap-tiap string identitas diri
itu tadi menjadi dua bagian dengan
menggunakan protokol pemecahan rahasia.
Lantas Anto melakukan bit-komitmen pada
setiap pecahan. Contoh uang yang disiapkan
adalah:
Nilai: Rp.1.000,Nomor seri acak: X

String identitas: I1 = (I1L, I1R)


I2 = (I2L, I2R)
....
In = (InL, InR)
2. Anto memasukkan uang itu kedalam yang juga
disisipi kertas karbon amplop (mengalikan uang
dengan faktor pembuta), lalu memberikannya
kepada bank.
3. Bank akan meminta Anto untuk membuka n - 1
amplop itu secara acak. Bank memeriksa apakah
semua uang tersebut memiliki nilai yang sama.
Bank juga meminta kepada Anto untuk
membuktikan kejujuran dirinya saat menuliskan
string identifikasi pada uang itu, dengan cara
menggabungkan pasangan-pasangan string
identifikasi.
4. Jika bank merasa bahwa Anto tidak melakukan
kecurangan, maka bank akan menandatangani
uang terakhir yang masih di dalam amplop itu
dan menyerahkannya kepada Anto. Tanda tangan
bank akan menembus amplop dan kertas karbon
sehingga uang di dalamnya tertandatangani.
5. Anto membuka amplop. Uang siap dipakai.
6. Anto menyerahkan uang kepada Badu. Badu
sebagai penerima uang, akan memeriksa apakah
tanda tangan bank pada uang itu absah.

7. Badu akan menyuruh Anto untuk membuka salah


satu sisi dari setiap string identifikasi di setiap
uang dengan cara memberikan string pemilih
sepanjang n-bit. Artinya, jika string pemilih itu
b1, b2, , bn maka Anto harus membuka sisi kiri
atau kanan dari Ii, tergantung apakah bi itu 0 atau
1.
8. Setelah itu Badu membawa uang tersebut ke
bank. Bank akan memeriksa apakah nomor seri
uang tersebut sudah pernah diterima oleh bank.
Kalau belum ada, maka uang tersebut dinyatakan
sah.
9. Jika nomor seri uang itu sudah pernah diterima
oleh bank, maka bank akan memeriksa string
identitas yang sudah terbuka pada uang itu dan
membandingkannya dengan string identitas pada
uang dengan nomor seri sama yang pernah
diterima bank sebelumnya. Jika ternyata string
identitas itu sama, maka berarti Badu yang
menggandakan uang tersebut. Namun jika
berbeda, maka berarti Anto yang menggandakan
uang digital tersebut.
2. Pembelanjaan Ganda
Jika Anto menggandakan uang digitalnya lalu
menggunakan uang digital yang sama itu dua kali,
bank dapat mendeteksinya meskipun Badu tidak bisa.

Badu memang membuka identitas uang, namun


hanya separuh-separuh. Kalau uang digital itu pernah
diberikan Anto kepada Chandra, maka tentu Chandra
juga pernah membuka separuh identitas uang digital
tadi secara acak. Nah, kemungkinan bahwa proses
pembukaan identitas oleh Badu dan Chandra itu sama
(maksudnya sama urutan pembukaannya, misalnya
kiri-kiri-kanan-kiri-kanan, dan seterusnya) adalah 1
per 2n. Andaikan n cukup besar, katakanlah 16 saja,
maka kemungkinan Badu dan Chandra secara acak
membuka paruhan identitas dengan urutan sama
adalah 1 : 65536. Artinya, jika Anto memberikan
uangnya kepada dua orang yang berbeda,
kemungkinan besar paruhan identitas yang dibuka
juga berbeda. Jika saat otentikasi uang digital oleh
bank ditemukan bahwa ada uang digital dengan
nomor seri sama yang telah diuangkan, dan paruhan
identitasnya berbeda, maka kemungkinan besar Anto
menyerahkan uang digital yang sama kepada dua
orang yang berbeda.
Sedangkan apabila Badu menguangkan uang digital
yang sama dua kali, karena paruhan identitas dari
uang digital yang diotentikasi itu sama persis dengan
yang sudah tercatat, maka kemungkinan besar uang
itu diberikan Anto kepada orang yang sama. Badulah
yang ketahuan menguangkan uang digital yang sama
dua kali. Penggunaan uang digital yang sama dua kali

dikenal dengan istilah pembelanjaan ganda (double


spending).
Panjang Kunci
Panjang Kunci Simetris
Meskipun ada beberapa cara bagi seorang
kriptoanalis untuk memecahkan pesan rahasia,
namun cara yang cukup umum dilakukan adalah
dengan melakukan brute-force attack. Dengan cara
ini, seorang penyerang mencoba seluruh
kemungkinan kunci yang ada, sampai menemukan
sebuah kunci yang jika dipergunakan untuk
mendekripsi pesan yang disandikan akan
memunculkan suatu pesan yang bermakna. Tentunya
cara ini bermanfaat hanya jika sudah diketahui
algoritmanya, namun tidak diketahui kuncinya apa.
PIN 5 digit berarti biasanya ada 100.000 kombinasi.
Kelihatannya cukup, namun sebenarnya kurang.
Dengan sebuah komputer pribadi saja bisa dengan
mudah diselesaikan. Salah satu pencegahannya
adalah dengan pembatasan seberapa banyak pemakai
dapat mencoba memasukkan PIN. Biasanya dibatasi
tiga kali.
Berikut ini diberikan contoh dari brute-force attack
pada suatu algoritma geser pada papan ketik
QWERTY:

Sandi zsdyrtvstf dicoba dengan kunci 3 menjadi


bjkwpqmjql
Sandi zsdyrtvstf dicoba dengan kunci 2 menjadi
nkleqwzkwa
Sandi zsdyrtvstf dicoba dengan kunci 1 menjadi
mastercard
Ternyata kunci 1 cocok, karena dalam pesan yang
disandikan itu mungkin ada transaksi yang
menggunakan kartu kredit mastercard. Dengan
menggunakan kunci yang sama, kemudian penyerang
berusaha mendekripsikan bagian-bagian lain dari
pesan, mungkin berusaha mengambil nomor kartu
kreditnya. Kunci itu juga dapat dipakai untuk
keperluan lain, misalnya untuk melakukan penipuan
(spoofing).
DES, sebuah algoritma simetris, memiliki panjang
kunci 56-bit, artinya ada 256 kemungkinan kunci.
Sedangkan peraturan di Amerika Serikat yang akan
diberlakukan pada tahun 1998 nanti akan melarang
ekspor teknologi enkripsi lebih dari 40-bit.
Sedangkan untuk keperluan dalam negeri Amerika
Serikat, kunci 128-bit masih diizinkan
penggunaannya [Star 97].
Tahun 1995, Michael Wierner merancang sebuah
chip yang mengkhususkan diri untuk melakukan
brute-force attack pada metoda enkripsi DES [Schn

96]. Chip tersebut dapat menemukan kunci rahasia


dalam waktu rata-rata 3,5 jam dan kunci itu dijamin
dapat ditemukan dalam waktu 7 jam. Harga
pembuatannya adalah 1 juta dollar AS. Sesuai hukum
Moore, setiap 18 bulan kemampuan komputer
meningkat 2 kali lipat untuk harga yang sama. Maka,
pada tahun 2000, harga chip itu hanya berkisar
100.000 dolar AS. Harga ini masih dalam jangkauan
daya beli beberapa mafia kejahatan terorganisir.
Karena itu, kini disarankan untuk menggunakan DES
dengan kunci 112-bit.
Panjang
kunci DES

Jaminan waktu
untuk menemukan
kunci

40-bit

0,4 detik

56-bit

7 jam

64-bit

74 jam 40 menit

128-bit

157.129.203.952.300.0
00 tahun

Tabel 3.2. Serangan brute-force pada DES


Protokol keamanan SSL (Secure Socket Layer) pada
Netscape Navigator menggunakan algoritma RC4 40bit untuk enkripsi simetrisnya. Tahun 1995, Damien

Doligez menjebolnya menggunakan 120 komputer


Unix yang terhubung pada jaringan dalam waktu 8
hari [Star 97]. Dengan cara seperti ini, dijamin bahwa
dalam 15 hari kunci itu pasti ditemukan.
Panjan
g kunci
RC4

Jaminan waktu untuk


menemukan kunci

40-bit

15 hari

56-bit

2.691,49 tahun

64-bit

689.021,57 tahun

128-bit 12.710.204.652.610.000.000.000.
000 tahun
Tabel 3.3. Serangan brute-force pada RC4
Panjang Kunci Asimetris
Sedangkan pada sistem enkripsi kunci publik-privat,
yang memegang peranan dalam menjebol kunci
privat adalah kesulitan mencari faktor prima bilangan
yang sangat besar. Beberapa kunci yang
dipergunakan 10 tahun lalu saja kini sama sekali
tidak laik pakai seiring dengan perkembangan ilmu
pengetahuan dan teknologi.

Kunci publik yang dimanfaatkan SSL adalah


teknologi kunci publik 40-bit dari RSA, yang
ternyata dapat dijebol dalam waktu 1,3 hari dengan
100 komputer menggunakan brute-force attack
[DHMM 96].
Ronald Rivest, salah seorang penemu RSA, juga
pernah menghitung bahwa untuk menemukan kunci
RSA 512-bit dengan cara brute-force attack
membutuhkan biaya 8,2 juta dollar AS [DaLe 96].
Untuk kasus tertentu, ini pun tidak aman. Kini
perusahaan-perusahaan disarankan menggunakan
kunci 2048 bit agar data aman sampai tahun 2015.
Prospek
Pada saat tulisan ini dibuat, ekspor teknologi enkripsi
DES 56-bit keluar dari Amerika Serikat masih
diizinkan. Untuk yang lainnya hanya diizinkan 40bit. Setelah tanggal 31 Desember 1998, ekspor
teknologi enkripsi DES dari Amerika Serikat hanya
dibatasi sampai 40-bit saja, atau boleh saja tetap 56bit, namun pengembang perangkat lunak itu harus
menyediakan perangkat untuk membuka kunci itu
juga [Star 97].
Panjang-pendeknya kunci dalam teknik-teknik
enkripsi pada sistem perdagangan di Internet, akan
menjadi salah satu titik lemah sistem perdagangan di

Internet itu sendiri. Ada argumen yang menyatakan


bahwa kalau pada suatu saat ukuran kunci publikprivat terasa terlalu pendek, maka panjangkan saja
lagi kunci itu, tentu proses penyerangannya akan
makin sulit. Hal ini memang benar, namun ada
pertimbangan lain bahwa pengguna kunci tersebut
harus bisa melakukan proses enkripsi-dekripsi
dengan teknologi yang secara komersil
memungkinkan. Terlihat di sini bahwa dibutuhkan
ukuran kunci yang cukup panjang supaya aman, tapi
tidak terlalu panjang agar memudahkan dalam
penggunannya secara umum.
Beberapa teknik brute-force attack lain yang tidak
akan dibahas panjang disini, seperti dengan
penyebaran virus, komputasi paralel pada jaringan
raksasa, undian Cina, atau penggunaan komputer
biologis. Semua itu menunjukkan bahwa ada
kemungkinan bahwa kunci bisa didapatkan dengan
brute-force attack.
Satu hal yang patut dicatat adalah bukan berarti
dengan mungkinnya suatu metoda enkripsi dijebol
lantas metoda enkripsi itu tidak bermanfaat, namun
yang penting apakah biaya untuk melakukan
serangan itu lebih besar dari pada harga informasi
yang dienkripsi itu. Jika ya, maka untuk apa sang
pencuri melakukannya? Untuk apa melakukan

penyerangan dengan biaya 2 milyar rupiah kalau


informasi yang dienkripsi hanya berharga
Rp.10.000,- saja?
Kembali ke daftar isi

Bab 22. Keamanan Sistem


Kriptografi
Dasar enkripsi cukup sederhana. Pengirim
menjalankan fungsi enkripsi pada pesan plaintext,
ciphertext yang dihasilkan kemudian dikirimkan
lewat jaringan, dan penerima menjalankan fungsi
dekripsi (decryption) untuk mendapatkan plaintext
semula. Proses enkripsi/dekripsi tergantung pada
kunci (key) rahasia yang hanya diketahui oleh
pengirim dan penerima. Ketika kunci dan enkripsi ini
digunakan, sulit bagi penyadap untuk mematahkan
ciphertext, sehingga komunikasi data antara pengirim
dan penerima aman.
Kriptografi macam ini dirancang untuk menjamin
privasi: mencegah informasi menyebar luas tanpa
izin. Akan tetapi, privaci bukan satu-satunya layanan
yang disediakan kriptografi. Kriptografi dapat juga

digunakan untuk mendukung authentication


(memverifikasi identitas pengguna) dan integritas
(memastikan bahwa pesan belum diubah).
Kriptografi digunakan untuk mencegah orang yang
tidak berhak untuk memasuki komunikasi, sehingga
kerahasiaan data dapat dilindungi. Secara garis besar,
kriptografi digunakan untuk mengirim dan menerima
pesan. Kriptografi pada dasarnya berpatokan pada
kunci yang secara selektif telah disebar pada
komputer-komputer yang berada dalam satu jaringan
dan digunakan untuk memroses suatu pesan.
Operasional
Keamanan operasional (operations security) adalah
tindakan apa pun yang menjadikan sistem beroperasi
secara aman, terkendali, dan terlindung. Yang
dimaksud dengan sistem adalah jaringan, komputer,
lingkungan. Suatu sistem dinyatakan operasional
apabila sistem telah dinyatakan berfungsi dan dapat
dijalankan dengan durasi yang berkesinambungan,
yaitu dari hari ke hari, 24 jam sehari, 7 hari
seminggu.
Manajemen Administratif (Administrative
Management) adalah penugasan individu untuk
mengelola fungsi-fungsi keamanan sistem. Beberapa
hal yang terkait:

1. Pemisahan Tugas (Separation of Duties).


Menugaskan hal-hal yang menyangkut
keamanan kepada beberapa orang saja. Misalnya,
yang berhak menginstall program ke dalam
system komputer hanya admin, user tidak diberi
hak tersebut.
2. Hak Akses Minimum (Least Privilege). Setiap
orang hanya diberikan hak akses minimum yang
dibutuhkan dalam pelaksanaan tugas mereka
3. Keingin-tahuan (Need to Know). Yang dimaksud
dengan need to know adalah pengetahuan akan
informasi yang dibutuhkan dalam melakukan
suatu pekerjaan.
Kategori utama dari kontrol keamanan operasional
antara lain:
1. Kendali Pencegahan (Preventative Control).
Untuk mencegah error dan intruder temasuki
sistem. Misal, kontrol pencegahan untuk
mencegah virus memasuki sistem adalah dengan
menginstall antivirus.
2. Kontrol Pendeteksian (Detective Control). Untuk
mendeteksi error yang memasuki sistem. Misal,
mencari virus yang berhasil memasuki sistem.
3. Kontrol Perbaikan (Corrective/Recovery
Control). Membantu mengembalikan data yang

hilang melalui prosedur recovery data. Misal,


memperbaiki data yang terkena virus.
Kategori lainnya mencakup:
1. Kendali Pencegahan (Deterrent
Control). . Untuk menganjurkan pemenuhan
(compliance) dengan kontrol eksternal.
2. Kendali Aplikasi (Application Control) . Untuk
memperkecil dan mendeteksi operasi-operasi
perangkat lunak yang tidak biasa.
3. Kendali Transaksi (Transaction
Control) . Untuk menyediakan kendali di
berbagai tahap transaksi (dari inisiasi sampai
keluaran, melalui kontrol testing dan kontrol
perubahan).
Terminologi Kriptografi
<!--[if !supportLists]-->
a. Pesan, Plainteks dan Cipherteks
Pesan adalah data atau informasi yang dapat dibaca
dan dimengerti maknanya. Nama lain untuk pesan
adalah plainteks. Agar pesan tidak bisa dimengerti
maknanya oleh pihak lain, maka pesan perlu
disandikan ke bentuk lain yang tidak dapat dipahami.
Bentuk pesan yang tersandi disebut cipherteks
b. Pengirim dan Penerima

Pengirim adalah entitas yang mengirim pesan kepada


entitas lainnya. Penerima adalah entitas yang
menerima pesan. Entitas di sini dapat berupa orang,
mesin (komputer), kartu kredit dan sebagainya.
c. Enkripsi dan dekripsi
Proses menyandikan plainteks menjadi cipherteks
disebut enkripsi. Sedangkan proses mengembalikan
cipherteks menjadi plainteks semula dinamakan
dekripsi
d. Cipher dan kunci
Algoritma kriptografi disebut juga cipher yaitu aturan
untuk enciphering dan deciphering, atau fungsi
matematika yang digunakan untuk enkripsi dan
dekripsi. Konsep matematis yang mendasari
algoritma kriptografi adalah relasi antara dua buah
himpunan yaitu himpunan yang berisi elemen-elemen
plainteks dan himpunan yang berisi cipherteks.
Enkripsi dan dekripsi adalah fungsi yang memetakan
elemen-elemen antara kedua himpunan tersebut.
e. Sistem kriptografi
Sistem kriptografi merupakan kumpulan yang terdiri
dari algoritma kriptografi, semua plainteks dan
cipherteks yang mungkin dan kunci.

f. Penyadap
Penyadap adalah orang yang berusaha mencoba
menangkap pesan selama ditransmisikan dengan
tujuan mendapatkan informasi sebanyak-banyaknya
mengenai sistem kriptografi yang digunakan untuk
berkomunikasi dengan maksud untuk memecahkan
cipherteks.
g. Kriptanalisis dan kriptologi
Kriptanalisis (cryptanalysis) adalah ilmu dan seni
untuk memecahkan cipherteks menjadi plainteks
tanpa mengetahui kunci yang digunakan. Pelakunya
disebut kriptanalis. Kriptologi adalah studi mengenai
kriptografi dan kriptanalisis.
Sejarah Kriptografi
Sejarah kriptografi sebagian besar merupakan sejarah
kriptografi klasik yaitu metode enkripsi yang
menggunakan kertas dan pensil atau mungkin dengan
bantuan alat mekanik sederhana. Secara umum
algoritma kriptografi klasik dikelompokkan menjadi
dua
kategori,
yaitu
algoritma
transposisi
(transposition cipher) dan algoritma substitusi
(substitution cipher). Cipher transposisi mengubah
susunan huruf-huruf di dalam pesan, sedangkan
cipher substitusi mengganti setiap huruf atau

kelompok huruf dengan sebuah huruf atau kelompok


huruf lain.
Kriptografi modern dipicu oleh perkembangan
peralatan komputer digital. Tidak seperti kriptografi
klasik yang mengenkripsi karakter per karakter
(dengan menggunakan alfabet tradisionil), kriptografi
modern beroperasi pada string biner. Kriptografi
modern tidak hanya memberikan aspek keamanan
confidentially, tetapi juga aspek keamanan lain
seperti
otentikasi,
integritas
data
dan
nirpenyangkalan.

Kriptografi Kunci Simetri dan Asimetri


Berdasarkan kunci yang digunakan untuk enkripsi
dan dekripsi, kriptografi dapat dibedakan lagi
menjadi kriptografi kunci simetri dan kriptografi
kunci asimetri. Pada sistem kriptografi kunci simetri,
kunci untuk enkripsi sama dengan kunci untuk
dekripsi. Jika kunci untuk enkripsi tidak sama dengan
kunci untuk dekripsi, maka dinamakan sistem
kriptografi asimetri.
KRIPTOGRAFI

1. 1 Latar belakang
Berkat perkembangan teknologi yang begitu
pesat memungkinkan manusia dapat berkomunikasi
dan saling bertukar informasi/data secara jarak jauh.
Antar kota antar wilayah antar negara bahkan antar
benua bukan merupakan suatu kendala lagi dalam
melakukan komunikasi dan pertukaran data. Seiring
dengan itu tuntutan akan sekuritas (keamanan)
terhadap

kerahasiaan

informasi

yang

saling

dipertukarkan tersebut semakin meningkat. Begitu


banyak pengguna seperti departemen pertahanan,
suatu perusahaan atau bahkan individu-individu tidak
ingin informasi yang disampaikannya diketahui oleh
orang lain atau kompetitornya atau negara lain. Oleh
karena itu dikembangkanlah cabang ilmu yang
mempelajari tentang cara-cara pengamanan data atau
dikenal dengan istilah Kriptografi.

Dalam kriptografi terdapat dua konsep utama


yakni enkripsi dan dekripsi. Enkripsi adalah proses
dimana informasi/data yang hendak dikirim diubah
menjadi bentuk yang hampir tidak dikenali sebagai
informasi awalnya dengan menggunakan algoritma
tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu
mengubah kembali bentuk tersamar tersebut menjadi
informasi awal.
Algoritma kriptografi berdasarkan jenis kunci
yang digunakan dapat dibedakan menjadi dua jenis
yaitu :
Algoritma simetris
Dimana kunci yang digunakan untuk proses
enkripsi dan dekripsi adalah kunci yang sama
Algoritma asimetris

Dimana kunci yang digunakan untuk proses


enkripsi dan dekripsi menggunakan kunci yang
berbeda.
Sedangkan berdasarkan besar data yang diolah
dalam satu kali proses, maka algoritma kriptografi
dapat dibedakan menjadi dua jenis yaitu :
Algoritma block cipher
Informasi/data yang hendak dikirim dalam bentuk
blok-blok besar (misal 64-bit) dimana blok-blok ini
dioperasikan dengan fungsi enkripsi yang sama dan
akan menghasilkan informasi rahasia dalam blokblok yang berukuran sama.

Algoritma stream cipher


Informasi/data yang hendak dikirim dioperasikan
dalam bentuk blok-blok yang lebih kecil (byte atau
bit), biasanya satu karakter persatuan persatuan

waktu proses, menggunakan tranformasi enkripsi


yang berubah setiap waktu.
Camellia

merupakan

algoritma

kriptografi

simetris blok cipher. Dalam Camellia proses enkripsi


dan dekripsi dilakukan pada blok data berukuran 128bit dengan kunci yang dapat berukuran 128-bit, 192bit, 256-bit. Algoritma Camellia dikembangkan oleh :
Kazumaro Aoki (NTT - Nippon Telegraph and
Telephone Corp.)
Tetsuya Ichikawa (Mitsubishi electric Corp.)
Masayuki Kanda (NTT Nippon Telegraph and
Telephone Corp.)
Mitsuru Matsui (Mitsubishi electric Corp.)
Shiho Moriai (NTT Nippon Telegraph and
Telephone Corp.)
Junko Nakajima (Mitsubishi electric Corp.)
Toshio Tokita (Mitsubishi electric Corp.)

Dimana versi 1.0 pada bulan Juli 2000, versi 2.0 pada
September 2001 dan versi 2.1 pada Febuari 2002.
II

Kriptografi

2. 1 Dasar Kriptografi
2. 1. 1 Teori Kriptografi
Kriptografi adalah suatu ilmu yang mempelajari
bagaimana cara menjaga agar data atau pesan tetap
aman saat dikirimkan, dari pengirim ke penerima
tanpa mengalami gangguan dari pihak ketiga. Menurut
Bruce

Scheiner

dalam

bukunya

"Applied

Cryptography", kriptografi adalah ilmu pengetahuan


dan seni menjaga message-message agar tetap aman
(secure).
Konsep kriptografi sendiri telah lama digunakan oleh
manusia misalnya pada peradaban Mesir dan Romawi
walau masih sangat sederhana. Prinsip-prinsip yang
mendasari kriptografi yakni:

Confidelity (kerahasiaan) yaitu layanan agar isi


pesan yang dikirimkan tetap rahasia dan tidak
diketahui oleh pihak lain (kecuali pihak pengirim,
pihak penerima / pihak-pihak memiliki ijin).
Umumnya hal ini dilakukan dengan cara membuat
suatu algoritma matematis yang mampu mengubah
data hingga menjadi sulit untuk dibaca dan dipahami.
Data integrity (keutuhan data) yaitu layanan yang
mampu mengenali/mendeteksi adanya manipulasi
(penghapusan, pengubahan atau penambahan) data
yang tidak sah (oleh pihak lain).
Authentication (keotentikan) yaitu layanan yang
berhubungan

dengan identifikasi. Baik otentikasi

pihak-pihak yang terlibat dalam pengiriman data


maupun otentikasi keaslian data/informasi.
Non-repudiation (anti-penyangkalan) yaitu layanan
yang dapat mencegah suatu pihak untuk menyangkal

aksi yang dilakukan sebelumnya (menyangkal bahwa


pesan tersebut berasal dirinya).
Berbeda

dengan

kriptografi

klasik

yang

menitikberatkan kekuatan pada kerahasiaan algoritma


yang digunakan (yang artinya apabila algoritma yang
digunakan telah diketahui maka pesan sudah jelas
"bocor" dan dapat diketahui isinya oleh siapa saja yang
mengetahui algoritma tersebut), kriptografi modern
lebih menitikberatkan pada kerahasiaan kunci yang
digunakan pada algoritma tersebut (oleh pemakainya)
sehingga algoritma tersebut dapat saja disebarkan ke
kalangan

masyarakat

tanpa

takut

kehilangan

kerahasiaan bagi para pemakainya.


Berikut adalah istilah-istilah yang digunakan dalam
bidang kriptografi :
Plaintext

(M)

adalah pesan yang hendak

dikirimkan (berisi data asli).

Ciphertext (C) adalah pesan ter-enkrip (tersandi)


yang merupakan hasil enkripsi.
Enkripsi (fungsi E) adalah proses pengubahan
plaintext menjadi ciphertext.
Dekripsi (fungsi D) adalah kebalikan dari enkripsi
yakni mengubah ciphertext menjadi plaintext,
sehingga berupa data awal/asli.
Kunci adalah suatu bilangan yang dirahasiakan
yang digunakan dalam proses enkripsi dan
dekripsi.
Kriptografi itu sendiri terdiri dari dua proses utama
yakni proses enkripsi dan proses dekripsi. Seperti yang
telah dijelaskan di atas, proses enkripsi mengubah
plaintext menjadi ciphertext (dengan menggunakan
kunci tertentu) sehingga isi informasi pada pesan
tersebut sukar dimengerti.

plaintext
enkripsi

dekripsi

ciphertext

plaintext

kunci enkripsi

kunci

dekripsi
Gambar 2.1 Diagram proses enkripsi dan dekripsi
Peranan kunci sangatlah penting dalam proses
enkripsi dan dekripsi (disamping pula algoritma yang
digunakan)

sehingga

kerahasiaannya

sangatlah

penting, apabila kerahasiaannya terbongkar, maka isi


dari pesan dapat diketahui.
Secara

matematis,

proses

enkripsi

merupakan

pengoperasian fungsi E (enkripsi) menggunakan e


(kunci

enkripsi)

pada

(plaintext)

dihasilkan C (ciphertext), notasinya :

sehingga

Ee(M) C
Sedangkan

untuk

proses

dekripsi,

merupakan

pengoperasian fungsi D (dekripsi) menggunakan d


(kunci dekripsi) pada C (ciphertext) sehingga
dihasilkan M (plaintext), notasinya :
Dd(C) = M
Sehingga dari dua hubungan diatas
berlaku :
Dd(Ee(M)) = M
2. 1. 2 Algoritma Simetris dan Asimetris
2. 1. 2. 1 Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah
suatu

algoritma

dimana

kunci

enkripsi

yang

digunakan sama dengan kunci dekripsi sehingga


algoritma
algorithm.

ini

disebut

juga

sebagai

single-key

Plaintext
enkripsi

dekripsi

ciphertext

plaintext

kunci enkripsi (K)

kunci dekripsi

(K)
Gambar 2.2 Diagram proses enkripsi dan dekripsi
algoritma simetris
Sebelum melakukan pengiriman pesan, pengirim
dan penerima harus memilih suatu suatu kunci
tertentu yang sama untuk dipakai bersama, dan kunci
ini

haruslah

rahasia

bagi

pihak

yang

tidak

berkepentingan sehingga algoritma ini disebut juga


algoritma kunci rahasia (secret-key algorithm).
Kelebihan :

Kecepatan operasi lebih tinggi bila dibandingkan


dengan algoritma asimetrik.

Karena kecepatannya yang cukup tinggi, maka


dapat digunakan pada sistem real-time
Kelemahan :
Untuk tiap pengiriman pesan dengan pengguna
yang berbeda dibutuhkan kunci yang berbeda juga,
sehingga akan terjadi kesulitan dalam manajemen
kunci tersebut.
Permasalahan dalam pengiriman kunci itu sendiri
yang disebut key distribution problem
Contoh algoritma : TwoFish,
Rijndael, Camellia
2. 1. 2. 2 Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm)
adalah suatu algoritma dimana kunci enkripsi yang
digunakan tidak sama dengan kunci dekripsi. Pada
algoritma ini menggunakan dua kunci yakni kunci
publik (public key) dan kunci privat (private key).

Kunci publik disebarkan secara umum sedangkan


kunci privat disimpan secara rahasia oleh si
pengguna. Walau kunci publik telah diketahui namun
akan sangat sukar mengetahui kunci privat yang
digunakan.

Plaintext
enkripsi

dekripsi

ciphertext

plaintext

kunci enkripsi (K1)

kunci

dekripsi (K2)
Gambar 2.3 Diagram proses enkripsi dan
dekripsi algoritma asimetris
Pada umumnya kunci publik (public key)
digunakan sebagai kunci enkripsi sementara kunci
privat (private key) digunakan sebagai kunci dekripsi.

Kelebihan :
Masalah keamanan pada distribusi kunci dapat lebih
baik
Masalah manajemen kunci yang lebih baik karena
jumlah kunci yang lebih sedikit
Kelemahan :
Kecepatan yang lebih rendah bila dibandingkan
dengan algoritma simetris
Untuk tingkat keamanan sama, kunci yang
digunakan lebih panjang dibandingkan dengan
algoritma simetris.
Contoh algoritma : RSA, DSA, ElGamal
2. 1. 3 Block Cipher dan Stream Cipher
Jika kita melihat berdasarkan ukuran serta
format data yang akan diproses, maka algoritma
kriptografi dapat dibagi menjadi dua bagian yang
utama yaitu:

Block Cipher, algoritma kriptografi ini bekerja


pada suatu data yang berbentuk blok/kelompok
data dengan panjang data tertentu (dalam beberapa
byte), jadi dalam sekali proses enkripsi atau
dekripsi data yang masuk mempunyai ukuran yang
sama.
Stream cipher, algoritma yang dalam operasinya
bekerja dalam suatu pesan berupa bit tunggal atau
terkadang dalam suatu byte, jadi format data berupa
aliran dari bit untuk kemudian mengalami proses
enkripsi dan dekripsi.
Pada algoritma penyandian blok (block cipher),
plainteks yang masuk akan diproses dengan panjang
blok yang tetap yaitu n, namun terkadang jika
ukuran data ini terlalu panjang maka dilakukan
pemecahan dalam bentuk blok yang lebih kecil. Jika
dalam pemecahan dihasilkan blok data yang kurang

dari jumlah data dalam blok maka akan dilakukan


proses pading (penambahan beberapa bit).
2. 2 Mode Operasi dalam Block Cipher
\2. 2. 1 Electronic Codebook (ECB)
Pada mode operasi ECB sebuah blok input
plaintext dipetakan secara statis ke sebuah blok output
ciphertext. Sehingga tiap plaintext yang sama akan
menghasilkan ciphertext yang selalu sama pula. Sifatsifat dari mode operasi ECB :
Sederhana dan efisien
Memungkinkan implementasi parallel
Tidak menyembunyikan pola plaintext
Dimungkinkan terjadi adanya active attack.

Skema dari mode operasi ECB dapat


digambarkan sebagai berikut :

Sender

Receiver

P1

C1

C1

P1

P1

C1

C1

P1

P1

C1

C1

P1

Gambar 2.4 Skema Mode Operasi ECB

Cipher Block Chaining (CBC)


Pada mode oparasi ini hasil enkripsi dari blok
sebelumnya mempengaruhi hasil enkripsi selanjutnya,

atau enkripsi sebeluimnya menjadi feedback pada


enkripsi blok saat itu., jadi tiap blok ciphertext
bergantung bukan hanya pada blok plaintext-nya tapi
bergantung pula pada blok-blok plaintext sebelumnya.
Sehingga untuk plaintext yang sama, belum tentu
menghasilkan ciphertext yang sama pula.
Skema dari mode operasi CBC dapat digambarkan
sebagai berikut :

Sender
Receiver

IV

IV

P1

C1

C1

P1

C1

C1

P1

P1

C1

P1

P1

Gambar 2.5 Skema Mode Operasi


CBC.
Mula-mula sebelum si pengirim hendak
mengirimkan pesannya kepada si penerima, dia terlebih
dahulu harus meng-XOR plaintext dengan IV
(initialization vector) baru kemudian dienkripsi,
setelah itu baru dikirimkan ciphertext pertamanya
kepada si penerima. Plaintext ke-2 pun demikian, harus
di-XOR terlebih dahulu dengan ciphertext sebelumnya
sebelum mengalami proses enkripsi baru kemudian
dikirimkan ke si penerima sebagai ciphertext 2 dan
seterusnya.
Sifat-sifat dari mode operasi CBC :
Lebih aman dari active attacks dibandingkan mode
operasi ECB
Error pada satu ciphertext dapat berakibat parah
Menutupi pola plaintext
Implementasi parallel belum diketahui

Dalam kriptografi, Public Key Infrastructure (PKI)


adalah sebuah cara untuk otentikasi, pengamanan
data dan perangkat anti sangkal. Secara teknis, PKI
adalah implementasi dari berbagai teknik kriptografi
yang bertujuan untuk mengamankan data,
memastikan keaslian data maupun pengirimnya dan
mencegah penyangkalan.
Teknik-teknik kriptografi yang digunakan antara lain:
- fungsi hash, - algoritma enkripsi simetrik, dan algoritma enkripsi asimetrik. Fungsi hash akan
digunakan bersama dengan algoritma enkripsi
asimetrik dalam bentuk tanda tangan digital untuk
memastikan integritas dan keaslian berita/data berikut
pengirimnya. Algoritma enkripsi simetrik digunakan
untuk mengamankan data dengan cara enkripsi.
Dalam PKI penggunaan algoritma enkripsi simetrik
tidak langsung didefinisikan tetapi telah
diimplementasikan oleh berbagai perangat lunak.
Secara garis besar PKI diwujudkan dalam bentuk
kolaborasi antar komponen-komponennya.
Komponen-komponen PKI antara lain: - Subscriber, Certification Authority (CA), - Registration Authority
(RA), - Sertifikat Digital. Secara praktis wujud PKI
adalah penggunaan sertifikat digital. Sertifikat digital
adalah sebuah file komputer yang berisi data-data
tentang sebuah public key, pemiliknya (subscriber

atau CA), CA yang menerbitkannya dan masa


berlakunya.
PKI telah diimplementasikan dengan berbagai
aplikasi seperti S/MIME, HTTPS, VPN, dll. Anda
dapat melihat fitur S/MIME pada software email
yang terkenal seperti Outlook Express, Mozilla
Mail/Thunderbird, dan Evolution.
IPSec (singkatan dari IP Security) adalah sebuah
protokol yang digunakan untuk mengamankan
transmisi datagram dalam sebuah internetwork
berbasis TCP/IP. IPSec mendefiniskan beberapa
standar untuk melakukan enkripsi data dan juga
integritas data pada lapisan kedua dalam DARPA
Reference Model (internetwork layer). IPSec
melakukan enkripsi terhadap data pada lapisan yang
sama dengan protokol IP dan menggunakan teknik
tunneling untuk mengirimkan informasi melalui
jaringan Internet atau dalam jaringan Intranet secara
aman. IPSec didefinisikan oleh badan Internet
Engineering Task Force (IETF) dan
diimplementasikan di dalam banyak sistem operasi.
Windows 2000 adalah sistem operasi pertama dari
Microsoft yang mendukung IPSec.
IPSec diimplementasikan pada lapisan transport
dalam OSI Reference Model untuk melindungi
protokol IP dan protokol-protokol yang lebih tinggi

dengan menggunakan beberapa kebijakan keamanan


yang dapat dikonfigurasikan untuk memenuhi
kebutuhan keamanan pengguna, atau jaringan. IPSec
umumnya diletakkan sebagai sebuah lapsian
tambahan di dalam stack protokol TCP/IP dan diatur
oleh setiap kebijakan keamanan yang diinstalasikan
dalam setiap mesin komputer dan dengan sebuah
skema enkripsi yang dapat dinegosiasikan antara
pengirim dan penerima. Kebijakan-kebijakan
keamanan tersebut berisi kumpulan filter yang
diasosiasikan dengan kelakuan tertentu. Ketika
sebuah alamat IP, nomor port TCP dan UDP atau
protokol dari sebuah paket datagram IP cocok dengan
filter tertentu, maka kelakukan yang dikaitkan
dengannya akan diaplikasikan terhadap paket IP
tersebut.
Dalam sistem operasi Windows 2000, Windows XP,
dan Windows Server 2003, kebijakan keamanan
tersebut dibuat dan ditetapkan pada level domain
Active Directory atau pada host individual dengan
menggunakan snap-in IPSec Management dalam
Microsoft Management Console (MMC). Kebijakan
IPSec tersebut, berisi beberapa peraturan yang
menentukan kebutuhan keamanan untuk beberapa
bentuk komunikasi. Peraturan-peraturan tersebut
digunakan ntuk memulai dan mengontrol komunikasi
yang aman berdasarkan sifat lalu lintas IP, sumber

lalu lintas tersebut dan tujuannya. Peraturanperaturan tersebut dapat menentukan metode-metode
autentikasi dan negosiasi, atribut proses tunneling,
dan jenis koneksi.
Untuk membuat sebuah sesi komunikasi yang aman
antara dua komputer dengan menggunakan IPSec,
maka dibutuhkan sebuah framework protokol yang
disebut dengan ISAKMP/Oakley. Framework
tersebut mencakup beberapa algoritma kriptografi
yang telah ditentukan sebelumnya, dan juga dapat
diperluas dengan menambahkan beberapa sistem
kriptografi tambahan yang dibuat oleh pihak ketiga.
Selama proses negosiasi dilakukan, persetujuan akan
tercapai dengan metode autentikasi dan kemanan
yang akan digunakan, dan protokol pun akan
membuat sebuah kunci yang dapat digunakan
bersama (shared key) yang nantinya digunakan
sebagi kunci enkripsi data. IPSec mendukung dua
buah sesi komunikasi keamanan, yakni sebagai
berikut:

protokol Authentication Header (AH):


menawarkan autentikasi pengguna dan
perlindungan dari beberapa serangan (umumnya
serangan man in the middle), dan juga
menyediakan fungsi autentikasi terhadap data
serta integritas terhadap data. Protokol ini

mengizinkan penerima untuk merasa yakin


bahwa identitas si pengirim adalah benar adanya,
dan data pun tidak dimodifikasi selama
transmisi. Namun demikian, protokol AH tidak
menawarkan fungsi enkripsi terhadap data yang
ditransmisikannya. Informasi AH dimasukkan ke
dalam header paket IP yang dikirimkan dan
dapat digunakan secara sendirian atau bersamaan
dengan protokol Encapsulating Security
Payload.
protokol Encapsulating Security Payload
(ESP): Protokol ini melakukan enkapsulasi serta
enkripsi terhadap data pengguna untuk
meningkatkan kerahasiaan data. ESP juga dapat
memiliki skema autentikasi dan perlindungan
dari beberapa serangan dan dapat digunakan
secara sendirian atau bersamaan dengan
Authentication Header. Sama seperti halnya AH,
informasi mengenai ESP juga dimasukkan ke
dalam header paket IP yang dikirimkan.

Beberapa perangkat keras serta perangkat lunak dapat


dikonfigurasikan untuk mendukung IPSec, yang
dapat dilakukan dengan menggunakan enkripsi kunci
publik yang disediakan oleh Certificate Authority
(dalam sebuah public key infrastructure) atau kunci
yang digunakan bersama yang telah ditentukan

sebelumnya (skema Pre-Shared Key/PSK) untuk


melakukan enkripsi secara privat.
1. Sejarah dan perkembangan
Kerberos pertama kali dikembangkan pada dekade
1980-an sebagai sebuah metode untuk melakukan
autentikasi terhadap pengguna dalam sebuah jaringan
yang besar dan terdistribusi. Kerberos menggunakan
enkripsi kunci rahasia/kunci simetris dengan
algoritma kunci yang kuat sehingga klien dapat
membuktikan identitas mereka kepada server dan
juga menjamin privasi dan integritas komunikasi
mereka dengan server. Protokol ini dinamai
Kerberos, karena memang Kerberos (atau Cerberus)
merupakan seekor anjing berkepala tiga (protokol
Kerberos memiliki tiga subprotokol) dalam mitologi
Yunani yang menjadi penjaga Tartarus, gerbang
menuju Hades (atau Pluto dalam mitologi Romawi).
2. Operasi
Protokol Kerberos memiliki tiga subprotokol agar
dapat melakukan aksinya:

Authentication Service (AS) Exchange: yang


digunakan oleh Key Distribution Center (KDC)
untuk menyediakan Ticket-Granting Ticket
(TGT) kepada klien dan membuat kunci sesi
logon.

Ticket-Granting Service (TGS) Exchange: yang


digunakan oleh KDC untuk mendistribusikan
kunci sesi layanan dan tiket yang diasosiasikan
dengannya.
Client/Server (CS) Exchange: yang digunakan
oleh klien untuk mengirimkan sebuah tiket
sebagai pendaftaran kepada sebuah layanan.

Sesi autentikasi Kerberos yang dilakukan antara klien


dan server adalah sebagai berikut:

Cara kerja protokol Kerberos


1. Informasi pribadi pengguna dimasukkan ke
dalam komputer klien Kerberos, yang kemudian
akan mengirimkan sebuah request terhadap KDC
untuk mengakses TGS dengan menggunakan
protokol AS Exchange. Dalam request tersebut
terdapat bukti identitas pengguna dalam bentuk
terenkripsi.
2. KDC kemudian menerima request dari klien
Kerberos, lalu mencari kunci utama (disebut
sebagai Master Key) yang dimiliki oleh
pengguna dalam layanan direktori Active
Directory (dalam Windows 2000/Windows

Server 2003) untuk selanjutnya melakukan


dekripsi terhadap informasi identitas yang
terdapat dalam request yang dikirimkan. Jika
identitas pengguna berhasil diverifikasi, KDC
akan meresponsnya dengan memberikan TGT
dan sebuah kunci sesi dengan menggunakan
protokol AS Exchange.
3. Klien selanjutnya mengirimkan request TGS
kepada KDC yang mengandung TGT yang
sebelumnya diterima dari KDC dan meminta
akses tehradap beberapa layanan dalam server
dengan menggunakan protokol TGS Exchange.
4. KDC selanjutnya menerima request, malakukan
autentikasi terhadap pengguna, dan
meresponsnya dengan memberikan sebuah tiket
dan kunci sesi kepada pengguna untuk
mengakses server target dengan menggunakan
protokol TGS Exchange.
5. Klien selanjutnya mengirimkan request terhadap
server target yang mengandung tiket yang
didapatkan sebelumnya dengan menggunakan
protokol CS Exchange. Server target kemudian
melakukan autentikasi terhadap tiket yang
bersangkutan, membalasnya dengan sebuah
kunci sesi, dan klien pun akhirnya dapat
mengakses layanan yang tersedia dalam server.

Meski terlihat rumit, pekerjaan ini dilakukan di balik


layar, sehingga tidak terlihat oleh pengguna.
Kriptoanalisis (dari bahasa Yunani krypts,
"tersembunyi", dan analein, "melepaskan") adalah
disiplin ilmu mengenai metode membaca pesan
terenkripsi (tersandi), tanpa mengetahui informasi
rahasia atau kunci yang seharusnya digunakan untuk
membaca pesan tersebut. Dalam bahasa sehari-hari,
kriptoanalisis bisa dikatakan ilmu memecahkan
sandi. Disiplin ilmu yang digunakan pada kriptografi
antara lain matematika, linguistik, logika, dan ilmu
komputer.
Kriptoanalisis pertama kali dicetuskan oleh ilmuwan
Arab zaman kekhalifahan Abbasiyah al-Kindi. Dalam
bukunya Sebuah Naskah dalam Memecahkan PesanPesan Kriptografis, ia menjelaskan secara detail
metode analisis frekuensi, yang merupakan dasar
bagi metode-metode kriptoanalisis. Kriptoanalisis
terus berkembang sesuai perkembangan teknologi.
Salah satu contoh terkenal adalah kriptoanalisis
mesin Enigma pada Perang Dunia II. Pada
pertengahan 1970-an muncul kelompok baru
kriptografi yang disebut kriptografi asimetrik.
Penemuan ini menyebabkan terjadinya perubahan
radikal pada metode-metode kriptoanalisis, yang
melibatkan matematika murni.

Serangan brute-force adalah sebuah teknik serangan


terhadap sebuah sistem keamanan komputer yang
menggunakan percobaan terhadap semua kunci yang
mungkin. Pendekatan ini pada awalnya merujuk pada
sebuah program komputer yang mengandalkan
kekuatan pemrosesan komputer dibandingkan
kecerdasan manusia. Sebagai contoh, untuk
menyelesaikan sebuah persamaan kuadrat seperti
x+7x-44=0, di mana x adalah sebuah integer, dengan
menggunakan teknik serangan brute-force,
penggunanya hanya dituntut untuk membuat program
yang mencoba semua nilai integer yang mungkin
untuk persamaan tersebut hingga nilai x sebagai
jawabannya muncul. Istilah brute force sendiri
dipopulerkan oleh Kenneth Thompson, dengan
mottonya: "When in doubt, use brute-force" (jika
ragu, gunakan brute-force).
Teknik yang paling banyak digunakan untuk
memecahkan password, kunci, kode atau kombinasi.
Cara kerja metode ini sangat sederhana yaitu
mencoba semua kombinasi yang mungkin.
Sebuah password dapat dibongkar dengan
menggunakan program yang disebut sebagai
password cracker. Program password cracker adalah
program yang mencoba membuka sebuah password
yang telah terenkripsi dengan menggunakan sebuah

algoritma tertentu dengan cara mencoba semua


kemungkinan. Teknik ini sangatlah sederhana, tapi
efektivitasnya luar biasa, dan tidak ada satu pun
sistem yang aman dari serangan ini, meski teknik ini
memakan waktu yang sangat lama, khususnya untuk
password yang rumit.
Namun ini tidak berarti bahwa password cracker
membutuhkan decrypt. Pada prakteknya, mereka
kebayakan tidak melakukan itu. Umumnya, kita tidak
dapat melakukan decrypt password-password yang
sudah terenkripsi dengan algoritma yang kuat.
Proses-proses enkripsi modern kebanyakan hanya
memberikan satu jalan, di mana tidak ada proses
pengembalian enkripsi. Namun, anda menggunakan
tool-tool simulasi yang mempekerjakan algoritma
yang sama yang digunakan untuk mengenkripsi
password orisinal. Tool-tool tersebut membentuk
analisa komparatif. Program password cracker tidak
lain adalah mesin-mesin ulet. Ia akan mencoba kata
demi kata dalam kecepatan tinggi. Mereka menganut
"Azaz Keberuntungan", dengan harapan bahwa pada
kesempatan tertentu mereka akan menemukan kata
atau kalimat yang cocok. Teori ini mungkin tepat
mengena pada anda yang terbiasa membuat password
asal-asalan. Dan memang pada kenyataannya,
password-password yang baik sulit untuk ditembus
oleh program password cracker.

Key generation merupakan kegiatam manajemen


kunci dalam menghasilkan kunci yang acak dimana
keacakan kunci merupakan bagian terpenting dalam
menjamin kekuatan suatu kiptografi syarat sayrat
kunci dikatakan acak adalah :

Telah lulus uji statistik


untuk menguji keacakan pada suatu rangkaian
kunci yang dihasilkan, kita dapat mengujinya
dengan menggunakan uji statistik, diantaranya :
five basic test, tes ini terdiri dari :
frequency test untuk menentukan apakah jumlaj
bit '0' dan '1' dalam barisan bit mempunyai
jumlah bit yang relatif sama, seperti yang
diharapkan untuk barisan acak.
serial test. untuk mementukan apakah
jumlah dari pasangan bit 00,01,10 dan 11
dalam barisan bit mempunyai jumlah yang
relatif sama, seperti yang diharapkan untuk
barisan acak.
poker test. untuk menentukan apakah
jumlah dari barisan bit dengan lebar
tertentu muncul dalam barisan bit seperti
yang diharapkan untuk barisan acak.
runs test. untuk menetukan apakah jumlah
runtun dalam barisan bit, baik runtun bit '0'
ataupun bit '1'dalamb arisan bit mempunyai

jumlah yang relatif sama, seperti yang


diharapkan untuk barisan acak.
autocorrelation test. untuk menentukan
apakah perbedaan jumlah bit '0' dan '1'
dalam barian bit (cycle) mempunyai jumlah
yang relatif sama, seperti yang diharapkan
untuk barisan acak.

1. b. FIPS 140.1
2. c. FIPS 140.2
3. d. NIST SP 800.22.v.1.8
4. e. die hard test
5. f. maurer's universal statistic test.
tidak dapat diramalkan
maksudnya,selain telah lulus uji statistik juga
unpredictable (tidak dapat diramalkan).secara
perhitungan akan sulit untuk menentukan atau
menduga bit bit selanjutnya yang akan muncul
dari rangkaian tersebut. selain itu rangkaian itu
haruslah tidak memberikan pengetahuan yang
lengkap tentang algoritma atu infrastruktur
hardware yang digunakan dalam pembangkitan
rangkaian seluruh bit bit sebelumnya dalam
rangkaian itu seniri
apabila menggunakan alat yang menghasilkan suatu
kunci, ia tidak pernah menghasilkan kunci yang
hampir sama atu sama persis dengan kunci yang

dihasilkan sebelumnya. hal ini berarti jika


pembangkit tersebut digunakan dua kali dengan
input yang sama maka akan didapatkan dua
rangkaian acak yang sama sekali berbeda dan tidak
saling berhubungan.
namun untuk menghasilkan kunci yang acak
tidaklah mudah. . ada dua macam untuk
menghasilkan rangkaian kunci, yaitu : secara
manual Metode ini masih sederhana.Biasanya
digunakan koin dalam membangkitkan kuncinya.
Ataupun dapat menggunakan Boudout Code jika
yang dibangkitkan adalah karakter. Misal : Rumah
= 0 , Burung = 1
Untuk menghasilkan 2 karakter maka pelemparan
koin harus dilakukan sebanyak 10 kali, hasilnya
dapat dilihat pada tabel boudout.
Kelebihan metode manual ini yaitu tidak
membutuhkan biaya besar dan tidak memerlukan
keahlian khusus. Sedangkan kekurangannya adalah
membutuhkan tenaga yang besar dan membutuhkan
waktu yang lama.
Artikel ini membutuhkan judul dalam bahasa
Indonesia yang sepadan dengan judul aslinya.
Artikel bertopik teknologi informasi ini perlu
dirapikan agar memenuhi standar Wikipedia

Merapikan artikel bisa berupa membagi artikel ke


dalam paragraf atau wikifikasi artikel. Setelah
dirapikan, tolong hapus pesan ini.
1. Secara elektronis
Pembuatan kunci secara elektronis merupakan
teknik pembuatan rangkaian kunci yang
menggunakan suatu alat pembangkit rangakain
kunci (key generator). cara ini memiliki banyak.
Metode ini sudah menggunakan alat elektronik
dalam pembangkitan kuncinya. Biasanya
menggunakan RK Generator seperti RNG (Random
Number Generator yang akan kami bahas pada
paper kali ini).cara ini memiliki banyak keuntungan
contonya tenaga yang dibutuhkan kecil dan watu
yang dibutuhkan sedikit. namun ia memiki
kelemahan yaitu biaya yang dibutuhkan besar dan
harus memiliki SDM yang mempunyai keahlian
khusus.
1. Random Bit Generator
Random Bit Generator (pembangkit kunci acak)
adalah sebuah alat ataupun algoritma yang mampu
menghasilkan suatu rangkaian bit acak atau kunci.
Idealnya, suatu algoritma sandi menggunakan kunci
yang dihasilkan oleh Random Bit Generator ini.
Hal ini dikarenakan bit-bit yang dihasilkan oleh

Random Bit Generator benar-benar acak, sehingga


sangat sulit untuk dianalisa. Ada beberapa metode
yang dapat kita lakukan untuk membangkitkan
rangkaian kunci dengan Random Bit Generator ini,
yaitu :
1. 1.Pembangkit kunci berbasis hardware
yaitu pembangkitan kunci yang dilakukan dengan
memanfaatkan keacakan yang ditimbulkan oleh
kejadian yang bersifat fisik, beberapa contoh
kejadian fisik tersebut dapat adalah sebagai berikut:
1. Suara dari mikropon atau input dari kamera.
2. Ketidakstabilan dari ascilator yang bekerja.
3. Thermal noise yang dihasilkan oleh semikonduktor dioda ataupun resistor.
4. Turbulensi udara pada diskdrive yang tertutup
rapat menyebabkan fluktuasi yang acak pada
diskdrive sector read latency time.
5. 2. Pembangkit kunci berbasis software.
Pada umumnya pembangkitan kunci dengan cara
ini lebih sulit dibuat dibandingkan pembangkitan
kunci berbasis hardware. Pembangkitan kunci
berbasis software ini dalam prosesnya biasanya
memanfaatkan :
1. Jam yang terdapat pada sistem
2. Lama waktu penekanan tombol

3. Mouse movement
4. Input yang diberikan user.
Data yang digunakan pada pembangkit software
sangat bervariasi dan bergantung pada banyak
faktor, seperti platform komputer. Namun sulit
untuk mencegah pihak-pihak yang tidak
berkepentingan untuk meneliti dan memanipulasi
data yang dihasilkan. Suatu software pembangkit
bit acak seharusnya menggunakan beberapa sumber
yang sifatnya acak yang dihasilkan pada sistem
komputer.
Pseudo random bit generator.
Pseudo random bit generator (PRNG) adalah
pembangkit rangkainbilangan pseurandom, diman
proses pembangkitan tiap elemen tergantung dari
formulasi matematis yang digunakan, dan ia
membutuhkan seed.
Seed yaitu input yang digunakan pada pseudo
random bit generator sedangkan outputnya
disebutpseudo random bit sequences (rangkaian bit
semi acak). seed berfungsi sebagai inputan pseudo
random bit generator, karena seed meupakan
inputan pembangkit kunci semi acak, maka
panjangnya disesuiaikan dengan algoritma
pseudorandom generator yang digunakan. Untuk

pseudorandom bit, seed inilah yang berperan


penting, pada pseudorandom yang baik tidak
ditentukan oleh seed melainkan oleh formulasi
matematis yang digunakan pada algoritma tersebut.
Bilangan pseudorandom dapat dibangkitkan dari bit
pseudorandom oleh karena itu sekarang
berkembang Pseudorandom Bit Generator.
Pseudorandom Bit Generator ini adalah suatu
algoritma yang mempunya sifat deterministik,
dimana apabila diberikan berisan biner dengan
panjang x, maka akan mengahsilkan barisan biner
dengan panjang x yang kelihatan acak,
deterministik berarti apabila generator diberikan
initial seed yang sama maka akan menghasilkan
barisan output yang sama atau berulang. aswin-Wiki: MD5

Dalam kriptografi, MD5 (Message-Digest


algortihm 5) ialah fungsi hash kriptografik
yang digunakan secara luas dengan hash value
128-bit. Pada standart Internet (RFC 1321),
MD5 telah dimanfaatkan secara bermacammacam pada aplikasi keamanan, dan MD5 juga

umum digunakan untuk melakukan pengujian


integritas sebuah file.
MD5 di desain oleh Ronald Rivest pada tahun
1991 untuk menggantikan hash function
sebelumnya, MD4. Pada tahun 1996, sebuah
kecacatan ditemukan dalam desainnya, walau
bukan kelemahan fatal, pengguna kriptografi
mulai menganjurkan menggunakan algoritma
lain, seperti SHA-1 (klaim terbaru menyatakan
bahwa SHA-1 juga cacat). Pada tahun 2004,
kecacatan-kecacatan yang lebih serius
ditemukan menyebabkan penggunaan
algoritma tersebut dalam tujuan untuk
keamanan jadi makin dipertanyakan.
Daftar isi:
1. Sejarah dan kriptoanalisis
2. Efek nyata dari kriptoanalisis
3. Pengujian Integritas
4. Algortima
5. Pseudocode
6. Hash-hash MD5
7. Lihat pula
8. Pranala luar
1. Sejarah dan kriptoanalisis

MD5 adalah salah satu dari serangkaian


algortima message digest yang didesain oleh
Profesor Ronald Rivest dari MIT (Rivest,
1994). Saat kerja analitik menunjukkan bahwa
pendahulu MD5 MD4 mulai tidak aman,
MD5 kemudian didesain pada tahun 1991
sebagai pengganti dari MD4 (kelemahan MD4
ditemukan oleh Hans Dobbertin).
Pada tahun 1993, den Boer dan Bosselaers
memberikan awal, bahkan terbatas, hasil dari
penemuan pseudo-collision dari fungsi
kompresi MD5. Dua vektor inisialisasi berbeda
dan dengan beda 4-bit diantara keduanya.

Pada tahun 1996 Dobbertin mengumumkan


sebuah kerusakan pada fungsi kompresi MD5.
Dikarenakan hal ini bukanlah serangan
terhadap fungsi hash MD5 sepenuhnya, hal ini
menyebabkan para pengguna kriptografi
menganjurkan pengganti seperti
WHIRLPOOL, SHA-1 atau RIPEMD-160.
Ukuran dari hash 128-bit cukup kecil
untuk terjadinya serangan brute force birthday
attack. MD5CRK adalah proyek distribusi
mulai Maret 2004 dengan tujuan untuk

menunjukka kelemahan dari MD5 dengan


menemukan kerusakan kompresi
menggunakan brute force attack.
Bagaimanapun juga, MD5CRK berhenti pada
tanggal 17 Agustus 2004, saat [[kerusakan
hash]] pada MD5 diumumkan oleh Xiaoyun
Wang, Dengguo Feng, Xuejia Lai dan Hongbo
Yu [1][2]. Serangan analitik mereka
dikabarkan hanya memerlukan satu jam
dengan menggunakan IBM P690 cluster.
Pada tanggal 1 Maret 2005, Arjen Lenstra,
Xiaoyun Wang, and Benne de Weger
mendemontrasikan[3] kunstruksi dari dua
buah sertifikat X.509 dengan public key yang
berbeda dan hash MD5 yang sama, hasil dari
demontrasi menunjukkan adanya kerusakan.
Konstruksi tersebut melibatkan private key
untuk kedua public key tersebut. Dan beberapa
hari setelahnya, Vlastimil Klima
menjabarkan[4] dan mengembangkan
algortima, mampu membuat kerusakan Md5
dalam beberapa jam dengan menggunakan
sebuah komputer notebook. Hal ini
menyebabkan MD5 tidak bebas dari
kerusakan.

Dikarenakan MD5 hanya menggunakan satu


langkah pada data, jika dua buah awalan
dengan hash yang sama dapat dibangun,
sebuah akhiran yang umum dapat
ditambahkan pada keduanya untuk membuat
kerusakan lebih masuk akal. Dan dikarenakan
teknik penemuan kerusakan mengijinkan
pendahuluan kondisi hash menjadi arbitari
tertentu, sebuah kerusakan dapat ditemukan
dengan awalan apapun. Proses tersebut
memerlukan pembangkitan dua buah file
perusak sebagai file templat, dengan
menggunakan blok 128-byte dari tatanan data
pada 64-byte batasan, file-file tersebut dapat
mengubah dengan bebas dengan
menggunakan algoritma penemuan kerusakan.
2. Efek nyata dari kriptoanalisis
Saat ini dapat diketahui, dengan beberapa jam
kerja, bagaimana proses pembangkitan
kerusakan MD5. Yaitu dengan
membangkitkan dua byte string dengan hash
yang sama. Dikarenakan terdapat bilangan
yang terbatas pada keluaran MD5 (2128), tetapi
terdapat bilangan yang tak terbatas sebagai
masukannya, hal ini harus dipahami sebelum
kerusakan dapat ditimbulkan, tapi hal ini telah

diyakini benar bahwa menemukannya adalah


hal yang sulit.
Sebagai hasilnya bahwa hash MD5 dari
informasi tertentu tidak dapat lagi
mengenalinya secara berbeda. Jika
ditunjukkan informasi dari sebuah public key,
hash MD5 tidak mengenalinya secata berbeda
jika terdapat public key selanjutnya yang
mempunyai hash MD5 yang sama.
Bagaimanapun juga, penyerangan tersebut
memerlukan kemampuan untuk memilih
kedua pesan kerusakan. Kedua pesan tersebut
tidak dengan mudah untuk memberikan
serangan preimage, menemukan pesan dengan
hash MD5 yang sudah ditentukan, ataupun
serangan preimage kedua, menemukan pesan
dengan hash MD5 yang sama sebagai pesan
yang diinginkan.
Hash MD5 lama, yang dibuat sebelum
serangan-serangan tersebut diungkap, masih
dinilai aman untuk saat ini. Khususnya pada
digital signature lama masih dianggap layak
pakai. Seorang user boleh saja tidak ingin
membangkitkan atau mempercayai signature
baru menggunakan MD5 jika masih ada

kemungkinan kecil pada teks (kerusakan


dilakukan dengan melibatkan pelompatan
beberapa bit pada bagian 128-byte pada
masukan hash) akan memberikan perubahan
yang berarti.
Penjaminan ini berdasar pada posisi saat ini
dari kriptoanalisis. Situasi bisa saja berubah
secara tiba-tiba, tetapi menemukan kerusakan
dengan beberapa data yang belum-ada adalah
permasalahan yang lebih susah lagi, dan akan
selalu butuh waktu untuk terjadinya sebuah
transisi.
3. Pengujian Integritas
Ringkasan MD5 digunakan secara luas dalam
dunia perangkat lunak untuk menyediakan
semacam jaminan bahwa file yang diambil
(download) belum terdapat perubahan.
Seorang user dapat membandingkan MD5
sum yang dipublikasikan dengan checksum
dari file yang diambil. Dengan asumsi bahwa
checksum yang dipublikasikan dapat dipercaya
akan keasliannya, seorang user dapat secara
yakin bahwa dile tersebut adalah file yang
sama dengan file yang dirilis oleh para
developer, jaminan perlindungan dari Trojan

Horse dan virus komputer yang ditambahkan


pada perangkat lunak. Bagaimanapun juga,
seringkali kasus yangterjadi bahwa checksum
yang dipublikasikan tidak dapat dipercaya
(sebagai contoh, checksum didapat dari
channel atau lokasi yang sama dengan tempat
mengambil file), dalam hal ini MD5 hanya
mampu melakukan error-checking. MD5 akan
mengenali file yang didownload tidak
sempurna, cacat atau tidak lengkap.
4. Algortima

Gambar 1. Satu operasi MD5 MD5 terdiri


atas 64 operasi, dikelompokkan dalam empat
putaran dari 16 operasi. F adalah fungsi
nonlinear; satu fungsi digunakan pada tiaptiap putaran. Mi menujukkan blok 32-bit dari
masukan pesan, dan Ki menunjukkan
konstanta 32-bit, berbeda untuk tiap-tiap

operasi.
menunjukkan perputaran bit kiri oleh s; s
bervariasi untuk tiap-tiap operasi.
menunjukan tambahan modulo 232. MD5
memproses variasi panjang pesan kedalam
keluaran 128-bit dengan panjang yang tetap.
Pesan masukan dipecah menjadi dua
gumpalan blok 512-bit; Pesan ditata sehingga
panjang pesan dapat dibagi 512. Penataan
bekerja sebagai berikut: bit tunggal pertama,
1, diletakkan pada akhir pedan. Proses ini
diikuti dengan serangkaian nol (0) yang
diperlukan agar panjang pesan lebih dari 64bit dan kurang dari kelipatan 512. Bit-bit sisa
diisi dengan 64-bit integer untuk menunjukkan
panjang pesan yang asli. Sebuah pesan selalu
ditata setidaknya dengan 1-bit tunggal, seperti
jika panjang pesan adalah kelipatan 512
dikurangi 64-bit untuk informasi panjang
(panjang mod(512) = 448), sebuah blok baru
dari 512-bit ditambahkan dengan 1-bit diikuti
dengan 447 bit-bit nol (0) diikuti dengan
panjang 64-bit.
s

Algortima MD5 yang utama beroperasi pada


kondisi 128-bit, dibagi menjadi empat word
32-bit, menunjukkan A, B, C dan D. Operasi

tersebut di inisialisasi dijaga untuk tetap


konstan. Algoritma utama kemudian
beroperasi pada masing-masing blok pesan
512-bit, masing-masing blok melakukan
pengubahan terhadap kondisi.Pemrosesan blok
pesan terdiri atas empat tahap, batasan
putaran; tiap putasan membuat 16 operasi
serupa berdasar pada fungsi non-linear F,
tambahan modular, dan rotasi ke kiri. Gambar
satu mengilustrasikan satu operasi dalam
putaran. Ada empat macam kemungkinan
fungsi F, berbeda dari yang digunakan pada
tiap-tiap putaran:

menunjukkan operasi logikan


XOR, AND, OR dan NOT.
5. Pseudocode
Pseudocode pada algoritma MD5 adalah
sebagai berikut.
// Catatan: Seluruh variable tidak pada
32-bit dan dan wrap modulo 2^32 saat

melakukan perhitungan // Mendefinisikan


r sebagai berikut var int [64] r, k
r[ 0..15] := {7, 12, 17, 22, 7, 12, 17, 22, 7,
12, 17, 22, 7, 12, 17, 22} r[16..31] := {5,
9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14,
20} r[32..47] := {4, 11, 16, 23, 4, 11, 16,
23, 4, 11, 16, 23, 4, 11, 16, 23} r[48..63] :=
{6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21,
6, 10, 15, 21} // Menggunakan bagian
fraksional biner dari integral sinus
sebagai konstanta: for i from 0 to 63
k[i] := floor(abs(sin(i + 1)) 2^32) //
Inisialisasi variabel: var int h0 :=
0x67452301 var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE var int h3 :=
0x10325476 // Pemrosesan awal: append
"1" bit to message append "0" bits until
message length in bits 448 (mod 512)
append bit length of message as 64-bit
little-endian integer to message //
Pengolahan pesan paada kondisi
gumpalan 512-bit: for each 512-bit chunk
of message break chunk into sixteen 32-bit
little-endian words w(i), 0 i 15 //
Inisialisasi nilai hash pada gumpalan ini:
var int a := h0 var int b := h1 var int c :=
h2 var int d := h3 // Kalang utama: for i
from 0 to 63 if 0 i 15 then f := (b and

c) or (( not b) and d) g := i else if 16 i


31 f := (d and b) or (( not d) and c) g :=
(5i + 1) mod 16 else if 32 i 47 f := b
xor c xor d g := (3i + 5) mod 16 else if
48 i 63 f := c xor (b or ( not d)) g :=
(7i) mod 16 temp := d d := c c := b b :=
((a + f + k(i) + w(g)) leftrotate r(i)) + b
a := temp // Tambahkan hash dari
gumpalan sebagai hasil: h0 := h0 + a
h1 := h1 + b h2 := h2 + c h3 := h3 + d var
int digest := h0 append h1 append h2
append h3 // (diwujudkan dalam littleendian)
Catatan: Meskipun rumusan dari yang
tertera pada RFC 1321, berikut ini sering
digunakan untuk meningkatkan efisiensi:
(0 i 15): f := d xor (b and (c xor d))
(16 i 31): f := c xor (d and (b xor c))
6. Hash-hash MD5
Hash-hash MD5 sepanjang 128-bit (16byte), yang dikenal juga sebagai ringkasan
pesan, secara tipikal ditampilkan dalam
bilangan heksadesimal 32-digit. Berikut
ini merupakan contoh pesan ASCII
sepanjang 43-byte sebagai masukan dan

hash MD5 terkait:


MD5("The quick brown fox
jumps over the lazy dog") =
9e107d9d372bb6826bd81d3542a4
19d6
Bahkan perubahan yang kecil pada pesan
akan (dengan probabilitas lebih)
menghasilkan hash yang benar-benar
berbeda, misalnya pada kata "dog", huruf
d diganti menjadi c:
MD5("The quick brown fox
jumps over the lazy cog") =
1055d3e698d289f2af8663725127
bd4b
Hash dari panjang-nol ialah:
MD5("") =
d41d8cd98f00b204e9800998ecf8
427e
7. Lihat pula
MD2
SFV
Cyclic redundancy check

8. Pranala luar
8. 1. Informasi MD5
(en)RFC 1321 Algoritma
Ringkasan-Pesan MD5
(en)Menggunakan MD5 untuk
memastikan integritas isi dari file
(en)Catatan Kriptoanalisis MD5
(en)Tanya-Jawab tentang
Kerusakan Hash
(en)Online MD5 crack - Rainbow
Tables + big hash database (md5,
md5(md5), sha1, mysql)
(fr)Online MD5 Reverser | Hash
cracker
(en)Pembobolan hash password
MD5 Online
(en)Pembobolan MD5 Online
8. 2. Implementasi
(en)situs tentang MD5 berisi
tentang berbagai macam
implementasi pada berbagai bahasa
pemrogaman
(en)Paj's Home: Cryptography
(Javascript MD4 dan MD5, plus
SHA-1)

(en)MD5 kalkulator dengan


Javascript memberikan nilai secara
langsung dari kalkulasi
(en)Jacksum (Sebuah program
dengan berbagai macam fungsi
verifikasi pesan)

8. 3. Kerusakan
(en)Kerusakan cepat yang
ditemukan oleh V. Klima
Kategori: Kriptografi
Bahasa lain: English, Bahasa Melayu,
Espaol, Deutsch, Franais, Italiano,
, , Portugus, ,
Polski, Lainnya...
Dari Wikipedia Indonesia. Seluruh teks
tersedia sesuai dengan Lisensi
Dokumentasi Bebas GNU.
"MD5" on the Wikipedia website
Versi terdahulu
Pembicaraan
Sunting
Halaman ini terakhir diubah pada 200904-10 23:36:36
Halaman Utama
Wapedia: For Wikipedia on mobile

phones
Algoritma Kriptografi
Jan.10, 2009 in Kriptografi
Algoritma kriptografi adalah algoritma yang
berfungsi untuk melakukan tujuan dari ilmu
kriptografi itu sendiri. Algoritma kriptografi terdiri
dari 2 bagian fungsi, yaitu :
1. ENKRIPSI (encryption), dan
2. DEKRIPSI (decryption).
Shannon mengatakan bahwan Algoritma kriptografi
harus memiliki kekuatan untuk melakukan konfusi
dan difusi.

KONFUSI (confusion). Mengaburkan hubungan


antara plaintext dan ciphertext. Cara
palingmudah untuk melakukan konfusi adalah
menggunakan substitusi. Konfusi menimbulkan
kesulitan dalam usaha musuh untuk mencari
keteraturan dan pola statistik antara plaintext dan
ciphertext.
DIFUSI (difusion), Menyebarkan redudansi
plaintext dengan menyebarkan masukan ke
seluruh ciphertext. Caa yang paling mudah untuk
dapat melakukan difusi adalah dengan

menggunakan
metode
transposisi.
Jika
menggunakan difusi, akan dibutuka waktu ang
lebih lama untk emecakan sandi rahasia ini.
Sehingga dapat digunakan untuk mengamankan
informasi. Pada implementasinya sebuah algoritma
sandi harus memperhatikan kualitas layanan dari
keseluruhan sistem dimana dia diimplementasikan.
Algoritma sandi yang handal adalah algoritma sandi
yang kekuatannya terletak pada kunci, bukan pada
kerahasiaan algoritma itu sendiri. Teknik dan metode
untuk menguji kehandalan algoritma sandi adalah
kriptanalisa.
Secara umum berdasarkan kesamaan kuncinya,
algoritma sandi dibedakan menjadi :

ALGORITMA KUNCI SIMETRIS.


ALGORITMA KUNCI ASIMETRIS.

Berdasarkan arah implementasi dan pembabakan


zamannya dibedakan menjadi :

ALGORITMA SANDI KLASIK.


ALGORITMA SANDI MODERN

Berdasarkan
menjadi :

kerahasiaan

kuncinya

dibedakan

ALGORITMA SANDI KUNCI RAHASIA

ALGORITMA SANDI KUNCI PUBLIK

Mengapa
algoritma
kriptografi
banyak
dipublikasikan ke masyarakat luas? Jika keseluruhan
keamanan algoritma tersebut tergantung kunci dan
tidak satupun didasarkan oleh detail algoritma, maka
algoritma tersebut dapat dipublikasikan oleh semua
orang agar dapat dianalisis dan di modifikasi oleh
semua orang.
Protokol Kriptografi
Protokol: aturan yang berisi rangkaian langkahlangkah, yang melibatkan dua atau lebih
orang, yang dibuat untuk menyelesaikan
suatu kegiatan.
Protokol kriptografi: protokol yang
menggunakan kriptografi.
Orang yang berpartisipasi dalam protokol
kriptografi memerlukan protokol tersebut
misalnya untuk:
- berbagi komponen rahasia untuk
menghitung sebuah nilai,
- membangkitkan rangkaian bilangan acak,
- meyakinkan identitas orang lainnya
(otentikasi),
- dll

Protokol kriptografi dibangun dengan melibatkan


beberapa algoritma kriptografi.
Sebagian besar protokol kriptografi dirancang
untuk dipakai oleh kelompok yang terdiri dari 2
orang pemakai, tetapi ada juga beberapa protokol
yang dirancang untuk dipakai oleh kelompok
yang terdiri dari lebih dari dua orang pemanaki
(misalnya pada aplikasi teleconferencing)
Untuk mendemonstrasikan protokol kriptografi,
kita menggunakan nama-nama pemain sebagai
berikut:
Alice
: orang pertama (dalam semua
protokol)
Bob
: orang kedua (dalam semua protokol)
Carol
: orang ketiga dalam protokol tigaatau empat- orang
Dave : orang keempat dalam protokol empatorang
Eve
: penyadap (eavesdropper)
Trent
: juru penengah (arbitrator) yang
dipercaya
1. Protokol Komunikasi dengan Sistem
Kriptografi Simetri.

Protokol 1:
(1) Alice dan Bob menyepakati algoritma
kriptografi simetri yang akan digunakan.
(2) Alice dan Bob menyepakati kunci yang akan
digunakan.
(3) Alice menulis pesan plainteks dan
mengenkripsinya dengan kunci menjadi
cipherteks.
(4) Alice mengirim pesan cipherteks kepada Bob.
(5) Bob mendekripsi pesan cipherteks dengan
kunci yang sama dan membaca plainteksnya.
Eve mendengar semua percakapan antara Alice
dan Bob pada protokol ini.
- jika Eve menyadap transmisi pesan pada
langkah (4), ia harus mencoba
mengkriptanalisis cipherteks untuk
memperoleh plainteks tanpa mengetahui
kunci.
- jika ia mendengar pembicaraan pada langkah
(1)dan (2), maka ia mengetahui algoritma dan
kunci yang digunakan, sehingga ia dapat
mendekripsi cipherteks dengan kunci tsb.

Protokol kriptografi di atas


tidak bagus karena kunci harus tetap rahasia

sebelum, sepanjang, dan setelah protokol.


Langkah (1) dapat dilakukan dalam mode publik,
namun langkah (2) harus dilakukan dalam mode
rahasia. Sistem kriptografi kunci-publik dapat
memecahkan masalah distribusi kunci ini.

2. Protokol Komunikasi dengan Sistem


Kriptografi Kunci-Publik.
Protokol 2:
(1) Alice dan Bob menyepakati algoritma
kriptografi kunci-publik yang akan digunakan.
(2) Bob mengirimi Alice kunci publiknya (kunci
publik Bob).
(3) Alice mengenkripsi pesannya dengan kunci
publik Bob kemudian mengirimkannya ke Bob
(4) Bob mendekripsi pesan dari Alice dengan
kunci rahasia miliknya (kunci rahasia Bob).
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 kuncipublik 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).
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.
Dalam dunia nyata, sistem kriptografi kuncipublik bukanlah pengganti sistem kriptografi
sismetri. Sistem kriptografi kunci-publik tidak
digunakan untuk mengenkripsi pesan, melainkan
untuk mengenkripsi kunci pada sistem
kriptografi simetri.

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

3. Protokol untuk Sidik Dijital (Digital Signature)


a.

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 KB kepada Bob (KA dan
KB berbeda).

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:
Trent meminta dokumen tersebut
dari Bob.
- Trent mengenkripsi dokumen tersebut
dengan KA dan membandingkannya dengan
cipherteks dari Alice.
- 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 satuarah.
(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:
(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.
(5) Carol memverifikasi sidik dijital Alice dan
sidik dijital Bob (Carol mengetahui kunci
publik Alice dan kunci publik Bob).
4. Protokol untuk Sidik Dijital dengan Enkripsi
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.
Sidik dijital diberikan dengan menggunakan
kunci rahasia pengirim (lihat protokol 6) dan
dokumen dienkripsi dengan kunci publik
penerima.
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 (PKB) 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.

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.

Algoritma Asimetris [Public Key]


Jan.10, 2009 in Kriptografi
Algoritma Asimetris atau sering disebut algoritma
public key, penggunaan kunci dalam algoritma ini
adalah, kunci yang dipakai dalam proses enkripsi
berbeda dengan kunci yang dipakai pada proses
dekripsi, jadi jumlah kunci enkripsi kunci dekripsi.
Ada 2 jenis kunci di algoritma ini, yaitu
1. KUNCI PUBLIK adalah kunci yang digunakan
untuk melakukan proses enkripsi data. Kunci ini
disebut publik karena siapapun dapat
mengetahuinya.
2. KUNCI PRIVAT adalah kunci yang digunakan
untuk melakukan proses dekripsi data. Kunci ini
disebut privat karena 1 kunci privat hanya
dimiliki oleh 1 orang saja. Kunci privat sering
juga disebut kunci rahasia.
Istilah kunci rahasia dalam algoritma simetris
digunakan untk menyatakan kunci enkripsi dan

dekripsi, sementara pada algoritma asimetris


digunakan untuk menyatakan kunci privat, karena
kunci publik tidak dirahasiakan.

Anda mungkin juga menyukai