KR20220085224A - 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치 - Google Patents

무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치 Download PDF

Info

Publication number
KR20220085224A
KR20220085224A KR1020200175119A KR20200175119A KR20220085224A KR 20220085224 A KR20220085224 A KR 20220085224A KR 1020200175119 A KR1020200175119 A KR 1020200175119A KR 20200175119 A KR20200175119 A KR 20200175119A KR 20220085224 A KR20220085224 A KR 20220085224A
Authority
KR
South Korea
Prior art keywords
value
hash
information
terminal device
beacon
Prior art date
Application number
KR1020200175119A
Other languages
English (en)
Other versions
KR102501794B1 (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 KR1020200175119A priority Critical patent/KR102501794B1/ko
Publication of KR20220085224A publication Critical patent/KR20220085224A/ko
Application granted granted Critical
Publication of KR102501794B1 publication Critical patent/KR102501794B1/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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 비콘 장치, 관리자 단말장치, 서버 각각과 통신 가능한 통신 장치, 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복하여 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 메모리, 및 관리자 단말장치로부터 회차 정보(dp) 및 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 수신된 회차 정보, 랜덤 값 정보와 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하여 전자 장치의 씨드 값으로 메모리에 저장하고, 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받으면, 전자 장치의 씨드 값과 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 인증 값을 서버에 전송하도록 통신 장치를 제어하는 프로세서를 포함한다.

Description

무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치{METHOD FOR USER AUTHENTICATION BASED ON HASH CHAIN SUITABLE FOR UNMANNED SYSTEMS AND ELECTRONIC APPARATUS USING IT}
본 개시는 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치에 관한 것으로, 보다 상세하게는 무인 시스템에 적합한 위임 키(key delegation)를 이용한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치에 관한 것이다.
기술의 발달과 인건비의 급격한 상승으로 인하여 무인 시스템을 이용하여 고객이나 직원을 관리하는 사업장이 증가하고 있다. 이러한 사업장은 출입구에 키오스크와 이에 연동된 전자 출입문을 설치하여 고객의 상주 시간을 확인하거나 직원의 근태를 관리하고 있다.
그러나 종래의 시스템은 출입 때마다 항상 QR 코드나 카메라에 자신을 인식시켜야 하는 과정이 필요하다는 점에서, 특정 시간에 사람이 몰리는 경우, 병목 현상이 발생하는 문제가 있었다.
또한, 무인 시스템에서 직원 관리를 하는 경우, 출퇴근할 때에만 자신의 출/퇴근만 기록하면 된다는 점에서, 해당 기록을 하고 작업장을 벗어나 있더라도 이를 확인할 방법이 없다. 이를 위하여, CCTV 등을 설치하는 방법이 있지만, 추가적인 장비 및 이를 확인할 인력이 추가로 필요하다는 문제가 있었다.
따라서, 본 개시는 상술한 바와 같은 문제점을 해결하기 위하여 고안된 것으로, 무인 시스템에 적합한 위임 키(key delegation)를 이용한 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치를 제공하는 데 있다.
본 개시는 이상과 같은 목적을 달성하기 위한 것으로, 본 개시 일 실시 예에 따른 전자 장치는 비콘 장치, 관리자 단말장치, 서버 각각과 통신 가능한 통신 장치, 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복하여 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 메모리, 및 상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하여 상기 전자 장치의 씨드 값으로 상기 메모리에 저장하고, 상기 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받으면, 상기 전자 장치의 씨드 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 상기 인증 값을 서버에 전송하도록 상기 통신 장치를 제어하는 프로세서를 포함한다.
이 경우, 상기 프로세서는 상기 관리자 단말장치로부터 상기 제1 씨드 값을 수신하면, 상기 제1 씨드 값을 상기 메모리에 저장하고, 상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 산출된 제1 해시 처리 값을 검증할 수 있다.
한편, 상기 프로세서는 상기 전자 장치의 씨드 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성할 수 있다.
한편, 상기 통신 장치는 상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신할 수 있다.
한편, 상기 프로세서는 복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 상기 메모리에 저장할 수 있다.
한편, 상기 통신 장치는 제1 주기로 상기 관리자 단말장치로부터 상기 회차 정보 및 랜덤 값 정보를 수신하고, 상기 제1 주기보다 짧은 제2 주기로 상기 비콘 장치로부터 제2 해시 처리 값을 수신할 수 있다.
한편, 상기 프로세서는 상기 서버로부터 인증 값의 전송을 요청받으면, 상기 인증 값을 생성하고, 상기 생성된 인증 값을 상기 서버에 전송하도록 상기 통신 장치를 제어할 수 있다.
한편, 상기 통신 장치는 상기 비콘 장치와 근거리 무선 통신 방식을 이용하여 데이터를 송수신하고, 상기 관리자 단말장치 및 상기 서버와 상기 근거리 무선 통신 방식과 다른 무선 통신 방식을 이용하여 데이터를 송수신할 수 있다.
한편, 본 개시의 일 실시 예에 따른 사용자 인증 방법은 제1 씨드 값에 대해서 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 단계, 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하는 단계, 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받는 단계, 상기 산출된 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 단계, 및 상기 인증 값을 서버에 전송하는 단계를 포함한다.
이 경우, 상기 저장하는 단계는 상기 관리자 단말장치로부터 수신한 제1 씨드 값을 더 저장하고, 상기 사용자 인증 방법은 상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 제1 해시 처리 값을 검증하는 단계를 더 포함할 수 있다.
한편, 상기 인증 값을 생성하는 단계는 상기 산출된 제1 해시 처리 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성할 수 있다.
한편, 상기 제2 해시 처리 값을 수신받는 단계는 상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신할 수 있다.
한편, 상기 저장하는 단계는 복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 저장할 수 있다.
한편, 본 개시의 일 실시 예에 따른 사용자 인증 시스템은 제1 씨드 값에 대해서 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 생성하는 관리자 단말장치, 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 포함하는 비콘 정보를 전송하는 비콘 장치, 상기 복수개의 키 값을 상기 관리자 단말장치로부터 제공받아 저장하고, 상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하고, 상기 비콘 장치로부터 상기 제2 해시 처리 값을 수신받으면, 상기 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 사용자 단말장치, 및 상기 사용자 단말장치로부터 상기 인증 값을 수신하면, 상기 수신한 인증 값을 기초로 상기 사용자 단말장치가 상기 비콘 장치의 인근에 위치하는지를 확인하는 서버를 포함한다.
이상과 같은 본 개시의 다양한 실시 예들에 따르면, 해시 체인과 이전에 생성하는 난수만을 사용하여 사용자 인증 절차를 수행할 수 있는바, 효율적인 인증이 가능하다.
도 1은 본 개시의 일 실시 예에 따른 사용자 인증 시스템을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 위임 키 생성 동작을 설명하기 위한 도면,
도 3은 본 개시의 일 실시 예에 따른 키 셋업 동작을 설명하기 위한 도면,
도 4는 본 개시의 일 실시 예에 따른 위임 키를 위한 초기화 동작을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 위임 키를 이용한 사용자 추적 동작을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시하는 도면, 그리고,
도 7은 본 개시의 일 실시 예에 따른 사용자 인증 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 개시에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다.
본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
그리고 본 개시에서 "값"이라 함은 스칼라값뿐만 아니라 벡터, 다항식 형태도 포함하는 개념으로 정의된다.
후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 개시에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
설명의 편의를 위해서, 본 개시에서는 다음과 같이 표기를 정하기로 한다.
G : 소수 q를 가지고 있는 순환 그룹이고, 본 그룹의 생성기(generator)는 g
h : {0,1}* →{0,1}k를 수행하는 암호학적으로 안전한 해시 함수
Gen(1n) : 보안 파라미터(n)를 입력받고, q 차 순환 그룹과 해당 그룹의 생성기(g)를 생성
[x] : x 보다 작은 최대 정수
이하에서는 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 사용자 인증 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 사용자 인증 시스템(1000)은 비콘 장치(10), 사용자 단말장치(100), 관리자 단말장치(200), 및 서버(300)를 포함할 수 있다.
비콘 장치(10)는 사용자 인증을 수행할 공간에 배치되며, 주기적으로 비콘 정보를 전송한다. 여기서 비콘 정보는 근거리 무선 통신 방식으로 전송되는 정보로, 블루투스, WiFi 다이렉트, LTE D2D 방식일 수 있으며, 비콘 장치의 ID 정보, 해시 체인 주기(n), 해당 주기의 해시 체인 값(BVVk)을 포함할 수 있다. 한편, 도시된 예에서는 특정 공간에 하나의 비콘 장치(10)가 위치하는 것으로 도시하였지만, 구현시에 복수의 비콘 장치(10)가 위치할 수 있으며, 한 공간 내의 복수의 비콘 장치는 동일한 비콘 정보를 송신하거나, 서로 다른 비콘 정보를 송신할 수도 있다.
관리자 단말장치(200)는 사용자 단말장치(100)에서의 해시 처리 값(또는 위임 키) 생성에 필요한 복수의 키 값을 생성하여 사용자 단말장치(100)에 전송한다. 여기서 키 값은 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp)만큼 반복하여 해시 처리된 n개 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 값이다. 여기서 키 값의 개수는 해시 체인을 구성하는 sp의 수(NSP)에 대응되는 값을 가질 수 있다.
그리고 관리자 단말장치(200)는 사용자 단말장치(100)에서 사용할 씨드 값 특정을 위한 회차 정보(dp) 및 해당 회차 정보에 대응되는 랜덤 값 정보를 사용자 단말장치(100)에 전송할 수 있다. 이와 같은 회차 정보 및 랜덤 값 정보는 제1 주기 단위로 사용자 단말장치(100)에 제공될 수 있다.
사용자 단말장치(100)는 관리자 단말장치(200)로부터 상술한 복수의 키 값을 제공받아 저장하고, 수신한 회차 정보 및 랜덤 값을 이용하여 사용할 해시 처리 값(또는 씨드 값)을 결정할 수 있다. 구체적으로, 사용자 단말장치(100)는 기저장된 복수의 키 값 중 수신한 회차 정보에 대응되는 키 값을 추출하고, 수신한 랜덤 값과의 XOR 연산을 통하여 추출된 키 값이 되는 해시 처리 값을 산출할 수 있다. 이와 같이 산출된 해시 처리 값을 사용자 단말장치(100)의 씨드 값으로 이용할 수 있다.
이때, 사용자 단말장치(100)는 관리자 단말장치(200)로부터 제공받은 제1 씨드 값을 기설정된 주기 및 회차 정보에 대응되는 횟수(sp*dp)만큼 반복하여 해시 처리하고, 해시 처리된 값과 앞서 산출된 해시 처리 값이 동일한지를 비교하여 앞서 산출된 해시 처리 값을 검증할 수 있다.
그리고 사용자 단말장치(100)는 비콘 장치(10)로부터 제2 해시 처리 값을 수신하면, 수신한 제2 해시 처리 값과 앞서 산출된 제1 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 생성한 인증 값을 포함하는 인증 정보를 서버(300)에 전송할 수 있다. 이때, 사용자 단말장치(100)는 제1 해시 처리 값을 현재 사용자 단말장치(100)에 설정된 주기(Uk)에 대응되는 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 산출된 제3 해시 처리 값과 수신한 제2 해시 처리 값을 XOR 연산하여 인증 값을 생성할 수도 있다.
서버(300)는 사용자 인증을 위한 전체 프로토콜을 위한 시스템 파라미터를 설정하고, 사용자 인증을 위한 각종 정보를 비콘 장치(10) 및 관리자 단말장치(200) 등에 전송할 수 있다.
그리고 서버(300)는 사용자 인증이 필요하면, 사용자 단말장치(100)에 인증 정보를 요청하여 수신하고, 수신된 인증 정보를 통하여 사용자 단말장치(100)를 인증할 수 있다.
그리고 서버(300)는 주기적으로 상술한 인증 절차를 수행하여, 해당 공간에 사용자 단말장치(100)의 머문 시간을 관리할 수 있다. 또한, 서버(300)는 관리된 시간을 기초로 과금 동작 등을 추가로 수행할 수도 있다.
이상과 같이 본 실시 예에 따른 사용자 인증 시스템은 사용자 추적 과정에서 해시 체인과 이전에 생성한 난수만을 사용함으로 계산적으로 효율적인 인증이 가능하다. 특히 사용자 단말장치가 서버에 전송하는 인증 값은 두개의 해시 처리 값을 XOR 연산 처리한 값으로, 즉 실제 인증 메시지인 제1 해시 처리 값(BVBK)을 비밀 키(BVVk)를 사용한 One time Pad(OTP)로 암호화한 효과를 가짐으로써, 안전하지 않은 채널로 해당 결과를 전송하여도 보안을 유지할 수 있는 효과가 있다. 따라서, 비밀 키나 공개 키 알고리즘을 이용하여 사용자 단말장치와 서버와의 통신을 형성하기 위한 부담도 줄일 수 있다.
또한, 관리자 단말장치(200)가 사용자 단말장치(100)에 제공하는 복수개의 키 값은 해시 처리 값이 랜덤 값으로 마스킹 되어 있으므로, 랜덤 값을 알지 못하면 해시 처리 값을 찾아낼 수 없는 장점이 있다.
한편, 도 1을 도시하고 설명함에 있어서, 사용자 인증 시스템에 하나의 관리자 단말장치, 하나의 사용자 단말장치를 도시하였지만, 구현시에 사용자 인증 시스템에는 복수의 관리자 단말장치, 복수의 사용자 단말장치를 포함할 수 있다. 또한, 서버 역시, 상술한 복수의 기능을 개별적으로 갖는 복수의 서버 장치로 구현될 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 위임 키 생성 동작을 설명하기 위한 도면이다.
암호학에서 사용되는 해시 함수는 해시 함수의 출력으로부터 해시 함수의 입력을 구하는 것이 확률적으로 어려운 한 방향 함수이다. 본 개시에서는 해시 함수를 h로 표기하며, 임의의 길이를 갖는 이진 문자열을 입력으로 받고, 길이가 ℓ인 이진 문자열을 출력하는 함수로 정의한다.
[수학식 1]
h : {0,1}* → {0,1}
이러한 해시 함수는 전자 서명 설계, MAC(Message Authentication Code) 알고리즘 설계, 패스워드 기반 인증 등 다양한 암호화 분야에 사용되고 있다. 해시 함수를 입력(v)에 반복적으로 적용할 경우, 해시 함수의 출력 값들은 아래와 같은 체인을 형성하는데 이를 해시 체인이라고 한다.
[수학식 2]
v0 = hn(v) ← v1 = hn-1(v) ← … ← vn-2 = h2(vn) ← vn-1 = h(vn) ← vn
도 2를 참조하면, Vn값에 반복적으로 해시 함수가 처리되어 16개의 값이 체인으로 구성된다. 여기서 기설정된 주기(sp)의 해시 처리 값(V4, V8, V12, V0)이 사용자 단말장치(100)의 씨드로 사용될 수 있다. 한편, 도시된 예에서는 기설정된 주기(sp)가 4이고, sp의 개수(NSP)가 4인 해시 체인을 이용하였지만, 이와 같은 값은 예시이고, 다른 sp, NSP 값을 갖는 해시 체인이 이용될 수도 있다.
한편, 상술한 해시 처리 값이 직접적으로 사용자 단말장치(100)와 관리자 단말장치(200)가 송수신한다면, 안전한 채널을 이용하여야 하는 부담이 있다. 이러한 점에서, 본 개시는 상술한 해시 처리 값을 직접적으로 송수신하지 않고, 해시 처리 값의 생성에 필요한 키 값을 사용자 단말장치(100)에 제공하고, 관리자 단말장치(200)는 해당 키 값을 통하여 해시 처리 값을 산출할 수 있는 정보를 제공하는 동작을 수행한다.
이와 같은 동작을 위해서는 선행적으로 초기 설정이 필요한바, 이하에서는 사용자 인증에 필요한 전체 동작을 키 설정 동작, 초기화 동작, 사용자 추적 동작으로 구분하여, 각 동작별로 자세히 설명한다.
먼저, 키 설정 동작에 대해서 도 3을 참조하여 이하에서 설명한다.
도 3은 본 개시의 일 실시 예에 따른 키 셋업 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 키 셋업 동작은 크게 단말장치에 대한 키 생성 동작(S310)과 비콘 장치에 대한 키 생성 동작(S360)으로 나뉠 수 있다. 이하에서는 단말장치들에 대한 키 생성 동작을 먼저 설명하나, 구현시에는 두 동작은 병렬적으로 수행되거나, 비콘 장치에 대한 키 생성 동작이 선행적으로 수행될 수도 있다.
먼저, 단말장치에 대한 키 생성 동작을 설명한다(S310).
서버(300)는 비콘 장치(10), 사용자 단말장치(100), 관리자 단말장치(200) 및 서버(300)에서 사용할 시스템 보안 파라미터(G, q, g)를 생성하고, 서버의 비밀 키(s) 및 공개 키(gs)를 생성할 수 있다(S315). 여기서, q는 소수, G는 소수 q를 가지고 있는 순환 그룹이고, g는 순환 그룹을 이용한 생성기(generator)이다.
그리고 서버(300)는 서버 ID(KUMS), 생성한 시스템 보안 파라미터(G, q, g), 공개 키(gs)를 사용자 단말장치(100) 및 관리자 단말장치(200)에 전송할 수 있다(S320, S335).
사용자 단말장치(100)는 전달받은 시스템 보안 파라미터에 기초하여 사용자 단말장치의 비밀 키(u) 및 공개 키(gu)를 생성할 수 있다(S325). 그리고 사용자 단말장치(100)는 생성한 공개 키(gu)와 사용자 ID(U)를 서버(300)에 전송할 수 있다(S330). 여기서 사용자 ID는 사용자 단말장치(100)의 ID일 수 있으며, 해당 사용자 단말장치(100)를 사용하는 사용자의 ID일 수도 있다. 즉, 본 실시예에 따른 사용자 인증 시스템은 해당 시스템에 접속되는 단말장치의 이력을 관리할 수 있으며, 해당 시스템을 이용하는 사용자의 이력을 관리할 수도 있다. 다만, 일반적으로 하나의 스마트폰은 사용자 한 명이 이용하는 것이 일반적인바, 이하에서는 사용자 단말장치와 사용자를 동일시하여 설명한다.
그리고 관리자 단말장치(200)도 제공받은 정보에 기초하여 관리자 단말장치의 비밀 키(m) 및 공개 키(gm)를 생성할 수 있다(S340). 그리고 관리자 단말장치(200)는 생성한 공개 키(gm) 및 관리자 ID(M)를 서버(300)에 전송할 수 있다(S345).
서버(300)는 두 장치로부터 제공받은 공개 키를 저장한다(S350).
그리고 서버(300)는 비콘 장치(10)에서 사용할 해시 체인 주기(n), 공개 값(BV0), 해시 체인 씨드(BVn)를 생성한다(S365). 여기서, 해시 체인 씨드는 도 2에 도시한 바와 같은 체인 형태를 가질 수 있다.
그리고 서버(300)는 생성한 해시 체인 주기(n), 공개 값(BV0), 해시 체인 씨드(BVn)를 비콘 장치(10)에 제공할 수 있다(S370). 이때, 서버(300)는 보안 채널을 통하여 상술한 정보를 비콘 장치(10)에 제공할 수 있다.
비콘 장치(10)는 서버(300)로부터 제공받은 정보를 검증하고, 검증된 정보를 저장할 수 있다. 예를 들어, 비콘 장치(10)는 제공받은 공개 값(BV0)을 기설정된 횟수만큼(예를 들어, 해시 체인 주기(n)) 반복 해시 처리하여, 해당 연산 결과와 제공받은 해시 체인 씨드가 동일한지 여부로 검증을 수행할 수 있다.
이와 같은 키 셋업이 완료되면, 키 값 공유를 위한 초기화 동작이 수행될 수 있다. 초기화 동작에 대해서는 도 4를 참조하여 이하에서 설명한다.
도 4는 본 개시의 일 실시 예에 따른 위임 키를 위한 초기화 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 비콘 장치(10)는 현재 주기에 대응되는 해시 처리 값을 산출하고(S405), 산출된 해시 처리 값을 포함하는 비콘 정보(B, Bk, BVVk)를 브로드캐스팅한다(S410). 여기서 B는 비콘 장치의 ID, Bk는 비콘의 현재 주기이며, 초기 정한 시간을 기준으로 정해질 수 있으며, 초/분/시간/일 등의 단위로 1씩 증가할 수 있다. BVVk는 현재 주기의 해시 처리 값으로, 해시 체인 씨드(BVn)가 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값일 수 있다.
사용자 단말장치(100)는 비콘 장치(10)와 인접하게 위치하게 되면, 비콘 장치(10)에서 송출된 비콘 정보를 수신할 수 있다. 그리고 사용자 단말장치(100)는 최초 비콘 정보를 수신하거나, 관리자 단말장치(200)로부터 제공받은 키 값의 주기가 완료되면, 수신한 비콘 정보(B, Bk, BVVk)와 사용자 ID (U)를 관리자 단말장치(200)에 전송할 수 있다(S415).
관리자 단말장치(200)는 사용자 단말장치(100)의 인증에 사용할 키 값을 생성한다(S420). 구체적으로, 관리자 단말장치(200)는 SP(Short Period), SP의 개수, LP(Long Period)를 무인 시스템의 관리 설정에 따라 결정한다. 여기서 SP는 기설정된 주기로, 도 2의 트리 구조에서 V0, V4, V8, V12 간의 거리일 수 있다. 그리고 SP의 개수(NSP)는 트리구조의 최하위층을 구성하는 SP의 개수이다. 예를 들어, 도 2에서 SP는 4, SP의 개수는 4일 수 있다. 이와 같은 관리 설정은 해당 단계 전에 미리 결정되어 있을 수 있다.
그리고 관리자 단말장치(200)는 LP의 씨드인 MVlp에 해시 함수(H1)를 lp번 적용하면서 MV0, MVsp*1,MVsp*1,…, MVsp*(nsp-1)를 생성할 수 있다. 예를 들어, 도 2에서와 같이 맨 우측의 MVlp을 순차적으로 lp번 해시 처리하고, 4번째(MV12), 8번째(MV8), 12번째(MV4), 16번째(MV0)와 같은 4개의 해시 처리 값을 산출할 수 있다. 여기서 생성되는 해시 처리 값의 개수는 SP의 개수(즉, NSP)와 같을 수 있다.
그리고 관리자 단말장치(200)는 랜덤 값인 복수개의 R(R1, R2, …, Rnsp)를 생성하고, 앞서 만든 해시 처리 값과 생성한 랜덤 값 각각을 아래와 같이 XOR해서 위임 키를 위한 키 값(IKD = (IKD1, IKD2, …, IKDnsp))을 생성할 수 있다.
[수학식 3]
IKD1 = MVsp*1 R1,
IKD2 = MVsp*2 R2,
IKDnsp = MVsp*nsp Rnsp,
그리고 관리자 단말장치(200)는 제1 메시지(Msg1)와 제2 메시지(Msg2)를 만들 수 있다. 여기서 제1 메시지(Msg1)는 사용자 ID, 관리자 ID, sp, lp, MV0, 비콘 ID, Bk, BVbk 정보를 갖는 메시지이고, 제2 메시지(Msg2)는 제1 메시지와 키 값(IKD)을 갖는 메시지이다.
그리고 관리자 단말장치(200)는 제1 메시지에 대한 전자 서명 값(CR, CS)을 관리자 단말장치(200)의 비밀 키(m)를 사용하여 생성하고, 제2 메시지를 사용자 단말장치의 공개 키(gu)를 사용하여 암호화하여 암호문(CU1, CV1)을 생성할 수 있다. 이때, 관리자 단말장치(200)는 Elgamal Encryption을 이용하여 암호문을 생성할 수 있다.
관리자 단말장치(200)는 생성한 전자 서명 값(CR, CS) 및 암호문(CU1, CV1)을 사용자 단말장치(100)에 전송할 수 있다(S425).
전자 서명 값 및 암호문을 제공받은 사용자 단말장치(100)는 자신의 비밀 키(u)를 이용하여 암호문(CU1, CV1)을 복호화하고, 제공받은 전자 서명 값(CR, CS)을 이용하여 제1 메시지(Msg1)를 검증하고, 전자 서명 값이 유효하다면, 제1 메시지와 제2 메시지 내의 정보를 저장하고(S430), 제1 메시지(Msg1)를 서버의 공개 키(gs)로 암호화하여 암호문(CU2, CV2)을 생성할 수 있다.
그리고 사용자 단말장치(100)는 전자 서명 값(CR, CS)과 생성한 암호문(CU2, CV2)을 서버(300)에 전송할 수 있다(S435).
서버(300)는 자신의 비밀 키(s)를 이용하여 암호문(CU2, CV2)을 복호화하고, 제공받은 전자 서명 값(CR, CS)을 이용하여 제1 메시지(Msg1)를 검증할 수 있다. 그리고 서버(300)는 전자 서명 유효하다면, 제1 메시지 및 제2 메시지를 저장할 수 있다(S440).
한편, 상술한 MV0, MVsp*1,MVsp*1,…, MVsp*(nsp-1)는 위임 키(또는 인증 값)로 사용될 수 있다. 구체적으로, 관리자 단말장치(100)는 사용자 단말장치(100)에 회차 정보와 현재 회차의 랜덤 값만을 사용자 단말장치(200)에 제공하면, 사용자 단말장치(200)는 앞서 제공된 복수의 키 값을 이용하여 현재 회차의 해시 처리 값을 결정할 수 있다. SHA와 같이 암호학적으로 안전한 해시 함수 h의 특성으로 인하여 사용자 단말장치(100)는 관리자 단말장치(200)로부터 Ri를 전달받지 못하면, IDKk(k<i)로부터 MVi를 찾아 낼 수 없다.
이와 같이 해시 처리 값을 산출하기 위한 복수의 키 값을 관리자 단말장치(200)에서 생성하고, 해당 키 값이 사용자 단말장치(100) 및 서버(300)에서 공유하게 되면 사용자 추적을 위한 모든 준비 과정은 완료된다. 이하에서는 키 값이 공유된 상태에서의 사용자 추적 동작을 도 5를 참조하여 설명한다.
도 5는 본 개시의 일 실시 예에 따른 위임 키를 이용한 사용자 추적 동작을 설명하기 위한 도면이다.
도 5를 참조하면, 사용자 추적 동작은 키 위임 단계(S510)와 트레킹 단계(S530)로 구분될 수 있다.
먼저, 키 위임 단계(S510)는 초기화 과정에서 생성한 위임 키 선택을 위한 정보를 전달하는 과정이다. 구체적으로, 관리자 단말장치(200)는 인증 메시지 생성을 위해 필요한 위임 키 MVi의 유효 사용 주기인 회차 정보(dp: Delegation Period)를 결정하고, 결정된 회차에 대응되는 랜덤 값(Rdp)을 R(1, 2, .., nps)에서 추출한 후(S515), 회차 정보(dp), 해당 회차의 랜덤 값(Rdp)을 사용자 단말장치(100)에 전송한다(S520).
사용자 단말장치(100)는 IKDdp와 Rdp를 XOR하여 MVsp*sp를 생성하고, 이를 MV0로 검증한 후 유효하다면 MVsp*sp를 사용자 단말장치의 씨드(UVseed)로 저장할 수 있다(S525). 구체적으로, MVsp*dp를 sp*dp번 해시 함수(h1)에 적용하여 산출된 결과 값이 MV0과 같으면 산출된 값이 유효한 것으로 판단할 수 있다.
트레킹 단계(S530)는 사용자 단말장치(100)가 비콘 장치(10)의 근거리에 존재한다는 것을 알려주기 위한 메시지를 서버(300)에 전달하는 과정이다.
서버(300)는 주기적으로 사용자에게 인증 값(Auth)을 보내라는 신호를 사용자 단말장치(100)에 전송할 수 있다(S535).
사용자 단말장치(100)는 비콘 장치(10)와 인접하게 위치하지 않은 경우에는 서버(300)의 요청을 수행하지 않고, 비콘 장치(10)와 인접한 경우에는 이하의 동작을 지속할 수 있다(S540).
사용자 단말장치(100)는 비콘 장치(10)로부터 비콘 정보(B, Bk, BVBK)를 수신한다(S545).
그리고 사용자 단말장치(100)는 기저장된 씨드(UVseed)를 (Seed-Uk)번 반복적으로 해시 처리하여 해시 처리 값(UVUK)을 생성하고, 해당 해시 처리 값과 비콘 장치로부터 수신한 해시 처리 값(BVBK)을 XOR 연산 처리하여 인증 값(Auth)을 생성할 수 있다(S550).
그리고 사용자 단말장치(100)는 인증 값을 포함하는 인증 정보(U, UK, B, BK, Auth)를 서버(300)에 전송할 수 있다(S555). 여기서, U는 사용자 단말 장치의 ID, UK는 사용자 단말장치의 현재 주기 정보, B는 비콘 장치의 ID, BK는 비콘 장치의 주기 정보, Auth는 인증값이다.
서버(300)는 사용자 단말장치(100)로부터 인증 정보를 수신하면, 수신한 인증 정보를 검증한다(S560). 구체적으로, 서버(300)는 초기화 과정에서 수신한 제1 메시지(Msg1)에 포함된 BVBK을 (n-Bk)번 반복적으로 해시 처리해서 BVBK'을 생성하고, 이를 인증 값(Auth)과 XOR해서 UVuk를 계산한다. 마지막으로 UVuk를 UK번 해시 처리해서 MVO와 같은지를 확인함으로써 수신한 인증 값이 유효한지를 검증할 수 있다.
그리고 서버(300)는 수신한 인증 값이 유효하면, 수신한 인증 정보를 저장하고, 해당 주기에 사용자 단말장치(100)가 비콘 장치(10)의 통신 거리에 위치함을 인증할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시하는 도면이다.
구체적으로, 도 1의 사용자 인증 시스템(1000)에서 키 값을 생성하는 관리자 단말장치, 키 값을 이용하여 인증 값을 생성하는 사용자 단말장치, 인증 값을 이용하여 인증을 수행하는 서버 등을 전자 장치라고 지칭할 수 있다. 이러한 전자 장치는 PC(Personal computer), 노트북, 스마트폰, 태블릿, 서버 등 다양한 장치일 수 있다.
도 6을 참조하면, 전자 장치(600)는 통신 장치(610), 메모리(620), 디스플레이(630), 조작 입력 장치(640) 및 프로세서(650)를 포함할 수 있다. 전자 장치(600)는 PC, 서버 등 다양한 장치로 구현될 수 있다.
통신 장치(610)는 전자 장치(600)를 다른 장치들과 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 외부 장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신(예를 들어, WiFi 802.11a/b/g/n, 3G, 4G, 5G), 근거리 무선 통신(예를 들어, Bluetooth, WiFi Direct, LTE D2D)을 통하여 접속되는 형태도 가능하다. 이러한 통신 장치(610)는 송수신부(transceiver)로 지칭될 수도 있다.
통신 장치(610)는 키 설정을 위한 각종 정보를 송수신할 수 있다. 예를 들어, 통신 장치(610)는 장치 ID(KUMS, U, M), 데이터 암호화에 필요한 소수 정보(p), 생성기(g), 공개 키(gs, gu, gm) 등을 송수신할 수 있다.
그리고 통신 장치(610)는 비콘 동작과 관련된 각종 정보를 송수신할 수 있다. 예를 들어, 전자 장치(600)가 서버(300)인 경우, 통신 장치(610)는 비콘 정보 생성을 위한 체인 주기(n), 공개 값(BV0), 해시 체인 씨드(BVn)를 비콘 장치(10)에 전송할 수 있다. 그리고 전자 장치(600)가 사용자 단말장치(100)인 경우, 통신 장치(610)는 비콘 장치(10)로부터 비콘 정보(B, Bk, BVBK)를 수신하거나 수신한 비콘 정보를 관리자 단말장치(200)에 전송할 수 있다.
그리고 통신 장치(610)는 초기화 동작을 위한 각종 정보를 송수신할 수 있다. 예를 들어, 전자 장치(600)가 관리자 단말장치(200)인 경우, 통신 장치(610)는 사용자 단말장치(100)로부터 비콘 정보를 전달받을 수 있으며, 제1 메시지에 대한 전자 서명 값 및 암호화된 제2 메시지를 사용자 단말장치(100)에 제공할 수 있다. 여기서, 비콘 정보는 주기적으로 브로드캐스팅 되는 정보로, 사용자 단말장치(100)가 비콘 장치(10)와 기설정된 거리(예를 들어, 10m) 이내로 인접하면 수신할 수 있다.
그리고 전자 장치(600)가 사용자 단말장치(200)인 경우, 통신 장치(610)는 관리자 단말장치(200)로부터 인증 값 및 암호화된 메시지를 수신할 수 있으며, 이를 서버(300)에 전송할 수도 있다.
그리고 통신 장치(610)는 사용자 추적 동작을 위한 각종 정보를 송수신할 수 있다. 예를 들어, 전자 장치(600)가 관리자 단말장치(200)인 경우, 통신 장치(610)는 회차 정보(dp) 및 회차 정보에 대응하는 랜덤 값 정보를 사용자 단말장치(100)에 전송할 수 있다. 그리고 전자 장치(600)가 사용자 단말장치(100)인 경우, 통신 장치(610)는 관리자 단말장치(200)로부터 회차 정보 및 랜덤 값 정보를 수신하고, 이를 기초로 생성한 인증 값을 포함하는 인증 정보를 서버(300)에 전송할 수 있다. 그리고 전자 장치(600)가 서버(300)인 경우, 통신 장치(610)는 사용자 단말장치(100)로부터 인증 정보를 수신할 수 있다.
메모리(620)는 전자 장치(600)에 관한 적어도 하나의 인스트럭션(instruction)을 저장할 수 있다. 예를 들어, 메모리(620)에는 본 개시의 다양한 실시 예에 따라 전자 장치(600)가 동작하기 위한 각종 프로그램(또는 소프트웨어)이 저장될 수 있다. 여기서 프로그램은 도 3 내지 도 5의 동작을 수행하기 위한 프로그램일 수 있다.
이러한 메모리(620)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다.
메모리(620)는 키 설정 단계에서 공유된 정보, 초기화 동작에서 공유된 정보 등을 저장할 수 있다. 예를 들어, 메모리(620)는 데이터의 암복호화에 필요한 공개 키와 자신의 비밀 키 정보를 저장할 수 있으며, 앞서 상술한 제1 메시지 및 제2 메시지 등을 저장할 수 있다. 여기서, 제2 메시지는 상술한 바와 같이 사용자 단말장치의 해시 처리 값의 결정에 이용되는 복수의 키 값(IKD) 정보를 포함할 수 있다.
그리고 메모리(620)는 이력 정보를 저장할 수 있다. 구체적으로, 전자 장치(600)가 서버(300)인 경우, 메모리(620)는 사용자 단말장치(100)의 현재 공간의 체류 시간 정보(예를 들어, 최초 접속 시간, 최종 인증 시간, 총 체류 시간 등) 등을 저장할 수 있다.
메모리(620)는 통신 장치(610)를 통하여 수신한 정보를 임시 저장하거나, 계산 과정에서의 산출되는 값들을 임시 저장할 수 있다.
디스플레이(630)는 전자 장치(600)가 지원하는 기능을 선택받기 위한 사용자 인터페이스 창을 표시한다. 예를 들어, 디스플레이(630)는 전자 장치(600)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 디스플레이(630)는 LCD(liquid crystal display), OLED(Organic Light Emitting Diodes) 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(640)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다.
디스플레이(630)는 키 생성 과정에서 필요한 파라미터(예를 들어, 보안 파라미터)의 입력을 요청하는 메시지를 표시할 수 있다. 예를 들어, 전자 장치(600)가 서버(300)인 경우, 암호화에 필요한 각종 시스템 파라미터의 설정에 필요한 메시지를 표시할 수 있다. 그리고 전자 장치(600)가 사용자 단말장치(100)인 경우, 사용자 인증 시스템(1000)에 참여할 것인지를 알리는 메시지를 표시할 수 있다.
조작 입력 장치(640)는 사용자로부터 전자 장치(600)의 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 예를 들어, 조작 입력 장치(640)는 사용자로부터 키 생성에 필요한 파라미터를 입력받을 수 있다. 또한, 전자 장치(600)가 사용자 단말장치(100)인 경우, 조작 입력 장치(640)는 사용자 인증 시스템(1000)에 참여하여 인증 절차를 수행할지에 대한 명령을 입력받을 수 있다.
프로세서(650)는 전자 장치(600)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(650)는 메모리(620)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 전자 장치(600)의 동작을 전반적으로 제어할 수 있다. 이러한 프로세서(650)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 장치로 구성될 수도 있다.
프로세서(650)는 도 3 내지 도 5에 도시한 각종 동작을 수행할 수 있다. 구체적인 동작에 대해서는 앞서 설명하였는바, 이하에서는 사용자 단말장치(100)에서의 프로세서(650)의 동작만을 간단하게 설명한다.
프로세서(650)는 복수개의 키 값이 저장되어 있지 않거나, 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 수신한 비콘 정보를 관리자 단말장치(200)에 전송하도록 통신 장치(610)를 제어할 수 있다.
프로세서(650)는 복수개의 키 값 정보를 수신하면, 수신한 키 값 정보를 메모리(620)에 저장한다. 여기서 복수개의 키 값 정보는 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복하여 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 값이다. 이때, 관리자 단말장치(200)로부터 제1 씨드 값 정보를 수신하면, 프로세서(650)는 수신한 제1 씨드 값 정보도 메모리(620)에 저장할 수 있다. 여기서 회차 정보 및 랜덤 값 정보는 제1 주기로 수신될 수 있으며, 상술한 비콘 정보는 제1 주기보다 짧은 제2 주기로 수신될 수 있다.
그리고 프로세서(650)는 관리자 단말장치로부터 회차 정보(dp) 및 랜덤 값 정보를 수신하면, 수신된 회차 정보, 랜덤 값 정보와 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하여 사용자 단말장치의 씨드 값으로 메모리(620)에 저장할 수 있다.
이때, 프로세서(650)는 씨드 값으로 저장하기 전에 수신한 랜덤 값 정보에 대한 검증을 수행할 수 있다. 구체적으로, 프로세서(650)는 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 산출된 제1 해시 처리 값을 검증할 수 있다.
그리고 프로세서(650)는 비콘 장치(10)로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복적으로 해시 처리된 제2 해시 처리 값을 수신받으면, 메모리(620)에 저장된 사용자 단말장치(100)의 씨드 값(즉, 제1 해시 처리 값)과 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성할 수 있다. 이때, 프로세서(650)는 메모리(620)에 저장된 씨드 값을 사용자 단말장치(100)의 주기(Uk)에 대응되는 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 산출된 제3 해시 처리 값과 수신한 제2 해시 처리 값을 XOR 연산 처리하여 인증 값을 생성할 수 있다.
그리고 프로세서(650)는 생성한 인증 값을 서버에 전송하도록 통신 장치(610)를 제어한다. 구체적으로, 프로세서(650)는 서버(300)로부터 인증 값의 전송을 요청받으면, 이에 대응하여 생성한 인증 값을 포함하는 인증 정보가 서버(300)에 전송되도록 통신 장치(610)를 제어할 수 있다.
이상과 같이 본 실시 예에 따른 전자 장치(600)는 사용자 추적 과정에서 해시 체인과 이전에 생성한 난수만을 사용함으로 계산적으로 효율적인 인증이 가능하다. 특히 사용자 단말장치가 서버에 전송하는 인증 값은 두개의 해시 처리 값을 XOR 연산 처리한 값으로, 즉 실제 인증 메시지인 제1 해시 처리 값(BVBK)을 비밀 키(BVVk)를 사용한 One time Pad(OTP)로 암호화한 효과를 가짐으로써, 안전하지 않은 채널로 해당 결과를 전송하여도 보안을 유지할 수 있는 효과가 있다. 따라서, 비밀 키나 공개 키 알고리즘을 이용하여 사용자 단말장치와 서버와의 통신을 형성하기 위한 부담도 줄일 수 있다.
또한, 상술한 바와 같은 사용자 인증 방법은 출입 인증을 위하여 QR 코드/NFC, 카메라 인식기 앞에서 멈추는 동작이 없더라도 고속도로의 하이패스와 같이 이들의 입출입을 인증하고 기록할 수 있다. 그리고 사용자의 직접적인 동작 없이도 이들이 소유한 스마튼포과 특정 공간에 설치된 비콘 장치를 통하여 사무실에 있는지를 지속적으로 체크하는 것도 가능하다. 이와 같은 방식으로 고객이나 직원이 해당 공간에 머무른 시간을 정확하게 측정할 수 있으므로 무인 시스템에 대한 신뢰성을 더욱 높일 수 있다.
한편, 도 6을 도시하고 설명함에 있어서, 전자 장치(600)가 복수의 구성들을 포함하는 것으로 도시하였으나, 구현시에 상술한 구성 중 일부는 생략될 수 있으며, 상술한 구성 이외에 다른 구성이 추가될 수도 있다.
도 7은 본 개시의 일 실시 예에 따른 사용자 인증 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 제1 씨드 값에 대한 반복적으로 기설정된 주기(sp)*n번 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장한다(S710). 구체적으로, 복수개의 키 값이 저장되어 있지 않거나, 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 비콘 정보를 관리자 단말장치에 전송하고, 관리자 단말장치로부터 복수개의 키 값을 수신하여 저장할 수 있다. 이와 같은 키 값은 제1 씨드 값과 함께 관리자 단말장치(200)로부터 제공받을 수 있으며, 복수개의 키 값과 함께 제1 씨드 값도 함께 저장할 수 있다.
그리고 관리자 단말장치로부터 회차 정보(dp) 및 랜덤 값 정보를 수신하면, 수신된 회차 정보, 랜덤 값 정보와 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출한다(S720). 이때, 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 산출된 제1 해시 처리 값을 검증할 수 있다.
그리고 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복적으로 해시 처리된 제2 해시 처리 값을 수신받는다(S730). 구체적으로, 사용자 단말장치가 비콘 장치와 기설정된 거리 이내로 인접하면, 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신할 수 있다.
그리고 산출된 제1 해시 처리 값과 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성한다(S740). 구체적으로, 산출된 제1 해시 처리 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 산출된 제3 해시 처리 값과 수신한 제2 해시 처리 값을 XOR 연산 처리하여 인증 값을 생성할 수 있다.
그리고 생성한 인증 값을 서버에 전송한다(S750). 구체적으로, 서버로부터 인증 값의 전송을 요청받으면, 인증 값을 포함하는 인증 정보를 서버에 전송할 수 있다.
이상과 같이 본 실시 예에 따른 사용자 인증 방법은 사용자 추적 과정에서 해시 체인과 이전에 생성한 난수만을 사용함으로 계산적으로 효율적인 인증이 가능하다.
한편, 상술한 다양한 실시 예에 따른 사용자 인증 방법은 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 제어 동작을 수행할 수 있다.
이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다.
이상 첨부 도면을 참고하여 본 개시에 대해서 설명하였지만 본 개시의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시 예 및/또는 도면에 제한되는 것으로 해석되어서는 안 된다. 그리고 특허청구범위에 기재된 개시의, 당업자에게 자명한 개량, 변경 및 수정도 본 개시의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
1000 : 사용자 인증 시스템 100: 사용자 단말장치
200: 관리자 단말장치 300: 관리 서버
600: 전자 장치 610: 통신 장치
620: 메모리 630: 디스플레이
640: 조작 입력 장치 650: 프로세서

