프로그래밍/Java

전자서명 / 검증 / 부인방지 개념정리

소행성왕자 2025. 2. 19. 17:17

전자서명과 부인방지 처리는 보안 시스템에서 중요한 개념입니다.

여기서는 비대칭 키(공개키/개인키)를 이용한 전자서명을 생성하고, 검증하는 방법을 Spring Boot 3.1(Java 17)과 Spring Security를 활용하여 구현하는 방법을 단계별로 설명해 드리겠습니다.

. 전자서명 개념 정리

전자서명은 개인키(Private Key)를 사용하여 데이터를 서명하고, 공개키(Public Key)를 이용해 서명을 검증하는 방식입니다.

전자서명은 서명과정과 검증 과정으로 구분되는데 아래와 같습니다.

- 서명할 때 중요한 개념

  1. 키쌍(공개키/개인키) 생성
  2. 원문(Message)을 해시(Hash) 값으로 변환 (SHA-256 등 사용)
  3. 해시 값을 개인키(Private Key)로 암호화 → 전자서명(Signature) 생성
  4. 서명출력

 

- 검증할 때 중요한 개념

서명 검증 과정에서는 서명한 원본 메시지전자서명 값, 그리고 공개키가 필요합니다.
검증 과정은 다음과 같이 동작합니다.

  1. 원문 메시지 → 다시 SHA-256 해시값 생성
  2. 공개키로 전자서명을 복호화하여 SHA-256 해시값을 얻음
  3. 두 개의 SHA-256 해시값을 비교하여 동일하면 검증 성공

즉, 검증 과정에서는 전자서명을 복호화하여 해시값을 얻고, 원문 메시지의 해시값과 비교하는 것입니다.