"전자서명"의 두 판 사이의 차이
2번째 줄: | 2번째 줄: | ||
예를 들어 A(자신) B(믿을 수 있는 기관) | 예를 들어 A(자신) B(믿을 수 있는 기관) | ||
− | A가 자신의 비밀키를 사용하여 | + | A가 자신의 비밀키를 사용하여 원본 데이터의 해시값을 암호화 한다. 그 후에 믿을 수 있는 기관 B에 A의 공개키를 배포한다. 그러면 B는 자신의 비밀키로 A의 공개키를 서명하고, A의 주체 정보와 B의 공개키 등을 담아 인증서를 만들어 배포한다. 그리고 A는 이 인증서와 함께 원본 데이터와 원본 데이터의 해시값을 서명한 데이터를 합쳐 배포한다. |
기관 B를 믿을 수 있는 사용자 C는 코드사인된 데이터를 받아 인증서 안에 들어있는 B의 공개키를 이용하여 A의 공개키를 얻어내고, 이 A의 공개키로 서명된 데이터를 복호화하여 얻은 해시값과 원본 데이터를 해싱하여 얻은 해시값을 비교하여 일치한다면 원본 데이터가 손상되지 않았다는 것을 알 수 있는 방식을 의미하는 것이다. | 기관 B를 믿을 수 있는 사용자 C는 코드사인된 데이터를 받아 인증서 안에 들어있는 B의 공개키를 이용하여 A의 공개키를 얻어내고, 이 A의 공개키로 서명된 데이터를 복호화하여 얻은 해시값과 원본 데이터를 해싱하여 얻은 해시값을 비교하여 일치한다면 원본 데이터가 손상되지 않았다는 것을 알 수 있는 방식을 의미하는 것이다. |
2019년 7월 9일 (화) 14:13 판
전자서명 이란 전자서명법에 나와 있는 정의로는 서명자를 확인하고 서명자가 당해 전자문서에 서명하였음을 나타내는데 이용하기 위하여 당해 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보를 말한다. 전자서명은 대부분 공개키 암호 알고리즘을 이용하여 구현하며, 무결성을 확인하고 인증과 부인 방지 기능을 제공하는 암호 기술이다ㅓ. 전자서명에 필요한 기술로는 서명 알고리즘 (Signing Algorithm) 과 검증 알고리즘 (Verifying Algorithm) 이 사용 된다.
예를 들어 A(자신) B(믿을 수 있는 기관) A가 자신의 비밀키를 사용하여 원본 데이터의 해시값을 암호화 한다. 그 후에 믿을 수 있는 기관 B에 A의 공개키를 배포한다. 그러면 B는 자신의 비밀키로 A의 공개키를 서명하고, A의 주체 정보와 B의 공개키 등을 담아 인증서를 만들어 배포한다. 그리고 A는 이 인증서와 함께 원본 데이터와 원본 데이터의 해시값을 서명한 데이터를 합쳐 배포한다.
기관 B를 믿을 수 있는 사용자 C는 코드사인된 데이터를 받아 인증서 안에 들어있는 B의 공개키를 이용하여 A의 공개키를 얻어내고, 이 A의 공개키로 서명된 데이터를 복호화하여 얻은 해시값과 원본 데이터를 해싱하여 얻은 해시값을 비교하여 일치한다면 원본 데이터가 손상되지 않았다는 것을 알 수 있는 방식을 의미하는 것이다.
개요
기존의 암호화 방법은 메시지를 주고 받는 사람들이 서로에게만 메시지를 알 수 있게 하고, 다른 외부 사람들에게는 메시지를 못 알게 하는 방법이었다. 하지만 이러한 방법은 누군가가 메시지를 조작할 수 있어 이러한 상황을 막기 위하여 전자 서명이란 것이 나오게 된 것이다.
사용되는 기술
- 비대칭 키 암호 시스템은 개인키와 공개키로 구성된다.
- 개인키는 자신만이 소유하고, 공개키는 타인에게 공개된다.
- 개인키 (공개키)로 암호화된 문서는 공개키 (개인키)만을 이용해서 복호화가 가능하다.
조건
- 위조 불가 (Unforgeable) : 합법적인 서명자만이 전자 문서에 대한 전자 서명을 생성할 수 있어야 한다.
- 서명자 인증 (User Authentication) : 전자 서명의 서명자를 누구든지 검증할 수 있어야 한다.
- 부인 불가 (Nonrepudiation) : 서명자는 서명 후에 자신의 서명 사실을 부인할 수 없어야 한다.
- 변경 불가 (Unalteable) : 서명한 문서의 내용은 변경될 수 없어야 한다.
- 재사용 불가 (Not Reusable) : 전자문서의 서명은 다른 전자문서의 서명으로 사용될 수 없어야 한다.
특징
- 전자 서명은 서명을 한 사람과 날짜 등을 증명할 수 있어야 한다.
- 전자 서명을 할 당시에 메시지의 내용을 증명할 수 있어야 한다.
- 전자 서명은 외부 기관에 의해 검사받을 수 있어야 한다.
접근 방법
- 접근 방법 : 직접적인 방법에서는 보내고, 받는 사람 둘 간에 전자 서명이 필요하다. RSA알고리즘 에서는 만약 받는 사람이 보내는 사람의 공개 키를 알고 있다면, 보내는 사람의 전자서명은 보낼 메시지를 보내는 사람의 비밀 키로 암호화 된 것이 된다.
- 문제점 : 이 방법의 문제점은 보내는 사람 비밀키의 안전성에 있다. 예를 들어 A가 B에게 어떠한 시간 T 에 메시지를 보내는데, 몇일 후에 해커가 A의 비밀키를 알아내고, 해커가 A의 비밀키를 이용하여 시간을 T로 하는 메시지를 만들 수 있다. 그렇게 된다면 B는 A가 T시간에 메시지를 보낸 것으로 착각을 하게 될 것이다.
- 해결책 : 이러한 부분의 해결책으로는 A와 B 사이에 신뢰할 수 있는 C라는 중재자를 두는 방법으로 해결 할 수 있다. 그 방법은 A가 B에게 바로 메시지를 보내는 것 이 아니라, A가 먼저 C에게 메시지를 보내고 C가 B에게 메시지를 보내는 방법이다. 이렇게 C라는 중재자를 거친다면 해커가 A의 비밀키를 알아도 시간을 조작할 수 없게 되는 것이다. 왜냐하면 시간은 C라는 중재자가 관리하기 때문이다.
전자서명 알고리즘의 종류
- RSA 전자서명 : Rivest, Shamir, Adleman에 의해서 1978년 제안된 공개 키 암호 방식을 응용한 전자서명의 방식
- ElGamal 전자서명 : 이산대수 문제를 기반으로 전자서명만을 위해 고안된 방식
- Schorr 전자서명 : ElGamal 전자서명의 변형으로 이산대수 문제에 안정성을 두고있는 방식
- DSS (DSA) 전자서명 : 1991년 미국의 NIST (National Institute of Standards and Technology) 에서 발표한 전자서명 방식으로 ElGamal 전자서명을 개량한 방식
- KCDSA 전자서명 : 국내 표준 전자서명 방식으로 이산대수 문제를 기반
- ECDSA (Elliptic Curve DSA) 전자서명 : 타원곡선 (Elliptic curve)상에서 군을 정의하고 이에 대한 이산대수 계산의 어려움에 근거 두고 있음
참고자료
- 〈암호학 6주 - 전자 서명 〉, 《가디언》
- 〈전자 서명이란? 〉, 《개인블로그》, 2018-02-23
- 〈전자 서명과 디지털 서명 〉, 《개인블로그》, 2018-01-25
- 〈전자서명(Digital Signature) 〉, 《개인블로그》, 2015-09-09
같이 보기
- 서명 알고리즘 (Signing Algorithm)
- 검증 알고리즘 (Verifying Algorithm)
- RSA
- 비대칭 키 암호 시스템
- ElGamal
- Schorr
- DSS
- KCDSA
- ECDSA