Claims (14)

  1. 전자 장치에 있어서,
    비콘 장치, 관리자 단말장치, 서버 각각과 통신 가능한 통신 장치;
    제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복하여 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 메모리; 및
    상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하여 상기 전자 장치의 씨드 값으로 상기 메모리에 저장하고,
    상기 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받으면, 상기 전자 장치의 씨드 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 상기 인증 값을 서버에 전송하도록 상기 통신 장치를 제어하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 관리자 단말장치로부터 상기 제1 씨드 값을 수신하면, 상기 제1 씨드 값을 상기 메모리에 저장하고,
    상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 산출된 제1 해시 처리 값을 검증하는 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 전자 장치의 씨드 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성하는 전자 장치.
  4. 제1항에 있어서,
    상기 통신 장치는,
    상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신하는 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 상기 메모리에 저장하는 전자 장치.
  6. 제1항에 있어서,
    상기 통신 장치는,
    제1 주기로 상기 관리자 단말장치로부터 상기 회차 정보 및 랜덤 값 정보를 수신하고, 상기 제1 주기보다 짧은 제2 주기로 상기 비콘 장치로부터 제2 해시 처리 값을 수신하는 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 서버로부터 인증 값의 전송을 요청받으면, 상기 인증 값을 생성하고, 상기 생성된 인증 값을 상기 서버에 전송하도록 상기 통신 장치를 제어하는 전자 장치.
  8. 제1항에 있어서,
    상기 통신 장치는,
    상기 비콘 장치와 근거리 무선 통신 방식을 이용하여 데이터를 송수신하고, 상기 관리자 단말장치 및 상기 서버와 상기 근거리 무선 통신 방식과 다른 무선 통신 방식을 이용하여 데이터를 송수신하는 전자 장치.
  9. 사용자 단말장치의 사용자 인증 방법에 있어서,
    제1 씨드 값에 대한 반복적으로 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 단계;
    관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하는 단계;
    비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받는 단계;
    상기 산출된 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 단계; 및
    상기 인증 값을 서버에 전송하는 단계;를 포함하는 사용자 인증 방법.
  10. 제9항에 있어서,
    상기 저장하는 단계는,
    상기 관리자 단말장치로부터 수신한 제1 씨드 값을 더 저장하고,
    상기 사용자 인증 방법은,
    상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 제1 해시 처리 값을 검증하는 단계;를 더 포함하는 사용자 인증 방법.
  11. 제9항에 있어서,
    상기 인증 값을 생성하는 단계는,
    상기 산출된 제1 해시 처리 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성하는 사용자 인증 방법.
  12. 제9항에 있어서,
    상기 제2 해시 처리 값을 수신받는 단계는,
    상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신하는 사용자 인증 방법.
  13. 제9항에 있어서,
    상기 저장하는 단계는,
    복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 저장하는 사용자 인증 방법.
  14. 사용자 인증 시스템에 있어서,
    제1 씨드 값에 대해서 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 생성하는 관리자 단말장치;
    제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 포함하는 비콘 정보를 전송하는 비콘 장치;
    상기 복수개의 키 값을 상기 관리자 단말장치로부터 제공받아 저장하고, 상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하고, 상기 비콘 장치로부터 상기 제2 해시 처리 값을 수신받으면, 상기 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 사용자 단말장치; 및
    상기 사용자 단말장치로부터 상기 인증 값을 수신하면, 상기 수신한 인증 값을 기초로 상기 사용자 단말장치가 상기 비콘 장치의 인근에 위치하는지를 확인하는 서버;를 포함하는 사용자 인증 시스템.
