컴퓨터, IT 지식/블록체인

블록체인을 이해하기 위한 배경지식 - 전자 서명

게임이 더 좋아 2021. 4. 20. 03:36
반응형
728x170

 

이번엔

디지털 문서의 작성자임을 증명하는 전자 서명에 해서 알아보자

 


 

전자 서명은 위에서 말했던 대로 디지털 문서의 작성자임을 증명하는 것이다.

우리가 어떤 계약서에 Signature, 사인을 하듯이 전자 서명도 자신임을 증명하는 것이다.

 

왜? 알아야 하느냐?

앞으로 디지털에서 일어나는 일들에는 전자 서명이 필수가 될 것으로 예상된다.

즉, 전자 서명이 없다면 신뢰할 수 없는 사용자로 인식되어 필요한 서비스를 이용하지 못할 수 있다는 것이다.

 

하지만 전자 서명만으로는 데이터를 바꿔치는 속임수에 당할 수 있다.

즉, 본인이 서명한 것인지, 해당 암호 키로 서명한 것을 증명해야 이를 방지할 수 있다.

 

블록체인에서는 트랜잭션 정보에 전자 서명이 들어간다.

전자 서명에는 바로 공개 키 암호와 단방향 해시함수를 이용한다.

 

 

전자 서명을 통해 이 파일은 앨리스가 보낸 것이다라는 것을 증명하는 것이다.

 

해시 함수의 특징이

입력이 같으면 해시 값도 같은 것이다.

또한 공개 키로 복호화 된 것은 비밀 키로만 복호화 되어 보안성을 유지한다.

 

이 두 가지를 결합한 것이 바로 전자 서명인 것이다.

 

** 이로써 내용의 변조를 파악할 수 있다.

 

 

여기선 3가지가 나온다.

송신자가 만든 전자문서

첨부된 전자 서명

송신자의 공개 키

 

** 비밀 키가 있는 사람만이 송신자가 보낸 전자 문서인지 확인이 가능하다.

 

 


 

하지만 확실할까?? 정말???

여기서 공개 키가 송신자의 것이라는 확신이 있나?

파일을 보낸이가 앨리스인 것을 알 수 있나? 

해당하는 공개 키와 비밀 키 쌍은 어떻게든 만들 수 있다.

 

다시 말해서 전자 서명이 있어서 검증이 된다면 공개 키에 대응하는 비밀 키가 있는 사람이 전자 서명을 했겠지만

그것이 실제로 앨리스인지는 확신할 수 없다는 말이다.

 

즉, 계약서에 서명까지해서 모든 계약준비를 마쳤지만

그 사람이 실제로 내가 생각하는 사람이 맞는지는 모른다. 왜냐하면 계약서와 서명만 딸랑 왔으니까

 


 

밥의 입장에선 어떻게 공개 키를 입수했느냐? 알게 되었느냐? 가 중요하다.

++ 정말 본인한테 받았느냐는 것이다.

 

이를 위해서 핑거프린트, Fingerprint 

즉, 지문을 사용한다. 

사람마다 지문은 다르다고 하지? 

++물론 지문 같을 확률이.. 존재하긴 한다고 한다.

 

공개 키의 해시 값에서 사람에게 전달하기 쉬운 핑거프린트 정보를 만들어 암호화와 복호화에 사용하는 것이다.

 

 

즉, 공개 키를 해시 함수에 넣어 값을 얻는다.

이 해시값이 바로 핑거프린트가 되며

다시 이 해시 값을 본인의 비밀 키로 암호화 한다.

이 암호화된 값( 공개 키로 얻은 해시 값을 비밀 키로 암호화한 값)이 바로 전자 서명이 되는 것이다.

 

수신자는 [1.송신자의 공개키]와 [2.전자 서명(암호화한 핑거프린트)] 그리고 [3. 핑거프린트 값(공개 키로 얻은 해시 값)]을 알아야 한다.

그래야만 확인이 가능하다.

 

전자 서명을 다시 송신자의 공개키로 복호화하고

송신자의 공개키로 해시 값을 얻어서

2개 핑거프린트 값이 일치한다면 앨리스가 서명한 것이라고 생각할 수 있다.

 


 

즉, 전자 서명에 사용되는 키 쌍이 정말 내가 알고 있는 상대방의 것이 맞는지 확인해야한다.

하지만 이는 기술적으로 어려운 상태에 놓여있다.

실제로 상호 간 통신 암호화에 특화되어 핑거프린트 확인을 사용자에게 강제하는 공개 키 암호 기술의 보급은 별로 활성화되지 못했다.

 

 

 

그래서 우리는 다른 방법을 생각해냈다.

바로 전자 인증서이다.

 

다음에 알아보자

 

 

반응형
그리드형