Apa itu one-time pad?
Dalam kriptografi, one-time pad adalah sistem di mana kunci privat yang dihasilkan secara acak digunakan hanya sekali untuk mengenkripsi pesan, yang kemudian didekripsi oleh penerima menggunakan one-time pad dan kunci yang sesuai.
Pesan yang dienkripsi dengan kunci yang didasarkan pada keacakan memiliki keuntungan bahwa secara teoretis tidak ada cara untuk memecahkan kode dengan menganalisis serangkaian pesan. Setiap enkripsi adalah unik dan tidak memiliki hubungan dengan enkripsi berikutnya, sehingga tidak mungkin mendeteksi pola. Namun, dengan one-time pad, pihak yang mendekripsi harus memiliki akses ke kunci yang sama yang digunakan untuk mengenkripsi pesan; ini menimbulkan masalah tentang bagaimana mengirimkan kunci ke pihak yang mendekripsi dengan aman, atau bagaimana menjaga kedua kunci tetap aman.
One-time pad telah digunakan ketika kedua pihak memulai di lokasi fisik yang sama dan kemudian berpisah, masing-masing dengan pengetahuan tentang kunci dalam one-time pad. Kunci yang digunakan dalam one-time pad disebut kunci rahasia karena jika terungkap, pesan yang dienkripsi dengannya dapat dengan mudah diuraikan. One-time pad menonjol dalam transmisi pesan rahasia dan spionase sebelum dan selama Perang Dunia II dan di era Perang Dingin. Di internet, kesulitan dalam mengendalikan kunci rahasia dengan aman menyebabkan penemuan kriptografi kunci publik.
Bagaimana cara kerja one-time pad?
Biasanya, one-time pad dibuat dengan menghasilkan serangkaian karakter atau angka yang setidaknya sepanjang pesan terpanjang yang akan dikirim. Rangkaian nilai ini dihasilkan secara acak, misalnya dengan menggunakan program komputer dengan pembangkit angka acak.
Nilai-nilai tersebut dituliskan pada pad atau pada perangkat apa pun yang dapat dibaca seseorang. Pad diberikan kepada siapa saja yang kemungkinan akan mengirim atau menerima pesan sensitif. Biasanya, pad dapat diterbitkan sebagai kumpulan kunci—satu untuk setiap hari dalam sebulan, misalnya, dengan satu kunci kedaluwarsa pada akhir setiap hari atau setelah digunakan sekali.
Ketika sebuah pesan akan dikirim, pengirim menggunakan kunci rahasia untuk mengenkripsi setiap karakter satu per satu. Jika komputer digunakan, setiap bit dalam karakter—yang biasanya delapan bit panjangnya—dioperasikan dengan exclusive OR (XOR) dengan bit yang sesuai dalam kunci rahasia.
Dengan one-time pad, algoritma enkripsi hanyalah operasi XOR. Ketika ada kekhawatiran tentang seberapa acak kunci tersebut, kadang-kadang dikombinasikan dengan algoritma lain, seperti MD5. Jenis enkripsi ini dapat dianggap sebagai sumber kebisingan 100% yang digunakan untuk menutupi pesan, dan hanya pengirim dan penerima yang memiliki cara untuk menghilangkan kebisingan tersebut.
Setelah one-time pad digunakan, ia tidak dapat digunakan kembali. Jika digunakan kembali, seseorang yang mencegat beberapa pesan dapat mulai membandingkannya untuk pengkodean serupa untuk kata-kata yang mungkin muncul dalam beberapa pesan.
Contoh sederhana tentang bagaimana one-time pad bekerja ditunjukkan dalam contoh di bawah ini. Di sini, kita memiliki pesan teks biasa TEST. Kita juga memiliki kunci rahasia acak FVEB, yang memiliki panjang yang sama dengan pesan yang dikirim.
Menggunakan proses sederhana dengan menetapkan huruf ke angka, pesan teks biasa dapat diterjemahkan menjadi 19, 4, 18, dan 19. Menggunakan metode konversi yang sama untuk kunci rahasia, kita mendapatkan 5, 21, 4, dan 1. Menambahkan keduanya, kita mendapatkan 24, 25, 22, dan 20; ketika dikonversi kembali ke huruf alfabet, ini memberi kita pesan terenkripsi YZWU. Pesan ini kemudian dapat didekripsi dengan membalik langkah-langkahnya.
Bagaimana one-time pad digunakan?
Meskipun one-time pad benar-benar merupakan satu-satunya metode enkripsi yang tidak dapat dipecahkan, penggunaannya tidak praktis untuk banyak aplikasi modern karena sistem harus memenuhi kondisi berikut:
- Kunci harus memiliki ukuran yang sama dengan pesan yang dikirim.
- Kunci harus benar-benar acak.
- Kunci tidak boleh digunakan kembali.
- Kunci harus dibagikan dengan aman antara pihak pengirim dan penerima.
Karena kondisi yang ketat ini, penggunaan one-time pad dalam media digital menjadi tidak praktis. Tantangan terbesar terletak pada pembuatan kunci yang benar-benar acak, ketidakmampuan untuk menggunakan kembali kunci, dan proses berbagi kunci secara aman dengan pihak penerima.
Karena sifat jaringan komputer yang terdistribusi dan cara data dibagikan melalui internet global, mekanisme enkripsi lainnya lebih cocok digunakan, meskipun secara praktik kurang aman. One-time pad kini lebih sering dianggap sebagai metode enkripsi historis yang pernah sukses digunakan di era sebelum teknologi modern.
Apa perbedaan antara one-time pad dan stream cipher?
Dalam banyak hal, one-time pad dapat dianggap sebagai stream cipher jika kondisi tertentu terpenuhi. Namun, tidak semua stream cipher dapat dianggap sebagai one-time pad.
Perbedaan utamanya adalah bahwa one-time pad mengharuskan panjang kunci setidaknya sama dengan atau lebih panjang dari pesan yang dikirim. Sementara itu, definisi stream cipher tidak memiliki ketentuan panjang kunci tersebut. Hal ini berarti stream cipher dapat dienkripsi dengan kunci yang lebih pendek dari panjang pesan, yang secara bawaan kurang aman.
Pelajari bagaimana organisasi harus mengadopsi metode autentikasi yang lebih kuat dan lebih aman jika mereka ingin memanfaatkan teknologi IoT.