20. 전자서명과 그 응용 예 - 보안의 기본 |
-
전자서명이란 전자 데이터의 작성자를 원래의 데이터에 부여하여 원래의 데이터가 변조되지 않았다는 것을 보증하기 위한 기술이다.
현실 사회에서 서류에 하는 사인이나 날인 등을 전자적으로 구현한 것과 같다.
* 전자서명을 구현하는 세 가지 알고리즘
-
키 생성 알고리즘은 전자서명을 구현하기 위해 필요한 서명하기 위한 키(비밀키)와 서명을 검증하기 위한 키(공개키)를 생성하는 알고리즘이다.
일반적으로 비밀키는 서명자가 엄중히 관리하고 공개키는 다른 사람에게 공개한다.
-
서명 알고리즘은 서명자가 생성한 비밀키를 사용해 전자 데이터에 대응하는 서명된 전자 데이터를 생성하는 알고리즘이다.
-
검증 알고리즘은 전자 데이터와 대응하는 서명 데이터가 주어졌을 때 다른 사람이 서명자의 공개키를 사용하여 대응이 적절한 것인지를 확인하는 알고리즘이다.
* 전자서명을 구현하는 기술
-
RSA, ElGamal, DSA 등이 있다.
PGP, S/MIME 는 주로 전자메일에 대한 전자서명이나 공개키 암호 처리를 하는 장치이다.
PGP 는 소규모 도입에, S/MIME 는 조직적인 도입에 적합하다.
-
RSA는 3명의 개발자(Ronald Rivest, Adi Shamir, Leonard Adelman)의 머리글자를 따서 명명되었다.
1977년 발명된 공개키 암호 방식으로 전자서명을 위해서도 사용한다.
-
ElGamal 은 풀기 힘든 숫자 문제 중 하나를 암호에 응용하고 있다.
-
DSA 는 Digital Signature Algorithm 의 약자로 1993년에 표준화되었다.
ElGamal 을 바탕으로 풀기가 힘든 다른 문제를 조합하여 암호에 응용하고 있다.
-
PGP(Pretty Good Privacy). 상용화는 Symantec, 오픈 소스 구축은 GnuPG 로 알려져 있다. 키의 생성은 이용자가 수행한다. 공개키 서버 인프라는 있지만 사용하지 않아도 된다.
-
S/MIME(Secure/Multipurpose Internet Mail Extensions). 메일에 대한 암호화 전자서명을 위해 사용한다. 주요 메일 소프트웨어는 S/MIME 를 지원한다. 이용을 위해서는 인증국이 발행하는 전자인증서가 필요하다.
-
PDF 서명. PDF 에 대한 전자서명으로 Adobe Acrobat 에 구축되어 있으며, 이용을 위해서는 인증국이 발행하는 전자인증서가 필요하다.
-
검증은 다음과 같이 한다.
1. 전자데이터에 대응하는 전자서명을 공개키로 복호화하고 해시 값을 추출하여 해시값 A로 한다.
2. 전자데이터의 해시 값을 계산한다. 해시값 B로 한다.
3. 해시값 A 와 해시값 B 똑같으면 검증 성공이다.
* 돼왕의 전자서명 알고리즘 추가 정보
-
DSA vs RSA 에 따르면, 둘의 cryptography power 는 거의 같고 여러 가지 factor 에서 성능 차이를 보인다.
따라서 각각의 factor 를 보고, client, server 간의 성능 이슈와 구현 이슈(key 를 자주 gen 하는가 등)을 놓고 선택해서 사용해야 한다.
Key generation : DSA > RSA (큰쪽이 유리한 쪽, 즉 DSA 가 빠름)
Encryption : RSA > DSA
Decryption : DSA > RSA
Digital signature generation : DSA > RSA
Digital signature verification : RSA > DSA
-
RSA, DSA, ElGamal 등 대부분의 전자서명 알고리즘의 경우, 상호 비교 가능한 pros, cons 가 있다.
각각의 factor 를 보고 요구사항에 알맞은 알고리즘을 선택하면 되겠다.
'프로그래밍 놀이터 > 보안' 카테고리의 다른 글
[도서 정리] 22. 암호화 파일 시스템 - 보안의 기본 (0) | 2019.10.22 |
---|---|
[도서 정리] 21. 인증서와 인증국 - 보안의 기본 (0) | 2019.10.21 |
[도서 정리] 19. 싱글 사인온 - 보안의 기본 (0) | 2019.10.19 |
[도서 정리] 18. 이중 인증 - 보안의 기본 (0) | 2019.10.19 |
[도서 정리] 17. 원타임 비밀번호 - 보안의 기본 (0) | 2019.10.18 |
댓글