디지털서명
디지털서명 (Digital signature) 이란 첨단 기술로 보안이 강화된 전자 서명중 한 종류로, 개인키와 공개키 암호 (비대칭 암호화 라고도 불림.)을 이용한 전자 서명이다. 송신자의 개인키를 사용하여 서명을 보내면 수신측에서는 송신자의 공용키를 이용해 보내온 메시지를 해독한 다음 이를 보관하게 되고, 송신자는 디지털서명을 통해 본인임을 인증, 수신인은 해당 메시지가 위,변조 되지 않았음을 확인한다. 그리고 블록체인에 기록되는 데이터의 보안 및 무결성을 보장하는 주요 측면 중 하나이다.
예를 들어 송신자(A) 수신자(B)라 칭하게 된다면, A는 B에게 데이터를 보낼 때 A의 개인키로 문서를 암호화 하여 B에게 보내고 B는 A의 공개키로 복호환 한 후, 그것이 정말 A가 보낸 것이 맞는지 확인을 하는 방식이 디지털서명이다.
역사
디지털서명은 휘트필드 디피(Whitfield Diffie)와 마틴 헬만(Martin Hellman)이 1976년 처음으로 설명했다. 하지만 그것은 아직 확실하지 않은 추측이었다. 그 이후 Ron Rivest와 Adi Shamir, Leonard Adleman이 디지털서명에 사용 될 수있는 RSA알고리즘을 발명하였다. 하지만 아직까지도 개념만 증명하는 단계였다. 디지털서명을 제공하기 위하여 처음으로 판매 된 소프트웨어는 Lotus Notes 1.0 이었고 RSA알고리즘을 사용하여 제작되었고 1989년에 출시 되었다. 그 이후로 계속해서 디지털서명 기법이 개발되었는데, Lamport서명 부터 Merkle서명, Rabin서명 등이 개발 되었다.
정의
디지털서명은 일반적으로 3개의 알고리즘으로 구성이 된다.
- 키 생성 알고리즘 : 개인키를 임의로 가능한 개인키들의 세트로부터 알고리즘은 개인키와 해당 공개키를 출력
- 서명 생성 알고리즘 : 서명을 만들기 위해 데이터와 개인키를 결합
- 서명 검증 알고리즘 : 서명을 확인하고 메시지, 공개키 및 서명을 기반으로 메시지가 인증되었는지 여부를 확인
알고리즘의 핵심 기능
- 공개키 또는 암호화 된 데이터를 기반으로 개인키를 만드는 것은 절대로 불가능하다.
- 공개키를 통해 확인 된 메시지 및 개인키를 기반으로 서명의 신뢰성을 보장한다.
전자서명과의 차이점
- 전자서명 : 전자서명은 계약 또는 기타 기록에 첨부되거나 관련이있는 문서의 내용이나 조건을 확인하는데 주로 사용된다.
- 디지털서명 : 디지털서명은 서명을 한 사람이 본인이 맞는지, 문서의 내용이 위조 혹은 변조가 된것은 아닌지 확인하는데 주로 사용된다.
디지털서명의 이점
디지털서명은 3가지의 주요 이점이 있다.
- 무결성 보장 : 이론적으로 보았을때, 전송되는 데이터를 해커가 보지 않아도 변경을 할 수있지만 디지털서명이 있는 데이터의 경우 이러한 상황이 발생이 된다면 서명이 무효화가 되어 암호화가 된 디지털 서명 데이터는 위,변조가 되었는지 확인을 할 수 있어 안전하다.
- 개인의 신원 보호 : 디지털서명의 소유권은 특정 사용자에게 구속력을 가지고 있어 원하는 사람과 의사 소통을 하고있는지 확인이 가능하다.
- 개인키가 개별 사용자와 연결 : 디지털서명에 부인 방지의 품질을 부여한다. 이것은 데이터에 서명 한 개인키가 그 소유자가 아닌 다른 사람에 의해 손상되거나, 사용될 일이 없다는 것이다.
주의할 점
블록 체인 기술을 사용할 때 사용자는 공개키와 개인키를 가지며 둘 다 임의의 숫자와 문자열로 나타내는데 공개키는 전자 메일 주소 및 비공개 키와 비교할 수도 있기에 누구와도 개인키를 공유하지 않는것이 가장 중요하고, 개인키를 적어서 안전한 곳에 보관하는 것도 중요하다.
같이보기
참고자료
- 유서트, 〈전자 서명(Electronic Signatures)과 디지털 서명(Digital Signatures)〉, 《네이버 블로그》, 2018-01-25
- 〈전자 서명과 디지털 서명의 차이〉, 《개인 블로그