KR102149706B1 - 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법 - Google Patents

블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102149706B1
KR102149706B1 KR1020190032908A KR20190032908A KR102149706B1 KR 102149706 B1 KR102149706 B1 KR 102149706B1 KR 1020190032908 A KR1020190032908 A KR 1020190032908A KR 20190032908 A KR20190032908 A KR 20190032908A KR 102149706 B1 KR102149706 B1 KR 102149706B1
Authority
KR
South Korea
Prior art keywords
value
public key
electronic signature
euclidean distance
authentication
Prior art date
Application number
KR1020190032908A
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 KR1020190032908A priority Critical patent/KR102149706B1/ko
Application granted granted Critical
Publication of KR102149706B1 publication Critical patent/KR102149706B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법이 개시된다. 본 발명은 전자 서명 값의 검증에 사용되는 공개키를 소정의 블록체인 네트워크에 참여하는 노드 장치들에 분산 저장해 둔 후 특정 사용자 단말로부터 사용자 인증 요청이 수신되면, 상기 노드 장치들 중 하나로부터 상기 사용자에 대한 공개키를 수신하고, 소정의 인증 값을 랜덤하게 생성하여 상기 사용자 단말로 전송한 후 상기 사용자 단말로부터 상기 인증 값에 기반한 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행함으로써, 사용자 인증 과정에서 사용자가 별도로 비밀번호를 입력하지 않더라도 사용자 인증이 가능하도록 지원함과 동시에 공개키에 대한 무결성을 보장할 수 있다.

Description

