KR102318947B1 - 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템 - Google Patents

개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템 Download PDF

Info

Publication number
KR102318947B1
KR102318947B1 KR1020200105458A KR20200105458A KR102318947B1 KR 102318947 B1 KR102318947 B1 KR 102318947B1 KR 1020200105458 A KR1020200105458 A KR 1020200105458A KR 20200105458 A KR20200105458 A KR 20200105458A KR 102318947 B1 KR102318947 B1 KR 102318947B1
Authority
KR
South Korea
Prior art keywords
pseudonym
transaction
user terminal
authentication server
public key
Prior art date
Application number
KR1020200105458A
Other languages
English (en)
Inventor
신지선
최서윤
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to KR1020200105458A priority Critical patent/KR102318947B1/ko
Application granted granted Critical
Publication of KR102318947B1 publication Critical patent/KR102318947B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템이 개시된다. 개시되는 일 실시예에 따른 개인 정보 보호 시스템은, 공개키인 가명(Pseudonym) 및 가명에 대한 비밀키로 구성된 복수 개의 가명 쌍을 생성하고, 가명에 대한 인증서 발급 요청을 전송하는 사용자 단말 및 인증서 발급 요청에 따라 사용자 단말을 인증하고, 블라인드 서명(Blind Signature) 방식으로 가명에 대한 인증서를 사용자 단말로 발급하는 인증 서버를 포함한다.

Description

