

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

# AWS Encryption SDK 초기화 벡터 참조
<a name="IV-reference"></a>


|  | 
| --- |
|   AWS Encryption SDK와 호환되는 자체 암호화 라이브러리를 빌드할 때 이 페이지의 정보를 참조할 수 있습니다. 호환되는 자체 암호화 라이브러리를 빌드하는 경우가 아니라면 이 정보는 필요 없을 것입니다. 지원되는 프로그래밍 언어 중 하나 AWS Encryption SDK 에서를 사용하려면 섹션을 참조하세요[프로그래밍 언어](programming-languages.md). 적절한 AWS Encryption SDK 구현의 요소를 정의하는 사양은 GitHub의 [AWS Encryption SDK 사양을](https://github.com/awslabs/aws-encryption-sdk-specification/) 참조하세요.  | 

는 지원되는 모든 [알고리즘 제품군](algorithms-reference.md)에 필요한 [초기화 벡터](https://en.wikipedia.org/wiki/Initialization_vector)(IVs)를 AWS Encryption SDK 제공합니다. SDK는 프레임 시퀀스 번호를 사용하여 IV를 구성하므로 동일한 메시지의 두 프레임이 동일한 IV를 가질 수 없습니다.

각 96비트(12바이트) IV는 다음 순서로 연결된 두 개의 빅 엔디안 바이트 배열로 구성됩니다.
+ 64비트: 0(향후 사용을 위해 예약됨)
+ 32비트: 프레임 시퀀스 번호. 헤더 인증 태그의 경우 이 값은 모두 0입니다.

[데이터 키 캐싱](data-key-caching.md)이 소개되기 전에는 AWS Encryption SDK 가 항상 새 데이터 키를 사용하여 각 메시지를 암호화하고 모든 IV를 임의로 생성했습니다. 무작위로 생성된 IV는 데이터 키가 재사용된 적이 없으므로 암호학적으로 안전했습니다. SDK가 의도적으로 데이터 키를 재사용하는 데이터 키 캐싱을 도입했을 때, SDK가 IV를 생성하는 방식을 변경했습니다.

메시지 내에서 반복할 수 없는 결정론적 IV를 사용하면 단일 데이터 키로 안전하게 실행할 수 있는 호출 수가 크게 늘어납니다. 또한 캐시된 데이터 키는 항상 [키 유도 함수](https://en.wikipedia.org/wiki/Key_derivation_function)가 있는 알고리즘 제품군을 사용합니다. 의사 무작위 키 유도 함수와 함께 결정적 IV를 사용하여 데이터 키에서 암호화 키를 추출하면가 암호화 범위를 초과하지 않고 2^32 메시지를 암호화 AWS Encryption SDK 할 수 있습니다.