Kriptografi <p style="text-align: justify;"><b><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Pendahuluan</span></span></b> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Kemajuan di bidang telekomunikasi dan komputer telah memungkinkan seseorang untuk melakukan transaksi bisnis secara cashless, selain itu ia juga dapat mengirimkan informasi kepada temannya secara on-line.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Kegiatan-kegiatan tersebut tentu saja akan menimbulkan resiko bilamana informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang tidak berhak (unauthorized persons). Misalnya, informasi mengenai nomor kartu kredit anda, bila informasi ini jatuh kepada orang-orang yang jahat maka anda harus bersiap-siap terhadap melonjaknya tagihan kartu kredit anda.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Sebelum tahun 1970-an, teknologi kriptografi digunakan terbatas hanya untuk tujuan militer dan diplomatik. Akan tetapi kemudian bidang bisnis dan perorangan mulai menyadari pentingnya melindungi informasi berharga.</span></span></p><p style="text-align: justify;"><b><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Pengertian Dasar</span></span></b> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Suatu pesan yang tidak disandikan disebut sebagai <i>plaintext </i>ataupun dapat disebut juga sebagai <i>cleartext</i>. Proses yang dilakukan untuk mengubah plaintext ke dalam ciphertext disebut <i>encryption </i>atau <i>encipherment</i>. Sedangkan proses untuk mengubah ciphertext kembali ke plaintext disebut <i>decryption </i>atau <i>decipherment</i>.</span></span></p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;"><i>Cryptography </i>adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh <i>cryptographer</i>. Sedang, <i>cryptanalysis </i>adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut <i>cryptanalyst</i>.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;"><i>Cryptographic system </i>atau <i>cryptosystem </i>adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan.</span></span> </p><div style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :</span></span></div><p> </p><center> <p><span style="font-family:Courier New,Courier;"><span style="font-size:-1;">EK (M) = C (Proses Enkripsi)</span></span><br /><span style="font-family:Courier New,Courier;"><span style="font-size:-1;">DK (C) = M (Proses Dekripsi)</span></span></p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan.</span></span></p><p style="text-align: justify;"><b><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Cryptographic system (cryptosystem)</span></span></b> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Suatu cryptosystem terdiri dari sebuah algoritma, seluruh kemungkinan plaintext, ciphertext dan kunci-kunci. Secara umum cryptosystem dapat digolongkan menjadi dua buah, yaitu :</span></span> </p><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">1. Symmetric Cryptosystem</span></span></u> </p><div style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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 <i>secret-key ciphersystem</i>. Jumlah kunci yang dibutuhkan umumnya adalah :</span></span></div><p> </p><center> <p><span style="font-size:-1;"><span style="font-family:Arial,Helvetica;"><sub>n</sub>C</span><sub><span>2</span></sub><span style="font-family:Arial,Helvetica;"> = n . (n-1)<br /></span></span> --------<br /><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;"> 2</span></span></p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">dengan n menyatakan banyaknya pengguna.</span></span><br /><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Contoh dari sistem ini adalah Data Encryption Standard (DES), Blowfish, IDEA.</span></span> </p><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">2. Assymmetric Cryptosystem</span></span></u> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci yang disebut kunci publik (<i>public key</i>) dapat dipublikasikan, sedang kunci yang lain yang disebut kunci privat (<i>private key</i>) harus dirahasiakan. Proses menggunakan sistem ini dapat diterangkan secara sederhana sebagai berikut : bila A ingin mengirimkan pesan kepada B, A dapat menyandikan pesannya dengan menggunakan kunci publik B, dan bila B ingin membaca surat tersebut, ia perlu mendekripsikan surat itu dengan kunci privatnya. Dengan demikian kedua belah pihak dapat menjamin asal surat serta keaslian surat tersebut, karena adanya mekanisme ini. Contoh sistem ini antara lain RSA Scheme dan Merkle-Hellman Scheme.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Setiap cryptosytem yang baik harus memiliki karakteristik sebagai berikut :</span></span> </p><ul style="text-align: justify;"><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak dalam seluruh tes statistik yang dilakukan terhadapnya.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Cryptosystem yang baik mampu menahan seluruh serangan yang telah dikenal sebelumnya</span></span></li></ul><div style="text-align: justify;"> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Namun demikian perlu diperhatikan bahwa bila suatu cryptosystem berhasil memenuhi seluruh karateristik di atas belum tentu ia merupakan sistem yang baik. Banyak cryptosystem lemah yang terlihat baik pada awalnya. Kadang kala untuk menunjukkan bahwa suatu cryptosystem kuat atau baik dapat dilakukan dengan menggunakan pembuktian matematika.</span></span> </div><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Hingga saat ini masih banyak orang yang menggunakan cryptosystem yang relatif mudah dibuka, alasannya adalah mereka tidak mengetahui sistem lain yang lebih baik serta kadang kala terdapat motivasi yang kurang untuk menginvestasikan seluruh usaha yang diperlukan untuk membuka suatu sistem.</span></span></p><p style="text-align: justify;"><b><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Cryptographic Protokol</span></span></b> </p><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Pengertian</span></span></u> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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 :</span></span> </p><ul style="text-align: justify;"><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">protokol memiliki urutan dari awal hingga akhir;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">setiap langkah harus dilaksanakan secara bergiliran;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">diperlukan dua pihak atau lebih untuk melaksanakan protokol;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">protokol harus mencapai suatu hasil;</span></span></li></ul><div style="text-align: justify;"> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :</span></span> </div><ul style="text-align: justify;"><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu mengenai protokol dan seluruh langkah yang akan dilaksanakan;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">protokol tidak boleh menimbulkan kerancuan;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">protokol harus lengkap;</span></span></li></ul><div style="text-align: justify;"> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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 <i>eavesdropping </i>dan <i>cheating</i>.</span></span> </div><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Fungsi Protokol</span></span></u> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </p><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Penyerangan terhadap protokol</span></span></u> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Penyerangan cryptographic dapat ditujukan pada beberapa hal berikut :</span></span> </p><ul style="text-align: justify;"><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">algoritma cryptographic yang digunakan dalam protokol;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">teknik cryptographic yang digunakan untuk mengimplementasikan algoritma dan protokol;</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">protokol itu sendiri;</span></span></li></ul><div style="text-align: justify;"> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </div><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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 <i>cheater</i>. <i>Passive cheater </i>mengikuti protokol, tetapi berusaha memperoleh informasi lebih banyak daripada yang diperbolehkan protokol bagi dirinya. <i>Active cheater </i>mengubah protokol dalam usahanya untuk berbuat curang.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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 <i>passive cheating</i>.</span></span> </p><p style="text-align: justify;"><b><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Berbagai macam basic cryptanalytic attacks</span></span></b> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Tujuan <i>cryptanalytic attack </i>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.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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 :</span></span> </p><ul style="text-align: justify;"><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Ciphertext-only attack. Dalam penyerangan ini, seorang cryptanalyst memiliki ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi menggunakan algoritma yang sama.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst memiliki akses tidak hanya ke ciphertext sejumlah pesan, namun ia juga memiliki plaintext pesan-pesan tersebut.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih ciphertext yang berbeda untuk didekripsi dan memiliki akses atas plaintext yang didekripsi.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Chosen-key attack. Cryptanalyst pada tipe penyerangan ini memiliki pengetahuan tentang hubungan antara kunci-kunci yang berbeda.</span></span></li><li> <span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst mengancam, memeras, atau bahkan memaksa seseorang hingga mereka memberikan kuncinya.</span></span></li></ul><div style="text-align: justify;"> </div><p style="text-align: justify;"><br /><b><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Analisis berbagai tipe penyerangan secara matematis</span></span></b> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Suatu penyerangan pasif atas cryptosystem adalah semua metode untuk mengungkapkan informasi tentang plaintext dan ciphertextnya dengan tanpa mengetahui kunci. Secara matematis :</span></span> </p><p style="text-align: justify;"><span style="font-family:Courier New,Courier;"><span style="font-size:-1;">Diberikan fungsi F, G, dan H yang terdiri dari n variabel.</span></span><br /><span style="font-family:Courier New,Courier;"><span style="font-size:-1;">Diberikan sistem enkripsi E.</span></span><br /><span style="font-family:Courier New,Courier;"><span style="font-size:-1;">Diberikan suatu distribusi plaintext dan kunci.</span></span> </p><p style="text-align: justify;"><span style="font-size:-1;"><span style="font-family:Arial,Helvetica;">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 </span><span style="font-family:Courier New,Courier;">h = H(P<sub>1</sub>, …, P<sub>n</sub>)</span><span style="font-family:Arial,Helvetica;">, jika kita memiliki </span><span style="font-family:Courier New,Courier;">f = F(P<sub>1</sub>, …, P<sub>n</sub>)</span><span style="font-family:Arial,Helvetica;"> dan </span><span style="font-family:Courier New,Courier;">g = G(E<sub>K</sub>(P<sub>1</sub>), …, EK(P<sub>n</sub>))</span><span style="font-family:Arial,Helvetica;">. Perlu diperhatikan bahwa probabilitas ini tergantung pada distribusi vektor-vektor </span><span style="font-family:Courier New,Courier;">(K,P<sub>1</sub>,…,P<sub>n</sub>)</span><span style="font-family:Arial,Helvetica;">.</span></span> </p><p style="text-align: justify;"><span style="font-size:-1;"><span style="font-family:Arial,Helvetica;">Penyerangan akan merupakan suatu trivial bila terdapat probabilitas paling sedikir p untuk </span><span style="font-family:Courier New,Courier;">h = H(P<sub>1</sub>, …, P<sub>n</sub>)</span><span style="font-family:Arial,Helvetica;"> jika</span><span style="font-family:Courier New,Courier;"> f = F (P<sub>1</sub>,…,P<sub>n</sub>) </span><span style="font-family:Arial,Helvetica;">dan </span><span style="font-family:Courier New,Courier;">g = G (C<sub>1</sub>,…,C<sub>n</sub>)</span><span style="font-family:Arial,Helvetica;">. Di sini C<sub>1</sub>,…,C<sub>n</sub> terletak pada ciphertext yang mungkin, dan tidak memiliki hubungan tertentu dengan </span><span style="font-family:Courier New,Courier;">P<sub>1</sub>,…,P<sub>n</sub></span><span style="font-family:Arial,Helvetica;">. Dengan kata lain, suatu serangan akan merupakan trivial bila ia tidak benar-benar menggunakan enkripsi </span><span style="font-family:Courier New,Courier;">E<sub>K</sub>(P<sub>1</sub>),…,E<sub>K</sub>(P<sub>n</sub>)</span><span style="font-family:Arial,Helvetica;">.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </p><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Ciphertext-only attack</span></span></u> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Dengan menggunakan notasi di atas, suatu ciphertext-only attack adalah suatu penyerangan dengan F adalah konstanta. Diberikan hanya beberapa informasi G(E<sub>K</sub>(P<sub>1</sub>),..E<sub>K</sub>(P<sub>n</sub>)) tentang n ciphertext, penyerangan harus memiliki kesempatan menghasilkan beberapa informasi H(P<sub>1</sub>,…,P<sub>n</sub>) tentang plaintext. Penyerangan akan merupakan suatu trivial bila ia hanya menghasilkan H(P<sub>1</sub>,…,P<sub>n</sub>) ketika diberikan G(C<sub>1</sub>,…,C<sub>n</sub>) untuk C<sub>1</sub>,…,C<sub>n</sub> acak.</span></span> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span> </p><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Known-plaintext attack</span></span></u> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Penyerangan known-plaintext klasik memiliki F(P<sub>1</sub>,P<sub>2</sub>) = P1, G(C<sub>1</sub>,C<sub>2</sub>) = (C<sub>1</sub>,C<sub>2</sub>), dan H(P<sub>1</sub>,P<sub>2</sub>) tergantung hanya pada P<sub>2</sub>. Dengan kata lain, bila diberikan dua ciphertext C<sub>1</sub> dan C<sub>2</sub> dan satu dekripsi P<sub>1</sub>, penyerangan known-plaintext seharusnya menghasilkan informasi tentang dekripsi P<sub>2</sub>.</span></span> </p><p style="text-align: justify;"><u><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Brute-force attack</span></span></u> </p><p style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">Umpamakan penyerangan known-plaintext berikut. Kita diberikan sejumlah plaintext P<sub>1</sub>,…,P<sub>n-1</sub> dan ciphertext C<sub>1</sub>,…,C<sub>n-1</sub>. Kita juga diberikan sebuah ciphertext Cn. Kita jalankan seluruh kunci K. Bila kita temukan K sedemikian sehingga E<sub>K</sub>(P<sub>1</sub>) = C<sub>i</sub> untuk setiap I<n,>K(C<sub>n</sub>).</n,></span></span> </p><div style="text-align: justify;"><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">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.</span></span></div><p> </p><p> </p></center><p> </p></center><p><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;">source:</span></span></p><p><span style="font-family:Arial,Helvetica;"><span style="font-size:-1;"><a href="http://tedi.heriyanto.net/papers/p_kripto.html">tedi.heryanto.net</a><br /></span></span> </p><p> </p> KriptografiPendahuluan Kemajuan di bidang telekomunikasi dan komputer telah memungkinkan seseorang untuk melakukan transaksi bisnis secara cashless, selain itu ia juga dapat mengirimkan informasi kepada temannya… Baca selengkapnya » 23 Nov 2008