개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템{METHOD FOR PROTECTING PRIVACY DATA, COMPUTING DEVICE AND SYSTEM FOR EXECUTING THE METHOD}
본 발명의 실시예는 블록체인 기반의 개인 정보 보호 기술과 관련된다.
분산 원장 기술인 블록체인(Blockchain)은 스마트 그리드(Smart Grid)와 같은 중요 인프라를 포함하는 다양한 분야에서 사용되고 있다. 최근, 스마트 그리드에서 개인 정보 보호를 다루는 연구가 진행되고 있는데, 그 중 하나가 스마트 그리드에서 블록체인 기술을 사용하여 무결성 및 익명성을 제공하는 개인 정보 보호 집계 시스템에 대한 연구이다.
이전의 연구에서는 블록체인에서 빠른 인증을 위해 블룸 필터(Bloom Filter)가 사용되었으며, 사용자 키 관리에 별도의 키 관리 센터가 사용되었다. 그러나, 키 관리 센터에 대한 의존도가 높기 때문에, 분산된 환경을 제공할 수 없었고 연결성(Linkability) 문제가 있었다. 또한, 블룸 필터를 통한 키 해지 및 업데이트 기능을 제공할 수 없다는 한계가 있다.
한국등록특허공보 제10-1321080호(2013.10.23)
개시되는 실시예는 개인 정보 보호가 요구되는 인터넷 및 디지털 서비스 환경에서 블라인드 서명 및 블록체인을 기반으로 분산 및 탈 중앙화된 개인 정보 보호 익명(Pseudonym) 아이디를 부여하기 위한 기법을 제공하기 위한 것이다.
개시되는 일 실시예에 따른 개인 정보 보호 시스템은, 공개키인 가명(Pseudonym) 및 상기 가명에 대한 비밀키로 구성된 복수 개의 가명 쌍을 생성하고, 상기 가명에 대한 인증서 발급 요청을 전송하는 사용자 단말; 및 상기 인증서 발급 요청에 따라 상기 사용자 단말을 인증하고, 블라인드 서명(Blind Signature) 방식으로 상기 가명에 대한 인증서를 상기 사용자 단말로 발급하는 인증 서버를 포함한다.
상기 사용자 단말은, 상기 복수 개의 가명 중 하나의 가명을 선택하고, 상기 인증 서버의 공개키로 상기 선택된 가명을 블라인드 처리하여 상기 인증 서버로 전송하고, 상기 인증 서버는, 상기 블라인드 처리된 가명에 대한 서명 값을 산출하여 상기 산출한 서명 값을 상기 사용자 단말로 전송할 수 있다.
상기 사용자 단말은, 상기 복수 개의 가명 각각에 대해 상기 인증 서버로부터 서명 값을 획득하고, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제1 쌍을 랜덤하게 생성하며, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 하나의 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하고, 상기 트랜잭션을 상기 제1 쌍의 비밀키로 서명하여 전송할 수 있다.
상기 사용자 단말은, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제2 쌍을 랜덤하게 생성하고, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 다른 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하며, 상기 트랜잭션을 상기 제2 쌍의 비밀키로 서명하여 전송할 수 있다.
상기 개인 정보 보호 시스템은, 블록체인 망을 구성하는 노드이고, 상기 사용자 단말로부터 상기 서명된 트랜잭션을 수신하는 마이너 노드를 더 포함할 수 있다.
상기 마이너 노드는, 상기 트랜잭션을 위한 공개키를 통해 상기 수신한 트랜잭션의 유효성을 확인하고, 상기 인증 서버의 공개키로 상기 트랜잭션에 포함된 서명 값의 유효성을 확인할 수 있다.
상기 마이너 노드는, 상기 수신한 트랜잭션에 기반하여 블록체인을 구성하는 각 블록을 생성하되, 상기 블록을 구성하는 트랜잭션에 포함된 가명(Pseudonym)을 기반으로 블룸 필터(Bloom Filter)를 생성할 수 있다.
상기 블록은, N(N은 2이상의 자연수)개의 트랜잭션을 포함하고, 상기 마이너 노드는, 첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 기반으로 블룸 필터를 생성하고, 생성한 블룸 필터를 상기 블록의 N번째 트랜잭션으로 할 수 있다.
상기 마이너 노드는, 해당 블록을 블록체인에 연결하는 경우, 상기 블록체인에서 이전 블록의 블룸 필터에 해당 블록의 첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 추가하여 해당 블록의 블룸 필터를 생성할 수 있다.
개시되는 일 실시예에 따른 개인 정보 보호 방법은, 사용자 단말에서, 공개키인 가명(Pseudonym) 및 상기 가명에 대한 비밀키로 구성된 복수 개의 가명 쌍을 생성하는 단계; 상기 사용자 단말에서, 상기 가명에 대한 인증서 발급 요청을 인증 서버로 전송하는 단계; 및 상기 사용자 단말에서, 상기 인증 서버로부터 블라인드 서명(Blind Signature) 방식으로 서명된 상기 가명에 대한 인증서를 수신하는 단계를 포함한다.
상기 인증서 발급 요청을 인증 서버로 전송하는 단계는, 상기 복수 개의 가명 중 하나의 가명을 선택하고, 상기 인증 서버의 공개키로 상기 선택된 가명을 블라인드 처리하여 상기 인증 서버로 전송하는 단계를 포함하고, 상기 인증서를 수신하는 단계는, 상기 인증 서버로부터 상기 블라인드 처리된 가명에 대한 서명 값을 수신하는 단계를 포함할 수 있다.
상기 사용자 단말은, 상기 복수 개의 가명 각각에 대해 상기 인증 서버로부터 서명 값을 획득하고, 상기 개인 정보 보호 방법은, 상기 사용자 단말에서, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제1 쌍을 랜덤하게 생성하는 단계; 상기 사용자 단말에서, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 하나의 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하는 단계; 및 상기 사용자 단말에서, 상기 트랜잭션을 상기 제1 쌍의 비밀키로 서명하여 전송하는 단계를 더 포함할 수 있다.
상기 개인 정보 보호 방법은, 상기 사용자 단말에서, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제2 쌍을 랜덤하게 생성하는 단계; 상기 사용자 단말에서, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 다른 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하는 단계; 및 상기 사용자 단말에서, 상기 트랜잭션을 상기 제2 쌍의 비밀키로 서명하여 전송하는 단계를 더 포함할 수 있다.
상기 개인 정보 보호 방법은, 마이너 노드에서, 상기 사용자 단말로부터 상기 서명된 트랜잭션을 수신하는 단계를 더 포함할 수 있다.
상기 개인 정보 보호 방법은, 상기 마이너 노드에서, 상기 트랜잭션을 위한 공개키를 통해 상기 수신한 트랜잭션의 유효성을 확인하는 단계; 및 상기 인증 서버의 공개키로 상기 트랜잭션에 포함된 서명 값의 유효성을 확인하는 단계를 더 포함할 수 있다.
상기 개인 정보 보호 방법은, 상기 마이너 노드에서, 상기 수신한 트랜잭션에 기반하여 블록체인을 구성하는 각 블록을 생성하되, 상기 블록을 구성하는 트랜잭션에 포함된 가명(Pseudonym)을 기반으로 블룸 필터(Bloom Filter)를 생성하는 단계를 더 포함할 수 있다.
상기 블록은, N(N은 2이상의 자연수)개의 트랜잭션을 포함하고, 상기 블룸 필터을 생성하는 단계는, 상기 마이너 노드에서, 첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 기반으로 블룸 필터를 생성하고, 생성한 블룸 필터를 상기 블록의 N번째 트랜잭션으로 할 수 있다.
상기 블룸 필터을 생성하는 단계는, 상기 마이너 노드에서, 해당 블록을 블록체인에 연결하는 경우, 상기 블록체인에서 이전 블록의 블룸 필터에 해당 블록의 첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 추가하여 해당 블록의 블룸 필터를 생성할 수 있다.
개시되는 일 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서들; 메모리; 및 하나 이상의 프로그램들을 포함하고, 상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며, 상기 하나 이상의 프로그램들은, 공개키인 가명(Pseudonym) 및 상기 가명에 대한 비밀키로 구성된 복수 개의 가명 쌍을 생성하기 위한 명령; 상기 가명에 대한 인증서 발급 요청을 인증 서버로 전송하기 위한 명령; 및 상기 인증 서버로부터 블라인드 서명(Blind Signature) 방식으로 서명된 상기 가명에 대한 인증서를 수신하기 위한 명령을 포함한다.
상기 인증서 발급 요청을 인증 서버로 전송하기 위한 명령은, 상기 복수 개의 가명 중 하나의 가명을 선택하고, 상기 인증 서버의 공개키로 상기 선택된 가명을 블라인드 처리하여 상기 인증 서버로 전송하기 위한 명령을 포함하고, 상기 인증서를 수신하기 위한 명령은, 상기 인증 서버로부터 상기 블라인드 처리된 가명에 대한 서명 값을 수신하기 위한 명령을 포함할 수 있다.
상기 컴퓨팅 장치는, 상기 복수 개의 가명 각각에 대해 상기 인증 서버로부터 서명 값을 획득하고, 상기 하나 이상의 프로그램들은, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제1 쌍을 랜덤하게 생성하기 위한 명령; 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 하나의 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하기 위한 명령; 및 상기 트랜잭션을 상기 제1 쌍의 비밀키로 서명하여 전송하기 위한 명령을 더 포함할 수 있다.
상기 하나 이상의 프로그램들은, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제2 쌍을 랜덤하게 생성하기 위한 명령; 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 다른 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하기 위한 명령; 및 상기 트랜잭션을 상기 제2 쌍의 비밀키로 서명하여 전송하기 위한 명령을 더 포함할 수 있다.
개시되는 실시예에 의하면, 사용자 단말에서 자체적으로 가명 및 그에 대한 비밀키를 생성하고, 인증 서버로부터 블라인드 서명 방식을 통해 가명에 대한 서명 값을 획득함으로써, 인증 서버에 대한 의존도를 낮출 수 있고 인증 서버라도 사용자와 가명 간의 링크를 찾을 수 없게 된다(즉, 사용자와 가명 간 연결 해제 기능을 제공하게 됨).
그리고, 사용자 단말이 자신을 인증하면서 인증 서버로부터 각 가명에 대한 서명 값을 받기 때문에, 익명성(Anonymity)과 함께 책무성(Accountability)도 제공할 수 있게 된다.
또한, 가명 및 가명에 대한 서명 값을 블록체인에 게시할 때마다, 사용자 단말이 랜덤하게 생성한 공개키(tpk)를 사용하여 게시하므로 익명성이 유지되며, 가명 및 가명에 대한 서명 값의 쌍들이 한 사용자에게 속한 그룹이라는 정보를 유추할 수 없게 된다(즉, 동일한 사용자의 가명들 간의 연결 해제 기능을 제공하게 됨).
또한, 블록체인 망의 마이너 노드에서 블록에 대해 블룸 필터를 생성하고 블록체인의 각 블록에서 이전 블록의 블룸 필터를 누적시킴으로써, 탈 중앙화된(Decentralized) 방식으로 블룸 필터를 생성할 수 있으며, 멤버쉽 체크를 용이하게 수행할 수 있게 된다. 또한, 블룸 필터를 통해 사용자 멤버쉽의 삭제 및 추가 기능을 제공할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 개인 정보 보호 시스템을 나타낸 도면
도 2는 개시되는 일 실시예에서 블록에 블룸 필터를 생성하는 상태를 나타낸 도면
도 3은 본 발명의 일 실시예에 따른 블록체인 기반의 개인 정보 보호 방법을 나타낸 흐름도
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다. 특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 개인 정보 보호 시스템을 나타낸 도면이다.
도 1을 참조하면, 블록체인 기반의 개인 정보 보호 시스템(100)은 사용자 단말(102), 인증 서버(104), 및 마이너 노드(106)를 포함할 수 있다. 사용자 단말(102), 인증 서버(104), 및 마이너 노드(106)는 각각 통신 네트워크(150)를 통해 상호 통신 가능하게 연결된다.
블록체인 기반의 개인 정보 보호 시스템(100)은 스마트 그리드, 은행, 병원, 전자 투표, 전자 게시판, 및 전자 설문 조사 등과 같은 분야에 적용할 수 있다. 그러나, 그 적용 분야가 이에 한정되는 것은 아니며 그 이외의 개인 정보를 다루는 다양한 분야에 적용할 수 있음은 물론이다.
몇몇 실시예들에서, 통신 네트워크(150)는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wide area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.
사용자 단말(102)은 사용자가 블록체인에서 사용하기 위한 복수 개의 가명(Pseudonym) 쌍을 생성할 수 있다. 예시적인 실시예에서, 사용자 단말(102)은 공개키(publick key : pk) 및 그에 대한 비밀키(secret key : sk)로 구성된 복수 개의 가명 쌍을 생성할 수 있다. 여기서, 공개키(pk)는 사용자의 가명(Pseudonym)으로 사용될 수 있다. 사용자 단말(102)은 복수 개의 가명 쌍(공개키 및 비밀키의 쌍)을 랜덤하게 생성할 수 있다.
사용자 단말(102)은 인증 서버(104)를 통해 가명(Pseudonym)에 대한 인증서를 발급 받을 수 있다. 사용자 단말(102)은 가명에 대한 인증서 발급 요청을 인증 서버(104)로 전송할 수 있다. 예시적인 실시예에서, 인증 서버(104)는 블라인드 서명(Blind Signature) 방식으로 가명(Pseudonym)에 대한 인증서를 발급할 수 있다. 사용자 단말(102)은 각 가명(Pseudonym)에 대해 인증 서버(104)로부터 서명 값을 획득할 수 있다.
사용자 단말(102)은 가명(Pseudonym) 및 가명에 대한 서명 값을 블록체인에 게시할 수 있다. 구체적으로, 사용자 단말(102)은 가명 및 가명에 대한 서명 값에 대해 트랜잭션을 생성하여 블록체인 망의 마이너 노드(106)로 송신할 수 있다. 사용자 단말(102)은 가명 및 가명에 대한 서명 값의 각 쌍에 대해 트랜잭션을 위한 공개키 및 비밀키를 각각 생성한 후, 생성한 가명 및 가명에 대한 서명 값의 쌍을 포함하는 트랜잭션을 비밀키로 서명하여 블록체인 망의 마이너 노드(106)로 전송할 수 있다.
마이너 노드(106)는 블록체인 망을 구성하는 노드 중 하나를 의미할 수 있다. 블록체인 망은 복수 개의 노드를 포함하며, 복수 개의 노드 중 하나 이상이 마이너 노드(106)로 동작할 수 있다.
마이너 노드(106)는 사용자 단말(102)로부터 트랜잭션을 수신할 수 있다. 예시적인 실시예에서, 마이너 노드(106)는 비밀키(tsk)로 서명된 가명 및 가명에 대한 서명 값의 쌍을 포함하는 트랜잭션을 수신할 수 있다. 마이너 노드(106)는 비밀키(tsk)에 대응하는 공개키(tpk)를 통해 트랜잭션의 유효성을 확인할 수 있다. 또한, 마이너 노드(106)는 인증 서버(104)의 공개키(cvk)로 가명의 서명 값(σi)의 유효성을 확인할 수 있다.
마이너 노드(106)는 블록체인 망에서 트랜잭션들을 수집하여 블록을 생성할 수 있다. 마이너 노드(106)는 생성한 블록을 블록체인에 연결할 수 있다. 예시적인 실시예에서, 마이너 노드(106)가 수집하는 트랜잭션에는 각 사용자(즉, 블록체인 망을 이용하는 사용자)의 가명 및 가명에 대한 서명 값의 쌍을 포함할 수 있으나, 이에 한정되는 것은 아니다.
마이너 노드(106)는 블록을 구성하는 각 트랜잭션에 포함된 가명(Pseudonym)을 이용하여 블룸 필터(Bloom Filter)를 생성할 수 있다. 즉, 마이너 노드(106)는 각 트랜잭션에 포함된 가명을 블룸 필터의 멤버(Member)로 하여 블룸 필터를 생성할 수 있다. 블룸 필터(Bloom Filter)는 소정 멤버가 집합에 속하는지 여부를 검사하기 위해 사용되는 확률적 자료 구조를 의미할 수 있다.
마이너 노드(106)는 각 트랜잭션에 포함된 가명에 대해 기 설정된 해쉬 함수를 적용하여 해쉬 값을 산출하고, 산출한 각 해쉬 값을 기반으로 블룸 필터를 생성할 수 있다. 마이너 노드(106)는 해당 블록을 구성하는 각 트랜잭션에 포함된 가명을 기반으로 생성한 블룸 필터를 해당 블록의 마지막 트랜잭션으로 할 수 있다. 예를 들어, 블록이 6개의 트랜잭션으로 구성되는 경우, 마이너 노드(106)는 5개의 트랜잭션에 포함된 가명을 기반으로 블룸 필터를 생성하고, 생성한 블룸 필터를 6번째 트랜잭션으로 할 수 있다.
마이너 노드(106)는 블록체인에 블록을 연결하는 경우, 블록체인의 이전 블록에 포함된 블룸 필터에 해당 블록의 트랜잭션에 포함된 가명을 추가하여 블룸 필터를 생성하고, 생성한 블룸 필터를 해당 블록의 마지막 트랜잭션으로 할 수 있다. 이에 대해 도 2를 참조하여 설명하기로 한다.
도 2는 개시되는 일 실시예에서 블록에 블룸 필터를 생성하는 상태를 나타낸 도면이다. 도 2를 참조하면, 블록체인의 첫 번째 블록(S1)이 6개의 트랜잭션으로 구성되고, 마지막 트랜잭션은 5개의 트랜잭션(T1 ~ T5)에 포함된 가명을 기반으로 생성된 제1 블룸 필터(BF1)일 수 있다.
여기서, 두 번째 블록(S2)을 첫 번째 블록(S1)에 연결하는 경우, 마이너 노드(106)는 첫 번째 블록(S1)의 제1 블룸 필터(BF1)에 두 번째 블록(S2)의 5개의 트랜잭션(T1 ~ T5)에 포함된 가명을 추가하여 제2 블룸 필터(BF2)를 생성할 수 있다. 이때, 제2 블룸 필터(BF2)는 두 번째 블록(S2)의 마지막 트랜잭션일 수 있다.
그리고, 세 번째 블록(S3)을 두 번째 블록(S2)에 연결하는 경우, 마이너 노드(106)는 두 번째 블록(S2)의 제2 블룸 필터(BF2)에 세 번째 블록(S3)의 5개의 트랜잭션(T1 ~ T5)에 포함된 가명을 추가하여 제3 블룸 필터(BF3)를 생성할 수 있다. 이때, 제3 블룸 필터(BF3)는 세 번째 블록(S3)의 마지막 트랜잭션일 수 있다.
이러한 방식으로 블룸 필터를 생성하면, 블록체인에서 각 블록의 블룸 필터는 이전 블록의 블룸 필터가 누적된 값을 가지게 된다. 이 경우, 블록체인의 마지막 블록의 블룸 필터는 블록체인에 포함된 각 트랜잭션들에 포함된 가명들을 멤버로 하게 되므로, 멤버쉽 체크가 필요한 경우 블록체인의 마지막 블록의 블룸 필터를 이용하여 용이하게 수행할 수 있게 된다.
즉, 블록체인 내에서 소정 사용자에 대한 멤버쉽 체크가 필요한 경우, 블록체인의 마지막 블록의 블룸 필터를 조회하고, 소정 사용자의 가명(Pseudonym)에 대해 블룸 필터가 예스(Yes) 또는 노(No)를 보고하는지를 확인하여 멤버쉽 체크를 진행할 수 있다. 이때, 인증 서버(104)의 공개키(cvk)를 이용하여 해당 가명의 서명 값을 추가 검증할 수도 있다.
여기서, 각 블록의 블룸 필터는 이전 블록의 블룸 필터가 누적된 상태이므로, 어떤 시점에서는 블룸 필터의 긍정 오류(False Positive)가 무시할 수 없는 수준에 도달할 수 있게 된다. 이에, 마이너 노드(106)는 블룸 필터의 긍정 오류가 기 설정된 임계 값을 초과하는 경우, 블룸 필터의 크기를 키울 수 있다.
구체적으로, 마이너 노드(106)는 소정 블록에 대해 블룸 필터를 생성하는 경우, 이전 블록의 블룸 필터를 조회하여 긍정 오류(False Positive)를 산출할 수 있다. 여기서, 긍정 오류(FP)는 하기의 수학식을 통해 산출할 수 있다.
(수학식)
Figure 112020088154901-pat00001
여기서, M은 현재 블룸 필터의 크기를 나타내고, l은 블룸 필터를 위한 해쉬 함수의 수를 나타내며, N은 블룸 필터의 축적된 수를 나타낸다.
마이너 노드(106)는 산출된 긍정 오류(FP)가 기 설정된 임계 값을 초과하는 경우, 블룸 필터의 크기를 리사이징(Resizing) 할 수 있다. 즉, 블룸 필터의 크기를 현재 블룸 필터의 크기보다 크게 리사이징 할 수 있다. 이때, 마이너 노드(106)는 블록체인의 모든 트랜잭션(즉, 첫 번째 블록에서 현재 블록에 포함된 모든 트랜잭션)들에 포함된 가명들을 사용하여 블룸 필터를 재구성할 수 있다. 블룸 필터의 크기는 블룸 필터의 크기의 성장 속도에 따라 조정될 수 있다.
여기서는, 블룸 필터의 멤버로 사용자의 가명(Pseudonym)이 사용되었으나, 이에 한정되는 것은 아니며 그 이외의 사용자 관련 정보(예를 들어, 사용자 아이디, 사용자의 공개키, 사용자 단말의 식별 번호(예를 들어, MAC Address, IP 등))이 사용될 수 있다. 이 경우, 사용자 단말(102)은 트랜잭션을 위한 비밀키(tsk)로 사용자 관련 정보를 서명하여 마이너 노드(106)로 전송할 수 있다.
한편, 개시되는 실시예에서는 블룸 필터로 카운팅 블룸 필터(Counting Bloom Filter)를 사용할 수도 있다. 일반적인 블룸 필터는 멤버의 삭제가 불가능하나, 카운팅 블룸 필터는 멤버의 삭제가 가능하다.
예시적인 실시예에서, 사용자 단말(102)은 특정 가명(pk')의 삭제를 마이너 노드(106)에 요청할 수 있다. 이를 위해, 블록체인의 트랜잭션은 멤버의 삽입 요청인지 삭제 요청인지를 나타내는 필드를 포함할 수 있다. 마이너 노드(106)는 트랜잭션의 해당 필드에서 멤버의 삽입 요청인지 삭제 요청인지를 확인하여 삭제 요청인 경우 해당 셀에서 해당 멤버의 해쉬값에 대응하는 카운트를 줄일 수 있다. 만약, 멤버의 삽입 요청인 경우, 마이너 노드(106)는 해당 멤버의 해쉬 값에 해당하는 각 셀의 카운트를 증가시킬 수 있다.
또한, 개시되는 실시예에서는 취소된 가명(Revoked Psedonym)을 위한 블룸 필터를 별도로 사용할 수도 있다. 이 경우, 2개의 블룸 필터가 존재할 수 있다. 즉, 유효한 가명을 위한 블룸 필터(유효 멤버 블룸 필터)와 취소된 가명을 위한 블룸 필터(취소 멤버 블룸 필터)가 있을 수 있다.
사용자 단말(102)은 특정 가명(pk')에 대해 삭제 또는 추가를 마이너 노드(106)에 요청할 수 있다. 마이너 노드(106)는 트랜잭션에서 멤버의 삽입 요청인지 삭제 요청인지를 나타내는 필드를 확인하여 삭제 요청이면 해당 가명을 취소된 가명을 위한 블룸 필터(취소 멤버 블룸 필터)에 추가하고, 삽입 요청이면 해당 가명을 유효한 가명을 위한 블룸 필터(유효 멤버 블룸 필터)에 추가할 수 있다.
개시되는 실시예에 의하면, 블록체인 망의 마이너 노드(106)에서 블록에 대해 블룸 필터를 생성하고 블록체인의 각 블록에서 이전 블록의 블룸 필터를 누적시킴으로써, 탈 중앙화된(Decentralized) 방식으로 블룸 필터를 생성할 수 있으며, 멤버쉽 체크를 용이하게 수행할 수 있게 된다. 또한, 블룸 필터를 통해 사용자 멤버쉽의 삭제 및 추가 기능을 제공할 수 있게 된다.
도 3은 본 발명의 일 실시예에 따른 블록체인 기반의 개인 정보 보호 방법을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 3을 참조하면, 사용자 단말(102)은 공개키(publick key : pk) 및 그에 대한 비밀키(secret key : sk)로 구성된 복수 개의 가명 쌍을 생성한다(S 101). 예시적인 실시예에서, 공개키(pk)는 사용자 관련 정보로서, 예를 들어, 사용자의 가명(Pseudonym)일 수 있다.
다음으로, 사용자 단말(102)은 인증 서버(104)에 접속한다(S 103). 사용자 단말(102)은 복수 개의 가명(Pseudonym)에 대한 인증서를 발급받기 위해 인증서버(104)에 접속할 수 있다.
다음으로, 인증 서버(104)는 사용자 단말(102)을 인증한다(S 105). 사용자 단말(102)의 인증은 기 공지된 다양한 인증 기술을 통해 구현할 수 있는 바, 이에 대한 자세한 설명은 생략하기로 한다.
여기서, 사용자 단말(102)과 인증 서버(104)는 사용자 단말(102)에 대해 n(n은 2 이상의 자연수)개의 가명(Pseudonym)에 대한 인증서를 발급하기로 약정된 상태일 수 있다. 이 경우, 사용자 단말(102)은 n개의 가명(즉, 공개키) 및 그에 대한 비밀키의 쌍을 각각 생성할 수 있다.
다음으로, 사용자 단말(102)은 n개의 가명(Pseudonym) 중 하나의 가명(예를 들어, i번째 가명)을 선택하고, 인증 서버(104)의 공개키(cvk)로 선택된 가명(pki)을 블라인드 처리하여 인증 서버(104)로 전송한다(S 107). 즉, 사용자 단말(102)은 인증 서버(104)의 공개키(cvk)로 블라인드 처리된 가명(U(cvk, pki))을 인증 서버(104)로 전송할 수 있다.
다음으로, 인증 서버(104)는 블라인드 처리된 가명(U(cvk, pki))에 대한 서명 값(σi)을 사용자 단말(102)로 전송한다(S 109). 여기서, 인증 서버(104)는 기 설정된 블라인드 서명 알고리즘 및 인증 서버(104)의 비밀키(csk)를 이용하여 블라인드 처리된 가명(U(cvk, pki))에 대한 서명 값(σi)을 산출할 수 있다.
한편, 사용자 단말(102) 및 인증 서버(104)는 n개의 가명(Pseudonym) 각각에 대해 단계 S 107 및 단계 S 109를 반복 수행할 수 있다. 이 경우, 사용자 단말(102)은 각 가명에 대해 서명 값을 획득할 수 있게 된다.
여기서, 인증 서버(104)는 블라인드 서명 방식으로 서명을 하였으므로, 서명 값을 준 대상은 알 수 있지만 어떤 메시지(즉, 가명)를 서명하였는지는 알 수 없기 때문에, 인증 서버(104)라도 사용자와 가명 간의 링크를 알 수 없게 된다. 그리고, 사용자 단말(102)을 인증한 후 가명에 대한 서명 값을 받을 수 있기 때문에, 이미 정해진 n개를 초과하여 가명을 생성 및 사용할 수 없게 된다.
다음으로, 사용자 단말(102)은 블록체인의 트랜잭션을 위한 한 쌍의 공개키(tpk) 및 비밀키(tsk)를 생성한다(S 111). 사용자 단말(102)은 트랜잭션을 위한 한 쌍의 공개키(tpk) 및 비밀키(tsk)를 랜덤하게 생성할 수 있다. 여기서, 트랜잭션을 위한 한 쌍의 공개키(tpk) 및 비밀키(tsk)는 복수 개의 가명(Pseudonym) 쌍과는 무관하게 독립적으로 생성될 수 있다. 이때, 공개키(tpk)는 블록체인 망에 공유될 수 있다.
다음으로, 사용자 단말(102)은 n개의 가명 및 가명에 대한 서명 값의 쌍들 중 하나의 쌍을 선택하고, 선택한 가명 및 가명에 대한 서명 값의 쌍(pki, σi)을 포함하는 트랜잭션을 생성한다(S 113).
다음으로, 사용자 단말(102)은 가명 및 가명에 대한 서명 값의 쌍(pki, σi)을 포함하는 트랜잭션을 비밀키(tsk)로 서명하여 블록체인의 마이너 노드(106)로 전송한다(S 115).
사용자 단말(102)은 다시 한 쌍의 공개키(tpk) 및 비밀키(tsk)를 랜덤하게 생성하고, n개의 가명 및 가명에 대한 서명 값의 쌍들 중 또 다른 하나의 쌍을 선택하여 트랜잭션을 생성한 후, 생성한 트랜잭션을 새로 생성한 비밀키(tsk)로 서명하여 블록체인의 마이너 노드(106)로 전송할 수 있다. 이러한 방식을 통해, 사용자 단말(102)은 n개의 가명 및 가명에 대한 서명 값을 블록체인에 등록할 수 있다.
여기서, n개의 가명 및 가명에 대한 서명 값을 블록체인에 게시할 때, 사용자 단말(102)이 랜덤하게 생성한 공개키(tpk)를 사용하여 게시하므로 익명성이 유지되며, 각 가명 및 가명에 대한 서명 값을 게시할 때마다 새로운 공개키(tpk)를 생성하여 게시하므로 가명 및 가명에 대한 서명 값의 쌍들이 한 사용자에게 속한 그룹이라는 정보를 유추할 수 없게 된다.
다음으로, 마이너 노드(106)는 비밀키(tsk)에 대응하는 공개키(tpk)를 통해 트랜잭션의 유효성을 확인하고(S 117), 인증 서버(104)의 공개키(cvk)로 가명의 서명 값(σi)의 유효성을 확인한다(S 119).
개시되는 실시예에 의하면, 사용자 단말(102)에서 자체적으로 가명 및 그에 대한 비밀키를 생성하고, 인증 서버(104)로부터 블라인드 서명 방식을 통해 가명에 대한 서명 값을 획득함으로써, 인증 서버(104)에 대한 의존도를 낮출 수 있고 인증 서버(104)라도 사용자와 가명 간의 링크를 찾을 수 없게 된다(즉, 사용자와 가명 간 연결 해제 기능을 제공하게 됨).
그리고, 사용자 단말(102)이 자신을 인증하면서 인증 서버(104)로부터 각 가명에 대한 서명 값을 받기 때문에, 익명성(Anonymity)과 함께 책무성(Accountability)도 제공할 수 있게 된다.
또한, 가명 및 가명에 대한 서명 값을 블록체인에 게시할 때마다, 사용자 단말(102)이 랜덤하게 생성한 공개키(tpk)를 사용하여 게시하므로 익명성이 유지되며, 가명 및 가명에 대한 서명 값의 쌍들이 한 사용자에게 속한 그룹이라는 정보를 유추할 수 없게 된다(즉, 동일한 사용자의 가명들 간의 연결 해제 기능을 제공하게 됨).
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 사용자 단말(102)일 수 있다. 또한, 컴퓨팅 장치(12)는 인증 서버(104)일 수 있다. 또한, 컴퓨팅 장치(12)는 마이너 노드(106)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 블록체인 기반의 개인 정보 보호 시스템
102 : 사용자 단말
104 : 인증 서버
106 : 마이너 노드

Claims (22)

  1. 공개키인 가명(Pseudonym) 및 상기 가명에 대한 비밀키로 구성된 복수 개의 가명 쌍을 생성하고, 상기 가명에 대한 인증서 발급 요청을 전송하는 사용자 단말; 및
    상기 인증서 발급 요청에 따라 상기 사용자 단말을 인증하고, 블라인드 서명(Blind Signature) 방식으로 상기 가명에 대한 인증서를 상기 사용자 단말로 발급하는 인증 서버를 포함하며,
    상기 사용자 단말은, 상기 복수 개의 가명 중 하나의 가명을 선택하고, 상기 인증 서버의 공개키로 상기 선택된 가명을 블라인드 처리하여 상기 인증 서버로 전송하고,
    상기 인증 서버는, 상기 블라인드 처리된 가명에 대한 서명 값을 산출하여 상기 산출한 서명 값을 상기 사용자 단말로 전송하며,
    상기 사용자 단말은,
    상기 복수 개의 가명 각각에 대해 상기 인증 서버로부터 서명 값을 획득하고, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제1 쌍을 랜덤하게 생성하며, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 하나의 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하고, 상기 트랜잭션을 상기 제1 쌍의 비밀키로 서명하여 전송하는, 개인 정보 보호 시스템.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 사용자 단말은,
    블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제2 쌍을 랜덤하게 생성하고, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 다른 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하며, 상기 트랜잭션을 상기 제2 쌍의 비밀키로 서명하여 전송하는, 개인 정보 보호 시스템.
  5. 청구항 4에 있어서,
    상기 개인 정보 보호 시스템은,
    블록체인 망을 구성하는 노드이고, 상기 사용자 단말로부터 상기 서명된 트랜잭션을 수신하는 마이너 노드를 더 포함하는, 개인 정보 보호 시스템.
  6. 청구항 5에 있어서,
    상기 마이너 노드는,
    상기 트랜잭션을 위한 공개키를 통해 상기 수신한 트랜잭션의 유효성을 확인하고, 상기 인증 서버의 공개키로 상기 트랜잭션에 포함된 서명 값의 유효성을 확인하는, 개인 정보 보호 시스템.
  7. 청구항 5에 있어서,
    상기 마이너 노드는,
    상기 수신한 트랜잭션에 기반하여 블록체인을 구성하는 각 블록을 생성하되, 상기 블록을 구성하는 트랜잭션에 포함된 가명(Pseudonym)을 기반으로 블룸 필터(Bloom Filter)를 생성하는, 개인 정보 보호 시스템.
  8. 청구항 7에 있어서,
    상기 블록은, N(N은 2이상의 자연수)개의 트랜잭션을 포함하고,
    상기 마이너 노드는,
    첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 기반으로 블룸 필터를 생성하고, 생성한 블룸 필터를 상기 블록의 N번째 트랜잭션으로 하는, 개인 정보 보호 시스템.
  9. 청구항 8에 있어서,
    상기 마이너 노드는,
    해당 블록을 블록체인에 연결하는 경우, 상기 블록체인에서 이전 블록의 블룸 필터에 해당 블록의 첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 추가하여 해당 블록의 블룸 필터를 생성하는, 개인 정보 보호 시스템.
  10. 사용자 단말에서, 공개키인 가명(Pseudonym) 및 상기 가명에 대한 비밀키로 구성된 복수 개의 가명 쌍을 생성하는 단계;
    상기 사용자 단말에서, 상기 가명에 대한 인증서 발급 요청을 인증 서버로 전송하는 단계; 및
    상기 사용자 단말에서, 상기 인증 서버로부터 블라인드 서명(Blind Signature) 방식으로 서명된 상기 가명에 대한 인증서를 수신하는 단계를 포함하며,
    상기 인증서 발급 요청을 인증 서버로 전송하는 단계는, 상기 복수 개의 가명 중 하나의 가명을 선택하고, 상기 인증 서버의 공개키로 상기 선택된 가명을 블라인드 처리하여 상기 인증 서버로 전송하는 단계를 포함하고,
    상기 인증서를 수신하는 단계는, 상기 인증 서버로부터 상기 블라인드 처리된 가명에 대한 서명 값을 수신하는 단계를 포함하며,
    상기 사용자 단말은, 상기 복수 개의 가명 각각에 대해 상기 인증 서버로부터 서명 값을 획득하고,
    상기 개인 정보 보호 방법은,
    상기 사용자 단말에서, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제1 쌍을 랜덤하게 생성하는 단계;
    상기 사용자 단말에서, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 하나의 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하는 단계; 및
    상기 사용자 단말에서, 상기 트랜잭션을 상기 제1 쌍의 비밀키로 서명하여 전송하는 단계를 더 포함하는, 개인 정보 보호 방법.
  11. 삭제
  12. 삭제
  13. 청구항 10에 있어서,
    상기 개인 정보 보호 방법은,
    상기 사용자 단말에서, 블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제2 쌍을 랜덤하게 생성하는 단계;
    상기 사용자 단말에서, 상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 다른 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하는 단계; 및
    상기 사용자 단말에서, 상기 트랜잭션을 상기 제2 쌍의 비밀키로 서명하여 전송하는 단계를 더 포함하는, 개인 정보 보호 방법.
  14. 청구항 13에 있어서,
    상기 개인 정보 보호 방법은,
    마이너 노드에서, 상기 사용자 단말로부터 상기 서명된 트랜잭션을 수신하는 단계를 더 포함하는, 개인 정보 보호 방법.
  15. 청구항 14에 있어서,
    상기 개인 정보 보호 방법은,
    상기 마이너 노드에서,
    상기 트랜잭션을 위한 공개키를 통해 상기 수신한 트랜잭션의 유효성을 확인하는 단계; 및
    상기 인증 서버의 공개키로 상기 트랜잭션에 포함된 서명 값의 유효성을 확인하는 단계를 더 포함하는, 개인 정보 보호 방법.
  16. 청구항 15에 있어서,
    상기 개인 정보 보호 방법은,
    상기 마이너 노드에서,
    상기 수신한 트랜잭션에 기반하여 블록체인을 구성하는 각 블록을 생성하되, 상기 블록을 구성하는 트랜잭션에 포함된 가명(Pseudonym)을 기반으로 블룸 필터(Bloom Filter)를 생성하는 단계를 더 포함하는, 개인 정보 보호 방법.
  17. 청구항 16에 있어서,
    상기 블록은, N(N은 2이상의 자연수)개의 트랜잭션을 포함하고,
    상기 블룸 필터을 생성하는 단계는,
    상기 마이너 노드에서, 첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 기반으로 블룸 필터를 생성하고, 생성한 블룸 필터를 상기 블록의 N번째 트랜잭션으로 하는, 개인 정보 보호 방법.
  18. 청구항 17에 있어서,
    상기 블룸 필터을 생성하는 단계는,
    상기 마이너 노드에서, 해당 블록을 블록체인에 연결하는 경우, 상기 블록체인에서 이전 블록의 블룸 필터에 해당 블록의 첫 번째 트랜잭션부터 N-1번째 트랜잭션에 포함된 가명을 추가하여 해당 블록의 블룸 필터를 생성하는, 개인 정보 보호 방법.
  19. 하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하고,
    상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
    상기 하나 이상의 프로그램들은,
    공개키인 가명(Pseudonym) 및 상기 가명에 대한 비밀키로 구성된 복수 개의 가명 쌍을 생성하기 위한 명령;
    상기 가명에 대한 인증서 발급 요청을 인증 서버로 전송하기 위한 명령; 및
    상기 인증 서버로부터 블라인드 서명(Blind Signature) 방식으로 서명된 상기 가명에 대한 인증서를 수신하기 위한 명령을 포함하며,
    상기 인증서 발급 요청을 인증 서버로 전송하기 위한 명령은, 상기 복수 개의 가명 중 하나의 가명을 선택하고, 상기 인증 서버의 공개키로 상기 선택된 가명을 블라인드 처리하여 상기 인증 서버로 전송하기 위한 명령을 포함하고,
    상기 인증서를 수신하기 위한 명령은, 상기 인증 서버로부터 상기 블라인드 처리된 가명에 대한 서명 값을 수신하기 위한 명령을 포함하며,
    상기 컴퓨팅 장치는, 상기 복수 개의 가명 각각에 대해 상기 인증 서버로부터 서명 값을 획득하고,
    상기 하나 이상의 프로그램들은,
    블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제1 쌍을 랜덤하게 생성하기 위한 명령;
    상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 하나의 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하기 위한 명령; 및
    상기 트랜잭션을 상기 제1 쌍의 비밀키로 서명하여 전송하기 위한 명령을 더 포함하는, 컴퓨팅 장치.
  20. 삭제
  21. 삭제
  22. 청구항 19에 있어서,
    상기 하나 이상의 프로그램들은,
    블록체인의 트랜잭션을 위한 공개키 및 상기 공개키에 대한 비밀키로 구성된 제2 쌍을 랜덤하게 생성하기 위한 명령;
    상기 가명 및 상기 가명에 대한 서명 값으로 구성된 복수 개의 쌍 중 다른 쌍을 선택하여 선택된 가명 및 가명에 대한 서명 값을 포함하는 트랜잭션을 생성하기 위한 명령; 및
    상기 트랜잭션을 상기 제2 쌍의 비밀키로 서명하여 전송하기 위한 명령을 더 포함하는, 컴퓨팅 장치.
KR1020200105458A 2020-08-21 2020-08-21 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템 KR102318947B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200105458A KR102318947B1 (ko) 2020-08-21 2020-08-21 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200105458A KR102318947B1 (ko) 2020-08-21 2020-08-21 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템

Publications (1)

Publication Number Publication Date
KR102318947B1 true KR102318947B1 (ko) 2021-10-27

Family

ID=78287199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200105458A KR102318947B1 (ko) 2020-08-21 2020-08-21 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템

Country Status (1)

Country Link
KR (1) KR102318947B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116566623A (zh) * 2023-07-05 2023-08-08 北京天润基业科技发展股份有限公司 一种获取匿名数字证书的方法、系统及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101321080B1 (ko) 2012-06-22 2013-10-23 순천향대학교 산학협력단 Vanet 환경에서 블룸필터를 이용한 메시지 일괄검증 방법
KR20170141976A (ko) * 2016-06-16 2017-12-27 주식회사 티모넷 전자 서명 서비스 시스템 및 방법
KR101952329B1 (ko) * 2018-03-22 2019-02-26 주식회사 스트리미 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체
KR20200027500A (ko) * 2017-07-13 2020-03-12 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 디바이스 익명성을 제공하는 키 증명문 생성
JP2020522919A (ja) * 2017-06-07 2020-07-30 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーン・ネットワークにおいてトランザクションを管理するためのコンピュータ実装システム及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101321080B1 (ko) 2012-06-22 2013-10-23 순천향대학교 산학협력단 Vanet 환경에서 블룸필터를 이용한 메시지 일괄검증 방법
KR20170141976A (ko) * 2016-06-16 2017-12-27 주식회사 티모넷 전자 서명 서비스 시스템 및 방법
JP2020522919A (ja) * 2017-06-07 2020-07-30 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーン・ネットワークにおいてトランザクションを管理するためのコンピュータ実装システム及び方法
KR20200027500A (ko) * 2017-07-13 2020-03-12 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 디바이스 익명성을 제공하는 키 증명문 생성
KR101952329B1 (ko) * 2018-03-22 2019-02-26 주식회사 스트리미 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116566623A (zh) * 2023-07-05 2023-08-08 北京天润基业科技发展股份有限公司 一种获取匿名数字证书的方法、系统及电子设备
CN116566623B (zh) * 2023-07-05 2023-09-22 北京天润基业科技发展股份有限公司 一种获取匿名数字证书的方法、系统及电子设备

Similar Documents

Publication Publication Date Title
US10700861B2 (en) System and method for generating a recovery key and managing credentials using a smart blockchain contract
US11349674B2 (en) Digital certificate management method and apparatus, computer device, and storage medium
CN109242685B (zh) 基于区块链的共识和验证方法及装置
US8966273B2 (en) Lightweight group signature system and method with short signature
CN108769230B (zh) 交易数据存储方法、装置、服务器及存储介质
US9401911B2 (en) One-time password certificate renewal
CN111444547B (zh) 用于数据完整性证明的方法、设备及计算机存储介质
US20210344500A1 (en) Computer-implemented system and method for transferring access to digital resource
CN106991148B (zh) 一种支持全更新操作的数据库验证系统及方法
CN111033506A (zh) 利用匹配操作和差异操作的编辑脚本核实
US20220368539A1 (en) Computer implemented method and system for storing certified data on a blockchain
CN112511316B (zh) 单点登录接入方法、装置、计算机设备及可读存储介质
CN112738253A (zh) 基于区块链的数据处理方法、装置、设备及存储介质
KR102318947B1 (ko) 개인 정보 보호 방법과 이를 수행하기 위한 컴퓨팅 장치 및 시스템
KR20220010534A (ko) 작업 증명 블록체인 네트워크 상의 비병렬식 채굴용 시스템 및 방법
EP3817320A1 (en) Blockchain-based system for issuing and validating certificates
JP2007143163A (ja) 通信ネットワークにおける利用者認証システムおよびその方法
KR20200125279A (ko) 블록 체인기반의 사용자 인증 방법, 시스템
CN111339547B (zh) 用于生成数据标签的方法、电子设备及计算机存储介质
CN111597584B (zh) 一种基于区块链的隐私保护和数据共享方法、装置、设备
KR102500419B1 (ko) 데이터 관리 방법과 이를 수행하기 위한 컴퓨팅 장치
CN115481440B (zh) 数据处理方法、装置、电子设备和介质
US11902451B2 (en) Cross-blockchain identity and key management
CN113242132B (zh) 一种数字证书管理方法和装置
CN111447072B (zh) 用于生成数据等价零知识证明的方法、设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant