4 Kriptologi
Berikut adalah beberapa akar kata Yunani:
- kryptos,
-
rahasia, tersembunyi
- logos,
-
kata, kajian, tuturan
- graph,
-
menulis, tertulis
Dari akar-akar kata ini (dan beberapa akar lainnya), bahasa Inggris membentuk kata-kata yang kemudian diserap ke dalam bahasa Indonesia sebagai berikut.
- kriptosistem
-
sekumpulan algoritme untuk melindungi rahasia
- kriptografi
-
pekerjaan untuk membuat kriptosistem
- kriptanalisis
-
pekerjaan untuk menembus perlindungan suatu
kriptosistem
- kriptologi
-
gabungan kriptografi dan kriptanalisis,
yang sering disingkat menjadi kripto.
Perhatikan bahwa kata kriptografi sering (tetapi kurang tepat!) digunakan sebagai sinekdoke untuk kriptologi. Hal ini mirip dengan penyalahgunaan kata peretas (hacker) yang juga dipahami secara luas. Kita akan berusaha menggunakan istilah-istilah tersebut dengan lebih cermat.
Dengan pemahaman itu, kita memulai bab ini dengan sedikit kriptologi dasar. Teori bilangan hanya akan muncul sedikit, tetapi kita akan memperkenalkan sejumlah istilah serta contoh sederhana kriptografi dan kriptanalisis yang bersesuaian. Penekanannya ada pada sistem-sistem bersejarah yang sudah tidak layak digunakan pada zaman modern. Bab-bab selanjutnya akan segera beralih ke teknik kripto modern yang berlandaskan teori bilangan.
4.1 Sedikit Sejarah Spekulatif
Mungkin suatu bentuk tipu daya sudah ada sebelum bahasa. Banyak hewan peliharaan tentu pernah berpura-pura tidak bersalah meskipun bukti keterlibatannya dalam pencurian kudapan sangat jelas. Bahkan ahli apiologi mungkin tidak tahu apakah sejumlah lebah malas mengarang cerita tentang perjalanan jauh menuju hamparan bunga baru ketika sang ratu meminta pertanggungjawaban.
Namun, di antara Homo sapiens, kebohongan mungkin sudah muncul segera setelah bahasa muncul. Tentu saja, ketika dua orang bertatap muka, kedua pihak masih mempunyai kendali tertentu: pendengar dapat mencoba menilai apakah pembicara dapat dipercaya; keduanya dapat menilai sendiri identitas lawan bicaranya lalu memilih apa yang ingin dibagikan; dan kata-kata pembicara bergerak langsung dari bibirnya ke telinga pendengar tanpa dapat diubah maknanya di tengah jalan (jika kita mengabaikan kebisingan sekitar dan sebagainya).
Banyak hal berubah setelah tulisan ditemukan lebih dari 5.000 tahun yang lalu. Kata-kata yang dibekukan dalam bentuk fisik, beserta gagasan yang diwakilinya, dapat diambil dan dibagikan kepada berbagai pihak selain pihak yang semula hendak dihubungi penulis. Selain itu, jika penulis tidak dapat menyerahkan karyanya langsung kepada pembaca yang dituju dan tulisan tersebut harus beredar sendiri untuk sementara waktu, kedua pihak tidak lagi dapat memastikan bahwa lawan komunikasinya benar-benar memiliki identitas yang dinyatakan dalam tulisan, ataupun bahwa simbol-simbol tertulis itu tidak berubah sejak dituliskan oleh pihak lainnya.
Mari kita merumuskan beberapa persoalan keamanan informasi (sebutannya sekarang) dalam konteks sebuah pesan yang hendak dikirim oleh seseorang bernama Alice kepada seseorang bernama Bob. Dalam drama kecil kita, lingkungan yang mungkin mengganggu dan terlalu mencampuri urusan orang lain diperankan oleh Eve. Secara tradisi, kita langsung memilih tokoh dengan nama yang diawali huruf E untuk melambangkan environment (lingkungan) sekaligus seseorang yang mungkin menjadi eavesdropper (penyadap)1.
Berikut adalah beberapa istilah dasar.
Definisi 4.1.
Kerahasiaan berarti hanya penerima yang dituju yang dapat memperoleh isi pesan. Alice ingin hanya Bob yang menerima pesannya, bukan Eve, baik Eve menguping dari bawah cucuran atap maupun mencegat pesan ketika pesan tersebut bergerak dalam suatu bentuk dari Alice menuju Bob.
Definisi 4.2.
Integritas pesan berarti penerima dapat memastikan bahwa pesan tersebut tidak diubah. Bob ingin mengetahui bahwa yang diterimanya adalah apa yang ditulis Alice, bukan hasil perubahan yang dikehendaki Eve yang usil.
Definisi 4.3.
Autentikasi pengirim berarti penerima dapat menentukan identitas pengirim dari pesan tersebut. Bob ingin memastikan bahwa pesan itu benar-benar berasal dari Alice.
Definisi 4.4.
Nirpenyangkalan pengirim berarti pengirim tidak dapat menyangkal bahwa ia telah mengirim pesan tersebut. Bob ingin dapat menuntut Alice menepati janji yang dinyatakannya.
Perhatikan bahwa Alice dan Bob sebenarnya dapat merupakan orang yang sama, yang mengirim pesan dari dirinya pada masa lalu kepada dirinya pada masa depan. Misalnya, seseorang mungkin ingin menyimpan catatan yang harus tetap rahasia dan dapat diandalkan integritasnya, bahkan jika tempat penyimpanan catatan tersebut dibobol.
Salah satu skema paling awal yang berusaha mencapai kerahasiaan mungkin digunakan sekitar abad ke-7 SM di Yunani. Para panglima militer ingin menerima laporan dari prajurit yang berada jauh dan mengirimkan perintah kepada mereka sedemikian rupa sehingga, sekalipun pembawa pesan tertangkap, pesan yang dibawanya tidak dapat dibaca musuh. Mereka menggunakan alat bernama scytale (dalam pelafalan Inggris, huruf “c” dibaca keras dan katanya berima dengan “Italy”). Alat ini berupa tongkat silindris—mungkin batang tombak—( berarti tongkat dalam bahasa Yunani Kuno), yang dililit secara spiral dengan selembar perkamen panjang.
Pesan kemudian dapat ditulis dalam baris-baris sejajar sepanjang scytale. Ketika lembaran itu dilepas, semua hurufnya menjadi teracak dan pesannya tidak dapat dibaca.
Di tempat tujuan, dengan asumsi penerima juga mempunyai scytale, pesan akan muncul kembali seolah-olah secara ajaib ketika lembaran itu dililitkan secara spiral dan dibaca memanjang.
Sebelum melanjutkan, kita memerlukan beberapa istilah teknis lagi.
Definisi 4.5.
Pesan yang hendak dikirim Alice kepada Bob dalam bentuk aslinya (dan bentuk akhir yang dipulihkan) disebut plainteks atau teks terang.
Definisi 4.6.
Algoritme yang digunakan Alice untuk mengubah (mengaburkan) plainteks menjadi bentuk yang tetap rahasia sekalipun diamati Eve selama pengiriman disebut cipher atau algoritme sandi. Kita juga mengatakan bahwa Alice mengenkripsi pesan (plainteks) tersebut.
Definisi 4.7.
Setelah dienkripsi, pesan tersebut disebut cipherteks atau teks sandi.
Definisi 4.8.
Ketika menerima cipherteks, Bob menerapkan algoritme lain untuk mendekripsinya dan memulihkan plainteks.
Secara grafis:
| Istilah dasar kripto: | ||
|---|---|---|
| Alice | pada jaringan publik | Bob |
| plainteks/teks terang | ||
| pesan | ||
| mengenkripsi menjadi | ||
| mengirim | cipherteks | menerima |
| mendekripsi untuk | ||
| memulihkan plainteks | ||
Andaikan seorang mata-mata melihat para pengintai di lapangan melilitkan lembaran perkamen pada tombak dan menulis sepanjang tombak itu. Artinya, Eve mengetahui algoritme enkripsinya. Meskipun algoritmenya diketahui, kerahasiaan masih mungkin dipertahankan.
Definisi 4.9.
Informasi tambahan—sebagian digunakan dalam enkripsi dan sebagian diperlukan agar dekripsi berhasil—disebut kunci.
Dalam enkripsi menggunakan scytale, diameter scytale merupakan kuncinya. Bahkan, ada dugaan bahwa scytale juga berfungsi sebagai bentuk autentikasi sederhana: hanya Alice yang mempunyai scytale yang cocok dengan milik Bob. Jadi, jika Bob dapat membaca rangkaian huruf yang bermakna di sepanjang scytale miliknya, ia mengetahui bahwa Alice-lah yang mengirimkannya.
Bahkan dengan kunci, kelemahan kriptosistem ini cukup jelas. Dan Athena memang kalah dalam Perang Peloponnesos.
Pengalaman kriptologi selama berabad-abad menunjukkan bahwa algoritme suatu kriptosistem justru sebaiknya dibuka kepada publik, sedangkan hanya kunci bagi saluran komunikasi tertentu (misalnya antara Alice dan Bob) yang dirahasiakan. Ada banyak alasan untuk pendekatan ini. Alasan utamanya barangkali adalah bahwa pembuat kriptosistem tidak pernah dapat memastikan bahwa ia telah memikirkan semua metode kriptanalisis yang mungkin digunakan untuk menyerang sistemnya. Karena itu, lebih baik pembuat sistem membiarkan komunitas kripto seluas-luasnya menguji sistem tersebut, dan hanya sistem yang telah bertahan terhadap serangan semacam itu yang patut digunakan. Bagaimanapun, inilah dasar metode ilmiah: ilmuwan menerbitkan seluruh rincian eksperimennya agar orang lain dapat mencobanya, memberikan verifikasi independen, atau menemukan sesuatu yang perlu dikritik.
Gagasan bahwa keamanan kriptosistem harus bertumpu pada kerahasiaan kunci, bukan kerahasiaan algoritme, dikenal sebagai Prinsip Kerckhoffs . Nama itu merujuk pada gagasan perancangan kriptosistem yang ditulis Auguste Kerckhoffs pada tahun 1883 dalam karya dua bagiannya, La Cryptographie militaire. Prinsip ini berlawanan dengan kriptosistem yang dianggap sangat lemah karena bergantung pada harapan bahwa algoritmenya tidak akan pernah diketahui. Sistem semacam itu bertumpu pada paradigma keamanan melalui ketertutupan (security through obscurity) yang tidak bijaksana.
Latihan untuk §4.1
Latihan 4.1. Andaikan, untuk suatu , plainteks yang hendak dikirim Alice terdiri atas simbol-simbol . Andaikan diameter scytale yang digunakannya memungkinkan huruf ditulis pada setiap putaran spiral perkamen ketika perkamen itu dililitkan pada scytale.
Tuliskan satu atau beberapa rumus yang mendeskripsikan huruf-huruf dalam cipherteks. Anda harus mengandaikan dan, jika diinginkan, boleh mengandaikan hubungan tertentu yang berguna, seperti .
Latihan 4.2. Sekalipun kriptosistem scytale kuat, penggunaannya untuk autentikasi mungkin bermasalah. Jelaskan bagaimana autentikasi dapat gagal bergantung pada pesan yang dikirim; berikan satu atau dua contoh pesan yang “buruk” untuk autentikasi.
Latihan 4.3. Kriptosistem scytale tampak lemah. Jelaskan bagaimana Anda akan melakukan kriptanalisis terhadapnya.
4.2 Cipher Caesar dan Varian-Variannya
Sistem lain yang berasal dari zaman kuno konon digunakan oleh Julius Caesar.
Definisi 4.10.
Alice mengambil pesannya, menghapus semua spasi dan tanda baca, lalu menyamakan kapitalisasi seluruh hurufnya (misalnya menjadi huruf kapital). Kemudian ia menggeser setiap huruf sejauh posisi ke depan dalam alfabet, kembali dari Z ke A jika perlu. Di sini adalah bilangan tetap yang hanya diketahui Alice dan Bob serta disebut kunci.
Untuk mendekripsi, Bob cukup menggeser setiap huruf sejauh posisi ke belakang dalam alfabet, kembali dari A ke Z jika perlu. Dengan kata lain, Bob mengenkripsi cipherteks menggunakan kunci untuk memperoleh plainteks.
Sistem ini disebut kriptosistem Caesar.
Julius Caesar tampaknya biasa menggunakan nilai kunci . Octavian, cucu dari saudari Julius Caesar, kemudian menjadi Kaisar Augustus dan suka menggunakan .
Jika kita menggunakan apa yang disebut alfabet Latin (meskipun alfabet ini bukan alfabet yang digunakan di Romawi kuno) dengan 26 huruf, ada satu nilai kunci yang sangat menarik: 13. Dengan nilai itu, enkripsi dan dekripsi merupakan transformasi yang persis sama. Pada zaman modern, transformasi ini disebut ROT13, dan pernah memainkan peran kecil dalam sejarah modern Internet. Misalnya, kiriman di ruang obrolan dan papan buletin awal kadang-kadang memuat bagian yang tidak boleh langsung terlihat oleh siapa saja yang membaca kiriman, tetapi tetap dapat dibuka oleh pembaca yang bersungguh-sungguh (seperti bocoran alur dalam ulasan gim, buku, atau film baru yang populer). Bagian semacam itu sering disertakan setelah terlebih dahulu diproses dengan ROT13.
Walaupun sebenarnya sama sekali tidak aman, ROT13 bahkan pernah digunakan untuk tujuan keamanan yang sesungguhnya dalam beberapa produk komersial, termasuk pada bagian tertentu dari beberapa versi sistem operasi Windows.
Cipher Caesar sudah berhasil dipecahkan sepenuhnya (dengan beberapa cara; lihat §4.3 di bawah) sebelum tahun 1000 M, tetapi salah satu turunannya dikembangkan pada akhir Abad Pertengahan dan dianggap sebagai teknologi kriptologi termaju hingga awal zaman modern.
Definisi 4.11.
Sekali lagi, Alice mengambil pesannya, menghapus semua spasi dan tanda baca, lalu menyamakan kapitalisasi seluruh hurufnya (misalnya menjadi huruf kapital). Kali ini, kunci yang dimiliki bersama oleh Alice dan Bob merupakan tupel-, untuk , yang terdiri atas bilangan bulat .
Untuk mengenkripsi, Alice menelusuri pesan plainteks dan barisan kuncinya bersama-sama, satu huruf demi satu huruf. Setiap huruf plainteks digeser ke depan (kembali dari Z ke A jika perlu) sebanyak bilangan yang ditentukan oleh komponen kunci yang bersesuaian. Jika komponen kuncinya habis, Alice kembali ke awal barisan kunci.
Untuk mendekripsi, Bob menggeser setiap huruf ke belakang sesuai komponen kunci yang bersesuaian, kembali dari A ke Z jika perlu. Dengan kata lain, Bob mengenkripsi menggunakan kunci .
Sistem ini disebut kriptosistem Vigenère.
Secara tradisional, kunci Vigenère berupa sebuah kata yang dituliskan, dihafalkan, dan dimiliki bersama oleh Alice dan Bob. Ketika mengenkripsi atau mendekripsi, huruf-huruf kata kunci itu “ditambahkan” pada huruf-huruf pesan seperti dijelaskan di atas, dengan konvensi , , dan seterusnya.
Perhatikan bahwa Vigenère dengan panjang kunci pada dasarnya merupakan cipher Caesar yang berjalan paralel. Bahkan, jika , keduanya merupakan kriptosistem yang persis sama. Karena itu, Vigenère pada dasarnya kali lebih sulit dipecahkan daripada Caesar; suku “” muncul karena Eve bahkan tidak mengetahui . Meskipun demikian, setelah beberapa ratus tahun dianggap tidak dapat dipecahkan dan digunakan sebagai cipher diplomatik utama di istana-istana Eropa, metode untuk memecahkan Vigenère akhirnya dikembangkan.
Sebagai varian terakhir cipher Vigenère, andaikan kita bergerak ke arah yang berlawanan dari kasus ekstrem dan memilih sepanjang mungkin.
Definisi 4.12.
Pad sekali pakai (one-time pad) adalah kriptosistem Vigenère yang kuncinya sama panjang dengan pesan, dipilih secara acak, dan tidak pernah digunakan kembali. [Kunci dalam kriptosistem ini juga disebut pad sekali pakai3.]
(Pad sekali pakai kadang-kadang disebut Cipher Vernam . Sebutan ini tidak tepat jika dilihat dari sejarah intelektual kriptosistem yang sebenarnya.)
Barisan kunci yang baik sangat penting dalam kriptosistem pad sekali pakai. Kabar baiknya, dapat dibuktikan bahwa jika pad sekali pakai benar-benar acak, kriptosistem yang dihasilkan memang aman secara sempurna. Dalam ilmu komputer, sifat ini disebut aman secara teori informasi , sebab bukti keamanannya tidak bergantung pada asumsi apa pun tentang sumber daya komputasi yang tersedia bagi penyerang. [Lihat (Shannon 1949) dan (Shannon 1948) untuk bukti tersebut.] Kriptosistem lain yang akan kita jumpai di bawah hanya aman jika kita mengandaikan bahwa penyerang mempunyai akses ke komputer jenis tertentu (asumsi yang lazim ialah sebuah mesin Turing waktu-polinomial probabilistik; bidang ilmu komputer yang membahas hal ini disebut kompleksitas komputasi; lihat, misalnya, (Arora dan Barak 2009)).
Pad yang sama juga tidak boleh digunakan lebih dari sekali. Jika digunakan kembali, penyerang dapat mengambil selisih kedua cipherteks huruf demi huruf, yang akan meniadakan pad sepenuhnya dari perhitungan. Setelah itu, pesan biasanya dapat ditentukan dengan cepat.
Pada zaman modern, setelah munculnya jaringan komunikasi digital, pesan ditulis sebagai data komputer. Dengan demikian, semuanya disimpan (dan dikirimkan) sebagai bit, yaitu dan . Untuk bit, padanan penggeseran huruf dalam alfabet dengan kembali dari Z ke A bila perlu adalah: tidak melakukan apa pun jika besar pergeserannya genap, atau menukar dan jika pergeserannya ganjil.
Dengan kata lain, jika pesan dan kunci sama-sama dituliskan seluruhnya sebagai bit—anggap setiap bit sebagai salah satu dari elemen —enkripsi tepat berupa penjumlahan bit-bit yang bersesuaian modulo . Karena itu, pad sekali pakai yang baik merupakan untaian bit (kelas-kelas kongruensi dalam ) yang sangat acak dan sangat panjang.
Masalah besar pad sekali pakai adalah distribusi kunci: Alice dan Bob harus sudah memiliki bersama pad sekali pakai yang sangat besar sebelum mulai berkomunikasi. Panjangnya harus sekurang-kurangnya sama dengan jumlah seluruh huruf (atau bit pada zaman komputer) dalam semua pesan yang akan mereka kirim pada masa depan.
Hal ini menyarankan pendekatan menarik terhadap kriptografi: carilah cara agar Alice dan Bob dapat berbagi sebuah rahasia kecil yang memungkinkan keduanya menghasilkan barisan bit sepanjang apa pun, memperoleh barisan yang sama, tetapi barisan itu tampak sepenuhnya acak bagi setiap penyerang. Jika hal ini mungkin, mereka dapat menggunakan barisan acak semu tersebut sebagai pad sekali pakai. Disebut acak semu karena barisan itu sebenarnya tidak acak—Alice dan Bob dapat menentukannya terlebih dahulu dari rahasia awal yang kecil—tetapi bagi semua penyerang barisan itu tampak acak. [Lihat (Luby 1996) untuk pembahasan lebih lanjut tentang keacakan semu.]
Latihan untuk §4.2
Latihan 4.4. ROT13 dianggap menarik karena mengurangi banyaknya kode yang perlu dibuat: program yang sama dapat melakukan dekripsi maupun enkripsi, sebab penerapan ROT13 untuk kedua kalinya membatalkan transformasi ROT13 yang pertama.
Apakah hal yang sama berlaku untuk cipher Caesar berkunci lainnya? Buatlah konjektur tentang apakah, untuk suatu kunci cipher Caesar dan pesan , selalu terdapat sedemikian sehingga di mana adalah fungsi enkripsi Caesar dengan kunci . Jika ya, carilah rumus untuk terkecil semacam itu, yang boleh bergantung (jika perlu) pada , , dan banyaknya huruf dalam alfabet yang digunakan untuk menulis .
Latihan 4.5. Lanjutkan latihan sebelumnya. Sekarang andaikan merupakan tupel-, untuk , yang terdiri atas bilangan bulat , dan adalah fungsi enkripsi Vigenère dengan kunci . Tentukan apakah, untuk setiap pesan , terdapat sedemikian sehingga dan, jika ya, carilah rumus untuk terkecil semacam itu, yang boleh bergantung (jika perlu) pada , , dan banyaknya huruf dalam alfabet yang digunakan untuk menulis .
Latihan 4.6. Andaikan Eve mempunyai kembaran bernama Vev. Keduanya mengamati cipherteks yang dikirim Alice kepada Bob dan berhasil mereka cegat. Mereka menduga bahwa pasangan kekasih konyol Alice dan Bob menggunakan pad sekali pakai untuk mengenkripsi komunikasi mereka. Eve dan Vev sama-sama melakukan banyak perhitungan dan mengira telah berhasil mendekripsi dengan benar. Sayangnya, Eve dan Vev masing-masing memperoleh nilai dan yang berbeda (dan keduanya bermakna!), lalu menganggap nilainya sebagai plainteks yang hendak dikirim Alice kepada Bob.
Pad sekali pakai dan apakah yang, menurut perhitungan (atau tebakan) mereka masing-masing, digunakan Alice?
Apakah hasil dekripsi usulan dan dapat dipilih sembarang, atau adakah hubungan antara kedua hasil dekripsi usulan, pad usulan dan , plainteks sebenarnya, serta pad sekali pakai yang benar-benar digunakan Alice?
Kerjakan satu contoh konkret. Jika pesan teks terang asli Alice
adalah aardvark, mungkinkah Eve mengira
pesannya
iloveyou,
sedangkan Vev mengira pesannya
ihateyou?
Jika mungkin, berikan contoh cipherteks
yang bersesuaian, pad sekali pakai Alice dan Bob
,
hasil dekripsi usulan
dan
,
serta pad sekali pakai usulan
dan
.
4.3 Langkah Awal dalam Kriptanalisis: Analisis Frekuensi
Cipher Caesar tampak sangat lemah. Namun, ketika kita melihat suatu cipherteks, seperti
wrehruqrwwrehwkdwlvwkhtxhvwlrq
zkhwkhuwlvqreohulqwkhplqgwrvxiihu
wkhvolqjvdqgduurzvrirxwudjhrxviruwxqh
ruwrwdnhdupvdjdlqvwdvhdriwurxeohv
dqgebrssrvlqjhqgwkhp
sulit untuk mengetahui harus mulai dari mana—teks itu nyaris sama sekali tidak tampak seperti bahasa Inggris.
Mungkin kita perlu mulai dari cipher Caesar itu sendiri, dengan mengandaikan (secara anakronistis) bahwa Caesar mengikuti Prinsip Kerckhoffs, atau (lebih sesuai dengan zamannya) bahwa para mata-mata telah mengetahui kriptosistemnya tetapi belum mengetahui kuncinya.
Kita segera menyadari bahwa hal yang tidak diketahui, yaitu kunci, begitu kecil dibandingkan dengan kesulitan yang ditimbulkannya. Bahkan, jika kita memilih kunci secara acak, hampir empat dari 100 percobaan akan menghasilkan dekripsi yang benar semata-mata karena keberuntungan. Perhitungan ini menggunakan “alfabet Latin” modern yang terdiri atas 26 huruf; pada zaman Caesar, alfabet Latin yang sebenarnya hanya memiliki 23 huruf, sehingga peluangnya bahkan lebih baik. Secara formal, kita membicarakan konsep berikut.
Definisi 4.13. Himpunan semua kunci yang sah untuk suatu kriptosistem disebut ruang kunci.
Contoh 4.14. Ruang kunci kriptosistem cipher Caesar adalah alfabetnya.
Contoh 4.15. Ruang kunci kriptosistem cipher Vigenère dengan panjang kunci adalah semua barisan yang terdiri atas huruf dalam alfabet. Karena itu, ruang tersebut memiliki elemen jika alfabetnya berukuran . Jika panjang kunci yang tepat tidak diketahui, tetapi diketahui tidak melebihi suatu batas , terdapat kemungkinan kunci.
Contoh 4.16. Setiap barisan huruf sepanjang merupakan kemungkinan kunci (pad) untuk enkripsi pad sekali pakai atas pesan sepanjang . Karena itu, terdapat kemungkinan pad sekali pakai untuk pesan sepanjang pada alfabet berukuran .
Kita menghitung ukuran berbagai ruang kunci tersebut karena salah satu kelemahan cipher Caesar adalah ruang kuncinya yang begitu kecil. Strategi yang lebih baik daripada menebak secara acak ialah mencoba semua kunci yang mungkin dan melihat kunci mana yang menghasilkan dekripsi yang benar. Hanya ada 26 kunci (atau 23 pada zaman Julius)! Pendekatan ini disebut serangan brute force [atau pencarian menyeluruh]. Bahkan pada zaman Caesar, ruang kunci cipher Caesar sudah begitu kecil sehingga Eve dapat memeriksa semua kunci dan melihat kunci mana yang menghasilkan teks terang pesan Alice kepada Bob.
Cipher Vigenère sedikit lebih sulit. Sebagai contoh, jika panjang kunci diketahui sama dengan lima, hampir 12 juta kunci harus dicoba. Sebelum zaman komputer, pekerjaan ini sama sekali tidak mungkin ditangani. Bahkan pada abad ke-21, ketika komputer dapat menghasilkan semua kemungkinan dekripsi itu dalam waktu yang bagi manusia tampak seketika, masih ada masalah: manusia harus memeriksa 12 juta kemungkinan tersebut dan memilih dekripsi yang sah.
Mechanical Turk milik Amazon (lihat
https://www.mturk.com/mturk/welcome) mungkin
dapat menghimpun cukup banyak tenaga manusia untuk menyelesaikan satu
dekripsi Vigenère dengan brute force. Namun, pendekatan yang lebih baik
ialah menulis program komputer yang dapat membedakan teks tanpa makna
dari pesan nyata yang mungkin dikirim Alice kepada Bob. Dengan begitu,
serangan brute force dapat berhasil dalam beberapa saat.
Untuk membedakan teks tanpa makna dari pesan nyata, kita perlu mengetahui pesan-pesan nyata apa saja yang mungkin. Hal ini memotivasi definisi berikut.
Definisi 4.17. Himpunan pesan yang mungkin dalam suatu komunikasi terenkripsi disebut ruang pesan.
Tanpa suatu struktur pada ruang pesan, kriptanalisis dapat menjadi nyaris mustahil. Misalnya, jika Alice mengirimkan kode kombinasi sebuah brankas kepada Bob melalui surel dalam bentuk terenkripsi, ruang pesannya tidak terlalu besar tetapi tidak mempunyai ciri yang dapat dikenali. Serangan brute force tidak memiliki cara untuk menentukan hasil dekripsi mana yang merupakan kode kombinasi sebenarnya.
Namun, andaikan ruang pesan komunikasi Alice dan Bob berupa himpunan teks pendek (atau panjang, yang lebih baik) dalam bahasa Inggris. Teks bahasa Inggris mempunyai cukup banyak struktur; manusia penutur bahasa Inggris tentu dapat mengenali bahasa Inggris yang wajar. Pertanyaannya ialah apakah proses mendeteksi teks bahasa Inggris yang wajar dapat diotomatisasi.
Mari kita lihat kembali contoh enkripsi Caesar pada awal bagian ini. Kita sudah melihat bahwa hasilnya tidak tampak seperti bahasa Inggris—tetapi dalam hal apa? Salah satunya tentu karena teks itu tidak memuat kata bahasa Inggris. Orang yang mengetahui bahasa Inggris mengenal sebagian besar kosakatanya dan dapat melihat bahwa teks tersebut tidak memuat kata-kata itu, kecuali mungkin “up” dan “i” (beberapa kali).
Hal ini menyarankan sebuah pendekatan: ambil daftar semua kata bahasa Inggris beserta semua bentuk varian dan turunannya; tambahkan beberapa barisan acak pendek yang mungkin muncul di dalam bahasa Inggris baku (misalnya ketika Alice mengutip ucapan tanpa makna yang didengarnya atau menyalin grafiti pada sisi gerbong kereta bawah tanah); lalu bandingkan daftar itu dengan semua kemungkinan dekripsi cipherteks. Skema ini tidak terlalu praktis. Namun, jika ruang pesannya cukup kecil, pendekatan semacam ini masuk akal.
Jika kita kembali melihat pesan tersebut, pembaca bahasa Inggris juga segera merasa bahwa huruf atau kombinasi hurufnya tidak tepat. Misalnya, tampaknya tidak ada cukup banyak vokal. Pemeriksaan seberapa sering huruf muncul dalam sebuah teks dibandingkan dengan frekuensi yang diharapkan disebut analisis frekuensi. Penggunaannya dalam kriptanalisis tampaknya pertama kali dijelaskan oleh filsuf dan matematikawan Muslim al-Kindi 4 dalam karyanya pada abad ke-9, Manuskrip tentang Penguraian Pesan Kriptografis.
Berikut adalah tabel frekuensi huruf dalam sejumlah teks bahasa Inggris baku (beberapa drama Shakespeare):
Perhatikan bahwa huruf ‘e’ merupakan huruf yang paling sering muncul, meskipun hanya dengan selisih kecil. Jadi, pendekatan kriptanalisis pertama menggunakan analisis frekuensi dapat dilakukan dengan memilih kunci dekripsi Caesar yang menggeser huruf paling sering dalam cipherteks menjadi ‘e’. Untuk cipherteks pada awal bagian ini, pendekatan tersebut menghasilkan dekripsi:
ezmpzcyzeezmpesletdespbfpdetzy
hspespcetdyzmwpctyespxtyoezdfqqpc
espdwtyrdlyolcczhdzqzfeclrpzfdqzcefyp
zcezelvplcxdlrltydeldplzqeczfmwpd
lyomjzaazdtyrpyoespx
Hasilnya kurang baik. Rupanya, hanya memperhatikan huruf yang paling sering belum cukup: huruf paling sering dalam plainteks pesan ini bukan ‘e’.
Sebagai gantinya, mari kita lihat seluruh tabel frekuensi cipherteks ini.
Sayangnya, hasil ini tidak persis sama dengan distribusi frekuensi bahasa Inggris baku (berdasarkan Shakespeare), bahkan bukan sekadar versi distribusi Shakespeare yang digeser (dengan kembali dari 25 ke 0). Namun, mungkin salah satu pergeserannya cukup dekat dengan distribusi Shakespeare.
Hal ini menyarankan pendekatan kriptanalisis yang lebih halus: coba semua kemungkinan dekripsi (tidak terlalu berat untuk cipher Caesar karena ruang kuncinya kecil), lalu pilih hasil yang seluruh tabel frekuensi hurufnya paling dekat dengan tabel frekuensi bahasa Inggris baku. Jadi, kita tidak hanya melihat huruf yang paling sering, melainkan seluruh distribusi frekuensinya; dan kita tidak mencari kecocokan persis, melainkan kecocokan hampiran terbaik.
Pertanyaan berikutnya ialah cara terbaik untuk mengukur jarak antara dua distribusi. Salah satu pendekatan yang lazim ialah mengukur besaran berikut.
Definisi 4.18. Galat kuadrat total adalah jarak antara dua distribusi dan yang diberikan oleh di mana distribusi selalu didefinisikan pada huruf dalam bentuk ‘a’=0, ‘b’=1, dan seterusnya.
Meminimumkan jarak ini ekuivalen dengan metode kuadrat terkecil dalam statistika atau aljabar linear.
Dengan menerapkan strategi ini pada cipherteks dari awal bagian, kita memperoleh hasil berikut.
Galat kuadrat minimum diperoleh dari kunci dekripsi 23 (yang bersesuaian dengan kunci enkripsi awal 3; secara anakronistis, enkripsi ini dilakukan oleh Julius sendiri). Teks terang yang bersesuaian adalah
tobeornottobethatisthequestion
whethertisnoblerinthemindtosuffer
theslingsandarrowsofoutrageousfortune
ortotakearmsagainstaseaoftroubles
andbyopposingendthem
yang tampak cukup meyakinkan.
Menariknya, pendekatan untuk mendeteksi teks bermakna ini cukup tangguh, bahkan untuk teks sangat pendek yang distribusi frekuensinya mungkin cukup jauh dari standar bahasa Inggris. Sebagai contoh, untuk cipherteks
rkkrtbrkeffespkyvtifjjifruj
kita memperoleh
rkkrtbrkeffespkyvtifjjifrujyang menunjukkan bahwa kunci dekripsinya adalah 9 dan bersesuaian dengan kunci enkripsi 17. Jadi, teks terangnya pasti
attackatnoonbythecrossroads
yang tampak seperti sesuatu yang mungkin dikatakan Julius.
Cukup sampai di sini kriptanalisis cipher Caesar. Ketika beralih ke Vigenère, persoalan pertama adalah menentukan panjang kunci. Jika panjang kunci diketahui, kita dapat membagi cipherteks menjadi teks yang lebih pendek: teks pertama memuat karakter-karakter berselang posisi mulai dari karakter pertama, teks kedua mulai dari karakter kedua, dan seterusnya, hingga teks yang dimulai dari karakter ke-. Dengan menerapkan pemecah Caesar otomatis yang dijelaskan di atas, kita memperoleh komponen kunci dan kemudian plainteksnya.
Untuk mempermudah, andaikan kita mengambil seluruh
Hamlet dan mengenkripsinya dengan Vigenère
menggunakan kata kunci
hippopotomonstrosesquipedaliophobia, yang
bersesuaian dengan kunci numerik
Sebagai contoh, bagian
cipherteks yang bersesuaian dengan kutipan untuk memecahkan cipher
Caesar di atas adalah
hdxajnioomjvdtfvstrqitmfozlxjj
kcmiosgpenjjbgxmcmtfzltmaudofpmwg
odsntxuuhwjywmrjpnieosoqlfbpjoqyyljia
cmbdaozawminabtdhrtyndlncugkflswh
vjrwgdwddoeicznymcyl
Jika Eve berharap teks ini hanya dienkripsi dengan Caesar, sehingga panjang kunci Vigenère adalah , ia akan memperoleh frekuensi huruf berikut.
hippopotomonstrosesquipedaliophobiaDibandingkan dengan Gambar 4.3,
nilai-nilai ini menunjukkan variasi yang jauh lebih kecil. Bahkan, tidak
ada nilai nol maupun nilai yang jauh lebih besar daripada semua nilai
lainnya. Alasannya, secara hampiran distribusi ini merupakan campuran
dari 35 pergeseran distribusi baku bahasa Inggris dalam Gambar 4.2, satu untuk setiap posisi
kata kunci
hippopotomonstrosesquipedaliophobia; jika
pergeseran yang sama digabungkan, hasilnya adalah campuran berbobot dari
16 nilai pergeseran berbeda. Pencampuran ini menghaluskan seluruh bentuk
khas distribusi yang berguna untuk mengenali pergeseran dekripsi yang
benar.
Meskipun demikian, pemecah Caesar akan menghasilkan suatu nilai kunci untuk setiap kemungkinan nilai yang dicoba Eve. Untuk setiap posisi kunci, selalu ada nilai pergeseran yang meminimumkan galat kuadrat. Jika tebakan panjang kunci salah dan pengelompokan yang dihasilkan mencampurkan beberapa pergeseran berbeda, nilai minimum ini biasanya tidak terlalu kecil: distribusi frekuensi huruf pada posisi-posisi cipherteks yang kongruen dengan , untuk dan , biasanya lebih datar, sehingga jauh (menurut jarak galat kuadrat) dari distribusi bahasa Inggris baku.
Sebagai contoh, pada enkripsi Hamlet yang
sedang kita kaji, andaikan Eve menebak
dan mengambil semua huruf pada posisi yang kongruen dengan
.
Pemecah Caesar akan menghasilkan grafik galat kuadrat berikut:
hippopotomonstrosesquipedaliophobiaNilai minimum jelas terdapat pada kunci dekripsi 23, tetapi tidak jauh lebih kecil daripada kemungkinan lain. Selain itu, semua galatnya sekitar sepuluh kali lebih besar daripada yang tampak pada grafik sebelumnya, seperti Gambar 4.4.
Jadi, berikut adalah pendekatan kriptanalisis Vigenère. Coba semua panjang kunci hingga suatu batas . Batas ini ditentukan oleh waktu komputasi yang tersedia dan tidak boleh begitu besar sehingga pengambilan huruf-huruf berselang posisi dari cipherteks menyisakan terlalu sedikit huruf untuk analisis frekuensi yang wajar. Untuk setiap anak untaian yang terdiri atas huruf-huruf berselang posisi dan masing-masing dimulai pada posisi , terapkan pemecah Caesar. Hasilnya adalah kunci Vigenère optimal sepanjang . Kemudian, untuk setiap dan kunci yang bersesuaian, hitung jarak galat kuadrat antara cipherteks yang didekripsi menggunakan dan distribusi huruf bahasa Inggris baku. Laporkan dan sebagai panjang kunci dan kunci Vigenère jika merupakan galat kuadrat terkecil yang diperoleh.
Latihan untuk §4.3
Latihan 4.7. Dapatkah Anda menemukan cipherteks Caesar yang memiliki dua hasil dekripsi yang keduanya tampak seperti bahasa Inggris yang wajar selama serangan brute force? Jika dapat, berikan contoh yang tepat beserta kunci dekripsinya.
Latihan 4.8. Apakah latihan sebelumnya (4.7) menjadi lebih sulit atau lebih mudah untuk cipher Vigenère? Berikan alasan dan contoh.
Latihan 4.9. Dalam merancang kriptosistem yang aman, enkripsi yang lebih banyak tampaknya lebih baik. Jadi, bagaimana jika kita mengenkripsi teks terang dengan satu kriptosistem, lalu mengenkripsi kembali cipherteks yang dihasilkan untuk membuat sebuah cipherteks super?
Sejauh ini kita mempunyai dua kriptosistem berkunci pendek: Caesar dan Vigenère. Kita juga mempunyai pad sekali pakai, tetapi sistem itu sudah aman secara sempurna dan mempunyai kunci besar, yaitu pad-pad tersebut, sehingga tidak akan kita pertimbangkan. Andaikan saya membuat kriptosistem baru yang menerapkan suatu kombinasi enkripsi Caesar dan Vigenère secara berurutan, semuanya dengan kunci berbeda. Apakah hasilnya merupakan kriptosistem yang jauh lebih aman? Mengapa atau mengapa tidak?
4.4 Kripto Kunci Publik: Kriptosistem RSA
Andaikan Alice dan Bob tidak pernah berkesempatan bertemu langsung, tetapi tetap ingin bertukar pesan yang dirahasiakan dari Eve. Apa yang dapat mereka lakukan?
Hal ini tampak mustahil dalam konteks kriptosistem yang telah kita bahas. Mari kita uraikan bagian penting yang membuatnya begitu sulit.
Definisi 4.19.
Sebuah cipher simetris (atau kriptosistem simetris) terdiri atas bagian-bagian berikut, yang semuanya diketahui oleh kedua pihak yang berkomunikasi dan juga oleh masyarakat umum:
ruang pesan ;
ruang kunci ;
algoritme enkripsi yang menghasilkan cipherteks untuk setiap pilihan dan ;
algoritme dekripsi yang, jika diberi cipherteks dan , menghasilkan pesan serta memenuhi .
Alice dan Bob dapat menggunakan cipher simetris semacam ini dengan menyepakati secara privat sebuah kunci yang akan dipakai untuk enkripsi dan dekripsi. Karena itu, kriptosistem simetris juga disebut kriptosistem kunci privat.
Secara grafis:
| Penyiapan dan notasi dasar kripto kunci privat: | ||
|---|---|---|
| komunikasi privat | ||
| Alicepertukaran kunci bersama Bob | ||
| pada jaringan publik | ||
| pesan | ||
| hitung | ||
| kirim | cipherteks | terima |
| hitung | ||
| pesan | ||
| hitung | ||
| terima | cipherteks | kirim |
| hitung | ||
| dan seterusnya | ||
Demi keamanan kriptosistem di atas, ruang kunci harus cukup besar, atau keseluruhan sistem harus disusun sedemikian rupa sehingga sulit menentukan apakah suatu kemungkinan dekripsi tertentu sah (atau keduanya). Jika tidak, Eve dapat melakukan serangan brute force dengan mencoba semua kemungkinan kunci dan melihat hasil mana yang masuk akal sebagai dekripsi.
Bagaimanapun, karena memerlukan pertukaran kunci privat di awal, kriptosistem simetris tidak cocok untuk situasi yang diajukan pada awal bagian ini. Kita memerlukan jenis kriptosistem yang berbeda.
Definisi 4.20.
Sebuah cipher asimetris (atau kriptosistem asimetris) terdiri atas bagian-bagian berikut, yang semuanya diketahui oleh setiap pihak yang berkepentingan, baik yang sah maupun yang tidak:
ruang pesan ;
ruang kunci enkripsi ;
ruang kunci dekripsi ;
algoritme pembangkitan kunci yang menghasilkan pasangan terkait ;
algoritme enkripsi yang menghasilkan cipherteks untuk setiap pilihan dan ;
algoritme dekripsi yang, jika diberi cipherteks dan , menghasilkan pesan serta, untuk setiap pasangan yang dihasilkan , memenuhi .
Untuk menggunakan kriptosistem semacam ini, Bob menjalankan untuk memperoleh pasangan . Ia merahasiakan kunci dekripsi , tetapi menyediakan kunci enkripsi kepada publik (mungkin melalui situs webnya). Karena itu, disebut kunci publik milik Bob dan disebut kunci privat milik Bob, sedangkan keseluruhan sistem disebut kriptosistem kunci publik.
Secara grafis:
| Penyiapan dan notasi dasar kripto kunci publik: | ||
|---|---|---|
| Alice | pada jaringan publik | Bob |
| jalankan untuk memperoleh | ||
| unduh | kunci publik | terbitkan |
| pesan | ||
| hitung | ||
| kirim | cipherteks | terima |
| hitung | ||
Seperti sebelumnya, keamanan kriptosistem ini terhadap serangan brute force bergantung pada ukuran . Selain itu, karena kunci dan algoritme enkripsi diketahui Eve, ruang pesan tidak boleh terlalu kecil. Jika kecil, Eve cukup menghitung semua enkripsi untuk setiap , lalu membandingkannya dengan cipherteks yang berhasil dicegatnya.
Serangan terhadap ruang pesan ini dapat dicegah dengan memperbesar ruang tersebut secara artifisial. Biasanya, orang menambahkan data berikut.
Definisi 4.21. Salt kriptografis adalah data acak yang ditambahkan pada pesan yang hendak dikirim Alice kepada Bob sebelum dienkripsi, lalu dihapus secara otomatis di sisi Bob.
Setelah Alice menambahkan salt pada pesannya, Eve harus menelusuri seluruh ruang pesan beserta salt, yang dapat jauh lebih besar daripada .
Sebagai manfaat tambahan, salt membuat cipherteks hampir selalu berbeda pada setiap pengiriman rahasia, sekalipun plainteksnya sama, apabila dipilih secara independen dari ruang yang cukup besar. Eve tentu mengetahui bahwa Alice dan Bob sedang berkomunikasi, tetapi dengan hanya membandingkan kesamaan cipherteks, analisisnya tidak lagi dapat mengenali pengiriman ulang pesan yang sama secara andal. Tanpa salt, Eve yang cermat mungkin dapat menghubungkan cipherteks pesan dengan tindakan di dunia nyata, sehingga pada dasarnya mengetahui hasil dekripsinya tanpa memecahkan kriptosistem. Jika salt dipilih secara independen dari ruang yang cukup besar, korelasi yang hanya mengandalkan kesamaan cipherteks menjadi sangat tidak andal, sebab peluang penggunaan ulang salt yang sama menjadi sangat kecil.
Karena kunci enkripsi Bob tersedia bagi publik, seluruh keamanan kriptosistem ini runtuh jika Eve dapat memulihkan kunci privat yang bersesuaian. Di sisi lain, Bob harus dapat membangkitkan pasangan secara layak pada tahap penyiapan. Asimetri antara komputasi maju yang mudah dan pemulihan rahasia yang sulit ini biasanya dibangun dari fungsi dengan sifat khusus berikut.
Definisi 4.22. Fungsi injektif yang dapat dihitung dalam waktu wajar pada komputer standar (klasik), tetapi inversnya tidak dapat dihitung secara layak, disebut fungsi satu arah [atau fungsi satu arah kriptografis].
Perkalian dua bilangan, bahkan dua bilangan yang sangat besar, dapat dilakukan komputer dengan cukup cepat. Menentukan apakah bilangan yang sangat besar itu prima atau komposit juga ternyata sangat cepat (lihat (Agrawal dkk. 2004) untuk hasil mengagumkan dalam sejarah panjang uji keprimaan ini).
Namun, belum ditemukan cara klasik yang layak untuk memfaktorkan semiprima RSA yang cukup besar, yaitu hasil kali dua prima besar berukuran sebanding.5 Pembatasan bentuk ini penting: bilangan genap atau bilangan dengan faktor kecil dapat difaktorkan dengan mudah, berapa pun besarnya. Sebagai contoh, salah satu semiprima RSA terbesar yang pernah difaktorkan pada saat naskah sumber ditulis adalah soal tantangan terkenal RSA-768, sebuah bilangan komposit 232 digit (768 bit). Bilangan itu akhirnya difaktorkan pada 2009 setelah jaringan berisi ratusan komputer bekerja bersama selama sekitar dua tahun, meskipun tidak secara eksklusif mengerjakan soal tersebut. Semiprima RSA sejenis yang lebih besar mudah dibuat, tetapi pada umumnya jauh lebih sulit difaktorkan.
Karena itu, fungsi yang mengalikan dua bilangan prima besar berukuran sebanding untuk menghasilkan semiprima yang sangat besar merupakan calon fungsi satu arah kriptografis yang baik.
Pada 1978, Ron Rivest, Adi Shamir, dan Leonard Adleman menjelaskan ((Rivest dkk. 1978)) kriptosistem kunci publik berikut yang didasarkan pada fungsi satu arah tersebut.
Definisi 4.23.
Bob memulai dengan memilih dua bilangan prima sangat besar yang berbeda, dan . Hasil kalinya disebut modulus RSA yang bersesuaian. Bob juga memilih bilangan yang memenuhi dan .
Bilangan biasanya memiliki sangat sedikit angka 1 ketika ditulis dalam basis dua, misalnya atau . Bilangan ini disebut eksponen RSA.
Kunci publik [enkripsi] RSA terdiri atas pasangan ; himpunan semua pasangan semacam itu adalah .
Kunci privat [dekripsi] RSA terdiri atas pasangan , dengan dipilih sebagai wakil positif terkecil dari
dan adalah himpunan semua pasangan semacam itu.
Algoritme pembangkitan kunci RSA memilih seperti di atas, menghitung dan , lalu menghasilkan pasangan . Data faktor (atau ) digunakan pada tahap penyiapan dan tidak perlu menjadi bagian kunci dekripsi operasional.
Ruang pesan kriptosistem ini adalah .
Enkripsi diberikan oleh
Dekripsi diberikan oleh
Keseluruhan sistem di atas disebut kriptosistem RSA.
Secara grafis:
| Penyiapan dan notasi kriptosistem RSA: | ||
|---|---|---|
| Alice | pada jaringan publik | Bob |
| pilih prima besar berbeda dan | ||
| hitung modulus RSA | ||
| pilih eksponen RSA | ||
| dengan | ||
| dan | ||
| unduh | kunci publik | terbitkan |
| hitung | ||
| pesan | ||
| hitung | ||
| kirim | cipherteks | terima |
| hitung | ||
Pertama-tama, kita perlu memastikan bahwa sistem ini memenuhi syarat dasar agar berfungsi sebagai kriptosistem.
Proposisi 4.24. Gunakan notasi dalam definisi kriptosistem RSA di atas. Untuk setiap pesan , berlaku .
Bukti. Setiap mewakili suatu kelas dalam . Kita tidak akan membedakan kelas tersebut dari wakilnya yang memenuhi .
Kita membentuk sebagai . Artinya, , sehingga terdapat dengan .
Kemudian, menurut Teorema Euler 3.14 , untuk setiap yang memenuhi , berlaku seperti yang diinginkan. Kasus menjadi Latihan 4.10 dalam bagian ini. ◻
Selain memastikan fungsi dasarnya, kita perlu menilai seberapa praktis RSA. Mari kita telusuri dengan cermat algoritme yang diperlukan pada setiap langkah.
Bob harus memilih prima besar dan . Seperti telah disebutkan, terdapat algoritme yang dapat menentukan keprimaan suatu bilangan dalam waktu wajar. Lebih tepatnya, komputer (klasik) dapat menentukan apakah bilangan prima dalam waktu yang dibatasi oleh suatu fungsi polinomial dari . [Inilah arti lazim komputasi layak dalam kriptologi.]
Selain itu, jumlah prima cukup banyak sehingga Eve tidak dapat melakukan pencarian brute force atas semua kemungkinan. Hal ini mengikuti Teorema Bilangan Prima, yang memberikan banyaknya prima secara asimtotik.
Teorema ini merupakan salah satu permata teori bilangan analitik. Teorema ini dibuktikan pada 1896 oleh Jacques Hadamard dan Charles Jean de la Vallée-Poussin, walaupun bagian-bagian pentingnya telah diketahui sebelumnya oleh tokoh seperti Euler, Legendre, dan Riemann. Buktinya sulit, bahkan bukti elementer yang diberikan Atle Selberg dan Paul Erdös pada 1948.
Salah satu akibat Teorema Bilangan Prima ialah bahwa peluang sebuah bilangan yang dipilih secara acak adalah prima kira-kira . Sebagai contoh, untuk mencari prima 200 digit, kita memilih bilangan acak berukuran itu dan perlu menguji sekitar bilangan sebelum memperoleh suatu prima. Jumlah komputasi ini masih wajar.
Setelah memiliki modulus RSA , kita dapat menghitung fungsi totient Euler hampir seketika dengan Teorema 2.33.
Menentukan eksponen RSA yang relatif prima terhadap tidak sulit karena terdapat banyak pilihan. Bahkan, dalam arti yang tepat, peluang bahwa dua bilangan yang dipilih secara acak saling relatif prima adalah (untuk pernyataan tepat beserta buktinya, lihat (Hardy dan Wright 1979)). Pengujian calon juga efisien sebab, seperti akan kita lihat dalam Latihan 4.12, waktu Algoritma Euklides dibatasi oleh fungsi polinomial dari logaritma bilangan-bilangan yang terlibat. Jadi, komputasinya layak.
Selanjutnya, dapat dihitung sangat cepat dengan Algoritma Euklides diperluas (Teorema 1.38). Algoritme ini tentu lebih lambat daripada Algoritma Euklides dasar, tetapi tetap layak.
Enkripsi dan dekripsi RSA sama-sama berupa pemangkatan suatu bilangan modulo . Untungnya, terdapat algoritme bernama eksponensiasi modular cepat yang juga menyelesaikannya dalam waktu yang dibatasi oleh fungsi polinomial dari logaritma bilangan-bilangan yang diberikan.
Persoalan praktis terakhir ialah cara Alice benar-benar menggunakan RSA untuk mengirim pesan yang diinginkannya, bukan sekadar bilangan yang memenuhi .
Ini merupakan persoalan baku dalam kriptografi matematis dan mempunyai solusi baku. Biasanya, Alice harus mengambil pesannya karakter demi karakter lalu menyalinnya menjadi barisan bilangan menurut suatu standar yang diterima. Sejak dekade 1960-an, hal ini dilakukan menggunakan kode ASCII [American Standard Code for Information Interchange, Kode Standar Amerika untuk Pertukaran Informasi] . ASCII memberikan bilangan biner 7 bit untuk 26 huruf alfabet Latin (modern), baik huruf besar maupun kecil, serta untuk sekumpulan simbol yang lazim dan beberapa tambahan modern yang biasanya tidak dicetak, seperti Pemisah Rekaman, Bel, dan Tab Vertikal. Kini, kode-kode ASCII selalu disimpan dalam satu byte (8 bit) dengan menambahkan bit di depan.
Ketika World Wide Web menjadi fenomena global, kebutuhan akan lebih banyak alfabet dan bahkan sistem tulisan nonalfabetis (seperti aksara Tionghoa) terus meningkat. Hal ini menghasilkan sistem bernama Unicode yang, pada versi 6.3 tahun 2013, memuat lebih dari 110.000 karakter. Unicode disimpan dengan berbagai pengodean. Dua yang paling umum adalah UTF-8, yang menggunakan satu hingga empat byte per karakter, dan UTF-16, yang menggunakan dua atau empat byte per karakter.
Jadi, Alice biasanya menuliskan pesannya dalam ASCII atau Unicode, menyambungkan semua byte secara berurutan, lalu memotong seluruh pesan menjadi blok-blok sepanjang bit. Di sini dipilih sebagai nilai terbesar yang memenuhi . Dengan demikian, setiap blok bit dapat dipandang sebagai bilangan bulat yang memenuhi , sehingga RSA dapat diterapkan pada pesan tersebut satu blok demi satu blok.
(Kita mengabaikan banyak perincian, misalnya cara menyisakan ruang untuk salt, pendekatan lain, dan persoalan struktur blok. Lihat referensi baku tentang kriptografi, seperti (Ferguson dan Schneier 2003) atau (Menezes dkk. 1996).)
Latihan untuk §4.4
Latihan 4.10. Dalam soal ini, Anda akan menyelesaikan bukti Proposisi 4.24, yang menyatakan bahwa dekripsi RSA berfungsi dengan benar dalam semua kasus.
Sebagai langkah pertama, nyatakan secara formal dan buktikan sebuah lema: untuk prima berbeda dan , dua bilangan bulat dan kongruen modulo jika dan hanya jika keduanya kongruen modulo dan modulo . [Petunjuk: Teorema Sisa Cina.]
Sekarang, gunakan hasil di atas untuk membuktikan kasus yang belum dibuktikan dalam Proposisi 4.24. Diberikan prima berbeda dan , tetapkan . Misalkan memenuhi dan merupakan invers modulo . Buktikan bahwa untuk setiap yang memenuhi dan , berlaku .
Latihan 4.11. Berapa banyak komputasi yang diperlukan untuk menghitung bagi dan dengan ?
Misalkan adalah panjang maksimum masukan , , dan , diukur dalam digit. Perkalian dua bilangan merupakan instruksi dasar pada sebagian besar komputer modern dan dapat dianggap memerlukan satu satuan waktu. (Atau, Anda dapat melakukan sejumlah manipulasi lebih kecil yang banyaknya dibatasi oleh fungsi polinomial dari panjang operan; pilihan ini tidak memengaruhi bagian selanjutnya dari soal.) Demikian pula, pembagian bersisa merupakan satu instruksi mesin (misalnya pada prosesor keluarga Pentium) atau dapat dilakukan dengan cara sekolah dasar dalam waktu polinomial terhadap panjang masukannya.
Anggaplah pekerjaan untuk melakukan satu perkalian lalu mereduksi modulo dibatasi oleh fungsi polinomial .
Jika kita sekadar membentuk faktor , melakukan perkalian, dan mereduksi modulo pada setiap langkah, waktunya berorde . Karena bilangan yang terdiri atas digit dapat berorde , batas waktu ini bersifat eksponensial terhadap panjang masukan .
Cobalah menemukan algoritme eksponensiasi yang jauh lebih cepat, dengan waktu polinomial alih-alih eksponensial.
[Petunjuk: (1) Buat tabel kuadrat berulang dari modulo , yaitu , , , dan seterusnya. (2) Tuliskan dalam basis dua dan uraikan menggunakan bentuk biner , aturan pemangkatan biasa, dan tabel tersebut. Hasil akhirnya harus mendeskripsikan cara menghitung ; periksa dengan cermat berapa banyak waktu yang diperlukan.]
Latihan 4.12. Untuk , lakukan permainan berikut:
gunakan Algoritma Pembagian untuk membagi dengan dua dan memperoleh hasil bagi serta sisa ;
ganti ;
jika , ulangi dari langkah (1); jika tidak, berhenti.
Berikan batas banyaknya langkah sampai permainan ini berhenti. Nyatakan jawaban sebagai fungsi dari , fungsi dari banyaknya bit yang diperlukan untuk menuliskan dalam basis dua, atau fungsi dari banyaknya digit yang diperlukan untuk menuliskan dalam basis 10.
Tunjukkan bahwa setiap dua langkah Algoritma Euklides membuat suku-suku sisa berkurang sekurang-kurangnya dengan faktor . Dengan kata lain, jika kita menggunakan notasi Teorema 1.38, maka untuk setiap yang memenuhi .
Jelaskan mengapa hal ini berarti Algoritma Euklides memerlukan paling banyak langkah pembagian untuk menghitung . Turunkan pula batas linear sebesar paling banyak tujuh kali banyaknya digit desimal , dengan memeriksa kasus ujung kecil secara terpisah. [Petunjuk: berapakah ?]
Jelaskan mengapa hasil ini berarti Algoritma Euklides merupakan komputasi yang layak secara kriptologis, dalam pengertian bagian ini.
4.5 Tanda Tangan Digital
Kriptosistem kunci publik memungkinkan beberapa penggunaan yang tidak tersedia pada kriptosistem simetris. Salah satu penggunaan yang makin penting dalam ekonomi digital modern ialah pembuatan tanda tangan digital: bagian dari dokumen elektronik yang diharapkan memiliki salah satu sifat tanda tangan fisik, yakni sulit dipalsukan oleh penyamar. Dokumen bertanda tangan semacam itu mungkin diperlukan, misalnya, jika Bob dari bagian sebelumnya (yang memasang kunci publik RSA-nya di situs web) hendak mengirim kontrak yang mengikat secara hukum melalui surel. Barangkali Alice dan Bob ingin mengirim kepada calon pemilik rumah mereka, Larry, perjanjian sewa bertanda tangan untuk apartemen yang akan mereka tinggali bersama. Ketika menerima surel dari Bob yang berbunyi “Saya setuju terikat oleh ketentuan perjanjian sewa ini,” Larry perlu yakin bahwa surel tersebut benar-benar berasal dari Bob; tanda tangan digital dapat memberikan keyakinan itu.
Untuk skema dasar berikut, kita memerlukan sifat tambahan. Setiap pesan yang hendak ditandatangani harus berada dalam domain operasi privat ; untuk setiap pasangan yang dihasilkan dan setiap , harus berlaku , seperti pada RSA. Definisi umum kriptosistem asimetris sebelumnya hanya mensyaratkan urutan sebaliknya.
Bob lalu dapat melakukan hal berikut. Ia mengambil salinan perjanjian sewa, menambahkan bagian di akhir yang menyatakan persetujuannya atas ketentuan tersebut dan memuat informasi pengenal pribadi (mungkin pindaian surat izin mengemudinya). Sebut seluruh bongkah data ini . Bob kemudian menerapkan algoritme dekripsi dengan kunci privat (dekripsi) , sehingga diperoleh . Nilai ini disebut tanda tangan Bob atas pesan . Ia lalu mengirimkan dan kepada Larry melalui surel.
Ketika menerima pesan bertanda tangan ini, Larry mula-mula memisahkan tanda tangan , lalu menghitung enkripsinya, , menggunakan kunci publik yang ia unduh dari situs web Bob. Berdasarkan sifat tambahan di atas, hasilnya harus sama dengan . Verifikasi itu sendiri hanya menetapkan konsistensi aljabar pasangan terhadap kunci publik tersebut. Untuk menyimpulkan bahwa Bob menghasilkan tanda tangan dan bahwa pesan tidak berubah sejak ditandatangani, Larry juga harus mengandalkan skema tanda tangan yang tak dapat dipalsukan, kunci privat Bob yang tidak terkompromi, serta pengikatan tepercaya antara identitas Bob dan kunci publik tersebut. Bahkan dengan asumsi-asumsi itu, verifikasi tidak dengan sendirinya membuktikan identitas pengirim surel ataupun kebaruan pesan, sebab pasangan bertanda tangan yang lama dapat diteruskan atau diputar ulang oleh siapa pun.
Secara grafis:
Salah satu masalah skema ini ialah ukuran pesan secara efektif menjadi dua kali lipat. Tanda tangan yang lebih kecil dan efisien dapat dibuat dengan mendekripsi bukan seluruh , melainkan nilai suatu fungsi . Fungsi harus menerima pesan berukuran sebarang dan menghasilkan ringkasan data yang kecil, tetapi tetap bergantung pada setiap bagian masukan . Bagaimanapun, jika hanya bergantung pada 100 bit pertama , misalnya, Eve yang berniat jahat dapat mengubah pesan selama pengiriman tanpa terdeteksi selama ia tidak mengubah 100 bit pertama pesan tersebut.
Kriptolog mempunyai nama untuk fungsi seperti ini.
Definisi 4.26. Fungsi yang menerima string bit berpanjang sebarang dan menghasilkan string bit berpanjang tetap disebut fungsi hash kriptografis jika memenuhi
- kemudahan komputasi
-
nilai dapat dihitung secara layak untuk setiap ;
- ketahanan praimaji
-
jika masukan tantangan dipilih secara acak menurut distribusi yang ditetapkan dan hanya nilai target yang diberikan, mencari sedemikian sehingga tidak layak dilakukan;
- ketahanan praimaji kedua
-
jika diberikan masukan tertentu , mencari masukan lain sedemikian sehingga tidak layak dilakukan;
- ketahanan tumbukan
-
mencari dua pesan berbeda sedemikian sehingga tidak layak dilakukan .
Kata layak dan tidak layak di sini bermakna sama seperti pada bagian sebelumnya: komputasi tersebut dapat atau tidak dapat diselesaikan dalam waktu yang dibatasi oleh suatu fungsi polinomial dari ukuran masukan.
Perhatikan bahwa karena fungsi hash menerima masukan berpanjang sebarang tetapi mempunyai ukuran keluaran tetap, pasti terdapat tak hingga banyak tumbukan.
Pembuatan fungsi hash kriptografis sedikit menyerupai seni gelap. Ternyata, jika suatu calon fungsi hash dibangun dengan struktur yang jelas (biasanya struktur matematis), terutama bila fungsi itu cepat dihitung, komunitas kriptologi biasanya menemukan cara untuk menembus salah satu syarat ketahanannya. Karena itu, algoritme yang digunakan secara luas cenderung berupa komputasi yang sangat ad hoc, tampak rumit, dan sejauh ini bertahan terhadap upaya membalikkan fungsi atau mematahkan sifat ketahanannya.
Contoh 4.27. Selama kira-kira satu dasawarsa
sejak awal 1990-an, fungsi hash kriptografis yang paling luas digunakan
bernama md5. Algoritme ini dikembangkan oleh
Ron Rivest dan diterbitkan pada 1992. Ukuran keluaran
md5 adalah 128 bit.
Walaupun md5 telah dicurigai memiliki
kelemahan sejak pertengahan 1990-an, serangan nyata baru diterbitkan
pada 2004, ketika ditunjukkan bahwa fungsi ini tidak tahan tumbukan(Wang dan Yu
2005). Pada saat naskah sumber ini ditulis,
md5 masih digunakan secara luas untuk
memeriksa apakah transfer data berukuran besar mengalami galat
transmisi; dengan kata lain, fungsi ini tetap berguna untuk menguji
kerusakan data yang tidak disengaja. (Dalam konteks pembuktian
integritas data terhadap kerusakan yang tidak disengaja ini, fungsi hash
sering disebut sidik jari.)
Contoh 4.28. Sejak akhir 1990-an hingga tidak
lama sebelum naskah sumber ini ditulis, fungsi hash kriptografis yang
paling luas digunakan dan ditanamkan dalam banyak protokol kriptografis
yang diterima luas serta distandardisasi adalah
SHA-1, dengan ukuran keluaran 160
bit.
SHA-1 dikembangkan oleh Badan Keamanan
Nasional Amerika Serikat (NSA) melalui proses yang sebagian terbuka,
lalu diadopsi oleh Institut Standar dan Teknologi Nasional Amerika
Serikat (NIST) sebagai bagian dari beberapa Standar Pemrosesan Informasi
Federal Amerika Serikat .
Pada 2004, diterbitkan sejumlah penelitian yang menunjukkan bahwa
SHA-1 mungkin rentan terhadap jenis serangan
tertentu. (Lihat (Poritz dan Swimmer
2004).) Karena itu, pada 2010 NIST mewajibkan banyak aplikasi
perlindungan data federal Amerika Serikat beralih ke fungsi hash
lain.
Contoh 4.29. Pada saat naskah sumber ini
ditulis, sebagian besar pengguna dan organisasi yang memerhatikan
keamanan merekomendasikan SHA-2, biasanya
dalam varian “SHA-256” yang memiliki ukuran
keluaran 256 bit. Mengingat pengungkapan ketika itu mengenai
keterlibatan NSA dalam protokol kriptografis dan pelemahan protokol
tersebut, partisipasi NSA dalam pengembangan
SHA-2 mungkin menimbulkan
kekhawatiran.
Untuk menerapkan operasi RSA pada keluaran bit , terlebih dahulu gunakan enkode tanda tangan yang disepakati untuk memperoleh wakil pesan . Skema RSA standar menggunakan enkode dan padding khusus sebelum menerapkan operasi privat; diagram berikut hanya menunjukkan alur matematis skematis dan bukan konstruksi yang siap dipakai.
Secara grafis:
Dengan pemahaman ini, kita dapat mendeskripsikan tanda tangan digital secara lebih formal.
Definisi 4.30. Misalkan Bob menyiapkan kriptosistem RSA seperti dalam Definisi 4.23, lalu memilih satu fungsi hash kriptografis dan enkode wakil pesan untuk digunakan seterusnya. Ia menerbitkan deskripsi keduanya di halaman web bersama kunci enkripsi publik .
Jika Bob hendak menandatangani pesan , sebelum mengirimkannya kepada pihak ketiga, misalnya Charlie, ia menambahkan tanda tangan digital RSA
pada .
Ketika menerima pesan bertanda tangan yang mengaku berasal dari Bob, Charlie membuka situs web Bob dan mengunduh kunci publik beserta deskripsi dan . Charlie kemudian menghitung dan membandingkannya dengan . Jika keduanya sama, ia menerima tanda tangan tersebut; jika tidak, ia menolaknya.
Dalam konteks ini, kunci privat/dekripsi Bob disebut kunci penandatanganan, sedangkan kunci publik/enkripsi disebut kunci verifikasi.
Latihan untuk §4.5
Latihan 4.13. Gunakan Prinsip Sarang Merpati (Teorema 1.2 ) untuk membuktikan bahwa fungsi hash kriptografis selalu mempunyai tak hingga banyak tumbukan [meskipun tumbukan tersebut belum tentu dapat ditemukan secara layak].
Latihan 4.14. Berikan contoh fungsi hash dengan keluaran berukuran satu bit dan masukan tertentu yang tidak mempunyai praimaji kedua; yakni, tidak ada sedemikian sehingga .
4.6 Serangan Man-in-the-Middle, Sertifikat, dan Kepercayaan
Kripto kunci publik dapat tampak sebagai manfaat tanpa cela bagi dunia berjejaring. Namun, pemeriksaan cermat atas dua bagian sebelumnya menunjukkan kesenjangan berbahaya antara gambaran sederhana mengenai sifat alat kriptografis itu dan kenyataannya. Perbedaan yang mula-mula luput dari perhatian ialah antara Bob sebagai orang dan bit-bit yang tiba melalui jaringan ke Alice atau Larry sambil mengaku berasal dari Bob. Perbedaan ini tidak banyak berpengaruh jika Eve hanya menjadi pengamat pasif komunikasi antara Alice dan Bob (dan kadang-kadang Larry), seperti yang selama ini umumnya kita asumsikan. Namun, jika Eve menguasai jaringan lebih jauh dan dapat mengganti semua komunikasi dengan versinya sendiri, serangan baru menjadi mungkin.
Misalkan Alice ingin mengirim pesan rahasia kepada Bob tanpa pernah bertemu dengannya untuk bertukar kunci kriptosistem simetris. Ia berharap Bob mempunyai kunci publik, lalu mengakses web dan mengunduh halaman utama Bob.
Pada titik inilah Eve bertindak. Ia mencegat respons Bob (tepatnya, server web Bob) terhadap permintaan tersebut. Eve menyimpan salinan kunci publik Bob , tetapi mengganti kunci itu dalam data halaman web dengan kunci enkripsi RSA milik Eve, ; hanya Eve yang mengetahui kunci dekripsi pasangannya, . Ia kemudian meneruskan halaman yang telah diubah kepada Alice.
Alice menyusun teks terang dan mengirim cipherteks yang bersesuaian, , kepada Bob—setidaknya demikian menurutnya. Eve justru mencegat cipherteks itu, mendekripsinya, lalu menyimpan . Agar Alice dan Bob mengira semuanya berjalan normal (dan terus bercakap-cakap sambil membocorkan informasi), Eve meneruskan kepada Bob.
Dari sudut pandang Bob, ia menerima surel yang tampak berasal dari Alice dan yang, setelah didekripsi dengan kunci privatnya, sepenuhnya masuk akal. Bahkan, jika ia berinteraksi dengan Alice di luar jaringan, Alice bertindak seolah-olah memang mengirim pesan itu. Alice memang mengirimnya, tetapi bukan dalam bentuk terenkripsi yang diterima Bob. Eve telah sepenuhnya melanggar kerahasiaan komunikasi Alice dan Bob. Ia juga dapat merusak integritas pesan kapan pun ia mau sambil tetap membuatnya tampak sah berasal dari Alice.
Skenario di atas disebut serangan man-in-the-middle (istilah konvensional ini memang tidak netral gender).
Berikut gambaran grafis serangan tersebut:
| Serangan man-in-the-middle: | ||
|---|---|---|
| Alice | Eve | Bob |
| bangkitkan kunci: | ||
| publik , privat | ||
| cegat | terbitkan | |
| bangkitkan kunci: | ||
| publik , privat | ||
| unduh | , palsukan sumber | |
| pesan | ||
| hitung | ||
| kirim | , cegat | |
| ambil teks terang | ||
| ubah menjadi jika diinginkan | ||
| hitung | ||
| palsukan sumber | terima | |
| baca pesan | ||
Jadi, kriptosistem simetris ternyata mempunyai satu keuntungan bawaan. Ketika para pihak bertemu pada saat ideal untuk bertukar kunci simetris, mereka semestinya dapat memastikan identitas lawan bicara. Jika tidak, mereka tentu tidak akan bertukar kunci sebelum memeriksa cukup banyak dokumen identitas yang terlihat resmi. Kriptosistem asimetris harus mengatasi kesulitan mendasar: membangun hubungan tepercaya antara identitas orang nyata dan kunci publik di Internet yang mengaku berasal dari orang tersebut.
Teknik dari bagian sebelumnya, §4.5, setidaknya dapat membantu memindahkan kepercayaan. Misalkan Alice ingin berkomunikasi secara rahasia dengan Bob, tetapi tidak tahu apakah kunci publik yang tampak berada di halaman web Bob dapat dipercaya. Jika kunci tersebut disertai tanda tangan digital yang diterbitkan oleh pihak ketiga tepercaya [TTP] dan Alice telah memperoleh kunci publik TTP sebagai jangkar kepercayaan melalui kanal yang diautentikasi secara independen—atau dapat memvalidasi jalur sertifikasi hingga jangkar semacam itu—ia dapat memverifikasi pengikatan kunci tersebut dengan identitas Bob, setidaknya sejauh yang telah diperiksa dan dinyatakan oleh TTP.
Berikut definisi formalnya.
Definisi 4.31. Individu atau organisasi yang ingin menggunakan kriptografi asimetris dapat meminta pihak ketiga tepercaya yang disebut otoritas sertifikat [ CA] menerbitkan sertifikat digital bagi kunci publiknya. Sertifikat merupakan pernyataan terstruktur yang mengikat identitas subjek dengan kunci publiknya (beserta metadata yang diperlukan), lalu ditandatangani menggunakan kunci penandatanganan CA. Kunci verifikasi CA diasumsikan tersebar luas di Internet atau dipasang dalam perangkat lunak sistem operasi maupun perangkat keras komputer. Penyebaran luas saja tidak membuat kunci tersebut tepercaya. Kunci verifikasi CA hanya dapat menjadi dasar kepercayaan jika diperoleh sebagai jangkar kepercayaan yang diautentikasi secara independen, atau jika dapat divalidasi melalui jalur sertifikasi yang berujung pada jangkar semacam itu. Siapa pun yang hendak memakai suatu kunci publik dapat terlebih dahulu memeriksa keabsahan sertifikat terkait dan menilai pengikatan identitas–kunci itu berdasarkan kebijakan serta pemeriksaan CA.
Keseluruhan ekosistem sertifikat, CA, jangkar kepercayaan, mekanisme distribusi dan validasi, dan seterusnya, disebut infrastruktur kunci publik atau PKI.
Dalam praktik yang dibahas naskah sumber, CA sering kali hanya dapat menyertifikasi bahwa suatu kunci publik dikuasai oleh orang yang mempunyai akses ke alamat surel tertentu, kata sandi pengelola situs tertentu, atau token lain yang sepenuhnya berbasis Internet. Pemeriksaan itu biasanya mudah. Mengaitkannya dengan identitas nyata di luar jaringan mungkin memerlukan pemeriksaan dokumen identitas resmi dan jarang dilakukan. Naskah sumber juga mengusulkan kemungkinan peran pemerintah sebagai CA serta dokumen identitas ber-RFID yang dapat mengirimkan sertifikat bagi kunci publik pemiliknya (paspor Amerika Serikat yang lebih baru ketika itu telah memakai RFID).
Ada pendekatan lain untuk menentukan apakah suatu kunci publik dapat dipercaya, yang disukai orang-orang yang tidak memercayai otoritas terpusat tetapi bersedia memercayai orang tertentu yang mereka kenal langsung. Dalam pendekatan ini, orang-orang yang saling mengenal dan telah memverifikasi identitas serta kunci satu sama lain dapat menandatangani pengikatan identitas–kunci tersebut, menambahkan tanda tangan digital pada kumpulan yang sudah ada. Ketika hendak memakai kunci publik seseorang, Anda dapat menelusuri rantai tanda tangan digital, masing-masing mengesahkan pengikatan berikutnya, hingga mencapai orang yang Anda kenal langsung dan yang kuncinya telah Anda verifikasi.
Tanda tangan yang valid hanya menunjukkan bahwa suatu kunci menyertifikasi pengikatan identitas–kunci berikutnya; validitas itu sendiri belum membuat penyertifikasi tersebut layak dipercaya sebagai pengenal. Pengguna tetap harus menetapkan kebijakan kepercayaan lokal, termasuk seberapa jauh ia memercayai ketelitian setiap penyertifikasi dalam mengesahkan orang lain ( ownertrust), lalu menerima suatu pengikatan hanya jika sertifikasi yang ada memenuhi kebijakan tersebut.
Pendekatan ini dikenal sebagai jejaring
kepercayaan (web of trust) .
Pendekatan tersebut didukung kuat oleh GnuPG
dan perangkat lain yang kompatibel dengan
OpenPGP; lihat
gnupg.org.
Agar berguna, jejaring kepercayaan memerlukan sertifikasi yang telah
diverifikasi dan memenuhi kebijakan kepercayaan lokal serta penilaian
ownertrust; sekadar menambah sebanyak mungkin
tanda tangan tanpa verifikasi tidak memperkuat kepercayaan. Salah satu
cara membangun sertifikasi tersebut ialah mengadakan
pertemuan penandatanganan kunci. Pada
pertemuan semacam itu, setiap penanda tangan harus memeriksa identitas
pemilik kunci dan membandingkan sidik jari kunci lengkap secara
langsung. Pernyataan pihak lain saja tidak cukup. Gunakan algoritme
sidik jari yang diwajibkan format kunci yang berlaku, bukan
md5, karena md5
tidak lagi aman terhadap tumbukan.
Kata Inggris eavesdropper konon berasal dari kata Inggris Kuno yfesdrype, yang secara harfiah berarti seseorang yang berdiri di eavesdrop [tanah tempat air menetes dari cucuran atap] untuk mendengarkan percakapan di dalam rumah.↩︎
Gambar oleh DMGualtieri, CC BY-SA 3.0
http://creativecommons.org/licenses/by-sa/3.0, melalui Wikimedia Commons, diunduh darihttps://commons.wikimedia.org/wiki/File%3AScytale.png↩︎Sinekdoke lagi!↩︎
Al-Kindi adalah tokoh yang sangat menarik dalam sejarah intelektual Muslim awal. Sebagai contoh, tampaknya ia memperkenalkan bilangan Hindu beserta notasi nilai tempatnya ke dunia Muslim.↩︎
Pernyataan ini berlaku untuk komputer klasik. Terdapat algoritme pemfaktoran yang efisien pada komputer kuantum ; lihat (Shor 1994) dan (Nielsen dan Chuang 2010).↩︎