Kriptografi kunci publik
Kriptografi kunci publik (disebut juga kriptografi asimetris) adalah sistem kriptografi yang menggunakan sepasang kunci, yaitu (1) kunci publik yang bisa disebarkan dan (2) kunci pribadi yang hanya diketahui oleh pemilik. Pembuatan kunci tersebut bergantung pada algoritme kriptografi yang menggunakan sifat matematis untuk menghasilkan fungsi satu arah. Keamanannya secara efektif hanya berasal dari kunci pribadi yang disimpan dengan baik; kunci publik dapat disebarkan tanpa mengurangi keamanannya.[1]
Dalam sistem tersebut, tiap orang dapat mengenkripsi pesan dengan kunci publik penerima. Namun, hasil enkripsi tersebut hanya bisa didekripsi oleh penerima dengan kunci pribadi. Hal ini memungkinkan untuk, misalnya, mengirim pesan kepada server dengan mengenkripsinya memakai kunci publiknya. Pesan tersebut dapat berisi kunci baru yang akan dipakai untuk kriptografi simetris. Sekarang, klien dan server dapat saling berkirim pesan dengan kunci simetris baru tersebut. Hal ini memiliki keuntungan karena dapat memanfaatkan laju kriptografi simetris yang lebih tinggi daripada kriptografi asimetris.
Selain untuk enkripsi, kriptografi kunci publik juga bisa dipakai untuk autentikasi. Pengirim pesan dapat menambahkan tanda tangan digital pada akhir pesan. Siapa pun dapat memeriksa keaslian pesan dari pengirim dengan membandingkannya dengan kunci publik pengirim pesan. Bila gabungan pesan dan kunci publik cocok dengan tanda tangan digitalnya, pesan tersebut benar dibuat oleh pengirim pesan.[2][3]
Penjelasan
Sebelum pertengahan 1970-an, semua sistem penyandian menggunakan algoritme kunci simetris yang menggunakan kunci kriptografi yang sama untuk enkripsi oleh pengirim dan dekripsi oleh penerima. Kunci tersebut rahasia dan harus disimpan. Pada awalnya, kunci tersebut harus saling ditukarkan antarpihak secara aman. Namun, hal tersebut semakin sulit untuk dilakukan seiring bertambahnya jumlah pihak yang berhubungan, akibat ketiadaan jalur pengiriman yang aman, atau bila kunci sering diganti. Terlebih lagi, bila tiap pesan tidak boleh dibaca oleh pihak lain, kunci yang berbeda dipakai untuk sepasang pihak (pemakai).
Kebalikannya, dalam sistem kunci publik, kunci publik dapat disebarluaskan dan hanya kunci pribadi yang harus dirahasiakan oleh pemiliknya (penerima).
Contoh pemakaian kriptografi kunci publik antara lain
- Enkripsi kunci publik, yaitu enkripsi yang menggunakan kunci publik penerima untuk mengenkripsi pesan yang dikirim. Pesan tersebut tidak bisa didekripsi selain oleh pemilik kunci pribadi (penerima). Hal ini dipakai untuk memastikan kerahasiaan pesan.
- Tanda tangan digital, yaitu tanda tangan yang menyertai pesan yang dikirim untuk memastikan keaslian bahwa yang mengirim benar pengirim yang dimaksud. Hal ini juga berguna untuk memastikan bahwa pesan yang dikirim tidak berubah selama pengiriman.
Masalah penting dalam kriptografi kunci publik adalah pembuktian bahwa kunci publik tersebut autentik (asli), yaitu benar-benar dimiliki oleh si penerima dan tidak berubah oleh pihak lain. Ada beberapa cara untuk mengatasi masalah ini, antara lain
- Infrastruktur kunci publik, yaitu infrastruktur yang terdiri dari pihak ketiga (otoritas sertifikat/CA) yang memverifikasi kepemilikan pasangan kunci. TLS menggunakan ini.
- Jaringan kepercayaan, yaitu autentikasi terdesentralisasi yang menggunakan pernyataan individu untuk menautkan kunci dengan pemiliknya. PGP memakai ini dan juga pencarian dalam sistem penamaan domain (DNS). Sistem DKIM yang menandatangani surel juga memakai ini.
Kelemahan
![]() | Bagian ini memerlukan pengembangan. Anda dapat membantu dengan mengembangkannya. (November 2020) |
Seperti kebanyakan sistem keamanan, adalah penting untuk mengenali kemungkinan kelemahan/celah keamanan.
Contoh
- Pertukaran kunci Diffie–Hellman
- RSA
- Algoritme Elgamal
- Kriptografi kurva eliptis
- Algoritme Tanda Tangan Digital (DSA)
- Sistem kriptografi Paillier
- Sistem kriptografi Cramer–Shoup
Sejarah
![]() | Bagian ini kosong. Anda bisa membantu dengan melengkapinya. |
Referensi
- ^ Stallings, William (3 Mei 1990). Cryptography and Network Security: Principles and Practice (dalam bahasa Inggris). Prentice Hall. hlm. 165. ISBN 978-0-1386-9017-5.
- ^ Alfred J. Menezes, Paul C. van Oorschot, dan Scott A. Vanstone (Oktober 1996). "11: Digital Signatures" (PDF). Handbook of Applied Cryptography. CRC Press. ISBN 0-8493-8523-7. Diakses tanggal 14 November 2016.
- ^ Daniel J. Bernstein (1 Mei 2008). "Protecting communications against forgery" (PDF). Algorithmic Number Theory. 44. MSRI Publications. §5: Public-key signatures, hlm. 543–545. Diakses tanggal 14 November 2016.
Daftar Pustaka
- Hirsch, Frederick J. "SSL/TLS Strong Encryption: An Introduction". Apache HTTP Server. Diakses tanggal 17 April 2013. Dua bagian awal berisi perkenalan kriptografi kunci publik.
- Ferguson, Niels; Schneier, Bruce (2003). Practical Cryptography. Wiley. ISBN 0-4712-2357-3.
- Katz, Jon; Lindell, Y. (2007). Introduction to Modern Cryptography. CRC Press. ISBN 978-1-5848-8551-1.
- Menezes, A. J.; van Oorschot, P. C.; Vanstone, Scott A. (1997). Handbook of Applied Cryptography. ISBN 0-8493-8523-7.
- "IEEE 1363: Standard Specifications for Public-Key Cryptography". Diarsipkan dari versi asli tanggal 19 November 2008.
- Christof Paar dan Jan Pelzl (2009). "Understanding Cryptography, A Textbook for Students and Practitioners". Springer. Diarsipkan dari versi asli tanggal 8 Desember 2012. (situs web pendamping yang berisi kuliah daring kriptografi yang salah satunya membahas kriptografi kunci publik)