Bagikan melalui


Primitif Kriptografi

CNG API menyediakan serangkaian fungsi yang melakukan operasi kriptografi dasar seperti membuat hash atau mengenkripsi dan mendekripsi data. Untuk informasi selengkapnya tentang fungsi-fungsi ini, lihat Fungsi Primitif Kriptografi CNG.

CNG mengimplementasikan banyak algoritma kriptografi. Setiap algoritma atau kelas algoritma mengekspos API primitifnya sendiri. Beberapa implementasi algoritma tertentu dapat diinstal pada saat yang sama; namun, hanya satu implementasi yang akan menjadi default pada waktu tertentu.

Setiap kelas algoritma di CNG diwakili oleh router primitif. Aplikasi yang menggunakan fungsi primitif CNG akan ditautkan ke file biner router Bcrypt.dll dalam mode pengguna, atau Ksecdd.sys dalam mode kernel sebelum memanggil fungsi. Berbagai rutinitas router mengelola semua primitif algoritma. Router ini melacak setiap implementasi algoritma yang diinstal pada sistem dan merutekan setiap panggilan fungsi ke modul penyedia primitif yang sesuai.

CNG menyediakan primitif untuk kelas algoritma berikut.

Kelas algoritma Deskripsi
Generator angka acak
Pembuatan angka acak (RNG) yang dapat dicolokkan.
Hashing
Algoritma yang digunakan untuk hashing, seperti SHA1 dan SHA2.
Enkripsi simetris
Algoritma yang digunakan untuk enkripsi simetris, seperti AES, 3DES, dan RC4.
Enkripsi asimetris
Algoritma asimetris (kunci publik) yang mendukung enkripsi, seperti RSA.
Tanda tangan
Algoritma tanda tangan seperti DSA dan ECDSA. Kelas ini juga dapat digunakan dengan RSA.
Perjanjian rahasia
Algoritma perjanjian rahasia seperti Diffie-Hellman (DH) dan kurva elips Diffie-Hellman (ECDH).

Ilustrasi berikut menunjukkan desain dan fungsi primitif kriptografi CNG.

desain dan fungsi primitif kriptografi cng

File header Bcrypt.h mendefinisikan konstanta MS_PRIMITIVE_PROVIDER sebagai "Penyedia Primitif Microsoft". Untuk menggunakan Penyedia Microsoft Primitif, teruskan nilai ini ke BCryptOpenAlgorithmProvider.