블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법{DIGITAL SIGNATURE BASED USER AUTHENTICATION PROCESSING APPARATUS USING BLOCK CHAIN AND OPERATING METHOD THEREOF}
본 발명은 블록체인을 이용하여 전자 서명 기반의 사용자 인증 처리를 수행할 수 있는 장치 및 그 동작 방법에 대한 것이다.
최근, 인터넷 등이 널리 보급됨에 따라, 회원제로 운영되는 웹 사이트가 증가하고 있고, 전자 결제나 온라인 기반의 뱅킹 서비스 사용도 급증하고 있다.
보통, 일반적인 회원제 기반의 웹 사이트는 가입자의 아이디와 비밀번호를 수집한 후 웹 사이트에 로그인하고자 하는 사용자의 아이디와 비밀번호를 확인하여 사용자 인증을 수행하는 방식으로 운영되고 있다.
이러한 사용자 인증 방식은 사용자가 로그인할 때마다 비밀번호를 입력해야 한다는 점에서 사용자가 비밀번호를 항상 기억하고 있어야 하는 불편이 존재한다.
일반적인 온라인 뱅킹 서비스나 결제 시스템에서 도입하고 있는 사용자 확인 서비스는 공개키 기반의 암호화 방식(Public Key Infrastructure: PKI)을 이용한 전자 서명 시스템이 주를 이루고 있다.
공개키 기반의 암호화 방식의 전자 서명 시스템이란 메시지를 전달하는 측에서 해당 메시지에 대한 해시 값에 대해 자신의 개인키로 암호화를 수행하여 전자 서명 값을 생성한 후 해당 메시지와 상기 전자 서명 값을 메시지 수신측에 전달하면, 메시지 수신측에서 상기 개인키에 대응하는 공개키로 상기 전자 서명 값을 복호화하고, 메시지 전송측으로부터 수신한 상기 메시지에 대한 해시 값을 연산한 후 상기 공개키로 복호화한 값과 상기 메시지에 대한 해시 값을 비교하여 두 값이 서로 동일한 것으로 판단되면, 메시지 전송측으로부터 수신된 상기 전자 서명 값이 상기 메시지 전송측의 개인키에 의해서 정말로 암호화된 값임이 입증됨에 따라, 상기 메시지가 진정한 메시지 전송측으로부터 전달된 메시지임을 확인하는 시스템이다.
이러한 공개키 기반의 암호화 방식의 전자 서명 시스템은 소정의 키쌍 생성 알고리즘을 활용해서, 개인키와 이에 대응하는 공개키를 생성한 후 상기 개인키로 전자 서명 값을 생성하고, 상기 공개키로 상기 전자 서명 값을 검증하는 형태로 운영되고 있다.
기존의 전자 서명 시스템에서는 전자 서명을 수행하는 사용자 측에서 공개키 인증서를 수신측으로 전달하도록 구성되어 있기 때문에, 사용자 단말 상에 개인키와 공개키를 모두 저장하고 있으며, 이로 인해 인증 기관을 통한 공개키 검증이 수행될 필요가 있었다.
최근에는 소정의 데이터를 체인화된 블록으로 구성하여 중앙 서버가 아닌 노드들에 분산 저장함으로써, 해당 데이터에 대한 무결성을 보장할 수 있는 블록체인 기술이 널리 활용되고 있다.
따라서, 전자 서명 시스템에 있어서 공개키를 블록체인 네트워크 상의 노드들에 분산 저장해 두는 방식을 도입함으로써, 공개키에 대한 무결성을 보장하고, 사용자 인증 과정에서 사용자가 매번 비밀번호를 입력하지 않고서도 사용자 인증을 처리할 수 있는 전자 서명 기법에 대한 연구가 필요하다.
본 발명은 전자 서명 값의 검증에 사용되는 공개키를 소정의 블록체인 네트워크에 참여하는 노드 장치들에 분산 저장해 둔 후 특정 사용자 단말로부터 사용자 인증 요청이 수신되면, 상기 노드 장치들 중 하나로부터 상기 사용자에 대한 공개키를 수신하고, 소정의 인증 값을 랜덤하게 생성하여 상기 사용자 단말로 전송한 후 상기 사용자 단말로부터 상기 인증 값에 기반한 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행함으로써, 사용자 인증 과정에서 사용자가 별도로 비밀번호를 입력하지 않더라도 사용자 인증이 가능하도록 지원함과 동시에 공개키에 대한 무결성을 보장할 수 있는 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법을 제시하고자 한다.
본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치는 사용자 단말로부터 사용자를 식별하기 위해 기발급되어 있는 제1 식별자와 함께 사용자 인증 요청이 수신되면, 복수의 사용자들 각각에 대한 기발급된 식별자와 공개키를 대응시켜 기록한 블록들이 체인으로 연결된 블록체인 데이터를 메모리 상에 저장하고 있는 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청하는 공개키 요청부, 상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 제1 공개키가 수신되면, 사용자 인증에 사용하기 위한 인증 값을 랜덤하게 생성하는 인증 값 생성부, 상기 사용자 단말로 상기 인증 값을 전송하면서 상기 인증 값에 기초한 전자 서명 요청을 전송하는 전자 서명 요청부 및 상기 사용자 단말로부터 상기 제1 공개키에 대응하는 제1 개인키를 기초로 서명된 상기 인증 값에 대한 전자 서명 값이 수신되면, 상기 제1 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행하는 서명 검증부를 포함한다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법은 사용자 단말로부터 사용자를 식별하기 위해 기발급되어 있는 제1 식별자와 함께 사용자 인증 요청이 수신되면, 복수의 사용자들 각각에 대한 기발급된 식별자와 공개키를 대응시켜 기록한 블록들이 체인으로 연결된 블록체인 데이터를 메모리 상에 저장하고 있는 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청하는 단계, 상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 제1 공개키가 수신되면, 사용자 인증에 사용하기 위한 인증 값을 랜덤하게 생성하는 단계, 상기 사용자 단말로 상기 인증 값을 전송하면서 상기 인증 값에 기초한 전자 서명 요청을 전송하는 단계 및 상기 사용자 단말로부터 상기 제1 공개키에 대응하는 제1 개인키를 기초로 서명된 상기 인증 값에 대한 전자 서명 값이 수신되면, 상기 제1 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행하는 단계를 포함한다.
본 발명에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법은 전자 서명 값의 검증에 사용되는 공개키를 소정의 블록체인 네트워크에 참여하는 노드 장치들에 분산 저장해 둔 후 특정 사용자 단말로부터 사용자 인증 요청이 수신되면, 상기 노드 장치들 중 하나로부터 상기 사용자에 대한 공개키를 수신하고, 소정의 인증 값을 랜덤하게 생성하여 상기 사용자 단말로 전송한 후 상기 사용자 단말로부터 상기 인증 값에 기반한 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행함으로써, 사용자 인증 과정에서 사용자가 별도로 비밀번호를 입력하지 않더라도 사용자 인증이 가능하도록 지원함과 동시에 공개키에 대한 무결성을 보장할 수 있다.
도 1은 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치(110)는 공개키 요청부(111), 인증 값 생성부(112), 전자 서명 요청부(113) 및 서명 검증부(114)를 포함한다.
본 발명에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치(110)는 사용자가 소정의 웹 사이트에 로그인하고자 할 때, 상기 사용자에 대한 인증을 수행하는데 사용되는 장치일 수 있다.
또한, 본 발명에서는 본 발명에 따른 전자 서명 시스템을 운영하기 위해서, 복수의 사용자들에 대해서 미리 발급된 공개키가 블록체인 네트워크 상의 복수의 블록체인 노드 장치들(131, 132, 133)에 분산 저장되어 있는 상황을 가정한다.
관련해서, 복수의 블록체인 노드 장치들(131, 132, 133)은 메모리 상에 상기 복수의 사용자들 각각에 대한 기발급된 식별자와 공개키를 대응시켜 기록한 블록들이 체인으로 연결된 블록체인 데이터를 저장하고 있을 수 있다.
만약, 특정 사용자가 본 발명에 따른 전자 서명 시스템에 신규로 등록한다고 하는 경우, 상기 특정 사용자의 사용자 단말에서는 소정의 키쌍 생성 알고리즘에 기초하여 개인키와 공개키를 생성할 수 있고, 상기 공개키가 생성되면, 블록체인 네트워크에 존재하는 복수의 블록체인 노드 장치들(131, 132, 133) 중 어느 하나의 노드 장치를 통해 상기 특정 사용자를 식별하기 위한 소정의 식별자와 상기 공개키가 서로 대응되어 기록된 블록이 생성되고, 상기 블록이 이전 블록에 연결됨으로써, 상기 식별자와 상기 공개키가 기록된 블록 데이터가 복수의 블록체인 노드 장치들(131, 132, 133)에 분산 저장될 수 있다.
여기서, 상기 복수의 사용자들에 대한 식별자는 본 발명에 따른 전자 서명 시스템을 활용하는 소정의 웹 사이트에 대한 로그인 아이디가 될 수도 있고, 상기 복수의 사용자들 각각의 가상화폐의 보관에 사용되는 전자지갑 주소가 될 수도 있다.
이러한 상황하에서, 상기 복수의 사용자들 중 어느 하나의 사용자에 대한 사용자 단말(120)로부터 사용자를 식별하기 위해 기발급되어 있는 제1 식별자와 함께 사용자 인증 요청이 전자 서명 기반의 사용자 인증 처리 장치(110)에 수신되면, 공개키 요청부(111)는 상기 복수의 사용자들 각각에 대한 기발급된 식별자와 공개키를 대응시켜 기록한 블록들이 체인으로 연결된 블록체인 데이터를 메모리 상에 저장하고 있는 복수의 블록체인 노드 장치들(131, 132, 133) 중 어느 하나의 노드 장치인 제1 노드 장치(132)에 접속하여 제1 노드 장치(132)로 상기 제1 식별자에 대응되는 공개키의 전송을 요청한다.
인증 값 생성부(112)는 제1 노드 장치(132)로부터 상기 제1 식별자에 대응되는 공개키로 제1 공개키가 수신되면, 사용자 인증에 사용하기 위한 인증 값을 랜덤하게 생성한다.
이때, 본 발명의 일실시예에 따르면, 공개키 요청부(111)는 유클리드 거리 저장부(115) 및 요청부(116)를 포함할 수 있고, 인증 값 생성부(112)는 확인부(117) 및 생성부(118)를 포함할 수 있다.
유클리드 거리 저장부(115)에는 노드 장치의 인증에 사용하기 위한 기설정된 제1 유클리드 거리(Euclidean Distance)에 대한 정보가 저장되어 있다.
유클리드 거리란 두 개의 벡터가 존재한다고 하였을 때, 두 벡터 간의 거리를 의미하는 것으로 하기의 수학식 1에 따라 연산될 수 있다.
Figure 112019029739745-pat00001
상기 수학식 1에서 D는 유클리드 거리, pi와 qi는 두 벡터에 포함되어 있는 i번째 성분들을 의미한다. 보통, 두 벡터 간의 유클리드 거리가 작을수록 두 벡터는 유사한 벡터라고 볼 수 있고, 두 벡터 간의 유클리드 거리가 클수록 두 벡터는 비유사한 벡터라고 볼 수 있다.
요청부(116)는 사용자 단말(120)로부터 상기 제1 식별자와 함께 상기 사용자 인증 요청이 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 복수의 블록체인 노드 장치들(131, 132, 133) 중 어느 하나의 노드 장치인 제1 노드 장치(132)에 접속하여 제1 노드 장치(132)로 상기 제1 식별자에 대응되는 공개키의 전송을 요청함과 동시에 제1 노드 장치(132)로 상기 랜덤 벡터를 전송하면서 상기 랜덤 벡터에 대한 피드백 벡터의 전송을 요청한다.
예컨대, 요청부(116)는 사용자 단말(120)로부터 상기 제1 식별자와 함께 상기 사용자 인증 요청이 수신되면, '(0,0,0,1,0)'이라고 하는 5차원의 랜덤 벡터를 랜덤하게 생성할 수 있고, 복수의 블록체인 노드 장치들(131, 132, 133) 중 어느 하나의 노드 장치인 제1 노드 장치(132)에 접속하여 제1 노드 장치(132)로 상기 제1 식별자에 대응되는 공개키의 전송을 요청함과 동시에 상기 5차원의 랜덤 벡터를 전송하면서, 상기 5차원의 랜덤 벡터에 대한 5차원의 피드백 벡터의 전송을 요청할 수 있다.
이때, 본 발명의 일실시예에 따르면, 복수의 블록체인 노드 장치들(131, 132, 133)은 메모리 상에 상기 제1 유클리드 거리에 대한 정보를 저장하고 있을 수 있고, 제1 노드 장치(132)는 사용자 인증 처리 장치(110)로부터 상기 제1 식별자에 대응되는 공개키의 전송 요청과 함께 상기 랜덤 벡터가 수신되면, 제1 노드 장치(132)의 메모리 상에 저장되어 있는 상기 블록체인 데이터에서 상기 제1 식별자에 대응되어 기록되어 있는 상기 제1 공개키를 추출하고, 상기 랜덤 벡터와의 유클리드 거리가 제1 노드 장치(132)의 메모리 상에 저장되어 있는 상기 제1 유클리드 거리로 연산되는 피드백 벡터인 제1 피드백 벡터를 랜덤하게 생성한 후 사용자 인증 처리 장치(110)로 상기 제1 공개키와 상기 제1 피드백 벡터를 전송할 수 있다.
예컨대, 사용자 인증 처리 장치(110)로부터 제1 노드 장치(132)에 상기 제1 식별자와 함께 '(0,0,0,1,0)'라는 5차원의 랜덤 벡터가 수신되었다고 하고, 제1 노드 장치(132)의 메모리 상에 저장되어 있는 상기 제1 유클리드 거리가 'D'라고 하는 경우, 제1 노드 장치(132)는 상기 5차원 랜덤 벡터와의 유클리드 거리가 'D'로 연산되는 5차원의 제1 피드백 벡터를 랜덤하게 생성하여 사용자 인증 처리 장치(110)로 전송할 수 있다.
이때, 확인부(117)는 제1 노드 장치(132)로부터 상기 제1 식별자에 대응되는 공개키로 상기 제1 공개키가 수신됨과 동시에 상기 랜덤 벡터에 대한 피드백 벡터로 상기 제1 피드백 벡터가 수신되면, 상기 랜덤 벡터와 상기 제1 피드백 벡터 간의 유클리드 거리를 연산하고, 상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한지 여부를 확인할 수 있다.
그리고, 생성부(118)는 상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한 것으로 확인되면, 제1 노드 장치(132)에 대한 인증을 완료하고, 사용자 인증에 사용하기 위한 상기 인증 값을 랜덤하게 생성할 수 있다.
관련해서, 사용자 인증 처리 장치(110)에서 제1 노드 장치(132)로 상기 제1 식별자와 5차원의 랜덤 벡터가 전송되었고, 이에 대응해서 제1 노드 장치(132)로부터 사용자 인증 처리 장치(110)로 상기 제1 공개키와 5차원의 제1 피드백 벡터가 수신되었다고 하는 경우, 확인부(117)는 상기 제1 피드백 벡터와 상기 5차원의 랜덤 벡터 간의 유클리드 거리를 연산하고, 상기 연산된 유클리드 거리가 유클리드 거리 저장부(115)에 저장되어 있는 상기 제1 유클리드 거리와 동일한지 여부를 확인할 수 있다.
이때, 상기 연산된 유클리드 거리가 유클리드 거리 저장부(115)에 저장되어 있는 상기 제1 유클리드 거리와 동일한 것으로 확인된 경우, 생성부(118)는 제1 노드 장치(132)가 본 발명에 따른 전자 서명 시스템에서 블록체인 네트워크에 참여하여 공개키를 저장하고 있는 노드 장치가 맞는 것으로 확인하고, 제1 노드 장치(132)에 대한 인증을 완료한 후 사용자 인증에 사용하기 위한 상기 인증 값을 랜덤하게 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 인증 값 생성부(112)는 상기 인증 값을 랜덤하게 생성하기 위해, 난수 생성에 사용하기 위한 엔트로피 데이터를 발생시키는 미리 설정된 잡음원으로부터 제1 엔트로피 데이터를 수집하고, 상기 제1 엔트로피 데이터를 비결정론적 난수 발생기(Non-Deterministic Random Bit Generator: NRBG)에 입력으로 인가하여 상기 인증 값을 생성할 수 있다.
보통, 난수는 랜덤하게 생성된 수를 의미하는 것으로, 난수의 종류로는 동전던지기처럼 앞/뒤의 발생을 예측할 수 없고, 앞에 발생한 사건이 나중에 생성될 사건에 독립적인 형태를 갖는 이상적인 난수인 순수 난수(True Random Number)와 소정의 난수 생성 알고리즘에 의해서 생성되는 의사 난수(Pseudo-Random Number)가 존재한다.
이때, 의사 난수는 특정한 패턴을 가지고 있기 때문에 다른 사람에 의해 난수 생성 패턴이 손쉽게 노출되는 문제가 존재한다. 따라서, 이러한 의사 난수의 취약성을 해소하기 위해 최근에는 순수 난수 생성을 위한 다양한 연구가 진행되고 있다.
순수 난수 생성을 위한 대표적인 기술 중 하나로 비결정론적 난수 발생기(Non-Deterministic Random Bit Generator: NRBG)를 이용한 난수 생성 기법이 존재한다. 비결정론적 난수 발생기는 소정의 잡음원의 물리적 현상을 관찰하여 얻은 큰 엔트로피의 입력을 이용해서 난수를 생성하는 기법을 의미한다.
예컨대, CMOS 센서나 CCD 센서 등과 같은 이미지 센서를 잡음원으로 사용함으로써, 상기 잡음원으로부터 광원이 가지고 있는 빛의 입자적 특성에 의해 나타나는 광자 수의 불확정도인 샷 노이즈(Shot Noise)를 엔트로피 데이터로 획득하여 난수를 생성하는 방식이 이에 해당된다. 이렇게, 비결정론적 난수 발생기를 이용한 난수는 생성 패턴을 예상하기 어렵기 때문에 고도의 보안이 필요한 데이터를 다루는 은행, 관공서, 기업 등에서 그 활용이 증가하고 있다.
이에, 본 발명에 따른 인증 값 생성부(112)는 인증 값 생성에 있어서 불확실성을 강화하기 위해 엔트로피 데이터를 발생시키는 미리 설정된 잡음원으로부터 제1 엔트로피 데이터를 수집하고, 상기 제1 엔트로피 데이터를 비결정론적 난수 발생기에 입력으로 인가하여 상기 인증 값을 생성할 수 있다.
이렇게, 상기 인증 값이 랜덤하게 생성되면, 전자 서명 요청부(113)는 사용자 단말(120)로 상기 인증 값을 전송하면서 상기 인증 값에 기초한 전자 서명 요청을 전송한다.
서명 검증부(114)는 사용자 단말(120)로부터 상기 제1 공개키에 대응하는 제1 개인키를 기초로 서명된 상기 인증 값에 대한 전자 서명 값이 수신되면, 상기 제1 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행한다.
이때, 본 발명의 일실시예에 따르면, 사용자 단말(120)은 사용자 인증 처리 장치(110)로부터 상기 인증 값과 상기 전자 서명 요청이 수신되면, 기설정된(predetermined) 해시 함수에 상기 인증 값을 입력으로 인가하여 해시 값을 생성하고, 상기 제1 개인키를 기초로 상기 해시 값을 암호화하여 상기 전자 서명 값을 생성한 후 상기 전자 서명 값과 상기 해시 값을 사용자 인증 처리 장치(110)로 전송할 수 있다.
여기서, 상기 제1 개인키는 사용자 단말(120)의 메모리 상에 저장되어 있을 수도 있고, 사용자 단말(120)과 연결될 수 있는 USB 저장 장치 등과 같은 별도의 저장 장치에 저장되어 있을 수도 있다.
이때, 서명 검증부(114)는 사용자 단말(120)로부터 상기 전자 서명 값과 상기 해시 값이 수신되면, 상기 제1 공개키로 상기 전자 서명 값에 대한 복호화를 수행하여 복호화 값을 생성하고, 상기 복호화 값이 상기 해시 값과 일치하는지 여부를 비교하여 상기 복호화 값이 상기 해시 값과 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 성공으로 판정할 수 있다.
이렇게, 상기 전자 서명 값에 대한 검증이 성공으로 판정되면, 상기 사용자에 대한 인증이 완료된 것이기 때문에 전자 서명 기반의 사용자 인증 처리 장치(110)가 소정의 웹 사이트에서 사용자에 대한 로그인 처리를 수행하는데 사용되는 장치라면, 상기 사용자는 상기 웹 사이트에 로그인할 수 있게 된다.
결국, 본 발명에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치(110)는 전자 서명 값의 검증에 사용되는 공개키를 소정의 블록체인 네트워크에 참여하는 노드 장치들에 분산 저장해 둔 후 특정 사용자 단말로부터 사용자 인증 요청이 수신되면, 상기 노드 장치들 중 하나로부터 상기 사용자에 대한 공개키를 수신하고, 소정의 인증 값을 랜덤하게 생성하여 상기 사용자 단말로 전송한 후 상기 사용자 단말로부터 상기 인증 값에 기반한 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행함으로써, 사용자 인증 과정에서 사용자가 별도로 비밀번호를 입력하지 않더라도 사용자 인증이 가능하도록 지원함과 동시에 공개키에 대한 무결성을 보장할 수 있다.
도 2는 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 사용자 단말로부터 사용자를 식별하기 위해 기발급되어 있는 제1 식별자와 함께 사용자 인증 요청이 수신되면, 복수의 사용자들 각각에 대한 기발급된 식별자와 공개키를 대응시켜 기록한 블록들이 체인으로 연결된 블록체인 데이터를 메모리 상에 저장하고 있는 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청한다.
단계(S220)에서는 상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 제1 공개키가 수신되면, 사용자 인증에 사용하기 위한 인증 값을 랜덤하게 생성한다.
단계(S230)에서는 상기 사용자 단말로 상기 인증 값을 전송하면서 상기 인증 값에 기초한 전자 서명 요청을 전송한다.
단계(S240)에서는 상기 사용자 단말로부터 상기 제1 공개키에 대응하는 제1 개인키를 기초로 서명된 상기 인증 값에 대한 전자 서명 값이 수신되면, 상기 제1 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행한다.
이때, 본 발명의 일실시예에 따르면, 상기 사용자 단말은 상기 사용자 인증 처리 장치로부터 상기 인증 값과 상기 전자 서명 요청이 수신되면, 기설정된 해시 함수에 상기 인증 값을 입력으로 인가하여 해시 값을 생성하고, 상기 제1 개인키를 기초로 상기 해시 값을 암호화하여 상기 전자 서명 값을 생성한 후 상기 전자 서명 값과 상기 해시 값을 상기 사용자 인증 처리 장치로 전송할 수 있다.
이때, 단계(S240)에서는 상기 사용자 단말로부터 상기 전자 서명 값과 상기 해시 값이 수신되면, 상기 제1 공개키로 상기 전자 서명 값에 대한 복호화를 수행하여 복호화 값을 생성하고, 상기 복호화 값이 상기 해시 값과 일치하는지 여부를 비교하여 상기 복호화 값이 상기 해시 값과 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 성공으로 판정할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S220)에서는 난수 생성에 사용하기 위한 엔트로피 데이터를 발생시키는 미리 설정된 잡음원으로부터 제1 엔트로피 데이터를 수집하고, 상기 제1 엔트로피 데이터를 비결정론적 난수 발생기에 입력으로 인가하여 상기 인증 값을 생성할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S210)에서는 노드 장치의 인증에 사용하기 위한 기설정된 제1 유클리드 거리에 대한 정보가 저장되어 있는 유클리드 거리 저장부를 유지하는 단계 및 상기 사용자 단말로부터 상기 제1 식별자와 함께 상기 사용자 인증 요청이 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 상기 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 상기 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청함과 동시에 상기 제1 노드 장치로 상기 랜덤 벡터를 전송하면서 상기 랜덤 벡터에 대한 피드백 벡터의 전송을 요청하는 단계를 포함할 수 있다.
그리고, 단계(S220)에서는 상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 상기 제1 공개키가 수신됨과 동시에 상기 랜덤 벡터에 대한 피드백 벡터로 제1 피드백 벡터(상기 제1 피드백 백터는 상기 랜덤 벡터와의 유클리드 거리가 상기 제1 노드 장치에 기 저장되어 있는 상기 제1 유클리드 거리로 연산되도록 생성된 벡터임)가 수신되면, 상기 랜덤 벡터와 상기 제1 피드백 벡터 간의 유클리드 거리를 연산하고, 상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한지 여부를 확인하는 단계 및 상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한 것으로 확인되면, 상기 제1 노드 장치에 대한 인증을 완료하고, 사용자 인증에 사용하기 위한 상기 인증 값을 랜덤하게 생성하는 단계를 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 복수의 블록체인 노드 장치들은 메모리 상에 상기 제1 유클리드 거리에 대한 정보를 저장하고 있고, 상기 제1 노드 장치는 상기 사용자 인증 처리 장치로부터 상기 제1 식별자에 대응되는 공개키의 전송 요청과 함께 상기 랜덤 벡터가 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 블록체인 데이터에서 상기 제1 식별자에 대응되어 기록되어 있는 상기 제1 공개키를 추출하고, 상기 랜덤 벡터와의 유클리드 거리가 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 유클리드 거리로 연산되는 피드백 벡터인 상기 제1 피드백 벡터를 랜덤하게 생성한 후 상기 사용자 인증 처리 장치로 상기 제1 공개키와 상기 제1 피드백 벡터를 전송할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법은 도 1을 이용하여 설명한 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치
111: 공개키 요청부 112: 인증 값 생성부
113: 전자 서명 요청부 114: 서명 검증부
115: 유클리드 거리 저장부 116: 요청부
117: 확인부 118: 생성부
120: 사용자 단말
131, 132, 133: 복수의 블록체인 노드 장치들

