Classic/VPC 환경에서 이용 가능합니다.
키의 현재 버전으로 최대 32 KB 크기의 데이터를 암호화합니다. AES256 또는 RSA2048 키 타입으로만 요청할 수 있습니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| POST | /kms/v1/keys/{keyTag}/encrypt |
요청 헤더
Key Management Service API에서 공통으로 사용하는 헤더에 대한 정보는 Key Management Service 요청 헤더에서 토큰 인증 방식을 참조해 주십시오.
요청 경로 파라미터
요청 경로 파라미터에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
keyTag |
String | Required | 키 태그
|
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
plaintext |
String 또는 Array[String] | Required | Base64로 인코딩된 문자열 데이터
|
context |
String | Conditional | Base64로 인코딩된 문자열 데이터
|
요청 예시
요청 예시는 다음과 같습니다.
plaintext를 String 타입으로 요청
curl --location --request POST 'https://ocapi.ncloud.com/kms/v1/keys/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/encrypt' \
--header 'x-ncp-ocapi-token: {Access Token}' \
--data '{
"plaintext": "{BASE64_PLAINTEXT}",
"context": "{BASE64_CONTEXT}"
}'
plaintext를 Array[String] 타입으로 요청
curl --location --request POST 'https://ocapi.ncloud.com/kms/v1/keys/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/encrypt' \
--header 'x-ncp-ocapi-token: {Access Token}' \
--data '{
"plaintext": ["{BASE64_PLAINTEXT_1}", "{BASE64_PLAINTEXT_2}", "{BASE64_PLAINTEXT_3}"],
"context": "{BASE64_CONTEXT}"
}'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
code |
String | - | 성공 여부 |
data |
Object | - | 응답 결과 |
data.ciphertext |
String 또는 Array[String] | - | 평문을 암호화하여 생성된 문자열 데이터 |
응답 상태 코드
Key Management Service API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Key Management Service 응답 상태 코드를 참조해 주십시오.
응답 예시
응답 예시는 다음과 같습니다.
plaintext를 String 타입으로 요청
{
"code": "SUCCESS",
"data": {
"ciphertext": "{CIPHERTEXT}"
}
}
plaintext를 Array[String] 타입으로 요청
{
"code": "SUCCESS",
"data": {
"ciphertext": [
"{CIPHERTEXT_1}",
"{CIPHERTEXT_2}",
"{CIPHERTEXT_3}"
]
}
}
RSA2048 공개 키로 직접 암호화하는 경우
RSA2048 키의 암호화 알고리즘 파라미터는 다음과 같습니다.
| 항목 | 값 |
|---|---|
| 알고리즘 | RSAES-OAEP |
| OAEP 해시 | SHA-256 |
| MGF | MGF1 with SHA-256 |
| Label | 없음 |
| 평문 최대 크기 | 190 bytes |
Java의 파라미터 정의 예시는 다음과 같습니다.
OAEPParameterSpec spec = new OAEPParameterSpec(
"SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);
NCP KMS는 국내 암호 권고 기준에 따라 OAEP-SHA1을 지원하지 않고 위 스펙 단일 방식으로만 동작하므로, 암호화·복호화 요청 시 별도의 알고리즘 파라미터를 지정할 필요가 없습니다. KMS API를 호출하지 않고 공개 키로 직접 암호화한 데이터도 위 조건과 동일하게 암호화했다면 Decrypt로 복호화할 수 있습니다. 공개 키 조회와 암호화 예시는 Get Public Key를 참조해 주십시오.