전자서명과 응용
전자서명의 보호 범위와 부가형·복원형·은닉서명·이중서명의 목적을 구분합니다.
1. 전자서명의 생성과 검증
대표적인 부가형 전자서명은 다음 흐름으로 이해할 수 있다.
- 서명자는 메시지
M의 해시값h = H(M)을 계산한다. - 서명 알고리즘과 개인키
SK로 서명값S를 만든다. - 메시지
M과 서명S를 검증자에게 전달한다. - 검증자는 같은 메시지의 해시를 계산하고 공개키
PK로 서명을 검증한다. - 검증 결과가 유효하면 메시지·서명·공개키 조합이 정상이라는 암호학적 근거를 얻는다.
검증 성공만으로 다음이 모두 확정되는 것은 아니다.
- 공개키가 실제 주장된 사람의 것인지
- 개인키를 그 사람만 통제했는지
- 서명 당시 인증서가 유효했는지
- 메시지가 과거 정상 메시지의 재전송인지
- 전자서명에 어떤 법적·업무적 효력을 부여할지
이 조건은 인증서·PKI·키 관리·업무 절차에서 추가로 확인한다.
2. 전자서명의 보호 범위
| 항목 | 전자서명만으로 제공되는가? | 설명 |
|---|---|---|
| 무결성 | 예 | 메시지가 바뀌면 검증이 실패한다. |
| 서명자 인증 | 조건부 | 공개키와 서명자 신원의 신뢰 가능한 연결이 필요하다. |
| 부인방지 | 조건부 | 개인키 단독 통제, 시점·정책·감사 증거가 필요하다. |
| 기밀성 | 아니오 | 메시지를 숨기려면 별도 암호화가 필요하다. |
| 재전송 방지 | 아니오 | 거래번호·nonce·timestamp 등을 서명 대상에 포함하고 중복을 검사해야 한다. |
3. 대표 전자서명 알고리즘
| 기반 문제·구조 | 대표 방식 | 시험에서 기억할 점 |
|---|---|---|
| 소인수분해 | RSA 서명, RSA-PSS | RSA 암호화 방식과 서명 방식은 목적과 인코딩이 다르다. |
| 이산대수 | ElGamal 서명, Schnorr 서명 | 이산대수 문제의 어려움을 이용한다. |
| 이산대수 계열 | DSA, KCDSA | 메시지별 난수 또는 결정적 값의 안전한 생성이 중요하다. |
| 타원곡선 | ECDSA | 짧은 키로 높은 보안강도를 얻을 수 있지만 임시값 재사용에 주의한다. |
알고리즘 이름을 외울 때는 RSA = 소인수분해, DSA·KCDSA = 이산대수 계열, ECDSA = 타원곡선 이산대수처럼 기반을 함께 연결한다.
메시지별 비밀값의 재사용 위험
DSA·KCDSA·ECDSA 계열에서는 서명마다 사용하는 비밀값이 반복되거나 예측되면 개인키가 노출될 수 있다. 따라서 같은 메시지에 같은 서명값이 나오는가보다 서명 과정의 임시 비밀값이 안전하게 생성되는가가 중요하다.
4. 부가형과 메시지 복원형
부가형 서명(signature with appendix)
메시지와 서명값을 함께 전달한다. 검증자는 메시지를 별도로 가지고 서명을 검증한다. 현재 대부분의 실용적 전자서명은 이 형태로 이해하면 된다.
전송 데이터 = 메시지 M + 서명 S
메시지 복원형 서명(signature with message recovery)
서명값에서 메시지의 전부 또는 일부를 복원할 수 있도록 설계된 방식이다. 시험에서는 메시지를 별도 전송하는 부가형과 메시지 복원 기능을 가진 방식의 차이를 구분한다.
5. 특수 전자서명
은닉서명(blind signature)
서명자는 원문을 직접 보지 못한 상태에서 변형된 값에 서명하고, 요청자는 나중에 변형을 제거해 정상 서명을 얻는다. 전자화폐·익명 자격증명처럼 서명자의 승인과 사용자의 프라이버시를 함께 요구하는 상황에 활용할 수 있다.
이중서명(dual signature)
SET 이중서명은 주문정보 OI와 지불정보 PI의 연결성을 검증한다. 카드소지자가 두 해시를 정해진 순서로 연결한 값에 서명하며, 두 사람이 각각 서명한다는 뜻이 아니다.
PIMD = H(PI), OIMD = H(OI)
POMD = H(PIMD || OIMD)
DS = Sign(카드소지자 개인키, POMD)
가맹점은 OI와 PIMD, 지급 처리 측은 PI와 OIMD를 이용해 같은 POMD를 재구성하고 카드소지자 공개키로 검증한다. 원문의 기밀성에는 별도 암호화가 필요하다. 참여자별 전달 구조는 3단원 전자상거래·SET 이론에서 확인한다.
다중서명과 위임서명
- 다중서명: 여러 서명자의 동의가 있어야 하나의 유효한 승인 결과가 만들어지는 방식
- 위임서명: 원 서명자가 정해진 범위에서 다른 주체에게 서명 권한을 위임하는 방식
은닉서명과 이중서명은 공식 범위에 명시된 응용이다. 다중·위임서명은 서로 다른 목적을 구분하는 수준으로 정리한다.
6. 전자서명과 암호화의 결합
전자서명과 암호화는 보호 목표가 다르다.
- 전자서명: 무결성·서명자 인증·부인방지 지원
- 암호화: 기밀성
두 기능이 모두 필요하면 업무 목적에 맞게 함께 사용한다. 다만 서명 후 암호화와 암호화 후 서명은 누가 무엇을 검증하고 무엇을 볼 수 있는지가 달라질 수 있으므로 프로토콜 전체로 판단해야 한다.
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
01서명자가 원문을 보지 못한 채 변형된 값에 서명하고 요청자가 변형을 제거하는 방식은?
은닉서명이다. 원문을 숨긴 상태에서 유효한 서명을 얻는 목적을 가진다. 주문정보와 지불정보를 연결하는 이중서명과 구별한다.
02SET 이중서명은 주문정보와 지불정보의 기밀성도 자체적으로 보장하는가?
아니다. 두 정보의 해시를 연결한 값에 서명하여 거래의 연결성을 검증한다. 필요한 상대에게만 원문을 제공하기 위한 기밀성에는 별도 암호화가 필요하다.