Claims (12)

  1. 사용자 단말로부터 사용자를 식별하기 위해 기발급되어 있는 제1 식별자와 함께 사용자 인증 요청이 수신되면, 복수의 사용자들 각각에 대한 기발급된 식별자와 공개키를 대응시켜 기록한 블록들이 체인으로 연결된 블록체인 데이터를 메모리 상에 저장하고 있는 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청하는 공개키 요청부;
    상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 제1 공개키가 수신되면, 난수 생성에 사용하기 위한 엔트로피 데이터를 발생시키는 미리 설정된 잡음원으로부터 제1 엔트로피 데이터를 수집하고, 상기 제1 엔트로피 데이터를 비결정론적 난수 발생기(Non-Deterministic Random Bit Generator: NRBG)에 입력으로 인가하여 사용자 인증에 사용하기 위한 인증 값을 랜덤하게 생성하는 인증 값 생성부;
    상기 사용자 단말로 상기 인증 값을 전송하면서 상기 인증 값에 기초한 전자 서명 요청을 전송하는 전자 서명 요청부; 및
    상기 사용자 단말로부터 상기 제1 공개키에 대응하는 제1 개인키를 기초로 서명된 상기 인증 값에 대한 전자 서명 값이 수신되면, 상기 제1 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행하는 서명 검증부
    를 포함하고,
    상기 공개키 요청부는
    노드 장치의 인증에 사용하기 위한 기설정된 제1 유클리드 거리(Euclidean Distance)에 대한 정보가 저장되어 있는 유클리드 거리 저장부; 및
    상기 사용자 단말로부터 상기 제1 식별자와 함께 상기 사용자 인증 요청이 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 상기 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 상기 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청함과 동시에 상기 제1 노드 장치로 상기 랜덤 벡터를 전송하면서 상기 랜덤 벡터에 대한 피드백 벡터의 전송을 요청하는 요청부
    를 포함하며,
    상기 인증 값 생성부는
    상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 상기 제1 공개키가 수신됨과 동시에 상기 랜덤 벡터에 대한 피드백 벡터로 제1 피드백 벡터 - 상기 제1 피드백 백터는 상기 랜덤 벡터와의 유클리드 거리가 상기 제1 노드 장치에 기 저장되어 있는 상기 제1 유클리드 거리로 연산되도록 생성된 벡터임 - 가 수신되면, 상기 랜덤 벡터와 상기 제1 피드백 벡터 간의 유클리드 거리를 연산하고, 상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한지 여부를 확인하는 확인부; 및
    상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한 것으로 확인되면, 상기 제1 노드 장치에 대한 인증을 완료하고, 사용자 인증에 사용하기 위한 상기 인증 값을 랜덤하게 생성하는 생성부
    를 포함하는 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치.
  2. 제1항에 있어서,
    상기 사용자 단말은
    상기 사용자 인증 처리 장치로부터 상기 인증 값과 상기 전자 서명 요청이 수신되면, 기설정된(predetermined) 해시 함수에 상기 인증 값을 입력으로 인가하여 해시 값을 생성하고, 상기 제1 개인키를 기초로 상기 해시 값을 암호화하여 상기 전자 서명 값을 생성한 후 상기 전자 서명 값과 상기 해시 값을 상기 사용자 인증 처리 장치로 전송하고,
    상기 서명 검증부는
    상기 사용자 단말로부터 상기 전자 서명 값과 상기 해시 값이 수신되면, 상기 제1 공개키로 상기 전자 서명 값에 대한 복호화를 수행하여 복호화 값을 생성하고, 상기 복호화 값이 상기 해시 값과 일치하는지 여부를 비교하여 상기 복호화 값이 상기 해시 값과 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 성공으로 판정하는 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 복수의 블록체인 노드 장치들은
    메모리 상에 상기 제1 유클리드 거리에 대한 정보를 저장하고 있고,
    상기 제1 노드 장치는
    상기 사용자 인증 처리 장치로부터 상기 제1 식별자에 대응되는 공개키의 전송 요청과 함께 상기 랜덤 벡터가 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 블록체인 데이터에서 상기 제1 식별자에 대응되어 기록되어 있는 상기 제1 공개키를 추출하고, 상기 랜덤 벡터와의 유클리드 거리가 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 유클리드 거리로 연산되는 피드백 벡터인 상기 제1 피드백 벡터를 랜덤하게 생성한 후 상기 사용자 인증 처리 장치로 상기 제1 공개키와 상기 제1 피드백 벡터를 전송하는 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치.
  6. 사용자 단말로부터 사용자를 식별하기 위해 기발급되어 있는 제1 식별자와 함께 사용자 인증 요청이 수신되면, 복수의 사용자들 각각에 대한 기발급된 식별자와 공개키를 대응시켜 기록한 블록들이 체인으로 연결된 블록체인 데이터를 메모리 상에 저장하고 있는 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청하는 단계;
    상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 제1 공개키가 수신되면, 난수 생성에 사용하기 위한 엔트로피 데이터를 발생시키는 미리 설정된 잡음원으로부터 제1 엔트로피 데이터를 수집하고, 상기 제1 엔트로피 데이터를 비결정론적 난수 발생기(Non-Deterministic Random Bit Generator: NRBG)에 입력으로 인가하여 사용자 인증에 사용하기 위한 인증 값을 랜덤하게 생성하는 단계;
    상기 사용자 단말로 상기 인증 값을 전송하면서 상기 인증 값에 기초한 전자 서명 요청을 전송하는 단계; 및
    상기 사용자 단말로부터 상기 제1 공개키에 대응하는 제1 개인키를 기초로 서명된 상기 인증 값에 대한 전자 서명 값이 수신되면, 상기 제1 공개키를 기초로 상기 전자 서명 값에 대한 검증을 수행하는 단계
    를 포함하고,
    상기 공개키의 전송을 요청하는 단계는
    노드 장치의 인증에 사용하기 위한 기설정된 제1 유클리드 거리(Euclidean Distance)에 대한 정보가 저장되어 있는 유클리드 거리 저장부를 유지하는 단계; 및
    상기 사용자 단말로부터 상기 제1 식별자와 함께 상기 사용자 인증 요청이 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 상기 복수의 블록체인 노드 장치들 중 어느 하나의 노드 장치인 상기 제1 노드 장치에 접속하여 상기 제1 노드 장치로 상기 제1 식별자에 대응되는 공개키의 전송을 요청함과 동시에 상기 제1 노드 장치로 상기 랜덤 벡터를 전송하면서 상기 랜덤 벡터에 대한 피드백 벡터의 전송을 요청하는 단계
    를 포함하며,
    상기 인증 값을 랜덤하게 생성하는 단계는
    상기 제1 노드 장치로부터 상기 제1 식별자에 대응되는 공개키로 상기 제1 공개키가 수신됨과 동시에 상기 랜덤 벡터에 대한 피드백 벡터로 제1 피드백 벡터 - 상기 제1 피드백 백터는 상기 랜덤 벡터와의 유클리드 거리가 상기 제1 노드 장치에 기 저장되어 있는 상기 제1 유클리드 거리로 연산되도록 생성된 벡터임 - 가 수신되면, 상기 랜덤 벡터와 상기 제1 피드백 벡터 간의 유클리드 거리를 연산하고, 상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한지 여부를 확인하는 단계; 및
    상기 연산된 유클리드 거리가 상기 제1 유클리드 거리와 동일한 것으로 확인되면, 상기 제1 노드 장치에 대한 인증을 완료하고, 사용자 인증에 사용하기 위한 상기 인증 값을 랜덤하게 생성하는 단계
    를 포함하는 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법.
  7. 제6항에 있어서,
    상기 사용자 단말은
    상기 사용자 인증 처리 장치로부터 상기 인증 값과 상기 전자 서명 요청이 수신되면, 기설정된(predetermined) 해시 함수에 상기 인증 값을 입력으로 인가하여 해시 값을 생성하고, 상기 제1 개인키를 기초로 상기 해시 값을 암호화하여 상기 전자 서명 값을 생성한 후 상기 전자 서명 값과 상기 해시 값을 상기 사용자 인증 처리 장치로 전송하고,
    상기 검증을 수행하는 단계는
    상기 사용자 단말로부터 상기 전자 서명 값과 상기 해시 값이 수신되면, 상기 제1 공개키로 상기 전자 서명 값에 대한 복호화를 수행하여 복호화 값을 생성하고, 상기 복호화 값이 상기 해시 값과 일치하는지 여부를 비교하여 상기 복호화 값이 상기 해시 값과 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 성공으로 판정하는 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법.
  8. 삭제
  9. 삭제
  10. 제6항에 있어서,
    상기 복수의 블록체인 노드 장치들은
    메모리 상에 상기 제1 유클리드 거리에 대한 정보를 저장하고 있고,
    상기 제1 노드 장치는
    상기 사용자 인증 처리 장치로부터 상기 제1 식별자에 대응되는 공개키의 전송 요청과 함께 상기 랜덤 벡터가 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 블록체인 데이터에서 상기 제1 식별자에 대응되어 기록되어 있는 상기 제1 공개키를 추출하고, 상기 랜덤 벡터와의 유클리드 거리가 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 유클리드 거리로 연산되는 피드백 벡터인 상기 제1 피드백 벡터를 랜덤하게 생성한 후 상기 사용자 인증 처리 장치로 상기 제1 공개키와 상기 제1 피드백 벡터를 전송하는 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치의 동작 방법.
  11. 제6항, 제7항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항, 제7항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020190032908A 2019-03-22 2019-03-22 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법 KR102149706B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190032908A KR102149706B1 (ko) 2019-03-22 2019-03-22 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190032908A KR102149706B1 (ko) 2019-03-22 2019-03-22 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR102149706B1 true KR102149706B1 (ko) 2020-08-31

