STAGE 6
전자 서명 (Digital Signature)
- 서명: 행위자가 자신의 신원을 표기하려고 사용
- 전자 서명: 서명을 암호학적으로 구현한 것
- 공개키 암호가 만들어지며 만들어짐
- 1978년 RSA 암호 알고리즘이 만들어지면서 전자 서명이 사용되기 시작
- 메시지의 무결성과 부인 방지를 위해 사용
전자 서명 알고리즘
- 개인키로 서명을 생성 → 서명키 (Signing Key)
- 공개키로 서명에 대한 검증 진행 → 검증키 (Verification Key)
서명과 검증
- 서명 작성 (Signing): 메시지를 서명키로 암호화하는 과정
- 서명 검증 (Verification): 서명을 검증키로 복호화하고 받은 메시지와 비교하는 과정
- RSA와 반대 과정으로 이루어짐
해시 함수를 이용한 전자 서명
- 전자 서명에서 해시 함수를 이용하면 효율성, 안전성 향상에 도움이 됨
- 해시 함수로 메시지의 해시 값 생성 → 값에 대한 서명 생성
- 수식으로 나타내면 다음과 같음
RSA 전자 서명
- RSA 공개키 암호를 사용하여 서명과 검증이 이루어짐
- RSA 공개키 암호에서의 공개키는 검증키로 사용됨
- RSA 공개키 암호에서의 개인키는 서명키로 사용됨
- 인수분해 문제의 어려움에 기반
- 검증키: (n, e) / 서명키: d
서명 생성
- 서명키 d로 메시지 m에 대한 서명 s 생성
서명 검증
- 서명 값 s와 메시지 값 m에 대한 검증 수행
- 이 때, m'과 m이 같다면 s는 유효한 서명
RSA 전자 서명 공격
- 검증키 (n, e)를 알면 유효한 메시지와 서명 쌍 (m, s) 생성 가능
- 두 개의 유효한 메시지와 이에 대응하는 서명 쌍 (m1, s1), (m2, s2)을 알고 있다면 다른 유효한 평문과 서명의 쌍 (m1m2, s1s2) 생성 가능
해시를 이용한 RSA 전자 서명
- 해시를 이용한 RSA 전자 서명에 위의 공격을 수행하려면 아래의 식 만족
- 역상 저항성 (Preimage Resistance)
ElGamal 전자 서명
- 이산 대수 문제의 어려움에 기반
- 이 전자 서명을 모태로 DSA(Digital Signature Algorithm) 전자 서명 등 설계
ElGamal 키 생성
- 큰 소수 p, 키를 만드는 생성원 g 선택
- p-1보다 작고 1보다 큰 정수 x 임의 선택
- 검증키: (y, g, p) / 서명키: x
서명 생성
- p-1보다 작고, 이와 서로소인 정수 k 임의 선택
- 아래 계산을 통해 서명 값 생성
서명 검증
ElGamal 전자 서명 공격
- 비결정적 성질 (Nondeterministic): 서명을 할 때마다 새로운 난수 k 사용 → 동일한 메시지에서도 서명 값 변함
- 난수 k를 매번 같은 값으로 고정하면 서명키 x 노출 위험성
- 서명키 x를 알면 원하는 메시지의 서명값 노출
- k 값은 고정값 대신 적절한 난수값으로 지정
DSA 전자 서명
- 1991년 NIST에 의해 제안, 1994년 12월 미국의 전자 서명 기법 표준으로 제정
- 다른 서명에 비해 훨씬 짧은 서명 길이를 가지는 장점
DSA 키 생성
- 큰 소수 p, p-1의 약수이자 소수인 q 선택
- p-1보다 작고 1보다 큰 정수 h 선택
- 생성원 g 계산
- g가 1이 되면 h를 다시 선택하여 1이 아닌 g를 구함
- 1부터 q-1 범위의 큰 정수 x 임의 선택
- y 계산
- 검증키: (y, g, p, q) / 서명키: x
- 안전한 해시 함수 h 선택
서명 생성
- 1부터 q-1 범위의 난수 k를 임의로 선택
- 아래의 수식으로 서명 값 s 계산
서명 검증
- 서명 값 s와 메시지 m에 대한 검증
- e1, e2 계산
- γ' 계산 후 서명값의 γ 값과 비교 (두 값이 같으면 s는 유효한 서명)
- w 정의
- δ 성립
- k 성립
- 아래 식을 만족하는 정수 n 존재
- 올바른 서명 s에 대해 계산한 r'과 r이 동일하면 서명 유효
'Dreamhack > Cryptography' 카테고리의 다른 글
[Cryptography] STAGE 5 (0) | 2022.08.11 |
---|---|
[Cryptography] STAGE 4 (0) | 2022.08.05 |
[Cryptography] STAGE 3 (0) | 2022.08.04 |
[Cryptography] STAGE 2 (0) | 2022.07.26 |
[Cryptography] STAGE 1 (0) | 2022.07.25 |