본문 바로가기
프로그래밍 놀이터/보안

[도서 정리] 20. 전자서명과 그 응용 예 - 보안의 기본

by 돼지왕 왕돼지 2019. 10. 20.
반응형

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 를 보고 요구사항에 알맞은 알고리즘을 선택하면 되겠다.





반응형

댓글