BAB 2 TINJAUAN PUSTAKA 2.1 Pendahuluan - Perancangan Aplikasi Kriptografi Kunci Publik Metode Rivest-Shamir-Adleman (RSA) dengan Metode The Sieve of Erathostenes pada File Text dengan PHP

BAB 2 TINJAUAN PUSTAKA

2.1 Pendahuluan

  Teknik pengacakan data yang disebut enkripsi, telah membentuk suatu bidang keilmuan yang disebut kriptografi. Prinsip dasar dari teknik enkripsi adalah menyembunyikan informasi dalam bentuk yang sedemikin rupa sehingga hanya orang yang berhak saja yang dapat mengetahui isi informasi yang disembunyikan itu. Keinginan untuk merahasiakan informasi sudah muncul sejak laman dahulu, bahkan Sebelum Masehi.

  Pada tahun 475 S.M. bangsa Sparta , suatu bangsa militer pada jaman Yunani kuno, menggunakan teknik kriptografi yang disebut scytale, untuk kepentingan perang. Scytale terbuat dari tongkat dengan papyrus yang mengelilingi secara spiral. Pesan dituliskan secara melintang pada tongkat melintasi papyrus.

  Kunci dari scytale adalah diameter tongkat yang digunakan pengiriman harus sama dengan diameter tongkat yang dimiliki penerima pesan, sehingga pesan yang disembunyikan dalam papyrus dapat dibaca dan dimengerti penerima.

  Julius Caesar, seorang kaisar terkenal Romawi yang menaklukan banyak bangsa di Eropa dan Timur Tengah juga menggunakan suatu teknik kriptografi yang sekarang disebut Caesar Cipher untuk berkorespondensi sekitar tahun 60 S.M. Teknik yang digunakan oleh sang Caesar adalah mensubstitusikan alphabet secara beraturan, yaitu oleh alphabet ketiga yang mengikuti, misalnya, alphabet “A” digantikan oleh “D”,”B” oleh “E”, dan seterusnya. Sebagai contoh, suatu pesan berikut: “NXDVDLPHVLU” akan diterjemahkan menjadi “KUASAI MESIR”.

2.2 Teori Dasar Kriptografi

  Suatu ilmu dan seni dalam menjaga kerahasiaan suatu pesan (kode) disebut dengan kriptografi yang dilakukan oleh seorang kriptografi. Kriptografi terdiri dari proses yaitu enkripsi dan dekripsi yang diibaratkan seperti dua sisi mata uang. Suatu pesan dibuat seolah tidak bermakna dengan merubahnya menurut prosedur tertentu maka disebut dengan Enkripsi, dan dibuat bermakna kembali dengan menggunakan prosedur yang biasanya bersifat kebalikannya, disebut juga dengan istilah Dekripsi.

  Pesan atau dalam istilah kriptografi disebut message, yang akan dirahasiakan disebut plaintext, sedangkan bentuk pesan hasil proses di enkripsi disebut ciphertext. Cryptanalyst adalah orang yang mempelajari ilmu dan seni ilmu membongkar ciphertext. Menurut ISO 7498-2 istilah yang lebih tepat untuk

  decryption adalah “decipher”.

  Terdapat lima teknik yang mendasari kriptografi. Berikut ini dicontohkan procedure enkripsi dalam melakukan pengacakan data terhadap

  plaintext yang sama, yaitu “5 teknik dasar kriptografi”.

2.2.1 Subtitusi Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan di atas.

  Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memilki tabel yang sama untuk keperluan dekripsi. Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak.

Tabel 2.1 Subtitusi

  A B C D E F G H

  I J K L M N O P Q R S T B F

  1 K Q G A T P J

  6 H Y D 2 X 5 M V 7 U V W X Y Z

  1

  2

  3

  4

  5

  6

  7

  8

  9 C

  8

  4

  1 9 N R E U 3 L S W , .

  O Tabel substitusi di atas dibuat secara acak. Dengan menggunakan tabel tersebut, dari plaintext “5 teknik dasar kriptografi” dihasilkan ciphertext “L

  7Q6DP6 KBVBM6MPX72AMBGP”. Dengan menggunakan tabel substitusi yang sama secara dengan arah yang terbalik, plaintext dapat diperoleh kembali dari ciphertext-nya.

