키 가져오기 및 내보내기

CNG 를 사용하여 대칭 키 와 비대칭 키를 가져오고 내보낼 수 있습니다. 또한 키 내보내기 및 가져오기 기능을 사용하여 컴퓨터 간에 키를 이동할 수 있습니다.

대칭 키

일부 데이터를 암호화하고 암호 해독하는 데 동일한 키를 사용하는 대칭(또는 세션) 키를 가져오거나 내보내려면 BCryptImportKeyBCryptExportKey 함수를 사용할 수 있습니다. 일반적으로 BCryptImportKey 함수를 사용하여 가져오기 전에 먼저 BCryptExportKey 함수를 사용하여 키를 내보냅니다. 함수는 hExportKeyhImportKey 매개 변수를 사용하여 내보낸 키와 가져온 키의 암호화를 사용하도록 설계되었습니다. 그러나 이러한 함수의 Microsoft 구현은 내보낸 키와 가져온 키의 암호화를 지원하지 않습니다.

비대칭 키

한 키를 암호화하는 데 사용되고 다른 키가 일부 데이터의 암호를 해독하는 데 사용되는 비대칭(또는 퍼블릭/프라이빗) 키 쌍을 가져오려면 BCryptImportKeyPair 또는 NCryptImportKey 함수 중 하나를 사용할 수 있습니다. CNG 공급자는 지원되는 키 BLOB 형식을 사용하여 키 쌍을 인코딩해야 합니다. BCryptExportKey 를 사용하여 인코딩된 키 BLOB을 만들 수 있습니다. CNG 구조는 Microsoft Key Storage 공급자가 지원하는 주요 BLOB 유형 및 구조를 설명합니다.

BCryptExportKey가 지속형 키 쌍을 만들려면 입력 키 BLOB에 프라이빗 키가 포함되어야 합니다. 공개 키 는 유지되지 않습니다.

키 이름 및 내보내기 정책은 CNG 구조에 정의된 BLOB 구조의 일부가 아닙니다. 그러나 BLOB이 불투명 BLOB 형식(예: 내부 키 상태의 메모리 이미지)인 경우 BLOB에는 키 이름과 내보내기 정책 속성이 포함될 수 있습니다.

다음 절차에서는 해당 속성을 사용하여 지속형 프라이빗 키를 가져오는 방법을 설명합니다.

지속형 키를 가져오려면

  1. NCryptCreatePersistedKey 함수를 사용하여 지속형 키를 만듭니다.
  2. NCryptSetProperty 함수를 사용하여 키 개체에 원하는 속성을 설정합니다.
  3. BLOB 형식을 속성 이름으로 사용하여 가져오기 키 BLOB을 키의 속성으로 설정합니다.
  4. NCryptFinalizeKey 함수를 사용하여 지속형 키 가져오기를 완료합니다.