Digital Signature
네트워크에서 송신자의 신원을 증명하는 방법이며, 공개 키 기반의 암호화 방식을 이용하였다.
디지털 서명에 활용하는 기본 알고리즘은 다음과 같다.
- RSA 기반
- DSA 기반
- ECC 기반
단계
- Alice가 Content를 Alice’s private key로 암호화한 Crypto를 Alice’s public key와 함께 업로드한다.
- Bob이 Crypto를 Alice가 올린 Alice’s public key와 함께 다운로드한다.
- Bob이 Crypto를 Alice’s public key로 Decrypt 한다.
- 만약 Alice가 올린 Content가 훼손되거나, 공격자에 의해 바뀐 경우, Decrypt 되지 않는다.
- 만약 Decrypt가 성공한다면 해당 내용은 Alice’s private key로 encrypt한 것이므로 Alice가 작성한 문서임을 확인할 수 있다.
기본적인 틀은 위 단계를 따른다.
비대칭 암호화와 다른 점은 비대칭에서는 public key로 encrypt하고 private key로 decrypt하여 통신을 보호했지만 디지털 암호화에서는 private key로 encrypt하고 public key로 decrypt한다.
Based RSA
합성수 소인수분해의 어려움을 이용한 RSA Algorithm을 Digital Signature에 사용했다.
서명 길이는 RSA 키의 길이(1024bits/2048btis)와 동일하다.
동작 과정은 송신자가 내용을 SHA-1 등으로 해싱한 결과 값에 대해 private key로 암호화한 후 수신자가 암호화된 내용을 public key로 decrypt하고 내용을 동일한 내용으로 해싱하여 비교한다.
해시 함수를 사용하는 이유?
해싱한 결과 값에 대해 RSA 암호화를 진행하는 것이 더 신속하기 때문
단계
- Alice가 사전에 자신의 공개키를 배포한다.
- 문서를 SHA-1과 같은 해시 함수를 이용해 줄이고, 이를 RSA 암호 블록 크기에 맞추어 적절히 패딩을 추가한다.
- 이를 자신의 RSA 개인키로 암호화한다.
- 문서와 서명을 같이 배포
Based ECDSA
타원곡선 기반의 전자서명이다.
RSA보다 ECDSA를 사용했을 때의 장점
- 높은 수준의 보안성
- 빠른 signing과 verification(RSA에 비하여 40% 더 빠르다.)
종류
ECC에서는 타원 곡선을 정의하기 위해 domain parameter를 입력해야하며 NIST Recommands 2020
의 내용을 참조하여 160bit 이하의 타원 곡선 (secp112r1, secp112r2, secp128r1, secp128r2, secp160k1, secp160r1, secp160r2, secp192k1)의 사용하여서는 안된다.
타원 곡선은 다음 순으로 많이 사용된다.
- P-256 (secp256r1, prime256v1)
- X25519
- P-512 (secp512r1)
- P-384 (secp384r1)
Use case (Difference)
- Symmetric Key Encipherment
- 비교적 빠르게 암호화를 수행할 수 있으며 ssl/tls 암호화 통신에서 데이터 전송에 사용된다.
- Asymmetric Key Encipherment
- 대칭 키 암호화에 비해 긴 키 길이와 공개 키 알고리즘의 특징으로 인해 키 배송 문제를 해결하거나 디지털 인증서 등에 사용된다.
- Cryptographic Hashing
- 데이터 무결성을 검증하고 데이터를 고유하게 식별하는 데에 사용된다. 데이터 사이즈가 어떻게 되던 고정된 크기의 해싱 값으로 변환하며, 일정 크기 이상의 데이터가 입력될 경우 동일한 해시 값이 출력될 수도 있다.
- Message Authentication
- 메시지가 송신자로부터 변조되지 않았음을 확인하는 데에 사용된다.
- Digital SIgnature
- 메시지가 송신자로부터 변조되지 않았음은 물론 송신자의 신원까지 확인한다.
MDC - 무결성
MAC - 무결성 + 송신자
DS - 무결성 + 송신자
'암호학' 카테고리의 다른 글
Message Authentication && Hashing (0) | 2023.10.14 |
---|---|
Asymmetric Key Encipherment (0) | 2023.10.14 |
Symmetric Key Encipherment (0) | 2023.10.04 |
AESAdvanced-Encryption-Standard-algorithm (0) | 2023.06.10 |