디지털 서명과 암호화 방식

adc0612·2022년 10월 12일
0

블록체인

목록 보기
10/11

디지털 서명(Digital Signature)

  • 디지털 서명은 메시지나 디지털 문서의 진위성과 무결성을 검증하는 데 사용하는 수학적 메커니즘이다.
  • 디지털 서명은 디지털 통신에서 변조 및 사칭 문제를 해결하기 위한 것으로, 전자 문서, 거래, 메시지의 출처, 신원 및 상태에 대한 보증을 제공할 수도 있다.
  • 디지털 서명은 메시지나 문서에 첨부된 코드다. 이 코드는 생성된 이후부터 수신자에게 전송되기까지의 과정에서 메시지의 내용이 변조되었는지 확인할 수 있도록 해준다.

공개키 암호화 방식(Public Key Cryptography)

비대칭키 암호화의 종류로,타원곡선 알고리즘(Elliptic Curve Algorithm, ECDSA)를 사용하여 생성된 공개키개인키(비밀키)로 구성된 한 쌍의 키를 사용한 암호화 방식이다.

공개키로 암호화된 데이터는 개인키 소유자(암호화를 한 사용자)만이 복호화 할 수 있다.
암호화된 데이터를 다른사람에게 보내는 경우, 수신자는 송진자의 개인키로 복호화 해야한다.
공개키 암호화 방식은 중요한 데이터를 암호화하여 승인된 사용자에게만 전달할 수 있습니다.

개인키 암호화 방식(Private Key Cryptography)

개인키(비밀키)로 암호화한 데이터를 공개키로 해동하는 방식이다.
공개키는 공개되어 있으므로 누구나 쉽게 복호화 할 수 있기 때문에 중요한 데이터를 암호화하는 데에는 쓰이지 않는다.

데이터의 내용을 숨기는 것에 쓰이지 않는다.
디지털 서명을 하여 데이터의 무결성과 진위성을 검증할 때는 쓰인다.

디지털 서명 동작 방식

  1. 해싱
    원본 데이터를 해싱한다. 다른 크기의 원본데이터들은 해싱이 되었을 때는 동일한 길이의 해시값을 가지게 된다.

    원본 데이터를 해싱은 필수가 아니다. 해싱하지 않은 원본 데이터에 개인키로 서명을 할 수 있다.
    하지만 해싱으로 고정된 길이의 값을 비교하는것이 무결성 검증에 간편하기 때문에 일반적으로 데이터를 해싱한다.

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

  3. 검증
    수신자는 송신자의 공개키를 가지고 디지털 서명을 복호화 하면 원본데이터의 해시값이 나온다. 수신자는 원본 데이터를 해싱하여 데이터의 해시값을 구해서 비교한다. 해시값이 맞으면 데이터가 정상적으로 송신자에 의해 서명된 것을 확인할 수 있다.

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

블록체인에서 디지털 서명은 송금을 위해 트랜잭션을 생성하여 서명하고 승인하는 데 사용된다.
디지털 서명 시스템은 아래와 같은 조건을 갖추어야한다.

  • 알고리즘
    많이 사용되어 그 안전성이 입증된 해시 함수와 암호화 알고리즘을 사용해야한다.
  • 구현
    데이터의 무결성 및 진위성과 직결되기 때문에 결점 없는 시스템을 구현하는 것도 중요하다.
  • 개인키
    개인키가 유출되거나 손상될 경우, 진위성과 부인 방지 속성이 무효화된다. 특히 암호화폐에서 개인키를 잃어버릴 경우 재정적 손실로 이어지므로 조심해야한다.

0개의 댓글