2.2.2 Blocking

  Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian di enkripsi secara independent. Plaintext yang dienkripsikan dengan menggunakan teknik blocking terdapat pada tabel 2.2.

Tabel 2.2 Enkripsi Dengan Blocking

  5 D P Blok1 A T Blok2

  T S O Blok3 E A G Blok4

  K R R Blok5 N A Blok6

  I K F Blok7 K R

  I Blok8

  I Blok9 Dengan menggunakan enkripsi blocking dipilih jumlah jalur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik 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 bloknya. Jadi ciphertext yang dihasilkan dengan teknik ini adalah “5DP ATTSOEAGKRRN AIKFKRI I”. Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal.

2.2.3 Permutasi

  Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut tranposisi. Teknik ini memindahkan atau merotasiakan 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, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama.

  Untuk contoh di atas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan aturan permutasi sebagai berikut:

  1

  2

  3

  4

  5

  6

  6

  2

  4

  3

  5

  1 Gambar 2.1 Permutasi Dengan menggunakan aturan di atas, maka proses enkripsi dengan permutasi dari plaintext adalah 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 N E T K

5 S K D A

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

  1 Gambar 2.2 Proses Enkripsi Dengan Permutasi Ciphertext yang dihasilkan dengan teknik permutasi ini adalah “N ETK5SKD AIIRK RAATGORP FI”.

2.2.4 Ekspansi

  Suatu metode sederhana untuk mengacak pesan adalah dengan melebarkan 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 akhir kata itu dan menambahkan akhiran “an”. Bila suatu kata dimulai dengan huruf hidup 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

  I P T O G R A F

  I

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 2.3 Enkripsi Dengan Ekspansi Ciphertext nya 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.

2.2.5 Pemampatan

  Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan. Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ketiga 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 “&”. Proses yang terjadi untuk plaintext kita adalah:

5 T E K N

  I K = D A S A R = K R

  I P T O G R A F

  I Plaintext

5 E K

  I K D A A R K R P T G R F

  I Pesan yang dimampatkan T N S

  I O A 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 A Ciphertext

Gambar 2.4 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 di atas, 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.

2.3 Teknologi Enkripsi Simetris dan Asimetris

  Untuk menyandi informasi dan untuk menterjemahkan pesan tersandi sebuah algoritma penyandian memerlukan sebuah data binary yang disebut kunci atau key. Tanpa kunci yang cocok orang tidak bisa mendapatkan kembali pesan asli dari pesan tersandi. Ada dua jenis sistem tersandi yang dikenal dengan istilah sistem sandi simetris dan sistem sandi asimetris.

  Sistem sandi simetris menggunakan kunci yang sama dalam proses enkripsi maupun proses dekripsi. Sedangkan sistem sandi asimetris dalam melakukan proses enkripsi menggunakan kunci yang berbeda dengan kunci yang digunakan dalam proses deskripsi. Contoh dari sistem sandi simetris adalah Data Encryption Standard (DES), sedangkan contoh sistem sandi asimetris adalah Ron Shamir Adleman (RSA).

  Kedua sistem ini memiliki keuntungan dan kerugiannya sendiri. Sistem sandi simetris cenderung jauh lebih cepat sehingga lebih disukai oleh kalangan industri. Namun kelemahannya adalah bahwa pihak-pihak yang ingin berkomunikasi secara privat harus punya akses ke sebuah kunci bersama. Dan tidak menutup kemungkinan bahwa salah satu pihak akan ceroboh terhadap kunci tersebut hingga mudah jatuh ke tangan pihak ketiga.

