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.

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.

## 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

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

## Referensi

## Daftar Pustaka
*  Dua bagian awal berisi perkenalan kriptografi kunci publik.
* 
* 
* 
* 
*  (situs web pendamping yang berisi kuliah daring kriptografi yang salah satunya membahas kriptografi kunci publik)