Security

[Security] 전자 서명(Digital Signature)

구루싸 2020. 2. 25. 18:24
반응형
SMALL

아...코로나19...

그대는 나를 왜 그리도 놓아주질 않는건가요-_-

코로나19로 인해 휴가 여행을 취소하게되었네요...

하...분노의 학습을 시작하겠습니다

이번 주제는 전자 서명(Digital Signature)입니다

전자 서명은 작성자의 신원과 전자 문서 변경 여부를 확인할 수 있도록

전자 문서를 비대칭 암호화 방식을 이용하여 전자 서명 생성키로 생성한 정보로

개인의 고유성을 주장하고 인증받기 위해서 전자적 문서에 서명하는 방법입니다

이는 무결성, 추적성 확보를 목적으로하고 있습니다

전자 서명의 특징을 살펴보면 다음과 같습니다

특징 내용
서명자 인증(Authentication) 전자 서명을 생성한 서명인을 검증 가능(서명자의 공개키)
부인 방지(Non-Repudiation) 서명인은 자신이 서명한 사실을 부인 불가
위조 불가(Unforgeable) 서명인의 개인키가 없으면 서명 위조 불가
변경 불가(Unalterable) 이미 한 서명을 변경하는 것은 불가
재사용 불가(Not-Reusable) 한 문서의 서명을 다른 문서의 서명으로 재사용 불가

전자 서명은 비대칭(공개키) 암호화 기법을 이용하여

서명문의 서명자임을 제3자가 확인하여 사용자 인증을 하고

해시 함수를 이용하여 메시지 내용의 무결성을 보증하여 메시지 인증을 합니다

전자 서명 과정에는 총 5개의 암호화키가 사용되는데

송신자의 사설키(개인키)와 공개키, 수신자의 사설키(개인키)와 공개키, 대칭키인 비밀키입니다

전자 서명 생성 과정(송신)
전자 서명 생성 과정(수신)

위의 그림은 전자 서명 송/수신 과정을 간략히 그린 것입니다

송신자는 메시지를 해시 함수에 넣고 메시지 다이제스트를 생성하고

이 다이제스트를 송신자만 가지고 있는 사설키(개인키)로 전자 서명을 합니다

전자 서명이 완료되면 다시 대칭키 기법인 비밀키를 사용해서 전자 서명을 암호화합니다

중요한 것은 본래 메시지도 비밀키로 암호화해서 암호문을 만듭니다(비교용)

여기까지 전자 서명을 위한 과정은 끝났지만 문제는 대칭키 기법으로 암호화한 것을 상대방이 알 수 없다는 점입니다

따라서 비밀키를 보내주어야하는데 그 방법이 수신자의 공개키로 비밀키를 암호화하는 것입니다

자 이렇게 되면 수신자는 수신자의 사설키(개인키)로 암호문을 복호화하고 대칭키의 비밀키를 획득합니다

자 그러면 그림과 같이 해제하면 평문을 얻을 수 있습니다

마지막으로 전자 서명의 기법에 대해 학습하고 마치겠습니다

기법 내용
RSA RSA 암호화 알고리즘을 사용해서 메시지에 전자 서명을 하며 송신자의 개인키와 공개키로 암/복호화를 수행
ElGamal 이산대수 문제를 이용한 전자 서명으로 암호화 알고리즘으로는 사용할 수 없고 오직 전자 서명만 가능
Schnorr

IC 카드에 적합한 전자 서명 방식으로 ElGamal을 기반으로 서명의 크기를 줄이기 위해서 제안된 방식 

KCDSA

(Korea Certificate-based Digital Signature Algorithm)

국내 전자 서명 표준으로 국내 전자 서명법을 준용하여 인감과 같은 법적 효력을 지님

이산대수를 기반으로 하는 전자 서명 알고리즘

ECC 

ECDSA(Elliptic Curve Digital Signature Algorithm)로 타원 곡선을 기반으로 하는 전자 서명

타원 곡선 알고리즘은 짧은 키를 사용하기 때문에 전자 서명을 짧은 시간 내에 생성할 수 있음

DSS

(Digital Signature Standard)

미국 전자서명 표준으로 ElGamal  전자 서명을 개량

ElGamal 전자 서명 방식을 개량한 것으로 서명 검증의 부하를 줄이기 위해서 계산량을 줄인 방식

 

오늘의 학습은 여기까지-_-

반응형
LIST