[블록체인 기반 기술] 부인방지 (non-repudiation)
부인방지는 메시지를 보낸사람이 보낸 사실을 부인하거나, 받은 사람이 받지 않았다고 부인할 때 증명하는 기술이다. 예를 들자면, "나 너한테 메시지 보낸적 없는데?" "나 너한테 메시지 못받았는데?" 이런 식의 거짓말을 할 때 반박할 수 있게 된다. 특히 자산의 이동과 같이 무결성을 보장해야 할 때 꼭 필요하며, 그렇기 때문에 블록체인의 핵심 기능 중 하나이다.
핵심은 디지털 서명
디지털 서명은 비대칭 암호화를 이용해 메시지를 서명하여 메시지의 생성자를 특정하는 기술이다. 사실 우리에게 친숙한 개념이다. 메시지를 서명하기 위해서 공개키와 개인키 쌍이 필요하다. 그렇다면 키 쌍을 어떻게 생성하고 관리해야 할까? 키 쌍을 관리하는 업체들이 있는데 이들을 CA, 공인인증업체라고 하고, 이들이 발행한 키 쌍을 공인인증서라 부른다. 즉, 우리는 공인인증서를 이용해 메시지를 디지털 서명하고 있다.
디지털 서명의 원리를 살펴보자. 먼저 비대칭 암호화에 대한 개념이 필요하다. 평문(plain text)를 암호문(cipher text)로 바꿔주는 암호화 키 값과 암호문을 평문으로 바꿔주는 복호화 키 값, 이렇게 2개의 키값을 이용해서 암호화/복호화를 하는 알고리즘을 비대칭 암호화라고 한다. 암호화 키 값을 안다고 복호화 키 값을 아는 것은 매우 어렵다. 그러므로 암호화 키 값 혹은 복호화 키 값을 공개하더라도 보안성을 보장할 수 있다.
디지털 서명은 비대칭 암호화 키 쌍 중 암호화 키를 서명 키로, 복호화 키를 검증 키로 이용한다. 메시지 혹은 메시지의 해쉬 값을 암호화하고 이를 서명 데이터라 부른다. 그리고 만들어진 서명 데이터를 메시지와 함께 전달한다. 메시지를 받는측에서는 서명을 복호화 하여 메시지 혹은 메시지의 해쉬 값을 얻고 이를 전달받은 메시지와 비교한다. 같을 경우 해당 메시지는 보내는 사람이 특정된다.
만약에 메시지를 받는 사람이 거짓말을 하면 이를 어떻게 검증할 것인가? 이를 위해서는 ack 메시지를 보낼 때 디지털 서명하여 보내도록 하면 된다.
참고 자료
http://www.parkjonghyuk.net/lecture/2012-1st-lecture/modernCrypto/chap01.pdf
https://steemit.com/blockchain/@etainclub/blockchain-5
https://rsec.kr/?p=426
http://www.parkjonghyuk.net/lecture/modernCrypto/lecturenote/chap09.pdf
http://cris.joongbu.ac.kr/publication/%EB%B6%80%EC%9D%B8%EB%B0%A9%EC%A7%80%ED%91%9C%EC%A4%80-CISC99.pdf
Sponsored ( Powered by dclick )
웃으면 안되는데 웃음이 나와버렸네요(부제 : 일본의 어느 수족관 SNS를 보며..)
반복되는 일상속에서 웃을 일이 좀처럼 없어서 더 할나위 없이 웃음이 나왔네요 ㅋ
Leave [블록체인 기반 기술] 부인방지 (non-repudiation) to:
Read more #kr-dev posts
Best Posts From tmkor
We have not curated any of tmkor's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From tmkor
- 음원 분리 기법에 대하여.. (about singing voice separation)
- 아파트 실거래가 가격 예측 후기
- [IT용어] IPC (Inter-processing communication)
- [블록체인 기반 기술] 부인방지 (non-repudiation)
- [디자인패턴] 옵저버 패턴 (observer pattern)
- [디자인패턴] 팩토리 메소드 패턴 (Factory Method Pattern)
- loss, cost, objective function
- [ 공간 DB - 2 ] MySQL vs PostGIS (Postgresql) 범위 질의 성능 비교
- [SteemKR Discord] 스팀잇 태그 및 소모임 모니터링 도구 공개합니다.
- 스팀잇 댓글 모니터링 with Python
- [공간 DB-1] 위치 기반 서비스의 핵심 컴포넌트, 공간 DB (Spatial DataBase)
- [자동 보팅 봇 만들기-3] 화이트 리스트, 블랙 리스트! 키워드로 필터링하기 with Python
- 자동 보팅 딜레이 주기 with Python
- [STEEM PEACE] 최근 일련의 사태로 다운보팅을 받은 사람들을 위해..
- steem-python API 노드 변경법
- CPDAX 상장 예정 코인 3종 세트 : GTO, EOS, KNC 살펴보기
- steem API로 자동 보팅 봇 만들어보기 with Python
- 윈도우 10 환경에서 steem API 라이브러리 설치하기 with python
- 7 DAY BLACK&WHITE PHOTO CHALLENGE / @tmkor / DAY 7
- 7 DAY BLACK&WHITE PHOTO CHALLENGE / @tmkor / DAY 6