2.4 Konsep Dasar Kriptografi Kunci Publik

  Algoritma Kunci Publik menggunakan kunci yang berbeda untuk enkripsi dan deskripsi. Karena sifatnya ini maka algoritma ini termasuk ke dalam sistem sandi asimetris. Metode Kunci Publik ini menjadi penting karena meskipun kunci enkripsi sudah diketahui publik, namun ciphertext tersebut tidak dapat diterjemahkan tanpa menggunakan kunci deskripsi yang disebut kunci privat.

KUNCI PUBLIK KUNCI PRIVAT

  Plaintext PROSES PROSES

  Ciphertext Plainteks DEKRIPSI ENKRIPSI

   User A User B

Gambar 2.5 Model Enkripsi Kunci PublikGambar 2.5 menggambarkan model dari enkripsi kunci publik. Apabila user

  A akan mengirimkan pesan tersandi maka ia akan menyandi pesan itu (enkripsi) dengan menggunakan kunci publik user B. Kemudian user B mendeskripsikan pesan tersebut mengggunakan kunci privat miliknya.

  Algortima dari proses komunikasi mengggunakan kriptografi kunci publik adalah seperti contoh berikut: 1). Feli dan Fajar akan menggunakan sistem kriptografi kunci publik. 2). Fajar mengirimkan kunci publik miliknya kepada Feli. 3). Feli meng-enkripsi pesan miliknya dengan menggunakan kunci publik milik Fajar dan mengirimkannya. 4). Fajar meng-deskripsikan pesan dari Feli dengan menggunakan kunci privat miliknya. Dalam prakteknya baik Feli maupun Fajar dapat mengakses kunci publik masing-masing yang tersedia dalam sebuah Data Base, yang disebut dengan Key Distribution Center (KDC).

  Kunci publik dapat diketahui orang lain, kunci privat tetap hanya diketahui pemiliknya saja. Konsep Kunci Publik ini adalah prototype awal dari munculnya RSA.

2.5 Rivest-Shamir-Adleman (RSA)

  Penemu RSA adalah Ron Rivest, Adi Shamir, dan Leonard Adleman yang membuatnya di tahun 1978. RSA ini adalah sistem penyandian kunci publik yang popular.

  Kepopuleran RSA terletak dari kemampuannya digunakan sebagai tanda tangan digital. Teknologi tanda tangan digital dibuat dengan memanfaatkan teknologi kunci publik. Sepasang kunci public-privat dibuat untuk keperluan seseorang. Kunci privat disimpan oleh pemiliknya, dan digunakan untuk membuat tanda tangan digital. Sedangkan kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen.

  Saat ini satu-satunya cara yang diketahui untuk mendobrak sandi RSA adalah dengan mencoba satu-persatu berbagai kombinasi kunci dengan istilah

  

brute force attack . Karena itu, sebenarnya keamanan dari RSA banyak bergantung

  dari ukuran kunci yang digunakan yaitu dalam bit. Semakin lebar ukuran kunci maka banyaknya kemungkinan kombinasi kunci yang mungkin semakin besar. Selain itu keamanan RSA ini pun bergantung pada kesulitan dalam pemangkatan bilangan bulat dalam digit yang besar. Salah satu kelemahan RSA dibandingkan dengan sistem sandi simetris adalah lama proses yang dibutuhkannya.

  Kepopuleran RSA saat ini ditandingi oleh kepopuleran Pretty Good Privacy

  

(PGP) , yang merupakan aplikasi pengamanan Surat Elektronik atau Electronic

Mail (E-mail). Namun sebenarnya PGP sendiri masih menggunakan algoritma RSA

  dalam hal tanda tangan digital RSA adalah sistem sandi yang barangkali paling mudah dimengerti cara kerjanya, tetapi juga sangat kokoh, baik untuk menyandi maupun menterjemahkan sandi, RSA hanya menggunakan operasi pemangkatan. Para pembuat RSA ini melihat bahwa operasi mk mod n menghasilkan nilai yang relative acak hubungan terhadap

  

