본문 바로가기
블록체인/블록체인이란?

암호화 기술 - 전자서명

by 제이제이_은재 2022. 6. 20.
반응형

 

💡 디지털 서명

 

디지털 서명은 메시지나 디지털 문서의 진위성과 무결성을 검증하는 데 사용하는 수학적 메커니즘이다. 디지털 서명은 일반적인 손으로 쓴 서명이나 도장의 디지털 버전이지만, 보다 복잡하며 보안이 우수하다. 디지털 서명은 디지털 통신에서 변조 및 사칭 문제를 해결하기 위한 것으로 전자 문서, 거래, 메시지의 출처, 신원 및 상태에 대한 보증을 제공할 수도 있다.

 

쉽게 말해, 디지털 서명은 메시지나 문서에 첨부된 코드이다. 이 코드는 생성된 이후부터 수신자에게 전송되기까지의 과정에서 메시지의 내용이 변조되었는지 확인할 수 있도록 해준다. 중요한 계약에 서명할 때 인감도장이나 사인을 하는 것처럼, 디지털 세계에서도 거래 내역에 대한 서명을 할 때 나만 알고 있는 개인 키를 사용하여 '나'라는 것을 인증하고 거래 내역이 맞다는 것을 서명하는 것이다.

 

 

✓ 디지털 서명의 동작 방식

디지털 서명은 크게 해싱, 서명, 검증 세 단계로 나뉜다.

 

 

1. 해싱

원본 데이터를 해싱한다. 원본 데이터의 크기는 제각기 다를 수 있지만, 해싱되었을 때는 동일한 길이의 해시값을 가지게 된다. 원본 데이터를 해싱하는 것은 필수적인 것은 아니다. 해싱하지 않은 원본 데이터에 개인 키로 서명 할 수도 있기 때문이다. 그러나 해싱을 함으로써 고정된 길이의 값을 비교하는 것이 무결성을 검증하는데 훨씬 간편하기 때문에 일반적으로 데이터를 해싱한다.

 

2. 서명

공개 키 암호화 방식을 사용해 해싱된 데이터에 서명을 한다. 서명을 하는 방식은 다양하지만, 일반적으로 송신자의 개인 키로 해시값을 암호화한다. 이 암호화된 결과값이 바로 디지털 서명이다. 디지털 서명은 개인 키로 암호화 되었기 때문에 공개 키로 복호화 할 수 있으며, 정상적으로 복호화 될 경우 원본 데이터의 해시값이 나오게 된다. 서명이 완료되면 송신자는 원본 데이터와 디지털 서명, 송신자의 공개 키를 함께 전송한다.

 

3. 검증

수신자는 송신자의 공개 키를 가지고 디지털 서명을 복호화한다. 디지털 서명이 송신자의 개인키에 의해 암호화 되었다면 원본 데이터의 해시값이 나올 것이다. 또한, 수신자는 원본 데이터를 해싱하여 데이터의 해시값을 구한다. 이 두 해시값을 비교하여 만약 해시값이 맞다면, 데이터가 정상적으로 송신자에 의해 서명된 것임을 확인할 수 있다.

 

 

✓ 디지털 서명의 특징

 

* 데이터 무결성

수신자는 메시지가 전송되는 동안 위변조가 일어나지 않았음을 검증할 수 있다. 만약 송신자의 공개 키로 디지털 서명을 복호화한 값이 원본 데이터를 해싱한 값과 다른 경우, 해당 송신자의 개인키로 암호화된 서명이 아니거나 원본 데이터가 훼손되었을 수도 있다.

 

* 진위성

송신자의 개인 키가 안전하게 보관되었다는 전제하에, 수신자는 디지털 서명이 송신자에 의해 생성되었음을 확인할 수 있다.

 

*부인 방지

송신자의 개인 키가 안전하게 보관되었다는 전제하에, 서명이 생성되고 나면 이 서명이 송신자에 의해 서명되었다는 사실을 부정할 수 없다.

 

 

✓ 디지털 서명 시스템의 필요 조건

 

* 알고리즘

디지털 서명 체계에서 사용되는 알고리즘은 수준이 중요하다. 신뢰할 수 있고, 널리 사용되어 그 안정성이 입증된 해시 함수와 암호화 알고리즘을 사용해야 한다.

 

* 구현

디지털 서명 방식은 데이터의 무결성 및 진위성과 직결되기 때문에 결점 없는 시스템을 구현하는 것 역시 중요하다.

 

* 개인 키

개인 키가 유출되거나 손상될 경우, 진위성과 부인 방지 속성이 무효화 된다. 특히 암호화폐에서 개인 키를 잃어버릴 경우 재정적 손실로 이어지기도 한다.

 

블록체인에서 디지털 서명은 송금을 위해 트랜잭션을 생성하고 승인하는 데 사용된다. 특히 월렛 방식을 사용하는 비트코인에서는 개인 키를 소유한 사람만이 코인을 사용할 수 있기 때문에 개인 키를 안전하게 보호하는 것이 중요하다.

반응형

댓글