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 enkripsi kunci publik algoritma.
Algoritma kunci publik menggunakan dua kunci yang berbeda: kunci umum dan kunci privat . Anggota kunci privat pasangan harus dijaga kerahasiaannya dan aman. Namun, kunci publik 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 A pengguna) 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 A pengguna) 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 untuk 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 menggunakan algoritma tanda tangan kunci publik untuk menandatangani pesan besar. Sebagai gantinya, hash panjang tetap terbuat 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 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 keluar dari CSP sehingga mereka dapat dikirim ke pengguna lain dibahas di Penyimpanan Kunci Kriptografi dan Exchange.