KR20220115285A - 암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법 - Google Patents

암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법 Download PDF

Info

Publication number
KR20220115285A
KR20220115285A KR1020210019089A KR20210019089A KR20220115285A KR 20220115285 A KR20220115285 A KR 20220115285A KR 1020210019089 A KR1020210019089 A KR 1020210019089A KR 20210019089 A KR20210019089 A KR 20210019089A KR 20220115285 A KR20220115285 A KR 20220115285A
Authority
KR
South Korea
Prior art keywords
value
accumulator
encryption
user
node
Prior art date
Application number
KR1020210019089A
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 KR1020210019089A priority Critical patent/KR20220115285A/ko
Publication of KR20220115285A publication Critical patent/KR20220115285A/ko

Links

Images

Classifications

    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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
    • 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/602Providing cryptographic facilities or services
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 인덱스를 이용한 암호화 누산기를 기반으로 한 분산 신원 증명 시스템 및 방법에 관한 것이다. 상기 분산 신원 증명 시스템은, 사용자 노드로부터의 고유 식별 데이터의 제공과 함께 신원증명서 발급이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값과 암호화 누산기 값으로 이루어진 신원증명서를 발급하고, 암호화 누산기의 요소값 및 증명값은 사용자 노드로 제공하고, 인덱스 값과 암호화 누산기의 요소값, 증명값, 전체값을 블록체인 원장에 기록하는 발급자 노드; 및 사용자 노드로부터의 고유 식별 데이터와 요소값과 증명값의 제공과 함께 신원증명서 검증이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값을 검출하고, 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 검출된 암호화 누산기의 전체값과 상기 사용자 노드로부터 제공된 요소값과 증명값을 이용하여 사용자에 대한 신원증명서를 검증하는 검증자 노드;를 구비한다.

Description

