BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang...

30
1 Enkripsi dan Deskripsi Keamanan Komputer BAB_________ ENKRIPSI DAN DESKRIPSI Penyandi monoalfabetik Penyandi Polialpabetik Penggunaan public key Metode enkripsi DES (Data Encrytion Standard) Metode Enkripsi RSA (Rivest, Shamir, Adleman Terminologi Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. “Crypto” berarti “secret” (rahasia) dan “graphy” berarti “writing” (tulisan) . Para pelaku atau praktisi kriptografi disebut cryptographers. Sebuah algoritma kriptografik (cryptographic algorithm), disebut cipher, merupakan persamaan matematik yang digunakan untuk proses enkripsi dan dekripsi. Biasanya kedua persamaan matematik (untuk enkripsi dan dekripsi) tersebut memiliki hubungan matematis yang cukup erat. Proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext) menjadi pesan yang tersembunyi (disebut ciphertext) adalah enkripsi (encryption). Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah. Menurut ISO 7498-2, terminologi yang lebih tepat digunakan adalah “encipher”. Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut dekripsi (decryption). Menurut ISO 7498-2, terminologi yang lebih tepat untuk proses ini adalah “decipher”. Cryptanalysis adalah seni dan ilmu untuk memecahkan ciphertext tanpa bantuan kunci. Cryptanalyst adalah pelaku atau praktisi yang menjalankan cryptanalysis. Kriptografi dapat memenuhi kebutuhan umum suatu transaksi: Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi (penyandian). Keutuhan (integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu arah. 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. Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal (non- repudiation) dengan memanfaatkan tanda tangan digital dan sertifikat digital. Karakteristik cryptosytem yang baik sebagai berikut : Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan. Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.

Transcript of BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang...

Page 1: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

1

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

BAB_________

ENKRIPSI DAN

DESKRIPSI

Penyandi monoalfabetik

Penyandi Polialpabetik

Penggunaan public key

Metode enkripsi DES (Data Encrytion Standard)

Metode Enkripsi RSA (Rivest Shamir Adleman

Terminologi

Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman ldquoCryptordquo berarti ldquosecretrdquo (rahasia) dan ldquographyrdquo berarti ldquowritingrdquo (tulisan) Para pelaku atau praktisi kriptografi disebut cryptographers Sebuah algoritma kriptografik (cryptographic algorithm) disebut cipher merupakan persamaan matematik yang digunakan untuk proses enkripsi dan dekripsi Biasanya kedua persamaan matematik (untuk enkripsi dan dekripsi) tersebut memiliki hubungan matematis yang cukup erat

Proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext) menjadi pesan yang tersembunyi (disebut ciphertext) adalah enkripsi (encryption) Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah Menurut ISO 7498-2 terminologi yang lebih tepat digunakan adalah ldquoencipherrdquo Proses sebaliknya untuk mengubah ciphertext menjadi plaintext disebut dekripsi (decryption) Menurut ISO 7498-2 terminologi yang lebih tepat untuk proses ini adalah ldquodecipherrdquo

Cryptanalysis adalah seni dan ilmu untuk memecahkan ciphertext tanpa bantuan kunci Cryptanalyst adalah pelaku atau praktisi yang menjalankan cryptanalysis

Kriptografi dapat memenuhi kebutuhan umum suatu transaksi

Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi (penyandian)

Keutuhan (integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu arah

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

Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal (non-repudiation) dengan memanfaatkan tanda tangan digital dan sertifikat digital

Karakteristik cryptosytem yang baik sebagai berikut

Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan

Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar

2

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

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

Protokol Cryptosystem

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 Adapun jenis penyerangan pada protokol yaitu

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

Sedangkan jenis penyerangan pada jalur komunikasi

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

3

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Replay attack Jika seseorang bisa merekam pesan-pesan handshake (persiapan komunikasi) ia mungkin dapat mengulang pesan-pesan yang telah direkamnya untuk menipu salah satu pihak

Spoofing Penyerang ndash misalnya Maman ndash bisa menyamar menjadi Anto Semua orang dibuat percaya bahwa Maman adalah Anto Penyerang berusaha meyakinkan pihak-pihak lain bahwa tak ada salah dengan komunikasi yang dilakukan padahal komunikasi itu dilakukan dengan sang penipupenyerang Contohnya jika orang memasukkan PIN ke dalam mesin ATM palsu ndash yang benar-benar dibuat seperti ATM asli ndash tentu sang penipu bisa mendapatkan PIN-nya dan copy pita magentik kartu ATM milik sang nasabah Pihak bank tidak tahu bahwa telah terjadi kejahatan

Man-in-the-middle 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

Enkripsi

Enkripsi digunakan untuk menyandikan data-data atau informasi sehingga tidak dapat dibaca oleh orang yang tidak berhak Dengan enkripsi data anda disandikan (encrypted) dengan menggunakan sebuah kunci (key) Untuk membuka (decrypt) data tersebut digunakan juga sebuah kunci yang dapat sama dengan kunci untuk mengenkripsi (untuk kasus private key cryptography) atau dengan kunci yang berbeda (untuk kasus public key cryptography) Gambar berikut menunjukkan contoh proses enkripsi dan dekripsi dengan dua kunci yang berbeda

Plaintext CiphertextEnkripsi Deskripsi Plaintext

Gambar 21 Diagram Proses Enkripsi dan Deskripsi

Secara matematis proses atau fungsi enkripsi (E) dapat dituliskan sebagai

E (M) = C

Dimana M adalah plaintext (message) dan C adalah ciphertext

Proses atau fungsi dekripsi (D) dapat dituliskan sebagai

D (C) = M

4

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Elemen dari Enkripsi

Algoritma dari Enkripsi dan Dekripsi Algoritma dari enkripsi adalah fungsi-fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi Algoritma yang digunakan menentukan kekuatan dari enkripsi dan ini biasanya dibuktikan dengan basis matematika

Kunci yang digunakan dan panjangnya kunci Kekuatan dari penyandian bergantung kepada kunci yang digunakan Beberapa algoritma enkripsi memiliki kelemahan pada kunci yang digunakan Untuk itu kunci yang lemah tersebut tidak boleh digunakan Selain itu panjangnya kunci yang biasanya dalam ukuran bit juga menentukan kekuatan dari enkripsi Kunci yang lebih panjang biasanya lebih aman dari kunci yang pendek Jadi enkripsi dengan menggunakan kunci 128-bit lebih sukar dipecahkan dengan algoritma enkripsi yang sama tetapi dengan kunci 56-bit Semakin panjang sebuah kunci semakin besar keyspace yang harus dijalani untuk mencari kunci dengan cara brute force attack atau coba-coba karena keyspace yang harus dilihat merupakan pangkat dari bilangan 2 Jadi kunci 128-bit memiliki keyspace 2128 sedangkan kunci 56-bit memiliki keyspace 256 Artinya semakin lama kunci baru bisa ketahuan

Plaintext Plaintext adalah pesan atau informasi yang dikirimkan

Ciphertext Ciphertext adalah informasi yang sudah dienkripsi

Teknik Dasar Enkripsi

Substitusi

Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan diatas Langkah pertama adalah membuat suatu tabel substitusi Tabel substitusi dapat dibuat sesuka hati dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi Bila tabel substitusi dibuat secara acak akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak

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

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

X

0

Gambar 22 Tabel Substitusi

Tabel substitusi diatas dibuat secara acak Dengan menggunakan tabel tersebut maka

plaintext 5 teknik dasar kriptografi

dihasillkan

ciphertext L 7Q6DP6 KBVBM 6MPX72AMBGP

Dengan menggunakan tabel substitusi yang sama secara dengan arah yang terbalik (reverse) plaintext dapat diperoleh kembali dari ciphertext-nya

5

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen Plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah

5 K G

K R

T D R A

E A I F

K S P I

N A T

I R O

Block 1

Block 2

Block 3

Block 4

Block 5

Block 6

Block 7

5 K G K R T D R A

E A I F K S P I N A T

I R O

Gambar 23 Enkripsi dengan Blocking

Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya Jadi ciphertext yang dihasilkan dengan teknik ini adalah 5K G KRTDRAEAIFKSPINAT IRO Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal

Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu Prinsipnya adalah berlawanan dengan teknik substitusi Dalam teknik substitusi karakter berada pada posisi yang tetap tapi identitasnya yang diacak Pada teknik permutasi identitas karakternya tetap namun posisinya yang diacak Sebelum dilakukan permutasi umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama

Untuk contoh diatas plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter dengan aturan permutasi sebagai berikut

1 2 3 4 5 6

1 2 3 4 5 6

Plaintext

Ciphertext

Gambar 24 Permutasi

6

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dengan menggunakan aturan diatas maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut

5 T E K N

N E T K 5

I K D A S

S K D A I

A R K R I

I R K R A

P T O G R A

A T G O R P

F I

I F

Gambar 25 Proses Enkripsi dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah

N ETK5SKD AIIRK RAATGORPIF

Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran an Bila suatu kata dimulai dengan huruf vokal atau bilangan genap ditambahkan akhiran i Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K R I P T O G R A F I

5 5 A N

T E K N I K E K N I K T A N

D A S A R A S A R D A N

K R I P T O G R A F I R I P T O G R A F I K A N

5 A N E K N I K T A N A S A R D A N R I P T O G R A F I K A N

Gambar 26 Enkripsi dengan Ekspansi

Ciphertextnya adalah

5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN

Aturan ekspansi dapat dibuat lebih kompleks Terkadang teknik ekspansi digabungkan dengan teknik lainnya karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan

Pemampatan (Compaction)

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai lampiran dari pesan utama dengan diawali oleh suatu karakter khusus dalam contoh ini digunakan amp Proses yang terjadi untuk plaintext kita adalah

7

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

5 T E K N I K D A S A R K R I P T O G R F I Plaintext

Ciphertext

A

5 E K I K D A A R K R P T G R F I Pesan yang pampatkan

T N S I O

amp

Pesan yang dihilangkan

5 E K I K D A A R K R P T G R F I T N S I O

Gambar 27 Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali

Dengan menggunakan kelima teknik dasar kriptografi diatas dapat diciptakan kombinasi teknik kriptografi yang amat banyak dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita Walaupun sekilas terlihat sederhana kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern

Hash function - integrity checking

Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan ldquochecksumrdquo atau tanda bahwa data tersebut tidak berubah Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada sehingga apabila terjadi perubahan hasil penjumlahan menjadi berbeda Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama

Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain

parity checking

checksum

hash function

Hash function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data maka dia akan menghasilkan sebuah ldquochecksumrdquo atau ldquofingerprintrdquo dari data tersebut Ada beberapa hash function yang umum digunakan antara lain MD5 SHA

Penyandi Monoalphabetic

Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah pesan yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca Pesan yang asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram atau ciphertext Substitution cipher adalah sebuah kondisi dimana masing-masing huruf dari sebuah plaintext diganti oleh simbol yang lain Biasanya yang digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet alphabet

Sebuah alphabet adalah serangkaian urutan simbol-simbol Sebagai contoh secara normal alphabet Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam rangkaian urutan simbol Substitsi sederhana adalah dimana

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 2: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

2

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

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

Protokol Cryptosystem

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 Adapun jenis penyerangan pada protokol yaitu

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

Sedangkan jenis penyerangan pada jalur komunikasi

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

3

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Replay attack Jika seseorang bisa merekam pesan-pesan handshake (persiapan komunikasi) ia mungkin dapat mengulang pesan-pesan yang telah direkamnya untuk menipu salah satu pihak

Spoofing Penyerang ndash misalnya Maman ndash bisa menyamar menjadi Anto Semua orang dibuat percaya bahwa Maman adalah Anto Penyerang berusaha meyakinkan pihak-pihak lain bahwa tak ada salah dengan komunikasi yang dilakukan padahal komunikasi itu dilakukan dengan sang penipupenyerang Contohnya jika orang memasukkan PIN ke dalam mesin ATM palsu ndash yang benar-benar dibuat seperti ATM asli ndash tentu sang penipu bisa mendapatkan PIN-nya dan copy pita magentik kartu ATM milik sang nasabah Pihak bank tidak tahu bahwa telah terjadi kejahatan

Man-in-the-middle 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

Enkripsi

Enkripsi digunakan untuk menyandikan data-data atau informasi sehingga tidak dapat dibaca oleh orang yang tidak berhak Dengan enkripsi data anda disandikan (encrypted) dengan menggunakan sebuah kunci (key) Untuk membuka (decrypt) data tersebut digunakan juga sebuah kunci yang dapat sama dengan kunci untuk mengenkripsi (untuk kasus private key cryptography) atau dengan kunci yang berbeda (untuk kasus public key cryptography) Gambar berikut menunjukkan contoh proses enkripsi dan dekripsi dengan dua kunci yang berbeda

Plaintext CiphertextEnkripsi Deskripsi Plaintext

Gambar 21 Diagram Proses Enkripsi dan Deskripsi

Secara matematis proses atau fungsi enkripsi (E) dapat dituliskan sebagai

E (M) = C

Dimana M adalah plaintext (message) dan C adalah ciphertext

Proses atau fungsi dekripsi (D) dapat dituliskan sebagai

D (C) = M

4

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Elemen dari Enkripsi

Algoritma dari Enkripsi dan Dekripsi Algoritma dari enkripsi adalah fungsi-fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi Algoritma yang digunakan menentukan kekuatan dari enkripsi dan ini biasanya dibuktikan dengan basis matematika

Kunci yang digunakan dan panjangnya kunci Kekuatan dari penyandian bergantung kepada kunci yang digunakan Beberapa algoritma enkripsi memiliki kelemahan pada kunci yang digunakan Untuk itu kunci yang lemah tersebut tidak boleh digunakan Selain itu panjangnya kunci yang biasanya dalam ukuran bit juga menentukan kekuatan dari enkripsi Kunci yang lebih panjang biasanya lebih aman dari kunci yang pendek Jadi enkripsi dengan menggunakan kunci 128-bit lebih sukar dipecahkan dengan algoritma enkripsi yang sama tetapi dengan kunci 56-bit Semakin panjang sebuah kunci semakin besar keyspace yang harus dijalani untuk mencari kunci dengan cara brute force attack atau coba-coba karena keyspace yang harus dilihat merupakan pangkat dari bilangan 2 Jadi kunci 128-bit memiliki keyspace 2128 sedangkan kunci 56-bit memiliki keyspace 256 Artinya semakin lama kunci baru bisa ketahuan

Plaintext Plaintext adalah pesan atau informasi yang dikirimkan

Ciphertext Ciphertext adalah informasi yang sudah dienkripsi

Teknik Dasar Enkripsi

Substitusi

Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan diatas Langkah pertama adalah membuat suatu tabel substitusi Tabel substitusi dapat dibuat sesuka hati dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi Bila tabel substitusi dibuat secara acak akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak

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

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

X

0

Gambar 22 Tabel Substitusi

Tabel substitusi diatas dibuat secara acak Dengan menggunakan tabel tersebut maka

plaintext 5 teknik dasar kriptografi

dihasillkan

ciphertext L 7Q6DP6 KBVBM 6MPX72AMBGP

Dengan menggunakan tabel substitusi yang sama secara dengan arah yang terbalik (reverse) plaintext dapat diperoleh kembali dari ciphertext-nya

5

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen Plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah

5 K G

K R

T D R A

E A I F

K S P I

N A T

I R O

Block 1

Block 2

Block 3

Block 4

Block 5

Block 6

Block 7

5 K G K R T D R A

E A I F K S P I N A T

I R O

Gambar 23 Enkripsi dengan Blocking

Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya Jadi ciphertext yang dihasilkan dengan teknik ini adalah 5K G KRTDRAEAIFKSPINAT IRO Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal

Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu Prinsipnya adalah berlawanan dengan teknik substitusi Dalam teknik substitusi karakter berada pada posisi yang tetap tapi identitasnya yang diacak Pada teknik permutasi identitas karakternya tetap namun posisinya yang diacak Sebelum dilakukan permutasi umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama

Untuk contoh diatas plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter dengan aturan permutasi sebagai berikut

1 2 3 4 5 6

1 2 3 4 5 6

Plaintext

Ciphertext

Gambar 24 Permutasi

6

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dengan menggunakan aturan diatas maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut

5 T E K N

N E T K 5

I K D A S

S K D A I

A R K R I

I R K R A

P T O G R A

A T G O R P

F I

I F

Gambar 25 Proses Enkripsi dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah

N ETK5SKD AIIRK RAATGORPIF

Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran an Bila suatu kata dimulai dengan huruf vokal atau bilangan genap ditambahkan akhiran i Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K R I P T O G R A F I

5 5 A N

T E K N I K E K N I K T A N

D A S A R A S A R D A N

K R I P T O G R A F I R I P T O G R A F I K A N

5 A N E K N I K T A N A S A R D A N R I P T O G R A F I K A N

Gambar 26 Enkripsi dengan Ekspansi

Ciphertextnya adalah

5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN

Aturan ekspansi dapat dibuat lebih kompleks Terkadang teknik ekspansi digabungkan dengan teknik lainnya karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan

Pemampatan (Compaction)

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai lampiran dari pesan utama dengan diawali oleh suatu karakter khusus dalam contoh ini digunakan amp Proses yang terjadi untuk plaintext kita adalah

7

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

5 T E K N I K D A S A R K R I P T O G R F I Plaintext

Ciphertext

A

5 E K I K D A A R K R P T G R F I Pesan yang pampatkan

T N S I O

amp

Pesan yang dihilangkan

5 E K I K D A A R K R P T G R F I T N S I O

Gambar 27 Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali

Dengan menggunakan kelima teknik dasar kriptografi diatas dapat diciptakan kombinasi teknik kriptografi yang amat banyak dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita Walaupun sekilas terlihat sederhana kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern

Hash function - integrity checking

Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan ldquochecksumrdquo atau tanda bahwa data tersebut tidak berubah Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada sehingga apabila terjadi perubahan hasil penjumlahan menjadi berbeda Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama

Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain

parity checking

checksum

hash function

Hash function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data maka dia akan menghasilkan sebuah ldquochecksumrdquo atau ldquofingerprintrdquo dari data tersebut Ada beberapa hash function yang umum digunakan antara lain MD5 SHA

Penyandi Monoalphabetic

Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah pesan yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca Pesan yang asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram atau ciphertext Substitution cipher adalah sebuah kondisi dimana masing-masing huruf dari sebuah plaintext diganti oleh simbol yang lain Biasanya yang digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet alphabet

Sebuah alphabet adalah serangkaian urutan simbol-simbol Sebagai contoh secara normal alphabet Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam rangkaian urutan simbol Substitsi sederhana adalah dimana

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 3: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

3

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Replay attack Jika seseorang bisa merekam pesan-pesan handshake (persiapan komunikasi) ia mungkin dapat mengulang pesan-pesan yang telah direkamnya untuk menipu salah satu pihak

Spoofing Penyerang ndash misalnya Maman ndash bisa menyamar menjadi Anto Semua orang dibuat percaya bahwa Maman adalah Anto Penyerang berusaha meyakinkan pihak-pihak lain bahwa tak ada salah dengan komunikasi yang dilakukan padahal komunikasi itu dilakukan dengan sang penipupenyerang Contohnya jika orang memasukkan PIN ke dalam mesin ATM palsu ndash yang benar-benar dibuat seperti ATM asli ndash tentu sang penipu bisa mendapatkan PIN-nya dan copy pita magentik kartu ATM milik sang nasabah Pihak bank tidak tahu bahwa telah terjadi kejahatan

Man-in-the-middle 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

Enkripsi

Enkripsi digunakan untuk menyandikan data-data atau informasi sehingga tidak dapat dibaca oleh orang yang tidak berhak Dengan enkripsi data anda disandikan (encrypted) dengan menggunakan sebuah kunci (key) Untuk membuka (decrypt) data tersebut digunakan juga sebuah kunci yang dapat sama dengan kunci untuk mengenkripsi (untuk kasus private key cryptography) atau dengan kunci yang berbeda (untuk kasus public key cryptography) Gambar berikut menunjukkan contoh proses enkripsi dan dekripsi dengan dua kunci yang berbeda

Plaintext CiphertextEnkripsi Deskripsi Plaintext

Gambar 21 Diagram Proses Enkripsi dan Deskripsi

Secara matematis proses atau fungsi enkripsi (E) dapat dituliskan sebagai

E (M) = C

Dimana M adalah plaintext (message) dan C adalah ciphertext

Proses atau fungsi dekripsi (D) dapat dituliskan sebagai

D (C) = M

4

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Elemen dari Enkripsi

Algoritma dari Enkripsi dan Dekripsi Algoritma dari enkripsi adalah fungsi-fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi Algoritma yang digunakan menentukan kekuatan dari enkripsi dan ini biasanya dibuktikan dengan basis matematika

Kunci yang digunakan dan panjangnya kunci Kekuatan dari penyandian bergantung kepada kunci yang digunakan Beberapa algoritma enkripsi memiliki kelemahan pada kunci yang digunakan Untuk itu kunci yang lemah tersebut tidak boleh digunakan Selain itu panjangnya kunci yang biasanya dalam ukuran bit juga menentukan kekuatan dari enkripsi Kunci yang lebih panjang biasanya lebih aman dari kunci yang pendek Jadi enkripsi dengan menggunakan kunci 128-bit lebih sukar dipecahkan dengan algoritma enkripsi yang sama tetapi dengan kunci 56-bit Semakin panjang sebuah kunci semakin besar keyspace yang harus dijalani untuk mencari kunci dengan cara brute force attack atau coba-coba karena keyspace yang harus dilihat merupakan pangkat dari bilangan 2 Jadi kunci 128-bit memiliki keyspace 2128 sedangkan kunci 56-bit memiliki keyspace 256 Artinya semakin lama kunci baru bisa ketahuan

Plaintext Plaintext adalah pesan atau informasi yang dikirimkan

Ciphertext Ciphertext adalah informasi yang sudah dienkripsi

Teknik Dasar Enkripsi

Substitusi

Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan diatas Langkah pertama adalah membuat suatu tabel substitusi Tabel substitusi dapat dibuat sesuka hati dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi Bila tabel substitusi dibuat secara acak akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak

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

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

X

0

Gambar 22 Tabel Substitusi

Tabel substitusi diatas dibuat secara acak Dengan menggunakan tabel tersebut maka

plaintext 5 teknik dasar kriptografi

dihasillkan

ciphertext L 7Q6DP6 KBVBM 6MPX72AMBGP

Dengan menggunakan tabel substitusi yang sama secara dengan arah yang terbalik (reverse) plaintext dapat diperoleh kembali dari ciphertext-nya

5

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen Plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah

5 K G

K R

T D R A

E A I F

K S P I

N A T

I R O

Block 1

Block 2

Block 3

Block 4

Block 5

Block 6

Block 7

5 K G K R T D R A

E A I F K S P I N A T

I R O

Gambar 23 Enkripsi dengan Blocking

Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya Jadi ciphertext yang dihasilkan dengan teknik ini adalah 5K G KRTDRAEAIFKSPINAT IRO Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal

Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu Prinsipnya adalah berlawanan dengan teknik substitusi Dalam teknik substitusi karakter berada pada posisi yang tetap tapi identitasnya yang diacak Pada teknik permutasi identitas karakternya tetap namun posisinya yang diacak Sebelum dilakukan permutasi umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama

Untuk contoh diatas plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter dengan aturan permutasi sebagai berikut

1 2 3 4 5 6

1 2 3 4 5 6

Plaintext

Ciphertext

Gambar 24 Permutasi

6

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dengan menggunakan aturan diatas maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut

5 T E K N

N E T K 5

I K D A S

S K D A I

A R K R I

I R K R A

P T O G R A

A T G O R P

F I

I F

Gambar 25 Proses Enkripsi dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah

N ETK5SKD AIIRK RAATGORPIF

Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran an Bila suatu kata dimulai dengan huruf vokal atau bilangan genap ditambahkan akhiran i Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K R I P T O G R A F I

5 5 A N

T E K N I K E K N I K T A N

D A S A R A S A R D A N

K R I P T O G R A F I R I P T O G R A F I K A N

5 A N E K N I K T A N A S A R D A N R I P T O G R A F I K A N

Gambar 26 Enkripsi dengan Ekspansi

Ciphertextnya adalah

5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN

Aturan ekspansi dapat dibuat lebih kompleks Terkadang teknik ekspansi digabungkan dengan teknik lainnya karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan

Pemampatan (Compaction)

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai lampiran dari pesan utama dengan diawali oleh suatu karakter khusus dalam contoh ini digunakan amp Proses yang terjadi untuk plaintext kita adalah

7

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

5 T E K N I K D A S A R K R I P T O G R F I Plaintext

Ciphertext

A

5 E K I K D A A R K R P T G R F I Pesan yang pampatkan

T N S I O

amp

Pesan yang dihilangkan

5 E K I K D A A R K R P T G R F I T N S I O

Gambar 27 Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali

Dengan menggunakan kelima teknik dasar kriptografi diatas dapat diciptakan kombinasi teknik kriptografi yang amat banyak dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita Walaupun sekilas terlihat sederhana kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern

Hash function - integrity checking

Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan ldquochecksumrdquo atau tanda bahwa data tersebut tidak berubah Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada sehingga apabila terjadi perubahan hasil penjumlahan menjadi berbeda Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama

Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain

parity checking

checksum

hash function

Hash function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data maka dia akan menghasilkan sebuah ldquochecksumrdquo atau ldquofingerprintrdquo dari data tersebut Ada beberapa hash function yang umum digunakan antara lain MD5 SHA

Penyandi Monoalphabetic

Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah pesan yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca Pesan yang asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram atau ciphertext Substitution cipher adalah sebuah kondisi dimana masing-masing huruf dari sebuah plaintext diganti oleh simbol yang lain Biasanya yang digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet alphabet

Sebuah alphabet adalah serangkaian urutan simbol-simbol Sebagai contoh secara normal alphabet Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam rangkaian urutan simbol Substitsi sederhana adalah dimana

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 4: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

4

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Elemen dari Enkripsi

Algoritma dari Enkripsi dan Dekripsi Algoritma dari enkripsi adalah fungsi-fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi Algoritma yang digunakan menentukan kekuatan dari enkripsi dan ini biasanya dibuktikan dengan basis matematika

Kunci yang digunakan dan panjangnya kunci Kekuatan dari penyandian bergantung kepada kunci yang digunakan Beberapa algoritma enkripsi memiliki kelemahan pada kunci yang digunakan Untuk itu kunci yang lemah tersebut tidak boleh digunakan Selain itu panjangnya kunci yang biasanya dalam ukuran bit juga menentukan kekuatan dari enkripsi Kunci yang lebih panjang biasanya lebih aman dari kunci yang pendek Jadi enkripsi dengan menggunakan kunci 128-bit lebih sukar dipecahkan dengan algoritma enkripsi yang sama tetapi dengan kunci 56-bit Semakin panjang sebuah kunci semakin besar keyspace yang harus dijalani untuk mencari kunci dengan cara brute force attack atau coba-coba karena keyspace yang harus dilihat merupakan pangkat dari bilangan 2 Jadi kunci 128-bit memiliki keyspace 2128 sedangkan kunci 56-bit memiliki keyspace 256 Artinya semakin lama kunci baru bisa ketahuan

Plaintext Plaintext adalah pesan atau informasi yang dikirimkan

Ciphertext Ciphertext adalah informasi yang sudah dienkripsi

Teknik Dasar Enkripsi

Substitusi

Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan diatas Langkah pertama adalah membuat suatu tabel substitusi Tabel substitusi dapat dibuat sesuka hati dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi Bila tabel substitusi dibuat secara acak akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak

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

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

X

0

Gambar 22 Tabel Substitusi

Tabel substitusi diatas dibuat secara acak Dengan menggunakan tabel tersebut maka

plaintext 5 teknik dasar kriptografi

dihasillkan

ciphertext L 7Q6DP6 KBVBM 6MPX72AMBGP

Dengan menggunakan tabel substitusi yang sama secara dengan arah yang terbalik (reverse) plaintext dapat diperoleh kembali dari ciphertext-nya

5

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen Plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah

5 K G

K R

T D R A

E A I F

K S P I

N A T

I R O

Block 1

Block 2

Block 3

Block 4

Block 5

Block 6

Block 7

5 K G K R T D R A

E A I F K S P I N A T

I R O

Gambar 23 Enkripsi dengan Blocking

Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya Jadi ciphertext yang dihasilkan dengan teknik ini adalah 5K G KRTDRAEAIFKSPINAT IRO Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal

Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu Prinsipnya adalah berlawanan dengan teknik substitusi Dalam teknik substitusi karakter berada pada posisi yang tetap tapi identitasnya yang diacak Pada teknik permutasi identitas karakternya tetap namun posisinya yang diacak Sebelum dilakukan permutasi umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama

Untuk contoh diatas plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter dengan aturan permutasi sebagai berikut

1 2 3 4 5 6

1 2 3 4 5 6

Plaintext

Ciphertext

Gambar 24 Permutasi

6

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dengan menggunakan aturan diatas maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut

5 T E K N

N E T K 5

I K D A S

S K D A I

A R K R I

I R K R A

P T O G R A

A T G O R P

F I

I F

Gambar 25 Proses Enkripsi dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah

N ETK5SKD AIIRK RAATGORPIF

Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran an Bila suatu kata dimulai dengan huruf vokal atau bilangan genap ditambahkan akhiran i Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K R I P T O G R A F I

5 5 A N

T E K N I K E K N I K T A N

D A S A R A S A R D A N

K R I P T O G R A F I R I P T O G R A F I K A N

5 A N E K N I K T A N A S A R D A N R I P T O G R A F I K A N

Gambar 26 Enkripsi dengan Ekspansi

Ciphertextnya adalah

5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN

Aturan ekspansi dapat dibuat lebih kompleks Terkadang teknik ekspansi digabungkan dengan teknik lainnya karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan

Pemampatan (Compaction)

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai lampiran dari pesan utama dengan diawali oleh suatu karakter khusus dalam contoh ini digunakan amp Proses yang terjadi untuk plaintext kita adalah

7

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

5 T E K N I K D A S A R K R I P T O G R F I Plaintext

Ciphertext

A

5 E K I K D A A R K R P T G R F I Pesan yang pampatkan

T N S I O

amp

Pesan yang dihilangkan

5 E K I K D A A R K R P T G R F I T N S I O

Gambar 27 Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali

Dengan menggunakan kelima teknik dasar kriptografi diatas dapat diciptakan kombinasi teknik kriptografi yang amat banyak dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita Walaupun sekilas terlihat sederhana kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern

Hash function - integrity checking

Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan ldquochecksumrdquo atau tanda bahwa data tersebut tidak berubah Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada sehingga apabila terjadi perubahan hasil penjumlahan menjadi berbeda Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama

Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain

parity checking

checksum

hash function

Hash function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data maka dia akan menghasilkan sebuah ldquochecksumrdquo atau ldquofingerprintrdquo dari data tersebut Ada beberapa hash function yang umum digunakan antara lain MD5 SHA

Penyandi Monoalphabetic

Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah pesan yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca Pesan yang asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram atau ciphertext Substitution cipher adalah sebuah kondisi dimana masing-masing huruf dari sebuah plaintext diganti oleh simbol yang lain Biasanya yang digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet alphabet

Sebuah alphabet adalah serangkaian urutan simbol-simbol Sebagai contoh secara normal alphabet Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam rangkaian urutan simbol Substitsi sederhana adalah dimana

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 5: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

5

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen Plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah

5 K G

K R

T D R A

E A I F

K S P I

N A T

I R O

Block 1

Block 2

Block 3

Block 4

Block 5

Block 6

Block 7

5 K G K R T D R A

E A I F K S P I N A T

I R O

Gambar 23 Enkripsi dengan Blocking

Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya Jadi ciphertext yang dihasilkan dengan teknik ini adalah 5K G KRTDRAEAIFKSPINAT IRO Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal

Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu Prinsipnya adalah berlawanan dengan teknik substitusi Dalam teknik substitusi karakter berada pada posisi yang tetap tapi identitasnya yang diacak Pada teknik permutasi identitas karakternya tetap namun posisinya yang diacak Sebelum dilakukan permutasi umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama

Untuk contoh diatas plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter dengan aturan permutasi sebagai berikut

1 2 3 4 5 6

1 2 3 4 5 6

Plaintext

Ciphertext

Gambar 24 Permutasi

6

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dengan menggunakan aturan diatas maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut

5 T E K N

N E T K 5

I K D A S

S K D A I

A R K R I

I R K R A

P T O G R A

A T G O R P

F I

I F

Gambar 25 Proses Enkripsi dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah

N ETK5SKD AIIRK RAATGORPIF

Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran an Bila suatu kata dimulai dengan huruf vokal atau bilangan genap ditambahkan akhiran i Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K R I P T O G R A F I

5 5 A N

T E K N I K E K N I K T A N

D A S A R A S A R D A N

K R I P T O G R A F I R I P T O G R A F I K A N

5 A N E K N I K T A N A S A R D A N R I P T O G R A F I K A N

Gambar 26 Enkripsi dengan Ekspansi

Ciphertextnya adalah

5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN

Aturan ekspansi dapat dibuat lebih kompleks Terkadang teknik ekspansi digabungkan dengan teknik lainnya karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan

Pemampatan (Compaction)

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai lampiran dari pesan utama dengan diawali oleh suatu karakter khusus dalam contoh ini digunakan amp Proses yang terjadi untuk plaintext kita adalah

7

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

5 T E K N I K D A S A R K R I P T O G R F I Plaintext

Ciphertext

A

5 E K I K D A A R K R P T G R F I Pesan yang pampatkan

T N S I O

amp

Pesan yang dihilangkan

5 E K I K D A A R K R P T G R F I T N S I O

Gambar 27 Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali

Dengan menggunakan kelima teknik dasar kriptografi diatas dapat diciptakan kombinasi teknik kriptografi yang amat banyak dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita Walaupun sekilas terlihat sederhana kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern

Hash function - integrity checking

Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan ldquochecksumrdquo atau tanda bahwa data tersebut tidak berubah Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada sehingga apabila terjadi perubahan hasil penjumlahan menjadi berbeda Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama

Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain

parity checking

checksum

hash function

Hash function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data maka dia akan menghasilkan sebuah ldquochecksumrdquo atau ldquofingerprintrdquo dari data tersebut Ada beberapa hash function yang umum digunakan antara lain MD5 SHA

Penyandi Monoalphabetic

Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah pesan yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca Pesan yang asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram atau ciphertext Substitution cipher adalah sebuah kondisi dimana masing-masing huruf dari sebuah plaintext diganti oleh simbol yang lain Biasanya yang digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet alphabet

Sebuah alphabet adalah serangkaian urutan simbol-simbol Sebagai contoh secara normal alphabet Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam rangkaian urutan simbol Substitsi sederhana adalah dimana

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 6: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

6

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dengan menggunakan aturan diatas maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut

5 T E K N

N E T K 5

I K D A S

S K D A I

A R K R I

I R K R A

P T O G R A

A T G O R P

F I

I F

Gambar 25 Proses Enkripsi dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah

N ETK5SKD AIIRK RAATGORPIF

Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran an Bila suatu kata dimulai dengan huruf vokal atau bilangan genap ditambahkan akhiran i Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K R I P T O G R A F I

5 5 A N

T E K N I K E K N I K T A N

D A S A R A S A R D A N

K R I P T O G R A F I R I P T O G R A F I K A N

5 A N E K N I K T A N A S A R D A N R I P T O G R A F I K A N

Gambar 26 Enkripsi dengan Ekspansi

Ciphertextnya adalah

5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN

Aturan ekspansi dapat dibuat lebih kompleks Terkadang teknik ekspansi digabungkan dengan teknik lainnya karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan

Pemampatan (Compaction)

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai lampiran dari pesan utama dengan diawali oleh suatu karakter khusus dalam contoh ini digunakan amp Proses yang terjadi untuk plaintext kita adalah

7

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

5 T E K N I K D A S A R K R I P T O G R F I Plaintext

Ciphertext

A

5 E K I K D A A R K R P T G R F I Pesan yang pampatkan

T N S I O

amp

Pesan yang dihilangkan

5 E K I K D A A R K R P T G R F I T N S I O

Gambar 27 Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali

Dengan menggunakan kelima teknik dasar kriptografi diatas dapat diciptakan kombinasi teknik kriptografi yang amat banyak dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita Walaupun sekilas terlihat sederhana kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern

Hash function - integrity checking

Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan ldquochecksumrdquo atau tanda bahwa data tersebut tidak berubah Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada sehingga apabila terjadi perubahan hasil penjumlahan menjadi berbeda Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama

Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain

parity checking

checksum

hash function

Hash function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data maka dia akan menghasilkan sebuah ldquochecksumrdquo atau ldquofingerprintrdquo dari data tersebut Ada beberapa hash function yang umum digunakan antara lain MD5 SHA

Penyandi Monoalphabetic

Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah pesan yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca Pesan yang asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram atau ciphertext Substitution cipher adalah sebuah kondisi dimana masing-masing huruf dari sebuah plaintext diganti oleh simbol yang lain Biasanya yang digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet alphabet

Sebuah alphabet adalah serangkaian urutan simbol-simbol Sebagai contoh secara normal alphabet Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam rangkaian urutan simbol Substitsi sederhana adalah dimana

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 7: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

7

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

5 T E K N I K D A S A R K R I P T O G R F I Plaintext

Ciphertext

A

5 E K I K D A A R K R P T G R F I Pesan yang pampatkan

T N S I O

amp

Pesan yang dihilangkan

5 E K I K D A A R K R P T G R F I T N S I O

Gambar 27 Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali

Dengan menggunakan kelima teknik dasar kriptografi diatas dapat diciptakan kombinasi teknik kriptografi yang amat banyak dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita Walaupun sekilas terlihat sederhana kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern

Hash function - integrity checking

Salah satu cara untuk menguji integritas sebuah data adalah dengan memberikan ldquochecksumrdquo atau tanda bahwa data tersebut tidak berubah Cara yang paling mudah dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada sehingga apabila terjadi perubahan hasil penjumlahan menjadi berbeda Cara ini tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan tetapi menghasilkan hasil penjumlahan yang sama

Pada sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti antara lain

parity checking

checksum

hash function

Hash function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data maka dia akan menghasilkan sebuah ldquochecksumrdquo atau ldquofingerprintrdquo dari data tersebut Ada beberapa hash function yang umum digunakan antara lain MD5 SHA

Penyandi Monoalphabetic

Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah pesan yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca Pesan yang asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram atau ciphertext Substitution cipher adalah sebuah kondisi dimana masing-masing huruf dari sebuah plaintext diganti oleh simbol yang lain Biasanya yang digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet alphabet

Sebuah alphabet adalah serangkaian urutan simbol-simbol Sebagai contoh secara normal alphabet Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam rangkaian urutan simbol Substitsi sederhana adalah dimana

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 8: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

8

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dalam pesan simbol plaintext selalu diganti dengan simbol ciphertext yang sama Dengan kata lain terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun plaintext Meskipun ada 26 cara alphabet ciphertext yang mungkin semua pihak tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering dipakai

Sembilan huruf yang paling sering dipakai dalam bahasa Inggris adalah E T N A O R I S dan H Lima huruf yang kurang sering muncul adalah J K Q X dan Z Secara umum kita akan membutuhkan huruf dengan panjang yang dapat dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita mengenai frekuensi huruf yang muncul

Sebagai contoh amati pesan rahasia berikut ini

TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ

Dalam pesan ini huruf yang paling muncul adalah huruf T Jika kita mengasumsikan bahwa T=E maka kita tidak akan mendapat sesuatu yang bisa menolong Perhatikan contoh yang lain

E- -- -- --E E- -- EmdashE ndash E-- ----E---

Satu masalah dalam hal ini adalah pola E- dan pola EmdashE karena ada dua huruf kata bahasa Inggris yang mulai dengan huruf E maka hipotesa kita bahwa T=E mungkin salah Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa Inggris adalah

OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO

Karena ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali dan diakhiri dengan huruf K barangkali hipotesa kita mungkin lebih baik apabila kita mengasumsikan jika K=O Jika kita mencoba substitusi ini kita akan mendapat hasil sebagai berikut

-O ndash O- -O- -O -- ---- -- --- ------O-

Karena kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T barangkali hipotesa kita berguna untuk yang lain yaitu menjadi T=T -- Dengan kata lain T ini bisa berdiri sendiri Dari hipotesa ini kita akan memeperoleh hasil sebagai berikut

TO ndash O- -OT TO ndash TmdashT -- T-- ----T-O-

Dari hasil ini kita bisa mulai melihat titik terang yang menjanjikan Pada contoh diatas Tmdashbisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE Jika kita membuat tebakan bahwa B=H dan L=E maka kita akan mendapatkan hasil sebagai berikut

TO -E O- -OT TO -E TH-T ndash THE ndashE-T-O-

Dari hasil ini mulai kelihatan lebih baik Pola TH-T dapat kita tebak adalah THAT Pola ndashOT kita tebak adalah NOT Jika kita mengasumsikan lagi bahwa S=A dan J=N maka kita akan mendapatkan hasil sebagai berikut

TO ndashE O- NOT TO ndashE THAT ndash THE ndashE-T-O-

Kata terakhir dalam pesan berakhir dengan pola T-ON yang bisa kita tebak adalah TION Dan jika kita membuat tebakan C=I maka kita akan mendapat hasil sebagai berikut

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 9: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

9

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

TO ndashE O- NOT TO ndashE THAT I- THE ndashE-TION

Dan sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET pernah kemukakan yaitu

TO BE OR NOT TO BE THAT IS THE QUESTION

Melalui contoh ini dapat ditunjukkan walaupun ada 26 cara untuk menciptakan cryptogram substitusi sederhana kita biasanya dapat memecahkan pesan yang sangat pendek dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan kata pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan dalam bentuk ciphertext K yang diganti dengan O

Ada cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih sukar yaitu dengan melepaskan batas-batas kata Sebagai contoh perhatikan kata-kata berikut ini

TKILK QJKTT KIL TB STCRT BLOUL RTCKJ

Hal ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3 huruf untuk memecahkan masalah diatas Dan memang pesan yang dienkrip akan lebih aman

Penyandi Polialphabetic

Salah satu dari masalah utama dengan simple substitution cipher adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi Dengan ciphertext yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari huruf-hurufnya seperti dalam text Inggris Oleh karena itu untuk membuat cipher lebih aman para cryptographer tertarik untuk mengembangkan teknik menulis pesan yang aman untuk analisis frekuensi

Salah satu pendekatan yang paling umum untuk menekan data frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk mengenkrip pesan Polyalphabetic substitution cipher melibatkan penggunaan 2 atau lebih cipher alphabet Kendati ada hubungan timbal balik di antara masing-masing huruf dan penggantinya ada satu sampai banyak hubungan di antara masing-masing huruf dan penggantinya

Vigenere cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan Sebagai contoh anggaplah kita akan mengenkrip dari pesan dari plaintext

TO BE OR NOT TO BE THAT IS THE QUESTION

Dengan menggunakan kata kunci RELATIONS Kita mulai dengan menulis kata kunci mengulang beberapa kali jika perlu diatas pesan plaintext Untuk mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing plaintext di temukan hubungan antara baris tertentu pada pesan dengan kata kunci

Sebagai contoh perhatikan pesan berikut ini

Kata kunci RELAT IONSR ELATI ONSRE LATIO NSREL

Plaintext TOBEO RNOTT OBETH ATIST HEQUE STION

Ciphertext KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

Kekuatan vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji ciphertext di atas Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan huruf-huruf ini telah dienkrip oleh H L K M G X dan L

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 10: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

10

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Dari analisis di atas pesan yang telah dienkrip dengan menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk mengganti huruf-huruf yang ada dalam kata kunci

Variasi vigenere cipher adalah gronsfeld cipher Grounsfeld cipher menggunakan digit dari angka-angka yang terdapat pada kata kunci bukan dari huruf-huruf yang terdapat pada kunci-kunci

Model-Model Kriptografi

Dalam membahas model-model enkripsi beserta algoritmanya akan digunakan dua hal penting yang akan dijelaskan yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci public

Symmetric Cryptosytem

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 secret-key ciphersystem Jumlah kunci yang dibutuhkan umumnya adalah

nC2 = n (n-1) --------

2

dengan n menyatakan banyaknya pengguna

Karena pembuat pesan dan penerimanya harus memiliki kunci yang sama persis maka 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

Plaintext CiphertextEnkripsi

Key

Deskripsi Plaintext

Gambar 28 Kriptografi Simetris

Ada beberapa model enkripsi yang termasuk dalam golongan ini diantaranya Simple Cipher DES Triple DES Blowfish IDEA Rivest Code 2 (RC2) Rivest Code 4 (RC4) Skipjack Enigma cipher

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 11: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

11

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Asymmetric Cryptosytem

Metode yang digunakan menggunakan kunci yang perlu diketahui oleh umum atau kunci publik yang kita miliki dapat disebarkan ke orang lain Jika teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama untuk melakukan proses enkripsi dan deskripsi maka teknik kriptografi ini menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk enkripsi dan deskripsi

Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa dibuka menggunakan kunci pasangannya Pesan tersebut tidak bisa dibuka menggunakan kunci yang sama Kunci pertama disebut kunci publik dan pasangannnya disebut kunci private Jadi sebuah pesan yang dienkripsi menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private demikian pula sebaliknya Kunci publik dapat diketahui semua orang sedangkan kunci private hanya boleh diketahui oeleh satu orang saja yaitu orang yang berhak memilikinya

Cara enkripsi ini memiliki banyak kelebihan salah satunya adalah setiap orang hanya perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak berkomunikasi Setiap orang yang menggunakan enkripsi ini harus memiliki dua buah kunci Jika si A hendak mengirim pesan kepada si B si A perlu mengenkripsi pesan tersebut dengan kunci publik milik si B Pesan yang telah di enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci private si B maka si B wajib menjaga kunci private-nya

Plaintext CiphertextEnkripsi

Public key

Deskripsi Plaintext

Private key

Gambar 29 Kriptografi Asimetris

Kelebihannya karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan pernah dikirim lewat jalur umum hal ini menjadi lebih aman dari sistem simetris Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya sistem Diffie Hellman RSA dan PGP

Berbagai Model Enkripsi

Caesar Cipher

Salah satu contoh dari ldquosubstitution cipherrdquo adalah Caesar Cipher yang digunakan oleh Julius Caesar Pada prinsipnya setiap huruf digantikan dengan huruf yang berada tiga (3) posisi dalam urutan alfabet Sebagai

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 12: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

12

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

contoh huruf ldquoardquo digantikan dengan huruf ldquoDrdquo dan seterusnya Transformasi yang digunakan adalah

plain a b c d e f g h i j k l m n o p q r s t u v w x y z

cipher D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Enigma Cipher

Enigma adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada perang Dunia II Sewaktu dikembangkan suatu model pengkodean dengan mesin Enigma (Enigma Rotor machine) Mesin ini mempunyai 3 motor yang menggantikan huruf dalam cipher dengan huruf dalm plaintext Rotor ini akan berputar dan menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga menampilkan berbagai subtitusi seperti pergeseran Caesar

Data Encryption Standard (DES) standar bagi USA Government

didukung ANSI dan IETF

popular untuk metode secret key

terdiri dari 40-bit 56-bit dan 3x56-bit (Triple DES)

Advanced Encryption Standard (AES) untuk menggantikan DES (launching akhir 2001) menggunakan variable length block chipper key length 128-bit 192-bit 256-bit dapat diterapkan untuk smart card

Digital Certificate Server (DCS) verifikasi untuk digital signature autentikasi user menggunakan public dan private key contoh Netscape Certificate Server

IP Security (IPSec) enkripsi publicprivate key dirancang oleh CISCO System menggunakan DES 40-bit dan authentication built-in pada produk CISCO solusi tepat untuk Virtual Private Network (VPN) dan Remote

Network Access

Kerberos solusi untuk user authentication dapat menangani multiple platformsystem free charge (open source) IBM menyediakan versi komersial Global Sign On (GSO)

Point to point Tunneling Protocol(PPTP) Layer Two Tunneling Protocol

(L2TP) dirancang oleh Microsoft autentication berdasarkan PPP(Point to point protocol) enkripsi berdasarkan algoritm Microsoft (tidak terbuka) terintegrasi dengan NOS Microsoft (NT 2000 XP)

Remote Access Dial-in User Service (RADIUS)

multiple remote access device menggunakan 1 database untuk authentication

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 13: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

13

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

didukung oleh 3com CISCO Ascend tidak menggunakan encryption

RSA (Rivest Shamir Adleman) Encryption

dirancang oleh Rivest Shamir Adleman tahun 1977 standar de facto dalam enkripsi publicprivate key didukung oleh Microsoft apple novell sun lotus mendukung proses authentication multi platform

Secure Hash Algoritm (SHA)

dirancang oleh National Institute of Standard and Technology (NIST) USA

bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature

SHA-1 menyediakan 160-bit message digest Versi SHA-256 SHA-384 SHA-512 (terintegrasi dengan AES)

MD5

dirancang oleh Prof Robert Rivest (RSA MIT) tahun 1991 menghasilkan 128-bit digest cepat tapi kurang aman

Secure Shell (SSH)

digunakan untuk client side authentication antara 2 sistem mendukung UNIX windows OS2 melindungi telnet dan ftp (file transfer protocol)

Secure Socket Layer (SSL)

dirancang oleh Netscape menyediakan enkripsi RSA pada layes session dari model OSI independen terhadap servise yang digunakan melindungi system secure web e-commerce metode publicprivate key dan dapat melakukan authentication terintegrasi dalam produk browser dan web server Netscape

Security Token

aplikasi penyimpanan password dan data user di smart card

Simple Key Management for Internet Protocol seperti SSL bekerja pada level session model OSI menghasilkan key yang static mudah bobol

Aplikasi Enkripsi

Beberapa aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi diantaranya adalah

Jasa telekomunikasi

Enkripsi untuk mengamankan informasi konfidensial baik berupa suara data maupun gambar yang akan dikirimkan ke lawan bicaranya

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 14: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

14

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing

Enkripsi untuk menjaga copyright dari informasi yang diberikan

Militer dan pemerintahan

Enkripsi diantaranya digunakan dalam pengiriman pesan

Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi

Data Perbankan

Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi

Data konfidensial perusahaan

Rencana strategis formula-formula produk database pelanggankaryawan dan database operasional

pusat penyimpanan data perusahaan dapat diakses secara on-line

Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah

Pengamanan electronic mail

Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan

Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy) keduanya berbasis DES dan RSA

Kartu Plastik

Enkripsi pada SIM Card kartu telepon umum kartu langganan TV kabel kartu kontrol akses ruangan dan komputer kartu kredit kartu ATM kartu pemeriksaan medis dll

Enkripsi teknologi penyimpanan data secara magnetic optik maupun chip

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 15: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

15

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Data Encryption Standard (DES)

DES atau DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang palinh umum digunakan saat ini DES bermula dari Lucifer enkripsi yang dikembangkan di IBM kala itu DES baru secara resmi digunakan pemerintah Amerika Serikat tahun 1977 Ia di kenal sebagai Federal Information Program Standard 46 (FIPS PUB46)

DES banyak digunakan pada enkripsi password di system UNIX dan berbagai aplikasi perbankan DES beroperasi pada system biner artinya data yang dikirim akan diubah ke system biner (berupa bilangan 0 dan 1) misalnya karakter a binernya adalah 0110001 (dengan system ASCII) DES akan membagi data menjadi 64 bit dan kunci berukuran 56 bit Data 64 bit ini akan diprmutasi lalu dibagi dua amsing-masing 32 bit (L dan R) Lalu pad masing-masing data 32 bit ini alan dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa langkah biasanya smapai 16 langkah

Setelah itu kedua data ini digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan dari permutasi wal Bisa dibayangkan betapa rumitnya algoritma ini Untuk memecahkan kode DES dengan mencoba segala kombinasi dibutuhkan 256 kombinasi atau sekitar 70 miliar kombinasi

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack)

Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara Salah satu group yang bernama distributednet menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok) Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok via Internet kemudian memecahkannya di komputer pribadinya

