전자 서명 (Digital Signature)
https://youtu.be/0KPEq2e0aWc?si=JNeYC2mMJrAgVlIa
** 저번 과 같은 MAC 처럼 메세지 무결성과 인증을 하기 위한 다른 방법은 전자 서명이 있다.
공개키의 이용
- 원래 공개키는 암호화를 통해 만들어지므로 당연히 암호화에서 사용된다.
- 수신자의 공개키로 메세지를 암호화 하고
- 수신자의 개인키로 메세지를 복호화한다.
- 전자서명 (에도 사용되는데, 암호화와는 반대로 사용된다)
- 송신자의 개인키로 메세지를 암호화함으로써 서명(Signature) 한다
- 수신자는 송신자의 공개키로 메세지를 복호화하여 서명을 증명한다.
- 대칭키 교환 (Key Exchange)
- 송신자와 수신자는 같은 대칭키를 가지고 있어야 하는데, 이때 사용하는 한 가지 방법.
- 송신자는 수신자의 공개키로 대칭키를 암호화하여 보낸다.
전자 서명
- 송신자는 자신의 유일한 신분 identity 를 증명할 수 있는 서명을 메세지와 함께 보낸다.
- 전자 서명 : 서명을 계산할 때 메세지의 내용을 이용하여 계산한다.
- 이와 같은 전자 서명은
- 메세지가 변조되지 않음 (무결성) 을 증명할 수 있다.
- 메세지를 보낸 송신자(근데 보내는 사람은 수신자 아닌가?) 의 신분을 증명할 수 있다. (인증)
- 나중에 송신자가 이 메세지를 보낸 것을 부인하는 것을 막을 수 있다. (= 부인 봉쇄, Non-Refusiation)
1. 대칭키를 이용한 서명
- 대칭키로 암호화를 할 경우 누가 메세지를 보냈는지 증명할 수 있다. → 왜냐하면 송신자만이 대칭키를 가지므로.
- 대칭키로 송신자의 신원(sender’s identity) 과 메세지 무결성(message integrity)을 증명할 수 있다.
- 하지만 대칭키로 서명할 경우 부인 봉쇄는 할 수 없다. → 수신자도 키를 가지고 있기 때문이다
개인키로 서명
- 개인키는 송신자만 가지고 있기 때문에 송신자의 유일한 신분(unique idnentity) 을 나타낸다.
- 개인키로 서명을 할 경우 송신자의 신원과 메세지 무결성을 증명한다.
- 또한 송신자가 메세지를 송신했음을 증명할 수 있다, 부인 봉쇄
위 그림에서 RSA = 대표적인 공개키 알고리즘
verify = sign 의 역함수 이다.
해시 함수 + 전자서명
실제로 전자서명을 할 때에는 메세지 자체를 사용하지는 않고 해시를 사용한다.
해시함수는 공개키 서명을 할 때 간단하게 서명을 계산할 수 있도록 해준다.
K_A- : 개인키
K_A+: 공개키
전자 서명 알고리즘
- RSA DS (Digital Signature)
- 암호화 알고리즘인 RSA 를 사용(소인수 분해 문제)
- 서명 길이는 RSA 키의 길이(modulus) 와 동일하다. (1024, 2048 bits)
- DSA
- Elgamal 과 Schnorr 알고리즘에 기반한 전자 서명 알고리즘.
- 이산 대수 문제를 사용 (Diffie-Hellman 과 유사)
- KCDSA (우리나라 국가 표준)
- EC-DSA
- 타원 곡선(Elliptic Curve) 암호화 알고리즘에 기반.
- EC-KCDSA (우리나라 국가 표준)
DSA
- 1994 미국 NIST 표준 (DSS) / 1998 한국 KCDSA 표준
- 메세지 암호화(암호화 알고리즘이랑 상관없는)는 하지 않고 오직 전자서명만을 위한 알고리즘.
- 해시 함수로는 SHA 를 사용
- Elgamal 전자서명의 변형 (이산 대수 문제 사용)
- 1024 bits 의 서명으로 스마트 카드와 같은 응용에는 적합하지 않다.
- 전자 서명의 길이는 320-bits signature
EC DSA
- 서명 길이 160-256 bit 는 RSA 1024-3072 bit 와 동일한 수준의 보안을 제공하여 아주 효율적이다.
- 실제 서명 길이는 위의 2배 길이를 사용한다. (320-512 bits)
'암호학' 카테고리의 다른 글
메시지 인증 코드 (MAC); 키 해시 (HMAC) : 정보 보안 - 암호학 (0) | 2024.09.29 |
---|---|
암호 해시 함수 : 정보 보안 - 암호학 (0) | 2024.09.29 |
AES ; 블록 암호 : 정보 보안 - 암호학 (0) | 2024.09.27 |
블록 암호 : 정보 보안 - 암호학 (1) | 2024.09.26 |
암호 기초 : 정보 보안 - 암호학 (0) | 2023.09.11 |