암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법{Decentralized identity system and method by using a cryptographic accumulator}
본 발명은 암호화 누산기를 이용한 분산 신원 증명 시스템 및 그 방법에 관한 것으로서, 더욱 구체적으로는 비암호학 해시 함수를 이용하여 사용자의 고유 식별 데이터에 대한 인덱스 값을 생성하고, 상기 인덱스 값에 일대일 대응되는 소수값들로 이루어진 암호화 누산기를 생성하여, 인덱스 값과 암호화 누산기로 이루어진 신원 증명서를 발급하고 검증할 수 있도록 함으로써, 사용자 수가 증가하더라도 발급 속도를 증가시키고 연산값을 감소시켜 효율을 향상시키는 분산 신원 증명 시스템 및 방법에 관한 것이다.
최근, 자기주권신원(Self-Sovereign Identity) 기반 플랫폼의 중요성이 강조되고 있다. 자기주권신원 기반 모델은, 기존의 제3자를 통해 개인의 정보를 소유 및 통제하는 방식과는 달리, 개인이 직접 개인정보와 관련된 증명서의 발급과 검증을 위한 제출을 수행하는 방식이다. 도 1은 종래의 기술에 따른 자기주권신원 모델을 도시한 모식도이다. 따라서, 자기주권신원은 사용자가 신원관리의 중심에 있어야 하는 것으로서, 기존의 중앙 집중화된 방식과는 달리, 개인정보보호에 중점을 두고 개인이 본인의 신원데이터를 통제 및 관리할 수 있도록 한다.
Christopher라는 암호학자는 자기주권신원 10대 원칙을 접근성, 투명성, 통제성, 존재성, 지속성, 이식성, 상호운용성, 최소성, 보호성 및 동의로 정의하였으며, 이러한 10대원칙에 맞춰 개인의 정보에 대한 통제 및 관리가 필요하다고 주장하였다.
한편, 기존의 중앙 집중 형태의 신원인증시스템의 문제점을 해결하기 위하여 분산신원증명(DID: Decentralized Identity)의 도입이 논의되고 있는데, 분산신원증명이란 개인과 조직을 식별할 수 있는 식별자를 생성하고 온라인상에서 식별자를 제어 및 증명할 수 있도록 설계된 새로운 유형의 글로벌 신원인증시스템이다.
분산신원증명을 구현하기 위하여 분산된 환경에서도 데이터에 대한 신뢰성을 지키기 위하여 블록체인을 사용하는 것이 필요하다. 블록체인은 탈중앙화된 분산 시스템으로서, 참여하는 모든 사용자들이 데이터를 공유하는 기술이며, “누구나 디지털 저장소의 거래내역을 투명하게 기록하고 분산되어 있는 컴퓨터의 데이터를 복제해 저장하는 분산 데이터 저장기술”이다. 블록체인을 이용하여 여러 참가자가 관리하는 분산 원장 기술(DLT: Distributed Ledger Technology)은 거래내역이 해시 함수에 의한 변경 불가능한 암호화 서명으로 기록된다. 따라서, 하나의 블록이 변경되는 경우, 연결된 다른 거래 내역까지 변경되기 때문에 다른 참여자들이 명확하게 검증할 수 있다. 따라서, 블록체인 기반 분산신원증명은 개인키 서명을 통한 무결성, 블록체인기술의 위조 및 변조가 불가능한 투명성, 해시함수를 통한 보안을 보장할 수 있다.
도 2는 기존의 블록체인기반 분산신원증명의 구조도이다. 도 2를 참조하면, 블록체인기반 분산신원증명 시스템은, 1) 자신의 신원을 증명하기 위해 증명서 발급 요청 및 데이터 통제권을 갖는 사용자, 2) 증명서를 발급해주는 발급자, 3) 필요에 따라 적법한 사용자인지 검증하는 검증자, 및 4) 검증하기 위하여 발급된 증명서를 저장하기 위한 블록체인 원장으로 구성된다.
도 3은 기존의 블록체인기반 분산신원증명의 흐름도를 도식화한 그림이다. 도 3을 참조하면, 최초 사용자는 발급자에게 자신의 인증서 발급을 요청한다. 발급자는 사용자가 요청한 인증서를 발급하고 발급자의 개인키를 서명한 뒤 블록체인원장에 저장하고 사용자에게 전달한다. 인증서를 전달받은 사용자는 자신의 개인키로 서명한 뒤 블록체인 원장에 저장한다. 인증서를 받은 사용자는 서비스를 사용하기 위하여 서비스 제공자에게 가입과 같은 절차를 위해 자신의 가공한 검증용 인증서를 전달하고, 전달받은 검증자는 블록체인 원장을 통해 발급기관과 사용자의 서명이 들어간 인증서를 검증한다.
이와 같이, 신원 증명 및 검증하는 방법은 멤버십 증명(PoM; Proof of Membership)이라 하며, 이는 UNFCU(United Nations Federal Credit Union)과 같은 기관에서 새로운 고객이 가입하기 위하여 사용되며, 하나의 멤버가 특정 그룹에 포함되어 있는지를 증명하는 방식이다. 기존의 블록체인 기반 신원증명에서는 멤버쉽 증명을 위하여 암호화 누산기법을 사용하여 증명서를 생성하고 검증한다. 암호화 누산기법은 사용자에게 증명서를 발급할 때마다 소수(Prime Number)를 요소값으로 제공하고, 제공된 해당 소수를 기반으로 하여 사용자의 멤버쉽을 증명하며, 소수 특성상 해당값을 제외하면 역으로 연산이 불가능한 특성을 사용하여 멤버쉽을 증명한다. 각 사용자는 요소값과 증명값을 소유하며, 요소값은 자신이 소유하고 있는 식별할 수 있는 요소이며, 증명값은 요소값을 증명하기 위하여 그룹의 전체 누산값에서 자신의 요소값을 제외한 나머지의 연산값들이다.
도 4 및 도 5는 암호화 누산기법에 있어서, 사용자의 수에 따른 증명서 생성 시간 및 증명서 생성 연산값을 도시한 그래프들이다. 도 4 및 도 5에 도시된 바와 같이, 기존의 암호화 누산기법은 사용자가 증가함에 따라 증명서 발급 시간 및 증명서 생성에 필요한 연산값이 증가하는 문제점이 발생한다. 따라서, 기존의 블록체인기반의 분산신원증명 시스템은, 사용자 수가 증가함에 따라 증명서 발급 속도의 저하 및 연산값의 증가에 따라 발생되는 확장성의 문제가 대두된다.
암호화 누산기를 활용한 멤버십 증명 연구는 대표적으로 비동기 기반 암호화 누산기, 머클트리 기반 암호화 누산기, 및 집합기반 암호화 누산기로 나누어진다. 비동기 기반 암호화 누산기법은 요소값과 증명값의 지속적인 변동 횟수를 최소화시키는 방법으로서, 업데이트를 비동기화하여 빈도수를 최소화시켜 발급 속도를 개선하였으나 연산값을 개선시키지 못했으며, 발급 시점의 암호화 누산기값과 최신화된 암호화 누산기값의 차이로 인하여 검증 부분에 문제를 초래할 수 있다. 머클트리 기반 암호화 누산기법은 단순히 연산을 통해 멤버쉽 증명을 검증하는 방식이 아닌 각 요소들에 해시 함수를 적용하여 검증하는 방법으로서, 해시함수를 통해 각 요소값을 통일시키며 연산값을 최소화시켰으나, 연산 속도가 느리고 발급 속도가 느린 단점을 갖고 있다. 집합기반 암호화 누산기법은 머클트리 기반 암호화 누산기법의 늘어나는 검증 요소들의 연산 시간의 단점을 보완하고자 집합 기반의 일괄처리 방식을 적용하여 보완한 방법으로서, 가중치 부여를 통해 연산값을 효율적으로 운영하였으나, 요소값과 검증값의 신뢰도를 설정하기 위하여 수정 빈도수나 발급 시점등에 따라 가중치를 부여하기 때문에 추가적인 연산 시간이 소요되는 단점이 존재한다.
한국등록특허공보 제 10-2110349호 한국공개특허공보 제 10-2020-0003744 한국등록특허공보 제 10-2179543호
전술한 문제점을 해결하기 위한 본 발명은 비암호학 해시 함수를 이용하여 생성한 사용자의 고유 식별 데이터에 대한 인덱스 값과 암호화 누산기로 이루어진 신원 증명서를 발급하고, 이를 검증할 수 있도록 함으로써, 사용자 수가 증가하더라도 발급 속도를 증가시키고 연산값을 감소시켜 효율을 향상시키는 분산 신원 증명 시스템 및 방법을 제공하는 것을 목적으로 한다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 신원 증명 시스템은, 자신의 고유 식별 데이터를 이용하여 신원증명서 발급 및 신원증명서 검증을 요청하는 사용자 노드; 사용자 노드로부터의 고유 식별 데이터의 제공과 함께 신원증명서 발급이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값과 암호화 누산기 값으로 이루어진 신원증명서를 발급하고, 암호화 누산기의 요소값 및 증명값은 사용자 노드로 제공하고, 인덱스 값과 암호화 누산기의 요소값, 증명값, 전체값을 블록체인 원장에 기록하는 발급자 노드; 및 사용자 노드로부터의 고유 식별 데이터와 요소값과 증명값의 제공과 함께 신원증명서 검증이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값을 검출하고, 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 검출된 암호화 누산기의 전체값과 상기 사용자 노드로부터 제공된 요소값과 증명값을 이용하여 사용자에 대한 신원증명서를 검증하는 검증자 노드;를 구비한다.
전술한 제1 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명시스템에 있어서, 상기 발급자 노드는, 사용자의 고유 식별 데이터를 이용하여 사전 설정된 크기를 갖는 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 인덱스 생성 모듈; 및 상기 인덱스 값에 일대일 매칭되는 소수값들로 이루어진 암호화 누산기를 생성하는 암호화 누산기 모듈;을 구비하는 것이 바람직하다.
전술한 제1 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명시스템에 있어서, 상기 인덱스 생성 모듈은 사전 설정된 크기를 갖는 배열을 '0'으로 초기화시키고, 사용자의 고유 식별 데이터를 사전 설정된 개수의 비암호학 해시 함수들에 입력하여 사전 설정된 개수의 결과값들을 도출하고, 상기 결과값들에 대응되는 배열의 위치의 값을 '1'로 변경하여 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 것이 바람직하다.
전술한 제1 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명시스템에 있어서, 상기 암호화 누산기 모듈에 의해 생성된 암호화 누산기는, 사용자에 대한 요소값, 증명값, 그리고 상기 요소값과 증명값의 곱으로 이루어진 전체값으로 이루어지는 것이 바람직하다.
전술한 제1 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명시스템에 있어서, 검증자 노드는, 사전 설정된 비암호학 해시 함수를 이용하여 상기 사용자의 고유 식별 데이터에 대한 인덱스 값을 검출하는 인덱스 검증 모듈; 및 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 상기 암호화 누산기의 전체값을 상기 사용자 노드로부터 제공된 요소값과 증명값으로 나누어 나머지가 '0'이면 사용자에 대한 신원증명서를 검증하는 사용자 검증 모듈;을 구비하는 것이 바람직하다.
본 발명의 제2 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명방법은, 사용자 노드, 발급자 노드 및 검증자 노드를 구비하는 신원 증명 시스템에서의 신원 증명 방법에 관한 것으로서, (a) 사용자 노드가 자신의 고유 식별 데이터를 이용하여 신원증명서 발급을 발급자 노드에게 요청하는 단계; (b) 발급자 노드는, 사용자 노드로부터의 고유 식별 데이터의 제공과 함께 신원증명서 발급이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값과 암호화 누산기 값으로 이루어진 신원증명서를 발급하고, 암호화 누산기의 요소값 및 증명값은 사용자 노드로 제공하고, 인덱스 값과 암호화 누산기의 요소값, 증명값, 전체값을 블록체인 원장에 기록하는 단계; (c) 사용자 노드가 검증자 노드에게 자신의 고유 식별 데이터, 요소값, 증명값을 제공하고 신원증명서 검증을 요청하는 단계; (d) 검증자 노드는, 사용자 노드로부터의 고유 식별 데이터와 요소값과 증명값의 제공과 함께 신원증명서 검증이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값을 검출하고, 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 검출된 암호화 누산기의 전체값과 상기 사용자 노드로부터 제공된 요소값과 증명값을 이용하여 사용자에 대한 신원증명서를 검증하는 단계;를 구비한다.
전술한 제2 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명방법에 있어서, 상기 (b) 단계는, (b1) 사용자의 고유 식별 데이터를 이용하여 사전 설정된 크기를 갖는 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 단계; 및 (b2) 상기 인덱스 값에 일대일 매칭되는 소수값들로 이루어진 암호화 누산기를 생성하는 단계;를 구비하고, 상기 암호화 누산기는, 사용자에 대한 요소값, 증명값, 그리고 상기 요소값과 증명값의 곱으로 이루어진 전체값으로 이루어지는 것이 바람직하다.
전술한 제2 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명방법에 있어서, 상기 (b1) 단계는, 사전 설정된 크기를 갖는 배열을 '0'으로 초기화시키고, 사용자의 고유 식별 데이터를 사전 설정된 개수의 비암호학 해시 함수들에 입력하여 사전 설정된 개수의 결과값들을 도출하고, 상기 결과값들에 대응되는 배열의 위치의 값을 '1'로 변경하여 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 것이 바람직하다.
전술한 제2 특징에 따른 암호화 누산기를 기반으로 한 분산 신원증명방법에 있어서, 상기 (d) 단계는, (d1) 사전 설정된 비암호학 해시 함수를 이용하여 상기 사용자의 고유 식별 데이터에 대한 인덱스 값을 검출하는 단계; 및 (d2) 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 상기 암호화 누산기의 전체값을 상기 사용자 노드로부터 제공된 요소값과 증명값으로 나누어 나머지가 '0'이면 사용자에 대한 신원증명서를 검증하는 단계;를 구비하는 것이 바람직하다.
전술한 구성을 갖는 본 발명에 따른 비암호학 해시 기반의 신원증명시스템에 따른 증명서 발급 속도는, 기존의 암호화 누산기법에 따른 신원증명시스템보다 56.9% 가 개선되었으며, 연산값은 30.84%가 감소하게 된다.
도 1은 종래의 기술에 따른 자기주권신원 모델을 도시한 모식도이다. 도 2는 기존의 블록체인기반 분산신원증명의 구조도이다. 도 3은 기존의 블록체인기반 분산신원증명의 흐름도를 도식화한 그림이다. 도 4 및 도 5는 암호화 누산기법에 있어서, 사용자의 수에 따른 증명서 생성 시간 및 증명서 생성 연산값을 도시한 그래프들이다. 도 6은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템을 도시한 구조도이다. 도 7은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 인덱스 생성 모듈이 비암호학 해시 기반 인덱스를 생성하는 과정을 도시한 모식도이며, 도 8은 인덱스 생성 모듈의 인덱싱 알고리즘을 도시한 의사코드이다. 도 9는 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 암호화 누산기 모듈이 인덱스 기반의 암호화 누산기 연산 과정을 도시한 모식도이며, 도 10은 암호화 누산기 모듈의 인덱스 기반 암호화 누산기 연산 알고리즘을 도시한 의사코드이다. 도 11은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 검증자에 의한 인덱스 검증 과정을 도시한 모식도이며, 도 12는 인덱스 검증 알고리즘을 도시한 의사코드이다. 도 13은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 인덱스 검증을 예시적으로 설명하기 위한 도표이다. 도 14는 실험 결과에 따라 배열 크기당 열 개수 및 소수 개수 분포율을 도시한 도표이다. 도 15는 사용자의 수가 십만명에서 백만명까지 증가될 때의 증명서 발급 속도를 비교한 그래프이다. 도 16은 사용자의 수가 백만명에서 천만명까지 증가될 때의 증명서 발급 속도를 비교한 그래프이다. 도 17은 사용자의 수가 십만명에서 백만명까지 증가될 때의 증명서 연산값의 크기를 비교한 그래프이다. 도 18은 사용자의 수가 백만명에서 천만명까지 증가될 때의 증명서 연산값의 크기를 비교한 그래프이다.
본 발명에 따른 분산 신원 증명 시스템은 비암호학 해시 함수를 사용하여 인덱싱 알고리즘을 이용하여 사용자에 대한 신원 증명서의 발급 및 증명하는 것을 특징으로 한다. 해시 함수는 임의의 입력값을 특정 길이의 값으로 변환해주는 함수이다. 해시 함수의 대표적인 기술은 SHA-1 또는 SHA-256이 있으며, 임의의 길이의 데이터를 고정된 데이터로 변환시켜 주기 때문에 비암호학 해시 함수보다 보안성이 높다. 비암호학 해시 함수는 악의적인 입력에 의해 발생되는 데이터의 충돌만을 확인하기 위해 사용되는 기술이며, 대표적인 기술들로는 FNV, XXHash, MurmurHash 등이 있다. 본 발명에 따른 알고리즘은 비암호학 해시 함수의 빠른 연산의 특징을 사용하여 새로운 인덱싱을 생성하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 비암호학 해시 함수를 이용한 암호화 누산기를 기반으로 한 분산 신원 증명 시스템의 구조 및 동작에 대하여 보다 구체적으로 설명한다.
도 6은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템을 도시한 구조도이다. 도 6을 참조하면, 본 발명에 따른 신원 증명 시스템은 비암호학 해시 함수를 이용하여 인덱스 값을 생성하고 암호화 누산기를 생성하여 신원 증명서를 발급 및 증명하는 것으로서, 신원 증명서에 대한 발급 및 검증을 요청하는 사용자 노드(30), 사용자 노드의 요청에 따라 신원 증명서를 발급하는 발급자 노드(10), 사용자 노드의 요청에 따라 신원 증명서를 검증하는 검증자 노드(20)를 구비한다.
상기 발급자 노드(10)는 인덱스 생성 모듈(100) 및 암호화 누산기 모듈(110)을 구비하여, 사용자로부터 사용자의 고유 식별 데이터에 대한 신원 증명서 발급 요청이 입력되면, 일대일 매칭되는 인덱스와 암호화 누산기의 소수값으로 이루어진 신원 증명서를 생성하여 사용자 노드에게 발급하고 블록체인 원장에 블록의 형태로 기록한다. 상기 사용자 고유 식별 데이터는 주민등록번호와 같이 사용자 개인을 식별할 수 있는 특정 데이터가 될 수 있다.
상기 인덱스 생성 모듈(100)은 사용자의 고유 식별 데이터를 비암호학 해시 함수에 입력하고, 사전 설정된 개수의 비암호학 해시 함수의 결과값들을 이용하여 사전 설정된 크기의 배열로 이루어진 인덱스를 생성한다. 도 7은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 인덱스 생성 모듈이 비암호학 해시 기반 인덱스를 생성하는 과정을 도시한 모식도이며, 도 8은 인덱스 생성 모듈의 인덱싱 알고리즘을 도시한 의사코드이다. 도 7 및 도 8을 참조하면, 먼저 사전 설정된 크기의 배열을 모두 '0'으로 초기화시킨다. 다음, 사용자 고유 식별 데이터를 사전 설정된 개수(n : 여기서 n은 1이상의 자연수임)의 비암호학 해시 함수들에 각각 적용하여 n개의 결과값을 얻는다. 이때, 결과값들은 배열의 크기와 같거나 작은 값들로 이루어진다. '0'으로 초기화된 배열은, n개의 결과값들에 대응되는 위치들을 '1'로 변경시킨다. 이렇게 완성된 배열은 암호화누산기 연산을 위한 인덱스가 된다.
상기 암호화 누산기 모듈(110)은 상기 인덱스 생성 모듈(100)에 의해 생성된 인덱스에 일대일 매칭되는 암호화 누산기의 소수값들을 생성하여 제공한다. 도 9는 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 암호화 누산기 모듈이 인덱스 기반의 암호화 누산기 연산 과정을 도시한 모식도이며, 도 10은 암호화 누산기 모듈의 인덱스 기반 암호화 누산기 연산 알고리즘을 도시한 의사코드이다. 도 9 및 도 10을 참조하면, 암호화 누산기 모듈은 동일한 인덱스 값이 발견될 때마다 암호화 누산기안에서 소수인 2부터 하나씩 추가하여 암호화 누산기값을 생성한다. 예를 들면, 도 9의 인덱스 0101000100인 부분은 소수가 2 하나만 있기 때문에, 해당 인덱스 값에 해당하는 사용자는 한명을 의미한다. 한편, 인덱스 1001000010 부분은 소수가 2,3,5,7,11 로서 총 다섯개가 있기 때문에 해당 인덱스에 해당하는 사용자는 모두 다섯명임을 의미한다. 각 인덱스에 일대일 매칭되어 저장된 암호화 누산기에 저장된 각각의 소수값은 사용자를 대표하는 요소값(Factor)과 요소값을 제외한 다른 값들인 증명값(Witness)이 사용자에게 제공되며, 모든 요소값들을 곱한 전체값을 암호화 누산기에 저장한다. 예를 들면, 도 9의 인덱스 1001000010 부분에서 요소값 3을 가지고 있는 사람의 증명값은 2이며, 요소값 11을 가지고 있는 경우 증명값은 2,3,5,7을 갖게 된다.
검증자 노드(20)는 인덱스 검증 모듈(200) 및 요소값/증명값 검증 모듈(210)을 구비하여, 사용자 노드로부터 사용자의 고유 식별 데이터, 요소값 및 증명값을 제공받고 신원 증명서에 대한 검증이 요청되면, 사용자로부터 제공된 요소값, 증명값, 그리고 사용자의 고유 식별 데이터를 이용하여 사용자에 대한 멤버쉽 증명을 진행한다.
도 11은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 검증자에 의한 인덱스 검증 과정을 도시한 모식도이며, 도 12는 인덱스 검증 알고리즘을 도시한 의사코드이다. 도 11 및 도 12를 참조하면, 먼저, 인덱스 검증 모듈(200)이 사용자 고유 식별 데이터를 비암호학 해시 함수에 적용시켜 인덱스값을 찾아내어 인덱스 검증을 한다. 다음, 요소값/증명값 검증 모듈(210)은 FTOA(Fundamental Theorem of Arithmetic)의 법치에 따른 요소값 & 증명값 검증을 하게 되는데, 소수를 곱한 값을 소수로 나눌 경우 나머지가 0이 된다는 법칙을 이용한다. 따라서, 상기 요소값/증명값 검증 모듈은 상기 인덱스 검증 모듈에 의해 검증된 인덱스와 매칭되는 암호화 누산기가 저장하고 있는 전체값을 블록체인 원장으로부터 검출하고, 상기 암호화 누산기의 전체값을 사용자가 제공한 요소값으로 나누고, 그 몫이 사용자가 제공한 증명값과 같고 나머지가 '0'이면 해당 사용자는 검증된 사용자로 판단한다. 또한, 다른 실시 형태로는 상기 요소값/증명값 검증 모듈은 암호화 누산기의 전체값을 사용자가 제공하는 요소값과 증명값의 곱셈으로 나눈 결과값의 나머지가 0인 경우에 해당 사용자는 검증된 사용자로 판단할 수 있다. 이러한 과정을 통해 사용자를 검증된 사용자로 판단함으로써, 멤버쉽 증명을 진행한다.
도 13은 본 발명의 바람직한 실시예에 따른 암호화 누산기 기반의 신원 증명 시스템에 있어서, 인덱스 검증을 예시적으로 설명하기 위한 도표이다. 도 13을 참조하면, 사용자가 요소값 11과 검증값 30을 제공한 경우, 해당 사용자의 인덱스에 해당되는 전체값인 30030을 요소값 11과 증명값 30으로 나눈다. 요소값과 증명값으로 나누었을 때 나머지가 0이기 때문에 해당 사용자는 검증된 사용자로 판단될 수 있다.
전술한 구성을 갖는 본 발명에 따른 인덱스를 이용한 암호화 누산기 기반의 분산 신원 증명 시스템의 성능을 살펴보기 위하여, 본 발명에 따른 시스템과 기존의 암호화 누산기에 의한 증명서 발급 및 검증에 대한 속도와 연산값 사이즈를 측정하여 비교하였다.
도 14는 실험 결과에 따라 배열 크기당 열 개수 및 소수 개수 분포율을 도시한 도표이다. 도 14를 참조하면, 사용자가 천만명일 때 인덱스 크기를 6~12까지 늘린 결과를 나타낸 도표로서, 인덱스 크기가 커질수록 생성되는 열 개수와 열 하나에 들어가는 소수의 개수가 계속 증가됨을 알 수 있다. 하지만, 인덱스 크기가 10일 때 한 개의 열에 들어가는 평균적인 소수 개수의 증가율이 가장 컸고, 그 의미는 소수의 분포가 가장 잘 분산되어 있다고 판단되어 인덱스 크기를 10으로 고정하여 실험을 진행하였다.
도 15는 사용자의 수가 십만명에서 백만명까지 증가될 때의 증명서 발급 속도를 비교한 그래프이다. 도 15를 참조하면, 본 발명에 따른 방법과 기존의 암호화누산기를 사용하는 방법에서의 발급 속도는 사용자의 수가 십만명일 때 40.29% 차이가 발생하고 사용자의 수가 백만명일 때 52.8% 차이가 발생함을 파악할 수 있다. 도 16은 사용자의 수가 백만명에서 천만명까지 증가될 때의 증명서 발급 속도를 비교한 그래프이다. 도 16을 참조하면, 본 발명에 따른 방법과 기존의 암호화누산기를 사용하는 방법에서의 발급 속도는 사용자의 수가 백만명일 때 50.35% 차이가 발생하고 사용자의 수가 천만명일 때 56.9% 차이가 발생함을 파악할 수 있다. 따라서, 사용자의 수가 증가할수록 본 발명에 따른 방법이 기존의 암호화 누산기 방법보다 더 효율적임을 쉽게 파악할 수 있다.
도 17은 사용자의 수가 십만명에서 백만명까지 증가될 때의 증명서 연산값의 크기를 비교한 그래프이다. 도 17을 참조하면, 본 발명에 따른 방법과 기존의 암호화누산기를 사용하는 방법에서의 연산값의 크기는 사용자의 수가 십만명일 때 76.5% 차이가 발생하고 그 결과 23.5%의 공간 효율을 얻을 수 있게 된다. 도 18은 사용자의 수가 백만명에서 천만명까지 증가될 때의 증명서 연산값의 크기를 비교한 그래프이다. 도 18을 참조하면, 본 발명에 따른 방법과 기존의 암호화누산기를 사용하는 방법에서의 연산값 크기는 사용자의 수가 천만명일 때 69.16%의 차이가 발생하였으며, 그 결과 30.84%의 공간 효율을 얻을 수 있게 된다. 따라서, 사용자의 수가 증가하더라도 본 발명에 따른 방법이 기존의 암호화 누산기 방법보다 30.84%의 공간을 절약할 수 있으며, 그 결과 더 효율적임을 쉽게 파악할 수 있다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 발급자 노드 100 : 인덱스 생성 모듈 110 : 암호화 누산기 모듈 120 : 블록체인 원장 20 : 검증자 노드 200 : 인덱스 검증 모듈 210 : 요소값/증명값 검증 모듈 30 : 사용자 노드