Program yang disediakan meliputi berbagai operating system seperti Windows DOS berbagai variasi Unix Macintosh Blok yang sudah diproses dikembalikan ke distributednet via Internet Dengan cara ini puluhan ribu orang membantu memecahkan DES Mekanisme ini dapat memecahkan DES dalam waktu 30 hari Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker

Dengan mesin seharga US$50000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit maka untuk memecahkan DES 40-bit hanya

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 16: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

16

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dibutuhkan waktu sekitar 12 detik1 Dikarenakan hukum average waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik

Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas Dapat dibayangkan sistem yang dimiliki oleh National Security Agency (NSA) dari pemerintah Amerika Serikat Tentunya mereka dapat memecahkan DES dengan lebih cepat

Aplikasi yang menggunakan DES antara lain

enkripsi dari password di sistem UNIX berbagai aplikasi di bidang perbankan

Triple DES (3DES)

Triple DES adalah variasi minor dari model enkripsi DES cara ini dipakai untuk membuat DES lebih kuat lagi yaitu dengan melakukan enkripsi DES tiga kali dengan menggunakan dua kunci yang berbeda

Triple DES menjawab dari kekurangan DES karenamodelnya didasrkan pada algoritma DES maka sangatlah mudah untuk memodifikasi software yang menggunakan Triple DES Panjang kunci lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang

Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)

RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol keamanan RSA Kunci RC4 sering terbatas hanya 40 bit tetapi terkadang juga menggunakan 128 bit Biasanya RC4 digunakan dalam paket software perdagangan seperti LOTUS NOTES dan Oracle Secure SQL

Algoritma RC4 merupakan salah satu jenis stream cipher yaitu memproses unit atau input data pada suatu saat Unit atau data pada umumnya adalah sebuah byte atau kadang-kadang dalam bit (byte dalam hal RC4) Dengan cara ini enkripsi atau deskripsi dapat dilaksanakn panjang yang variabel

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 17: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

17

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Algoritma ini tidak harus menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte tambahan untuk mengenkripsi

Contoh stream cipher adalah RC4 Seal A5 Oryx dan lain-lain Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok) contohnya blowfish DES Gost Idea RC5 Safer Square Twofish RC6 Loki97 dan lain-lainnya RC4 merupakan enkripsi stream simetrik proprietary yang dibuat RSA Data Security Inc (RSADSI) Penyebarannya diawali dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara anonim pada tahun 1994 Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi RC4 digunakan secara luas pada beberapa aplikasi dan umumnya dinyatakan sangat aman

Kerberos

Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT Ketika pemakai login Kerberos mengautentikasi pemakai tersebut (menggunakan password) dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke server dan host lain yang tersebar di jaringan

Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host lain tanpa password (seperti file rhosts) Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang tepat dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya

Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar mempercayai bahwa mereka adalah orang lain Sayangnya instalasi Kerberos sangat sulit membutuhkan modifikasi atau mengganti berbagai program standar

