Kriptografi – Menempatkan Kripto Menjadi Mata Uang
Artikel ini mengeksplorasi teknologi fundamental di balik mata uang kripto dan kriptografi, mulai dari dasar-dasar enkripsi hingga sandi.
Dalam artikel mendalam ini, kita akan membahas satu teknologi fundamental di balik mata uang kripto – kriptografi – yang mencakup dasar-dasar enkripsi, fungsi hash, dan cipher sebagai pengantar untuk mengenal kriptografi yang sedang bekerja.
Pengantar Kriptografi
Kriptografi, dalam istilah yang paling sederhana, adalah membuat komunikasi menjadi rahasia. ‘Rahasia’ di sini berarti bahwa, bahkan di hadapan penyadap yang dapat memantau semua komunikasi, pesan yang dimaksudkan masih dapat disampaikan kepada penerima sementara dirahasiakan dari orang lain.
Kriptografi sering kali menggunakan teknik matematika untuk mencapai sifat kerahasiaan yang diinginkan. Hal ini sering dikaitkan dengan proses plaintext biasa yang dikonversi menjadi ciphertext, yang merupakan teks yang hanya dapat diuraikan oleh penerima yang dituju. Proses yang mengubah plaintext menjadi ciphertext dikenal sebagai enkripsi, sedangkan proses konversi dari ciphertext menjadi plaintext disebut dekripsi. Cipher (atau sandi) adalah sebuah algoritma untuk melakukan enkripsi atau dekripsi – serangkaian langkah yang terdefinisi dengan baik yang dapat diikuti sebagai sebuah prosedur.
Kriptografi bukanlah sesuatu yang baru, atau hanya untuk mata uang kripto. Ini banyak digunakan dalam kehidupan sehari-hari di mana informasi perlu dilindungi, seperti kata sandi transaksi perbankan, kata sandi akun email, dan transaksi e-commerce.
Blockchain dan mata uang kripto menggunakan kriptografi dalam berbagai cara – untuk dompet, transaksi, keamanan, dan protokol yang menjaga privasi. Sebagai contoh:
- Kriptografi kunci publik yang digunakan dalam sebuah transaksi
- Hashing untuk penambangan Bitcoin
- Pohon Merkle untuk penentuan posisi transaksi dalam blok
Hampir dapat dikatakan bahwa jika Anda tidak memahami kriptografi, Anda tidak memahami mata uang kripto. Untuk belajar lebih baik, mari selami lebih dalam dunia kriptografi.
Fungsi Enkripsi dan Hash Simetris dan Asimetris
Klasifikasi algoritme kriptografi didasarkan pada jumlah kunci yang digunakan untuk enkripsi dan dekripsi: enkripsi simetris, enkripsi asimetris, dan fungsi hash.
Masing-masing memiliki aplikasi spesifik yang tidak tergantikan satu sama lain. Sebagai contoh, enkripsi asimetris diperlukan untuk menghasilkan pasangan kunci privat/publik, sementara fungsi hash diperlukan untuk menghasilkan sidik jari digital yang unik.
Enkripsi Simetris
Enkripsi simetris menggunakan kunci tunggal untuk enkripsi dan dekripsi. Pengirim pesan menggunakan kunci untuk mengenkripsi plaintext dan mengirimkan ciphertext kepada penerima, yang menggunakan kunci yang sama untuk mendekripsi pesan dan memulihkan plaintext. Sistem kunci simetris lebih cepat dan lebih sederhana (jika dibandingkan dengan sistem kunci asimetris), tetapi mereka tidak menyelesaikan masalah pertukaran kunci antara pengirim dan penerima jika kuncinya tidak diketahui sebelumnya.
Skema kriptografi simetris dibagi lagi menjadi cipher blok dan cipher stream.
Blokir sandi
Block cipher memecah input menjadi blok-blok berukuran tetap (misalnya, 128 bit), dan masing-masing blok diproses oleh beberapa fungsi dengan kunci rahasia. Algoritme menentukan panjang blok, kunci, dan fungsi yang digunakan dalam proses.
Beberapa sandi blok yang umum digunakan termasuk:
Standar Enkripsi Data (DES)
- Panjang blok = 64 bit
- Panjang kunci = 56 bit
Diciptakan di IBM, DES merupakan salah satu sandi simetris blok yang paling populer di awal tahun 1970-an dan merupakan salah satu algoritme enkripsi yang paling banyak diteliti. Ini diadopsi sebagai standar federal oleh Biro Standar Nasional (AS) pada tahun 1976, dan dimasukkan dalam standar ANSI sebagai Algoritma Enkripsi Data untuk sektor swasta pada tahun 1981.
Pada awal abad ke-21, DES dianggap tidak aman, terutama karena panjang kunci rahasianya yang relatif pendek, membuatnya rentan terhadap serangan brute force.
Standar Enkripsi Lanjutan (AES)
- Panjang blok = 128 bit
- Panjang kunci = 128, 192, atau 256 bit
AES, sebuah sandi simetris blok modern, adalah salah satu sandi yang paling populer di dunia. Dikembangkan pada tahun 1997 oleh Vincent Rijmen dan Joan Daemen, kemudian disetujui sebagai standar enkripsi federal di Amerika Serikat pada tahun 2002.
AES dianggap sebagai sandi yang solid dan aman. Selama bertahun-tahun, telah terjadi beberapa serangan terhadap implementasi AES yang berbeda, tetapi serangan-serangan tersebut menyangkut kasus-kasus khusus dan tidak dianggap sebagai ancaman terhadap algoritme AES itu sendiri.
Triple DES (3DES)
- Panjang blok = 64 bit
- Panjang kunci = 56, 112, atau 168 bit
Cipher 3DES dikembangkan karena enkripsi DES, yang ditemukan pada awal tahun 1970-an dan dilindungi oleh kunci 56-bit, ternyata terlalu lemah dan mudah dibobol dengan menggunakan komputer modern pada waktu itu.
Sandi aliran
Stream cipher lebih fleksibel daripada block cipher, karena mereka dirancang untuk mengenkripsi setiap karakter (biasanya digit biner) dari pesan plaintext satu per satu menggunakan transformasi enkripsi yang bervariasi dengan waktu. Sebaliknya, block cipher cenderung mengenkripsi blok plaintext menggunakan transformasi enkripsi tetap secara bersamaan.
Secara keseluruhan, perangkat keras dalam stream cipher lebih cepat daripada block cipher. Stream cipher juga lebih sesuai dan, dalam beberapa kasus, wajib digunakan (misalnya, dalam beberapa aplikasi telekomunikasi) ketika buffering terbatas atau ketika karakter harus diproses satu per satu saat diterima. Karena mereka memiliki penyebaran kesalahan yang terbatas atau tidak ada, stream cipher juga dapat menguntungkan dalam situasi di mana kesalahan transmisi sangat mungkin terjadi.
Beberapa stream cipher yang populer termasuk:
RC4
- Panjang kunci = hingga 2.048 bit
RC4 adalah stream cipher dengan ukuran kunci variabel dengan operasi berorientasi byte yang banyak digunakan dalam protokol populer. Sebagai contoh, digunakan untuk melindungi lalu lintas Internet (Transport Layer Security, yang dikenal sebagai TLS) atau untuk melindungi jaringan nirkabel (Wired Equivalent Privacy, atau WEP).
Pad Sekali Pakai (OTP)
- Panjang kunci = panjang pesan
Teori di balik One-Time Pad (OTP) adalah bahwa kunci harus memiliki setidaknya panjang yang sama dengan pesan (plaintext) dan terdiri dari angka-angka yang benar-benar acak. Setiap huruf dari plaintext ‘dicampur’ dengan satu elemen dari OTP. Hal ini menghasilkan ciphertext yang tidak memiliki hubungan dengan plaintext ketika kuncinya tidak diketahui. Di sisi penerima, OTP yang sama digunakan untuk mengambil plaintext asli.
Salsa20
- Panjang kunci = 32 byte
Salsa20 adalah sebuah sandi yang dikirimkan ke proyek eSTREAM, yang berjalan dari tahun 2004 sampai 2008, yang seharusnya mempromosikan pengembangan stream cipher. Algoritma ini dianggap sebagai algoritma yang dirancang dengan baik dan efisien. Tidak ada serangan yang diketahui dan efektif terhadap keluarga sandi Salsa20.
Enkripsi Asimetris
Enkripsi asimetris juga dikenal sebagai Public Key Cryptography (PKC). Ia menggunakan dua kunci yang berbeda untuk enkripsi dan dekripsi. Kunci yang perlu dirahasiakan disebut kunci privat, sedangkan kunci yang tidak perlu dirahasiakan disebut kunci publik. Sebagai contoh, jika A ingin mengirim pesan kepada B dan memastikan bahwa B akan menjadi satu-satunya orang yang dapat memahami pesan tersebut, A dapat mengenkripsi pesan tersebut menggunakan kunci publik sehingga hanya B yang dapat mendekripsi pesan tersebut menggunakan kunci privat.
Pertama kali dijelaskan secara publik oleh profesor Universitas Stanford Martin Hellman dan mahasiswa pascasarjana Whitfield Diffie pada tahun 1976, enkripsi asimetris digambarkan sebagai sebuah sistem kriptografi dua kunci di mana dua pihak dapat melakukan komunikasi yang aman melalui saluran komunikasi yang tidak aman tanpa harus berbagi kunci rahasia yang sama.
Walaupun kunci publik dan kunci privat berbeda, namun keduanya berhubungan secara matematis. Tetapi hubungan matematis hanya dapat digunakan pada enkripsi dan dekripsi, dan orang lain tidak dapat memperoleh kunci privat walaupun mereka mengetahui kunci publik.
Algoritma kriptografi asimetris digunakan secara luas dalam mata uang kripto. Sebagai contoh, alamat dompet dibuat dari kunci publik, dan hanya mereka yang memiliki kunci privat yang dapat menggunakan uang di dalamnya.
Beberapa skema enkripsi asimetris yang populer meliputi:
RSA
Kunci publik dan kunci privat tidak dipilih secara sembarangan. Dokumen tersebut harus dibuat melalui prosedur tertentu. Kunci publik terdiri dari dua bilangan bulat besar (e, n), dan kunci privat terdiri dari dua bilangan bulat besar (d, n). Ketiga angka e, d, dan n berhubungan dengan cara yang khusus, yang membutuhkan sedikit matematika:
Anggap saja Anda menggunakan penyandi yang mengubah semua teks biasa dalam bahasa Inggris menjadi angka Arab. Sebagai contoh, ‘Hei! Hei! Hei!’ diterjemahkan menjadi ‘7! 7! 7!’ dan ‘bitconnnnnnnnect’ diterjemahkan menjadi ‘83333331’. Sekarang, Alice ingin mengirim pesan ‘Halo’ (yang diterjemahkan menjadi ‘2’) kepada Bob.
Metode termudah bagi Alice untuk mengirim pesan kepada Bob adalah dengan langsung mengatakan ‘2’ kepada Bob. Namun Alice dan Bob tidak ingin pesan mereka dilihat oleh orang lain. Untungnya, Bob mengenal RSA. Dia telah membuat pasangan kunci publik/privat dan meminta Alice untuk menyandikan pesan ‘2’ menggunakan kunci publik yang dia berikan.
Alice kemudian mengenkripsi pesan ‘2’ menggunakan kunci publik Bob (5, 14), dan pesan terenkripsi menjadi ‘4’, yang berarti ‘Translate Server Error’. Bahkan jika penyadap melihat pesan mereka, mereka tidak akan tahu mengapa mereka mengirimkan ‘4’.
Bob tahu bahwa angka ‘4’ bukanlah pesan Alice yang sebenarnya. Dia kemudian mendekripsi pesan tersebut dengan kunci pribadinya, yang tidak dia beritahukan kepada siapa pun (bahkan kepada Alice). Kunci privatnya adalah (11, 14), dan dengan menerapkan beberapa prosedur dekripsi, Bob mengetahui bahwa pesan yang sebenarnya adalah ‘2’.
Mari kita ilustrasikan dalam sebuah tabel, bagaimana proses di atas bekerja:
Dari sisi Bob, dia hanya menerima pesan terenkripsi ‘4’. Tetapi dengan menerapkan dekripsi dengan kunci privatnya, dia telah berhasil memulihkan pesan ‘2’ yang sebenarnya.
Jadi, bagaimana kita mendapatkan kunci publik (5, 14) dan kunci privat (11, 14)?
Proses ini disebut pembuatan kunci RSA.
Bagi mereka yang tertarik, periksa enkripsi RSA.
Kriptografi Kurva Elips (ECC)
ECC adalah sebuah algoritma enkripsi asimetris alternatif untuk RSA. Sama halnya, ini memungkinkan pengguna untuk membuat pasangan kunci publik/pribadi, tetapi algoritma/prosedur yang digunakan berbeda dengan RSA.
Sebagai contoh, untuk kurva elips (lihat di bawah), rumusnya adalah y2 = x3 + ax + b, di mana a dan b adalah koefisien untuk menentukan bentuk kurva.
Kita mulai dengan titik tertentu pada kurva. Selanjutnya, kita menggunakan sebuah fungsi (disebut fungsi titik) untuk menemukan titik baru. Kita ulangi fungsi titik untuk melompat-lompat di sekitar kurva sampai akhirnya berakhir di titik terakhir. Mari kita telusuri algoritmanya:
Ini adalah fungsi pintu jebakan yang hebat karena, jika seseorang mengetahui lokasi titik awal (A) dan jumlah lompatan yang diperlukan untuk mencapai titik akhir (E), maka akan sangat mudah untuk menemukan titik akhir. Di sisi lain, jika hanya lokasi titik awal dan titik akhir yang diketahui, hampir tidak mungkin untuk menemukan berapa banyak lompatan yang diperlukan untuk sampai ke sana. Jadi, dalam contoh ini, kita dapat mendefinisikan kunci publik dan kunci privat sebagai:
- Kunci Publik: Titik awal A, titik akhir E
- Kunci Pribadi: Jumlah lompatan dari A ke E
Agar lebih umum, untuk kurva elips yang diberikan (seperti yang ditunjukkan di bawah ini), kunci publik adalah (P, G), di mana P adalah titik awal dan G adalah titik akhir (yang telah ditentukan sebelumnya). [constant] Titik EC), dan kunci privat adalah k (k adalah sebuah bilangan bulat dan P = k * G).
Algoritma Pertukaran Kunci Diffie-Hellman
Algoritma Diffie-Hellman digunakan untuk membuat rahasia bersama yang dapat digunakan untuk komunikasi pribadi sambil bertukar kunci kriptografi melalui jaringan publik.
Secara tradisional, komunikasi terenkripsi antara dua pihak memerlukan pertukaran kunci melalui saluran fisik yang aman, seperti daftar kunci kertas yang diangkut oleh kurir tepercaya. Metode pertukaran kunci Diffie-Hellman memungkinkan dua pihak yang tidak saling mengenal satu sama lain untuk bersama-sama membuat kunci rahasia bersama melalui saluran yang tidak aman. Kunci ini kemudian dapat digunakan untuk mengenkripsi komunikasi selanjutnya menggunakan sandi kunci simetris (seperti yang dibahas di atas).
Untuk menyederhanakan algoritme, kami menggunakan gambar berikut ini untuk menyajikan prosedur enkripsi ini. Harap diperhatikan bahwa huruf P di awal dipilih secara acak dalam kurva elips, dan G adalah akar primitif dari P. Kunci privat a dan b dipilih secara acak.
Alice dan Bob sekarang dapat menggunakan kunci rahasia yang sama (3) untuk mengenkripsi pesan di antara mereka tanpa mengetahui kunci ini sebelumnya.
Fungsi Hash
Fungsi hash, yang juga disebut message digest dan enkripsi satu arah, memampatkan teks biasa menjadi teks dengan panjang tetap, yang disebut nilai hash (atau digest). Tidak mungkin untuk memulihkan nilai hash kembali ke dalam plaintext.
Fungsi hash harus memenuhi tiga properti keamanan:
1) Tahan Tabrakan
Secara komputasi tidak mungkin untuk menemukan dua string input yang berbeda yang, jika diterapkan pada fungsi hash, memiliki output yang sama.
Hal ini dapat diekspresikan seperti:
Sulit untuk menemukan x dan y, di mana H(x) = H(y), tetapi x tidak sama dengan y.
Harap diperhatikan bahwa harus ada tabrakan karena kita bergerak dari ruang input yang jauh lebih besar t (sembarang string) ke ruang output yang tetap (2^256).
Aplikasi: Hash sebagai Message Digest. Jika kita tahu bahwa H(x) = H(y), maka kita dapat mengasumsikan bahwa x = y.
Contoh: Untuk mengenali file yang telah kita lihat sebelumnya, ingatlah hash-nya. Ini berfungsi karena hashnya kecil.
2) Tersembunyi
Diberikan H(x), maka tidak mungkin menemukan x. Hal ini dapat dijelaskan karena, jika diberikan versi hash dari x, kita tidak akan menemukan x.
Penerapan Penyembunyian Properti: Komitmen
Ini adalah analogi digital untuk mengambil sebuah nilai (angka), menyegelnya dalam sebuah amplop, dan meletakkan amplop tersebut di atas meja – di mana setiap orang dapat melihatnya – sehingga apa yang ada di dalam amplop tersebut menjadi rahasia bagi semua orang. Nantinya, amplop bisa dibuka dan nilainya diambil, tetapi dalam keadaan tersegel. Jadi, berkomitmenlah pada suatu nilai dan ungkapkanlah nanti.
Algoritma komitmen melakukan dua hal:
1. Berkomitmen pada sebuah pesan: Mengembalikan dua nilai – komitmen dan kunci. Komitmennya sama seperti amplop yang diletakkan di atas meja; kuncinya diperlukan untuk membukanya.
2. Kemudian, kami mengungkapkan kepada seseorang pesan asli dan membiarkan mereka memverifikasi bahwa pesan tersebut sesuai dengan aslinya, memberi mereka komitmen dan kuncinya.
3) Ramah Teka-teki
Jika seseorang ingin menargetkan fungsi hash tertentu, maka dapatkan beberapa nilai y. Jika bagian dari input dipilih secara acak, akan sulit untuk menemukan nilai lain untuk menargetkan nilai fungsi hash.
Diberikan sebuah output y dari fungsi hash, jika k dipilih dari sebuah distribusi acak, maka tidak mungkin untuk menemukan sebuah x, sehingga hash dari k|x(k digabungkan dengan x) adalah y: H(k|x) = y.
Fungsi Hash yang Populer
Intisari Pesan (MD)
Keluarga MD terdiri dari fungsi hash MD2, MD4, MD5, dan MD6. Fungsi ini diadopsi sebagai Standar Internet RFC 1321 dan merupakan fungsi hash 128-bit.
MD5 digest telah digunakan secara luas di dunia perangkat lunak untuk memberikan jaminan tentang integritas file yang ditransfer. Sebagai contoh, server file sering kali menyediakan checksum MD5 yang sudah dikomputasi sebelumnya untuk file sehingga pengguna dapat membandingkan checksum file yang diunduh dengan checksum tersebut.
Fungsi Hash Aman (SHA)
Keluarga SHA terdiri dari empat algoritma SHA: SHA-0, SHA-1, SHA-2, dan SHA-3. Meskipun berasal dari keluarga yang sama, namun secara struktural berbeda.
SHA-0 diterbitkan oleh Institut Standar dan Teknologi Nasional AS (NIST) pada tahun 1993. Ini memiliki beberapa kelemahan tetapi tidak menjadi sangat populer.
Kemudian, pada tahun 1995, SHA-1 dirancang untuk memperbaiki kelemahan yang diduga ada pada SHA-0. Tabrakan terhadap algoritma SHA-1 secara penuh dapat dihasilkan dengan menggunakan serangan hancur, dan fungsi hash harus dianggap rusak.
Keluarga SHA-2 memiliki empat varian SHA lebih lanjut: SHA-224, SHA-256, SHA-384, dan SHA-512, tergantung pada jumlah bit pada nilai hash mereka. SHA-256 dan SHA-512 umumnya digunakan. SHA-512 lebih aman daripada SHA-256 dan sering kali lebih cepat daripada SHA-256 pada mesin 64-bit.
Pada bulan Oktober 2012, NIST memilih algoritma Keccak sebagai standar SHA-3 yang baru. Keccak menawarkan banyak manfaat, seperti kinerja yang efisien dan ketahanan yang baik terhadap serangan.
RIPEMD
RIPEMD adalah sebuah keluarga fungsi hash kriptografi yang mencakup RIPEMD, RIPEMD-128, dan RIPEMD-160. Ada juga versi 256 dan 320-bit dari algoritma ini. RIPEMD-160 adalah versi yang disempurnakan dan merupakan versi yang paling banyak digunakan dalam keluarga ini.
Kata Penutup: Menerapkan Kriptografi dalam Praktik
Kriptografi memiliki sejarah yang sangat panjang, tetapi dengan kemungkinan yang tampaknya tak terbatas untuk penggunaan di masa depan. Proses ini merupakan dasar dari mata uang kripto dan dompet saat ini.
Untuk info lebih lanjut mengenai berbagai jenis dompet kripto, baca Apa Itu Dompet Kripto? Panduan untuk Pemula.
Uji Tuntas dan Lakukan Riset Anda Sendiri
Semua contoh yang tercantum dalam artikel ini hanya untuk tujuan informasi. Anda tidak boleh menafsirkan informasi atau materi lain tersebut sebagai nasihat hukum, pajak, investasi, keuangan, keamanan siber, atau nasihat lainnya. Tidak ada yang terkandung di sini yang merupakan ajakan, rekomendasi, dukungan, atau penawaran oleh Crypto.com untuk berinvestasi, membeli, atau menjual koin, token, atau aset kripto lainnya. Pengembalian dari pembelian dan penjualan aset kripto dapat dikenakan pajak, termasuk pajak keuntungan modal, di yurisdiksi Anda. Setiap deskripsi produk atau fitur Crypto.com hanya untuk tujuan ilustrasi dan bukan merupakan dukungan, undangan, atau ajakan.
Kinerja masa lalu bukan merupakan jaminan atau prediktor kinerja masa depan. Nilai aset kripto bisa naik atau turun, dan Anda bisa kehilangan semua atau sebagian besar harga pembelian Anda. Saat menilai aset kripto, penting bagi Anda untuk melakukan riset dan uji tuntas untuk membuat penilaian terbaik, karena pembelian apa pun menjadi tanggung jawab Anda sepenuhnya.
Bagikan ke Teman
Siap memulai perjalanan kripto Anda?
Dapatkan panduan langkah demi langkah untuk mengatur
sebuah akun dengan Crypto.com
Dengan mengeklik tombol Kirim, saya menyatakan telah membaca Pemberitahuan Privasi Crypto.com tempat kami menjelaskan cara kami menggunakan dan melindungi data pribadi Anda.