

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

# Decrypt
<a name="decrypt-operation"></a>

사이퍼텍스트 값을 복호화 AWS KMS 하기 위한 호출은 암호화된 값 사이퍼텍스트 및 암호화 컨텍스트를 수락합니다.는 [AWS 서명 버전 4 서명된 요청을](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) 사용하여 호출을 AWS KMS 인증하고 사이퍼텍스트에서 래핑 키의 HBKID를 추출합니다. HBKID는 암호화 텍스트, 키 ID 및 키 ID에 대한 정책을 복호화하는 데 필요한 *EKT*를 가져오는 데 사용됩니다. 이 요청에는 키 정책, 존재할 수 있는 권한 부여, 그리고 키 ID를 참조하는 연결된 IAM 정책에 따라 권한이 부여됩니다. `Decrypt` 함수는 암호화 함수와 유사합니다.

다음은 `Decrypt` 요청 구문입니다.

```
{
	"CiphertextBlob": "blob",
	"EncryptionContext": { "string" : "string" }
	"GrantTokens": ["string"]
}
```

요청 파라미터는 다음과 같습니다.

**CiphertextBlob**  
메타데이터가 포함된 암호화 텍스트입니다.

** EncryptionContext**  
(선택 사항) 암호화 컨텍스트입니다. `Encrypt` 함수에 이 값을 지정한 경우 여기에서도 지정해야 하며, 그렇지 않으면 복호화 작업이 실패합니다. 자세한 내용은 *AWS Key Management Service 개발자 가이드*에서 [암호화 컨텍스트](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html)를 참조하세요.

**GrantTokens**  
(선택 사항) 복호화 작업을 수행할 권한을 제공하는 권한 부여를 나타내는 권한 부여 토큰 목록입니다.

*암호화 텍스트* 및 *EKT*는 복호화를 위해 인증된 세션을 통해 암호화 컨텍스트와 함께 HSM에 전송됩니다.

HSM은 다음을 실행합니다.

1. *EKT*를 복호화하여 *HBK = Decrypt(DKi, EKT)*를 가져옵니다.

1. *암호화 텍스트* 구조에서 임의의 *N*을 추출합니다.

1. *HBK* 및 *N*에서 256비트 AES-GCM 파생 암호화 키 *K*를 다시 생성합니다.

1. *암호화 텍스트*를 복호화하여 *plaintext = Decrypt(K, context, ciphertext)*를 가져옵니다.

결과 키 ID와 일반 텍스트는 보안 세션을 통해 AWS KMS 호스트로 반환된 다음 TLS 연결을 통해 호출하는 고객 애플리케이션으로 다시 반환됩니다.

응답 구문은 다음과 같습니다.

```
{
    "KeyId": "string",
    "Plaintext": blob
}
```

호출 애플리케이션이 일반 텍스트의 신뢰성을 확인하려는 경우 반환되는 키 ID가 올바른 ID인지 확인해야 합니다.