KR102146757B1 - 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법 - Google Patents

익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법 Download PDF

Info

Publication number
KR102146757B1
KR102146757B1 KR1020180136592A KR20180136592A KR102146757B1 KR 102146757 B1 KR102146757 B1 KR 102146757B1 KR 1020180136592 A KR1020180136592 A KR 1020180136592A KR 20180136592 A KR20180136592 A KR 20180136592A KR 102146757 B1 KR102146757 B1 KR 102146757B1
Authority
KR
South Korea
Prior art keywords
value
encryption
identification information
information storage
storage module
Prior art date
Application number
KR1020180136592A
Other languages
English (en)
Other versions
KR20200053225A (ko
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 KR1020180136592A priority Critical patent/KR102146757B1/ko
Priority to PCT/KR2019/010614 priority patent/WO2020096180A1/ko
Priority to DE112019005599.2T priority patent/DE112019005599T5/de
Publication of KR20200053225A publication Critical patent/KR20200053225A/ko
Application granted granted Critical
Publication of KR102146757B1 publication Critical patent/KR102146757B1/ko
Priority to US17/306,089 priority patent/US20210258141A1/en

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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/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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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
    • 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/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 의한 익명 디지털 아이덴티티를 등록하는 방법은, 어카운트 모듈이, 사용자 단말기로부터 제1 랜덤값(Re)의 동형 암호화값인 제1 암호화값(Re_)과 제1 제로 암호화값(Ze_)을 전달받고 어카운트 모듈 등록 요청을 수신하는 제1 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와 제2 랜덤값(Ra)을 생성하는 제2 단계와; 어카운트 모듈이, 제1 토큰(p_token)을 생성하는 제3 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)에, 제1 암호화값(Re_)과 제2 랜덤값(Ra)과 제1 제로 암호화값을 제1 수식에 의해 연산하여 제2 신원 확인 ID(AA_ID)의 암호화값인 제2 암호화값(AA_ID_)을 생성하는 제4 단계와; 어카운트 모듈이, 제2 암호화값(AA_ID_)을 해쉬하여 제1 해쉬값(h_AA_ID)을 산출하는 제5 단계와; 어카운트 모듈이, 제1 토큰(p_token) 및 제1 해쉬값(h_AA_ID)을 포함하는 제1 값에 대해서 해쉬하여 제2 해쉬값(h_enroll)을 산출하는 제6 단계와; 어카운트 모듈이, 제1 해쉬값(h_AA_ID) 및 제2 해쉬값(h_enroll)을 포함하는 제2 값에 대해서 전자서명하여 제1 유효성 검증값을 생성하는 제7 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 랜덤값(Ra)과, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값을 사용자 단말기로 전송하는 제8 단계와; 신원 확인 정보 저장 모듈이, 신원 확인 정보(biometric)와, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값과, 제2 제로 암호화값(Ze'_)을 사용자 단말기로부터 수신하는 제9 단계와; 신원 확인 정보 저장 모듈이, 제2 암호화값(AA_ID_)과 제3 값(Cr)을 제2 수식에 의해 연산하여 제3 신원 확인 ID(R_ID)의 동형 암호화값인 제3 암호화값(R_ID_)를 생성하는 제10 단계와; 신원 확인 정보 저장 모듈이, 제3 암호화값(R_ID_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 제3 수식(tag1_ = ±R1*R_ID_ ± R2 ± R3*Ze'_)에 의해 제1 태그값(tag1)의 동형 암호화값인 제4 암호화값(tag1_)을 산출하는 제11 단계와; 신원 확인 정보 저장 모듈이, 신원 확인 정보(biometric)와, 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)과, 제1 세션 ID(rs_id)와, 제2 값과, 제1 유효성 검증값을 저장하는 제12 단계와; 신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 값(Cr)과, 제4 값(G)과, 제5 값(P)과, 제3 암호화값(R_ID_)과, 제4 암호화값(tag_)을 사용자 단말기로 전송하는 제13 단계와; 신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 신원 확인 ID(R_ID)의 연산값인 제6 값(R_ID$)과, 제1 태그값의 연산값인 제7 값(tag1$)을 사용자 단말기로부터 수신하는 제14 단계와; 신원 확인 정보 저장 모듈이, 제7 값을 검증하는 제15 단계와; 신원 확인 정보 저장 모듈이, 제6 값을 해쉬하여 제3 해쉬값(r_id)을 산출하는 제16 단계와; 신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)과 신원 확인 정보를 저장하는 제17 단계와; 신원 확인 정보 저장 모듈이, 제2 토큰(r_token)을 생성하는 제18 단계와; 신원 확인 정보 저장 모듈이, 제1 유효성 검증값을 포함하는 제8 값에 대해 전자서명하여 제2 유효성 검증값을 산출하는 제19 단계와; 신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)과, 제2 토큰(r_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 사용자 단말기로 전송하는 제20 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 사용자 단말기로부터 수신하여 신원 확인 정보 저장 모듈로의 등록을 요청받는 제21 단계와; 어카운트 모듈이, 제1 토큰(p_token)과, 제2 해쉬값(h_enroll)과, 제1 유효성 검증값과, 제2 유효성 검증값을 검증하고 신원 확인 정보 저장 모듈로의 등록을 완료하는 제22 단계를 포함한다.

Description

익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법{Method for Statement Confirmation, Enrollment of Identity Repository Module, and Entity Authentication, which Guarantees Anonymity While Preventing Sybil Attack}
본 발명은, 블록 체인을 이용한 의사 표시 확인 방법에 대한 것으로서 좀 더 구체적으로는 익명성을 보장하며 시빌 공격(Sybil Attack)을 방지할 수 있는 의사 표시 확인 방법에 대한 것이다. 본 발명은 또한 그러한 의사 표시 확인에 앞서 수행되는 신원 확인 정보 저장 모듈의 등록 및 의사 표시자의 인증에 대한 방법에 대한 것이기도 하다.
온라인상으로 사용자가 의사 표시를 하고 수신자가 이를 확인하는 경우가 빈번하게 발생한다. 전자 투표가 대표적인 예인데, 전자 투표 이외에도 온라인 거래나 계약에 관련된 의사 표시, 온라인 토론 등에서의 의사 표시, 온라인 콘텐츠에 대한 댓글 등이 있을 수 있다.
온라인 의사 표시 중 예를 들어 전자 투표는 투표장에 가지 않고 전자적 연산 및 데이터 처리가 가능한 전자 단말기를 통해서 하는 투표로서 저비용, 편의성, 확장성이라는 장점이 있음에도 불구하고 해킹, 내부자 조작 위험, 원격 상황에서 일어날 수 있는 강압적 의사표시 등의 문제로 과정과 결과에 대한 무결성(integrity)를 보장하기 어려워 광범위하게 도입되지 못하고 있는 실정이다.
이 관점에서 분산원장 기술인 블록체인을 전자투표와 같은 온라인 의사표시 확인에 적용하면 조작 또는 해킹의 위협을 배제할 수 있다. 그러나 블록체인의 신뢰성은 모두가 기록을 열람할 수 있는 투명성에 기반하기에 누가 어떤 의사표시를 했는지 알아낼 수 있게 되어 프라이버시 문제를 야기할 수 밖에 없다. 온라인상의 행위와 행위자간의 연결성을 숨기기 위해 한 명의 개인이 무제한의 공개키와 이를 사용할 수 있는 개인키를 생성할 수 있으나, 온라인상 의사 표현의 경우 1인이 수많은 ID를 생성해서 마치 여러 사람의 의사 표시인 것으로 호도하는 시빌 공격(Sybil Attack)에 취약하게 되어 참여자 간 의사 표현의 평등성이 침해되는 문제가 있다.
시빌 공격을 막기 위해서는 개인식별정보(PII: Personally Identifiable Information)를 수집함으로써 참여자의 고유성을 보장할 수 있어야 한다. 결국 의사 표현과 PII간의 연계가 될 수 밖에 없으므로 사용자의 프라이버시와 익명성을 훼손하고, 되려 자유로운 의사 표시가 제한될 수 있다. 다만, 암호화된 상태에서 계산이 가능한 동형암호를 적용하면 사용자의 고유성과 익명성을 동시에 보장할 수 있다.
그러한 온라인상의 의사 표시 확인 방법의 예로 본 출원인은 한국특허 제1833323호의 발명을 한 바 있다.
본 발명은 상기 특허 발명에 비해 더욱 보안성을 높인 온라인상의 의사 표시 확인 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 사용자의 익명 디지털 아이덴티티를 등록하는 방법은, 사용자 단말기와, 어카운트 모듈과, 신원 확인 정보 저장 모듈을 포함하는 환경에서 수행된다. 본 발명에 의한 익명 디지털 아이덴티티를 등록하는 방법은, 어카운트 모듈이, 사용자 단말기로부터 제1 랜덤값(Re)의 동형 암호화값인 제1 암호화값(Re_)과 제1 제로 암호화값(Ze_)을 전달받고 어카운트 모듈 등록 요청을 수신하는 제1 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와 제2 랜덤값(Ra)을 생성하는 제2 단계와; 어카운트 모듈이, 제1 토큰(p_token)을 생성하는 제3 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)에, 제1 암호화값(Re_)과 제2 랜덤값(Ra)과 제1 제로 암호화값을 제1 수식에 의해 연산하여 제2 신원 확인 ID(AA_ID)의 암호화값인 제2 암호화값(AA_ID_)을 생성하는 제4 단계와; 어카운트 모듈이, 제2 암호화값(AA_ID_)을 해쉬하여 제1 해쉬값(h_AA_ID)을 산출하는 제5 단계와; 어카운트 모듈이, 제1 토큰(p_token) 및 제1 해쉬값(h_AA_ID)을 포함하는 제1 값에 대해서 해쉬하여 제2 해쉬값(h_enroll)을 산출하는 제6 단계와; 어카운트 모듈이, 제1 해쉬값(h_AA_ID) 및 제2 해쉬값(h_enroll)을 포함하는 제2 값에 대해서 전자서명하여 제1 유효성 검증값을 생성하는 제7 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 랜덤값(Ra)과, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값을 사용자 단말기로 전송하는 제8 단계와; 신원 확인 정보 저장 모듈이, 신원 확인 정보(biometric)와, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값과, 제2 제로 암호화값(Ze'_)을 사용자 단말기로부터 수신하는 제9 단계와; 신원 확인 정보 저장 모듈이, 제2 암호화값(AA_ID_)과 제3 값(Cr)을 제2 수식에 의해 연산하여 제3 신원 확인 ID(R_ID)의 동형 암호화값인 제3 암호화값(R_ID_)를 생성하는 제10 단계와; 신원 확인 정보 저장 모듈이, 제3 암호화값(R_ID_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 제3 수식(tag1_ = ±R1*R_ID_ ± R2 ± R3*Ze'_)에 의해 제1 태그값(tag1)의 동형 암호화값인 제4 암호화값(tag1_)을 산출하는 제11 단계와; 신원 확인 정보 저장 모듈이, 신원 확인 정보(biometric)와, 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)과, 제1 세션 ID(rs_id)와, 제2 값과, 제1 유효성 검증값을 저장하는 제12 단계와; 신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 값(Cr)과, 제4 값(G)과, 제5 값(P)과, 제3 암호화값(R_ID_)과, 제4 암호화값(tag_)을 사용자 단말기로 전송하는 제13 단계와; 신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 신원 확인 ID(R_ID)의 연산값인 제6 값(R_ID$)과, 제1 태그값의 연산값인 제7 값(tag1$)을 사용자 단말기로부터 수신하는 제14 단계와; 신원 확인 정보 저장 모듈이, 제7 값을 검증하는 제15 단계와; 신원 확인 정보 저장 모듈이, 제6 값을 해쉬하여 제3 해쉬값(r_id)을 산출하는 제16 단계와; 신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)과 신원 확인 정보를 저장하는 제17 단계와; 신원 확인 정보 저장 모듈이, 제2 토큰(r_token)을 생성하는 제18 단계와; 신원 확인 정보 저장 모듈이, 제1 유효성 검증값을 포함하는 제8 값에 대해 전자서명하여 제2 유효성 검증값을 산출하는 제19 단계와; 신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)과, 제2 토큰(r_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 사용자 단말기로 전송하는 제20 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 사용자 단말기로부터 수신하여 신원 확인 정보 저장 모듈로의 등록을 요청받는 제21 단계와; 어카운트 모듈이, 제1 토큰(p_token)과, 제2 해쉬값(h_enroll)과, 제1 유효성 검증값과, 제2 유효성 검증값을 검증하고 신원 확인 정보 저장 모듈로의 등록을 완료하는 제22 단계를 포함한다.
제1 값 및 제2 값은 어카운트 모듈측 시간 정보(date_a)를 더 포함할 수 있다.
제8 값은 신원 확인 정보 저장 모듈측 시간 정보(date_r)를 더 포함할 수 있다.
제1 수식은, 제1 암호화값(Re_)과 제2 랜덤값(Ra)을 곱한 값에 제1 신원 확인 정보(A_ID)를 더하고, 제2-1 랜덤값(Rc)과 제1 제로 암호화값(Ze_)을 곱하고, 노이즈를 더하는 수식이 될 수 있다.
제2 수식은, 제2 암호화값(AA_ID_)에 제3 값(Cr)을 곱하는 수식이 될 수 있다.
제3 수식은, 제3-1 랜덤값(R1)과 제3 암호화값(R_ID_)를 곱한 값에, 제3-2 랜덤값(R2)을 더하고, 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)의 곱을 더하는 수식이 될 수 있다.
제6 값은, 제4 값(G)제3 신원 확인 ID(R_ID) (mod 제5 값(P))이 될 수 있고, 제7 값은, 제4 값(G)제1 태그값(tag) (mod 제5 값(P))이 될 수 있으며, 제15 단계는, 제7 값이, 제6값(R_ID$)제3-1 랜덤값(R1)*제4 값(G)제3-2 랜덤값(R2) (mod 제5 값(P))와 동일한지를 비교하여 수행되는 단계일 수 있다.
본 발명에 의한 디지털 아이덴티티 등록 후에 수행되는 인증 방법은, 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제1 제로 암호화값(Ze_)을 사용자 단말기로부터 수신하는 제1-1 단계와; 어카운트 모듈이, 인증과 관련한 제2 세션 ID(as_id)을 생성하는 제1-2 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)에, 제1 암호화값(Re_)과 제2 랜덤값(Ra)과 제1 제로 암호화값을 제1 수식에 의해 연산하여 제2 신원 확인 ID(AA_ID)의 암호화값인 제2 암호화값(AA_ID_)을 생성하는 제1-3 단계와; 어카운트 모듈이, 제2 암호화값(AA_ID_)을 해쉬하여 제1 해쉬값(h_AA_ID)을 산출하는 제1-4 단계와; 어카운트 모듈이, 제2 세션 ID(as_id)와 제1 해쉬값(h_AA_ID)을 포함하는 값을 해쉬하여 제4 해쉬값(h_auth)을 산출하는 제1-5 단계와; 어카운트 모듈이, 제1 해쉬값(h_AA_ID)과 제4 해쉬값(h_auth)을 포함하는 제9 값에 대해 전자서명하여 제3 유효성 검증값을 산출하는 제1-6 단계와; 어카운트 모듈이, 제2 세션 ID(as_id)와, 제2 암호화값(AA_ID_)와, 제9 값과, 제3 유효성 검증값을 사용자 단말기로 전송하는 제1-7 단계와; 신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)와, 제2 토큰(r_token)과, 제2 암호화값(AA_ID_)와, 제9 값과, 제3 유효성 검증값과, 제2 제로 암호화값(Ze'_)을 사용자 단말기로부터 수신하여 제3 해쉬값의 검증을 요청받는 제1-8 단계와; 신원 확인 정보 저장 모듈이, 제2 암호화값(AA_ID_)와 제3 값(Cr)을 제2 수식에 의해 연산하여 제3 신원 확인 ID(R_ID)의 동형 암호화값인 제3 암호화값(R_ID_)을 생성하는 제1-9 단계와; 신원 확인 정보 저장 모듈이, 제3 암호화값(R_ID_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 제3 수식(tag1_ = ±R1*R_ID_ ± R2 ± R3*Ze'_)에 의해 제1 태그값(tag1)의 동형 암호화값인 제4 암호화값(tag1_)을 산출하는 제1-10 단계와; 신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 값(Cr)과, 제4 값(G)과, 제5 값(P)과, 제3 암호화값(R_ID_)과, 제4 암호화값(tag_)을 사용자 단말기로 전송하는 제1-11 단계와; 신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 신원 확인 ID(R_ID)의 연산값인 제6 값(R_ID$)과, 제1 태그값의 연산값인 제7 값(tag1$)을 사용자 단말기로부터 수신하는 제1-12 단계와; 신원 확인 정보 저장 모듈이, 제7 값을 검증하는 제1-13 단계와; 신원 확인 정보 저장 모듈이, 제3 유효성 검증값을 포함하는 제10 값에 대해 전자서명하여 제4 유효성 검증값을 생성하는 제1-14 단계와; 신원 확인 정보 저장 모듈이, 제9 값과, 제10 값과, 제4 유효성 검증값을 사용자 단말기로 전송하는 제1-15 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제2 세션 ID(as_id)와, 제9 값과, 제10 값과, 제4 유효성 검증값을 사용자 단말기로부터 수신하는 제1-14 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제4 해쉬값(h_auth)과, 제3 유효성 검증값과, 제4 유효성 검증값의 검증에 성공하면 제3 토큰(token)을 생성하고 사용자 단말기로 전달하는 제1-15 단계를 포함한다.
제1-5 단계에서, 해쉬되는 대상은 어카운트 모듈측 시간 정보(date_a_)를 더 포함하는 값일 수 있다.
제9 값은 어카운트 모듈측 시간 정보(date_a_)를 더 포함하는 값이 될 수 있다.
제10 값은, 신원 확인 정보 저장 모듈측 시간 정보(date_r)를 더 포함할 수 있다.
제1 수식은, 제1 랜덤값(Re)과 제2 랜덤값(Ra)을 곱한 값에 제1 신원 확인 정보(A_ID)를 더하고, 제2-1 랜덤값(Rc)과 제1 제로 암호화값(Ze_)을 곱하고, 노이즈를 더하는 수식이 될 수 있다.
제2 수식은, 제2 암호화값(AA_ID_)에 제3 값(Cr)을 곱하는 수식이 될 수 있다.
제3 수식은, 제3-1 랜덤값(R1)과 제3 암호화값(R_ID_)를 곱한 값에, 제3-2 랜덤값(R2)을 더하고, 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)의 곱을 더하는 수식이 될 수 있다.
제6 값은, 제4 값(G)제3 신원 확인 ID(R_ID) (mod 제5 값(P))이 될 수 있고, 제7 값은, 제4 값(G)제1 태그값(tag) (mod 제5 값(P))이 될 수 있으며, 제15 단계는, 제7 값이, 제6값(R_ID$)제3-1 랜덤값(R1)*제4 값(G)제3-2 랜덤값(R2) (mod 제5 값(P))와 동일한지를 비교하여 수행되는 단계일 수 있다.
본 발명에 의한 인증 방법에 의해 인증된 이후에 수행되는 온라인상의 의사 표시 방법은, 사용자 단말기와, 어카운트 모듈과, 신원 확인 정보 저장 모듈과, 블록 체인의 노드 모듈을 포함하는 환경에서 수행된다.
본 발명에 의한 의사 표시 방법은, 노드 모듈이, 의사 표시 대상 식별 정보(v_id)를 사용자 단말기로부터 수신하는 제2-1 단계와; 노드 모듈이, 제4 값(G)과, 제5 값(P)과, 제11 값(Cv)을 사용자 단말기로 전송하는 제2-2 단계와; 사용자 단말기가, 제1 랜덤값(Re)과, 제2 랜덤값(Ra)과, 제1 신원 확인 ID(A_ID)와, 제11 값(Cv)을 제4 수식에 의해 연산하여 의사 표시용 식별정보(BS)를 생성하는 제2-3 단계와; 사용자 단말기가, 의사 표시용 식별정보(BS)의 연산값(BS$)을 제12 값으로 산출하는 제2-4 단계와; 사용자 단말기가, 제12 값을 해쉬하여 제5 해쉬값(bs)을 산출하는 제2-5 단계와; 사용자 단말기가, 의사 표시값(voting)를 입력받는 제2-6 단계와; 사용자 단말기가, 의사표시 대상 식별정보(v_id)와, 제5 해쉬값(bs)과, 의사표시값(voting)을 포함하는 제13값의 해쉬값인 제6 해쉬값(hash(v_id, bs, voting)을 암호화하여 제5 암호화값을 산출하는 제2-7 단계와; 사용자 단말기가, 제1 제로 암호화값(Ze_)을 생성하는 제2-8 단계와; 어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제3 토큰(token)과, 제1 제로 암호화값(Ze_)과, 제5 암호화값을 사용자 단말기로부터 전송받아 제2 신원 확인 ID(AA_ID)와 블라인드 서명을 요청받는 제2-9 단계와; 어카운트 모듈이, 제2 암호화값(AA_ID_)을 산출하고 해쉬하여 제1 해쉬값(h_AA_ID)을 산출하는 제2-10 단계와; 어카운트 모듈이, 제5 암호화값에 대해 블라인드 서명을 수행하는 제2-11 단계와; 어카운트 모듈이, 제1 해쉬값(h_AA_ID)을 포함하는 제14 값에 대해 전자 서명하여 제5 유효성 검증값을 산출하는 제2-12 단계와; 어카운트 모듈이, 제2 암호화값(AA_ID_)과, 블라인드 서명값과, 제14 값과, 제5 유효성 검증값을 사용자 단말기로 전송하는 제2-13 단계와; 사용자 단말기가, 블라인드 서명값으로부터 제13 값에 대한 유효성 검증값인 제6 유효성 검증값을 획득하는 제2-14 단계와; 사용자 단말기가, 제2 제로 암호화값(Ze'_)을 생성하는 제2-15 단계와; 노드 모듈이, 의사표시 대상 식별 정보(v_id)와, 제2 암호화값(AA_ID_)과, 제2 제로 암호화값(Ze'_)과, 제14 값과, 제5 유효성 검증값을 사용자 단말기로부터 수신하여 의사표시용 식별정보(BS) 요청을 수신하는 제2-16 단계와; 노드 모듈이, 제2 암호화값(AA_ID_)과 제11 값(Cv)을 제5 수식에 의해 연산하여 제6 암호화값(BS_)을 산출하는 제2-17 단계와; 노드 모듈이, 제6 암호화값(BS_)과, 제2 제로 암호화값(Ze'_)을 신원 확인 정보 저장 모듈로 전송하여 제2 태그값(tag2)을 요청하는 제2-18 단계와; 신원 확인 정보 저장 모듈이, 제6 암호화값(BS_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 제6 수식(tag2_ = ±R1*BS_ ± R2 ± R3*Ze'_)에 의해 제2 태그값(tag2)의 동형 암호화값인 제7 암호화값(tag2_)을 산출하는 제2-19 단계와; 노드 모듈이, 제3-1 랜덤값(R1)과 제3-2 랜덤값(R2)의 해쉬값인 제7 해쉬값과, 의사표시 세션 ID(vs_id)와, 제7 암호화값(tag2_)을 신원 확인 정보 저장 모듈로부터 수신하는 제2-20 단계와; 노드 모듈이, 의사표시 세션 ID(vs_id)와, 제6 암호화값(BS_)과, 제7 암호화값(tag2_)과, 제7 해쉬값을 사용자 단말기로 전송하는 제2-21 단계와; 노드 모듈이, 의사표시 세션 ID(vs_id)와, 의사표시용 식별정보의 연산값인 제15 값(BS$)과, 제2 태그값의 연산값인 제16 값(tag2$)과, 제7 해쉬값과, 의사표시 대상 식별정보(v_id)와, 제5 해쉬값(bs)과, 의사표시값(voting)과, 제6 유효성 검증값을 사용자 단말기로부터 수신하는 제2-22 단계와; 노드 모듈이, 제15 값(BS$)과, 제16 값(tag2$)과, 의사 표시 세션 ID(vs_id)와, 제4 값(G)과, 제5 값(P)을 신원 확인 정보 저장 모듈로 전송하여 의사표시용 식별정보의 연산값(BS$)의 검증을 요청하는 제2-23 단계와; 노드 모듈이, 신원 확인 정보 저장 모듈로부터 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)을 수신하고 해쉬하여 제7 해쉬값과 비교하여 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)을 검증하는 제2-24 단계와; 노드 모듈이, 제2 태그값의 연산값(tag2$)과, 제5 해쉬값(bs)과, 제6 유효성 검증값을 검증하고 검증에 성공하면 의사표시값(voting)을 의사표시대상 식별정보(v_id)와, 제5 해쉬값(bs)과, 제6 유효성 검증값과 함께 노드 모듈에 저장하는 제2-25 단계를 포함한다.
제14 값은 어카운트 모듈측 시간 정보(date_a)를 더 포함할 수 있다.
제4 수식은, 제1 랜덤값(Re)과 제2 랜덤값(Ra)의 곱에 제1 신원 확인 ID(A_ID)를 더한 후에 제11 값(Cv)을 곱하는 수식이 될 수 있다.
의사 표시용 식별정보(BS)의 연산값(BS$)은 제4 값의사표시용 식별정보(BS) (mod P)로 산출될 수 있다.
제5 수식은, 제2 암호화값(AA_ID_)과 제11 값(Cv)을 곱하는 수식이 될 수 있다.
제6 수식은, 제3-1 랜덤값(R1)과 제6 암호화값(BS_)을 곱한 값에 제3-2 랜덤값(R2)을 더하고, 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)의 곱을 더하는 수식이 될 수 있다.
제2 태그값의 연산값(tag2$)은, 제4 값(G)제2 태그값(tag2) (mod P)로 산출될 수 있다.
본 발명에 의하면, 신원 확인 정보 저장 모듈의 등록과 인증 서버로 적격성 확인을 보증하며, 블록 체인에 의사 표시 결과를 올리는 노드와, 검증 기능을 하는 검증 서버를 분리함으로써 보안성을 고양하였으며, 블라인드 서명을 도입함으로써 의사 표시자와 의사표시간의 관계가 누설되는 위험성을 원천적으로 방지하는 효과가 있다. 또한, 0을 암호화한 제로 암호화값을 사용함으로써 다른 암호화값을 마스킹하여 보안성이 더욱 고양되는 효과도 기대할 수 있다. 그리고 검증 서버가 해쉬 연산을 하지 않고 사칙 연산만 하도록 함으로써 검증 서버에 걸리는 부하도 현저하게 저감하는 효과가 있다.
도 1 내지 도 4는 본 발명에 의한, 익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법의 흐름도.
도 5 내지 도 8은 본 발명에 의한, 사용자 인증을 수행하는 방법의 흐름도.
도 9 내지 12는 본 발명에 의한, 온라인상의 의사 표시 확인 방법의 흐름도.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 자세하게 설명한다.
본 명세서에서 수행되는 정보(데이터) 전송/수신 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것 뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서 "모듈"이라 함은 범용적인 하드웨어와 그 기능을 수행하는 소프트웨어의 논리적 결합을 의미한다.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 필수적이지 않은 특정 구성요소를 배제하거나 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
본 발명은 전자적 연산이 가능한 컴퓨터 등의 전자적 연산 장치에 의해서 수행되며, 후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터 및 행렬, 텐서 및 다항식도 포함하는 광의의 개념으로 정의된다.
본 명세서에서 특정값에 대해 암호화 또는 해쉬 등과 같은 연산을 하여 소정의 값을 획득(산출, 생성)한다는 의미는 해당 특정값 뿐만 아니라 해당 특정값의 변형값(예를 들어, 특정값에 소정의 값을 추가로 연산하거나 소정의 규칙에 따라서 해당 특정값을 변화시키는 등의 과정을 통해서 산출된 다른 값)에 대한 암호화 또는 해쉬 등의 연산도 포함하는 것으로 정의된다. 또한, 본 명세서에서 "해쉬"는 단방향 함수 연산의 의미로서 범용적인 의미를 가지는 것으로 정의된다.
본 명세서에서 "의사 표시"라 함은 사용자가 소정의 주제나 이슈에 대한 본인의 의사를 표시하는 것으로서 예를 들어, 전자 투표, 토론, 온라인 콘텐츠에 대한 댓글 등 사용자가 의사를 표시할 수 있는 분야라면 모두 포함한다.
그리고 본 발명은 소정의 주제나 이슈에 대해서 한차례 표시하는 의사 표시뿐만 아니라 동일한 주제에 대해 복수 번에 걸쳐서 표시하는 의사 표시도 포함하는 것으로 정의된다.
본 명세서에서 "소정의 값_"은 "소정의 값"에 대한 동형 암호화한 값을 의미하며, 특별히 다르게 언급되지 않는 한 본 명세서에서 "암호화"는 동형 암호화를 의미하는 것으로 해석될 수 있다. 다만, 본 발명의 기술적 사상의 본질적 요소를 침해하지 않는 범위에서 동형 암호화가 아닌 다른 방식의 암호화가 적용될 수도 있다는 점이 이해되어야 한다.
본 명세서에서 HE(*)를 괄호 안의 값의 동형 암호화값으로 표기한다.
도 1에는 본 발명에 의한 익명 디지털 아이덴티티 수립 방법의 흐름도가 도시되어 있다. 본 명세서에서 "익명 디지털 아이덴티티"는, 오프라인상에서 누구인지 특정할 수는 없지만 디지털 환경에서의 유일한 신분으로 증빙될 수 있는 객체를 의미하며, 소정의 자격 증명까지 포함하는 개념으로 정의된다.
본 발명에 의한 신원 확인 정보 등록 방법이 수행되는 환경은, 사용자 단말기(10)와, 어카운트 모듈(20)과, 신원 확인 정보 저장 모듈(30; repository)을 포함한다. 사용자 단말기(10)는, 전자적 연산이 가능하고 데이터 통신이 가능한 전자 장치라면 어느 것이든 포함될 수 있으며, 예를 들어 스마트폰, 데스크탑 PC, 태블릿 PC 등이 포함될 수 있다.
어카운트 모듈(20)에는, 고유한 어카운트 모듈 식별 정보가 부여되어 있으며, 사용자별로 생성된다. 반드시 그러해야 하는 것은 아니지만 어카운트 모듈(20)은 블록체인에 포함될 수 있다. 사용자는 사용자별로 고유하게 부여되는 어카운트 모듈(20)을 통해서 온라인상 활동이나 작업을 수행할 수 있다. 어카운트 모듈(20)은 사용자 개인 정보를 보유하지 않으며, 후술하는 바와 같이 익명 디지털 아이덴티티를 증명하는 토큰만 보유하고 있다. 사용자의 요청에 따라 다양한 디지털 아이덴티티을 증명하는 토큰을 사용자에게 제공하여 사용자가 다양한 온라인 서비스를 이용할 수 있다.
신원 확인 정보 저장 모듈(30; Repository module)은 서버로서 역할을 수행할 수 있으며, 후술하는 바와 같이 사용자의 개인 정보를 보유하지 않으며, 사용자가 기존에 등록되어 있는 익명의 사용자인지를 확인할 수 있는 정보 예를 들어 지문이나 홍채 정보를 보유할 수는 있지만, 그 정보를 사용자를 구체적으로 특정할 수 있는 다른 정보와 매칭시켜서 저장하지는 않는다.
단계(100)에서 사용자 단말기(10)는 비밀키(sk)를 생성한다. 후술하는 암호화에 공개키 암호화 방법을 적용하는 경우에는 공개키도 생성할 수 있다.
사용자 단말기(10)는 제1 랜덤값(Re)을 생성하고(단계 101), 비밀키(sk)와 제1 랜덤값(Re)을 저장한다(단계 102).
다음으로 사용자 단말기(10)는, 제1 랜덤값(Re)과 0을 암호화하여 제1 암호화값(Re_)과 제1 제로 암호화값(Ze_)을 생성한다(단계103).
사용자 단말기(10)는, 제1 암호화값(Re_)과 제1 제로 암호화값(Ze_)을 어카운트 모듈(20)로 전송하여 등록 절차의 개시를 요청한다(단계 104).
어카운트 모듈(20)은, 제1 신원 확인 ID(A_ID) 및 제2 랜덤값(Ra)을 생성하고(단계 105), 이 두 값을 제1 암호화값(Re_)과 함께 저장한다(단계 106).
어카운트 모듈(20)은 사용자별로 고유한 어카운트 모듈 식별 정보가 부여되는데 제1 신원 확인 ID(A_ID)가 그 역할을 할 수 있다.
어카운트 모듈(20)은, 제1 토큰(p_token)을 생성한다(단계 107). 어카운트 모듈(20)은 다음 단계(108)에서 제2 암호화값(AA_ID_)를 생성한다. 제2 암호화값(AA_ID_)은 다음과 같은 제1 수식에 의해서 생성될 수 있다.
AA_ID_ = f1(Ra, Re_, A_ID, Rc, Ze_) = Ra*Re_ + A_ID + Rc*Ze_ = HE(f1(Ra, Re, A_ID, Rc, Ze_) = HE(f1(Ra, Re, A_ID))
제2-1 랜덤값(Rc)는 어카운트 모듈(20)이 생성한 랜덤값이다.
0의 암호화값인 Ze_는 복호화하면 0이 되기 때문에 연산에는 관여할 수 없는데 수식에 포함시키면 마스킹함으로써 다른 값을 알 수 없게 하는 역할을 한다.
위 수식에 동형 암호문의 연산에 영향이 없을 정도의 작은 노이즈(noise)를 더하거나 뺌으로써 실제 값을 더 가릴 수도 있다.
단계(109)에서 어카운트 모듈(20)은, 제2 암호화값(AA_ID)에 단방향 함수 연산을 수행하여 제1 해쉬값(h_AA_ID)을 산출한다.
어카운트 모듈(20)은 단계(110)에서 제2 해쉬값(h_enroll)을 산출한다. 제2 해쉬값(h_enroll)은 다음과 같이 산출된다.
h_enroll = Hash(제1 값)
제1 토큰(p_token)과 제1 해쉬값(h_AA_ID)을 포함하는 값을 제1 값으로 정의한다. 제1 값은, 어카운트 모듈측의 시간 정보(date_a)를 더 포함할 수 있다.
어카운트 모듈(20)은, 제1 유효성 검증값을 산출한다(단계 111).
본 명세서에서는 설명의 편의를 위해 "유효성 검증값" 또는 "전자 서명값" 등의 용어를 사용하지만, 정보의 위변조 여부를 판단할 수 있는 방식이라면 통상의 전자 서명 이외에도 어느 것이든 포함되는 것으로 이해되어야 한다. 유효성 검증값은 통상의 전자서명값을 포함하는 것으로 정의된다.
제1 유효성 검증값은 다음과 같이 산출된다.
Sign_1 = Sign[제2 값]
본 명세서에서는 제1 해쉬값(h_AA_ID)과 제2 해쉬값(h_enroll)을 포함하는 값을 제2 값으로 정의한다. 제2 값은 어카운트 모듈측 시간 정보(date_a)를 더 포함할 수 있다.
어카운트 모듈(20)은, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 랜덤값(Ra)과, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값을 사용자 단말기(10)로 전송한다(단계 112).
사용자 단말기(20)는, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 랜덤값(Ra)을 저장한다(단계 113). 이 저장된 값들은 후술하는 제3 신원 확인 ID(R_ID)의 검증에 이용된다.
어카운트 모듈(20)로부터 제1 신원 확인 ID(A_ID) 등을 수신한 사용자 단말기(10)는, 신원 확인 정보 저장 모듈(30)에 익명 아이덴티티 등록 절차를 개시한다. 먼저, 신원 확인 정보 저장 모듈(30)은, 소정의 상수인 제3 값(Cr), 제4 값(G) 및 제5 값(P)를 보유하고 있다고 가정한다. 제5 값(P)는 큰 소수가 될 수 있다.
사용자 단말기(10)는 0을 암호화하여 제2 제로 암호화값(Ze'_)을 생성한다(단계 114).
사용자 단말기(10)는, 신원 확인 정보(biometric)와, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값과, 제2 제로 암호화값(Ze'_)을 신원 확인 정보 저장 모듈(30)로 전송하여 익명 디지털 아이덴티티의 등록을 요청한다(단계 115).
신원 확인 정보 저장 모듈(30)은, 제1 유효성 검증값과 제1 해쉬값(h_AA_ID)을 검증한다(단계 116). 제1 해쉬값(h_AA_ID)의 검증은 단계(115)에서 전달받은 제2 암호화값(AA_ID_)을 해쉬한 값이, 역시 단계(115)에서 전달받은 제2 값에 포함된 제1 해쉬값(h_AA_ID)와 일치하는지를 판단함으로써 수행된다.
신원 확인 정보 저장 모듈(30)은, 단계(115)에서 전달받은 신원 확인 정보(biometric)을 체크한다. 기존에 등록된 다른 사용자의 신원 확인 정보들과 비교해서 동일인이 존재하는지 여부를 체크한다. 동일인이 존재하지 않을 경우에만 다음 단계로 진행하고 존재할 경우에는 예외 처리한다.
신원 확인 정보 저장 모듈(30)은, 제3 암호화값(R_ID_)을 산출한다(단계 118). 제3 암호화값(R_ID_)은 제3 신원 확인 ID(R_ID)의 동형 암호화값으로서 다음과 같은 제2 수식에 의해 산출될 수 있다.
R_ID_ = f2(AA_ID_, Cr) = f2[(Ra*Re_ + A_ID + Rc*Ze_), Cr)] = f2[HE(f1(Ra, Re, A_ID), Cr] = HE[f2{(f1(Ra, Re, A_ID)), Cr}]
즉 R_ID = f2{(f1(Ra, Re, A_ID)), Cr}가 될 수 있다.
이 수식은 사용자 단말기가 제3 신원 확인 ID(R_ID)를 검증할 때 사용될 수 있다.
f2(AA_ID_, Cr) = AA_ID_*Cr 이 될 수 있다.
신원 확인 정보 저장 모듈(30)은, 제1 태그값(tag1)의 동형 암호화값인 제4 암호화값(tag1_)을 다음과 같은 제3 수식에 의해서 산출한다(단계 119).
tag1_ = ±R1*R_ID_ ± R2 ± R3*Ze'_
제3 수식은, 제3 암호화값(R_ID_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 수식이다. 제3-1 랜덤값(R1) 내지 제3-3 랜덤값(R3)는 신원 확인 정보 저장 모듈(30)에 의해서 생성될 수 있다.
신원 확인 정보 저장 모듈(30)은 등록 과정에 관한 제1 세션을 저장한다(단계 120). 저장되는 정보는, 제1 세션 ID(rs_id), 제3-1 랜덤값(R1), 제3-2 랜덤값(R2), 신원 확인 정보(biometric), 제2 값, 제1 유효성 검증값을 포함할 수 있다.
신원 확인 정보 저장 모듈(30)은, 제1 세션 ID(rs_id)와, 제3 암호화값(R_ID_)과, 제4 암호화값(tag1_)과, 제3 값 내지 제5 값을 사용자 단말기(10)로 전송한다(단계 121).
사용자 단말기(10)는, 제3 암호화값(R_ID_)과 제4 암호화값(tag1_)을 복호화하여 제3 신원 확인 ID(R_ID)와, 제1 태그값(tag1)을 획득한다(단계 122).
단계(100)에서 사용자 단말기(10)가 생성한 비밀키를 신원 확인 정보 저장 모듈(30)과 미리 공유해서 암호화/복호화에 사용할 수도 있고, 공개키 암호화 방식을 사용하는 경우에는 사용자 단말기(10)가 생성한 공개키를 이용하여 신원 확인 정보 저장 모듈(30)이 전술한 암호화를 수행할 수도 있다.
사용자 단말기(10)는, 제3 신원 확인 ID(R_ID)를 검증한다(단계 123). 이 검증 과정은 다음과 같이 수행된다.
R_ID =? f1(Ra, Re, A_ID)*Cr = (Ra*Re + A_ID)*Cr
단계(124)에서 사용자 단말기(10)는 제6 값(R_ID$) 및 제7 값(tag1$)을 산출한다. 제6 값은 제3 신원 확인 ID(R_ID)에 대해 소정의 연산을 한 결과값이며, 제7 값은 제1 태그값(tag1)에 대해 소정의 연산을 한 결과값이다. 예를 들어, 다음과 같은 연산을 통해 제6 값과 제7 값이 산출될 수 있다.
R_ID$ = GR_ID (mod P)
tag1$ = Gtag1 (mod P)
사용자 단말기(10)는, 제1 세션 ID(rs_id)와, 제6 값(R_ID$)과 제7 값(tag1$)을 신원 확인 정보 저장 모듈(30)로 전송한다(단계 125).
신원 확인 정보 저장 모듈(30)은 제7 값(tag1$)을 검증한다(단계 126).
제7 값(tag1$)의 검증은 다음과 같이 수행된다.
tag1$ =? (R_ID$R1*GR2) (mod P)
검증에 성공하면 제6 값(R_ID$)을 해쉬하여 제3 해쉬값(r_id)을 산출하고(단계 127), 신원 확인 정보(biometric)와 함께 저장한다(단계 128).
신원 확인 정보 저장 모듈(30)은, 제2 토큰(r_token)을 생성한다(단계 129). 단계(130)에서는 제1 유효성 검증값을 포함하는 제8 값에 대해서 전자서명하여 제2 유효성 검증값을 산출한다. 제8 값은, 신원 확인 정보 저장 모듈(30)측의 시간 정보(date_r)를 더 포함할 수 있다. 이 시간 정보를 사용하면 소정의 시간 동안만 유효한 정보임을 나타낼 수 있고 인증이나 검증할 때에 그 시간이 경과하면 유효하지 않은 정보로 판단할 수 있다.
신원 확인 정보 저장 모듈(30)은, 제3 해쉬값(r_id)과, 제2 토큰(r_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 사용자 단말기(10)로 전송한다(단계 131)
사용자 단말기(10)는, 제3 해쉬값(r_id)을 검증하는데, 단계(124)에서 산출하여 가지고 있던 제6 값(R_ID$)을 해쉬하여 단계(131)에서 수신한 제3 해쉬값(r_id)과 비교하여 검증을 수행한다(단계 132).
검증에 성공하면 사용자 단말기(10)는, 제3 해쉬값(r_id)과 제2 토큰(r_token)을 저장한다(단계 133).
사용자 단말기(10)는, 어카운트 모듈(20)에 신원 확인 정보 저장 모듈 등록을 요청한다(단계 134). 이 요청은, 사용자의 익명 디지털 아이덴티티가 신원 확인 정보 저장 모듈에 등록되었음을 어카운트 모듈(20)이 등록해 줄 것을 요청하는 것이다. 이 때에는 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 전송한다.
어카운트 모듈(20)은, 제1 토큰(p_token)을 검증하고(단계 135), 제2 해쉬값(h_enroll)을 검증한다(단계 136). 제1 토큰(p_token)의 검증은 단계(107)에서 생성한 제1 토큰과 비교하여 수행된다. 제2 해쉬값(h_enroll)의 검증은, 단계(134)에서 수신한 제2 해쉬값(h_enroll)을, 어카운트 모듈(20)이 가지고 있던 제1 값을 해쉬한 값과 비교하여 수행된다.
어카운트 모듈(20)은, 제1 유효성 검증값과, 제2 유효성 검증값을 검증한다(단계 137). 제1 유효성 검증값을 검증함으로써 수신한 제2 값이 어카운트 모듈(20)이 서명한 정상적인 데이터임을 확인하고, 제2 유효성 검증값을 검증함으로써 수신한 제8 값이 신원 확인 정보 저장 모듈(30)이 서명한 정상적인 데이터임을 확인한다.
검증에 성공하면 어카운트 모듈(20)이, 사용자의 익명 디지털 아이덴티티가 신원 확인 정보 저장 모듈(30)에 성공적으로 등록되었음을 등록하고 그 사실을 사용자 단말기(10)로 전송한다. 이 때 사용자의 식별 정보 제1 신원 확인 ID(A_ID)를 매칭시킨다. 이 제1 신원 확인 ID(A_ID)는, 사용자와 어카운트 모듈(20)간에만 공유하며 신원 확인 정보 저장 모듈(30)은 알 수 없기 때문에 보안성이 고양된다.
도 5 내지 도 8에는 온라인상의 의사 표시에 앞서 사전 인증하는 방법의 흐름도가 도시되어 있다.
도 5 내지 도 8의 단계에 앞서서 사용자는 사용자 단말기(10)로 신원 확인 정보 인증을 먼저 할 수도 있다. 예를 들어, 사용자 단말기(10)로 지문 인증을 하거나 홍채 인증을 한 후에 도 5 내지 도 8의 과정을 거치게 할 수 있다.
사용자 단말기(10)는 먼저 0을 암호화하여 제1 암호화값(Ze_)을 산출한다(단계 200). 사용자 단말기(10)는 어카운트 모듈(20)에 인증 절차 개시를 요청한다(단계 201). 단계(201)에서는 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제1 제로 암호화값(Ze_)이 어카운트 모듈(20)로 전송된다.
어카운트 모듈(20)은 단계(201)에서 수신한 제1 토큰(p_token)이 단계(107)에서 생성한 토큰과 동일한지를 판단하여 제1 토큰(p_token)을 검증한다(단계 202). 어카운트 모듈(20)은 수신한 제1 신원 확인 ID(A_ID)가 존재하는지 검색하고 존재하면 인증 세션 즉 제2 세션 ID(as_id)을 생성한다(단계 203).
어카운트 모듈(20)은, 제2 암호화값(AA_ID_)을 생성하고(단계 204), 제1 해쉬값(h_AA_ID)을 생성한다.
제2 암호화값의 생성은 단계(108)과 같은 수식으로, 제1 해쉬값 생성은 단계(109)와 같은 방식으로 생성한다.
어카운트 모듈(20)은, 제4 해쉬값(h_auth)을 다음과 같이 생성한다.
h_auth = Hash(as_id, h_AA_ID)
해쉬하는 값에 어카운트 모듈측 시간 정보(date_a)를 더 포함할 수도 있다.
다음으로, 어카운트 모듈(20)은, 제1 해쉬값(h_AA_ID)과 제4 해쉬값(h_auth)을 포함하는 제9 값을 전자서명하여 제3 유효성 검증값을 산출한다(단계 207).
제9 값은, 어카운트 모듈측 시간 정보(date_a)를 더 포함할 수 있다.
어카운트 모듈(20)은, 제2 세션 ID(as_id)와, 제2 암호화값(AA_ID_)과, 제9 값과, 제3 유효성 검증값을 사용자 단말기(10)로 전송한다(단계 208).
사용자 단말기(10)는 제2 세션 ID(as_id)를 저장하고(단계 209), 0을 암호화하여 제2 제로 암호화값(Ze'_)을 산출한다(단계 210).
사용자 단말기(10)는, 단계(211)에서 제3 해쉬값(r_id)의 검증을 신원 확인 정보 저장 모듈(30)에 요청한다. 단계(211)에서, 제3 해쉬값(r_id)과, 제2 토큰(r_token)과, 제2 암호화값(AA_ID_)과, 제9 값과, 제3 유효성 검증값과, 제2 제로 암호화값(Ze'_)을 전송한다.
신원 확인 정보 저장 모듈(30)은, 제3 해쉬값(r_id)이 제2 토큰(r_token)과 매칭되는지로 검증을 수행한다(단계 212).
신원 확인 정보 저장 모듈(30)은, 제3 유효성 검증값과, 제9 값에 포함되어 수신한 제1 해쉬값(h_AA_ID)을 검증한다(단계 213).
신원 확인 정보 저장 모듈(30)은, 단계(214)에서 제3 암호화값(R_ID_)을 산출하고, 단계(215)에서 제4 암호화값(tag1_)을 생성한다. 이 과정은 단계(118)과 단계(119)와 동일하므로 자세한 설명을 생략한다.
신원 확인 정보 저장 모듈(30)은, 세션을 저장하는데, 제1 세션 ID(rs_id)와, 제3 해쉬값(r_id)과, 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)과, 제9 값과, 제3 유효성 검증값을 저장한다(단계 216).
신원 확인 정보 저장 모듈(30)은, 제1 세션 ID(rs_id)와, 제3 암호화값(R_ID_)과, 제4 암호화값(tag1_)과, 제3 내지 제5 값(Cr, G, P)을 사용자 단말기(10)로 전송한다(단계 217).
단계(218) 내지 단계(222)은 각각 단계(122) 내지 단계(126)에 대응하므로 자세한 설명은 전술한 바로 갈음한다.
신원 확인 정보 저장 모듈(30)은, 단계(223)에서 수신한 제6 값(R_ID$)을 해쉬한 값과 제3 해쉬값(r_id)을 대비하여 제3 해쉬값(r_id)을 검증한다(단계 223).
신원 확인 정보 저장 모듈(30)은, 제3 유효성 검증값을 포함하는 제10 값에 대해서 전자서명하여 제4 유효성 검증값을 산출한다(단계 224). 제10 값은, 신원 확인 정보 저장 모듈측 시간 정보(date_r)를 더 포함할 수 있다.
신원 확인 정보 저장 모듈(30)은, 제9 값과, 제10 값과, 제4 유효성 검증값을 사용자 단말기(10)로 전송한다(단계 225).
사용자 단말기(10)는, 어카운트 모듈(20)에 인증을 요청하는데 이때 제1 신원 확인 ID(A_ID)와, 제2 세션 ID(as_id)와, 제9 값과, 제10 값과, 제4 유효성 검증값도 전송된다(단계 226).
어카운트 모듈(20)은, 단계(227)에서 제2 세션 ID(as_id)와, 제4 해쉬값(h_auth)을 검증한다. 단계(228)에서는, 단계(226)에서 수신한 제10 값에 포함되어 있는 제3 유효성 검증값과, 제4 유효성 검증값을 검증한다. 검증에 성공하면 제3 토큰(token)을 생성하고(단계 229), 이를 사용자 단말기(10)로 전송하여 사전 인증 절차를 완료한다.
도 9 내지 도 12에는 온라인상의 의사 표시 확인 방법의 흐름도가 도시되어 있다.
온라인상의 의사 표시 확인 방법이 수행되는 환경은, 사용자 단말기(10)와, 어카운트 모듈(20)과, 노드(40)와, 검증 서버(50)를 포함한다. 노드(40)는 블록 체인에 온라인상의 의사 표시 결과를 올리는 역할을 한다. 노드(40)는, 제4 값(G)과, 제5 값(P)을 가지고 있으며, 제11 값(Cv)도 가지고 있다.
온라인상의 의사 표시를 하고자 하는 사용자는 사용자 단말기(10)를 통해서 노드(40)에 의사 표시 대상 식별 정보(v_id)를 제공한다(단계 300). 노드(40)는, 제4 값(G)과, 제5 값(P)과, 제11 값(Cv)을 사용자 단말기(10)로 전송한다.
사용자 단말기(10)는, 제5 해쉬값(bs)을 산출한다(단계 302). 제5 해쉬값(bs)의 산출 과정은 다음과 같다.
BS = f4(Ra, Re, A_ID, Cv) = (Ra*Re + A_ID)*Cv
여기서 BS는 의사 표시용 사용자 식별 정보이다. 즉 온라인상 의사 표시를 할 때에 사용하는 식별 정보를 의미한다
BS$ = GBS (mod P)
BS$는 의사 표시용 사용자 식별 정보의 연산값으로 제12 값으로 정의한다.
bs = Hash(BS$)
사용자는 사용자 단말기(10)를 통해 의사 표시값을 입력한다(단계 303).
사용자 단말기(10)는, 제5 암호화값을 다음과 같이 산출한다(단계 304).
제5 암호화값 = Enc(hash(v_id, bs, voting))
의사 표시 대상 식별 정보(v_id)와, 제5 해쉬값(bs)과, 의사 표시값(voting)을 포함하는 값을 제13 값으로 정의하고, 제13 값에 대한 해쉬값을 제6 해쉬값으로 정의한다. 제5 암호화값은 제6 해쉬값을 암호화한 값이다.
사용자 단말기(10)는, 단계(305)에서 0을 암호화하여 제1 제로 암호화값(Ze_)을 산출한다.
사용자 단말기(10)는, 제2 신원 확인 ID(AA_ID)와 블라인드 서명을 어카운트 모듈(20)에 요청한다(단계 306). 이 때, 제1 신원 확인 ID(A_ID)와, 제3 토큰(token)과, 제1 제로 암호화값(Ze_)과, 제5 암호화값이 어카운트 모듈(20)로 전송된다.
어카운트 모듈(20)은, 수신한 제1 신원 확인 ID(A_ID)를 검증하고(단계 307), 제2 암호화값(AA_ID_)을 산출한다(단계 308). 제2 암호화값(AA_ID_)의 산출은 단계(108) 및 단계(204)와 동일하므로 자세한 설명은 생략한다.
이어서 어카운트 모듈(20)은, 제2 암호화값(AA_ID_)을 해쉬하여 제1 해쉬값(h_AA_ID)을 산출한다(단계 309).
어카운트 모듈(20)은, 제5 암호화값에 대해서 블라인드 서명을 하고(단계 310), 제1 해쉬값(h_AA_ID)을 포함하는 제14 값에 대해서 전자서명하여 제5 유효성 검증값을 산출한다(단계 311). 제14 값은 어카운트 모듈측 시간 정보(date_a)를 더 포함할 수 있다.
어카운트 모듈(20)은, 제2 암호화값(AA_ID_)과, 블라인드 서명값과, 제14 값과, 제5 유효성 검증값을 사용자 단말기(10)로 전송한다(단계 312).
사용자 단말기(10)는, 블라인드 서명값으로부터 제6 유효성 검증값을 획득하고 저장한다. 제6 유효성 검증값은, 제13 값에 대한 전자서명값이 될 수 있다.
사용자 단말기(10)는, 0을 암호화하여 제2 제로 암호화값(Ze'_)을 획득한다(단계 314).
사용자 단말기(10)는, 노드(40)측에 의사 표시용 사용자 식별 정보(BS)를 요청한다(단계 315). 이 때에, 의사 표시 대상 식별 정보(v_id)와, 제2 암호화값(AA_ID_)과, 제2 제로 암호화값(Ze'_)과, 제14 값과, 제5 유효성 검증값이 노드(40)로 전송된다.
노드(40)는, 제5 유효성 검증값과 제1 해쉬값(h_AA_ID)을 검증한다(단계 316). 노드(40)는, 제6 암호화값(BS_)을 산출한다(단계 317). 제6 암호화값(BS_)은 의사 표시용 사용자 식별 정보(BS)의 동형 암호화값인데, 제2 암호화값(AA_ID_)와 제11 값(Cv)의 곱으로 산출한다.
노드(40)는, 검증 서버(50)에 제2 태그값(tag2)을 요청한다(단계 318). 이 때, 제6 암호화값(BS_)과 제2 제로 암호화값(Ze'_)이 전송된다.
검증 서버(50)는, 제2 태그값의 암호화값인 제7 암호화값(tag2_)을 다음과 같이 산출한다(단계 319).
tag2_ = ±R1*BS_ ± R2 ± R3*Ze'_
전술한 제1 태그값의 암호화값인 제4 암호화값의 산출과는, 제3-1 랜덤값(R1)에 곱해지는 값이 제6 암호화값(BS_)라는 점에서 상이할 뿐 나머지는 대동소이하다.
검증 서버(50)는 의사 표시 확인 과정과 관련된 세션 정보 즉 제3 세션을 저장한다(단계 320). 저장되는 정보는 제3 세션 ID(vs_id)와, 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)을 포함할 수 있다.
검증 서버(50)는, 제3-1 랜덤값(R1)과 제3-2 랜덤값(R2)을 해쉬한 제7 해쉬과, 제3 세션 ID(vs_id)와, 제7 암호화값(tag2_)을 노드(40)로 전송한다(단계 321).
노드(40)는, 제3 세션 ID(vs_id)와, 제6 암호화값(BS_)과, 제7 암호화값(tag2_)과, 제7 해쉬값을 사용자 단말기(10)로 전송한다(단계 322).
사용자 단말기(10)는 제6 암호화값(BS_)과 제7 암호화값(tag2_)을 복호화하여 의사 표시용 사용자 식별 정보(BS)와, 제2 태그값(tag2)을 획득한다(단계 323).
사용자 단말기(10)는, 의사 표시용 사용자 식별 정보(BS)를 검증한다(단계 324). 검증은, 단계(323)에서 획득한 의사 표시용 사용자 식별 정보(BS)가, 단계(302)에서의 수식에 의해 산출된 값과 같은지를 판단해서 수행된다.
사용자 단말기(10)는, 제15 값과 제16 값을 산출한다(단계 325).
제15 값은 의사 표시용 사용자 식별 정보(BS)의 연산값(BS$)이고, 제16 값은 제2 태그값(tag2)의 연산값(tag2$)인데 다음과 같이 산출될 수 있다.
BS$ = GBS (mod P)
tag2$ = Gtag2 (mod P)
사용자 단말기(10)는, 제3 세션 ID(vs_id)와, 제15 값(BS$)과, 제16 값(tag2$)과, 제7 해쉬값과, 의사 표시 대상 식별 정보(v_id)와, 제5 해쉬값(bs)과, 의사 표시값(voting)과, 제6 유효성 검증값을 노드(40)로 전송한다(단계 326).
노드(40)는 수신한 제15 값(BS$)과 제16값(tag2$)의 검증을 검증 서버(50)에 요청한다(단계 327). 이 때, 제3 세션 ID(vs_id)와, 제15 값(BS$)과, 제16 값(tag2$)과, 제4 값(G)과, 제5 값(P)을 검증 서버(50)로 전송한다.
검증 서버(50)는, 제16 값(tag2$)을 다음과 같이 검증한다.
tag2$ =? (BS$R1*GR2) (mod P)
검증에 성공하면 검증 서버(50)는, 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)을 노드(40)로 전송한다. 노드(40)는, 수신한 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)을 해쉬하여 단계(321)에서 수신한 제7 해쉬값과 비교하여 제3-1 랜덤값(R1) 및 제3-2 랜덤값(R2)을 검증한다(단계 330).
노드(40)는, 다음과 같이 제16 값(tag2$)을 검증한다(단계 331).
tag2$ =? BS$R1*GR2 (mod P)
다음으로 노드(40)는, 제15 값(BS$)을 해쉬하여 단계(326)에서 수신한 제5 해쉬값(bs)과 대비하여 제5 해쉬값을 검증한다(단계 332).
노드(40)는 또한, 단계(326)에서 수신한 제6 유효성 검증값도 검증한다(단계 333). 이 모든 검증이 성공하면 노드(40)는 의사 표시 결과(voting)를, 의사 표시 대상 식별 정보(v_id)와, 제5 해쉬값(bs)과, 제6 유효성 검증값과 함께 블록 체인에 저장하고(단계 334), 그 결과를 사용자 단말기(10)로 전송한다.
본 발명에 의하면, 블록 체인에 의사 표시 결과를 올리는 노드와, 검증 기능을 하는 검증 서버를 분리함으로써 보안성을 고양하였으며, 블라인드 서명을 도입함으로써 의사 표시 결과가 누설되는 위험성을 원천적으로 방지하는 효과가 있다. 또한, 0을 암호화한 제로 암호화값을 사용함으로써 다른 암호화값을 마스킹하여 보안성이 더욱 고양되는 효과도 기대할 수 있다. 그리고 검증 서버가 해쉬 연산을 하지 않고 사칙 연산만 하도록 함으로써 검증 서버에 걸리는 부하도 저감하는 효과가 있다.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
10: 사용자 단말기
20: 어카운트 모듈
30: 신원 확인 정보 저장 모듈
40: 노드
50: 검증 서버

Claims (21)

  1. 사용자 단말기와, 어카운트 모듈과, 신원 확인 정보 저장 모듈을 포함하는 환경에서 사용자의 익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법에 있어서,
    어카운트 모듈이, 사용자 단말기로부터 제1 랜덤값(Re)의 동형 암호화값인 제1 암호화값(Re_)과 제1 제로 암호화값(Ze_)을 전달받고 어카운트 모듈 등록 요청을 수신하는 제1 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)와 제2 랜덤값(Ra)을 생성하는 제2 단계와,
    어카운트 모듈이, 제1 토큰(p_token)을 생성하는 제3 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)에, 제1 암호화값(Re_)과 제2 랜덤값(Ra)과 제1 제로 암호화값을 제1 수식에 의해 연산하여 제2 신원 확인 ID(AA_ID)의 암호화값인 제2 암호화값(AA_ID_)을 생성하는 제4 단계와,
    어카운트 모듈이, 제2 암호화값(AA_ID_)을 해쉬하여 제1 해쉬값(h_AA_ID)을 산출하는 제5 단계와,
    어카운트 모듈이, 제1 토큰(p_token) 및 제1 해쉬값(h_AA_ID)을 포함하는 제1 값에 대해서 해쉬하여 제2 해쉬값(h_enroll)을 산출하는 제6 단계와,
    어카운트 모듈이, 제1 해쉬값(h_AA_ID) 및 제2 해쉬값(h_enroll)을 포함하는 제2 값에 대해서 전자서명하여 제1 유효성 검증값을 생성하는 제7 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 랜덤값(Ra)과, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값을 사용자 단말기로 전송하는 제8 단계와,
    신원 확인 정보 저장 모듈이, 신원 확인 정보(biometric)와, 제2 암호화값(AA_ID_)과, 제2 값과, 제1 유효성 검증값과, 제2 제로 암호화값(Ze'_)을 사용자 단말기로부터 수신하는 제9 단계와,
    신원 확인 정보 저장 모듈이, 제2 암호화값(AA_ID_)과 제3 값(Cr)을 제2 수식에 의해 연산하여 제3 신원 확인 ID(R_ID)의 동형 암호화값인 제3 암호화값(R_ID_)를 생성하는 제10 단계와,
    신원 확인 정보 저장 모듈이, 제3 암호화값(R_ID_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 제3 수식(tag1_ = ±R1*R_ID_ ± R2 ± R3*Ze'_)에 의해 제1 태그값(tag1)의 동형 암호화값인 제4 암호화값(tag1_)을 산출하는 제11 단계와,
    신원 확인 정보 저장 모듈이, 신원 확인 정보(biometric)와, 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)과, 제1 세션 ID(rs_id)와, 제2 값과, 제1 유효성 검증값을 저장하는 제12 단계와,
    신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 값(Cr)과, 제4 값(G)과, 제5 값(P)과, 제3 암호화값(R_ID_)과, 제4 암호화값(tag_)을 사용자 단말기로 전송하는 제13 단계와,
    신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 신원 확인 ID(R_ID)의 연산값인 제6 값(R_ID$)과, 제1 태그값의 연산값인 제7 값(tag1$)을 사용자 단말기로부터 수신하는 제14 단계와,
    신원 확인 정보 저장 모듈이, 제7 값을 검증하는 제15 단계와,
    신원 확인 정보 저장 모듈이, 제6 값을 해쉬하여 제3 해쉬값(r_id)을 산출하는 제16 단계와,
    신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)과 신원 확인 정보를 저장하는 제17 단계와,
    신원 확인 정보 저장 모듈이, 제2 토큰(r_token)을 생성하는 제18 단계와,
    신원 확인 정보 저장 모듈이, 제1 유효성 검증값을 포함하는 제8 값에 대해 전자서명하여 제2 유효성 검증값을 산출하는 제19 단계와,
    신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)과, 제2 토큰(r_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 사용자 단말기로 전송하는 제20 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제2 값과, 제8 값과, 제2 유효성 검증값을 사용자 단말기로부터 수신하여 신원 확인 정보 저장 모듈로의 등록을 요청받는 제21 단계와,
    어카운트 모듈이, 제1 토큰(p_token)과, 제2 해쉬값(h_enroll)과, 제1 유효성 검증값과, 제2 유효성 검증값을 검증하고 신원 확인 정보 저장 모듈로의 등록을 완료하는 제22 단계를 포함하는,
    익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법.
  2. 청구항 1에 있어서,
    제1 값 및 제2 값은 어카운트 모듈측 시간 정보(date_a)를 더 포함하는,
    익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법.
  3. 청구항 1에 있어서,
    제8 값은 신원 확인 정보 저장 모듈측 시간 정보(date_r)를 더 포함하는,
    익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법.
  4. 청구항 1에 있어서,
    제1 수식은, 제1 암호화값(Re_)과 제2 랜덤값(Ra)을 곱한 값에 제1 신원 확인 정보(A_ID)를 더하고, 제2-1 랜덤값(Rc)과 제1 제로 암호화값(Ze_)을 곱하고, 노이즈를 더하는 수식인,
    익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법.
  5. 청구항 1에 있어서,
    제2 수식은, 제2 암호화값(AA_ID_)에 제3 값(Cr)을 곱하는 수식인,
    익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법.
  6. 청구항 5에 있어서,
    제3 수식은, 제3-1 랜덤값(R1)과 제3 암호화값(R_ID_)를 곱한 값에, 제3-2 랜덤값(R2)을 더하고, 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)의 곱을 더하는 수식인,
    익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법.
  7. 청구항 6에 있어서,
    제6 값은, 제4 값(G)제3 신원 확인 ID(R_ID) (mod 제5 값(P))이며,
    제7 값은, 제4 값(G)제1 태그값(tag) (mod 제5 값(P))이며,
    제15 단계는, 제7 값이, 제6값(R_ID$)제3-1 랜덤값(R1)*제4 값(G)제3-2 랜덤값(R2) (mod 제5 값(P))와 동일한지를 비교하여 수행되는 단계인,
    익명 디지털 아이덴티티를 신원 확인 정보 저장 모듈에 등록하는 방법.
  8. 청구항 1 내지 청구항 7 중 어느 하나의 청구항의 방법에 의해 익명 디지털 아이덴티티가 등록된 후에 수행되는 인증 방법에 있어서,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제1 토큰(p_token)과, 제1 제로 암호화값(Ze_)을 사용자 단말기로부터 수신하는 제1-1 단계와,
    어카운트 모듈이, 인증과 관련한 제2 세션 ID(as_id)을 생성하는 제1-2 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)에, 제1 암호화값(Re_)과 제2 랜덤값(Ra)과 제1 제로 암호화값을 제1 수식에 의해 연산하여 제2 신원 확인 ID(AA_ID)의 암호화값인 제2 암호화값(AA_ID_)을 생성하는 제1-3 단계와,
    어카운트 모듈이, 제2 암호화값(AA_ID_)을 해쉬하여 제1 해쉬값(h_AA_ID)을 산출하는 제1-4 단계와,
    어카운트 모듈이, 제2 세션 ID(as_id)와 제1 해쉬값(h_AA_ID)을 포함하는 값을 해쉬하여 제4 해쉬값(h_auth)을 산출하는 제1-5 단계와,
    어카운트 모듈이, 제1 해쉬값(h_AA_ID)과 제4 해쉬값(h_auth)을 포함하는 제9 값에 대해 전자서명하여 제3 유효성 검증값을 산출하는 제1-6 단계와,
    어카운트 모듈이, 제2 세션 ID(as_id)와, 제2 암호화값(AA_ID_)와, 제9 값과, 제3 유효성 검증값을 사용자 단말기로 전송하는 제1-7 단계와,
    신원 확인 정보 저장 모듈이, 제3 해쉬값(r_id)와, 제2 토큰(r_token)과, 제2 암호화값(AA_ID_)와, 제9 값과, 제3 유효성 검증값과, 제2 제로 암호화값(Ze'_)을 사용자 단말기로부터 수신하여 제3 해쉬값의 검증을 요청받는 제1-8 단계와,
    신원 확인 정보 저장 모듈이, 제2 암호화값(AA_ID_)와 제3 값(Cr)을 제2 수식에 의해 연산하여 제3 신원 확인 ID(R_ID)의 동형 암호화값인 제3 암호화값(R_ID_)을 생성하는 제1-9 단계와,
    신원 확인 정보 저장 모듈이, 제3 암호화값(R_ID_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 제3 수식(tag1_ = ±R1*R_ID_ ± R2 ± R3*Ze'_)에 의해 제1 태그값(tag1)의 동형 암호화값인 제4 암호화값(tag1_)을 산출하는 제1-10 단계와,
    신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 값(Cr)과, 제4 값(G)과, 제5 값(P)과, 제3 암호화값(R_ID_)과, 제4 암호화값(tag_)을 사용자 단말기로 전송하는 제1-11 단계와,
    신원 확인 정보 저장 모듈이, 제1 세션 ID(rs_id)와, 제3 신원 확인 ID(R_ID)의 연산값인 제6 값(R_ID$)과, 제1 태그값의 연산값인 제7 값(tag1$)을 사용자 단말기로부터 수신하는 제1-12 단계와,
    신원 확인 정보 저장 모듈이, 제7 값을 검증하는 제1-13 단계와,
    신원 확인 정보 저장 모듈이, 제3 유효성 검증값을 포함하는 제10 값에 대해 전자서명하여 제4 유효성 검증값을 생성하는 제1-14 단계와,
    신원 확인 정보 저장 모듈이, 제9 값과, 제10 값과, 제4 유효성 검증값을 사용자 단말기로 전송하는 제1-15 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제2 세션 ID(as_id)와, 제9 값과, 제10 값과, 제4 유효성 검증값을 사용자 단말기로부터 수신하는 제1-14 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제4 해쉬값(h_auth)과, 제3 유효성 검증값과, 제4 유효성 검증값의 검증에 성공하면 제3 토큰(token)을 생성하고 사용자 단말기로 전달하는 제1-15 단계를 포함하는,
    인증 방법.
  9. 청구항 8에 있어서,
    제1-5 단계에서, 해쉬되는 대상은 어카운트 모듈측 시간 정보(date_a_)를 더 포함하는 값이며,
    제9 값은 어카운트 모듈측 시간 정보(date_a_)를 더 포함하는 값인,
    인증 방법.
  10. 청구항 8에 있어서,
    제10 값은, 신원 확인 정보 저장 모듈측 시간 정보(date_r)를 더 포함하는,
    인증 방법.
  11. 청구항 8에 있어서,
    제1 수식은, 제1 랜덤값(Re)과 제2 랜덤값(Ra)을 곱한 값에 제1 신원 확인 정보(A_ID)를 더하고, 제2-1 랜덤값(Rc)과 제1 제로 암호화값(Ze_)을 곱하고, 노이즈를 더하는 수식인,
    인증 방법.
  12. 청구항 8에 있어서,
    제2 수식은, 제2 암호화값(AA_ID_)에 제3 값(Cr)을 곱하는 수식인,
    인증 방법.
  13. 청구항 12에 있어서,
    제3 수식은, 제3-1 랜덤값(R1)과 제3 암호화값(R_ID_)를 곱한 값에, 제3-2 랜덤값(R2)을 더하고, 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)의 곱을 더하는 수식인,
    인증 방법.
  14. 청구항 13에 있어서,
    제6 값은, 제4 값(G)제3 신원 확인 ID(R_ID) (mod 제5 값(P))이며,
    제7 값은, 제4 값(G)제1 태그값(tag) (mod 제5 값(P))이며,
    제15 단계는, 제7 값이, 제6값(R_ID$)제3-1 랜덤값(R1)*제4 값(G)제3-2 랜덤값(R2) (mod 제5 값(P))와 동일한지를 비교하여 수행되는 단계인,
    인증 방법.
  15. 청구항 8의 인증 방법에 의해 인증된 이후에 수행되는 온라인상의 의사 표시 방법으로서, 사용자 단말기와, 어카운트 모듈과, 신원 확인 정보 저장 모듈과, 블록 체인의 노드 모듈을 포함하는 환경에서 수행되는 온라인상의 의사 표시 방법에 있어서,
    노드 모듈이, 의사 표시 대상 식별 정보(v_id)를 사용자 단말기로부터 수신하는 제2-1 단계와,
    노드 모듈이, 제4 값(G)과, 제5 값(P)과, 제11 값(Cv)을 사용자 단말기로 전송하는 제2-2 단계와,
    사용자 단말기가, 제1 랜덤값(Re)과, 제2 랜덤값(Ra)과, 제1 신원 확인 ID(A_ID)와, 제11 값(Cv)을 제4 수식에 의해 연산하여 의사 표시용 식별정보(BS)를 생성하는 제2-3 단계와,
    사용자 단말기가, 의사 표시용 식별정보(BS)의 연산값(BS$)을 제12 값으로 산출하는 제2-4 단계와,
    사용자 단말기가, 제12 값을 해쉬하여 제5 해쉬값(bs)을 산출하는 제2-5 단계와,
    사용자 단말기가, 의사 표시값(voting)를 입력받는 제2-6 단계와,
    사용자 단말기가, 의사표시 대상 식별정보(v_id)와, 제5 해쉬값(bs)과, 의사표시값(voting)을 포함하는 제13값의 해쉬값인 제6 해쉬값(hash(v_id, bs, voting)을 암호화하여 제5 암호화값을 산출하는 제2-7 단계와,
    사용자 단말기가, 제1 제로 암호화값(Ze_)을 생성하는 제2-8 단계와,
    어카운트 모듈이, 제1 신원 확인 ID(A_ID)와, 제3 토큰(token)과, 제1 제로 암호화값(Ze_)과, 제5 암호화값을 사용자 단말기로부터 전송받아 제2 신원 확인 ID(AA_ID)와 블라인드 서명을 요청받는 제2-9 단계와,
    어카운트 모듈이, 제2 암호화값(AA_ID_)을 산출하고 해쉬하여 제1 해쉬값(h_AA_ID)을 산출하는 제2-10 단계와,
    어카운트 모듈이, 제5 암호화값에 대해 블라인드 서명을 수행하는 제2-11 단계와,
    어카운트 모듈이, 제1 해쉬값(h_AA_ID)을 포함하는 제14 값에 대해 전자 서명하여 제5 유효성 검증값을 산출하는 제2-12 단계와,
    어카운트 모듈이, 제2 암호화값(AA_ID_)과, 블라인드 서명값과, 제14 값과, 제5 유효성 검증값을 사용자 단말기로 전송하는 제2-13 단계와,
    사용자 단말기가, 블라인드 서명값으로부터 제13 값에 대한 유효성 검증값인 제6 유효성 검증값을 획득하는 제2-14 단계와,
    사용자 단말기가, 제2 제로 암호화값(Ze'_)을 생성하는 제2-15 단계와,
    노드 모듈이, 의사표시 대상 식별 정보(v_id)와, 제2 암호화값(AA_ID_)과, 제2 제로 암호화값(Ze'_)과, 제14 값과, 제5 유효성 검증값을 사용자 단말기로부터 수신하여 의사표시용 식별정보(BS) 요청을 수신하는 제2-16 단계와,
    노드 모듈이, 제2 암호화값(AA_ID_)과 제11 값(Cv)을 제5 수식에 의해 연산하여 제6 암호화값(BS_)을 산출하는 제2-17 단계와,
    노드 모듈이, 제6 암호화값(BS_)과, 제2 제로 암호화값(Ze'_)을 신원 확인 정보 저장 모듈로 전송하여 제2 태그값(tag2)을 요청하는 제2-18 단계와,
    신원 확인 정보 저장 모듈이, 제6 암호화값(BS_)과 제3-1 랜덤값(R1)을 곱한 값과; 제3-2 랜덤값(R2)과; 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)을 곱한 값을 서로 더하거나 빼는 제6 수식(tag2_ = ±R1*BS_ ± R2 ± R3*Ze'_)에 의해 제2 태그값(tag2)의 동형 암호화값인 제7 암호화값(tag2_)을 산출하는 제2-19 단계와,
    노드 모듈이, 제3-1 랜덤값(R1)과 제3-2 랜덤값(R2)의 해쉬값인 제7 해쉬값과, 의사표시 세션 ID(vs_id)와, 제7 암호화값(tag2_)을 신원 확인 정보 저장 모듈로부터 수신하는 제2-20 단계와,
    노드 모듈이, 의사표시 세션 ID(vs_id)와, 제6 암호화값(BS_)과, 제7 암호화값(tag2_)과, 제7 해쉬값을 사용자 단말기로 전송하는 제2-21 단계와,
    노드 모듈이, 의사표시 세션 ID(vs_id)와, 의사표시용 식별정보의 연산값인 제15 값(BS$)과, 제2 태그값의 연산값인 제16 값(tag2$)과, 제7 해쉬값과, 의사표시 대상 식별정보(v_id)와, 제5 해쉬값(bs)과, 의사표시값(voting)과, 제6 유효성 검증값을 사용자 단말기로부터 수신하는 제2-22 단계와,
    노드 모듈이, 제15 값(BS$)과, 제16 값(tag2$)과, 의사 표시 세션 ID(vs_id)와, 제4 값(G)과, 제5 값(P)을 신원 확인 정보 저장 모듈로 전송하여 의사표시용 식별정보의 연산값(BS$)의 검증을 요청하는 제2-23 단계와,
    노드 모듈이, 신원 확인 정보 저장 모듈로부터 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)을 수신하고 해쉬하여 제7 해쉬값과 비교하여 제3-1 랜덤값(R1)과, 제3-2 랜덤값(R2)을 검증하는 제2-24 단계와,
    노드 모듈이, 제2 태그값의 연산값(tag2$)과, 제5 해쉬값(bs)과, 제6 유효성 검증값을 검증하고 검증에 성공하면 의사표시값(voting)을 의사표시대상 식별정보(v_id)와, 제5 해쉬값(bs)과, 제6 유효성 검증값과 함께 노드 모듈에 저장하는 제2-25 단계를 포함하는,
    온라인상의 의사 표시 방법.
  16. 청구항 15에 있어서,
    제14 값은 어카운트 모듈측 시간 정보(date_a)를 더 포함하는,
    온라인상의 의사 표시 방법.
  17. 청구항 15에 있어서,
    제4 수식은, 제1 랜덤값(Re)과 제2 랜덤값(Ra)의 곱에 제1 신원 확인 ID(A_ID)를 더한 후에 제11 값(Cv)을 곱하는 수식인,
    온라인상의 의사 표시 방법
  18. 청구항 17에 있어서,
    의사 표시용 식별정보(BS)의 연산값(BS$)은 제4 값의사표시용 식별정보(BS) (mod P)로 산출되는,
    온라인상의 의사 표시 방법.
  19. 청구항 18에 있어서,
    제5 수식은, 제2 암호화값(AA_ID_)과 제11 값(Cv)을 곱하는 수식인,
    온라인상의 의사 표시 방법.
  20. 청구항 19에 있어서,
    제6 수식은, 제3-1 랜덤값(R1)과 제6 암호화값(BS_)을 곱한 값에 제3-2 랜덤값(R2)을 더하고, 제3-3 랜덤값(R3)과 제2 제로 암호화값(Ze'_)의 곱을 더하는 수식인,
    온라인상의 의사 표시 방법.
  21. 청구항 20에 있어서,
    제2 태그값의 연산값(tag2$)은, 제4 값(G)제2 태그값(tag2) (mod P)로 산출되는,
    온라인상의 의사 표시 방법.
KR1020180136592A 2018-11-08 2018-11-08 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법 KR102146757B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180136592A KR102146757B1 (ko) 2018-11-08 2018-11-08 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법
PCT/KR2019/010614 WO2020096180A1 (ko) 2018-11-08 2019-08-21 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법
DE112019005599.2T DE112019005599T5 (de) 2018-11-08 2019-08-21 Verfahren zur Erkennung von Meinungsäußerung, das Anonymität gewährleisten und Sybil-Attacken verhindern kann, Verfahren zur Registrierung, das Identifikationsinformationen des Benutzers speichert, und Verfahren zur Authentifizierung des Benutzers
US17/306,089 US20210258141A1 (en) 2018-11-08 2021-05-03 Method for recognizing expression of opinion capable of ensuring anonymity and preventing sybil attacks, method for registering that stores user?s identification information, and method for authenticating the user

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180136592A KR102146757B1 (ko) 2018-11-08 2018-11-08 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법

Publications (2)

Publication Number Publication Date
KR20200053225A KR20200053225A (ko) 2020-05-18
KR102146757B1 true KR102146757B1 (ko) 2020-08-21

Family

ID=70611408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180136592A KR102146757B1 (ko) 2018-11-08 2018-11-08 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법

Country Status (4)

Country Link
US (1) US20210258141A1 (ko)
KR (1) KR102146757B1 (ko)
DE (1) DE112019005599T5 (ko)
WO (1) WO2020096180A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114362969B (zh) * 2022-03-17 2022-06-10 北京百度网讯科技有限公司 一种基于区块链的数据验证方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100892086B1 (ko) 2007-07-09 2009-04-06 에스케이 텔레콤주식회사 유비쿼터스 센서 네트워크에서의 시빌공격 탐지방법
KR101260188B1 (ko) 2008-12-22 2013-05-06 퀄컴 인코포레이티드 피어투피어 네트워크에 대한 분산 해시 테이블에서의 보안 노드 식별자 할당
KR101833323B1 (ko) 2018-01-12 2018-02-28 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083360A1 (en) * 2002-10-28 2004-04-29 Rod Walsh System and method for partially-encrypted data transmission and reception
US20040255137A1 (en) * 2003-01-09 2004-12-16 Shuqian Ying Defending the name space
US20080022414A1 (en) * 2006-03-31 2008-01-24 Robert Cahn System and method of providing unique personal identifiers for use in the anonymous and secure exchange of data
US9411976B2 (en) * 2006-12-01 2016-08-09 Maidsafe Foundation Communication system and method
KR100989477B1 (ko) * 2007-01-23 2010-10-22 도시바 솔루션 가부시끼가이샤 익명 주문용 프로그램을 기억한 기억 매체 및 장치
CN101521569B (zh) * 2008-02-28 2013-04-24 华为技术有限公司 实现服务访问的方法、设备及系统
US20150006895A1 (en) * 2009-06-01 2015-01-01 Maidsafe Foundation Distributed network system
US9177126B2 (en) * 2012-10-27 2015-11-03 Edward Curren System and method for human identity validation via a mobile device
CN108109257A (zh) * 2018-01-05 2018-06-01 杭州电子科技大学 一种基于区块链的匿名电子投票方法
CN111833186A (zh) * 2018-09-20 2020-10-27 创新先进技术有限公司 基于区块链的交易方法、装置和节点设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100892086B1 (ko) 2007-07-09 2009-04-06 에스케이 텔레콤주식회사 유비쿼터스 센서 네트워크에서의 시빌공격 탐지방법
KR101260188B1 (ko) 2008-12-22 2013-05-06 퀄컴 인코포레이티드 피어투피어 네트워크에 대한 분산 해시 테이블에서의 보안 노드 식별자 할당
KR101833323B1 (ko) 2018-01-12 2018-02-28 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법

Also Published As

Publication number Publication date
DE112019005599T5 (de) 2021-08-12
WO2020096180A1 (ko) 2020-05-14
US20210258141A1 (en) 2021-08-19
KR20200053225A (ko) 2020-05-18

Similar Documents

Publication Publication Date Title
US11799668B2 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
US11722301B2 (en) Blockchain ID connect
US11082221B2 (en) Methods and systems for creating and recovering accounts using dynamic passwords
JP7181539B2 (ja) 利用者識別認証データを管理する方法および装置
CN109067801B (zh) 一种身份认证方法、身份认证装置及计算机可读介质
US11329981B2 (en) Issuing, storing and verifying a rich credential
CN109905360B (zh) 数据验证方法及终端设备
WO2018145127A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
TW200818838A (en) Mutual authentication and secure channel establishment between two parties using consecutive one-time passwords
CN106302312A (zh) 获取电子文件的方法及装置
KR101833323B1 (ko) 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
CA2551113A1 (en) Authentication system for networked computer applications
KR102157695B1 (ko) 익명 디지털 아이덴티티 수립 방법
Al-Rawy et al. A design for blockchain-based digital voting system
KR102146757B1 (ko) 익명성 보장 및 시빌 공격 방지가 가능한, 의사 표시 확인 방법, 신원 확인 정보 저장 모듈의 등록 및 인증 방법
Chung et al. Anonymous authentication scheme for intercommunication in the internet of things environments
Chang et al. A novel electronic english auction system with a secure on-shelf mechanism
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
KR102056612B1 (ko) 임시 익명 인증서 생성 방법
CN113545004A (zh) 具有减少攻击面的认证系统
US20220263818A1 (en) Using a service worker to present a third-party cryptographic credential
Zhong et al. An Efficient Electronic English Auction System with a Secure On‐Shelf Mechanism and Privacy Preserving
USRE49968E1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
KR102062281B1 (ko) 블록 체인 기반의 의사 표시 검증 시스템 및 방법
Kaur et al. A comprehensive study of cryptography and digital signature

Legal Events

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