Blowfish

Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like

cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk

mikroposesor besar (32 bit ke atas dengan cache data yang besar) Blowfish

dikembangkan untuk memenuhi kriteria disain sebagai berikut

Cepat pada implementasi yang optimal Blowfish dapat mencapai

kecepatan 26 clock cycle per byte

Kompak Blowfish dapat berjalan pada memori kurang dari 5 KB

Sederhana Blowfish hanya menggunakan operasi yang simpel

penambahan (addition) XOR dan penelusuran tabel (table lookup)

pada operand 32 bit Desainnya mudah untuk dianalisa yang

membuatnya resisten terhadap kesalahan implementasi

Keamanan yang variabel panjang kunci Blowfish dapat bervariasi

dan dapat mencapai 448 bit (56 byte)

Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah

seperti jalur komunikasi atau enkripsi file otomatis Blowfish jauh lebih

cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 18: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

18

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

cache data yang besar seperti Pentium dan Power PC Blowfish tidak cocok

untuk aplikasi seperti packet switching dengan perubahan kunci yang

sering atau sebagai fungsi hash satu arah Kebutuhan memorinya yang

besar tidak memungkinkan untuk aplikasi kartu pintar (smart card)

Deskripsi dari Blowfish

Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel

Algoritma ini terdiri dari dua bagian key expansion dan enkripsi data

