디지털 서명

xlwdn·2023년 4월 19일
0

블록체인에서 발신자가 트랜잭션을 네트워크에 브로드캐스팅하기 전에 트랜잭션을 개인 키로 디지털 서명하는 데, 이를 통해 데이터 출처 인증과 부인 방지를 제공하며 이를 통해 발신자가 비트코인 같은 자산의 정당한 소유자임을 증명한다.

디지털 서명에는 몇 가지 중요한 속성이 있는데, 진본성, 위조 불가능성, 재사용 불가능성 등이다.

  • 진본성
    • 수신자가 디지털 서명을 검증할 수 있다.
  • 위조 불가능성
    • 메시지를 보낸 사람만 개인 키를 사용해 서명 기능을 사용할 수 있게 한다.
  • 재사용 불가능성
    • 디지털 서명을 메시지에서 분리해 다른 메시지에 다시 사용하지 못한다.

RSA 디지털 서명 알고리즘


RSA 암호화를 활용한 디지털 서명은 다음과 같은 단계를 거친다.

  1. 데이터 패킷의 해시 값 계산

    1. 해시를 수신자가 다시 계산한 다음 원본과 비교하여 전송 중에 변조됐는지 확인하여 데이터 무결성을 보장한다. 기술적으로는 데이터를 먼저 해싱하지 않고도 메시지 서명을 할 수 있으나, 안전하다고 간주하지는 않는다.
  2. 서명자의 개인 키로 해시 값 서명

    1. 서명자만 개인 키를 갖고 있으므로, 서명과 서명된 데이터의 진본성이 보장된다.

    일반적인 디지털 서명 함수의 연산은 다음 그림과 같다.

발신자가 메시지를 수신자에게 전달하는 방법에는 서명 후 암호화 방식과 암호화 후 서명 방식이 존재한다.

서명 후 암호화


발신자가 데이터를 자신의 개인 키로 디지털 서명한 후, 데이터에 추가한 뒤 데이터와 디지털 서명을 수신자의 공개키로 암호화 한다.

암호화 후 서명


발신자가 데이터를 수신자의 공개키로 암호화한 뒤, 암호화된 데이터에 디지털 서명을 수행한다.

서명에는 RSA, DSA(디지털 서명 알고리즘), ECDSA 기반 디지털 서명 기법 등 다양한 기법이 사용된다. RSA가 가장 흔히 사용되지만 비슷한 수준의 보안을 유지하면서 공간을 덜 차지하기에 블록체인에 유용하여 ECC 사용도 늘어나고 있다.

0개의 댓글