디지털 서명
- 메시지나 디지털 문서의 진위성과 무결성을 검증하는 데 사용하는 수학적 메커니즘. 손으로 쓴 서명이나 도장의 디지털 버전이지만, 보안이 우수함.
- 디지털 통신에서 변조 및 사칭 문제를 해결하기 위한 것으로, 전자 문서, 거래, 메시지의 출처, 신원 및 상태에 대한 보증에 사용.
- 디지털 서명은 메시지나 문서에 첨부된 코드로, 이 코드는 생성된 이후부터 수신자에게 전송되기까지의 과정에서 메시지의 내용이 변조되었는지 확인할 수 있도록 해줌.
- 1970년대부터 공개 키 암호화 방식의 발달로 디지털 서명 구현이 가능해짐.
Public Key Cryptography, PKC, 공개 키와 비밀 키로 구성된 한 쌍의 키를 사용한 암호화 방식. 두 키는 타원곡선 알고리즘(ECDSA)를 사용하여 생성됨.
- 새로운 암호 화폐 지갑이 설정될 때, 비밀 키가 먼저 생성
- 비밀 키를 기반으로 공개 키가 생성
- 사용자의 지갑은 이 공개 키를 해싱한 값으로 생성
중요한 데이터를 암호화 할 때: 공개 키로 암호화된 데이터는 개인 키로 복호화 할 수 있음. 따라서 공개 키는 외부에 공개하고, 비밀 키는 기밀로 유지해야 함.
데이터의 무결성과 진위성을 검증해야 할 때: 반대로 비밀 키로 암호화된 데이터를 공개 키로 해독함.
✔️ 장점
✔️ 단점
하나의 키로 원본 데이터를 암호화하며 동일한 키를 사용해 복호화하는 방식
XOR 연산
두 임의의 값 A, B가 모두 참이거나 거짓일때는 거짓, 둘 중 하나만 참일 경우에는 참을 출력하는 연산
✔️ 장점
✔️ 단점
1. 키의 길이
대칭 키 암호화 알고리즘
키의 길이가 임의로 지정, 128 비트나 256 비트로 설정 (보안 수준에 따라 설정)
공개 키 암호화 알고리즘
공개 키와 비밀 키가 수학적으로 한 쌍을 이루어야 하기 때문에 수학적 패턴을 가짐. ‘패턴을 가졌다는 것 = 공격자에 의해 패턴이 간파될 수 있다는 것’. 따라서 대칭 키 방식과 동등한 수준의 보안을 제공하기 위해 훨씬 더 긴 키를 사용. 일반적으로 128비트의 대칭 키와 2,048 비트의 공개 키가 비슷한 수준의 보안을 제공합니다.
2. 연산 속도
대칭 키 암호 방식
블록 암호화나 스트림 암호화 모두 연산이 단순 → 연산 속도가 빠름. 대용량 데이터를 전송해야 할 때 많이 사용.
공개 키 암호 방식
복잡한 수학적 연산을 수행해야 하기 때문에 비교적 속도가 느림. 키 길이가 길기 때문에 훨씬 더 많은 연산 능력을 필요로 합니다. 주로 데이터 전송에 앞서 안전한 통신 채널을 인증하고 구축하기 위한 소규모 트랜잭션(ex. TLS)에 많이 사용됩니다.
3. 보안
4. 알고리즘
1. 해싱
원본 데이터를 해싱함.
2. 서명
공개 키 암호화 방식(=송신자의 비밀 키)으로 해싱된 데이터에 서명을 함. ⇒ 암호화된 결과값 = 디지털 서명
서명이 완료되면 송신자는 1)원본 데이터, 2)디지털 서명, 3)송신자의 공개 키를 함께 전송
3. 검증
수신자: 디지털 서명 복호화 (송신자의 공개키로) → 원본 데이터(A)의 해시값이 나옴 → 원본 데이터(B)를 해싱하여 데이터의 해시값을 구함. → A의 해시값과 B의 해시값을 비교해 동일하다면, 데이터가 정상적으로 송신자에 의해 서명된 것임을 확인.
데이터 무결성
수신자는 메시지가 전송되는 동안 위변조가 일어나지 않았음을 검증할 수 있음.
만약 공개 키로 디지털 서명을 복호화 한 값 ≠ 원본 데이터를 해싱한 값 이라면, 원본 데이터가 훼손되었음을 알 수 있음.
진위성
(송신자의 개인 키가 안전하게 보관되었다는 전제 하에) 수신자는 디지털 서명이 송신자에 의해 생성되었음을 확인할 수 있습니다.
부인 방지
(송신자의 개인 키가 안전하게 보관되었다는 전제 하에) 서명이 생성되고 나면 이 서명이 송신자에 의해 서명되었다는 사실을 부정할 수 없습니다.
알고리즘
알고리즘 수준이 중요함. 신뢰할 수 있고, 널리 사용되어 그 안전성이 입증된 해시 함수와 암호화 알고리즘을 사용해야 함.
구현
디지털 서명 방식은 데이터의 무결성 및 진위성과 직결되기 때문에 결점 없는 시스템을 구현이 중요.
개인 키
개인 키가 유출되거나 손상될 경우, 진위성과 부인 방지 속성이 무효화됩니다. 특히 암호화폐에서 개인 키를 잃어버릴 경우 재정적 손실로 이어짐.