Key expansion merubah kunci yang dapat mencapai 448 bit menjadi

beberapa array subkunci (subkey) dengan total 4168 byte

Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali

Setiap putaran terdiri dari permutasi kunci-dependent dan substitusi

kunci- dan data-dependent Semua operasi adalah penambahan dan

XOR pada variable 32-bit Tambahan operasi lainnya hanyalah empat

penelusuran tabel (table lookup) array berindeks untuk setiap putaran

Blowfish menggunakan subkunci yang besar Kunci ini harus dihitung

sebelum enkripsi atau dekripsi data

Array P terdiri dari delapan belas 32-bit subkunci

P1P2 P18

Empat 32-bit S-box masing-masing mempunyai 256 entri

S10 S11 S1255

S20 S21 S2255

S30 S31 S3255

S40 S41 S4255

Metoda selengkapnya untuk menghitung subkunci ini akan dijelaskan

pada bagian bawah

Blowfish merupakan algoritma yang menerapkan jaringan Feistel (Feistel

network) yang terdiri dari 16 putaran Input merupakan elemen 64 bit

X Untuk mengenkrip

Bagi X menjadi dua 32-bit XL XR

untuk i = 1 sampai 16

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Tukar XL dan XR (batalkan penukaran terakhir)

XR = XR xor P17

