Classic/VPC 환경에서 이용 가능합니다.
키로 암호화된 암호문을 복호화합니다. AES256 또는 RSA2048 키 타입으로만 요청할 수 있습니다.
마스터 키로 암호화되어 반환되는 데이터는 KMS prefix + 암호문으로 구성되어 있습니다. KMS prefix는 ncpkms:버전정보로 구성되어 있으며, 복호화 요청 시에 지정된 키 버전으로 복호화되기 때문에 암호문과 함께 KMS prefix가 정확하게 명시되어야 합니다. KMS prefix가 올바르지 않으면 정확하게 복호화되지 않으므로 임의 제거 또는 조작 없이 반환된 암호화 형태 그대로 관리해 주십시오.
ncpkms:v1:XjsPWPjqPrBi1N2DupSiSbX/ATkGmKA
---------- -------------------------------
KMS prefix 암호문
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| POST |
|
요청 헤더
Key Management Service API에서 공통으로 사용하는 헤더에 대한 정보는 Key Management Service 요청 헤더를 참조해 주십시오.
요청 경로 파라미터
요청 경로 파라미터에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
keyTag |
String | Required | 키 태그
|
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
ciphertext |
String 또는 Array[String] | Required | 평문을 암호화하여 생성된 문자열 데이터 |
context |
String | Conditional | Base64로 인코딩된 문자열 데이터
|
요청 예시
요청 예시는 다음과 같습니다.
- API Gateway request signature v1 및
ciphertext를 String 타입으로 요청
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v1/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/decrypt' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-apigw-api-key: {API Gateway API Key}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v1: {API Gateway Signature}' \
--data '{
"ciphertext": "{CIPHERTEXT}",
"context": "{BASE64_CONTEXT}"
}'
- API Gateway request signature v2 및
ciphertext를 Array[String] 타입으로 요청
curl --location --request POST 'https://kms.apigw.ntruss.com/keys/v2/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/decrypt' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
"ciphertext": ["{CIPHERTEXT_1}", "{CIPHERTEXT_2}", "{CIPHERTEXT_3}"],
"context": "{BASE64_CONTEXT}"
}'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
code |
String | - | 성공 여부 |
msg |
String | - | 응답 코드(code)에 대한 설명
|
data |
Object | - | 응답 결과 |
data.plaintext |
String 또는 Array[String] | - | 복호화된 문자열 데이터
|
응답 상태 코드
Key Management Service API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Key Management Service 응답 상태 코드를 참조해 주십시오.
응답 예시
응답 예시는 다음과 같습니다.
ciphertext를 String 타입으로 요청
{
"code": "SUCCESS",
"msg": "",
"data": {
"plaintext": "{BASE64_PLAINTEXT}"
}
}
ciphertext를 Array[String] 타입으로 요청
{
"code": "SUCCESS",
"msg": "",
"data": {
"plaintext": [
"{BASE64_PLAINTEXT_1}",
"{BASE64_PLAINTEXT_2}",
"{BASE64_PLAINTEXT_3}"
]
}
}
RSA2048 공개 키로 암호화한 데이터 복호화
RSA2048의 경우, NCP KMS API를 호출하지 않고 공개 키로 직접 암호화한 데이터도 Encrypt에 명시된 조건과 동일하게 암호화했다면 이 API로 복호화할 수 있습니다.
복호화를 요청할 때는 RSA 암호문을 Base64로 인코딩한 뒤 KMS 암호문 식별 접두사를 붙여 ciphertext로 전달해야 합니다.
ncpkms:v{키 버전}:{Base64(RSA 암호문)}
공개 키 조회와 암호화 예시는 Get Public Key를 참조해 주십시오.
Decrypt는 암호화 시 사용된 파라미터로 KMS가 복호화하므로 별도의 알고리즘 파라미터를 지정할 필요가 없습니다. 공개 키로 직접 암호화한 데이터를 복호화하려는 경우에는 파라미터를 동일하게 맞춰야 하며, 자세한 내용은 Encrypt의 암호화 파라미터를 참조해 주십시오.