

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 에서 지원되는 알고리즘 제품군 AWS Encryption SDK
<a name="supported-algorithms"></a>

*알고리즘 제품군*은 암호화 알고리즘 및 관련 값의 모음입니다. 암호화 시스템은 알고리즘 구현을 사용하여 사이퍼텍스트를 생성합니다.

 AWS Encryption SDK 알고리즘 제품군은 AES-GCM이라고 하는 Galois/Counter Mode(GCM)의 고급 암호화 표준(AES) 알고리즘을 사용하여 원시 데이터를 암호화합니다. 는 256비트, 192비트 및 128비트 암호화 키를 AWS Encryption SDK 지원합니다. 초기화 벡터(IV)의 길이는 항상 12바이트입니다. 인증 태그의 길이는 항상 16바이트입니다.

기본적으로는 HMAC 기반 extract-and-expand 키 유도 함수([HKDF](https://en.wikipedia.org/wiki/HKDF)), 서명 및 256비트 암호화 키가 있는 AES-GCM이 있는 알고리즘 제품군을 AWS Encryption SDK 사용합니다. [커밋 정책에](concepts.md#commitment-policy) [키 커밋](concepts.md#key-commitment)이 필요한 경우는 키 커밋도 지원하는 알고리즘 제품군을 AWS Encryption SDK 선택합니다. 그렇지 않으면 키 파생 및 서명이 있지만 키 커밋이 아닌 알고리즘 제품군을 선택합니다.

## 권장: AES-GCM(키 유도. 서명, 키 커밋 포함)
<a name="recommended-algorithms"></a>

는 HMAC 기반 extract-and-expand 키 유도 함수(HKDF)에 256비트 데이터 암호화 키를 제공하여 AES-GCM 암호화 키를 도출하는 알고리즘 제품군을 AWS Encryption SDK 권장합니다. 는 타원 곡선 디지털 서명 알고리즘(ECDSA) 서명을 AWS Encryption SDK 추가합니다. [키 커밋](concepts.md#key-commitment)을 지원하기 위해 이 알고리즘 제품군은 암호화된 메시지의 메타데이터에 저장되는 *키 커밋 문자열*(비밀이 아닌 데이터 키 식별자)도 유도합니다. 이 키 커밋 문자열도 데이터 암호화 키 유도와 유사한 절차를 사용하여 HKDF를 통해 유도됩니다.


**AWS Encryption SDK 알고리즘 제품군**  

| 암호화 알고리즘 | 데이터 암호화 키 길이(비트) | 키 유도 알고리즘 | 서명 알고리즘 | 키 커밋 | 
| --- | --- | --- | --- | --- | 
| AES-GCM | 256 | HKDF(SHA-384 사용) | ECDSA(P-384 및 SHA-384 사용) | HKDF(SHA-512 사용) | 

HKDF를 사용하면 실수로 데이터 암호화 키를 재사용하는 것을 방지하고 데이터 키를 과도하게 사용할 위험을 줄일 수 있습니다.

서명을 위해 이 알고리즘 제품군은 암호화 해시 함수 알고리즘(SHA-384)과 함께 ECDSA를 사용합니다. ECDSA는 기본 마스터 키에 대한 정책에 명시되지 않았더라도 기본적으로 사용됩니다. [메시지 서명](concepts.md#digital-sigs)은 메시지 발신자가 메시지를 암호화할 권한이 있는지 확인하고 부인 방지 기능을 제공합니다. 특히 마스터 키에 대한 권한 부여 정책에서 한 사용자 세트에 대해 데이터 암호화를 허용하고 다른 사용자 세트에 데이터 복호화를 허용하는 경우에 유용합니다.

키 커밋이 포함된 알고리즘 제품군은 각 사이퍼텍스트가 하나의 일반 텍스트로만 복호화되도록 합니다. 이를 위해 암호화 알고리즘에 대한 입력으로 사용된 데이터 키의 자격 증명을 검증합니다. 암호화할 때 이러한 알고리즘 제품군은 키 커밋 문자열을 유도합니다. 복호화하기 전에 데이터 키가 키 커밋 문자열과 일치하는지 검증합니다. 그러지 않으면 복호화 호출이 실패합니다.

## 기타 지원 알고리즘 제품군
<a name="other-algorithms"></a>

는 이전 버전과의 호환성을 위해 다음과 같은 대체 알고리즘 제품군을 AWS Encryption SDK 지원합니다. 일반적으로 이러한 알고리즘 제품군은 사용하지 않는 것이 좋습니다. 하지만 서명이 성능을 크게 저해할 수 있다는 점을 잘 알고 있기 때문에 이러한 경우를 위해 키 유도가 포함된 키 커밋 제품군이 제공됩니다. 성능 절충을 더 많이 해야 하는 애플리케이션을 위해 서명, 키 커밋 및 키 유도가 없는 제품군이 계속 제공됩니다.

**AES-GCM(키 커밋 없음)**  
키 커밋이 없는 알고리즘 제품군은 복호화하기 전에 데이터 키를 검증하지 않습니다. 따라서 이러한 알고리즘 제품군은 단일 사이퍼텍스트를 다른 일반 텍스트 메시지로 복호화할 수 있습니다. 그러나 키 커밋이 포함된 알고리즘 제품군은 [약간 더 큰(\$130바이트) 암호화된 메시지](message-format.md)를 생성하여 처리 시간이 더 오래 걸리기 때문에 모든 애플리케이션에 가장 적합한 선택은 아닙니다.  
는 키 파생, 키 커밋, 서명이 있는 알고리즘 제품군과 키 파생 및 키 커밋이 있지만 서명은 없는 알고리즘 제품군을 AWS Encryption SDK 지원합니다. 키 커밋이 없는 알고리즘 제품군은 사용하지 않는 것이 좋습니다. 꼭 필요한 경우 키 유도 및 키 커밋은 포함되지만 서명은 없는 알고리즘 제품군을 사용하는 것이 좋습니다. 그러나 애플리케이션 성능 프로파일이 알고리즘 제품군 사용을 지원하는 경우 키 커밋, 키 유도 및 서명이 포함된 알고리즘 제품군을 사용하는 것이 모범 사례입니다.

**서명 없는 AES-GCM**  
서명이 없는 알고리즘 모음에는 신뢰성 및 부인 방지를 제공하는 ECDSA 서명이 없습니다. 해당 제품군은 데이터를 암호화하는 사용자와, 데이터를 복호화하는 사용자를 동등하게 신뢰할 수 있는 경우에만 사용하세요.  
서명 없는 알고리즘 제품군을 사용하는 경우 키 유도 및 키 커밋이 포함된 알고리즘 제품군을 사용하는 것이 좋습니다.

**AES-GCM(키 유도 없음)**  
키 유도가 없는 알고리즘 제품군은 키 유도 함수를 사용하여 고유 키를 유도하는 대신 데이터 암호화 키를 AES-GCM 암호화 키로 사용합니다. 이 제품군을 사용하여 사이퍼텍스트를 생성하는 것은 권장하지 않지만는 호환성을 위해 이를 AWS Encryption SDK 지원합니다.

이러한 제품군이 라이브러리에서 어떻게 표시되고 사용되는지에 대한 자세한 내용은 [AWS Encryption SDK 알고리즘 참조](algorithms-reference.md) 섹션을 참조하세요.