XL = XL xor P18

Kombinasikan kembali XL dan XR

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 19: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

19

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Fungsi F adalah sebagai berikut

Bagi XL menjadi empat bagian 8-bit a b c dan d

F(XL) = ((S1a + S2b mod 232

) xor S3c) + S4c mod 232

Dekripsi sama persis dengan enkripsi kecuali P1 P2 P18 digunakan

pada urutan yang terbalik

Subkunci dihitung menggunakan algoritma Blowfish metodanya adalah

sebagai berikut

1 Pertama-tama inisialisasi P-array dan kemudian empat S-box

secara berurutan dengan string yang tetap String ini terdiri digit

hexadesimal dari pi

2 XOR P1 dengan 32 bit pertama kunci XOR P2 dengan 32 bit

kedua dari kunci dan seterusnya untuk setiap bit dari kunci

(sampai P18) Ulangi terhadap bit kunci sampai seluruh P-array

di XOR dengan bit kunci

3 Enkrip semua string nol dengan algoritma Blowfish dengan

menggunakan subkunci seperti dijelaskan pada langkah (1) dan

(2)

4 Ganti P1 dan P2 dengan keluaran dari langkah (3)

5 Enkrip keluaran dari langkah (3) dengan algoritma Blowfish

dengan subkunci yang sudah dimodifikasi

6 Ganti P3 dan P4 dengan keluaran dari langkah (5)

7 Lanjutkan proses tersebut ganti seluruh elemen dari P-array

dan kemudian seluruh keempat S-box berurutan dengan

keluaran yang berubah secara kontinyu dari algoritma Blowfish

Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang

dibutuhkan Aplikasi kemudian dapat menyimpan subkunci ini dan tidak

dibutuhkan langkah-langkah proses penurunan ini berulang kali

kecuali kunci yang digunakan berubah

Keamanan dari Blowfish

Tidak ada kelemahan yang berarti dari algoritma Blowfish yang dapat

ditemukan sampai saat ini kecuali adanya weak key dimana dua entri

dari S-box mempunyai nilai yang sama Tidak ada cara untuk mencek

weak key sebelum melakukan key expansion Bila dikuatirkan hal ini

dapat mengurangi keamanannya maka dapat dibuat rutin untuk

mengecek entri S-box walaupun hal ini tidak perlu

Sampai saat ini tidak ada cryptanalysis yang berhasil tehadap Blowfish

untuk amannya jangan menggunakan Blowfish dengan kurang dari 16

putaran (round)

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 20: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

20

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Aplikasi

Untuk mengaplikasikan metoda ini dapat dibuat dengan menggunakan

Delphi yang dapat dilihat pada unit Blowfishpas dan tabel inisialisasi

bf_initinc Untuk mengecek kebenaran implementasi dari algortima ini

perlu melengkapinya dengan prosedur self test yang dapat dilihat

hasilnya dengan menjalankan program BFTestdpr

Saat ini banyak sekali aplikasi security yang menggunakan Blowfish

sebagai metoda enkripsinya untuk melihat aplikasi apa saja yang sudah

menggunakan metoda ini dapat dilihat websitenya di Counterpane

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 21: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

21

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

RSA (Rivest Shamir Adleman) Encryption

Dibidang kriptografi RSA adalah sebuah algoritma pada enkripsi public key

RSA merupakan algoritma pertama yang cocok untuk digital signature

seperti halnya ekripsi dan salah satu yang paling maju dalam bidang

kriptografi public key RSA masih digunakan secara luas dalam protokol

electronic commerce dan dipercaya dalam mengamankan dengan

menggunakan kunci yang cukup panjang

Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest Adi Shamir

dan Len Adleman dari Massachusetts Institute of Technology huruf RSA

itu sendiri juga berasal dari inisial nama mereka (RivestmdashShamirmdash

Adleman)

Clifford Cocks seorang matematikawan Inggris yang bekerja untuk

GCHQ menjabarkan tentang sistem equivalen pada dokumen internal di

tahun 1973 Penemuan Clifford Cocks tidak terungkap hingga tahun

1997 dikarenan alasan top-secret classification

Algoritma tersebut dipatenkan oleh Massachusetts Institute of

Technology pada tahun 1983 di Amerika Serikat sebagai US Patent

4405829 Paten tersebut berlaku hingga 21 September 2000 Semenjak

Algoritma RSA dipublikasikan sebagai aplikasi paten regulasi di sebagian

besar negara-negara lain tidak memungkinkan penggunaan paten Hal

ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum

paten di Amerika Serikat tidak dapat mematenkannya

Pembangkitan Kunci

Semisal Alice berkeinginan untuk mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure) Alice melakukan langkah-langkah berikut untuk membuat sebuah public key dan private key

1 Pilih dua bilangan prima p ne q secara acak dan terpisah untuk tiap-tiap p dan q Hitung N = p q N hasil perkalian dari p dikalikan dengan q

2 Hitung φ = (p-1)(q-1)

3 Pilih bilangan bulat (integer) antara satu dan φ (1 lt e lt φ) yang

juga merupakan coprime dari φ

4 Hitung d hingga d e equiv 1 (mod φ)

bilangan prima dapat diuji probabilitasnya menggunakan Fermats little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a tetapi hal ini sangatlah langka

langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean lihat juga aritmetika modular

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 22: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

22

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)e menghasilkan bilangan bulat kemudian menggunakan nilai dari d (mod (p-1)(q-1))

langkah 2 PKCS1 v21 menggunakan amplamda = lcm(p-1 q-1) selain daripada φ = (p-1)(q-1))

Pada public key terdiri atas

N modulus yang digunakan

e eksponen publik (sering juga disebut eksponen enkripsi)

Pada private key terdiri atas

N modulus yang digunakan digunakan pula pada public key

d eksponen pribadi (sering juga disebut eksponen dekripsi) yang harus dijaga kerahasiaannya

Biasanya berbeda dari bentuk private key (termasuk parameter CRT)

p dan q bilangan prima dari pembangkitan kunci

d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1)

(1q) mod p (dikenal sebagai iqmp)

Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT) Dalam bentuk ini seluruh bagian dari private key harus dijaga kerahasiaannya

Alice mengirimkan public key kepada Bob dan tetap merahasiakan private key yang digunakan p dan q sangat sensitif dikarenakan merupakan faktorial dari N dan membuat perhitungan dari d menghasilkan e Jika p dan q tidak disimpan dalam bentuk CRT dari private key maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci

Proses enkripsi pesan

Misalkan Bob ingin mengirim pesan m ke Alice Bob mengubah m menjadi angka n lt N menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme

Maka Bob memiliki n dan mengetahui N dan e yang telah diumumkan oleh Alice Bob kemudian menghitung ciphertext c yang terkait pada n

Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring Bob kemudian mengirimkan c kepada Alice

Proses dekripsi pesan

Alice menerima c dari Bob dan mengetahui private key yang digunakan oleh Alice sendiri Alice kemudian memulihkan n dari c dengan langkah-langkah berikut

n equiv cd mod N

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 23: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

23

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Perhitungan diatas akan menghasilkan n dengan begitu Alice dapat mengembalikan pesan semula m Prosedur dekripsi bekerja karena

cd equiv (ne)d equiv ned (mod N)

Kemudian dikarenakan ed equiv 1 (mod p-1) dan ed equiv 1 (mod q-1) hasil dari Fermats little theorem

ned equiv n (mod p)

dan

ned equiv n (mod q)

Dikarenakan p dan q merupakan bilangan prima yang berbeda mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen

ned equiv n (mod pq)

serta

cd equiv n (mod N)

Contoh proses

Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya Parameter yang digunakan disini berupa bilangan kecil

Kita membuat

p = 61 bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)

q = 53 bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)

N = pq = 3233 modulus (diberikan kepada publik)

e = 17 eksponen publik (diberikan kepada publik)

d = 2753 eksponen pribadi (dijaga kerahasiannya)

Public key yang digunakan adalah (eN) Private key yang digunakan adalah d Fungsi pada enkripsi ialah

encrypt(n) = ne mod N = n17 mod 3233

dimana n adalah plaintext Fungsi dekripsi ialah

decrypt(c) = cd mod N = c2753 mod 3233

dimana c adalah ciphertext

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 24: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

24

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Untuk melakukan enkripsi plaintext bernilai 123 perhitungan yang dilakukan

encrypt(123) = 12317 mod 3233 = 855

Untuk melakukan dekripsi ciphertext bernilai 855 perhitungan yang dilakukan

decrypt(855) = 8552753 mod 3233 = 123

Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation

Padding schemes

Padding Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang menyebabkan masalah keamanan Sebagai contoh jika kita ambil contoh sederhana dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan menghasilkan n kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai numeris 0) akan menghasilkan n= 0 yang akan menghasilkan ciphertext 0 apapun itu nilai dari e dan N yang digunakan Sama halnya dengan karakter ASCII tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1 Pada kenyataannya untuk sistem yang menggunakan nilai e yang kecil seperti 3 seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman dikarenakan nilai terbesar n adalah nilai 255 dan 2553 menghasilkan nilai yang lebih kecil dari modulus yang sewajarnya maka proses dekripsi akan menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa perlu menggunakan modulus N Sebagai konsekuensinya standar seperti PKCS didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat terenkripsi secara aman Dan juga berdasar pada bagian Kecepatan akan dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message key yang dipilh secara acak

Pengesahan pesan

RSA dapat juga digunakan untuk mengesahkan sebuah pesan Misalkan Alice ingin mengirim pesan kepada Bob Alice membuat sebuah hash value dari pesan tersebut di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan) dan melampirkannya sebagai tanda tangan pada pesan tersebut Saat Bob menerima pesan yang telah ditandatangani Bob memangkatkan tanda tangan tersebut dengan bilangan e dibagi N (seperti halnya pada enkripsi pesan) dan membandingkannya dengan nilai hasil dari hash value dengan hash value pada pesan tersebut Jika kedua cocok maka Bob dapat mengetahui bahwa pemilik dari pesan tersebut adalah Alice dan pesan pun tidak pernah diubah sepanjang pengiriman

Harap dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan pesan seperti halnya pada enkripsi pesan oleh karena itu kunci yang sama tidak digunakan pada proses enkripsi dan pengesahan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 25: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

25

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

Keamanan

Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat besar Apabila terdapat faktorisasi metode yang baru dan cepat telah dikembangkan maka ada kemungkinan untuk membongkar RSA

Pada tahun 2005 bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang 663 bit menggunakan metode distribusi mutakhir Kunci RSA pada umumnya sepanjang 1024mdash2048 bit Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan) tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi

Semisal Eve seorang eavesdropper (pencuri dengarmdashpenguping) mendapatkan public key N dan e dan ciphertext c Bagimanapun juga Eve tidak mampu untuk secara langsung memperoleh d yang dijaga kerahasiannya oleh Alice Masalah untuk menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA

Cara paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan melakukan faktorisasi N kedalam p dan q dengan tujuan untuk menghitung (p-1)(q-1) yang dapat menghasilkan d dari e Tidak ada metode waktu polinomial untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer saat ini tapi hal tersebut pun masih belum terbukti

Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara untuk memperoleh n dari c tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya dari sepengatahuan publik)

Bagaimanapun juga secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar

Jika N sepanjang 256-bit atau lebih pendek N akan dapat difaktorisasi dalam beberapa jam pada Personal Computer dengan menggunakan perangkat lunak yang tersedia secara bebas Jika N sepanjang 512-bit atau lebih pendek N akan dapat difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999 Secara teori perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit Santa disarankan bahwa N setidaknya sepanjang 2048-bit

