이번에는 문서의 무결성을 보증할 수 있는 전자서명에 대해서 알아보자...
1.전자서명 이해
(1) 전자서명(Digital Signature) 정의 - 서명자 인증, 메시지의 위·변조 방지, 송신 부인방지 등의 기능을 제공하는 암호화 기술로 공개키 암호화 방식에서의 개인키를 이용한 메시지 암호화는 서명 당사자밖에 할 수 없다는 점을 이용하여 구현한 것이다.
o 수기서명과 전자서명의 차이점
구분 | 설명 |
서류에 서명하는 문제 | 수기서명에서는 서명이 서류의 일부분인 반면에 전자서명은 서명되는 서류의 일부분이 아니며 서류의 전체이다. |
서명을 확인하는 인증문제 | 수기서명에서는 실제의 서명과 비교함으로써 증명되는 반면, 전자서명은 공개된 알려진 인증 알고리즘에 의하여 증명될 수 있다. 즉, 수기서명은 보는 사람에 따라 주관적이므로 위조여부의 식별에 차이가 있지만 전자서명은 모든 사람에게 객관적이므로 위조여부의 식별에 차이가 없다. |
복사의 문제 | 수기서명에서는 실제의 서명을 복사하기 힘들지만 전자서명에서는 똑같이 복사될 수 있다. |
(2) 전자서명 처리 절차
① 송신자는 송신할 메시지에 대해 해시함수를 적용하여 특정 비트의 메시지 다이제스트를 생성한다.
② 송신자는 생성된 메시지 다이제스트에 자신의 개인키를 이용하여 암호화시킴으로써 전자서명을 실시한다.
③ 송신자는 송신 메시지와 전자서명을 수신자에게 전송한다.
④ 수신자는 수신한 전자서명을 송신자의 공개키를 이용하여 복호화 함으로써 송신자가 생성한 메시지 다이제스트를 추출한다.
⑤ 수신자는 수신한 메시지에 송신자와 동일한 해시함수를 적용하여 새로운 메시지 다이제스트를 생성한다.
⑥ 수신자는 송신자에게 받은 메시지 다이제스트와 자신이 생성한 메시지 다이제스트를 비교하여, 동일한 경우 정당한 송신자의 전자서명으로 판단한다.
(3) 전자서명 조건
구분 | 설명 |
서명자 인증 (User authentication) |
전자서명의 서명자를 누구든지 검증할 수 있어야 한다. |
부인 불가 (Non-repudiation) |
서명자는 후에 서명한 사실을 부인할 수 없어야 한다. |
변경 불가 (unalterable) |
합법적인 사용자만이 서명한 문서의 내용을 변경할 수 있어야 한다. 개인키를 소유하지 않은 자는 전자 문서를 변경할 수 없다. |
재사용불가 (not reusable) |
문서의 서명을 다른 문서의 서명으로 다시 사용할 수 없어야 한다는 것으로 한번 사용한 전자서명을 다시 사용할 수 없다. |
위조 불가 (un-forgeable) |
합법적인 서명자만이 전자서명을 생성할 수 있어야 한다는 것으로 개인키를 소요하지 않은 자는 전자서명을 생성할 수 없다. |
(4) 서명 위조와 안전성 개념
(가) 위조에 대한 관점
구분 | 설명 |
일반적 위조 불가 | o 서명의 위조가 불가능한 문서가 존재 |
선택적 위조 불가 | o 어떤 정해진 문서 이외에 대해서는 서명의 위조가 불가능 |
존재적 위조불가 | o 어떠한 문서에 대해서도 서명의 위조가 불가능 |
(나) 공격에 대한 관점
구분 | 설명 |
수동공격 | o 공개키만을 사용하여 위조 |
일반 선택문서 공격 | o 선택한 문서에 대한 서명문을 얻은 후 그 정보를 통하여 제 3의 문서의 서명을 위조하는 공격 |
적응적 선택문서 공격 | o 매회 적응적으로 임의로 선택한 문서의 서명문을 얻은 후 그 정보를 통하여 제 3의 문서의 서명을 위조하는 공격 |
(5) 메시지 복원형과 메시지 부가형
구분 | 설명 |
메시지 복원형 전자서명 (Digital Signature Scheme Giving Message Recovery) |
이 방식은 RSA와 같이 공개키로 암호화하고 비밀키로 복호화할 때 본래의 메시지가 환원되고, 비밀키로 암호화하고 공개키로 복호화하여도 본래의 메시지가 환원되는 방식이다. 즉, 서명자가 자신의 비밀키를 이용 하여 메시지를 암호화하여 전송하면 검증자가 서명자의 공개키를 이용하 여 서명된 암호문을 복호화하여 그 결과가 일정한 규칙을 만족하는 메시 지가 되는지를 확인함으로써 서명을 검증하는 방식이다. 이처럼 서명 검증 과정에서 원래의 메시지가 복원되는 방식을 메시지 복원형 전자서명이라고 한다. 메시지 복원형 전자서명은 기존의 암호 시스템을 이용하기 때문에 별도의 전자서명 프로토콜이 필요하지 않은 장점이 있지만, 메시지를 일정한 크기의 블록으로 나누어 각각의 블록에 대하여 서명을 하여야 하기 때문에 서명의 생성이나 검증과정에서 많은 시간이 소요되는 단점이 있다. |
부가형 전자서명 (Digital Signature With Appendix) |
이 방식은 임의의 길이로 주어진 메시지를 해시 알고리즘을 이용하여 일정한 크기로 압축하고, 그 해시 알고리즘의 결과와 서명자의 비밀키를 이용하여 전자서명을 생성해서 메시지를 덧붙여 보낸다. 이렇게 생성된 서명의 검증은 수신된 메시지를 해시한 결과와 전자서명 및 공개키를 이용하여 계산된 값을 비교함으로써 이루어진다. 부가형 전자서명은 메시지 이외에 서명을 별도로 전송해야 하기 때문에 전송량이 조금 늘어나는 반면에 메시지가 아무리 길더라도 단 한 번의 서명 생성만을 필요로 하기 때문에 효율적이라 할 수 있다. 임의의 길이의 메시지를 일정한 길이로 압축해 주는 해시 알고리즘은 입력 메시지가 조금만 변하더라도 그 해시 결과가 전혀 다른 값으로 변하기 때문에 서명의 위조나 메시지의 변조를 막을 수 있다. 따라서 안전한 해시 알고리즘을 개발하는 것이 필수적이다. 상기의 두 가지 전자서명 방식 중에서 부가형 전자서명의 장점이 비교적 크기 때문에 현재 세계적인 추세도 부가형 전자서명을 선호하고 있다. |
(6) 전자서명 예
(가) RSA 전자 서명
(나) ElGamal 전자 서명
o 이산대수 문제를 기반으로 정보보호 기능 없이 서명만을 위하여 고안된 방식이다. 서명자는 큰 소수 p를 선택하고 Zp 상에서 원시원소 g를 선정한다.
o 서명자는 비밀 서명키로 X를 선택하고 이산대수 문제 y≡gX mod p를 계산하여 p, q, y를 공개 목록에 공개한다. 이 때 X가 비밀 서명키가 되고 y가 공개 검증키가 된다.
(다) Schnorr 전자 서명
o 전자서명의 효율성을 높이기 위하여 소수의 p, q의 사용을 처음 제안하였다.
o ElGamal서명의 길이는 RSA서명 길이의 2배이며 지수승의 계산량은 거의 4배에 이른다.
o 이러한 문제를 해결하기 위하여 Schnorr는 위수 p-1을 갖는 원시 원소를 사용하는 대신, p-1의 소인수 q를 위수로 갖는 생성원을 사용하였다. Schnorr서명을 위한 시스템 변수들은 다음과 같다.
(라) 전자 서명 표준(DSS = DSA)
o 전자 서명 표준은 미국의 전자 서명 표준으로 ElGamal 전자 서명을 개량한 방식이다.
o 전자 서명 표준은 ElGamal 전자 서명 방식과 유사하지만 서명과 검증에 소요되는 계산량을 획기적으로 줄인 방식이다.
1) KCDSA 전자 서명 - 국내 표준 전자 서명 방식
2) 타원곡선 전자서명 표준(ECDSA)
o ECDSA(Elliptic Curve DSA)는 타원 곡선(elliptic curve)상에서 군을 정의하고 이에 대한 이산대수 계산의 어려움에 근거를 두고 있다.
o 타원 곡선상에서의 이산대수 문제는 일반적인 군에서 정의되는 이산대수 문제보다 훨씬 어려우며, 이에 따라, 작은 키로도 RSA보다 높은 비도를 유지할 수 있다.
o ECDSA는 2000년 2월 8일에 발표된 FIPS 186-2 DSS에 새롭게 포함된 내용으로 타원곡선 전자서명 알고리즘이다.
o ECDSA(Elliptic Curve DSA)는 DSA를 타원곡선 알고리즘으로 옮긴 것으로 X9.62로 표준화되었다.
o 따라서 본질적인 알고리즘은 유한체 위에서의 DSA와 동일하다.
o ECDSA는 DSA 전자서명을 타원곡선을 이용한 전자서명 알고리즘으로 변형한 것으로, 다른 공개키 시스템의 키 길이에 비해서 훨씬 짧은 키를 사용하여도 동일한 안전도를 제공하므로 스마트카드, 무선 통신 등과 같이 메모리와 처리능력이 제한된 분야에서 매우 효과적일 수 있다.
o ECDSA을 구현하기 위해서는 타원곡선과 모듈러 연산이 필요하며 키와 서명생성 시 난수 알고리즘이 필요하다. 또한 서명생성 및 검증과정에서는 타원곡선의 상수곱 연산이 필요하다.
4.전자서명을 이용한 최신 응용프로그램의 특징 및 이해
(1) 부인 방지 전자 서명
o 부인 방지 서명은 자체 인증 방식을 배제해 서명을 검증할 때 반드시 서명자의 도움이 있어야 검증이 가능한 전자 서명 방식이다.
o 부인 방지 서명 방식은 서명자가 자신의 서명문을 검증자에게 확인시켜 주는 확인 과정과 추후에 서명자가 자신의 서명임을 부인하지 못하게 하는 부인과정으로 구성되어 있다.
o 부인방지 서명은 이산 대수 문제를 기반으로 구성된다.
(2) 은닉 서명
o 은닉 서명 방식은 D.Chaum에 의해서 제안된 서명 방식이다. 서명 용지 위에 묵지를 놓아 봉투에 넣어 서명자가 서명문 내용을 알지 못하는 상태에서 서명토록 한 방식을 수식으로 표현한 것이 은닉 서명이다. 즉, 서명문의 내용을 숨기는 서명 방식으로 제공자(provider: 서명을 받는 사람)의 신원과 서명문을 연결시킬 수 없는 익명성을 유지할 수 있다.
(3) 위임 서명
o 위임 서명자로 하여금 서명자를 대신해서 대리로 서명할 수 있도록 구성한 서명 방식을 말한다. 따라서 위임 서명 방식은 다음 두 가지 조건을 만족해야 한다.
ü 위임 서명을 생성할 수 있는 사람은 서명자로부터 위임 서명자로 지정된 사람만 가능해야 하며, 제3자는 위임 서명을 생성할 수 없어야 한다.
ü 위임 서명을 확인하는 검증자는 위임 서명을 위임한 서명자의 동의가 있었음을 확인할 수 있어야 한다.
o 위임 서명은 위임 방법에 따라 다음과 같이 세 가지로 나눌 수 있다.
o 자신의 비밀 서명 정보를 직접 위임 서명자에게 알려주는 완전위임 방식, 위임 서명자의 비밀 서명 정보를 서명자가 자신의 비밀 서명 정보로부터 별도로 만들어 주는 부분 위임방식, 그리고 서명자가 위임 서명자로 지정한 사실 증명을 만들어 위임 서명자에게 제공하는 보증 위임방식이 있다.
o 세 가지 위임 서명 중 실용성과 응용성이 뛰어난 방식이 두 번째 방식인 부분 위임 방식이다. 이 방식은 서명자가 위임 서명자를 통제할 수 있을 뿐 아니라 안전성이 우수하다.
(4) 은닉 서명(Blind Signature)
o D. Chaum에 의해 제안되었으며, 기본적으로 전자서명을 만들 수 있는 서명자와 서명 받을 메시지를 제공하는 송신자로 구성되어 있는 서명 방식으로, 송신자의 신원과 (메시지, 서명)쌍을 연결시킬 수 없는 특성을 유지할 수 있는 서명이다.
o 은닉 서명은 서명하고자 하는 메시지의 내용을 공개하지 않고 메시지에 대한 서명을 받고자 할 때 사용된다. 서명자의 익명성과 송신자의 익명성을 보장함으로써 기밀성의 보장을 가능하게 하는 특수한 전자서명이다.
o 서명자의 익명성이란 직접 서명한 사용자가 서명발급 이후에 전자서명(메시지와 서명의 쌍)의 유효성을 확인할 수 있으나, 자신이 언제 누구에게 발행했는지는 확인할 수 없도록 하는 것을 말하며, 송신자의 익명성이란 검증자가 전자서명 내역(메시지와 서명의 쌍)의 유효성을 확인할 수 있으나, 송신자의 신분을 확인할 수 없도록 하여 송신자의 익명성을 보장하는 것을 말한다.
o 이러한 은닉 서명은 전자화폐의 가치를 증명해주기 위해 화폐 발급자가 사용자의 정보를 볼 수 없는 상태에서 서명을 해줄 수 있는 새로운 종류의 서명 방식으로 전자투표에서도 사용된다.
o 이중 서명(Dual Signature)은 SET에서 도입된 기술로, 고객의 결제정보가 판매자를 통하여 해당 지급정보중계기관(이하 'PG')으로 전송됨에 따라 고객의 결제정보가 판매자에게 노출될 가능성과 판매자에 의한 결제 정보의 위/변조의 가능성을 제거한다.
o 즉, 판매자에게 결제정보를 노출시키지 않으면서도 판매자가 해당 고객의 정당성 및 구매 내용의 정당성을 확인할 수 있고 PG는 판매자가 전송한 결제요청이 실제 고객이 의뢰한 전문인지를 확인할 수 있도록 하는 기술이다.
o 영지식 증명체계(zero-knowledge proof system)
-한 사람이 다른 사람에게 사실의 증명에 관한 어떤 정보도 보이지 않고, 사실의 증명을 알고 있음을 확신하도록 만드는 방법 즉, 정보를 전혀 주지 않고 상대방에게 정보를 알고 있음을 증명하는 방법
o 영지식 증명(Zero-knowledge Proof)은 증명자가 어떤 사실의 정당성에 관한 사실만을 검증자에게 전달하는 방식으로 어떠한 정보도 노출시키지 않는다는 의미를 갖고 있다.
o 즉 증명자가 자신이 아는 비밀 정보를 검증자에게 전송하지 않고, 검증자에게 자신만이 비밀정보를 갖고 있다는 증명을 할 수 있는 증명 방식이다.
o 영지식 증명은 일반적으로 대화형 증명 방식(Interactive Protocol)의 형태를 취한다. 대화형 증명 방식은 증명자와 검증자가 일련의 질문과 답으로 구성된 대화를 통해 증명을 하는 방식으로, 영지식 증명을 영지식 대화형 증명 방식(Zero-Knowledge Interactive Proof)이라고도 한다.
(가) 준비과정
1) 적당한 집합이 정해진다.
(나) 증명과정
1) 증명자는 정해진 집합 내에서 임의로 선정된 난수에 대한 증거를 계산하여 검증자에게 제시한다. 여기에서 증거는 정당한 증명자만이 알고 있는 비밀 정보를 알고 있다는 사실을 검증자에게 입증시키는 방법이다.
2) 검증자는 증거를 이용하여 여러 개의 질문을 증명자에게 제시한다.
3) 증명자는 검증자가 제시하는 모든 질문에 대답함으로써 정당한 클라이언트임을 확인시킨다. 이 때 대답의 내용은 증명자의 비밀 정보를 유추할 수 있는 어떤 정보도 포함되지 않아야 한다.
(다) 영지식 증명 프로토콜의 예
ü 대화형 증명 시스템 - {0 ,1}* 상의 언어 L에 대하여, 대화형 프로토콜인 프로토콜 (P, V)가 다음의 두 조건을 만족할 때, 대화형 증명 시스템이라 한다.
ü Quadratic Residue 문제의 영지식 대화 증명 프로토콜 - mod n에 대한 x의 quadratic residue 문제에 대한 영지식 증명 시스템 (P, V)는 다음과 같이 구성한다.
(라) 영지식 비대화형 증명 (ZHNIP)
o 영지식 대화 증명의 비효율성을 개선하기 위한 방법이다. 영지식 비대화 증명은 M.Blum, P.Feldman, S.Micali에 의하여 제안되었으며, DeSantis, Micali, Persiano, Bellare와 Goldwasser 그리고 Naor와 Yung에 의하여 더욱 발전되었다.
o Blum 등의 제안은 영지식 비대화 증명의 개념을 소개하고 세 개의 소수곱으로부터 2개의 소수곱을 구별하는 것이 어렵다는 가정 하에 computationally ZKNIP가 존재함을 보였다.
o 또한, 적응 선택 암호문 공격에 대하여 안전성 증명 가능한 공개키 암호 시스템을 만드는데 ZKNIP가 적용될 수 있음도 보였다.
o 영지식 비대화 증명의 개략적인 정의로, 언어 L 상의 NIP(Non-Interactive Proof) (P, V)는 증명자 P만이 x∈L이라는 증거만을 검증자 V에게 보내며, 검증자 V는 P에게 아무것도 요청할 수 없으며 증명 과정 전에 동일하나 랜덤 테이프를 사전 공유하고 있다고 가정한다.
o 그리고 언어 L상의 ZKINP(P, V)는 NIP의 정의에 추가하여, 검증자 V가 x∈L이라는 정보 이외에는 어떠한 추가적인 정보도 얻지 못하는 영지식성 프로토콜이다.
'정보보호관리체계(ISMS-P) > 실무 Q&A' 카테고리의 다른 글
ISMS-P 인증심사원 - 유닉스/리눅스 보안(1) (0) | 2022.06.10 |
---|---|
ISMS-P 인증심사원 - 공개키기반구조(PKI) (0) | 2022.06.10 |
ISMS-P 인증심사원 - 해쉬함수 (0) | 2022.06.10 |
ISMS-P 인증심사원 - 공개키 암호 (0) | 2022.06.10 |
ISMS-P 인증심사원 - 대칭키 암호 (0) | 2022.06.10 |