m . Berikut ini akan disampaikan pembentukan kunci privat dan kunci publik dengan

  RSA :

  1. Pilih dua bilangan prima p dan q secara acak. Bilangan ini harus cukup besar yaitu minimal 100 digit, dan keduanya memiliki panjang digit yang sama.

  2. Hitung n = pq. Untuk kemudian bilangan n disebut parameter sekuriti.

  3. Pilih bilangan e secara acak di mana e tidak memiliki factor pembagi yang sama dengan (p-1)(q-1) selain bilangan 1. Atau dengan kata lain bersifat relative prima.

  4. Hitung d sedemikian sehingga ed mod (p-1)(q-1) = 1. Dengan menggunakan sebuah algoritma yang disebut algoritma Euclid akan menghitung d sehingga,

  

d = e-1 mod ((p-1)(q-1))

  5. Bilangan n dan e kita sebarkan ke public. e ini adalah yang akan menjadi kunci public. d menjadi kunci privat. Sementara itu bilangan p dan q dihilangkan, dan dicegah agar tidak pernah sampai bocor ke public.

  Kini sudah didapatkan sebuah kunci publik dan kunci privat. Selanjutnya berikut ini adalah algoritma untuk menyandi dan menterjemahkan pesan :

  1. Untuk menyandi sebuah pesan m dengan menggunakan kunci public e, kita melakukan operasi me mod n, sementara untuk membuka pesan tersandi c dengan menggunakan kunci privat, kita lakukan cd mod n

  2. Untuk memudahkan enkripsi dan dekripsi maka pesan m dibagi menjadi beberapa blok yang kecil.

  Algoritma di atas adalah algoritma yang digunakan dalam penyandian RSA, maka hanya menggunakan operasi pemangkatan bilangan dan modulus bilangan, dalam melakukan proses enkripsi dan dekripsi sebuah pesan. Kesederhanaan inilah yang menjadikan RSA menjadi popular karena relatif mudah dimengerti. Adapun dari algoritma di atas dapat disederhanakan seperti pada tabel berikut.

Tabel 2.3 Enkripsi RSA

  Kunci Publik

  n hasil perkalian dua bilangan prima p dan q e relative prima (p-1)(q-1)

  Kunci Privat -1

  d = e mod ((p-1)(q-1))

  Enkripsi e

  c = m mod n

  Dekripsi d

  m = c mod n

2.6 Keamanan Algoritma RSA

  Sistem kriptografi yang baik adalah sistem kriptografi yang memang dirancang sedemikian rupa sehingga sulit untuk dipecahkan atau dibongkar. Secara teori sebuah metode kriptografi dengan sebuah kunci akan dapat dipecahkan dengan mencoba semua kemungkinan rangkaian kunci. Maka semakin panjang ukuran kunci maka semakin sulit untuk dipecahkan.

  Saat ini satu-satunya cara yang diketahui untuk mendobrak sandi RSA adalah dengan mencoba satu persatu berbagai kombinasi kunci dengan istilah . Karena itu, sebenarnya keamanan dari RSA banyak bergantung

  brute force attack dari ukuran kunci yang digunakan yaitu dalam bit.

  Selain itu keamanan RSA ini pun bergantung pada kesulitan dalam pemangkatan bilangan bulat dalam digit yang besar. Namun ada beberapa anggapan adalah mudah untuk membongkar sandi RSA. Sebagai contoh adalah dengan membangkitkan nilai n sehingga nantinya akan didapatkan nilai e dan d yang mungkin. Kemungkinan penyerangan terhadap RSA dilakukan pula dengan memperkirakan nilai (p-1)(q-1). Namun cara ini juga memberikan kemungkinan kecil untuk berhasil.

  Sejauh ini belum seorang pun yang berhasil menemukan lubang sekuriti pada RSA, tetapi tak seorang pun juga berhasil memberikan pembuktian ilmiah yang memuaskan dari keamanan teknik sandi ini. Padahal, pemakaiannya sudah sangat meluas dan mencakup sektor-sektor strategis seperti perbankan, pemerintahan, dan telekomunikasi.

  Sebetulnya tak satu pun sandi yang aman dari brute force attack. Persoalaannya lebih kepada seberapa ekonomisnya serangan tersebut bisa dilakukan.

  Perkecualiannya adalah sandi yang disebut One-time-pad yang dibuat oleh Mouborgne & Vernam, pada tahun 1917. Sandi ini adalah sandi ideal yang tidak mungkin dibongkar dengan cara apa pun. Sayangnya sandi ini tidak praktis karena membutuhkan kunci yang sama panjangnya dengan pesan yang disandi.

