키 가져오기 및 내보내기
CNG 를 사용하여 대칭 키 와 비대칭 키를 가져오고 내보낼 수 있습니다. 또한 키 내보내기 및 가져오기 기능을 사용하여 컴퓨터 간에 키를 이동할 수 있습니다.
대칭 키
일부 데이터를 암호화하고 암호 해독하는 데 동일한 키를 사용하는 대칭(또는 세션) 키를 가져오거나 내보내려면 BCryptImportKey 및 BCryptExportKey 함수를 사용할 수 있습니다. 일반적으로 BCryptImportKey 함수를 사용하여 가져오기 전에 먼저 BCryptExportKey 함수를 사용하여 키를 내보냅니다. 함수는 hExportKey 및 hImportKey 매개 변수를 사용하여 내보낸 키와 가져온 키의 암호화를 사용하도록 설계되었습니다. 그러나 이러한 함수의 Microsoft 구현은 내보낸 키와 가져온 키의 암호화를 지원하지 않습니다.
비대칭 키
한 키를 암호화하는 데 사용되고 다른 키가 일부 데이터의 암호를 해독하는 데 사용되는 비대칭(또는 퍼블릭/프라이빗) 키 쌍을 가져오려면 BCryptImportKeyPair 또는 NCryptImportKey 함수 중 하나를 사용할 수 있습니다. CNG 공급자는 지원되는 키 BLOB 형식을 사용하여 키 쌍을 인코딩해야 합니다. BCryptExportKey 를 사용하여 인코딩된 키 BLOB을 만들 수 있습니다. CNG 구조는 Microsoft Key Storage 공급자가 지원하는 주요 BLOB 유형 및 구조를 설명합니다.
BCryptExportKey가 지속형 키 쌍을 만들려면 입력 키 BLOB에 프라이빗 키가 포함되어야 합니다. 공개 키 는 유지되지 않습니다.
키 이름 및 내보내기 정책은 CNG 구조에 정의된 BLOB 구조의 일부가 아닙니다. 그러나 BLOB이 불투명 BLOB 형식(예: 내부 키 상태의 메모리 이미지)인 경우 BLOB에는 키 이름과 내보내기 정책 속성이 포함될 수 있습니다.
다음 절차에서는 해당 속성을 사용하여 지속형 프라이빗 키를 가져오는 방법을 설명합니다.
지속형 키를 가져오려면
- NCryptCreatePersistedKey 함수를 사용하여 지속형 키를 만듭니다.
- NCryptSetProperty 함수를 사용하여 키 개체에 원하는 속성을 설정합니다.
- BLOB 형식을 속성 이름으로 사용하여 가져오기 키 BLOB을 키의 속성으로 설정합니다.
- NCryptFinalizeKey 함수를 사용하여 지속형 키 가져오기를 완료합니다.