KR1020200175119A 2020-12-15 2020-12-15 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치 KR102501794B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200175119A KR102501794B1 (ko) 2020-12-15 2020-12-15 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175119A KR102501794B1 (ko) 2020-12-15 2020-12-15 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치

Publications (2)

Publication Number Publication Date
KR20220085224A true KR20220085224A (ko) 2022-06-22
KR102501794B1 KR102501794B1 (ko) 2023-02-20

Family

ID=82216942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175119A KR102501794B1 (ko) 2020-12-15 2020-12-15 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치

Country Status (1)

Country Link
KR (1) KR102501794B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190036068A (ko) * 2017-09-27 2019-04-04 삼성에스디에스 주식회사 해시 체인을 이용한 단말 간 인증 절차를 거치는 단말 간 통신 방법
KR20190066668A (ko) * 2017-12-06 2019-06-14 재단법인대구경북과학기술원 해쉬 체인에 기반한 디지털 시험 서비스 제공 방법 및 시스템
KR20190084640A (ko) * 2018-01-09 2019-07-17 재단법인대구경북과학기술원 비콘 위치 확인 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190036068A (ko) * 2017-09-27 2019-04-04 삼성에스디에스 주식회사 해시 체인을 이용한 단말 간 인증 절차를 거치는 단말 간 통신 방법
KR20190066668A (ko) * 2017-12-06 2019-06-14 재단법인대구경북과학기술원 해쉬 체인에 기반한 디지털 시험 서비스 제공 방법 및 시스템
KR20190084640A (ko) * 2018-01-09 2019-07-17 재단법인대구경북과학기술원 비콘 위치 확인 방법