Claims (10)

  1. 자신의 고유 식별 데이터를 이용하여 신원증명서 발급 및 신원증명서 검증을 요청하는 사용자 노드;사용자 노드로부터의 고유 식별 데이터의 제공과 함께 신원증명서 발급이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값과 암호화 누산기 값으로 이루어진 신원증명서를 발급하고, 암호화 누산기의 요소값 및 증명값은 사용자 노드로 제공하고, 인덱스 값과 암호화 누산기의 요소값, 증명값, 전체값을 블록체인 원장에 기록하는 발급자 노드;사용자 노드로부터의 고유 식별 데이터와 요소값과 증명값의 제공과 함께 신원증명서 검증이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값을 검출하고, 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 검출된 암호화 누산기의 전체값과 상기 사용자 노드로부터 제공된 요소값과 증명값을 이용하여 사용자에 대한 신원증명서를 검증하는 검증자 노드;를 구비하는 것을 특징으로 하는 암호화 누산기를 기반으로 한 분산 신원증명시스템.
  2. 제1항에 있어서, 상기 발급자 노드는, 사용자의 고유 식별 데이터를 이용하여 사전 설정된 크기를 갖는 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 인덱스 생성 모듈; 및 상기 인덱스 값에 일대일 매칭되는 소수값들로 이루어진 암호화 누산기를 생성하는 암호화 누산기 모듈;을 구비하는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명시스템.
  3. 제2항에 있어서, 상기 인덱스 생성 모듈은 사전 설정된 크기를 갖는 배열을 '0'으로 초기화시키고, 사용자의 고유 식별 데이터를 사전 설정된 개수의 비암호학 해시 함수들에 입력하여 사전 설정된 개수의 결과값들을 도출하고, 상기 결과값들에 대응되는 배열의 위치의 값을 '1'로 변경하여 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명시스템.
  4. 제1항에 있어서, 상기 암호화 누산기 모듈에 의해 생성된 암호화 누산기는, 사용자에 대한 요소값, 증명값, 그리고 상기 요소값과 증명값의 곱으로 이루어진 전체값으로 이루어지는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명시스템.
  5. 제1항에 있어서, 검증자 노드는, 사전 설정된 비암호학 해시 함수를 이용하여 상기 사용자의 고유 식별 데이터에 대한 인덱스 값을 검출하는 인덱스 검증 모듈; 및 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 상기 암호화 누산기의 전체값을 상기 사용자 노드로부터 제공된 요소값과 증명값으로 나누어 나머지가 '0'이면 사용자에 대한 신원증명서를 검증하는 사용자 검증 모듈;을 구비하는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명시스템.
  6. 사용자 노드, 발급자 노드 및 검증자 노드를 구비하는 신원 증명 시스템에서의 신원 증명 방법에 있어서, (a) 사용자 노드가 자신의 고유 식별 데이터를 이용하여 신원증명서 발급을 발급자 노드에게 요청하는 단계;(b) 발급자 노드는, 사용자 노드로부터의 고유 식별 데이터의 제공과 함께 신원증명서 발급이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값과 암호화 누산기 값으로 이루어진 신원증명서를 발급하고, 암호화 누산기의 요소값 및 증명값은 사용자 노드로 제공하고, 인덱스 값과 암호화 누산기의 요소값, 증명값, 전체값을 블록체인 원장에 기록하는 단계;를 구비하여, 사용자에 대한 신원 증명서를 발급하는 것을 특징으로 하는 신원 증명 방법.
  7. 제6항에 있어서, 상기 (b) 단계는, (b1) 사용자의 고유 식별 데이터를 이용하여 사전 설정된 크기를 갖는 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 단계; (b2) 상기 인덱스 값에 일대일 매칭되는 소수값들로 이루어진 암호화 누산기를 생성하는 단계;를 구비하고, 상기 암호화 누산기는, 사용자에 대한 요소값, 증명값, 그리고 상기 요소값과 증명값의 곱으로 이루어진 전체값으로 이루어지는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명방법.
  8. 제7항에 있어서, 상기 (b1) 단계는, 사전 설정된 크기를 갖는 배열을 '0'으로 초기화시키고, 사용자의 고유 식별 데이터를 사전 설정된 개수의 비암호학 해시 함수들에 입력하여 사전 설정된 개수의 결과값들을 도출하고, 상기 결과값들에 대응되는 배열의 위치의 값을 '1'로 변경하여 배열의 값을 설정하고, 상기 설정된 배열의 값을 사용자에 대한 인덱스 값으로 설정하는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명방법.
  9. 제6항에 있어서, 상기 신원 증명 방법은, (c) 사용자 노드가 검증자 노드에게 자신의 고유 식별 데이터, 요소값, 증명값을 제공하고 신원증명서 검증을 요청하는 단계;(d) 검증자 노드는, 사용자 노드로부터의 고유 식별 데이터와 요소값과 증명값의 제공과 함께 신원증명서 검증이 요청되면, 상기 고유 식별 데이터를 이용하여 인덱스 값을 검출하고, 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 검출된 암호화 누산기의 전체값과 상기 사용자 노드로부터 제공된 요소값과 증명값을 이용하여 사용자에 대한 신원증명서를 검증하는 단계;를 더 구비하는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명방법.
  10. 제9항에 있어서, 상기 (d) 단계는, (d1) 사전 설정된 비암호학 해시 함수를 이용하여 상기 사용자의 고유 식별 데이터에 대한 인덱스 값을 검출하는 단계; 및 (d2) 해당 인덱스 값에 대응되는 암호화 누산기의 전체값을 블록체인 원장으로부터 검출하고, 상기 암호화 누산기의 전체값을 상기 사용자 노드로부터 제공된 요소값과 증명값으로 나누어 나머지가 '0'이면 사용자에 대한 신원증명서를 검증하는 단계;를 구비하는 것을 특징으로 하는 암호화 누산기를 기반으로 한 신원증명방법.