2.7 Cryptographic Protokol

  Suatu protokol adalah serangkaian langkah yang melibatkan dua pihak atau lebih dan dirancang untuk menyelesaikan suatu tugas. Dari definisi ini dapat diambil beberapa arti sebagai berikut : 1. protokol memiliki urutan dari awal hingga akhir 2. setiap langkah harus dilaksanakan secara bergiliran 3. suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai 4. diperlukan dua pihak atau lebih untuk melaksanakan protokol 5. protokol harus mencapai suatu hasil

  Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :

  

1. setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu

  mengenai protokol dan seluruh langkah yang akan dilaksanakan 2. setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya

  3. protokol tidak boleh menimbulkan kerancuan 4.

  protokol harus lengkap Protocol kriptografi 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.

2.7.1 Fungsi Protokol

  Dalam kehidupan kita sehari-hari terdapat banyak sekali protokol tidak resmi, misalnya saja dalam permainan kartu, pemungutan suara dalam pemilihan umum. Akan tetapi tidak ada seorang pun yang memikirkan mengenai protokol-protokol ini, protokol-protokol ini terus berkembang, semua orang mengetahui bagaimana menggunakannya.

  Saat ini, semakin banyak interaksi antar manusia dilakukan melalui jaringan komputer. Komputer ini tentu saja memerlukan suatu protokol formal agar dapat melakukan hal yang biasa dilakukan manusia tanpa berpikir. Bila kita berpindah dari satu daerah ke daerah lain dan mengetahui bahwa kartu pemilihan suaranya berbeda dengan yang biasa kita gunakan, kita dapat beradaptasi dengan mudah. Akan tetapi kemampuan ini belum dimiliki oleh komputer, sehingga diperlukan suatu protokol. Protokol digunakan untuk mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang digunakan. Protokol komunikasi adalah sama meskipun diimplementasikan pada PC atau VAX. Bila kita yakin bahwa kita memiliki protokol yang baik, kita dapat mengimplementasikannya dalam segala benda mulai dari telepon hingga pemanggang roti cerdas.

2.7.2 Penyerangan Terhadap Protokol

  Penyerangan kriptografi dapat ditujukan pada beberapa hal berikut : 1. algoritma kriptografi yang digunakan dalam protokol.

  2.

  teknik kriptografi yang digunakan untuk mengimplementasikan algoritma dan protokol.

  3. protokol itu sendiri.

  Seseorang dapat mencoba berbagai cara untuk menyerang suatu protokol. Mereka yang tidak terlibat dalam protokol dapat menyadap sebagian atau seluruh protokol. Tindakan ini disebut penyerangan pasif, karena si penyerang tidak mempengaruhi atau mengubah protokol, ia hanya mengamati protokol dan berusaha untuk memperoleh informasi.

  Selain itu, seorang penyerang dapat berusaha untuk mengubah protokol demi keuntungannya sendiri. Ia dapat mengirimkan pesan dalam protokol, menghapus pesan, atau bahkan mengubah informasi yang ada di dalam suatu komputer. Tindakan- tindakan ini disebut sebagai penyerangan aktif, karena ia membutuhkan suatu campur tangan aktif.

  Seorang penyerang tidaklah hanya berasal dari lingkungan luar protokol, namun ia mungkin juga berasal dari dalam protokol itu sendiri, ia dapat merupakan salah satu pihak yang terlibat dalam protokol. Tipe penyerang semacam ini disebut sebagai cheater. Passive cheater mengikuti protokol, tetapi berusaha memperoleh informasi lebih banyak daripada yang diperbolehkan protokol bagi dirinya. Active cheater mengubah protokol dalam usahanya untuk berbuat curang.

  Usaha untuk menjaga keamanan protokol akan semakin sulit apabila pihak- pihak yang terlibat umumnya merupakan active cheater, oleh karena itu suatu protokol yang baik harus mampu atau pun harus aman terhadap kemungkinan passive cheating.

