디지털서명 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
57번째 줄: 57번째 줄:
 
* 문서를 전송하는 주체에 대한 정보가 문서에 포함되는 경우가 많지만, 그 정보가 잘못될 가능성은 있다. 디지털 서명은 문서의 원본 발신처를 인증하는 데에 사용할 수 있는데, 디지털 서명에 사용되는 개인 키 값의 소유권을 특정 이용자에게 인증될 수 있을 때, 서명이 유효하다면 그 문서가 개인 키 값을 소유한 사람에게서 발신되었다는 것을 확인할 수 있게 된다. 발신자임을 높은 신뢰도로 확인하는 것은 금융에서 특히 중요하다. 은행 지점에서 본점에 있는 서버에 어떠한 계좌의 잔고를 변경하는 일을 한다고 가정한다면, 변경 명령이 실제 은행 지점에서 일어났는지 높은 신뢰도로 확인되지 않으며, 이러한 변경 명령을 본점에서 받아들이는 것은 치명적인 오류를 낳을 수 있다.
 
* 문서를 전송하는 주체에 대한 정보가 문서에 포함되는 경우가 많지만, 그 정보가 잘못될 가능성은 있다. 디지털 서명은 문서의 원본 발신처를 인증하는 데에 사용할 수 있는데, 디지털 서명에 사용되는 개인 키 값의 소유권을 특정 이용자에게 인증될 수 있을 때, 서명이 유효하다면 그 문서가 개인 키 값을 소유한 사람에게서 발신되었다는 것을 확인할 수 있게 된다. 발신자임을 높은 신뢰도로 확인하는 것은 금융에서 특히 중요하다. 은행 지점에서 본점에 있는 서버에 어떠한 계좌의 잔고를 변경하는 일을 한다고 가정한다면, 변경 명령이 실제 은행 지점에서 일어났는지 높은 신뢰도로 확인되지 않으며, 이러한 변경 명령을 본점에서 받아들이는 것은 치명적인 오류를 낳을 수 있다.
 
* 디지털 서명의 안정성 : 문서를 발신한 사람과 수신한 사람은 문서가 전송 중에 위변조된 일이 없음을 확인할 필요가 있다. 암호화는 문서의 내용을 은폐하지만, 그것의 이해와 무관하게 암호화된 문서를 변경할 가능성이 상존하나 만약 문서에 디지털 서명이 되어 있는 경우라면, 문서의 어떠한 변경이 발생하면 서명이 무효가 되고, 유효한 서명이 된 가짜 문서를 생성하기 위해서 어떤 문서와 서명을 조작할 만한 효과적인 방법은 없다. 이유인 즉슨, 많은 해시 함수와 계산적인 문제로 거의 불가능하기 때문이다.
 
* 디지털 서명의 안정성 : 문서를 발신한 사람과 수신한 사람은 문서가 전송 중에 위변조된 일이 없음을 확인할 필요가 있다. 암호화는 문서의 내용을 은폐하지만, 그것의 이해와 무관하게 암호화된 문서를 변경할 가능성이 상존하나 만약 문서에 디지털 서명이 되어 있는 경우라면, 문서의 어떠한 변경이 발생하면 서명이 무효가 되고, 유효한 서명이 된 가짜 문서를 생성하기 위해서 어떤 문서와 서명을 조작할 만한 효과적인 방법은 없다. 이유인 즉슨, 많은 해시 함수와 계산적인 문제로 거의 불가능하기 때문이다.
 +
 +
===디지털 서명 방식===
 +