Family

ID=72234190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190032908A KR102149706B1 (ko) 2019-03-22 2019-03-22 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102149706B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220112013A (ko) 2021-02-03 2022-08-10 이니텍(주) 인증서를 포함하는 검증 가능 자격 증명을 발행하는 방법 및 그 방법에 의해 발행된 검증 가능 자격 증명을 이용한 인증 방법
KR102487849B1 (ko) * 2021-11-11 2023-01-12 주식회사 미임팩트 블록체인에 기반한 민감 정보의 위변조 방지 장치 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170019702A (ko) * 2015-08-12 2017-02-22 삼성전자주식회사 난수 발생 장치
KR20170043050A (ko) * 2015-10-12 2017-04-20 삼성전자주식회사 이미지 센서를 이용한 인증 방법 및 장치
KR20180079805A (ko) * 2017-01-02 2018-07-11 주식회사 코인플러그 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
KR20180129027A (ko) * 2017-05-24 2018-12-05 라온시큐어(주) 프로그래밍이 가능한 블록체인과 통합 아이디 기반의 사용자 인증 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170019702A (ko) * 2015-08-12 2017-02-22 삼성전자주식회사 난수 발생 장치
KR20170043050A (ko) * 2015-10-12 2017-04-20 삼성전자주식회사 이미지 센서를 이용한 인증 방법 및 장치
KR20180079805A (ko) * 2017-01-02 2018-07-11 주식회사 코인플러그 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
KR20180129027A (ko) * 2017-05-24 2018-12-05 라온시큐어(주) 프로그래밍이 가능한 블록체인과 통합 아이디 기반의 사용자 인증 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220112013A (ko) 2021-02-03 2022-08-10 이니텍(주) 인증서를 포함하는 검증 가능 자격 증명을 발행하는 방법 및 그 방법에 의해 발행된 검증 가능 자격 증명을 이용한 인증 방법
KR102487849B1 (ko) * 2021-11-11 2023-01-12 주식회사 미임팩트 블록체인에 기반한 민감 정보의 위변조 방지 장치 및 그 방법

