기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
원시 키링 ECDH
중요
Raw ECDH 키링은 버전 4에서만 사용할 수 있습니다. 형태의 x AWS Encryption SDK . NET및 버전 3. 의 x AWS Encryption SDK for Java. Raw ECDH 키링은 머티리얼 프로바이더 라이브러리 버전 1.5.0에 도입되었습니다.
Raw ECDH 키링은 사용자가 제공한 타원 곡선 공개-개인 키 쌍을 사용하여 양 당사자 간에 공유된 래핑 키를 생성합니다. 먼저, 키링은 발신자의 개인 키, 수신자의 공개 키, 타원 곡선 Diffie-Hellman () 키 계약 알고리즘을 사용하여 공유 암호를 도출합니다. ECDH 그런 다음 키링은 공유 암호를 사용하여 데이터 암호화 키를 보호하는 공유 래핑 키를 추출합니다. 공유 래핑 키를 추출하기 위해 AWS Encryption SDK 사용 (KDF_CTR_HMAC_SHA384
) 하는 키 파생 함수는 키 파생 권장 사항을 준수합니다NIST.
키 파생 함수는 64바이트의 키 자료를 반환합니다. 양 당사자가 올바른 키 자료를 사용할 수 있도록 에서는 처음 32바이트를 커밋 키로 사용하고 마지막 32바이트를 공유 래핑 키로 AWS Encryption SDK 사용합니다. 암호 해독 시 키링이 메시지 헤더 암호문에 저장된 것과 동일한 커밋 키 및 공유 래핑 키를 복제할 수 없는 경우 작업이 실패합니다. 예를 들어 Alice의 개인 키와 Bob의 공개 키로 구성된 키링으로 데이터를 암호화하는 경우 Bob의 개인 키와 Alice의 공개 키로 구성된 키링은 동일한 커밋 키와 공유 래핑 키를 재생하고 데이터를 해독할 수 있습니다. Bob의 퍼블릭 키가 AWS KMS key 한 쌍의 키인 경우 Bob은 키링을 만들어 데이터를 해독할 수 있습니다.AWS KMS ECDH
Raw ECDH 키링은 -를 사용하여 대칭 키로 데이터를 암호화합니다. AES GCM 그런 다음 -를 사용하여 파생된 공유 래핑 키로 데이터 키를 엔벨로프 암호화합니다. AES GCM 각 Raw ECDH 키링에는 공유 래핑 키가 하나만 있을 수 있지만 여러 개의 Raw ECDH 키링을 단독으로 또는 다른 키링과 함께 다중 키링에 포함할 수 있습니다.
개인 키를 생성, 저장 및 보호하는 것은 사용자의 책임이며, 가급적이면 하드웨어 보안 모듈 () HSM 또는 키 관리 시스템에서 개인 키를 생성, 저장 및 보호할 책임이 있습니다. 발신자와 수신자의 키 페어는 같은 타원 곡선을 그려야 합니다. 는 다음과 같은 타원 곡선 사양을 AWS Encryption SDK 지원합니다.
-
ECC_NIST_P256
-
ECC_NIST_P384
-
ECC_NIST_P512
원시 키링 만들기 ECDH
Raw ECDH 키링은 세 가지 주요 계약 스키마 (RawPrivateKeyToStaticPublicKey
, 및EphemeralPrivateKeyToStaticPublicKey
) 를 지원합니다. PublicKeyDiscovery
선택한 키 계약 스키마에 따라 수행할 수 있는 암호화 작업과 키 자료의 조합 방식이 결정됩니다.
RawPrivateKeyToStaticPublicKey
RawPrivateKeyToStaticPublicKey
키 계약 스키마를 사용하여 키링에서 발신자의 개인 키와 수신자의 공개 키를 정적으로 구성할 수 있습니다. 이 키 계약 스키마는 데이터를 암호화하고 해독할 수 있습니다.
RawPrivateKeyToStaticPublicKey
키 계약 스키마를 사용하여 원시 ECDH 키링을 초기화하려면 다음 값을 제공하십시오.
-
발신자의 개인 키
5958에 정의된 대로 발신자의 PEM 인코딩된 개인 키 (PKCS#8 PrivateKeyInfo 구조) 를 제공해야 합니다. RFC
-
수신자의 공개 키
DER5280에 정의된 대로 수신자의 인코딩된 X.509 공개 키
SubjectPublicKeyInfo
(SPKI) 라고도 함) 를 제공해야 합니다. RFC비대칭 키 계약 키 쌍의 퍼블릭 키 또는 외부에서 생성된 KMS 키 페어의 퍼블릭 키를 지정할 수 있습니다. AWS
-
커브 사양
지정된 키 페어의 타원 곡선 사양을 식별합니다. 발신자와 수신자의 키 페어 모두 동일한 커브 사양을 가져야 합니다.
유효한 값:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
EphemeralPrivateKeyToStaticPublicKey
EphemeralPrivateKeyToStaticPublicKey
키 계약 스키마로 구성된 키링은 로컬에서 새 키 쌍을 생성하고 각 암호화 호출에 대해 고유한 공유 래핑 키를 생성합니다.
이 키 계약 스키마는 메시지만 암호화할 수 있습니다. EphemeralPrivateKeyToStaticPublicKey
키 계약 스키마로 암호화된 메시지를 해독하려면 동일한 수신자의 공개 키로 구성된 검색 키 계약 스키마를 사용해야 합니다. 암호를 해독하려면 키 계약 알고리즘과 함께 원시 ECDH 키링을 사용하거나, 수신자의 공개 PublicKeyDiscovery키가 비대칭 키 KMS 쌍에서 가져온 경우 키 계약 스키마와 함께 AWS KMS ECDH 키링을 사용할 수 있습니다. KmsPublicKeyDiscovery
EphemeralPrivateKeyToStaticPublicKey
키 계약 스키마를 사용하여 원시 ECDH 키링을 초기화하려면 다음 값을 제공하십시오.
-
수신자의 공개 키
DER5280에 정의된 대로 수신자의 인코딩된 X.509 공개 키
SubjectPublicKeyInfo
(SPKI) 라고도 함) 를 제공해야 합니다. RFC비대칭 키 계약 키 쌍의 퍼블릭 키 또는 외부에서 생성된 KMS 키 페어의 퍼블릭 키를 지정할 수 있습니다. AWS
-
커브 사양
지정된 퍼블릭 키의 타원 곡선 사양을 식별합니다.
암호화 시 키링은 지정된 곡선에 새 키 쌍을 생성하고 새 개인 키와 지정된 공개 키를 사용하여 공유 래핑 키를 파생합니다.
유효한 값:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
PublicKeyDiscovery
복호화할 때는 사용할 수 있는 래핑 키를 지정하는 것이 좋습니다. AWS Encryption SDK 이 모범 사례를 따르려면 보낸 사람의 개인 키와 받는 사람의 공개 키를 모두 지정하는 ECDH 키링을 사용하십시오. 하지만 원시 ECDH 검색 키링, 즉 지정된 키의 공개 키가 메시지 암호문에 저장된 수신자의 공개 키와 일치하는 경우 메시지를 해독할 수 있는 원시 ECDH 키링을 만들 수도 있습니다. 이 키 계약 스키마는 메시지의 암호만 해독할 수 있습니다.
중요
PublicKeyDiscovery
키 계약 스키마를 사용하여 메시지를 해독하면 소유자에 관계없이 모든 공개 키를 수락합니다.
PublicKeyDiscovery
키 계약 스키마를 사용하여 원시 ECDH 키링을 초기화하려면 다음 값을 제공하십시오.
-
수신자의 고정 개인 키
5958에 정의된 대로 수신자의 PEM 인코딩된 개인 키 (PKCS#8 PrivateKeyInfo 구조) 를 제공해야 합니다. RFC
-
커브 사양
지정된 개인 키의 타원 곡선 사양을 식별합니다. 발신자와 수신자의 키 페어 모두 동일한 커브 사양을 가져야 합니다.
유효한 값:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512