2.7.3 Berbagai Macam Basic Cryptanalytic Attacks

  Tujuan cryptanalytic attack adalah untuk mengetahui beberapa plaintext yang sesuai dengan ciphertext yang ada dan berusaha menentukan kunci yang memetakan satu dengan yang lainnya. Plaintext ini dapat diketahui karena ia merupakan standar atau karena pendugaan. Jika suatu teks diduga berada di dalam suatu pesan, posisinya mungkin tidak diketahui, tetapi suatu pesan lazimnya cukup pendek sehingga memungkinkan cryptanalyst menduga plaintext yang diketahui dalam setiap posisi yang mungkin dan melakukan penyerangan pada setiap kasus secara paralel.

  Suatu algoritma enkripsi yang kuat tidak hanya mampu bertahan terhadap serangan plaintext yang dikenal tetapi juga mampu bertahan terhadap adaptive chosen plaintext. Dalam penyerangan ini, cryptanalyst berkesempatan memilih plaintext yang digunakan dan dapat melakukannya secara berulang kali, memilih plaintext untuk tahap N+1 setelah menganalisis hasil tahap N.

  Yang dimaksud cryptanalytic attacks adalah usaha-usaha yang dilakukan seseorang untuk memperoleh informasi ataupun data yang telah dienkripsi. Secara ringkas terdapat tujuh macam basic cryptanalytic attacks berdasarkan tingkat kesulitannya bagi penyerang, dimulai dari yang paling sulit adalah :

  

1. Ciphertext-only attack. Dalam penyerangan ini, seorang cryptanalyst memiliki

  ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi menggunakan algoritma yang sama.

  

2. Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst memiliki akses

  tidak hanya ke ciphertext sejumlah pesan, namun ia juga memiliki plaintext pesan- pesan tersebut.

  

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

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

  5. Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih ciphertext yang berbeda untuk didekripsi dan memiliki akses atas plaintext yang didekripsi.

  

6. Chosen-key attack. Cryptanalyst pada tipe penyerangan ini memiliki pengetahuan

tentang hubungan antara kunci-kunci yang berbeda.

  7. Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst mengancam, memeras, atau bahkan memaksa seseorang hingga mereka memberikan kuncinya.

2.7.4 Analisis Berbagai Tipe Penyerangan Secara Matematis

  Suatu penyerangan pasif atas cryptosystem adalah semua metode untuk mengungkapkan informasi tentang plaintext dan ciphertextnya dengan tanpa mengetahui kunci. Secara matematis, diberikan fungsi F, G, dan H yang terdiri dari n variabel. Diberikan sistem enkripsi E. Diberikan suatu distribusi plaintext dan kunci.

  Suatu penyerangan atas E dengan menggunakan G dengan mengasumsikan F membagi H dengan probabilitas p adalah suatu algoritma A dengan sepasang input f,g dan satu buah output h sedemikian hingga terdapat probabilitas p atas h = H(P , …,

  1 P n ), jika kita memiliki f = F(P 1 , …, P n ) dan g = G(E K (P 1 ), …, EK(P n )). Perlu

  diperhatikan bahwa probabilitas ini tergantung pada distribusi vektor-vektor (K,P ,…,P ).

  1 n

  Penyerangan akan merupakan suatu trivial bila terdapat probabilitas paling sedikir p untuk h = H(P

  1 , …, P n ) jika f = F (P 1 ,…,P n ) dan g = G (C 1 ,…,C n ). Di sini

  C

  

