Kunci Asimetris
Kunci asimetris, juga dikenal sebagai pasangan kunci publik/privat, digunakan untuk enkripsi asimetris. Enkripsi asimetris digunakan terutama untuk mengenkripsi dan mendekripsi kunci sesi dan tanda tangan digital. Enkripsi asimetris menggunakan algoritma enkripsi kunci publik .
Algoritma kunci publik menggunakan dua kunci yang berbeda: kunci publik dan kunci privat. Anggota kunci privat pasangan harus dijaga kerahasiaannya dan aman. Namun, kunci umum dapat didistribusikan kepada siapa saja yang memintanya. Kunci umum pasangan kunci sering didistribusikan dengan menggunakan sertifikat digital. Ketika satu kunci pasangan kunci digunakan untuk mengenkripsi pesan, kunci lain dari pasangan tersebut diperlukan untuk mendekripsi pesan. Dengan demikian, jika kunci publik pengguna A digunakan untuk mengenkripsi data, hanya pengguna A (atau seseorang yang memiliki akses ke kunci privat pengguna A) yang dapat mendekripsi data. Jika kunci privat pengguna A digunakan untuk mengenkripsi sepotong data, hanya kunci publik pengguna A yang akan mendekripsi data, sehingga menunjukkan bahwa pengguna A (atau seseorang dengan akses ke kunci privat pengguna A) yang melakukan enkripsi.
Jika kunci privat digunakan untuk menandatangani pesan, kunci publik dari pasangan tersebut harus digunakan untuk memvalidasi tanda tangan. Misalnya, jika Alice ingin mengirimi seseorang pesan yang ditandatangani secara digital, dia akan menandatangani pesan dengan kunci privatnya, dan orang lain dapat memverifikasi tanda tangannya dengan menggunakan kunci umumnya. Karena mungkin hanya Alice yang memiliki akses ke kunci privatnya, fakta bahwa tanda tangan dapat diverifikasi dengan kunci umum Alice menunjukkan bahwa Alice membuat tanda tangan.
Sayangnya, algoritma kunci publik sangat lambat, kira-kira 1.000 kali lebih lambat daripada algoritma simetris. Tidak praktis menggunakannya untuk mengenkripsi data dalam jumlah besar. Dalam praktiknya, algoritma kunci publik digunakan untuk mengenkripsi kunci sesi. Algoritma simetris digunakan untuk enkripsi/dekripsi sebagian besar data.
Demikian pula, karena menandatangani pesan, berlaku, mengenkripsi pesan, tidak praktis untuk menggunakan algoritma tanda tangan kunci publik untuk menandatangani pesan besar. Sebaliknya, hash panjang tetap dibuat dari pesan dan nilai hash ditandatangani. Untuk informasi selengkapnya, lihat Hash dan Tanda Tangan Digital.
Setiap pengguna umumnya memiliki dua pasangan kunci publik/privat. Satu pasangan kunci digunakan untuk mengenkripsi kunci sesi dan yang lain untuk membuat tanda tangan digital. Ini dikenal sebagai pasangan kunci pertukaran kunci dan pasangan kunci tanda tangan, masing-masing.
Perhatikan bahwa meskipun kontainer kunci yang dibuat oleh sebagian besar penyedia layanan kriptografi (CSP) berisi dua pasangan kunci, ini tidak diperlukan. Beberapa CSP tidak menyimpan pasangan kunci apa pun sementara CSP lain menyimpan lebih dari dua pasangan.
Semua kunci di CryptoAPI disimpan dalam CSP. CSP juga bertanggung jawab untuk membuat kunci, menghancurkannya, dan menggunakannya untuk melakukan berbagai operasi kriptografi. Mengekspor kunci dari CSP sehingga mereka dapat dikirim ke pengguna lain dibahas dalam Penyimpanan dan Pertukaran Kunci Kriptografi.