Cryptography berasal dari kata crypto yang berarti ”hidden, secret” dan pada bidang studi informatika dapat diartikan dengan studi mengenai menyembunyikan informasi atau informasi yang disembunyikan (hiding information). Pada saat ini, ilmu ini berkembang dan dapat dikategorikan menjadi tiga kelompok utama, yaitu:
1. Penggunaan operasi matematika yang mengubah plaintext (sumber informasi atau informasi aslinya) ke dalam bentuk ciphertext (informasi yang sudah dikodekan) menggunakan kunci enkripsi.
2. Apakah dibentuk sebuah block atau sebuahstream cipher.
3. Penggunaan satu atau dua kunci sistem.
Tujuan kriptografi: 1. Deter (menghalangi)
2. Prevent (mencegah)
3. Detect (menemukan)
4. Correct (membetulkan)
atas pelanggaran keamanan, termasuk pada saat melakukan pengiriman (transmission) informasi.
Kriptografi dapat dibagi atas 4 jenis, yaitu: (1) Symmetric Ciphers, (2) Public-key Enkripsi and Hash Function, (3) Network Security Applications, dan (4) System Security. Pada symmetric Chiphers, ada 5 teknik utama yang dapat dilakukan, yaitu symmetric cipher models, substitution techniques, transposition techniques, rotor machines, dan steganography.
Dalam referensi lain dikatakan Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh cryptographer. Sedang, cryptanalysis adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut cryptanalyst.
Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan.
Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :
EK(M)= C (Proses Enkripsi)
DK(C) = M (Proses Dekripsi)
DK(C) = M (Proses Dekripsi)
Pada saat proses enkripsi disandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya.
Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan.
1. Symmetric Ciphers Model
Enkripsi simetris adalah salah satu bentuk atau model dari sistem kripto (cryptosystem) yang kunci pembuatan enkripsinya sama dengan kunci yang digunakan untuk proses dekripsinya. Model ini dikenal dengan nama enkripsi konvensional atau enkripsi kunci tunggal (single-key enkripsi) yang mulai digunakan pada 1970an.
Enkripsi simetris mengubah plaintext (berkas asli) menjadi ciphertext (berkas berkode) menggunakan kunci rahasia dan sebuah algoritma enkripsi. Kunci dan algoritma tersebut kembali digunakan untuk mengembalikan informasi (proses dekripsi) sesuai dengan aslinya (dari ciphertext kembali ke dalam bentuk plaintext). Enkripsi (enkripsi), yaitu proses mengubah dari plaintext menjadi ciphertext disebut juga dengan proses enciphering. Sebaliknya, proses dekripsi (dekripsi) adalah proses mengembalikan dari ciphertext ke dalam plaintext semula, dapat disebut juga dengan proses deciphering. Skema yang banyak yang digunakan untuk melakukan proses enkripsi dan dekripsi di dalam area studi informatika disebut dengan kriptografi (cryptography), atau cryptographic system atau disingkat dengan cipher. Teknik untuk membuka kunci kode yang tidak diketahui algoritmanya (untuk mengembalikan ciphertext ke plaintext) disebut dengan cryptanalysis. Gabungan antara cryptography dan cryptanalysis disebut dengan cryptology.
Berikut skema dari symmetric ciphers model:
Gambar 1 Skema symmetric ciphers model
Kriptografi
Sistem kriptografi dikarakteristikkan dalam tiga dimensi independen:
1. Tipe dari operasi digunakan untuk mengubah plaintext ke ciphertext. Semua algoritma enkripsi didasarkan pada dua prinsip umum: substitution, yang setiap elemen di plaintext (bit, huruf, kelompok bit atau huruf) dipetakan ke elemen lain, dan transposisi adalah setiap elemen di plaintext dibentuk ulang (rearranged). Fundamental requirement adalah tidak boleh ada informasi yang hilang (semua operasi bersifat reversible).
2. Banyaknya kunci yang digunakan. Jika di antara Pengirim dan Penerima menggunakan kunci yang sama, sistem akan mengacu pada simetris, kunci tunggal, kunci rahasia, atau enkripsi konvensional. Jika Pengirim dan Penerima menggunakan kunci yang berbeda, sistem akan mengacu pada asimetris, dua kunci, atau enkripsi kunci publik.
3. Dengan cara pemrosesan plaintext. Sebuah blok cipher memproses sebuah blok elemen input pada satuan waktu, menghasilkan sebuah blok output dari setiap blok input. Sebuah stream cipher memproses elemen-elemen input secara kontinu untuk menghasilkan sebuah elemen output pada satuan waktu.
Kriptanalisis
Intinya, attacking an enkripsi system adalah untuk mendapatkan kunci yang digunakan untuk mengembalikan ciphertext ke plaintext. Ada dua pendekatan umum yang digunakan untuk meng-attack enkripsi konvensional, yaitu:
1. Kriptanalisis (cryptanalysis), yaitu algoritma alamiah ditambah dengan kemungkinan-kemungkinan secara pengetahuan atau pengalaman tentang karakteristik umum dari plaintext atau hubungan antara plaintext dan ciphertext. Tipe ini mencoba mengekploitasi (hal 32)
2. Brute-force attact, the attacker mencoba segala kemungkinan pada bagian dari ciphertext selama .... Pada umumnya, setengah dari seluruh kemungkinan harus dicoba agar usaha tersebut berhasil.
Substitution Techniques
Substitution techniques atau dikenal pula dengan istilah classical enkripsi techniques menggambarkan pendekatan dasar pada symmetric enkripsi yang digunakan saat ini dan tipe dari cryptanalytic attacks yang harus diantisipasi. Dua dasar pembentukan blok pada enkripsi techniques yaitu substitution dan transposition. Untuk transposition akan dibahas kemudian.
Substitution techniques adalah satu teknik yang huruf-huruf di plaintext diganti dengan huruf-huruf lain, atau dengan angka-angka, atau dengan simbol-simbol. Jika sebuah plaintext ditampilkan sebagai sebuah urutan bits, maka substitusion ivolves mengganti bit patterns dengan ciphertext bit patterns.
Caesar Cipher
Caesar Cipher diperkenalkan oleh Julius Caesar yang mengubah huruf-huruf dalam plaintext dengan huruf-huruf lain yang dilakukan secara konsisten. Contoh:
Plain : a b c d e f g h i j k l m n o p q r s t u v w x y z
Chipper : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Sehingga, ketika pesan yang akan dikirim (plaintext) berbunyi “universitas gunadarma” maka ditulis (ciphertext) dengan ”XQLYHUVLWDV JXQDGDUPD”. Si Penerima pesan tentu harus mengetahui kode pembacaannya (yang diberikan oleh si Pengirim) atau ia mengotak-atik sendiri kode-kode itu.
Algoritma di atas adalah setiap huruf plaintext p, akan disubstitusi menjadi huruf ciphertext c dengan formula: C=E(3, p) = (p + 3) mod 26, atau secara umum algoritma Caesar adalah:
C = E(k, p) = (p + k) mod 26 di mana k diambil dari rentang 0 (huruf A) sampai 25 (huruf Z). algoritma dekripsi menjadi: p = D(k,c) = (C – k) mod 26.
Mengotak-atik sendiri kode-kode itu termasuk dalam kriptanalisis, Karena berupa huruf, maka kemungkinan akan selesai (ketemu kodenya) adalah maksimal 25 kali percobaan. Namun, kemungkinan ketemunya kunci secara mudah tersebut bisa diatasi dengan pembuatan lebih dari satu kunci, misalkan per huruf . Bila setiap huruf pertama, ketiga, kelima, dan seterusnya (gajil) memiliki kunci yang berbeda dengan huruf kedua, keempat, keenam dan seterusnya (genap), maka kemungkinan ketemu kuncinya bisa lebih sulit lagi. Bisa juga dilakukan dengan pengelompokan, tiga huruf-tiga huruf dengan beberapa kunci, juga akan menjadi lebih sulit lagi, dan akan lebih sulit lagi bila per huruf diberi kunci masing-masing (26 kunci).
Latihan: Buat enkripsi untuk ”universitas gunadarma” menjadi ciphertext yang sulit dipecahkan, dan berikan kuncinya untuk melakukan dekripsi untuk membuka ciphertext tersebut. |
Tranposition
Transposition ciphers mengatur ulang huruf-huruf dari plaintext tanpa menggantinya. Sebagai contoh, transposition cipher yang sangat sederhana adalah the rail fence, di mana plaintext ditulis per huruf dalam dua baris dan kemudian dibaca per baris untuk dijadikan ciphertext. Di dalam dua baris rail fence pesan UNIVERSITAS GUNADARMA menjadi:
U | I | E | S | T | S | G | N | D | R | A |
N | V | R | I | A | U | A | A | M |
Yang akan dibaca menjadi: UIESTSGNDRANVRIA UAAM
The rail fence adalah contoh sederhana dari jenis transposition ciphers yang disebut juga dengan route ciphers. Umumnya, di route ciphers elemen-elemen plaintext (biasanya per huruf) ditulis ke dalam bentuk matriks yang disetujui oleh pengirim (transmitter) dan penerima (receiver).
Contoh berikut ini menggunakan kunci kata CIPHER, sebuah matriks dapat ditulis seperti berikut ini:
C | I | P | H | E | R |
1 | 4 | 5 | 3 | 2 | 6 |
U | N | I | V | E | R |
S | I | T | A | S | Z |
G | U | N | A | D | A |
R | M | A | Z | Z | Z |
Tidak seperti sebelumnya, plaintext ditulis secara normal dari kiri ke kanan, dan ciphertext-nya akan dibaca dari atas ke bawah (per kolom). Urutan di mana kolom akan ditulis dari ciphertext disesuaikan dengan urutan kuncinya. Matriks di atas akan menghasilkan ciphertext: USGRESDZVAAZNIUMITNARZAZ. Huruf Z digunakan sebagai pengganti spasi.
Kolom pertama C dalah pendahulu dalam urutan alphabet dibanding dengan huruf-huruf lainnya dalam kata “CIPHER”. Diikuti dengan kolom kedua E, dan seterusnya. Keamanan dalam metode enkripsi ini dapat ditingkatkan dengan enkripsi ulang hasil cipher dengan menggunakan transposisi lain. Hal itu dimungkinkan karena setiap hasil transposisi yang berupa ciphertext dapat ditransposisi dengan kunci lainnya untuk menghasilkan ciphertext berikutnya.
Latihan: Buat enkripsi untuk ”universitas gunadarma” menjadi ciphertext yang sulit dipecahkan, dan berikan kuncinya untuk melakukan dekripsi untuk membuka ciphertext tersebut. |
Pada awalnya (sistem manual) pengkodean dilakukan per huruf atau per karakter (atau kadang-kadang disebut dengan Playfair cipher, digraphs), namun hal itu terus dilakukan hingga ke unit yang lebih besar namun tetap mudah dilakukan enkripsi atau dekripsi menggunakan tangan.
Sebuah block cipher adalah tipe symmetric-key enkripsi algorithm yang mengubah sebuah fixed-length block dari plaintext ke dalam same length dari ciphertext. Kerja enkripsi menggunakan sebuah kunci. Dekripsi adalah simply the reverse dari enkripsi pada proses penggunaan kunci rahasia yang sama. Panjang tetap (fixed length) disebut dengan block size dan pada saat ini umumnya besarnya blok yang digunakan adalah 64 bits. Pada masanya, prosesor akan lebih canggih lagi sehingga mampu mengolah data mencapai 128 bits.
Sejak plaintext blocks yang berbeda dipetakan ke ciphertext blocks yang berbeda juga, sebuah block cipher secara efektif provides permutasi oleh sekumpulan dari seluruh informasi yang mungkin. Permutasi aktual diproduksi selama beberapa bagian operasi yang tentu rahasia, dan dpaat dijelaskan oleh kuncinya. Sebuah iterated block cipher mengenkripsi plaintext block menggunakan sebuah proses dengan beberapa tingkatan (pembulatan). Pada setiap tingkatan dengan proses yang sama (diketahui sebagai round function) adalah diaplikasikan ke data menggunakan sebuah subkey (sekumpulan dari subkeys biasanya diberikan dari pengguna yang membuat kunci).
Banyaknya rounds di sebuah iterasi blok tergantung pada keinginan tingkat sekuritas dari enkripsi ciphertext dan sesuai dengan kemampuan komputernya. Contoh dari sebuah iterated block cipher adalah a Feistel cipher. Feistel ciphers merupakan kelas khusus dari iterated block ciphers. Pada tipe cipher ini, ciphertext dikalkulasi dari pengulangan aplikasi pada kesamaan round function-nya.
Sebuah stream cipher juga memecah plaintext menjadi bagian-bagian, pada saat ini umumnya menjadi sebuah karakter. Selanjutnya dienkripsi nth bagian dari plaintext dengan nth bagian dari key stream. Stream ciphers dapat didesain untuk hal kecepatan, lebih cepat dari beberapa jenis block cipher lainnya. Selama enkripsi dari beberapa bagian plaintext dengan sebuah block cipher akan menghasilkan ciphertext yang sama ketika digunakan kunci yang sama.
Sebuah stream cipher dibangun (diketahui sebagai sebuah keystream), berdasarkan urutan dari bits yang digunakan sebagai sebuah kunci. Proses enkripsi process menghasillan kombinasi keystream dengan plaintextnya.
Sebuah keystream dapat dibentuk dalam dua cara:
1. Independent of the plaintext and ciphertext (dikenal juga sebagai sebuah synchronous stream cipher).
2. Depending on the data and its enkripsi (dikenal dengan self-synchronizing).
Stream cipher yang paling umum didesain untuk synchronous stream ciphers.
Perhatian pada stream ciphers pada saat ini attributed to the appealing properties of the one-time pad. A one-time pad, yang terkadang disebut dengan Vernam cipher, menggunakan sebuah keystream yang memiliki kesamaan panjang sebagai plaintext message dan berisi sebuah series dari bits yang dibentuk keseluruhannya secara acak. Secara teori, ini akan membentuk ciphertext yang kemungkinannya akan sangat aman, karena keystream-nya dibuat secaraacak
Satu metode untuk membangun keystream adalah sebuah Linear Feedback Shift Register (LFSR). Ini merupakan sebuah mekanisme untuk membangun sebuah urutan (sequence) dari binary bits. LFSRs mudah diimplementasikan dan cepat dioperasikan baik secara hardware mauun software bagaimanapun sebuah LFSR tunggal tidak aman karena beberapa tahun kemudian mathematical framework akan dibangun yang dapat menganalisis output mereka. Problem ini dapat dipecahkan Problem ini dapat dipecahkan dengan menggunakan sebuah shift register cascade, sebuah set dari LFSRs yang dihubungkan bersama sehingga perilaku dari satu dari mereka menahan dari yang lain.
DES dibangun oleh IBM dengan nama LUCIFER, yang kemudian diganti menjadi AES (Advanced Enkripsi Standard). DES memiliki lebar per blok (block size) 64-bit dan menggunakan 56-bit kunci selama encripsi. DES disebut juga 16-round Feistel cipher dan didesain awalnya untuk implementasi di dalam hardware.
DES merupakan kriptosistem single-key karena ketika digunakan untuk berkomunikasi antara pengirim dan penerima, mereka menggunakan kunci yang sama yang digunakan untuk meng-enkripsi maupun men-dekripsi informasi. DES dapat juga digunakan oleh single-user, sebagai contoh untuk menyimpan files ke dalam hard disk agar keamanan datanya lebih terjamin.
Penyembunyian informasi yang dilakukan oleh pengirim (sender) terkadang harus pula menyertakan kuncinya dalam pengiriman tersebut (mesipun tidak harus bersamaan waktunya). Hal ini dibutuhkan penerima (receiver) untuk membuka informasi yang disembunyikan itu. Problem terjadi di sini, karena bisa saja kunci tersebut diambil oleh orang yang tidak berhak.
Problem utama pada single-key cryptography adalah problem distribusi kunci. Problem ini merupakan problem dasar karena di antara pengirim dan penerima harus menyalin (ada proses pengiriman) kuncinya, sementara mereka harus mencegah orang lain menyalin (mengetahui) kuncinya. Hal ini tidak perlu dilakukan di sini, berikut gambarannya:
Bayangkan ada dua individu, O dan L, yang akan melakukan pertukaran informasi secara aman tetapi tidak dapat menjamin keamanannya dalam proses transmisi (pengiriman)nya. Mereka berencana membuat enkripsi dan dekripsi untuk memastikan informasi akan sampai ke penerima yang jika diambil oleh orang lain, orang itu (kriptanalis) tidak dapat mengetahui dengan jelas informasi tersebut (seperti melihat sampah tak berarti).
Akhirnya, O dan L berhasil membuat kuncinya, selanjutnya mereka mencoba untuk mengirimkan ciphertext berikut kuncinya tersebut kepada T. Tujuannya adalah, meskipun kunci yang diberikan sama, namun si T tetap tidak dapat menggunakannya untuk membuka ciphertext sebagaimana L dapat membukanya, dan itu berhasil.
Sekarang, jika sebuah sistem dengan 1.000 members, yang saling berkomunikasi satu dengan lainnya, maka dibutuhkan 999 kunci per orang. Hal itu tentu akan memberatkan kerja sistem, belum lagi bila satu orang menggunakan lebih dari satu kunci. Untuk mengurangi beban itu, maka dilakukan formula:
Keys = [n x (n-1)]/2
Members | #/Members2 | # kunci dibutukan |
2 | 4 | 1 |
3 | 9 | 3 |
4 | 16 | 6 |
5 | 25 | 10 |
6 | 36 | 15 |
7 | 49 | 21 |
8 | 64 | 28 |
9 | 81 | 36 |
10 | 100 | 45 |
100 | 10000 | 4950 |
1000 | 1000000 | 499500 |
Banyaknya kunci dibagi dua karena beberapa kunci terjadi pengulangan (kunci A digunakan untuk mengirim ke B sama ketika B mengirim ke A).
Pada pertengahan tahun 70-an Whitfield Diffie dan Martin Hellman menemukan teknik enkripsi asimetris yang merevolusi dunia kriptografi. Kunci asimetris adalah pasangan kunci-kunci kriptografi yang salah satunya dipergunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsikan suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia tertentu – dalam hal ini kunci privat – untuk melakukan pembongkaran terhadap sandi yang dikirim untuknya.
Dengan cara seperti ini, jika Anto mengirim pesan untuk Badu, Anto dapat merasa yakin bahwa pesan tersebut hanya dapat dibaca oleh Badu, karena hanya Badu yang bisa melakukan dekripsi dengan kunci privatnya. Tentunya Anto harus memiliki kunci publik Badu untuk melakukan enkripsi. Anto bisa mendapatkannya dari Badu, ataupun dari pihak ketiga seperti Tari.
Teknik enkripsi asimetris ini jauh lebih lambat ketimbang enkripsi dengan kunci simetris. Oleh karena itu, biasanya bukanlah pesan itu sendiri yang disandikan dengan kunci asimetris, namun hanya kunci simetrislah yang disandikan dengan kunci asimetris. Sedangkan pesannya dikirim setelah disandikan dengan kunci simetris tadi. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan penemunya yakni Rivest, Shamir dan Adleman).
Kini akan dibahas mengenai keutuhan pesan saat dikirimkan. Bagaimana jika Anto mengirimkan surat pembayaran kepada Badu sebesar 1 juta rupiah, namun di tengah jalan Maman (yang ternyata berhasil membobol sandi entah dengan cara apa) membubuhkan angka 0 lagi dibelakangnya sehingga menjadi 10 juta rupiah? Di mata Tari, pesan tersebut harus utuh, tidak diubah-ubah oleh siapapun, bahkan bukan hanya oleh Maman, namun juga termasuk oleh Anto, Badu dan gangguan pada transmisi pesan (noise). Hal ini dapat dilakukan dengan fungsi hash satu arah (one-way hash function), yang terkadang disebut sidik jari (fingerprint), hash, message integrity check, atau manipulation detection code.
Saat Anto hendak mengirimkan pesannya, dia harus membuat sidik jari dari pesan yang akan dikirim untuk Badu. Pesan (yang besarnya dapat bervariasi) yang akan di-hash disebut pre-image, sedangkan outputnya yang memiliki ukurannya tetap, disebut hash-value (nilai hash). Kemudian, melalui saluran komunikasi yang aman, dia mengirimkan sidik jarinya kepada Badu. Setelah Badu menerima pesan si Anto – tidak peduli lewat saluran komunikasi yang mana – Badu kemudian juga membuat sidik jari dari pesan yang telah diterimanya dari Anto. Kemudian Badu membandingkan sidik jari yang dibuatnya dengan sidik jari yang diterimanya dari Anto. Jika kedua sidik jari itu identik, maka Badu dapat yakin bahwa pesan itu utuh tidak diubah-ubah sejak dibuatkan sidik jari yang diterima Badu. Jika pesan pembayaran 1 juta rupiah itu diubah menjadi 10 juta rupiah, tentunya akan menghasilkan nilai hash yang berbeda.
Fungsi hash untuk membuat sidik jari tersebut dapat diketahui oleh siapapun, tak terkecuali, sehingga siapapun dapat memeriksa keutuhan dokumen atau pesan tertentu. Tak ada algoritma rahasia dan umumnya tak ada pula kunci rahasia.
Jaminan dari keamanan sidik jari berangkat dari kenyataan bahwa hampir tidak ada dua pre-image yang memiliki hash-value yang sama. Inilah yang disebut dengan sifat collision free dari suatu fungsi hash yang baik. Selain itu, sangat sulit untuk membuat suatu pre-image jika hanya diketahui hash-valuenya saja.
Contoh algoritma fungsi hash satu arah adalah MD-5 dan SHA. Message authentication code (MAC) adalah salah satu variasi dari fungsi hash satu arah, hanya saja selain pre-image, sebuah kunci rahasia juga menjadi input bagi fungsi MAC.
Badu memang dapat merasa yakin bahwa sidik jari yang datang bersama pesan yang diterimanya memang berkorelasi. Namun bagaimana Badu dapat merasa yakin bahwa pesan itu berasal dari Anto? Bisa saja saat dikirimkan oleh Anto melalui saluran komunikasi yang tidak aman, pesan tersebut diambil oleh Maman. Maman kemudian mengganti isi pesan tadi, dan membuat lagi sidik jari dari pesan yang baru diubahnya itu. Lalu, Maman mengirimkan lagi pesan beserta sidik jarinya itu kepada Badu, seolah-oleh dari Anto.
Untuk mencegah pemalsuan, Anto membubuhkan tanda tangannya pada pesan tersebut. Dalam dunia elektronik, Anto membubuhkan tanda tangan digitalnya pada pesan yang akan dikirimkan untuk Badu sehingga Badu dapat merasa yakin bahwa pesan itu memang dikirim oleh Anto.
Sifat yang diinginkan dari tanda tangan digital diantaranya adalah:
- Tanda tangan itu asli (otentik), tidak mudah ditulis/ditiru oleh orang lain. Pesan dan tanda tangan pesan tersebut juga dapat menjadi barang bukti, sehingga penandatangan tak bisa menyangkal bahwa dulu ia tidak pernah menandatanganinya.
- Tanda tangan itu hanya sah untuk dokumen (pesan) itu saja. Tanda tangan itu tidak bisa dipindahkan dari suatu dokumen ke dokumen lainnya. Ini juga berarti bahwa jika dokumen itu diubah, maka tanda tangan digital dari pesan tersebut tidak lagi sah.
- Tanda tangan itu dapat diperiksa dengan mudah.
- Tanda tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah bertemu dengan penandatangan.
- Tanda tangan itu juga sah untuk kopi dari dokumen yang sama persis.
Meskipun ada banyak skenario, ada baiknya diperhatikan salah satu skenario yang cukup umum dalam penggunaan tanda tangan digital. Tanda tangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tanda tangan itu hanya berlaku untuk dokumen yang bersangkutan saja. Bukan dokumen tersebut secara keseluruhan yang ditandatangani, namun biasanya yang ditandatangani adalah sidik jari dari dokumen itu beserta timestamp-nya dengan menggunakan kunci privat. Timestamp berguna untuk menentukan waktu pengesahan dokumen.
Keabsahan tanda tangan digital itu dapat diperiksa oleh Badu. Pertama-tama Badu membuat lagi sidik jari dari pesan yang diterimanya. Lalu Badu mendekripsi tanda tangan digital Anto untuk mendapatkan sidik jari yang asli. Badu lantas membandingkan kedua sidik jari tersebut. Jka kedua sidik jari tersebut sama, maka dapat diyakini bahwa pesan tersebut ditandatangani oleh Anto.
Anto hendak mengirimkan Badu suatu dokumen rahasia. Jika mereka belum pernah bertemu sebelumnya, tentu Badu harus mengirimkan kunci publiknya kepada Anto agar Anto dapat melakukan enkripsi yang pesannya hanya dapat dibuka oleh Badu. Demikian juga pula sebaliknya, Anto harus mengirimkan kepada Badu kunci publiknya agar Badu dapat memeriksa keaslian tanda tangan Anto pada pesan yang dikirim. Dengan cara ini Anto dapat memastikan pesan itu sampai ke tujuannya, sedangkan Badu dapat merasa yakin bahwa pengirim pesan itu adalah Anto.
Masalah yang muncul adalah bagaimana mereka dapat saling bertukar kunci dengan aman? Bisa saja di tengah pertukaran kunci-kunci publik milik Anto dan Budi itu diganti dengan kunci publik milik Maman. Dengan begitu Maman dengan bebas dapat menyadap dan mengubah seluruh informasi. Inilah suatu contoh dari man-in-the-middle attack.
Anto dan Badu harus sama-sama yakin bahwa kunci-kunci publik yang mereka dapatkan benar-benar otentik. Mereka bisa mendapatkannya dari sesorang yang dipercaya, Tari misalnya. Setiap anggota jaringan diasumsikan telah memiliki saluran komunikasi pribadi yang aman dengan Tari. Saluran inilah yang dimanfaatkan untuk mengirim kunci publik Badu ke Anto (dan sebaliknya). Tari menjadi penjamin keabsahan kunci jika Anto dan Badu sebelumnya tidak pernah bertukar kunci publik. Skenario ini tetap membutuhkan kunci-kunci kriptografi lagi (baik itu kunci simetris ataupun kunci asimetris) untuk pengamanan saluran komunikasi antara Tari dengan Anto atau Badu.
Masalah di atas dapat dipecahkan dengan penggunaan sertifikat digital. Tari tidak lagi setiap saat menjadi penukar kunci, namun Tari cukup menandatangani kunci publik milik setiap orang di jaringan tersebut. Sebenarnya dalam sertifikat tersebut tak hanya berisi kunci publik, namun dapat berisi pula informasi penting lainnya mengenai jati diri pemilik kunci publik, seperti misalnya nama, alamat, pekerjaan, jabatan, perusahaan dan bahkan hash dari suatu informasi rahasia. Semua orang mempercayai otoritas Tari dalam memberikan tanda tangan, sehingga orang-orang dalam jaringan itu merasa aman menggunakan kunci publik yang telah ditandatangani Tari.
Jika Maman berhasil mencuri sertifikat digital yang dipertukarkan antara Anto dan Badu, serta menggantinya dengan sertifikat digital milik dirinya sendiri, maka Anto dan Badu dapat segera melihat bahwa sertifikat digital yang diterimanya bukan ‘lawan bicara’ yang semestinya.
Bagaimana jika Chandra – yang berada di luar jaringan Tari – hendak berkomunikasi dengan Anto? Chandra memiliki juga sertifikat, tetapi tidak ditandatangani oleh Tari, melainkan oleh Tata, seseorang yang dipercaya dalam jaringan tempat Chandra berada. Tari dan Tata adalah otoritas sertifikat (certificate authority), yaitu pihak-pihak yang berwenang memberikan sertifikat. Namun Anto tidak mengenal dan tidak mempercayai Tata. Masalah ini dapat diselesaikan jika ada otoritas sertifikat (OS) yang kedudukannya lebih tinggi dari Tata dan Tari – katakanlah Tania. Tania memberikan pengesahan kepada Tata dan Tari. Jadi ada hirarki dari sertifikat digital. Jika Tania berada pada kedudukan hirarki yang paling tinggi, maka Tania disebut otoritas sertifikat utama (root certificate authority).
Anto mempercayai tanda tangan Tari. Namun karena Tari sendiri keberadaannya disahkan oleh Tania, tentunya Anto harus mengakui otoritas Tania. Jika Tania memberikan pengesahan kepada OS lain dibawahnya, seperti Tata, maka dengan merunut struktur hirarki percabangan OS, Anto dapat memeriksa kebenaran sertifikat digital milik Chandra yang disahkan oleh Tata.
Serangan terhadap sistem yang memiliki pengamanan dengan sertifikat digital sulit dilakukan. Jelas Edi tidak mendapatkan apa-apa kalaupun ia memainkan ulang percakapan antara Anto dan Chandra. Edi membutuhkan kunci privat untuk bisa membuka pesan-pesan yang dipertukarkan, padahal kunci privat itu tidak ada di dalam sertifikat digital.
Penukaran sertifikat digital Chandra dengan sertifikat digital Maman akan segera diketahui, karena sertifikat digital itu pasti berbeda. Sedangkan jika sertifikat yang dipertukarkan antara Chandra dan Anto tidak diganti, tetapi yang diganti oleh Maman adalah pesan yang dipertukarkan, maka tentu ada ketidakcocokan dalam pemeriksaan tanda tangan digital.
Secara teoritis keunggulan dari tanda tangan digital adalah kemampuan untuk melakukan proses otentikasi secara off-line. Pemeriksa cukup memiliki kunci publik dari OS utama untuk mengetahui sah-tidaknya kunci publik dari lawan bicaranya. Selain itu untuk meningkatkan keamanan, kunci publik OS utama bisa saja diintegrasikan dalam program aplikasi. Namun kenyataannya, karena ada kemungkinan sertifikat digital tersebut hilang, tercuri atau identitas pemilik sertifikat berubah (perubahan alamat surat elektronik atau nomor KTP misalnya), maka sertifikat digital perlu diperiksa keabsahannya dengan melihat daftar sertifikat terbatalkan (certificate revocation list) yang disimpan oleh OS.
Andaikan Anto membuat perjanjian jual-beli dengan Badu. Untuk masalah pembayaran, Anto menginstruksikan bank untuk memberikan kepada Badu sejumlah uang sesuai dengan perjanjian jual-beli, namun Anto tidak ingin agar bank mengetahui isi perjanjian jual-beli itu.
- Anto membuat sidik jari dari SPP (yaitu Hash(SPP)) dan sidik jari SPJB (yakni Hash(SPJB)).
- Kemudian, Anto membuat sebuah sidik jari baru dari gabungan kedua sidik jari sebelumnya ( Hash ( (Hash(SPP) + Hash(SPJB) ) ). Hasil hash tersebut dinamakan sidik jari pesan ganda SPP & SPJB.
- Anto menyerahkan surat perjanjian jual belinya kepada Badu. Selain itu Anto juga menyerahkan surat perintah pembayaran beserta sidik jari pesan ganda SPP & SPJB kepada bank.
- Saat Badu ingin mengambil uang di bank, Badu membuat sidik jari dari surat perjanjian jual beli (SPJB). Badu menyerahkan sidik jari SPJB kepada bank.
- Bank membuat sidik jari dari surat perintah pembayaran (SPP).
- Bank menggabungkan sidik jari SPP dengan sidik jari SPJB yang diterimanya dari Badu, kemudian meng-hash-nya sehingga dihasilkan sidik jari pesan ganda SPP & SPJB.
- Jika sidik jari pesan ganda SPP & SPJB yang baru dibuat itu sama dengan yang telah diberikan oleh Anto, maka bank menjalankan kewajibannya kepada Badu.
Jika sidik jari pesan ganda SPP & SPJB dienkripsi dengan kunci privat Anto, maka akan menjadi tanda tangan pesan ganda (dual-signature) Anto untuk kedua perjanjian tersebut [ViMa 97].
Jika Anto memiliki rahasia, ia dapat memberikan ‘separuh’ rahasia itu kepada Badu dan ‘separuh’ rahasia itu kepada Chandra. Badu, yang menerima paruh pertama rahasia Anto, tidak bisa mengetahui apa isi rahasia itu. Demikian pula dengan Chandra. Namun, jika Badu dan Chandra menggabungkan potongan-potongan rahasia itu, maka akan tergambar rahasia Anto. Pembagian rahasia (secret splitting) dapat dilakukan dengan cara:
- Anto membuat seuntai string acak R yang panjangnya sama dengan pesan rahasia M.
- Anto melakukan operasi XOR antara M dengan R, sehingga menghasilkan S.
- Anto memberikan R kepada Badu dan S kepada Chandra
- Jika Badu dengan Chandra bertemu, maka mereka sanggup mendapatkan pesan rahasia M dengan cara melakukan operasi XOR antara S dengan R.
Protokol ini bermanfaat kalau misalnya Anto hendak membuat suatu pernyataan atau komitmen (katakanlah suatu string binari 1000), namun Anto tak ingin agar Badu mengetahui isi pernyatan tersebut sebelum saatnya. Badu harus merasa yakin bahwa Anto pada saatnya nanti, benar-benar mengeluarkan isi pernyataan yang sebenarnya saat melakukan komitmen, dan tidak mengeluarkan pernyataan yang sudah diubah (misalnya mengubah string tadi menjadi 1001). Ada beberapa jenis protokol komitmen-bit, namun di bawah ini hanya dijelaskan salah satu diantaranya, yakni dengan fungsi hash satu arah:
- Anto membuat dua buah string secara acak, yakni R1 dan R2
- Anto menggabungkan kedua string acak itu ke dalam pernyataannya (b) yang akan dikomitmenkan menjadi (R1, R2, b)
- Anto menghitung hash dari gabungan string itu, Hash(R1, R2, b).
- Anto kemudian mengirimkan hash tersebut beserta R1 kepada Badu. Badu akan menyimpannya untuk pemeriksaan nanti.
- Jika sudah tiba saatnya untuk menunjukkan pernyataannya, Anto memberikan seluruh string (R1, R2, b) kepada Badu.
- Badu memeriksa fungsi hash dari (R1, R2, b). Jika cocok dengan hash yang diperiksanya dulu, maka pernyataan Anto tidak diubah.
Badu disodori 100 amplop tertutup oleh Anto. Amplop itu berisi secarik pesan dan kertas karbon. Badu membuka 99 amplop secara acak. Jika seluruh amplop yang dibuka ternyata berisi pesan yang mirip, maka Badu dapat merasa bahwa amplop ke-100 juga berisi pesan yang mirip pula. Namun, jika satu saja dari 99 amplop tadi ada yang isi berbeda dari yang lain, maka Badu dapat mencurigai bahwa isi amplop ke-100 bisa saja juga tidak mirip dengan isi ke-98 amplop lainnya.
Dalam kasus dimana ternyata ke-99 amplop yang dibuka secara acak tadi berisi pesan yang mirip, maka dengan keyakinan yang cukup tinggi Badu berani menandatangani amplop terakhir yang belum dibuka. Tanda tangan Badu akan menembus amplop dan kertas karbon, sehingga pesan dalam amplop akan tertandatangani oleh Badu. Badu kurang lebih tahu apa isi pesan di amplop ke-100 itu. Protokol tanda tangan buta (blind signature) bekerja sebagai berikut:
- Anto ‘mengalikan’ dokumen (yang akan ditandatangani) dengan sebuah faktor pembuta.
- Anto mengirimkan dokumen itu kepada Badu
- Badu menandatangani dokumen itu
- Badu mengembalikan dokumen yang sudah ditandatangani tadi kepada Anto
- Anto membaginya dengan faktor pembuta, sehingga mendapatkan dokumen yang asli sudah tertandatangani oleh Badu.
Berdasarkan beberapa teori penunjang di atas, maka dapatlah dibangun suatu protokol untuk uang digital. David Chaum, memiliki beberapa paten atas protokol uang digital yang diciptakannya. Berikut ini dijelaskan salah satu protokol uang digital:
- Anto menyiapkan n lembar uang dengan nilai tertentu. Setiap uang diberi nomor seri acak X yang cukup panjang, sehingga kemungkinan 2 bilangan acak sama kecil sekali. Dalam setiap uang juga ada n (I1, I2, …, In) string identifikasi yang berguna untuk memberikan informasi mengenai pemilik uang, yakni Anto. Anto kemudian memecah tiap-tiap string identitas diri itu tadi menjadi dua bagian dengan menggunakan protokol pemecahan rahasia. Lantas Anto melakukan bit-komitmen pada setiap pecahan. Contoh uang yang disiapkan adalah:
Nilai: Rp.1.000,-
Nomor seri acak: X
String identitas: I1 = (I1L, I1R)
I2 = (I2L, I2R)
. . . .
In = (InL, InR)
Nomor seri acak: X
String identitas: I1 = (I1L, I1R)
I2 = (I2L, I2R)
. . . .
In = (InL, InR)
- Anto memasukkan uang itu kedalam yang juga disisipi kertas karbon amplop (mengalikan uang dengan faktor pembuta), lalu memberikannya kepada bank.
- Bank akan meminta Anto untuk membuka n - 1 amplop itu secara acak. Bank memeriksa apakah semua uang tersebut memiliki nilai yang sama. Bank juga meminta kepada Anto untuk membuktikan kejujuran dirinya saat menuliskan string identifikasi pada uang itu, dengan cara menggabungkan pasangan-pasangan string identifikasi.
- Jika bank merasa bahwa Anto tidak melakukan kecurangan, maka bank akan menandatangani uang terakhir yang masih di dalam amplop itu dan menyerahkannya kepada Anto. Tanda tangan bank akan menembus amplop dan kertas karbon sehingga uang di dalamnya tertandatangani.
- Anto membuka amplop. Uang siap dipakai.
- Anto menyerahkan uang kepada Badu. Badu sebagai penerima uang, akan memeriksa apakah tanda tangan bank pada uang itu absah.
- Badu akan menyuruh Anto untuk membuka salah satu sisi dari setiap string identifikasi di setiap uang dengan cara memberikan string pemilih sepanjang n-bit. Artinya, jika string pemilih itu b1, b2, …, bn maka Anto harus membuka sisi kiri atau kanan dari Ii, tergantung apakah bi itu 0 atau 1.
- Setelah itu Badu membawa uang tersebut ke bank. Bank akan memeriksa apakah nomor seri uang tersebut sudah pernah diterima oleh bank. Kalau belum ada, maka uang tersebut dinyatakan sah.
- Jika nomor seri uang itu sudah pernah diterima oleh bank, maka bank akan memeriksa string identitas yang sudah terbuka pada uang itu dan membandingkannya dengan string identitas pada uang dengan nomor seri sama yang pernah diterima bank sebelumnya. Jika ternyata string identitas itu sama, maka berarti Badu yang menggandakan uang tersebut. Namun jika berbeda, maka berarti Anto yang menggandakan uang digital tersebut.
Jika Anto menggandakan uang digitalnya lalu menggunakan uang digital yang sama itu dua kali, bank dapat mendeteksinya meskipun Badu tidak bisa. Badu memang ‘membuka’ identitas uang, namun hanya separuh-separuh. Kalau uang digital itu pernah diberikan Anto kepada Chandra, maka tentu Chandra juga pernah ‘membuka’ separuh identitas uang digital tadi secara acak. Nah, kemungkinan bahwa proses pembukaan identitas oleh Badu dan Chandra itu sama (maksudnya sama urutan pembukaannya, misalnya kiri-kiri-kanan-kiri-kanan, dan seterusnya) adalah 1 per 2n. Andaikan n cukup besar, katakanlah 16 saja, maka kemungkinan Badu dan Chandra secara acak membuka paruhan identitas dengan urutan sama adalah 1 : 65536. Artinya, jika Anto memberikan uangnya kepada dua orang yang berbeda, kemungkinan besar paruhan identitas yang dibuka juga berbeda. Jika saat otentikasi uang digital oleh bank ditemukan bahwa ada uang digital dengan nomor seri sama yang telah diuangkan, dan paruhan identitasnya berbeda, maka kemungkinan besar Anto menyerahkan uang digital yang sama kepada dua orang yang berbeda.
Sedangkan apabila Badu menguangkan uang digital yang sama dua kali, karena paruhan identitas dari uang digital yang diotentikasi itu sama persis dengan yang sudah tercatat, maka kemungkinan besar uang itu diberikan Anto kepada orang yang sama. Badulah yang ketahuan menguangkan uang digital yang sama dua kali. Penggunaan uang digital yang sama dua kali dikenal dengan istilah pembelanjaan ganda (double spending).
Meskipun ada beberapa cara bagi seorang kriptoanalis untuk memecahkan pesan rahasia, namun cara yang cukup umum dilakukan adalah dengan melakukan brute-force attack. Dengan cara ini, seorang penyerang mencoba seluruh kemungkinan kunci yang ada, sampai menemukan sebuah kunci yang jika dipergunakan untuk mendekripsi pesan yang disandikan akan memunculkan suatu pesan yang bermakna. Tentunya cara ini bermanfaat hanya jika sudah diketahui algoritmanya, namun tidak diketahui kuncinya apa.
PIN 5 digit berarti biasanya ada 100.000 kombinasi. Kelihatannya cukup, namun sebenarnya kurang. Dengan sebuah komputer pribadi saja bisa dengan mudah diselesaikan. Salah satu pencegahannya adalah dengan pembatasan seberapa banyak pemakai dapat mencoba memasukkan PIN. Biasanya dibatasi tiga kali.
Berikut ini diberikan contoh dari brute-force attack pada suatu algoritma ‘geser pada papan ketik QWERTY’:
Sandi zsdyrtvstf dicoba dengan kunci 3 menjadi bjkwpqmjql
Sandi zsdyrtvstf dicoba dengan kunci 2 menjadi nkleqwzkwa
Sandi zsdyrtvstf dicoba dengan kunci 1 menjadi mastercard
Sandi zsdyrtvstf dicoba dengan kunci 2 menjadi nkleqwzkwa
Sandi zsdyrtvstf dicoba dengan kunci 1 menjadi mastercard
Ternyata kunci 1 cocok, karena dalam pesan yang disandikan itu mungkin ada transaksi yang menggunakan kartu kredit ‘mastercard’. Dengan menggunakan kunci yang sama, kemudian penyerang berusaha mendekripsikan bagian-bagian lain dari pesan, mungkin berusaha mengambil nomor kartu kreditnya. Kunci itu juga dapat dipakai untuk keperluan lain, misalnya untuk melakukan penipuan (spoofing).
DES, sebuah algoritma simetris, memiliki panjang kunci 56-bit, artinya ada 256 kemungkinan kunci. Sedangkan peraturan di Amerika Serikat yang akan diberlakukan pada tahun 1998 nanti akan melarang ekspor teknologi enkripsi lebih dari 40-bit. Sedangkan untuk keperluan dalam negeri Amerika Serikat, kunci 128-bit masih diizinkan penggunaannya [Star 97].
Tahun 1995, Michael Wierner merancang sebuah chip yang mengkhususkan diri untuk melakukan brute-force attack pada metoda enkripsi DES [Schn 96]. Chip tersebut dapat menemukan kunci rahasia dalam waktu rata-rata 3,5 jam dan kunci itu dijamin dapat ditemukan dalam waktu 7 jam. Harga pembuatannya adalah 1 juta dollar AS. Sesuai hukum Moore, setiap 18 bulan kemampuan komputer meningkat 2 kali lipat untuk harga yang sama. Maka, pada tahun 2000, harga chip itu hanya berkisar 100.000 dolar AS. Harga ini masih dalam jangkauan daya beli beberapa mafia kejahatan terorganisir. Karena itu, kini disarankan untuk menggunakan DES dengan kunci 112-bit.
Panjang kunci DES | Jaminan waktu untuk menemukan kunci |
40-bit | 0,4 detik |
56-bit | 7 jam |
64-bit | 74 jam 40 menit |
128-bit | 157.129.203.952.300.000 tahun |
Protokol keamanan SSL (Secure Socket Layer) pada Netscape Navigator menggunakan algoritma RC4 40-bit untuk enkripsi simetrisnya. Tahun 1995, Damien Doligez menjebolnya menggunakan 120 komputer Unix yang terhubung pada jaringan dalam waktu 8 hari [Star 97]. Dengan cara seperti ini, dijamin bahwa dalam 15 hari kunci itu pasti ditemukan.
Panjang kunci RC4 | Jaminan waktu untuk menemukan kunci |
40-bit | 15 hari |
56-bit | 2.691,49 tahun |
64-bit | 689.021,57 tahun |
128-bit | 12.710.204.652.610.000.000.000.000 tahun |
Panjang Kunci Asimetris
Sedangkan pada sistem enkripsi kunci publik-privat, yang memegang peranan dalam menjebol kunci privat adalah kesulitan mencari faktor prima bilangan yang sangat besar. Beberapa kunci yang dipergunakan 10 tahun lalu saja kini sama sekali tidak laik pakai seiring dengan perkembangan ilmu pengetahuan dan teknologi.
Kunci publik yang dimanfaatkan SSL adalah teknologi kunci publik 40-bit dari RSA, yang ternyata dapat dijebol dalam waktu 1,3 hari dengan 100 komputer menggunakan brute-force attack [DHMM 96].
Ronald Rivest, salah seorang penemu RSA, juga pernah menghitung bahwa untuk menemukan kunci RSA 512-bit dengan cara brute-force attack membutuhkan biaya 8,2 juta dollar AS [DaLe 96]. Untuk kasus tertentu, ini pun tidak aman. Kini perusahaan-perusahaan disarankan menggunakan kunci 2048 bit agar data aman sampai tahun 2015.
Pada saat tulisan ini dibuat, ekspor teknologi enkripsi DES 56-bit keluar dari Amerika Serikat masih diizinkan. Untuk yang lainnya hanya diizinkan 40-bit. Setelah tanggal 31 Desember 1998, ekspor teknologi enkripsi DES dari Amerika Serikat hanya dibatasi sampai 40-bit saja, atau boleh saja tetap 56-bit, namun pengembang perangkat lunak itu harus menyediakan perangkat untuk membuka kunci itu juga [Star 97].
Panjang-pendeknya kunci dalam teknik-teknik enkripsi pada sistem perdagangan di Internet, akan menjadi salah satu titik lemah sistem perdagangan di Internet itu sendiri. Ada argumen yang menyatakan bahwa kalau pada suatu saat ukuran kunci publik-privat terasa terlalu pendek, maka panjangkan saja lagi kunci itu, tentu proses penyerangannya akan makin sulit. Hal ini memang benar, namun ada pertimbangan lain bahwa pengguna kunci tersebut harus bisa melakukan proses enkripsi-dekripsi dengan teknologi yang secara komersil memungkinkan. Terlihat di sini bahwa dibutuhkan ukuran kunci yang cukup panjang supaya aman, tapi tidak terlalu panjang agar memudahkan dalam penggunannya secara umum.
Beberapa teknik brute-force attack lain yang tidak akan dibahas panjang disini, seperti dengan penyebaran virus, komputasi paralel pada jaringan raksasa, undian Cina, atau penggunaan komputer biologis. Semua itu menunjukkan bahwa ada kemungkinan bahwa kunci bisa didapatkan dengan brute-force attack.
Satu hal yang patut dicatat adalah bukan berarti dengan mungkinnya suatu metoda enkripsi dijebol lantas metoda enkripsi itu tidak bermanfaat, namun yang penting apakah biaya untuk melakukan serangan itu lebih besar dari pada harga informasi yang dienkripsi itu. Jika ya, maka untuk apa sang pencuri melakukannya? Untuk apa melakukan penyerangan dengan biaya 2 milyar rupiah kalau informasi yang dienkripsi hanya berharga Rp.10.000,- saja?
4. System Security
DAFTAR ISTILAH
No. | Istilah | Arti |
1. | Ciphertext | Teks yang sudah dienkripsi dari aslinya |
2. | Cryptanalysis | Ilmu (dan seni ) untuk mengembalikan informasi dari ciphertext tanpa diketahui kunci sebelumnya |
3. | Cryptography | Ilmu mengenai pengubahan (enciphering) dan pengembalian (deciphering) dari pesan ke dalam kode rahasia atau cipher. |
4. | Cryptosystem | Sebuah sistem yang digunakan untuk mengubah informasi |
5. | Decryprion | Proses untuk mengembalikan cipher ke plaintext |
6. | Enkripsi | Proses untuk mengubah plaintext ke cipher |
7. | Key | Kunci atau informasi rahasia yang diketahui oleh Pengirim atau Penerima untuk membuka plaintext |
8. | Monoalphabetic Substitution | Sebuah metode enkripsi di mana huruf dalam plaintext selalu diubah dengan huruf yang sama di dalam ciphertext |
9. | Plaintext | Sumber informasi (informasi asli) yang akan diamankan |
10. | Polyalphabetic Substitution | Sebuah metode enkripsi di mana huruf dalam plaintext tidak selalu diubah dengan huruf yang sama di dalam ciphertext |
1 komentar:
makasih banyak mas ilmu cryptographynya, saya akan pelajari ini lebih dalam
Posting Komentar