AWS Encryption SDK 알고리즘 참조 - AWS Encryption SDK

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

AWS Encryption SDK 알고리즘 참조

AWS Encryption SDK와 호환되는 자체 암호화 라이브러리를 빌드할 때 이 페이지의 정보를 참조할 수 있습니다. 호환되는 자체 암호화 라이브러리를 빌드하는 경우가 아니라면 이 정보는 필요 없을 것입니다.

지원되는 프로그래밍 언어 중 AWS Encryption SDK 하나에서 를 사용하려면 을 참조하십시오프로그래밍 언어.

적절한 AWS Encryption SDK 구현의 요소를 정의하는 사양은 의 AWS Encryption SDK 사양을 참조하십시오 GitHub.

와 호환되는 암호문을 읽고 쓸 수 있는 자체 라이브러리를 구축하는 경우 지원되는 알고리즘 제품군을 AWS Encryption SDK 구현하여 원시 데이터를 암호화하는 방법을 이해해야 합니다. AWS Encryption SDK

는 다음 알고리즘 제품군을 AWS Encryption SDK 지원합니다. 모든 AES-GCM 알고리즘 제품군에는 12바이트 초기화 벡터와 16바이트 AES-GCM 인증 태그가 있습니다. 기본 알고리즘 세트는 AWS Encryption SDK 버전 및 선택한 키 약정 정책에 따라 다릅니다. 자세한 내용은 커밋 정책 및 알고리즘 제품군을 참조하세요.

AWS Encryption SDK 알고리즘 스위트
알고리즘 ID 메시지 형식 버전 암호화 알고리즘 데이터 키 길이(비트) 키 유도 알고리즘 서명 알고리즘 키 커밋 알고리즘 알고리즘 제품군 데이터 길이(바이트)
05 78 0x02 AES-GCM 256 HKDF(SHA-512 사용) ECDSA(P-384 및 SHA-384 사용) HKDF(SHA-512 사용) 32(키 커밋)
04 78 0x02 AES-GCM 256 HKDF(SHA-512 사용) None HKDF(SHA-512 사용) 32(키 커밋)
03 78 0x01 AES-GCM 256 HKDF(SHA-384 사용) ECDSA(P-384 및 SHA-384 사용) None N/A
03 46 0x01 AES-GCM 192 HKDF(SHA-384 사용) ECDSA(P-384 및 SHA-384 사용) None N/A
02 14 0x01 AES-GCM 128 HKDF(SHA-256 사용) ECDSA(P-256 및 SHA-256 사용) None N/A
01 78 0x01 AES-GCM 256 HKDF(SHA-256 사용) None None N/A
01 46 0x01 AES-GCM 192 HKDF(SHA-256 사용) None None N/A
01 14 0x01 AES-GCM 128 HKDF(SHA-256 사용) None None N/A
00 78 0x01 AES-GCM 256 None 없음 None N/A
00 46 0x01 AES-GCM 192 None 없음 None N/A
00 14 0x01 AES-GCM 128 None 없음 None N/A
알고리즘 ID

알고리즘 구현을 고유하게 식별하는 2바이트 16진수 값입니다. 이 값은 사이퍼텍스트의 메시지 헤더에 저장됩니다.

메시지 형식 버전

메시지 형식의 버전입니다. 키 커밋이 있는 알고리즘 제품군은 메시지 형식 버전 2(0x02)를 사용합니다. 키 커밋이 없는 알고리즘 제품군은 메시지 형식 버전 1(0x01)을 사용합니다.

알고리즘 제품군 데이터 길이

알고리즘 제품군에만 관련된 데이터의 길이(바이트)입니다. 이 필드는 메시지 형식 버전 2(0x02)에서만 지원됩니다. 메시지 형식 버전 2(0x02)에서 이 데이터는 메시지 헤더의 Algorithm suite data 필드에 표시됩니다. 키 커밋을 지원하는 알고리즘 제품군은 키 커밋 문자열에 32바이트를 사용합니다. 자세한 정보는 이 목록의 키 커밋 알고리즘을 참조하세요.

데이터 키 길이

데이터 키의 길이(비트)입니다. AWS Encryption SDK 는 256비트, 192비트, 128비트 키를 지원합니다. 데이터 키는 키링 또는 마스터 키로 생성됩니다.

일부 구현에서는 이 데이터 키가 HMAC 기반 extract-and-expand 키 도출 함수 (HKDF) 의 입력으로 사용됩니다. HKDF의 출력은 암호화 알고리즘에서 데이터 암호화 키로 사용됩니다. 자세한 정보는 이 목록의 키 유도 알고리즘을 참조하세요.

암호화 알고리즘

사용되는 암호화 알고리즘의 이름 및 모드입니다. AWS Encryption SDK 의 알고리즘 제품군은 Galois/Counter Mode(GCM)의 고급 암호화 표준(AES) 암호화 알고리즘을 사용합니다.

키 커밋 알고리즘

키 커밋 문자열을 계산하는 데 사용되는 알고리즘입니다. 출력은 메시지 헤더의 Algorithm suite data 필드에 저장되며 키 커밋에 대한 데이터 키를 검증하는 데 사용됩니다.

알고리즘 제품군에 키 커밋을 추가하는 방법에 대한 기술적인 설명은 Cryptology ePrint Archive의 키 커밋 AEAD를 참조하세요.

키 유도 알고리즘

데이터 암호화 키를 도출하는 데 사용되는 HMAC 기반 extract-and-expand 키 파생 함수 (HKDF). 는 RFC 5869에 AWS Encryption SDK 정의된 HKDF를 사용합니다.

키 커밋이 없는 알고리즘 제품군(알고리즘 ID 01xx - 03xx)

  • 사용되는 해시 함수는 알고리즘 제품군에 따라 SHA-384 또는 SHA-256 중 하나입니다.

  • 추출 단계의 경우:

    • 솔트는 사용하지 않습니다. RFC에 따라 솔트는 0으로 구성된 문자열로 설정됩니다. 문자열 길이는 해시 함수 출력의 길이와 같으며, 이는 SHA-384의 경우 48바이트, SHA-256의 경우 32바이트입니다.

    • 입력 키 구성 요소는 키링 또는 마스터 키 공급자에서 받은 데이터 키입니다.

  • 확장 단계의 경우:

    • 입력 의사 난수 키는 추출 단계의 출력입니다.

    • 입력 정보는 알고리즘 ID와 메시지 ID를 순서대로 연결한 것입니다.

    • 출력 키 구성 요소의 길이는 데이터 키 길이입니다. 이 출력은 암호화 알고리즘에서 데이터 암호화 키로 사용됩니다.

키 커밋이 있는 알고리즘 제품군(알고리즘 ID 04xx05xx)

  • 사용되는 해시 함수는 SHA-512입니다.

  • 추출 단계의 경우:

    • 솔트는 256비트 암호화 무작위 값입니다. 메시지 형식 버전 2(0x02)에서 이 값이 MessageID 필드에 저장됩니다.

    • 초기 키 구성 요소는 키링 또는 마스터 키 공급자에서 받은 데이터 키입니다.

  • 확장 단계의 경우:

    • 입력 의사 난수 키는 추출 단계의 출력입니다.

    • 키 레이블은 빅 엔디안 바이트 순서로 UTF-8 인코딩된 바이트 DERIVEKEY 문자열입니다.

    • 입력 정보는 알고리즘 ID와 키 레이블을 순서대로 연결한 것입니다.

    • 출력 키 구성 요소의 길이는 데이터 키 길이입니다. 이 출력은 암호화 알고리즘에서 데이터 암호화 키로 사용됩니다.

메시지 형식 버전

알고리즘 제품군과 함께 사용되는 메시지 형식의 버전입니다. 자세한 내용은 메시지 형식 참조단원을 참조하세요.

서명 알고리즘

사이퍼텍스트 헤더 및 본문에 디지털 서명을 생성하는 데 사용되는 서명 알고리즘입니다. 는 다음과 같은 AWS Encryption SDK 세부 사항과 함께 타원 곡선 디지털 서명 알고리즘 (ECDSA) 을 사용합니다.

  • 사용되는 타원 곡선은 알고리즘 ID로 지정된 P-384 또는 P-256 곡선입니다. 이러한 곡선은 DSS(디지털 서명 표준)(FIPS PUB 186-4)에 정의되어 있습니다.

  • 사용되는 해시 함수는 SHA-384(P-384 곡선 사용) 또는 SHA-256(P-256 곡선 사용)입니다.