Cryptography adalah metode untuk melindungi informasi dan komunikasi dengan menggunakan kode, sehingga hanya pihak yang berhak saja yang bisa membaca dan memprosesnya.
Dalam ilmu komputer, cryptography mengacu pada teknik komunikasi dan informasi yang aman, yang berasal dari konsep matematika dan sekumpulan perhitungan berbasis aturan yang disebut algoritma, untuk mengubah pesan menjadi bentuk yang sulit untuk dipahami. Algoritma deterministik ini digunakan untuk menghasilkan kunci kriptografi, tanda tangan digital, verifikasi, dan juga untuk melindungi privasi data, aktivitas browsing di internet, serta komunikasi rahasia seperti transaksi kartu kredit dan email.
Teknik-teknik Kriptografi
Cryptography punya kaitan erat dengan disiplin cryptology dan cryptanalysis. Beberapa tekniknya meliputi microdots, penggabungan kata dengan gambar, serta berbagai metode lain untuk menyembunyikan informasi baik saat disimpan maupun dikirim. Di era serba digital sekarang, cryptography umumnya diasosiasikan dengan proses pengacakan plaintext (teks biasa, kadang disebut juga cleartext) menjadi ciphertext (proses ini disebut encryption atau enkripsi), lalu dikembalikan lagi (disebut dekripsi). Orang-orang yang mendalami bidang ini dikenal dengan sebutan cryptographer.
Kriptografi modern fokus pada empat tujuan utama berikut:
- Confidentiality (Kerahasiaan). Informasi hanya bisa dipahami oleh pihak yang memang berhak menerimanya.
- Integrity (Integritas). Informasi tidak bisa diubah baik saat disimpan atau dikirim tanpa diketahui adanya perubahan.
- Non-repudiation (Tidak dapat disangkal). Pembuat atau pengirim informasi tidak bisa menyangkal keterlibatannya di kemudian hari.
- Authentication (Autentikasi). Pengirim dan penerima bisa saling mengonfirmasi identitas satu sama lain dan asal/tujuan informasi.
Prosedur dan protokol yang memenuhi satu atau lebih dari kriteria di atas dikenal sebagai cryptosystem. Cryptosystem sering dianggap hanya sebatas prosedur matematis dan program komputer, padahal juga mencakup pengaturan perilaku manusia, seperti memilih password yang sulit ditebak, logout dari sistem yang tidak digunakan, dan tidak membicarakan prosedur sensitif ke orang luar.
Algoritma Kriptografi
Cryptosystem menggunakan serangkaian prosedur yang disebut algoritma kriptografi atau cipher, untuk mengenkripsi dan mendekripsi pesan guna mengamankan komunikasi antar sistem komputer, perangkat, dan aplikasi.
Satu cipher suite bisa menggunakan algoritma untuk enkripsi, algoritma lain untuk autentikasi pesan, dan algoritma lain lagi untuk pertukaran kunci. Proses ini diintegrasikan dalam protokol dan ditulis dalam perangkat lunak yang berjalan di sistem operasi (OS) dan sistem komputer yang saling terhubung. Beberapa tahapan yang umum dalam proses ini adalah:
- Pembuatan kunci publik dan privat untuk enkripsi/dekripsi data.
- Tanda tangan digital dan verifikasi untuk autentikasi pesan.
- Pertukaran kunci (key exchange).
Jenis-Jenis Kriptografi
Single-key atau symmetric-key encryption algoritma menggunakan panjang bit tetap yang dikenal sebagai block cipher dengan kunci rahasia yang sama untuk mengenkripsi dan mendekripsi data, baik oleh pengirim maupun penerima. Salah satu contoh symmetric-key cryptography adalah *Advanced Encryption Standard* (AES). AES ditetapkan sebagai standar oleh NIST pada November 2001 melalui FIPS 197 untuk melindungi informasi sensitif. Standar ini diwajibkan oleh pemerintah AS dan juga luas digunakan oleh sektor swasta.
Pada Juni 2003, AES disetujui untuk digunakan pada informasi terklasifikasi oleh pemerintah AS. AES merupakan spesifikasi bebas royalti dan diimplementasikan dalam bentuk perangkat lunak maupun perangkat keras di seluruh dunia. AES merupakan penerus dari Data Encryption Standard (DES) dan DES3. AES menggunakan panjang kunci yang lebih besar — 128-bit, 192-bit, dan 256-bit — untuk mencegah serangan brute-force dan lainnya.
Public-key atau asymmetric-key encryption algoritma menggunakan sepasang kunci: kunci publik (digunakan untuk enkripsi) dan kunci privat (digunakan untuk dekripsi dan hanya diketahui oleh pemiliknya, kecuali dibagikan).
Contoh dari public-key cryptography antara lain:
- RSA (Rivest-Shamir-Adleman), umum digunakan di internet.
- Elliptic Curve Digital Signature Algorithm (ECDSA), digunakan di Bitcoin.
- Digital Signature Algorithm (DSA), distandarisasi oleh NIST dalam FIPS 186-4 untuk tanda tangan digital.
- Pertukaran kunci Diffie-Hellman.
Untuk menjaga integritas data dalam kriptografi, digunakan hash function, yaitu fungsi yang mengubah input menjadi output deterministik berukuran tetap. Beberapa jenis fungsi hash kriptografi antara lain SHA-1, SHA-2, dan SHA-3.
Isu dan Kekhawatiran dalam Kriptografi
Penyerang bisa saja menembus perlindungan kriptografi, meretas komputer yang melakukan enkripsi/dekripsi, atau mengeksploitasi implementasi yang lemah seperti penggunaan kunci default. Meskipun begitu, kriptografi membuat akses ke pesan dan data menjadi jauh lebih sulit bagi penyerang.
Kekhawatiran meningkat terhadap kemampuan komputasi kuantum untuk menembus standar kriptografi yang ada saat ini. Karena itu, NIST pada tahun 2016 mengundang para ilmuwan dan matematikawan untuk mengajukan standar baru kriptografi publik. NIST mengumumkan bahwa akan ada tiga algoritma kriptografi tahan kuantum yang siap digunakan pada tahun 2024.
Berbeda dengan komputer biasa, komputer kuantum menggunakan bit kuantum (qubit) yang bisa merepresentasikan angka 0 dan 1 secara bersamaan, sehingga bisa melakukan dua perhitungan sekaligus. Meski komputer kuantum skala besar mungkin belum akan dibangun dalam dekade ini, NIST menyatakan bahwa infrastruktur saat ini sudah butuh standarisasi algoritma publik yang aman dan dapat dipahami bersama.
Sejarah Kriptografi
Kata “cryptography” berasal dari bahasa Yunani *kryptos* yang berarti tersembunyi.
Awalan “crypt-” berarti “tersembunyi” atau “terkunci”, dan akhiran “-graphy” berarti “tulisan”.
Asal-usul kriptografi biasanya ditelusuri ke sekitar tahun 2000 SM, lewat praktik hieroglif Mesir. Hieroglif ini berupa gambar-gambar rumit yang maknanya hanya diketahui oleh segelintir orang.
Penggunaan cipher modern pertama diketahui dilakukan oleh Julius Caesar (100 SM – 44 SM), yang tidak percaya dengan para pembawanya saat menyampaikan pesan ke gubernur atau komandannya. Maka dari itu, dia membuat sistem di mana tiap karakter dalam pesannya digantikan oleh karakter yang berada tiga posisi setelahnya dalam alfabet Romawi (dikenal sebagai Caesar Cipher).
Di era modern, cryptography telah menjadi arena pertempuran antara ahli matematika dan ilmuwan komputer terbaik dunia. Kemampuan untuk menyimpan dan mentransmisikan informasi sensitif secara aman telah menjadi faktor penting dalam perang maupun bisnis.
Karena pemerintah tidak ingin ada pihak tertentu (baik dari dalam atau luar negeri) bisa mengakses informasi tersembunyi yang berpotensi membahayakan negara, maka kriptografi telah dikenakan berbagai pembatasan di banyak negara, mulai dari pembatasan penggunaan dan ekspor software, hingga penyebaran konsep matematika yang bisa dipakai untuk membuat cryptosystem.
Namun, internet telah memungkinkan tersebarnya berbagai program kriptografi yang kuat, dan lebih penting lagi: menyebarluaskan teknik-teknik kriptografi itu sendiri. Kini banyak cryptosystem dan ide-ide canggih di bidang ini sudah tersedia di domain publik.