블록체인에서 발신자가 트랜잭션을 네트워크에 브로드캐스팅하기 전에 트랜잭션을 개인 키로 디지털 서명하는 데, 이를 통해 데이터 출처 인증과 부인 방지를 제공하며 이를 통해 발신자가 비트코인 같은 자산의 정당한 소유자임을 증명한다.
디지털 서명에는 몇 가지 중요한 속성이 있는데, 진본성, 위조 불가능성, 재사용 불가능성 등이다.
RSA 암호화를 활용한 디지털 서명은 다음과 같은 단계를 거친다.
데이터 패킷의 해시 값 계산
서명자의 개인 키로 해시 값 서명
일반적인 디지털 서명 함수의 연산은 다음 그림과 같다.
발신자가 메시지를 수신자에게 전달하는 방법에는 서명 후 암호화 방식과 암호화 후 서명 방식이 존재한다.
발신자가 데이터를 자신의 개인 키로 디지털 서명한 후, 데이터에 추가한 뒤 데이터와 디지털 서명을 수신자의 공개키로 암호화 한다.
발신자가 데이터를 수신자의 공개키로 암호화한 뒤, 암호화된 데이터에 디지털 서명을 수행한다.
서명에는 RSA, DSA(디지털 서명 알고리즘), ECDSA 기반 디지털 서명 기법 등 다양한 기법이 사용된다. RSA가 가장 흔히 사용되지만 비슷한 수준의 보안을 유지하면서 공간을 덜 차지하기에 블록체인에 유용하여 ECC 사용도 늘어나고 있다.