Pada thaun 1993 Peter Shor menerbitkan Algoritma Shor menunjukkan bahwa sebuah komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu polinomial mengurai RSA dan algoritma lainnya Bagaimanapun juga masih terdapat pedebatan dalam pembangunan komputer quantum secara prinsip

Pembangkitan kunci

Menemukan bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hampir semua bilangan bukan prima

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 26: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

26

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

p dan q seharusnya tidak saling-berdekatan agar faktorisasi fermat pada N berhasil Selain itu pula jika p-1 atau q-1 memeiliki faktorisasi bilangan prima yang kecil N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang Biasanya pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan Harap diingat bahwa kebutuhan disini ialah acak dan tidak-terduga Berikut ini mungkin tidak memenuhi kriteria sebuah bilangan mungkin dapat dipilah dari proses acak (misal tidak dari pola apapun) tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak) maka metode tersebut akan kehilangan kemampuan keamanannya Misalnya tabel bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak tetapi dikarenakan diterbitkan secara umum hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut Jika penyerang dapat menebak separuh dari digit p atau q para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997)

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar Wiener menunjukkan pada tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N143 maka d akan dapat dihitung secara effisien dari N dan e Kunci enkripsi e = 2 sebaiknya tidak digunakan

Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya Pada prakteknya Bob menyandikan pesan rahasia menggunakan algoritma simetrik menyandikan kunci simetrik menggunakan RSA dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice

Prosedur ini menambah permasalahan akan keamanan Singkatnya Sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simterik yang digunakan

Distribusi kunci

Sebagaimana halnya chiper bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan Distribusi kunci harus aman dari man-in-the-middle attack (penghadang-ditengah-jalan) Anggap Eve dengan suatu cara mampu memberikan kunci arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice Anggap Eve dapan menghadang sepenuhnya transmisi antara Alice dan Bob Eve mengirim Bob public key milik Eve dimana Bob percaya bahwa public key tersebut milik Alice Eve dapat menghadap seluruh ciphertext yang dikirim oleh Bob melakukan dekripsi dengan kunci rahasia milik Eve sendiri menyimpan salinan dari pesan tersebut melakukan enkripsi menggunakan public key milik Alice dan mengirimkan ciphertext yang baru kepada Alice Secara

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 27: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

27

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

prinsip baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat digitalatau kompnen lain dari infrastuktur public key

Penyerangan waktu

Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995 jika penyerang Eve mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa ciphertext Eve dapat menyimpulkan kunci dekripsi d secara cepat Penyerangan ini dapat juga diaplikasikan pada skema tanda tangan RSA SAlah satu cara untuk mencegah penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap ciphertext yang diproses Cara yang lainnya yaitu dengan menggunakan properti multipikatif dari RSA Sebagai ganti dari menghitung cd mod N Alice pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N Hasil dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat dihilangkan dengan perkalian dengan inversenya Nilai baru dari r dipilih pada tiap ciphertext Dengan teknik ini dikenal sebagai message blinding (pembutaan pesan) waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal

Penyerangan ciphertext adaptive

Pada tahun 1998 Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext adaptive terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS 1 v1 padding scheme Dikarenakan kecacatan pada skema PKCS 1 Bleichenbacher mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada protokol Secure Socket Layer dan secara potensial mengungkap kunci-kunci yang digunakan Sebagai hasilnya para pengguna kriptografi menganjurkan untuk menggunakan padding scheme yang relatif terbukti aman seperti Optimal Asymmetric Encryption Padding dan Laboratorium RSA telah merilis versi terbaru dari PKCS 1 yang tidak lemah terdapat serangan ini

Pretty Good Privacy (PGP)

PGP merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman bertukar informasi dan file di jaringan publik PGP menggunakan IDEA sebagai algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya

PGP mengkombinasikan 3 mekanisme sistem keamanan yaitu enkripsi tanda tangan digital (Digital Signature) dan hash Beberapa alasan mengapa PGP cepat berkembang adalah

PGP tersedia dalam beberapa flatform seperti DOS Windows UNIX Machintos

PGP menggunakan algoritma enkripsi yang sudah terbukti keamanannya yaitu

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 28: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

28

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

IDEA untuk kunci enkripsikonvensional

RSA untuk enkripsi publik

MD5 untuk kode hash

PGP telah digunakan secara luas oleh perusahaan maupun perorangan

PGP tidak dikendalikan maupun dibangun oleh suatu negara maupun organisasi tertentu

PGP dapat digunakan untuk authentification data secrecy atau gabungan keduanya

Plaintext

Plaintext is encrypted with session key

Session key is encrypted with public key

Ciphertext +

encrypted session key

Ciphertext

Gambar Cara Kerja Enkripsi PGP

PGP mengkombinasikan beberapa keunggulan dari enkripsi konvensional dan

enkripsi publik key PGP adalah hybrid cryptosystem Adapun cara kerja dari

PGP seperti gambar adalh sebagai berikut

1 PGP menggunakan dua kode Kode-kode ini berhubungan secara intristik namun tidak mungkin untuk memecahkan satu sama lainnya Kunci sesi digunakan untuk mendeskripsikan pesan yang dideskripsi dengan RSA

2 ketika suatu kunci dibuat secara otomatis dihasilkan sepasang kunci yaitu kunci publik dan kunci rahasia A memberikan kunci publik kemanapun tujuan yang diinginkan melalui telpon email website dan lainnya Kunci rahasia yang disimpan pada mesin A dan menggunakan messager decipher akan dikirimkan ke A Jadi orang lain yang akan mengirim pesan ke A harus melakukan enkripsi dengan kunci publik A dan A dapat membuka pesan tersebut dengan menggunakan kunci private-nya

3 dengan sustem publik key tidak akan menjadi maslah siapapun yang melihat kunci publik kita karena kunci yang dilihat orang lain adalah kunci untuk mengenkripsi dan hanya pemiliknya saja yang mengatahui kunci rahasia tersebut

Dalam kenyataannya PGP menggunakan serangkain kunci pribadi kunci publik dan fungsi campuran satu arah untuk mengenkripsi pesan Fungsi campuran satu arah menggambil beberapa plaintext dan menterjemahkannya ke dalam fungsi khusu Campuran unik ini untuk sebuah pesan serta tidak bisa dibalik karena itu dinamakan fungsi satu arah

Setelah pesan diterima oleh A A melakukan enkripsi kunci sesi dengan memecahkan kunci sesi dengan enkripsi RSA lalu A mendeskripsikan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 29: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

29

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

dengan kunci pribadi pada kunci sesi tersebut Kunci sesi digunakan untuk mendeskripsikan ciphertext menjadi plaintext dari B

Original

Plaintext

Recipientrsquos privated key used to

descrpt session key

Session key used to descrypt ciphertext

Encrypted session key

Ciphertext

Gambar Cara Kerja Deskripsi PGP

Tandatangan Digital ( Digital Signature)

Masalah tandatangan digital masih sering dipermasalahkan keabsahannya hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami Dalam penandatangan digital terhadap suatu dokumen sidik jari dokumen beserta timestamp-nya di enkripsi dengan kunci private pihak yang menandatangani

Tandatangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tandatangan tersebut hanya berlaku untuk satu dokumen yang bersangkutan saja keabsahan tanda tangan digitak itu dapat diperiksa oleh pihak penerima pesan Tanda tangan digital didasarkan pada algoritma kriptografi kunci publik dimana kunci enkripsi berbeda dengan kunci deskripsi Bagaimanapun tanda tangan digital menggunakan metode yang berlawanan dari yang digunakan oleh algoritma kriptografi kunci publik ini berarti tanda pengguna dengan kunci pribadinya dan penerima dapat melakukan verifikasi dengan kunci publik dari pembuat tanda

Ketika menggunakan algoritma kriptografi kunci publik teks dienkripsi dengan algoritma kriptografi kunci rahasia dengan menciptakan kunci terpisah untuk mempercepat proses dan enkripsi dilakukan hanya pada kunci yang menggunakan algoritma kunci publik

Tanda tangan digital tidak dilakukan pada seluruh teks dengan kecepatan proses yang tinggi namun dengan melakukan seleksi fungsi hash dan

menandai nilai hash Sifat yang dimiliki oleh tanda tangan digital adalah

1 Autentik tidak bisa ditirusulit ditiruditulis oleh orang lain Pesan dan tanda tangan pesan tersebut juga dapat dijadikan barang bukti sehingga penanda tangan tidak bisa menyangkal bahwasanyapernah melakukan tandatangan

2 Hanya sah untuk dokumen atau pesan itu saja atau salinannya yang sama persis Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya meskipun dokumen itu hanya berbeda sedikit Ini juga berarti bahwa jika dokumen itu diubah tanda tangan digital dari pesan tersebut tidak sah lagi

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku

Page 30: BAB ENKRIPSI DAN DESKRIPSIdaniel_rivai.staff.gunadarma.ac.id/Downloads/files/39118/...fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan

30

EEnnkkrriippssii ddaann DDeesskkrriippssii

KKeeaammaannaann KKoommppuutteerr

3 Dapat diperiksa dengan mudah termasuk oleh pihak-pihak yang belum pernah bertatap muka langsung dengan penanda tangan

Original Text Signed textSigning Verifying Verified text

Private key Public key

Gambar Tanda Tangan Digital Yang Sederhana

Sepasang kunci publik-privat dibuat untuk keperluan seseorang Knci privat disimpan oleh pemiliknya dan digunakan untuk membuat tandatangan digital Kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen Proses pembuatan dan pemeriksaan tanda tangan ini melibatkan sejumlah teknik kriptografi seperti hashing dan enkripsi asimetris

Untuk mengatasi masalah sekuriti pendistribusian kunci publik kunci pblik tersebut rdquodirekatkanrdquo pada sertifikat digital Sertifikat digital selain berisi kunci publik juga berisi informasi lengkap mengenai jatidiri pemilik kunci tersebut sebagaimana layaknya KTP yang memuat nomor seri nama pemilik kode negaraperusahan masa berlaku