Similar Documents

Publication Publication Date Title
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
US10680808B2 (en) 1:N biometric authentication, encryption, signature system
KR102218188B1 (ko) 블록체인 기반의 인증서 관리를 수행하는 노드 장치 및 그 동작 방법
JP4741503B2 (ja) 公開鍵を検証可能に生成する方法及び装置
US9485098B1 (en) System and method of user authentication using digital signatures
WO2017195886A1 (ja) 認証システム、認証方法およびプログラム
JP2009529832A (ja) 発見不可能、即ち、ブラック・データを使用するセキュアなデータ通信
KR20060101454A (ko) 기기인증 시스템
CN110690956B (zh) 双向认证方法及系统、服务器和终端
KR102227578B1 (ko) 블록체인 네트워크를 이용한 영지식 증명 기반의 인증서 서비스 방법, 이를 이용한 인증 지원 서버 및 사용자 단말
KR102137122B1 (ko) 보안 체크 방법, 장치, 단말기 및 서버
CN108833431B (zh) 一种密码重置的方法、装置、设备及存储介质
KR102284396B1 (ko) 생체 정보 기반의 pki 키 생성 방법 및 이를 이용한 키 생성 장치
JP6451938B2 (ja) 暗号文照合システム、方法、およびプログラム
CN113836506A (zh) 身份认证方法、装置、系统、电子设备、存储介质
CN108805574B (zh) 基于隐私保护的交易方法和系统
KR102149706B1 (ko) 블록체인을 이용한 전자 서명 기반의 사용자 인증 처리 장치 및 그 동작 방법
JP6581611B2 (ja) 認証鍵共有システムおよび認証鍵共有方法
US20220253516A1 (en) Device and method for authenticating user and obtaining user signature using user's biometrics
JP4874007B2 (ja) 認証システム、サーバコンピュータ、プログラム、及び、記録媒体
JP2018133739A (ja) 秘密鍵複製システム、端末および秘密鍵複製方法
KR102070248B1 (ko) 개인키의 안전 보관을 지원하는 사용자 간편 인증 장치 및 그 동작 방법
CN115694833A (zh) 一种协同签名方法
TWM552152U (zh) 交易授權系統及推播伺服器
CN112737790B (zh) 数据传输方法、装置及服务器、客户终端

Legal Events

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