디지털 서명은 데이터의 신뢰성을 확인하는 데 사용되는 암호화 출력입니다. 디지털 서명 알고리즘은 두 가지 작업을 허용합니다.
서명 키를 사용하여 원시 데이터에 대한 서명을 생성하는 서명 작업
서명 키를 알지 못하는 사람이 서명을 검증할 수 있는 확인 작업
디지털 서명의 주 목적은 다음과 같습니다.
서명된 데이터의 무결성 확인
서명자가 서명이 진짜가 아니라고 주장하는 경우의 부인 방지
디지털 서명은 공개 키 암호화라고도 하는 비대칭 암호화를 사용합니다. 비대칭 키는 공개 키/비공개 키 쌍으로 구성됩니다. 비공개 키는 서명을 만드는 데 사용되고, 해당 공개 키는 서명을 확인하는 데 사용됩니다.
디지털 서명의 사용 사례
디지털 서명을 사용하여 빌드를 검증할 수 있습니다. 예를 들어 비공개 키가 디지털로 서명한 바이너리의 경우, 비공개 키에 해당하는 공개 키를 사용하여 유효성을 검사할 수 있습니다. 바이너리의 서명이 유효하지 않으면 바이너리가 변조되거나 손상된 것입니다.
또 다른 예는 인증 기관(CA)에서 발급한 인증서의 주체를 검증하는 것입니다. CA는 공개 키/비공개 키의 비공개 키 부분에 대한 주체의 소유권을 바탕으로 주체에게 인증서를 발급합니다. 인증서는 주체의 비공개 키로 생성된 디지털 서명을 포함합니다.
인증서는 공개 키/비공개 키에서 주체의 공개 키 부분도 포함합니다. 주체와 상호작용하는 개체는 주체의 공개 키와 추가 인증서 확인 규칙을 사용하여 서명을 검증합니다. 서명이 문제의 데이터에 상응하지 않거나 인증서에 규정된 확인 규칙을 위반하는 경우에는 서명이 유효하지 않은 것으로 판명됩니다.
디지털 서명 워크플로
다음은 서명을 만들고 검증하기 위한 흐름을 설명합니다. 이 워크플로는 데이터 서명자와 데이터 수신자의 두 참가자로 구성되어 있습니다.
서명자가 디지털 서명을 지원하는 비대칭 키를 만듭니다.
서명자는 이 키를 사용하여 여러 서명을 만들 수 있습니다.
서명자가 데이터에서 비공개 키 작업을 수행하여 디지털 서명을 만듭니다.
서명자가 데이터 및 디지털 서명을 데이터 수신자에게 제공합니다.
수신자가 서명자의 공개 키/비공개 키 쌍에서 공개 키 부분을 사용하여 디지털 서명을 확인합니다. 확인에 실패하면 데이터가 변경됩니다.
서명 알고리즘
Cloud Key Management Service는 디지털 서명을 위한 타원 곡선(EC) 및 RSA 알고리즘을 지원합니다. 이 두 업계 표준 알고리즘 모두 다양한 키 크기와 다이제스트 알고리즘을 제공합니다.
타원 곡선 암호법은 단방향 해시 함수 및 점 곱셈을 사용하여 타원 곡선에서 점을 계산하기 때문에 점의 곱함수를 파악하기가 어렵습니다.
곱함수를 파악하기 어려운 것이 EC 암호범의 암호화 이점입니다. 곡선의 크기가 클수록 곱함수를 계산하기가 더 어렵습니다. EC 암호법의 이점은 동일한 암호화 수준을 제공하는 RSA 키에 비해 EC 키의 크기가 작다는 것입니다.
RSA 암호법은 큰 정수를 두 개 이상의 요소로 나누기가 어렵다는 점을 이용합니다. 키 크기가 클수록 정수를 계산하기 어렵습니다.
Cloud KMS 디지털 서명 기능
Cloud KMS는 디지털 서명을 만들고 검증하는 것과 관련하여 다음과 같은 기능을 제공합니다.
Cloud KMS는 디지털 서명을 직접 검증할 수 없습니다. 대신 OpenSSL과 같은 공개적으로 사용 가능한 SDK 및 도구를 사용하여 디지털 서명을 검증합니다. 이러한 SDK 및 도구에는 Cloud KMS에서 검색되는 공개 키가 필요합니다. 오픈 SDK 및 도구를 사용하는 방법은 타원 곡선 서명 검증 및 RSA 서명 검증을 참조하세요.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-01-30(UTC)"],[],[],null,["# Digital signatures\n\nA *digital signature* is a cryptographic output used to verify the authenticity\nof data. A digital signature algorithm allows for two distinct operations:\n\n- a signing operation, which uses a signing key to produce a signature over raw\n data\n\n- a verification operation, where the signature can be validated by a party\n who has no knowledge of the signing key\n\nThe main purposes of a digital signature are:\n\n- verification of the integrity of the signed data\n- non-repudiation if the signer claims the signature is not authentic\n\nDigital signatures rely on asymmetric cryptography, also known as public key\ncryptography. An asymmetric key consists of a public/private key pair. The\nprivate key is used to create a signature, and the corresponding public key is\nused to verify the signature.\n\nPost-quantum cryptography (PQC) digital signature\n-------------------------------------------------\n\n|\n| **Preview**\n|\n|\n| This feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| Pre-GA features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\nQuantum computers have the potential to decrypt material encrypted by classical\nencryption algorithms such as the widely used RSA and ECDSA,\nwhich could make such encrypted material vulnerable.\nPost-quantum cryptographic algorithms are designed to use classical hardware\nand software to resist quantum attacks, helping to ensure the continued validity\nof digital signatures. PQC signatures are based on different mathematical\nproblems that are difficult for both classical and quantum computers to solve.\n\nNIST has published two PQC signature standards: ML-DSA ([FIPS-204](https://csrc.nist.gov/pubs/fips/204/final))\nand SLH-DSA ([FIPS-205](https://csrc.nist.gov/pubs/fips/205/final)). You can use the pure randomized variants with\nCloud KMS: `ML-DSA-65` and `SLH-DSA-SHA2-128s`, or the pre-hash\nrandomized variant `HASH-SLH-DSA-SHA2-128s-SHA256`.\nThe NIST standards define the following size values for keys and signatures\n(in bytes):\n\n| **Note:** Due to the lack of a standard for hybridization of post-quantum and classical digital signatures, only the standalone implementations are supported.\n\nExample use cases for a digital signature\n-----------------------------------------\n\nYou can validate builds using digital signatures. For example, given a binary\nthat is digitally signed by a private key, you can check its validity by using\nthe public key corresponding to the private key. If the binary's signature is\nnot valid, the binary has been tampered with and/or corrupted.\n\nAnother example is validating the subject of a certificate issued by a\nCertificate Authority (CA). A CA issues a certificate to a subject based on the\nsubject's ownership of the private key portion of a public/private key. The\ncertificate contains a digital signature created with the subject's private key.\nThe certificate also contains the subject's public key portion of the\npublic/private key. An entity that is interacting with the subject uses the\nsubject's public key, and additional certificate verification rules, to validate\nthe signature. If the signature does not correspond to the data in question, or\nif the verification rules prescribed by the certificate are violated, the\nsignature will be found invalid.\n\nDigital signing workflow\n------------------------\n\nThe following describes the flow for creating and validating a signature. The\ntwo participants in this workflow consist of the signer of data, and the data\nrecipient.\n\n1. The signer creates an asymmetric key that supports digital signing.\n\n The signer can use this key to create multiple signatures.\n2. The signer performs a private key operation over the data to create a\n digital signature.\n\n3. The signer provides the data and the digital signature to the data recipient.\n\n4. The recipient uses the public key portion of the signer's public/private key\n pair to verify the digital signature. If verification is unsuccessful, then the\n data has been altered.\n\nSigning algorithms\n------------------\n\nCloud Key Management Service supports elliptic curve (EC) and RSA algorithms for\ndigital signing. Both of these industry standard algorithms offer choices of key\nsize and digest algorithm.\n\nElliptic curve cryptography relies on one-way hash functions and point\nmultiplication to compute points on an elliptic curve, combined with the\nintractability of determining the multiplicand for a point given its origin.\nThis difficulty in determining the multiplicand is the cryptographic benefit of\nEC cryptography. The larger the size of the curve, the more difficult it is to\ncompute the multiplicand. A benefit of EC cryptography is an EC key has a\nsmaller key size compared to an RSA key that offers the same cryptographic\nstrength.\n\nRSA cryptography relies on the difficulty in factoring a large integer into two\nor more factors. The larger the key size, the more difficult it is to factor the\nintegers.\n\nCloud KMS digital signature functionality\n-----------------------------------------\n\nCloud KMS provides the following functionality related to creating\nand validating digital signatures.\n\n- Ability to [create an asymmetric key](/kms/docs/creating-asymmetric-keys) with [key purpose](/kms/docs/algorithms#key_purposes) of\n `ASYMMETRIC_SIGN`. Cloud KMS keys for asymmetric signing support\n both [elliptic curve signing algorithms](/kms/docs/algorithms#elliptic_curve_signing_algorithms) and [RSA signing algorithms](/kms/docs/algorithms#rsa_signing_algorithms).\n\n- Ability to [create a digital signature](/kms/docs/create-validate-signatures#create_signature).\n\n- Ability to [retrieve the public key](/kms/docs/retrieve-public-key) for an asymmetric key.\n\nCloud KMS does not directly provide the ability to validate a\ndigital signature. Instead, you validate a digital signature using openly\navailable SDKs and tools, such as [OpenSSL](https://www.openssl.org/). These SDKs and tools require the\npublic key that you retrieve from Cloud KMS. For information on how\nto use open SDKs and tools, see [validating an elliptic curve signature](/kms/docs/create-validate-signatures#validate_ec_signature) and\n[validating an RSA signature](/kms/docs/create-validate-signatures#validate_rsa_signature)."]]