암호화 기본
CNG API는 해시 만들기 또는 데이터 암호화 및 암호 해독과 같은 기본 암호화 작업을 수행하는 함수 집합을 제공합니다. 이러한 함수에 대한 자세한 내용은 CNG 암호화 기본 함수를 참조하세요.
CNG는 다양한 암호화 알고리즘을 구현합니다. 알고리즘의 각 알고리즘 또는 클래스는 자체 기본 API를 노출합니다. 지정된 알고리즘의 여러 구현을 동시에 설치할 수 있습니다. 그러나 지정된 시간에 하나의 구현만 기본값이 됩니다.
CNG의 각 알고리즘 클래스는 기본 라우터로 표시됩니다. CNG 기본 함수를 사용하는 애플리케이션은 사용자 모드에서 Bcrypt.dll 라우터 이진 파일에 연결하거나 함수를 호출하기 전에 커널 모드에서 Ksecdd.sys. 다양한 라우터 루틴은 모든 알고리즘 기본 형식을 관리합니다. 이러한 라우터는 시스템에 설치된 각 알고리즘 구현을 추적하고 각 함수 호출을 적절한 기본 공급자 모듈로 라우팅합니다.
CNG는 다음 알고리즘 클래스에 대한 기본 형식을 제공합니다.
알고리즘 클래스 | 설명 |
---|---|
난수 생성기 |
플러그형 RNG(난수 생성). |
해시 |
SHA1 및 SHA2와 같은 해시에 사용되는 알고리즘입니다. |
대칭 암호화 |
AES, 3DES 및 RC4와 같은 대칭 암호화에 사용되는 알고리즘입니다. |
비대칭 암호화 |
RSA와 같은 암호화를 지원하는 비대칭(공개 키) 알고리즘입니다. |
Signature |
DSA 및 ECDSA와 같은 서명 알고리즘. 이 클래스는 RSA와 함께 사용할 수도 있습니다. |
비밀 계약 |
DH(Diffie-Hellman) 및 ECDH(타원 곡선 Diffie-Hellman)와 같은 비밀 규약 알고리즘입니다. |
다음 그림에서는 CNG 암호화 기본 형식의 디자인 및 기능을 보여 줍니다.
헤더 파일 Bcrypt.h는 MS_PRIMITIVE_PROVIDER 상수를 "Microsoft 기본 공급자"로 정의합니다. Microsoft 기본 공급자를 사용하려면 이 값을 BCryptOpenAlgorithmProvider에 전달합니다.