Pertukaran Kunci Kriptografi
Kami sebelumnya membahas perbedaan antara enkripsi simetris dan asimetris, dan hari ini kita akan berbicara tentang bagaimana sebenarnya kunci dipertukarkan.
Secara umum, pertukaran kunci kriptografi atau protokol pertukaran kunci terenkripsi (EKE) bekerja dengan memungkinkan kedua pihak menghasilkan rahasia bersama tanpa mengungkapkan rahasia tersebut kepada pihak ketiga mana pun. Ini biasanya dilakukan dengan menggunakan kombinasi kriptografi kunci publik dan algoritma matematika. Rahasia bersama kemudian dapat digunakan sebagai kunci untuk sandi simetris, yang memungkinkan kedua pihak berkomunikasi dengan aman.
Penggunaan
Karena metode menggunakan kunci publik, secara alami hanya berlaku untuk enkripsi asimetris, karena dalam enkripsi simetris kunci tidak dibagikan — diketahui dan disepakati sebelumnya.
Pertukaran kunci kriptografi adalah metode pertukaran kunci kriptografi yang aman melalui jaringan. Ini adalah aspek mendasar dari banyak protokol kriptografi, karena memungkinkan dua pihak untuk membuat rahasia bersama yang dapat digunakan untuk berkomunikasi dengan aman satu sama lain.
Pertukaran digunakan dalam berbagai aplikasi, termasuk komunikasi yang aman, transaksi online yang aman, dan kontrol akses. Ini sering digunakan untuk membuat koneksi aman antara dua pihak, seperti klien dan server, atau antara dua perangkat. Jadi sebelum file apa pun dapat dikirim dengan aman melalui protokol seperti FTPS, HTTPS, dan SFTP, kedua pihak yang berkomunikasi harus terlebih dahulu terlibat dalam pertukaran kunci.
Gambaran
Dalam bentuk EKE yang paling umum, setidaknya satu pihak mengenkripsi kunci publik sesaat (satu kali) menggunakan kata sandi, dan mengirimkannya ke pihak kedua, yang mendekripsi dan menggunakannya untuk menegosiasikan kunci bersama dengan pihak pertama.
Ada variasi lain dari skema ini, yang disebut Augmented-EKE. Metode augmented memiliki tujuan tambahan untuk memastikan bahwa data verifikasi kata sandi yang dicuri dari server tidak dapat digunakan oleh penyerang untuk menyamar sebagai klien, kecuali penyerang menentukan kata sandi terlebih dahulu (misalnya dengan melakukan serangan brute force pada data yang dicuri).
Dua algoritma pertukaran kunci yang paling populer adalah RSA dan Diffie-Hellman (sekarang dikenal sebagai Diffie-Helmlman-Merkle). Mungkin tidak terlalu berlebihan untuk mengatakan bahwa munculnya dua protokol pertukaran kunci ini mempercepat pertumbuhan Internet, terutama dari segi bisnis. Itu karena kedua protokol ini memungkinkan klien dan server, serta server dan server, untuk bertukar kunci kriptografi melalui media yang tidak aman (Internet) dan pada gilirannya memungkinkan mereka bertransaksi secara elektronik dengan cara yang aman.
Akhir-akhir ini, munculnya kriptografi kurva eliptik telah memperkenalkan protokol pertukaran baru seperti ECDH (Elliptic Curve Diffie-Hellman) dan ECDHE (Elliptic Curve Diffie-Hellman Ephemeral).
Kami akan fokus pada keluarga Diffie-Hellman, yang dikenal sebagai DH-EKE, yang telah bertahan dari berbagai serangan selama bertahun-tahun dan menghasilkan variasi yang lebih baik.
Diffie-Hellman
Pada tahun 1976, Whitfield Diffie dan Martin Hellman menerbitkan protokol kriptografi yang disebut pertukaran kunci Diffie–Hellman (D–H) berdasarkan konsep yang dikembangkan oleh mahasiswa PhD Hellman, Ralph Merkle. Protokol memungkinkan pengguna untuk bertukar kunci rahasia dengan aman bahkan jika lawan memantau saluran komunikasi itu. Ini didasarkan pada gagasan menggunakan eksponensial dalam bidang terbatas untuk menghasilkan rahasia bersama yang dapat digunakan untuk mengenkripsi dan mendekripsi pesan.
Berikut adalah contoh proses pertukaran kunci Diffie-Hellman dan seperti yang diilustrasikan pada diagram di bawah ini:
Alice dan Bob menyepakati bidang terbatas dan bilangan prima di dalam bidang tersebut (ini dikenal sebagai "modulus"). Katakanlah mereka memilih bidang terbatas GF(23), p , dan bilangan prima 5, g .
- Alice memilih bilangan bulat rahasia, "a", dan Bob memilih bilangan bulat rahasia, "b". Bilangan bulat ini akan digunakan untuk menghasilkan rahasia bersama.
- Alice menghitung A = 5^a mod 23 dan mengirim A ke Bob. Bob menghitung B = 5^b mod 23 dan mengirim B ke Alice.
- Alice menghitung rahasia bersama dengan melakukan perhitungan berikut: sharedSecret = B^a mod 23. Bob menghitung rahasia bersama menggunakan perhitungan yang sama: sharedSecret = A^b mod 23.
- Baik Alice dan Bob sekarang memiliki rahasia bersama, yang dapat mereka gunakan sebagai kunci untuk mengenkripsi dan mendekripsi pesan.
# Alice's side of thNote that in this example, the shared secret is the same for both Alice and Bob, even though they used different secret integers to generate it. This is because the shared secret is generated using a mathematical function that is commutative, meaning that the order of the operands does not affect the result. This property is what allows Alice and Bob to establish a shared secret without revealing their secret integers to each other.e key exchange
# Choose finite field and prime number
field = GF(23)
prime = 5
# Choose secret integer
secretA = 6
# Compute A and send to Bob
A = (prime ^ secretA) mod field
send A to Bob
# Receive B from Bob
B = receive from Bob
# Compute shared secret
sharedSecret = (B ^ secretA) mod field
# Bob's side of the key exchange
# Choose secret integer
secretB = 15
# Compute B and send to Alice
B = (prime ^ secretB) mod field
send B to Alice
# Receive A from Alice
A = receive from Alice
# Compute shared secret
sharedSecret = (A ^ secretB) mod field
Properti inilah yang memungkinkan Alice dan Bob untuk membuat rahasia bersama tanpa mengungkapkan bilangan bulat rahasia mereka satu sama lain.
Alasan mengapa pertukaran DH bekerja, adalah kriptografi logaritma diskrit, yang didasarkan pada sulitnya memecahkan masalah logaritma diskrit.
Secara singkat, ini adalah masalah matematika yang melibatkan pencarian bilangan bulat "x" dalam persamaan "g^x = y mod p", di mana "g" dan "y" diketahui, dan "p" adalah bilangan prima. Masalah ini dianggap sulit untuk dipecahkan karena belum diketahui algoritma yang efisien untuk mencari nilai “x” untuk sembarang nilai “g”, “y”, dan “p”.
Secara keseluruhan, meskipun Diffie-Hellman adalah protokol pertukaran kunci yang banyak digunakan dan efektif, namun ada beberapa keterbatasan praktis, yang membuat Elliptic Curve Diffie-Hellman (ECDH) menjadi pilihan yang lebih disukai, jika memungkinkan.
Kurva Eliptik Diffie-Hellman (ECDH)
Elliptic Curve Diffie-Hellman (ECDH) adalah varian dari protokol pertukaran kunci Diffie-Hellman yang menggunakan kriptografi kurva eliptik alih-alih eksponensial tradisional dalam bidang terbatas. ECDH memiliki beberapa keunggulan dibandingkan Diffie-Hellman biasa:
- ECDH lebih efisien: Operasi kurva eliptik umumnya lebih cepat dan membutuhkan lebih sedikit daya komputasi daripada operasi lapangan terbatas, membuat ECDH lebih efisien daripada Diffie-Hellman biasa. Baca lebih lanjut tentang cara kerjanya dan kelebihannya di artikel sebelumnya .
- ECDH lebih aman: Kriptografi kurva eliptik umumnya dianggap lebih aman daripada kriptografi medan terbatas, karena lebih tahan terhadap jenis serangan tertentu.
- Kunci ECDH lebih pendek: Karena operasi kurva eliptik menggunakan angka yang lebih kecil, kunci ECDH umumnya lebih pendek daripada kunci Diffie-Hellman biasa, membuatnya lebih mudah untuk ditransmisikan dan disimpan.
- ECDH memiliki ukuran kunci yang lebih kecil: Karena operasi kurva eliptik lebih efisien dan aman, ECDH dapat mencapai tingkat keamanan yang sama dengan Diffie-Hellman biasa dengan ukuran kunci yang lebih kecil. Ini bisa sangat berguna dalam aplikasi di mana ukuran kunci merupakan faktor pembatas, seperti pada jenis perangkat keras tertentu.
Kurva Eliptik Diffie-Hellman Ephemeral (ECDHE)
Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) adalah varian dari Elliptic Curve Diffie-Hellman (ECDH), yang menggunakan kunci ephemeral.
Di ECDHE, masing-masing pihak menghasilkan pasangan kunci berumur pendek yang baru untuk setiap sesi, daripada menggunakan pasangan kunci statis berumur panjang seperti di ECDH. Ini memiliki beberapa keunggulan:
- Peningkatan keamanan: Karena ECDHE menggunakan kunci sesaat yang hanya digunakan untuk satu sesi, ECDHE lebih tahan terhadap jenis serangan tertentu, seperti serangan replay, di mana penyerang menangkap dan menggunakan kembali kunci dari sesi sebelumnya.
- Meneruskan kerahasiaan: Di ECDHE, rahasia bersama berasal dari kunci sesaat, yang dibuang setelah sesi. Ini berarti bahwa meskipun penyerang mendapatkan salinan kunci sesaat, mereka tidak akan dapat mendekripsi komunikasi sebelumnya, karena rahasia yang dibagikan tidak lagi diketahui.
- Manajemen kunci yang disederhanakan: Di ECDHE, setiap pihak menghasilkan pasangan kunci baru untuk setiap sesi, daripada mengelola pasangan kunci statis yang berumur panjang. Ini dapat menyederhanakan manajemen kunci dan mengurangi risiko kompromi kunci.

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































