0Pricing
Cryptology Academy · 강의

RSA 서명: 서명 및 검증

개인 키로 문서 해시를 서명하는 수학 과정을 단계별로 살펴봅니다.

RSA 서명: 서명 및 검증은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

RSA 서명은 키의 역할을 뒤바꿉니다. 개인 키로 서명하고 공개 키로 검증합니다. 따라서 누구나 본인의 공개 키를 사용하여 본인의 신원을 확인할 수 있습니다.

RSA 서명 수학

개인 키 (d, n)으로 메시지 M에 서명하려면 다음과 같이 합니다. 1. H = SHA256(M) 2. sig = H^d mod n 서명은 n과 같은 비트 길이를 갖는 숫자입니다.

RSA 검증 수학

공개 키 (e, n)으로 서명 sig를 검증하려면 다음과 같이 합니다. 1. H' = sig^e mod n 2. H = SHA256(M) 3. H == H'이면 유효합니다. 공개 키를 가진 누구나 검증할 수 있으므로 비밀이 필요하지 않습니다.

PKCS#1 v1.5 서명 패딩

원시 RSA 서명은 변형될 수 있습니다. PKCS#1 v1.5는 서명하기 전에 해시에 패딩을 추가합니다. 0x00 0x01 [0xFF padding] 0x00 [DigestInfo] [Hash] 검증 과정에서는 패딩 구조가 정확히 일치하는지 확인합니다.

RSA-PSS: 더 나은 패딩

RSA-PSS(확률적 서명 방식)는 무작위 솔트를 사용하므로 같은 메시지에 대한 서명도 매번 달라집니다. 무작위 오라클 모델에서 안전성이 증명되었습니다. PKCS#1 v1.5보다 우선적으로 사용해야 합니다.

Python RSA 서명(PSS)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes signature = private_key.sign( message, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() )

Python RSA 검증

try: public_key.verify( signature, message, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() ) print('Valid!') except InvalidSignature: print('Invalid!')

서명 길이

RSA-2048 서명은 256바이트입니다. RSA-4096은 512바이트입니다. ECDSA-256 서명은 약 71바이트입니다(가변 DER 인코딩). 서명에는 전체 모듈러 거듭제곱 결과가 포함됩니다.

블라인드 서명

블라인드 서명을 사용하면 서명자가 내용을 보지 않고 메시지에 서명할 수 있습니다. 전자 투표와 전자 현금에 사용됩니다. 은행이 블라인드 처리된 토큰에 서명하고 사용자가 이를 언블라인드 처리하므로 추적할 수 없는 현금이 됩니다.

인증서 체인의 RSA 서명

Let's Encrypt는 중간 CA의 RSA 개인 키로 서버 인증서에 서명합니다. 서버의 공개 키는 인증서 본문에 들어 있습니다. TLS 클라이언트는 이 체인을 자동으로 검증합니다.

인증서 투명성

인증서 투명성은 발급된 모든 인증서를 암호학적으로 검증 가능한 머클 트리에 기록합니다. 서명된 인증서 타임스탬프(SCT)는 발급 전에 해당 인증서가 기록에 포함되었음을 증명합니다.

빠른 확인

RSA 서명 검증에서는 어떤 키를 사용하여 서명을 검증합니까?

복습

RSA 서명은 적절한 패딩을 사용하면 안전합니다. 다음에는 RSA와 DSA, ECDSA 서명 방식을 비교하겠습니다.

자주 묻는 질문

“RSA 서명: 서명 및 검증” 강의는 무료인가요?

네 — “RSA 서명: 서명 및 검증” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“RSA 서명: 서명 및 검증”에서 뭘 배우나요?

개인 키로 문서 해시를 서명하는 수학 과정을 단계별로 살펴봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“RSA 서명: 서명 및 검증” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 전자 서명이란 무엇인가요?
  2. RSA 서명: 서명 및 검증
  3. DSA 및 ECDSA 서명 방식
  4. 실제 서명: 코드 서명 및 이메일
← Cryptology Academy(으)로 돌아가기