AWS Encryption SDK에서 지원되는 알고리즘 제품군 - AWS Encryption SDK

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

AWS Encryption SDK에서 지원되는 알고리즘 제품군

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

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

기본적으로 AWS Encryption SDK는 HMAC 기반의 추출 및 확장 키 유도 함수(HKDF), 서명 및 256비트 암호화 키가 포함된 AES-GCM을 사용하는 알고리즘 제품군을 사용합니다. 커밋 정책키 커밋이 필요한 경우 AWS Encryption SDK는 키 커밋도 지원하는 알고리즘 제품군을 선택합니다. 그러지 않으면 키 유도 및 서명이 포함되지만 키 커밋은 없는 알고리즘 제품군을 선택합니다.

AWS Encryption SDK에서는 HMAC 기반의 추출 및 확장 키 유도 함수(HKDF)에 256비트 데이터 암호화 키를 제공하여 AES-GCM 암호화 키를 유도하는 알고리즘 제품군을 권장합니다. AWS Encryption SDK는 Elliptic Curve Digital Signature Algorithm(ECDSA) 서명을 추가합니다. 키 커밋을 지원하기 위해 이 알고리즘 제품군은 암호화된 메시지의 메타데이터에 저장되는 키 커밋 문자열(비밀이 아닌 데이터 키 식별자)도 유도합니다. 이 키 커밋 문자열도 데이터 암호화 키 유도와 유사한 절차를 사용하여 HKDF를 통해 유도됩니다.

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

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

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

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

기타 지원 알고리즘 제품군

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

AES-GCM(키 커밋 없음)

키 커밋이 없는 알고리즘 제품군은 복호화하기 전에 데이터 키를 검증하지 않습니다. 따라서 이러한 알고리즘 제품군은 단일 사이퍼텍스트를 다른 일반 텍스트 메시지로 복호화할 수 있습니다. 그러나 키 커밋이 포함된 알고리즘 제품군은 약간 더 큰(+30바이트) 암호화된 메시지를 생성하여 처리 시간이 더 오래 걸리기 때문에 모든 애플리케이션에 가장 적합한 선택은 아닙니다.

AWS Encryption SDK는 키 유도, 키 커밋, 서명이 포함된 알고리즘 제품군과, 키 유도 및 키 커밋이 포함되지만 서명은 없는 알고리즘 제품군을 지원합니다. 키 커밋이 없는 알고리즘 제품군은 사용하지 않는 것이 좋습니다. 꼭 필요한 경우 키 유도 및 키 커밋은 포함되지만 서명은 없는 알고리즘 제품군을 사용하는 것이 좋습니다. 그러나 애플리케이션 성능 프로파일이 알고리즘 제품군 사용을 지원하는 경우 키 커밋, 키 유도 및 서명이 포함된 알고리즘 제품군을 사용하는 것이 모범 사례입니다.

서명 없는 AES-GCM

서명이 없는 알고리즘 모음에는 신뢰성 및 부인 방지를 제공하는 ECDSA 서명이 없습니다. 해당 제품군은 데이터를 암호화하는 사용자와, 데이터를 복호화하는 사용자를 동등하게 신뢰할 수 있는 경우에만 사용하세요.

서명 없는 알고리즘 제품군을 사용하는 경우 키 유도 및 키 커밋이 포함된 알고리즘 제품군을 사용하는 것이 좋습니다.

AES-GCM(키 유도 없음)

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

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