1 ,…,C n terletak pada ciphertext yang mungkin, dan tidak memiliki hubungan tertentu

  dengan P

  1 ,…,P n . Dengan kata lain, suatu serangan akan merupakan trivial bila ia tidak

  benar-benar menggunakan enkripsi E K (P 1 ),…,E K (P n ).

  Dengan merumuskan penyerangan secara matematis, kita dapat secara tepat memformulasikan dan bahkan membuktikan pernyataan bahwa suatu cryptosystem itu kuat. Kita katakan, sebagai contoh, bahwa suatu cryptosystem adalah aman terhadap seluruh penyerangan pasif jika sembarang penyerangan nontrivial terhadapnya tidak praktis. Jika kita dapat membuktikan pernyataan ini maka kita akan memiliki keyakinan bahwa cryptosystem kita akan bertahan terhadap seluruh teknik cryptanalytic pasif. Jika kita dapat mereduksi pernyataan ini hingga pada beberapa masalah yang tidak terpecahkan maka kita masih tetap memiliki keyakinan bahwa cryptosystem kita tidak mudah dibuka.

2.7.5 Ciphertext-only attack

  Dengan menggunakan notasi di atas, suatu ciphertext-only attack adalah suatu penyerangan dengan F adalah konstanta. Diberikan hanya beberapa informasi G(E K (P

  1 ),..E K (P n )) tentang n ciphertext, penyerangan harus memiliki kesempatan

  menghasilkan beberapa informasi H(P

  1 ,…,P n ) tentang plaintext. Penyerangan akan merupakan suatu trivial bila ia hanya menghasilkan H(P

  1 ,…,P n ) ketika diberikan

  G(C

  1 ,…,C n ) untuk C 1 ,…,C n acak.

  Sebagai contoh, misalkan G ( C ) = C dan misalkan H(P) adalah bit pertama P. Kita dapat secara mudah menulis suatu penyerangan, pendugaan, yang menduga bahwa H(P) adalah 1. Penyerangan ini adalah trivial karena tidak menggunakan ciphertext, probabilitas keberhasilannya adalah 50 %. Di lain pihak, terdapat penyerangan atas RSA yang memproduksi satu bit informasi tentang P, dengan probabilitas keberhasilan 100 %, menggunakan C. Jika diberikan suatu C acak maka tingkat kesuksesan turun menjadi 50%. Inilah yang disebut penyerangan nontrivial.

  2.7.6 Known-Plaintext Attack

  Penyerangan known-plaintext klasik memiliki F(P

  1 ,P 2 ) = P1, G(C 1 ,C 2 ) = (C 1 ,C 2 ), dan

  H(P ,P ) tergantung hanya pada P . Dengan kata lain, bila diberikan dua ciphertext C

  1

  2

  2

  1

  dan C

  2 dan satu dekripsi P 1 , penyerangan known-plaintext seharusnya menghasilkan

  informasi tentang dekripsi P 2 .

  2.7.7 Brute-Force Attack

  Umpamakan penyerangan known-plaintext berikut. Kita diberikan sejumlah plaintext P

  1 ,…,P n-1 dan ciphertext C 1 ,…,C n-1 . Kita juga diberikan sebuah ciphertext Cn. Kita

  jalankan seluruh kunci K. Bila kita temukan K sedemikian sehingga E K (P

  1 ) = C i untuk setiap I<n, kita cetak D (C ). K n

  Jika n cukup besar sehingga hanya satu kunci yang bekerja, penyerangan ini akan sukses untuk seluruh input yang valid pada setiap waktu, sementara ia akan menghasilkan hasil yang tepat hanya sekali untuk input acak. Penyerangan ini adalah nontrivial, masalahnya ia sangat lambat bila terdapat banyak kemungkinan kunci