* '''Direct Digital Signature''' : 공개키 암호 알고리즘과 hash function 을 사용한 모델 송수신자만 존재하는 디지털 서명 구조 수신자는 송신자의 공개키 를 가지고 있다고 가정 하면, 송신자의 개인키로 전체메시지 또는 해시에 서명하고 서명후 수신자의 공개키로 암호화 한다. 대표적인 예로 ELGamal Digital Signature, Schnoor Digital Signature 가 있고 송신자의 개인키 안전성에 따라 유효성이 다라지거나 송신자가 개인키를 분실하거나 도난당했다고 거짓주장 하거나, 실제로 송신자의 개인키가 도난당할 수 있으며, 제3자의 개입이 필요하다는 문제점이 있다.<ref name="디">백인감자, 〈[https://potatoggg.tistory.com/153 Digital Signature(디지털서명)]〉,《티스토리》, 2017-06-10  </ref> 직접적인 디지털 서명을 이해하는 것은 서명 된 정보의 전달과 관련된 두 개의 당사자, 즉 발신자와 수신자가 있음을 인식함으로써 시작되고, 직접 디지털 서명은 데이터의 수신자 디지털 서명 이 발신자가 사용하는 공개 키를 알고 있기 때문에이 두 엔티티 만 필요 하고, 서명을 보낸 사람은 수신자가 어떤 식 으로든 문서를 변경하지 않도록 신뢰 한다.<ref name="팀">팀 브루,〈[http://a.to/19O7rMF 직접 및 중재 된 디지털 서명의 차이점]〉,《techwalla》 </ref>
 +
: '''단점''' : 직접적인 디지털 서명으로 잠재적 인 문제를 안다면 중재 된 디지털 문서와 차별화하는 데 도움이 되는데 가장 큰 우려는 독립적 인 검증 프로세스가 없기 때문에 발신자와 수신자 간의 신뢰가 필요하다 이 프로세스에서는 보낸 사람에게 개인 키가 있어야 하고 받는 사람에게만 공개 키가 있어야 한다. 보낸 사람이 분실했거나 도난 당했다고 말하면 서명이 위조되었음을 주장 할 수 있고, 개인 키를 실제로 도난당한 후 서명을 위조하는 것은 직접적인 디지털 서명을 사용하여 잠재적 인 보안 위협이 된다.<ref name="팀"></ref>
 +
* '''Arvitrated Digital Signature''' : 관용암호 알고리즘과 중재자를 사용한 모델 arbiter(중재자) 가 등장한다. arbiter는 서명된 메시지의 유효성을 검사한다. 이를 위해 중재자에 대한 적절한 신뢰가 필요하고, 개인키나 공개키 알고리즘 어디에서든 구현 가능하며, arbiter 는 메시지를 보거나 안볼수 있다.<ref name="디"></ref> 중재 된 디지털 서명을 구현하면 타사를 "신뢰할 수있는 중재자 (trusted arbiter)"라고 불리는 프로세스에 신뢰할 수있는 중재자의 역할은 대개 두 가지 이다. 먼저이 독립 제 3자가 서명 된 메시지 또는 데이터의 무결성을 확인한다. 둘째로, 신뢰할 수있는 중재인은 서명 한 문서를 최종 목적지에 도착시키고 그 영수증을 확인하고 문서를 날짜 또는 시간 소인으로 찍는다.<ref name="팀"></ref>
 +
: '''단점''' : 신뢰할 수있는 중재자를 사용하여 직접 서명의 많은 우려를 채우는 중재 된 서명에는 자체의 단점이 있는데, 중재자를 사용하는 것은 발신자와 수신자 모두로부터 완전한 신뢰를 요구하며, 중재인은 지시에 따라 문서에 시간을 표시하고 전달할뿐만 아니라 어떤 식 으로든 데이터를 변경하지 않을 것이고, 중재인이 일방이나 타방에 대한 편견을 보여줄 수있는 가능성이 있다.<ref name="팀"></ref>
 +
 +
* '''ELGamal Digital Signature'''
 +
A : 송신자, B : 수신자 라고 하자
 +
# 소수 q와 primitive root a 선택
 +
# 송신자는 비밀키(개인키, X_A) 선택 후 고개키 계산(1<=X_A<p-1,A : 송신자)
 +
# 메시지 M을 hash 적용시켜 m으로 만든다. 0<= m <=q-1
 +
# 임의의 값 K선택한다.(1<=K<=q-1,gcd(k,q-1)=1)
 +
# 서명값 S_1,S_2 계산후 수신자에게 m과 서명값을 전달한다. <math>S_{1}=a^{k} mod q, K^{-1} mod (q-1)</math> 계산 <math>S_{2}=K^{-1}(m-X_{A}S_{1} mod (q-1))</math>
 +
# 수신자는 서명값 계산을 통해 검증하고, V_1,V_2 가 일치하면 유효한 것이다. <math>V_{1}=a^{m} mode q,V_{2}=Y_{A}^{S_1}S_{1}^{S_2} mod q</math>
 +
 +
* '''Schnoor Digital Signature''' : 쉬노아 서명으로 서명값이 짧다는 특징이 있다.
  
 
=== 차이점 ===
 
=== 차이점 ===

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)