KR1020210019089A 2021-02-10 2021-02-10 암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법 KR20220115285A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210019089A KR20220115285A (ko) 2021-02-10 2021-02-10 암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210019089A KR20220115285A (ko) 2021-02-10 2021-02-10 암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법

Publications (1)

Publication Number Publication Date
KR20220115285A true KR20220115285A (ko) 2022-08-17

Family

ID=83110460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210019089A KR20220115285A (ko) 2021-02-10 2021-02-10 암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법

Country Status (1)

Country Link
KR (1) KR20220115285A (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200003744A (ko) 2018-07-02 2020-01-10 아바야 인코포레이티드 Rcs용 연합된 블록체인 신원 모델 및 보안 개인적 식별 가능 정보 데이터 전송 모델
KR102110349B1 (ko) 2019-08-30 2020-05-14 (주) 와이즈엠글로벌 분산원장을 이용한 디지털신분증의 발급, 관리 및 활용하는 시스템 및 그 방법
KR102179543B1 (ko) 2018-05-08 2020-11-18 라온시큐어(주) 블록체인 기반 디지털 신분증 및 이의 발급과 신원확인 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102179543B1 (ko) 2018-05-08 2020-11-18 라온시큐어(주) 블록체인 기반 디지털 신분증 및 이의 발급과 신원확인 방법 및 시스템
KR20200003744A (ko) 2018-07-02 2020-01-10 아바야 인코포레이티드 Rcs용 연합된 블록체인 신원 모델 및 보안 개인적 식별 가능 정보 데이터 전송 모델
KR102110349B1 (ko) 2019-08-30 2020-05-14 (주) 와이즈엠글로벌 분산원장을 이용한 디지털신분증의 발급, 관리 및 활용하는 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
EP3646563B1 (en) Method, system, and computer program product for determining solvency of a digital asset exchange
JP7292365B2 (ja) ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム
Sookhak et al. Auditing big data storage in cloud computing using divide and conquer tables
Papamanthou et al. Authenticated hash tables
CN104919754B (zh) 篡改检测装置、篡改检测方法、以及程序
US7000110B1 (en) One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
CN113554436B (zh) 一种区块链系统用户身份匿名方法、追踪方法和系统
Rajasekhar et al. Redactable blockchain and it’s implementation in bitcoin
Taleb Prospective applications of blockchain and bitcoin cryptocurrency technology
Kim et al. Simulation-extractable zk-SNARK with a single verification
Ji et al. Identity-based remote data checking with a designated verifier
Ma et al. An efficient and secure design of redactable signature scheme with redaction condition control
Kazmirchuk et al. The Improvement of digital signature algorithm based on elliptic curve cryptography
Wang et al. Efficient verifiable databases with additional insertion and deletion operations in cloud computing
Gan et al. Enabling online/offline remote data auditing for secure cloud storage
KR20220115285A (ko) 암호화 누산기를 이용한 분산 신원 증명 시스템 및 분산 신원 증명 방법
Fartitchou et al. Public-key cryptography behind blockchain security
US11856095B2 (en) Apparatus and methods for validating user data by using cryptography
Andavan et al. Cloud computing based deduplication using high-performance grade byte check and fuzzy search technique
Yang et al. Efficient verifiable unbounded-size database from authenticated matrix commitment
Birje et al. A Review on Layered Architecture and Application domains of Blockchain Technology
KR102123435B1 (ko) 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
Fan et al. Date attachable offline electronic cash scheme
CN111709727A (zh) 在区块链钱包中保存多重签名的方法和计算机可读存储介质
Moldovyan et al. A novel method for developing post-quantum cryptoschemes and a practical signature algorithm

Legal Events

Date Code Title Description
A201 Request for examination