코인 플러그의 특허 중 많은 특허는 인증에 관련된 것이고 아래의 개념에 기초하고 있습니다.
개념1: A의 프라이빗키(Private Key)(개인키)로 암호화된 메시지는 A의 퍼블릭키(Public Key)(공개키)로만 복호화 할 수 있다.
개념2: A의 퍼블릭키(Public Key)(공개키)로 암호화된 메시지는 A의 프라이빗키(Private Key)(개인키)로만 복호화 할 수 있다.
A의 개인키는 A만이 알고 있는 정보이고, A의 공개키는 제3자에게 공개되는 공개된 키입니다.
아마 블록체인에 관심이 있으신 분들이라면 한번쯤은 들어보셨을 만한 이야기일 것 같습니다.
단순하게 한번 표현해보면, 아래의 그림과 같습니다.
개념1
A가 B에게 메시지를 보낸다고 했을 때 A의 개인키(프라이빗 키(private key))로 암호화된 메시지를 전송하게 되고, A의 공개키(퍼블릭키(public key))로 메시지가 복호화된다면, 이는 반드시 A에 의해 생성된 메시지임이 증명됩니다. A의 퍼블릭키는 공개된 정보이므로 제3자에 의해 접근 가능합니다.
이러한 원리는 A의 인증(전자서명)에 사용될 수 있습니다. 즉, A의 퍼블릭키로 복호화되는 메시지, 트랜잭션이면, A의 프라이빗 키로 서명된 것이므로 A가 아닌 누구도 생성할 수 없는 메시지인 것입니다.
개념2
B가 A에게 비밀 메시지를 전달하고 싶다면, A의 퍼블릭키를 이용하여 암호화된 메시지를 전송하게 되고, A는 프라이빗키를 이용하여 A만이 비밀 메시지를 확인할 수 있습니다.
이러한 원리는 보안이 필요한 정보를 전달하기 위해 사용될 수 있습니다. A에게만 전송하고자 하는 메시지가 있다면 A의 퍼블릭키로 암호화하여 전송한다면 A만이 프라이빗 키로 복호화하여 확인할 수 있습니다.
코인플러그가 2015년 12월 29일에 출원한 출원번호 10-2015-0188978 (등록번호 10-1772553, 등록일 2017년 8월 23일) “파일에 대한 공증 및 검증을 수행하는 방법 및 서버”는 ‘개념1: 개인키로 암호화된 메시지는 오직 공개키로만 복호화 할 수 있다.’ 라는 원리를 사용한 인증(전자서명) 방법에 대한 특허입니다.
서지사항
그림은 복잡하나 단순한 내용인데요,
등록된 청구항 제1항을 보면 파일에 대한 공증을 위해 아래와 같은 동작이 수행됩니다..
(a) 특정 파일에 대한 공증 요청이 획득되면, 서버가, hash 함수를 사용하여 특정 파일의 message digest를 생성하거나 생성하도록 지원하는 단계,
(b) 특정 사용자의 private key로 인코딩된 message digest가 획득되고, 특정 사용자의 private key 로 인코딩된 message digest를 특정 사용자의 public key로 디코딩한 정보(A)와 (a) 단계에서 생성된 message digest(B)가 일치하면, 서버가 특정 사용자의 private key 및 서버의 private key로 인코딩된 message digest의 해쉬값을 데이터베이스에 등록하거나 등록하도록 지원하는 단계
(c) 서버가 등록된 해쉬값의 데이터베이스 상의 위치 정보를 나타내는 transaction ID를 획득하는 단계
특정 파일에 대한 공증 요청은 사용자 단말에 의한 특정 사용자의 public key 전송을 포함하고,
(a) 단계 이후에,
(a1) 서버가 생성된 특정 파일의 message digest를 사용자 단말에 전달하는 단계를 더 포함하고,
(a2) 서버가 특정 사용자의 private key로 인코딩된 message digest, 특정 사용자의 public key 및 message digest를 획득하는 단계를 더 포함하는 것을 특징으로 하는 방법.
복잡한 것 같지만, “개념1: 개인키로 암호화된 메시지는 공개키로만 복호화되고, 전자서명의 역할을 한다.“
이것 하나만으로 기억하시면 됩니다.
단계 (a), (a1)에서는 서버는 공증 대상 파일에 대한 해시값(MESSAGE DIGEST(B))를 만들어 사용자에게 전달합니다.
파일이나, 미디어 파일 등은 해시값을 기반으로 변조 여부를 확인할 수 있습니다. 파일이변조되는 경우, 해시값이 변하기 때문입니다.
블록체인 상에도 직접 데이터가 올라가는 것이 아니라 데이터의 해시값이 올라가서 데이터의 변조 여부에 대한 확인이 가능합니다. 예를 들어, 파일 용량이 너무 커서 블록체인상에 파일을 넣어둘 수는 없는 경우, IPFS(Inter Planetary File System) 상에서 해당 파일을 해시화하고, 파일의 해시값을 블록체인 상에 기록합니다.
즉, 파일의 해시값의 변조 여부를 기반으로 파일의 변조 여부에 대해 확인 가능합니다.
복잡하게 설명하였는데, 단순하게 단계 (a)는 공증 대상 파일 변조 여부를 확인하기 위한 기준 해시값을 서버가 만드는 과정입니다.
단계 (a2)에서는 사용자는 공증 대상 파일의 해시값(MESSAGE DIGEST(A))을 사용자의 프라이빗 키(Private Key A)로 암호화하여 전송합니다. 사용자의 public key도 전송될 수 있습니다.
단계 (b)에서 서버는 프라이빗 키로 암호화된 MESSAGE DIGEST(A)를 사용자의 퍼블릭 키(Public Key A)로 복호화할 수 있습니다. 이 경우, 당연히 MESSAGE DIGEST(A)가 추출됩니다.
사용자의 퍼블릭 키(Public Key A)로 복호화되는 경우, 해당 정보를 사용자A가 전송하였음이 인증되어 사용자A의 전자서명 역할을 합니다.
위의 동작이 개인키로 암호화된 메시지가 공개키로만 복호화됨으로써 개인키가 전자서명의 역할을 하는 동작입니다.
서버는 최종적으로 사용자에 의해 변조가 있는지 여부를 확인하기 위해 기준이 되는 MESSAGE DIGEST(B)와 MESSAGE DIGEST(A)를 비교합니다. 이상이 없는 경우, 서버의 프라이빗 키(Private Key B)를 사용하여 서버의 전자서명도 추가하여 해당 정보를 데이터베이스에 저장합니다. 이로써 파일 공증 절차가 종료됩니다.
복잡해 보이지만, 실제 개념은 1) 파일을 해시화하고, 2) 해시값 비교하고, 2) 이상이 없는경우, 사용자의 프라이빗 키 및 서버의 프라이빗 키로 전자서명을 수행하여 공증을 마친다.
위의 3가지의 개념입니다.
아마 어떤 분들은 이런 것도 특허가 되느냐고 하시는 분들도 있으실 것 같은데요, 특허는 심사단계에서 등록이 되어도, 심판단계, 소송단계에서 무효가 될 수도 있으니, 심사 후 등록이 되었다고 완전한 등록은 아닙니다.
또한, 추후 본 특허의 권리 범위를 피해서 파일 공증 절차를 수행하고 싶다면, 본 특허의 특허 권리 범위를 회피하여 유사한 파일 공증 절차를 수행할 수 있는 침해 회피 방법에 대해서도 알아보도록 하겠습니다.
ECM특허법률사무소
김시우 변리사
swkim@ecmpatent.com
✅ @freeanimal, I gave you an upvote on your post!
If you are interested in claiming free Byteballs ($10+), just for having a Steem account, please visit this post for instructions: https://steemit.com/steem/@berniesanders/do-you-want-some-free-byteballs