KMFCryptoOperation - 범위 지정, 전역

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기19분
  • KMFCryptoOperation 클래스는 KMF 암호화 모듈 또는 CLE 암호화 모듈을 사용하여 암호화 작업을 수행하기 위한 메서드를 제공합니다.

    이 API를 사용하려면 KMF(Key Management Framework) 암호화 모듈 또는 CLE(Column Level Encryption) 암호화 모듈을 미리 작성하고 구성해야 합니다. 모듈에는 하나 이상의 암호화 사양이 있어야 하며 연결된 키를 만들거나 가져와야 합니다. 자세한 내용은 암호화 모듈을 참조하세요.

    이 API를 사용하여 생성된 KMFCryptoOperation 개체는 대칭 암호화와 같은 암호화 작업을 나타냅니다. KMFCryptoOperations() 메서드를 사용하여 이 개체를 만들고, 작성기 메서드를 사용하여 개체의 속성을 설정하고, doOperation() 메서드를 사용하여 작업을 실행합니다.

    범위 지정 애플리케이션과 전역 애플리케이션 모두에서 이 API를 사용할 수 있습니다. 이 API를 호출할 때는 항상 sn_kmf_ns 네임스페이스를 지정해야 합니다.

    KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName)

    지정된 모듈 및 작업에 대한 KMFCryptoOperation 개체를 만듭니다.

    이 API는 작성기 메서드를 활용합니다. 작성기 메서드는 KMFCryptoOperation 개체의 속성을 업데이트합니다(예: 데이터의 원하는 출력 형식 변경). 모든 작성기 메서드가 모든 작업에 유효한 것은 아닙니다. 각 작업에 사용할 수 있는 빌더 메서드는 아래 매개변수 테이블에 설명되어 있습니다.

    다음 작성기 메서드는 모든 작업 유형에 유효합니다.
    표 1. 매개변수
    이름 유형 설명
    크립토모듈이름 문자열 사용할 KMF(Key Management Framework) 암호화 모듈 또는 CLE(Column Level Encryption) 암호화 모듈의 이름입니다. 이 메서드를 호출하기 전에 모듈을 만들어야 합니다. 자세한 내용은 암호화 모듈 개요를 참조하세요.
    운영 이름 문자열 수행할 작업의 이름입니다.
    유효한 값(대/소문자 구분 안 함):
    • ASYMMETRIC_DECRYPTION: 비대칭 키 알고리즘을 사용한 데이터 암호 해독입니다. 비대칭 데이터 암호 해독 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAdditionalInput()
      • 기본 입력 형식: 형식 지정됨 - KMF 사양에 맞게 형식이 지정됨
      • 기본 출력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 유형: 문자열
    • ASYMMETRIC_ENCRYPTION: 비대칭 키 알고리즘을 사용하여 데이터를 암호화합니다. 비대칭 데이터 암호화 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAdditionalInput()
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: 형식 지정됨 - KMF 사양에 맞게 형식화됨
      • 기본 출력 유형: 문자열 . 출력은 KMFEncryptionPayload 개체일 수도 있습니다. RSA 및 EC-IES는 둘 다와 호환됩니다. KMFEncryptionPayload 객체에 대한 자세한 내용은 withAdditionalInput()을 참조하십시오.
    • ASYMMETRIC_UNWRAPPING: 비대칭 키 알고리즘을 사용한 키 래핑 해제입니다. 비대칭 키 래핑 해제 암호화를 위한 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAlgorithm()
      • 기본 입력 형식: 형식 지정됨 - KMF 사양에 맞게 형식이 지정됨
      • 기본 출력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 유형: 문자열
    • ASYMMETRIC_WRAPPING: 비대칭 키 알고리즘을 사용한 키 래핑입니다. 비대칭 키 래핑 암호화 용도로 사용되는 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAlgorithm(), withSysId()
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: 형식 지정됨 - KMF 사양에 맞게 형식화됨
      • 기본 출력 유형: 문자열
    • MAC_GENERATION: MAC(메시지 인증 코드)를 생성합니다. 대칭 키 알고리즘 기반은 데이터 무결성 및 인증을 제공합니다. 대칭 신뢰성 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 작성기 메서드: 없음
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: 형식 지정됨 - KMF 사양에 맞게 형식화됨
      • 기본 출력 유형: 문자열
    • MAC_VERIFICATION: MAC 확인. 데이터 무결성 및 인증을 제공하기 위한 대칭 키 알고리즘 기반입니다. 대칭 신뢰성 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAdditionalInput()
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: KMFNone - 디코딩 없음
      • 기본 출력 유형: 부울
    • SIGNATURE_GENERATION: 디지털 서명 생성. 데이터 무결성 및 인증을 제공하는 비대칭 키 알고리즘 기반입니다. 서명 생성 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 작성기 메서드: 없음
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: 형식 지정됨 - KMF 사양에 맞게 형식화됨
      • 기본 출력 유형: 문자열
    • SIGNATURE_VERIFICATION: 디지털 서명 확인입니다. 데이터 무결성 및 인증을 제공하는 비대칭 키 알고리즘 기반입니다. 서명 확인 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAdditionalInput()
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: KMFNone - 디코딩 없음
      • 기본 출력 유형: 부울
    • SYMMETRIC_ENCRYPTION: 대칭 키 알고리즘을 사용하여 데이터를 암호화합니다. 알고리즘이 같음을 유지하지 않으면 서식이 지정된 출력만 허용됩니다. 대칭 데이터 암호화/암호 해독 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 작성기 메서드: 없음
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: 형식 지정됨 - KMF 사양에 맞게 형식화됨
      • 기본 출력 유형: 문자열
    • SYMMETRIC_DECRYPTION: 대칭 키 알고리즘을 사용한 데이터 암호 해독입니다. 알고리즘이 같음을 유지하지 않는 경우 KMFBase64 입력이 허용됩니다. 대칭 데이터 암호화/암호 해독 암호화 용도의 KMF 암호화 모듈이 필요합니다.
      • 추가 작성기 메서드: 없음
      • 기본 입력 형식: 형식 지정됨 - KMF 사양에 맞게 형식이 지정됨
      • 기본 출력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 유형: 문자열
    • SYMMETRIC_WRAPPING: 대칭 키 알고리즘을 사용한 키 래핑입니다. 알고리즘이 같음을 유지하지 않으면 서식이 지정된 출력만 허용됩니다. 암호화 목적으로 대칭 키 래핑/래핑 해제 암호화를 사용하는 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAlgorithm () 및 withSysId()
      • 기본 입력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 형식: 형식 지정됨 - KMF 사양에 맞게 형식화됨
      • 기본 출력 유형: 문자열
    • SYMMETRIC_UNWRAPPING: 대칭 키 알고리즘을 사용한 키 래핑 해제입니다. 알고리즘이 같음을 유지하지 않는 경우 KMFBase64 입력이 허용됩니다. 암호화 목적으로 대칭 키 래핑/래핑 해제 암호화를 사용하는 KMF 암호화 모듈이 필요합니다.
      • 추가 빌더 메서드: withAlgorithm()
      • 기본 입력 형식: 형식 지정됨 - KMF 사양에 맞게 형식이 지정됨
      • 기본 출력 형식: KMFBase64 - Base64 인코딩
      • 기본 출력 유형: 문자열

    이 예제에서는 모듈 global.sj_cm에 대한 KMFCryptoOperation 개체를 인스턴스화하여 대칭 암호화 작업을 수행합니다. 전역 애플리케이션과 범위가 지정된 애플리케이션 모두에 대한 네임스페이스를 포함해야 합니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION"); 

    이 예제에서는 기본 출력 형식 및 출력 형식을 업데이트하는 옵션을 지정하는 방법을 보여 줍니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION")
      .withOutputType("STRING").withOutputFormat("FORMATTED");
    
    var cipherText=op.doOperation("hi");

    이 예에서는 EC-IES(Integrated Encryption Scheme)를 사용하여 비대칭 암호화 작업을 수행하는 방법을 보여줍니다. 긴 값(예 signature: )은 가독성을 위해 잘리고 타원으로 대체되었습니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_ENCRYPTION")
    .withInputFormat("KMFNONE")
    .withOutputType("PAYLOAD");
    
    var cipherText = op.doOperation("hi");
    
    /*
    cipherText contains an object similar to this JSON: {
      "signature": "pkg…",
      "ephemeral_key": "BDi…",
      "ciphertext": "afFS…"
    }
    */
    

    이 예에서는 EC-IES를 사용하여 비대칭 암호 해독 작업을 수행하는 방법을 보여줍니다.

    var op = new 
    sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_DECRYPTION")
      .withAdditionalInput({
      "signature": "pkg… ",
      "ephemeral_key": "BDi…"
    })
    .withOutputFormat("KMFNONE");
    
    var clearText = op.doOperation("afFS…");
    

    KMFCryptoOperation - doOperation(객체 데이터)

    제공된 데이터에 대해 현재 KMFCryptoOperation 개체로 정의된 암호화 작업을 수행하고 결과를 반환합니다.

    표 2. 매개변수
    이름 유형 설명
    데이터 객체 withSysId() 빌더 메서드가 이전에 연결된 KMFCryptoOperation 오브젝트에서 호출된 경우를 제외하고 필수입니다. 암호화 작업을 수행할 입력 데이터입니다.
    표 3. 반환
    유형 설명
    운영 유형에 따라 다릅니다.
    • MAC_VERIFICATIONSIGNATURE_VERIFICATION: 부울
    • 기타 모든 항목: 문자열
    연결된 KMFCryptoOperation 개체에 지정된 작업을 수행한 후의 데이터 결과입니다.

    이 예제에서는 doOperation() 을 사용하여 MAC을 만듭니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","MAC_GENERATION"); 
    var data = "aGk="; 
    var mac = op.doOperation(data);

    KMFCryptoOperation - withAdditionalInput(추가 입력 객체)

    암호화 작업을 수행하는 데 필요한 추가 입력을 설정합니다.

    예를 들어 MAC(메시지 인증 코드) 확인 중에 이 메서드를 사용하여 생성된 MAC 태그를 전달합니다. 마찬가지로 서명 확인 중에 서명을 전달하는 데 사용합니다. EC-IES(Elliptic Curve Integrated Encryption Scheme)와 같은 통합 암호화를 사용하여 비대칭 작업을 수행할 때 이 메서드를 사용하여 추가 데이터인 KMFEncryptionPayload 개체를 전달할 수도 있습니다.

    주:
    추가 입력은 현재 KFMCryptoOperation 개체에 설정된 형식과 동일한 형식일 필요는 없습니다.
    표 4. 매개변수
    이름 유형 설명
    추가 입력 문자열 또는 객체 선택 사항(EC-IES를 사용할 때 비대칭 암호 해독 작업 제외) KMFCryptoOperation 개체에 지정된 암호화 작업을 수행하는 데 필요한 추가 입력 데이터입니다.
    지원되는 문자열 형식:
    • 형식: KMF(Key Management Framework) 사양에 맞게 형식이 지정되었습니다.
    • KMFBASE64: Base64로 인코딩되었습니다.

    KMFEncryptionPayload 개체 형식:

    {
      "ciphertext": String,
      "derivation_secret": String,
      "ephemeral_key": String,
      "ephemeral_key_format": String,
      "signature": String
    }
    additionalInput.ciphertext 문자열(Base64) 비대칭 암호 해독에는 필수이며 다른 모든 작업에는 선택 사항입니다.
    유효한 값은 다음과 같습니다.
    • RSA 알고리즘을 사용하는 경우: RSA 암호 텍스트
    • EC-IES 알고리즘을 사용하는 경우: 통합 AES 암호문

    출력 유형이 로 설정된 경우 Asymmetric Encryption 작업에서 사용할 수 있습니다 payload.

    additionalInput.derivation_secret 문자열(Base64) 선택 사항으로, EC-IES를 사용한 비대칭 암호화 또는 비대칭 암호 해독 작업에만 사용됩니다. 통합 체계의 키 파생 프로세스 중에 사용할 공유 비밀입니다.
    additionalInput.ephemeral_key 문자열(Base64) EC-IES를 사용할 때 비대칭 암호 해독 작업에 필요하며 다른 모든 작업에는 선택 사항입니다. 통합 체계의 기본 합의 프로세스 중에 사용할 임시 공개 키입니다.

    출력 유형이 로 설정된 경우 Asymmetric Encryption 작업에서 사용할 수 있습니다 payload.

    additionalInput.ephemeral_key_format 문자열 선택 사항으로, EC-IES를 사용한 비대칭 암호화 또는 비대칭 암호 해독 작업에만 사용됩니다. 매개 변수가 나타내는 공개 키의 형식을 재정의합니다 ephemeral_key .
    유효한 값은 다음과 같습니다.
    • x962 (영문)
    • 데르
    additionalInput.signature 문자열(Base64) EC-IES를 사용한 비대칭 암호 해독 작업에 필요하며 다른 모든 작업에는 선택 사항입니다. 통합 체계의 서명 검증 프로세스를 사용하여 유효성을 검사할 암호문의 서명입니다.

    출력 유형이 로 설정된 경우 Asymmetric Encryption 작업에서 사용할 수 있습니다 payload.

    표 5. 반환
    유형 설명
    없음

    이 예제에서는 withAdditionalInput() 을 사용하여 KMFCryptoOperation 개체에 문자열 기반 서명을 추가합니다.

    var signature = "John Doe";
    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SIGNATURE_VERIFICATION")
      .withAdditionalInput(signature);
    
    var value = GlideStringUtil.base64Encode("Text to encode"); // Default input format is KMFBase64
    var result = op.doOperation(String(value));

    이 예제에서는 withAdditionalInput() 을 사용하여 KMFCryptoOperation 개체에 서명 및 임시 키를 추가합니다. doOperation() 호출 및 payload description의 값과 같은 긴 값은 가독성을 위해 잘리고 타원으로 대체되었습니다.

    var payload = new sn_kmf_ns.KMFEncryptionPayload();
    payload.signature = "pkg...";
    payload.ephemeral_key = " BDi...";
    payload.ephemeral_key_format = "x962";
    
    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_DECRYPTION")
      .withAdditionalInput(payload)
      .doOperation("afFS...";
    

    KMFCryptoOperation - withAlgorithm(문자열 알고리즘)

    래핑할 키 자료와 연결된 알고리즘을 설정합니다.

    표 6. 매개변수
    이름 유형 설명
    알고리즘 문자열 사용할 알고리즘입니다.
    유효한 값은 다음과 같습니다.
    • AES: 대칭 키 유형
    • EC: 비대칭 키 유형
    • HMAC: 대칭 키 유형
    • RSA: 비대칭 키 유형
    표 7. 반환
    유형 설명
    없음

    이 예제에서는 withAlgorithm() 을 사용하여 EC에 사용되는 암호화 알고리즘을 변경합니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_WRAPPING").withAlgorithm("EC");
    var value = GlideStringUtil.base64Encode("Sample key"); // Default input format is KMFBase64
    var result = op.doOperation(String(value));

    KMFCryptoOperation - withInputFormat(String inputFormat)

    암호화 작업을 수행할 입력 데이터의 데이터 형식을 설정합니다. 데이터를 디코딩할 때 지정된 형식을 사용합니다.

    표 8. 매개변수
    이름 유형 설명
    입력 형식 문자열 입력 데이터의 형식입니다.
    유효한 값은 다음과 같습니다.
    • 형식: KMF(Key Management Framework) 사양에 맞게 형식이 지정되었습니다.
    • KMFBASE64: Base64로 인코딩되었습니다.
    • KMFNONE: 인코딩이 없습니다.

    기본값: KMFCryptoOperation 개체가 인스턴스화될 때 지정된 작업에 의해 결정되는 값입니다. 자세한 내용은 KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName) 문서를 참조하십시오.

    표 9. 반환
    유형 설명
    없음

    이 예제에서는 withInputFormat() 을 사용하여 인코딩이 없도록 입력 형식을 변경합니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION").withInputFormat("KMFNone");
    var result = op.doOperation("Text with no encoding"); // Pass in unencrypted String

    KMFCryptoOperation - withOutputFormat(문자열 outputFormat)

    암호화 작업에서 반환되는 출력 데이터의 데이터 형식을 설정합니다. 데이터를 인코딩할 때 지정된 형식을 사용합니다.

    표 10. 매개변수
    이름 유형 설명
    출력 형식 문자열 출력 데이터의 형식입니다.
    유효한 값은 다음과 같습니다.
    • 형식: KMF(Key Management Framework) 사양에 맞게 형식이 지정되었습니다.
    • KMFBASE64: Base64로 인코딩되었습니다.
    • KMFNONE: 디코딩이 없습니다. MAC_VERIFICATION 및 SIGNATURE_VERIFICATION에서만 지원됩니다.

    이 메서드가 호출되지 않은 경우의 기본값: KMFCryptoOperation 개체가 인스턴스화될 때 지정된 작업에 의해 결정되는 값입니다. 자세한 내용은 KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName) 문서를 참조하십시오.

    표 11. 반환
    유형 설명
    없음

    이 예제에서는 withOutputFormat() 을 사용하여 암호 해독의 출력 형식을 KMFNone(기본값은 KMFBase64)으로 설정합니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_DECRYPTION").withOutputFormat("KMFNone");
    var clear_data = op.doOperation(<FORMATTED_data>); // Pass in default of FORMATTED data

    KMFCryptoOperation - withOutputType(String outputType)

    암호화 작업이 수행된 후 반환되는 출력 데이터의 데이터 형식을 설정합니다.

    주:
    또는 SIGNATURE_VERIFICATION 작업에 대한 MAC_VERIFICATION KMFCryptoOperation 개체를 인스턴스화할 때 부울을 전달하여 이 메서드를 호출하여 올바른 출력 형식을 설정해야 하며, 그렇지 않으면 작업을 실행할 때 예외가 throw됩니다.
    표 12. 매개변수
    이름 유형 설명
    출력 유형 문자열 출력 데이터의 유형입니다.

    모든 출력 형식을 모든 작업에 적용할 수 있는 것은 아닙니다. 지원되지 않는 형식의 경우 예외가 throw됩니다.

    유효한 값(대/소문자 구분 안 함):
    • 문자열: 또는 SIGNATURE_VERIFICATION 운영에 유효하지 MAC_VERIFICATION 않습니다.
    • 부울: 또는 SIGNATURE_VERIFICATION 연산에만 MAC_VERIFICATION 유효합니다.
    • 페이로드: 운영에만 ASYMMETRIC_ENCRYPTION 유효합니다. EC-IES에 이 출력 유형을 사용합니다.
    주:
    Payload의 출력을 지정할 때 doOperation() 메서드의 출력은 KMFEncryptionPayload 객체입니다. 이 객체의 구조에 대한 자세한 내용은 withAdditionalInput()을 참조하십시오.

    기본값: 작업에 의해 결정되는 값으로, KMFCryptoOperation 개체가 인스턴스화될 때 지정됩니다. 자세한 내용은 KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName) 문서를 참조하십시오.

    표 13. 반환
    유형 설명
    없음

    이 예제에서는 withOutputType() 을 사용하여 MAC_VERIFICATION의 출력 유형을 Boolean으로 설정합니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","MAC_VERIFICATION")
      .withOutputType("Boolean").withAdditionalInput(<MAC>);
    var value = GlideStringUtil.base64Encode("Text to sign"); // Default input type is KMFBase64
    var result = op.doOperation(String(value));

    KMFCryptoOperation - withSysId(String sysId)

    KMFCryptoOperation 개체에서 래핑할 키의 sys_id 설정합니다. 키의 대칭 및 비대칭 래핑에 적용할 수 있습니다.

    표 14. 매개변수
    이름 유형 설명
    sysId 문자열 래핑할 키의 Sys_id입니다. 모듈 키 [sys_kmf_module_key] 테이블에 있습니다.
    표 15. 반환
    유형 설명
    없음

    이 예제에서는 withSysId() 를 사용하여 래핑할 키를 정의합니다.

    var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_WRAPPING").withSysId("0d06ce525b231010f86d1b341d81c777");
    var wrappedKey = operation.doOperation(); // No need to pass data when using withSysId()