Also Published As

Publication number Publication date
KR102501794B1 (ko) 2023-02-20

Similar Documents

Publication Publication Date Title
CN113489585B (zh) 终端设备的身份认证方法、系统、存储介质、电子设备
CN104219228B (zh) 一种用户注册、用户识别方法及系统
US8856528B2 (en) Challenge-response system for maintenance operations via responder for telecommunications cabinet
US9225526B2 (en) Multifactor username based authentication
CN111435913B (zh) 一种物联网终端的身份认证方法、装置和存储介质
JP2019517184A (ja) 安全なデータ伝送のための方法及びシステム
US20040230799A1 (en) Circuit and method for providing secure communications between devices
US20130138961A1 (en) Communication terminal, communication system, communication method and communication program
CN105162772A (zh) 一种物联网设备认证与密钥协商方法和装置
CN109150519A (zh) 基于公共密钥池的抗量子计算云存储安全控制方法和系统
CN107483192B (zh) 一种基于量子通讯的数据传输方法及装置
CN112398894B (zh) 车用的安全验证方法及装置
US20110302421A1 (en) Authentication Method And Apparatus Using One Time Pads
CN105337733A (zh) 一种基于同步异步密钥核验相结合的二维码锁控方法
CN105281902A (zh) 一种基于移动终端的Web系统安全登录方法
CN105897784A (zh) 物联网终端设备加密通信方法和装置
US8769301B2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
CN113079002B (zh) 数据加密方法、解密方法、密钥管理方法、介质和设备
CN107872315A (zh) 数据处理方法和智能终端
CN104618380A (zh) 一种适用于物联网的密钥更新方法
KR20210066713A (ko) 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법
KR101016642B1 (ko) 근접 무선 통신에서의 키 관리를 위한 모바일 시스템, 서비스 시스템 및 키 인증 방법
KR102501794B1 (ko) 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치
CN106790135A (zh) 一种基于云端的数据加密方法及系统、通信设备
CN113672955B (zh) 一种数据处理方法、系统及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant