KR102501794B1 - Method for user authentication based on hash chain suitable for unmanned systems and electronic apparatus using it - Google Patents

Method for user authentication based on hash chain suitable for unmanned systems and electronic apparatus using it Download PDF

Info

Publication number
KR102501794B1
KR102501794B1 KR1020200175119A KR20200175119A KR102501794B1 KR 102501794 B1 KR102501794 B1 KR 102501794B1 KR 1020200175119 A KR1020200175119 A KR 1020200175119A KR 20200175119 A KR20200175119 A KR 20200175119A KR 102501794 B1 KR102501794 B1 KR 102501794B1
Authority
KR
South Korea
Prior art keywords
value
hash
information
terminal device
beacon
Prior art date
Application number
KR1020200175119A
Other languages
Korean (ko)
Other versions
KR20220085224A (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 KR1020200175119A priority Critical patent/KR102501794B1/en
Publication of KR20220085224A publication Critical patent/KR20220085224A/en
Application granted granted Critical
Publication of KR102501794B1 publication Critical patent/KR102501794B1/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/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 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 인증 값을 서버에 전송하도록 통신 장치를 제어하는 프로세서를 포함한다. An electronic device is disclosed. The electronic device performs hash processing by repeating a communication device capable of communicating with each of a beacon device, an administrator terminal device, and a server, and a first seed value a number of times (sp*dp) corresponding to a predetermined period (sp) and repetition information (dp). When receiving turn information (dp) and random value information corresponding to the turn information from a memory storing a plurality of key values in which one of a plurality of random values is XORed to each of a plurality of hash processed values, and a manager terminal device , The first hash processing value is calculated using the received round information, random value information, and a plurality of stored key values, and stored in the memory as a seed value of the electronic device, and the second seed value from the beacon device is the period of the beacon (Bk ) to generate an authentication value by performing calculation processing on the seed value of the electronic device and the received second hash value, and transmit the authentication value to the server. and a processor controlling the communication device.

Description

무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치{METHOD FOR USER AUTHENTICATION BASED ON HASH CHAIN SUITABLE FOR UNMANNED SYSTEMS AND ELECTRONIC APPARATUS USING IT}HASH CHAIN SUITABLE FOR UNMANNED SYSTEMS AND ELECTRONIC APPARATUS USING IT}

본 개시는 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치에 관한 것으로, 보다 상세하게는 무인 시스템에 적합한 위임 키(key delegation)를 이용한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치에 관한 것이다. The present disclosure relates to a hash chain-based user authentication method suitable for an unmanned system and an electronic device using the same, and more particularly, to a hash chain-based user authentication method using a key delegation suitable for an unmanned system and an electronic device using the same It's about the device.

기술의 발달과 인건비의 급격한 상승으로 인하여 무인 시스템을 이용하여 고객이나 직원을 관리하는 사업장이 증가하고 있다. 이러한 사업장은 출입구에 키오스크와 이에 연동된 전자 출입문을 설치하여 고객의 상주 시간을 확인하거나 직원의 근태를 관리하고 있다. 2. Description of the Related Art Due to the development of technology and the rapid rise of labor costs, an increasing number of workplaces manage customers or employees using unmanned systems. These workplaces install a kiosk and an electronic door linked to it at the entrance to check the residence time of customers or manage the attendance of employees.

그러나 종래의 시스템은 출입 때마다 항상 QR 코드나 카메라에 자신을 인식시켜야 하는 과정이 필요하다는 점에서, 특정 시간에 사람이 몰리는 경우, 병목 현상이 발생하는 문제가 있었다. However, the conventional system has a problem in that a bottleneck occurs when people are crowded at a specific time in that a process of recognizing oneself to a QR code or a camera is always required whenever entering or exiting.

또한, 무인 시스템에서 직원 관리를 하는 경우, 출퇴근할 때에만 자신의 출/퇴근만 기록하면 된다는 점에서, 해당 기록을 하고 작업장을 벗어나 있더라도 이를 확인할 방법이 없다. 이를 위하여, CCTV 등을 설치하는 방법이 있지만, 추가적인 장비 및 이를 확인할 인력이 추가로 필요하다는 문제가 있었다. In addition, in the case of employee management in an unmanned system, there is no way to check this even if the person leaves the workplace after the corresponding record is made in that only the employee's attendance/exit is recorded when commuting. To this end, there is a method of installing CCTV and the like, but there is a problem in that additional equipment and additional personnel are required to check it.

따라서, 본 개시는 상술한 바와 같은 문제점을 해결하기 위하여 고안된 것으로, 무인 시스템에 적합한 위임 키(key delegation)를 이용한 무인 시스템에 적합한 해시 체인 기반의 사용자 인증 방법 및 이를 이용한 전자 장치를 제공하는 데 있다. Accordingly, the present disclosure is intended to solve the above-mentioned problems, and is to provide a hash chain-based user authentication method suitable for an unmanned system using a key delegation suitable for an unmanned system and an electronic device using the same. .

본 개시는 이상과 같은 목적을 달성하기 위한 것으로, 본 개시 일 실시 예에 따른 전자 장치는 비콘 장치, 관리자 단말장치, 서버 각각과 통신 가능한 통신 장치, 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복하여 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 메모리, 및 상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하여 상기 전자 장치의 씨드 값으로 상기 메모리에 저장하고, 상기 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받으면, 상기 전자 장치의 씨드 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 상기 인증 값을 서버에 전송하도록 상기 통신 장치를 제어하는 프로세서를 포함한다. The present disclosure is to achieve the above object, and an electronic device according to an embodiment of the present disclosure is a beacon device, a manager terminal device, a communication device capable of communicating with each server, and a first seed value at a predetermined period (sp) and A memory for storing a plurality of key values in which one of a plurality of random values is XOR-processed on each of a plurality of hash-processed values that have been repeatedly hashed by the number of times (sp*dp) corresponding to the turn information (dp), and the manager When receiving round information (dp) and random value information corresponding to the round information from the terminal device, a first hash processing value is calculated using the received round information, random value information and the plurality of stored key values, When a second hash value is stored in the memory as a seed value of the electronic device and hashed by repeating the second seed value as many times as the number of times corresponding to the beacon period (Bk) from the beacon device, the electronic device and a processor for generating an authentication value by calculating and processing the seed value and the received second hash value, and controlling the communication device to transmit the authentication value to a server.

이 경우, 상기 프로세서는 상기 관리자 단말장치로부터 상기 제1 씨드 값을 수신하면, 상기 제1 씨드 값을 상기 메모리에 저장하고, 상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 산출된 제1 해시 처리 값을 검증할 수 있다. In this case, when the processor receives the first seed value from the manager terminal device, the processor stores the first seed value in the memory, and converts the first seed value to the predetermined period (sp) and cycle information (dp). ) It is possible to verify the calculated first hash value by repeatedly hashing the number of times (sp*dp) corresponding to.

한편, 상기 프로세서는 상기 전자 장치의 씨드 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성할 수 있다. Meanwhile, the processor hash-processes the seed value of the electronic device a predetermined number of times to calculate a third hash-processed value, performs an XOR operation on the third hash-processed value and the second hash-processed value, and obtains the authentication value. can create

한편, 상기 통신 장치는 상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신할 수 있다. Meanwhile, when the communication device is adjacent to the beacon device within a preset distance, it may receive beacon information including a second hash value from the beacon device.

한편, 상기 프로세서는 복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 상기 메모리에 저장할 수 있다. Meanwhile, the processor transmits the beacon information to the manager terminal device when the plurality of key values are not stored or when the validity period of the plurality of key values has elapsed, and the plurality of key values are transmitted from the manager terminal device. may be received and stored in the memory.

한편, 상기 통신 장치는 제1 주기로 상기 관리자 단말장치로부터 상기 회차 정보 및 랜덤 값 정보를 수신하고, 상기 제1 주기보다 짧은 제2 주기로 상기 비콘 장치로부터 제2 해시 처리 값을 수신할 수 있다. Meanwhile, the communication device may receive the turn information and the random value information from the manager terminal device in a first cycle, and receive a second hash processing value from the beacon device in a second cycle shorter than the first cycle.

한편, 상기 프로세서는 상기 서버로부터 인증 값의 전송을 요청받으면, 상기 인증 값을 생성하고, 상기 생성된 인증 값을 상기 서버에 전송하도록 상기 통신 장치를 제어할 수 있다. Meanwhile, when receiving a request for transmission of an authentication value from the server, the processor may generate the authentication value and control the communication device to transmit the generated authentication value to the server.

한편, 상기 통신 장치는 상기 비콘 장치와 근거리 무선 통신 방식을 이용하여 데이터를 송수신하고, 상기 관리자 단말장치 및 상기 서버와 상기 근거리 무선 통신 방식과 다른 무선 통신 방식을 이용하여 데이터를 송수신할 수 있다. Meanwhile, the communication device may transmit and receive data with the beacon device using a short-range wireless communication method, and transmit and receive data with the manager terminal device and the server using a wireless communication method different from the short-range wireless communication method.

한편, 본 개시의 일 실시 예에 따른 사용자 인증 방법은 제1 씨드 값에 대해서 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 단계, 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하는 단계, 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받는 단계, 상기 산출된 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 단계, 및 상기 인증 값을 서버에 전송하는 단계를 포함한다. On the other hand, in the user authentication method according to an embodiment of the present disclosure, a plurality of hash processes are repeatedly hash-processed by the number of times (sp*dp) corresponding to the predetermined period (sp) and turn information (dp) for the first seed value. Storing a plurality of key values in which one of a plurality of random values for each value is subjected to an XOR operation, and upon reception of turn information (dp) and random value information corresponding to the turn information from a manager terminal device, the received turn information Calculating a first hash value by using information, random value information, and the plurality of stored key values; The second seed value from the beacon device is repeatedly hashed as many times as the number of times corresponding to the period (Bk) of the beacon. 2 Receiving a hash processing value, generating an authentication value by calculating and processing the calculated first hash processing value and the received second hash processing value, and transmitting the authentication value to a server. .

이 경우, 상기 저장하는 단계는 상기 관리자 단말장치로부터 수신한 제1 씨드 값을 더 저장하고, 상기 사용자 인증 방법은 상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 제1 해시 처리 값을 검증하는 단계를 더 포함할 수 있다. In this case, the storing step further stores the first seed value received from the manager terminal device, and the user authentication method corresponds to the first seed value to the predetermined period (sp) and repetition information (dp). The method may further include verifying the first hash processed value by repeatedly performing hash processing as many times as the number of times (sp*dp).

한편, 상기 인증 값을 생성하는 단계는 상기 산출된 제1 해시 처리 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성할 수 있다. Meanwhile, in the generating of the authentication value, a third hash treatment value is calculated by hashing the calculated first hash treatment value a predetermined number of times, and the third hash treatment value and the second hash treatment value are XORed. The authentication value may be generated by arithmetic processing.

한편, 상기 제2 해시 처리 값을 수신받는 단계는 상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신할 수 있다. Meanwhile, in the step of receiving the second hash value, beacon information including the second hash value may be received from the beacon device if the beacon device is adjacent to the beacon device within a preset distance.

한편, 상기 저장하는 단계는 복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 저장할 수 있다. Meanwhile, in the storing step, when the plurality of key values are not stored or the validity period of the stored key values has elapsed, the beacon information is transmitted to the manager terminal device, and the plurality of key values are stored from the manager terminal device. A key value can be received and stored.

한편, 본 개시의 일 실시 예에 따른 사용자 인증 시스템은 제1 씨드 값에 대해서 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 생성하는 관리자 단말장치, 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 포함하는 비콘 정보를 전송하는 비콘 장치, 상기 복수개의 키 값을 상기 관리자 단말장치로부터 제공받아 저장하고, 상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하고, 상기 비콘 장치로부터 상기 제2 해시 처리 값을 수신받으면, 상기 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 사용자 단말장치, 및 상기 사용자 단말장치로부터 상기 인증 값을 수신하면, 상기 수신한 인증 값을 기초로 상기 사용자 단말장치가 상기 비콘 장치의 인근에 위치하는지를 확인하는 서버를 포함한다. On the other hand, in the user authentication system according to an embodiment of the present disclosure, a plurality of hash processes are repeatedly hash-processed by the number of times (sp*dp) corresponding to the predetermined period (sp) and round information (dp) for the first seed value. A manager terminal device generating a plurality of key values in which one of a plurality of random values for each value is subjected to an XOR operation, and a second hash process in which the second seed value is hashed by repeating the number of times corresponding to the period (Bk) of the beacon. A beacon device that transmits beacon information including values, receives and stores the plurality of key values from the manager terminal device, and receives turn information (dp) and random value information corresponding to the turn information from the manager terminal device , a first hash processing value is calculated using the received round information, random value information, and the plurality of stored key values, and when the second hash processing value is received from the beacon device, the first hash processing value and a user terminal device generating an authentication value by calculating and processing the received second hash value, and upon receiving the authentication value from the user terminal device, the user terminal device based on the received authentication value generates the beacon It includes a server that checks if it is located in the vicinity of the device.

이상과 같은 본 개시의 다양한 실시 예들에 따르면, 해시 체인과 이전에 생성하는 난수만을 사용하여 사용자 인증 절차를 수행할 수 있는바, 효율적인 인증이 가능하다. According to various embodiments of the present disclosure as described above, since a user authentication procedure can be performed using only a hash chain and previously generated random numbers, efficient authentication is possible.

도 1은 본 개시의 일 실시 예에 따른 사용자 인증 시스템을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 위임 키 생성 동작을 설명하기 위한 도면,
도 3은 본 개시의 일 실시 예에 따른 키 셋업 동작을 설명하기 위한 도면,
도 4는 본 개시의 일 실시 예에 따른 위임 키를 위한 초기화 동작을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 위임 키를 이용한 사용자 추적 동작을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시하는 도면, 그리고,
도 7은 본 개시의 일 실시 예에 따른 사용자 인증 방법을 설명하기 위한 흐름도이다.
1 is a diagram for explaining a user authentication system according to an embodiment of the present disclosure;
2 is a diagram for explaining an operation of generating a delegation key according to an embodiment of the present disclosure;
3 is a diagram for explaining a key setup operation according to an embodiment of the present disclosure;
4 is a diagram for explaining an initialization operation for a delegation key according to an embodiment of the present disclosure;
5 is a diagram for explaining a user tracking operation using a delegation key according to an embodiment of the present disclosure;
6 is a diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure, and
7 is a flowchart illustrating a user authentication method according to an embodiment of the present disclosure.

이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 개시에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings. Encryption/decryption may be applied to the information (data) transmission process performed in the present disclosure, if necessary, and expressions describing the information (data) transmission process in the present disclosure and claims are all encryption/decryption, even if not separately mentioned. It should be interpreted as including the case. In the present disclosure, expressions such as “transmission (delivery) from A to B” or “A receiving from B” include transmission (transmission) or reception with another medium included in the middle, and must be transmitted from A to B. It does not represent only what is directly transmitted (delivered) or received.

본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.In the description of the present disclosure, the order of each step should be understood as non-limiting, unless the preceding step must logically and temporally necessarily precede the succeeding step. In other words, except for the above exceptional cases, even if the process described as the later step is performed before the process described as the preceding step, the nature of the disclosure is not affected, and the scope of rights must also be defined regardless of the order of the steps. And, in this specification, "A or B" is defined to mean not only selectively indicating either one of A and B, but also including both A and B. In addition, in the present disclosure, the term "include" has a meaning encompassing further including other components in addition to the elements listed as included.

본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.In this disclosure, only essential components necessary for the description of the present disclosure are described, and components unrelated to the essence of the present disclosure are not mentioned. In addition, it should not be interpreted as an exclusive meaning that includes only the mentioned components, but should be interpreted as a non-exclusive meaning that may include other components.

그리고 본 개시에서 "값"이라 함은 스칼라값뿐만 아니라 벡터, 다항식 형태도 포함하는 개념으로 정의된다. In the present disclosure, “value” is defined as a concept including not only scalar values but also vectors and polynomial forms.

후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.Mathematical operations and calculations of each step of the present disclosure described below may be implemented as computer operations by a known coding method and/or coding designed appropriately for the present disclosure to perform the calculations or calculations.

이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 개시에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.The specific equations described below are illustratively described among possible alternatives, and the scope of the present disclosure should not be construed as being limited to the equations mentioned in the present disclosure.

설명의 편의를 위해서, 본 개시에서는 다음과 같이 표기를 정하기로 한다.For convenience of explanation, in the present disclosure, the notation is defined as follows.

G : 소수 q를 가지고 있는 순환 그룹이고, 본 그룹의 생성기(generator)는 gG: A cyclic group with a prime number q, and the generator of this group is g

h : {0,1}* →{0,1}k를 수행하는 암호학적으로 안전한 해시 함수h : a cryptographically secure hash function that does {0,1}* → {0,1} k

Gen(1n) : 보안 파라미터(n)를 입력받고, q 차 순환 그룹과 해당 그룹의 생성기(g)를 생성Gen (1 n ): Receives security parameters (n) and creates q cyclic groups and their generators (g)

[x] : x 보다 작은 최대 정수[x] : largest integer less than x

이하에서는 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다. Hereinafter, various embodiments of the present disclosure will be described in detail using the accompanying drawings.

도 1은 본 개시의 일 실시 예에 따른 사용자 인증 시스템을 설명하기 위한 도면이다. 1 is a diagram for explaining a user authentication system according to an embodiment of the present disclosure.

도 1을 참조하면, 사용자 인증 시스템(1000)은 비콘 장치(10), 사용자 단말장치(100), 관리자 단말장치(200), 및 서버(300)를 포함할 수 있다. Referring to FIG. 1 , the user authentication system 1000 may include a beacon device 10, a user terminal device 100, a manager terminal device 200, and a server 300.

비콘 장치(10)는 사용자 인증을 수행할 공간에 배치되며, 주기적으로 비콘 정보를 전송한다. 여기서 비콘 정보는 근거리 무선 통신 방식으로 전송되는 정보로, 블루투스, WiFi 다이렉트, LTE D2D 방식일 수 있으며, 비콘 장치의 ID 정보, 해시 체인 주기(n), 해당 주기의 해시 체인 값(BVVk)을 포함할 수 있다. 한편, 도시된 예에서는 특정 공간에 하나의 비콘 장치(10)가 위치하는 것으로 도시하였지만, 구현시에 복수의 비콘 장치(10)가 위치할 수 있으며, 한 공간 내의 복수의 비콘 장치는 동일한 비콘 정보를 송신하거나, 서로 다른 비콘 정보를 송신할 수도 있다. The beacon device 10 is disposed in a space to perform user authentication and periodically transmits beacon information. Here, the beacon information is information transmitted by a short-range wireless communication method, and may be Bluetooth, WiFi direct, or LTE D2D method, and includes ID information of the beacon device, hash chain period (n), and hash chain value (BV Vk ) of the period. can include Meanwhile, in the illustrated example, although one beacon device 10 is shown as being located in a specific space, a plurality of beacon devices 10 may be located in implementation, and a plurality of beacon devices in one space have the same beacon information. or may transmit different beacon information.

관리자 단말장치(200)는 사용자 단말장치(100)에서의 해시 처리 값(또는 위임 키) 생성에 필요한 복수의 키 값을 생성하여 사용자 단말장치(100)에 전송한다. 여기서 키 값은 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp)만큼 반복하여 해시 처리된 n개 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 값이다. 여기서 키 값의 개수는 해시 체인을 구성하는 sp의 수(NSP)에 대응되는 값을 가질 수 있다. The manager terminal device 200 generates a plurality of key values required to generate a hash value (or delegation key) in the user terminal device 100 and transmits them to the user terminal device 100 . Here, the key value is one of a plurality of random values for each of n hash processed values obtained by repeating the first seed value a number of times (sp*dp) corresponding to a predetermined period (sp) and turn information (dp). It is the value processed by XOR operation. Here, the number of key values may have a value corresponding to the number of sps (NSP) constituting the hash chain.

그리고 관리자 단말장치(200)는 사용자 단말장치(100)에서 사용할 씨드 값 특정을 위한 회차 정보(dp) 및 해당 회차 정보에 대응되는 랜덤 값 정보를 사용자 단말장치(100)에 전송할 수 있다. 이와 같은 회차 정보 및 랜덤 값 정보는 제1 주기 단위로 사용자 단말장치(100)에 제공될 수 있다. In addition, the manager terminal device 200 may transmit, to the user terminal device 100, session information dp for specifying a seed value to be used by the user terminal device 100 and random value information corresponding to the corresponding session information. Such turn information and random value information may be provided to the user terminal device 100 in units of the first period.

사용자 단말장치(100)는 관리자 단말장치(200)로부터 상술한 복수의 키 값을 제공받아 저장하고, 수신한 회차 정보 및 랜덤 값을 이용하여 사용할 해시 처리 값(또는 씨드 값)을 결정할 수 있다. 구체적으로, 사용자 단말장치(100)는 기저장된 복수의 키 값 중 수신한 회차 정보에 대응되는 키 값을 추출하고, 수신한 랜덤 값과의 XOR 연산을 통하여 추출된 키 값이 되는 해시 처리 값을 산출할 수 있다. 이와 같이 산출된 해시 처리 값을 사용자 단말장치(100)의 씨드 값으로 이용할 수 있다. The user terminal device 100 may receive and store the plurality of key values described above from the manager terminal device 200, and determine a hash processing value (or seed value) to be used by using the received turn information and a random value. Specifically, the user terminal device 100 extracts a key value corresponding to the received round information from among a plurality of pre-stored key values, and generates a hash processing value that becomes the extracted key value through an XOR operation with the received random value. can be calculated The hash value calculated in this way may be used as a seed value of the user terminal device 100 .

이때, 사용자 단말장치(100)는 관리자 단말장치(200)로부터 제공받은 제1 씨드 값을 기설정된 주기 및 회차 정보에 대응되는 횟수(sp*dp)만큼 반복하여 해시 처리하고, 해시 처리된 값과 앞서 산출된 해시 처리 값이 동일한지를 비교하여 앞서 산출된 해시 처리 값을 검증할 수 있다. At this time, the user terminal device 100 repeatedly hash-processes the first seed value provided from the manager terminal device 200 by the number of times (sp*dp) corresponding to the preset cycle and turn information, and the hash-processed value The previously calculated hash processing value may be verified by comparing whether the previously calculated hash processing value is the same.

그리고 사용자 단말장치(100)는 비콘 장치(10)로부터 제2 해시 처리 값을 수신하면, 수신한 제2 해시 처리 값과 앞서 산출된 제1 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 생성한 인증 값을 포함하는 인증 정보를 서버(300)에 전송할 수 있다. 이때, 사용자 단말장치(100)는 제1 해시 처리 값을 현재 사용자 단말장치(100)에 설정된 주기(Uk)에 대응되는 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 산출된 제3 해시 처리 값과 수신한 제2 해시 처리 값을 XOR 연산하여 인증 값을 생성할 수도 있다. And when the user terminal device 100 receives the second hash processing value from the beacon device 10, it generates an authentication value by calculating and processing the received second hash processing value and the previously calculated first hash processing value. Authentication information including one authentication value may be transmitted to the server 300 . At this time, the user terminal device 100 hash-processes the first hash value a number of times corresponding to the period Uk currently set in the user terminal device 100 to calculate a third hash value, and calculates the third hash value. An authentication value may be generated by performing an XOR operation on the processed value and the received second hash processed value.

서버(300)는 사용자 인증을 위한 전체 프로토콜을 위한 시스템 파라미터를 설정하고, 사용자 인증을 위한 각종 정보를 비콘 장치(10) 및 관리자 단말장치(200) 등에 전송할 수 있다. The server 300 may set system parameters for the entire protocol for user authentication and transmit various types of information for user authentication to the beacon device 10 and the manager terminal device 200.

그리고 서버(300)는 사용자 인증이 필요하면, 사용자 단말장치(100)에 인증 정보를 요청하여 수신하고, 수신된 인증 정보를 통하여 사용자 단말장치(100)를 인증할 수 있다. Further, when user authentication is required, the server 300 may request and receive authentication information from the user terminal device 100 and authenticate the user terminal device 100 through the received authentication information.

그리고 서버(300)는 주기적으로 상술한 인증 절차를 수행하여, 해당 공간에 사용자 단말장치(100)의 머문 시간을 관리할 수 있다. 또한, 서버(300)는 관리된 시간을 기초로 과금 동작 등을 추가로 수행할 수도 있다. In addition, the server 300 may periodically perform the above-described authentication procedure to manage the stay time of the user terminal device 100 in the corresponding space. In addition, the server 300 may additionally perform a billing operation based on the managed time.

이상과 같이 본 실시 예에 따른 사용자 인증 시스템은 사용자 추적 과정에서 해시 체인과 이전에 생성한 난수만을 사용함으로 계산적으로 효율적인 인증이 가능하다. 특히 사용자 단말장치가 서버에 전송하는 인증 값은 두개의 해시 처리 값을 XOR 연산 처리한 값으로, 즉 실제 인증 메시지인 제1 해시 처리 값(BVBK)을 비밀 키(BVVk)를 사용한 One time Pad(OTP)로 암호화한 효과를 가짐으로써, 안전하지 않은 채널로 해당 결과를 전송하여도 보안을 유지할 수 있는 효과가 있다. 따라서, 비밀 키나 공개 키 알고리즘을 이용하여 사용자 단말장치와 서버와의 통신을 형성하기 위한 부담도 줄일 수 있다. As described above, the user authentication system according to the present embodiment can perform computationally efficient authentication by using only the hash chain and previously generated random numbers in the user tracking process. In particular, the authentication value transmitted by the user terminal device to the server is a value obtained by XORing two hash values, that is, one time using the first hash value (BV BK ), which is an actual authentication message, using a secret key (BV Vk ). By having the effect of encryption with Pad (OTP), there is an effect of maintaining security even if the result is transmitted through an unsafe channel. Therefore, the burden of establishing communication between the user terminal device and the server using a private key or public key algorithm can be reduced.

또한, 관리자 단말장치(200)가 사용자 단말장치(100)에 제공하는 복수개의 키 값은 해시 처리 값이 랜덤 값으로 마스킹 되어 있으므로, 랜덤 값을 알지 못하면 해시 처리 값을 찾아낼 수 없는 장점이 있다. In addition, since the hash processing value is masked with a random value for the plurality of key values provided by the manager terminal device 200 to the user terminal device 100, the hash processing value cannot be found unless the random value is known. .

한편, 도 1을 도시하고 설명함에 있어서, 사용자 인증 시스템에 하나의 관리자 단말장치, 하나의 사용자 단말장치를 도시하였지만, 구현시에 사용자 인증 시스템에는 복수의 관리자 단말장치, 복수의 사용자 단말장치를 포함할 수 있다. 또한, 서버 역시, 상술한 복수의 기능을 개별적으로 갖는 복수의 서버 장치로 구현될 수도 있다. On the other hand, in the illustration and description of FIG. 1, one manager terminal device and one user terminal device are shown in the user authentication system, but when implemented, the user authentication system includes a plurality of manager terminal devices and a plurality of user terminal devices. can do. In addition, the server may also be implemented as a plurality of server devices individually having the plurality of functions described above.

도 2는 본 개시의 일 실시 예에 따른 위임 키 생성 동작을 설명하기 위한 도면이다.2 is a diagram for explaining an operation of generating a delegation key according to an embodiment of the present disclosure.

암호학에서 사용되는 해시 함수는 해시 함수의 출력으로부터 해시 함수의 입력을 구하는 것이 확률적으로 어려운 한 방향 함수이다. 본 개시에서는 해시 함수를 h로 표기하며, 임의의 길이를 갖는 이진 문자열을 입력으로 받고, 길이가 ℓ인 이진 문자열을 출력하는 함수로 정의한다. A hash function used in cryptography is a one-way function in which it is probabilistically difficult to obtain an input of a hash function from an output of the hash function. In the present disclosure, the hash function is denoted as h, and is defined as a function that receives a binary string having an arbitrary length as an input and outputs a binary string having a length of ℓ.

[수학식 1][Equation 1]

h : {0,1}* → {0,1} h : {0,1}* → {0,1}

이러한 해시 함수는 전자 서명 설계, MAC(Message Authentication Code) 알고리즘 설계, 패스워드 기반 인증 등 다양한 암호화 분야에 사용되고 있다. 해시 함수를 입력(v)에 반복적으로 적용할 경우, 해시 함수의 출력 값들은 아래와 같은 체인을 형성하는데 이를 해시 체인이라고 한다. These hash functions are used in various fields of encryption, such as digital signature design, MAC (Message Authentication Code) algorithm design, and password-based authentication. When the hash function is repeatedly applied to the input (v), the output values of the hash function form a chain as shown below, which is called a hash chain.

[수학식 2][Equation 2]

v0 = hn(v) ← v1 = hn-1(v) ← … ← vn-2 = h2(vn) ← vn-1 = h(vn) ← vn v 0 = h n (v) ← v 1 = h n-1 (v) ← … ← v n-2 = h 2 (v n ) ← v n-1 = h(v n ) ← v n

도 2를 참조하면, Vn값에 반복적으로 해시 함수가 처리되어 16개의 값이 체인으로 구성된다. 여기서 기설정된 주기(sp)의 해시 처리 값(V4, V8, V12, V0)이 사용자 단말장치(100)의 씨드로 사용될 수 있다. 한편, 도시된 예에서는 기설정된 주기(sp)가 4이고, sp의 개수(NSP)가 4인 해시 체인을 이용하였지만, 이와 같은 값은 예시이고, 다른 sp, NSP 값을 갖는 해시 체인이 이용될 수도 있다. Referring to FIG. 2, a hash function is repeatedly processed on the value of Vn to form a chain of 16 values. Here, hash processing values (V 4 , V 8 , V 12 , and V 0 ) of a predetermined period (sp) may be used as a seed of the user terminal device 100 . Meanwhile, in the illustrated example, a hash chain having a preset period (sp) of 4 and a number of sp (NSP) of 4 is used, but these values are examples, and hash chains having other sp and NSP values may be used. may be

한편, 상술한 해시 처리 값이 직접적으로 사용자 단말장치(100)와 관리자 단말장치(200)가 송수신한다면, 안전한 채널을 이용하여야 하는 부담이 있다. 이러한 점에서, 본 개시는 상술한 해시 처리 값을 직접적으로 송수신하지 않고, 해시 처리 값의 생성에 필요한 키 값을 사용자 단말장치(100)에 제공하고, 관리자 단말장치(200)는 해당 키 값을 통하여 해시 처리 값을 산출할 수 있는 정보를 제공하는 동작을 수행한다. Meanwhile, if the above-described hash processing value is directly transmitted and received between the user terminal device 100 and the manager terminal device 200, there is a burden of using a secure channel. In this regard, the present disclosure provides the user terminal device 100 with a key value necessary for generating the hash processing value without directly transmitting and receiving the above-described hash processing value, and the manager terminal device 200 transmits the corresponding key value. Through this, an operation of providing information capable of calculating a hash processing value is performed.

이와 같은 동작을 위해서는 선행적으로 초기 설정이 필요한바, 이하에서는 사용자 인증에 필요한 전체 동작을 키 설정 동작, 초기화 동작, 사용자 추적 동작으로 구분하여, 각 동작별로 자세히 설명한다. For such an operation, an initial setting is required in advance. Hereinafter, the entire operation required for user authentication is divided into a key setting operation, an initialization operation, and a user tracking operation, and each operation will be described in detail.

먼저, 키 설정 동작에 대해서 도 3을 참조하여 이하에서 설명한다. First, a key setting operation will be described below with reference to FIG. 3 .

도 3은 본 개시의 일 실시 예에 따른 키 셋업 동작을 설명하기 위한 도면이다. 3 is a diagram for explaining a key setup operation according to an embodiment of the present disclosure.

도 3을 참조하면, 키 셋업 동작은 크게 단말장치에 대한 키 생성 동작(S310)과 비콘 장치에 대한 키 생성 동작(S360)으로 나뉠 수 있다. 이하에서는 단말장치들에 대한 키 생성 동작을 먼저 설명하나, 구현시에는 두 동작은 병렬적으로 수행되거나, 비콘 장치에 대한 키 생성 동작이 선행적으로 수행될 수도 있다. Referring to FIG. 3 , the key setup operation may be largely divided into a key generation operation for the terminal device (S310) and a key generation operation for the beacon device (S360). Hereinafter, a key generation operation for terminal devices will be described first, but in implementation, the two operations may be performed in parallel, or a key generation operation for a beacon device may be performed in advance.

먼저, 단말장치에 대한 키 생성 동작을 설명한다(S310). First, a key generation operation for the terminal device will be described (S310).

서버(300)는 비콘 장치(10), 사용자 단말장치(100), 관리자 단말장치(200) 및 서버(300)에서 사용할 시스템 보안 파라미터(G, q, g)를 생성하고, 서버의 비밀 키(s) 및 공개 키(gs)를 생성할 수 있다(S315). 여기서, q는 소수, G는 소수 q를 가지고 있는 순환 그룹이고, g는 순환 그룹을 이용한 생성기(generator)이다. The server 300 generates system security parameters (G, q, g) to be used in the beacon device 10, the user terminal device 100, the manager terminal device 200, and the server 300, and the secret key of the server ( s) and a public key (g s ) can be generated (S315). Here, q is a prime number, G is a cyclic group having a prime number q, and g is a generator using the cyclic group.

그리고 서버(300)는 서버 ID(KUMS), 생성한 시스템 보안 파라미터(G, q, g), 공개 키(gs)를 사용자 단말장치(100) 및 관리자 단말장치(200)에 전송할 수 있다(S320, S335). In addition, the server 300 may transmit the server ID (KUMS), the generated system security parameters (G, q, g), and the public key (g s ) to the user terminal device 100 and the manager terminal device 200 ( S320, S335).

사용자 단말장치(100)는 전달받은 시스템 보안 파라미터에 기초하여 사용자 단말장치의 비밀 키(u) 및 공개 키(gu)를 생성할 수 있다(S325). 그리고 사용자 단말장치(100)는 생성한 공개 키(gu)와 사용자 ID(U)를 서버(300)에 전송할 수 있다(S330). 여기서 사용자 ID는 사용자 단말장치(100)의 ID일 수 있으며, 해당 사용자 단말장치(100)를 사용하는 사용자의 ID일 수도 있다. 즉, 본 실시예에 따른 사용자 인증 시스템은 해당 시스템에 접속되는 단말장치의 이력을 관리할 수 있으며, 해당 시스템을 이용하는 사용자의 이력을 관리할 수도 있다. 다만, 일반적으로 하나의 스마트폰은 사용자 한 명이 이용하는 것이 일반적인바, 이하에서는 사용자 단말장치와 사용자를 동일시하여 설명한다. The user terminal device 100 may generate a secret key (u) and a public key (g u ) of the user terminal device based on the received system security parameter (S325). Further, the user terminal device 100 may transmit the generated public key (g u ) and user ID (U) to the server 300 (S330). Here, the user ID may be the ID of the user terminal device 100 or the ID of a user using the corresponding user terminal device 100 . That is, the user authentication system according to the present embodiment can manage the history of terminal devices connected to the corresponding system, and can also manage the history of users using the corresponding system. However, in general, one smartphone is generally used by one user. Hereinafter, a user terminal device and a user will be equated and described.

그리고 관리자 단말장치(200)도 제공받은 정보에 기초하여 관리자 단말장치의 비밀 키(m) 및 공개 키(gm)를 생성할 수 있다(S340). 그리고 관리자 단말장치(200)는 생성한 공개 키(gm) 및 관리자 ID(M)를 서버(300)에 전송할 수 있다(S345).The manager terminal device 200 may also generate a secret key (m) and a public key (g m ) of the manager terminal device based on the provided information (S340). Then, the manager terminal device 200 may transmit the generated public key (g m ) and manager ID (M) to the server 300 (S345).

서버(300)는 두 장치로부터 제공받은 공개 키를 저장한다(S350). The server 300 stores the public keys provided from the two devices (S350).

그리고 서버(300)는 비콘 장치(10)에서 사용할 해시 체인 주기(n), 공개 값(BV0), 해시 체인 씨드(BVn)를 생성한다(S365). 여기서, 해시 체인 씨드는 도 2에 도시한 바와 같은 체인 형태를 가질 수 있다. In addition, the server 300 generates a hash chain period (n), a public value (BV 0 ), and a hash chain seed (BV n ) to be used by the beacon device 10 (S365). Here, the hash chain seed may have a chain shape as shown in FIG. 2 .

그리고 서버(300)는 생성한 해시 체인 주기(n), 공개 값(BV0), 해시 체인 씨드(BVn)를 비콘 장치(10)에 제공할 수 있다(S370). 이때, 서버(300)는 보안 채널을 통하여 상술한 정보를 비콘 장치(10)에 제공할 수 있다. In addition, the server 300 may provide the generated hash chain period (n), public value (BV 0 ), and hash chain seed (BV n ) to the beacon device 10 (S370). At this time, the server 300 may provide the above-described information to the beacon device 10 through a secure channel.

비콘 장치(10)는 서버(300)로부터 제공받은 정보를 검증하고, 검증된 정보를 저장할 수 있다. 예를 들어, 비콘 장치(10)는 제공받은 공개 값(BV0)을 기설정된 횟수만큼(예를 들어, 해시 체인 주기(n)) 반복 해시 처리하여, 해당 연산 결과와 제공받은 해시 체인 씨드가 동일한지 여부로 검증을 수행할 수 있다. The beacon device 10 may verify information provided from the server 300 and store the verified information. For example, the beacon device 10 repeatedly hashes the provided public value (BV 0 ) a predetermined number of times (eg, hash chain period (n)), and the result of the operation and the provided hash chain seed are Verification can be performed by determining whether they are the same.

이와 같은 키 셋업이 완료되면, 키 값 공유를 위한 초기화 동작이 수행될 수 있다. 초기화 동작에 대해서는 도 4를 참조하여 이하에서 설명한다. When such key setup is completed, an initialization operation for key value sharing may be performed. An initialization operation will be described below with reference to FIG. 4 .

도 4는 본 개시의 일 실시 예에 따른 위임 키를 위한 초기화 동작을 설명하기 위한 도면이다. 4 is a diagram for explaining an initialization operation for a delegation key according to an embodiment of the present disclosure.

도 4를 참조하면, 비콘 장치(10)는 현재 주기에 대응되는 해시 처리 값을 산출하고(S405), 산출된 해시 처리 값을 포함하는 비콘 정보(B, Bk, BVVk)를 브로드캐스팅한다(S410). 여기서 B는 비콘 장치의 ID, Bk는 비콘의 현재 주기이며, 초기 정한 시간을 기준으로 정해질 수 있으며, 초/분/시간/일 등의 단위로 1씩 증가할 수 있다. BVVk는 현재 주기의 해시 처리 값으로, 해시 체인 씨드(BVn)가 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값일 수 있다. Referring to FIG. 4 , the beacon device 10 calculates a hash value corresponding to the current cycle (S405), and broadcasts beacon information (B, B k , BV Vk ) including the calculated hash value. (S410). Here, B is the ID of the beacon device, and B k is the current period of the beacon. BV Vk is a hash value of the current cycle, and may be a second hash value obtained by repeatedly hashing the hash chain seed (BV n ) a number of times corresponding to the beacon cycle (Bk).

사용자 단말장치(100)는 비콘 장치(10)와 인접하게 위치하게 되면, 비콘 장치(10)에서 송출된 비콘 정보를 수신할 수 있다. 그리고 사용자 단말장치(100)는 최초 비콘 정보를 수신하거나, 관리자 단말장치(200)로부터 제공받은 키 값의 주기가 완료되면, 수신한 비콘 정보(B, Bk, BVVk)와 사용자 ID (U)를 관리자 단말장치(200)에 전송할 수 있다(S415). When the user terminal device 100 is located adjacent to the beacon device 10, it may receive beacon information transmitted from the beacon device 10. In addition, when the user terminal device 100 receives the initial beacon information or the period of the key value provided from the manager terminal device 200 is completed, the received beacon information (B, B k , BV Vk ) and the user ID (U ) may be transmitted to the manager terminal device 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일 수 있다. 이와 같은 관리 설정은 해당 단계 전에 미리 결정되어 있을 수 있다. The manager terminal device 200 generates a key value to be used for authentication of the user terminal device 100 (S420). Specifically, the manager terminal device 200 determines a Short Period (SP), the number of SPs, and a Long Period (LP) according to management settings of an unmanned system. Here, SP is a predetermined period and may be a distance between V 0 , V 4 , V 8 , and V 12 in the tree structure of FIG. 2 . And the number of SPs (NSP) is the number of SPs constituting the lowest layer of the tree structure. For example, in FIG. 2, the number of SPs may be 4 and the number of SPs may be 4. Such management settings may be previously determined before the corresponding step.

그리고 관리자 단말장치(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)와 같을 수 있다. In addition, the manager terminal device 200 applies the hash function (H 1 ) lp times to MV lp , which is the seed of the LP, while MV 0 , MV sp*1 , MV sp*1 , . . . , MV sp*(nsp-1) can be generated. For example, as shown in FIG. 2, the rightmost MV lp is sequentially hashed lp times, and the 4th (MV 12 ), 8th (MV 8 ), 12th (MV 4 ), 16th (MV 0 ) It is possible to calculate four hash processing values such as The number of hash processing values generated here may be the same as the number of SPs (ie, NSPs).

그리고 관리자 단말장치(200)는 랜덤 값인 복수개의 R(R1, R2, …, Rnsp)를 생성하고, 앞서 만든 해시 처리 값과 생성한 랜덤 값 각각을 아래와 같이 XOR해서 위임 키를 위한 키 값(IKD = (IKD1, IKD2, …, IKDnsp))을 생성할 수 있다. In addition, the administrator terminal device 200 generates a plurality of R (R1, R2, ..., R nsp ), which are random values, and XORs each of the hash processing value and the generated random value as follows to obtain a key value for the delegation key ( IKD = (IKD 1 , IKD 2 , …, IKD nsp )).

[수학식 3][Equation 3]

IKD1 = MVsp*1 R1,IKD 1 = MV sp*1 R 1 ,

IKD2 = MVsp*2 R2,IKD 2 = MV sp*2 R 2 ,

IKDnsp = MVsp*nsp Rnsp,IKD nsp = MV sp*nsp R nsp ,

그리고 관리자 단말장치(200)는 제1 메시지(Msg1)와 제2 메시지(Msg2)를 만들 수 있다. 여기서 제1 메시지(Msg1)는 사용자 ID, 관리자 ID, sp, lp, MV0, 비콘 ID, Bk, BVbk 정보를 갖는 메시지이고, 제2 메시지(Msg2)는 제1 메시지와 키 값(IKD)을 갖는 메시지이다. Also, the manager terminal device 200 may create a first message (Msg 1 ) and a second message (Msg 2 ). Here, the first message (Msg 1 ) is a message having user ID, manager ID, sp, lp, MV 0 , beacon ID, Bk, and BV bk information, and the second message (Msg 2 ) is the first message and a key value ( It is a message with IKD).

그리고 관리자 단말장치(200)는 제1 메시지에 대한 전자 서명 값(CR, CS)을 관리자 단말장치(200)의 비밀 키(m)를 사용하여 생성하고, 제2 메시지를 사용자 단말장치의 공개 키(gu)를 사용하여 암호화하여 암호문(CU1, CV1)을 생성할 수 있다. 이때, 관리자 단말장치(200)는 Elgamal Encryption을 이용하여 암호문을 생성할 수 있다. The manager terminal device 200 generates electronic signature values (CR, CS) for the first message using the secret key m of the manager terminal device 200, and generates the second message with the public key of the user terminal device. (g u ) can be used to encrypt to generate ciphertext (CU 1 , CV 1 ). At this time, the manager terminal device 200 may generate the ciphertext using Elgamal Encryption.

관리자 단말장치(200)는 생성한 전자 서명 값(CR, CS) 및 암호문(CU1, CV1)을 사용자 단말장치(100)에 전송할 수 있다(S425). The manager terminal device 200 may transmit the generated electronic signature values (CR, CS) and ciphertexts (CU 1 , CV 1 ) to the user terminal device 100 (S425).

전자 서명 값 및 암호문을 제공받은 사용자 단말장치(100)는 자신의 비밀 키(u)를 이용하여 암호문(CU1, CV1)을 복호화하고, 제공받은 전자 서명 값(CR, CS)을 이용하여 제1 메시지(Msg1)를 검증하고, 전자 서명 값이 유효하다면, 제1 메시지와 제2 메시지 내의 정보를 저장하고(S430), 제1 메시지(Msg1)를 서버의 공개 키(gs)로 암호화하여 암호문(CU2, CV2)을 생성할 수 있다. The user terminal device 100 receiving the digital signature value and the cipher text decrypts the cipher text (CU 1 , CV 1 ) using its own secret key (u), and uses the provided electronic signature values (CR, CS) to The first message (Msg 1 ) is verified, and if the electronic signature value is valid, information in the first message and the second message is stored (S430), and the first message (Msg 1 ) is converted into the server's public key (g s ) You can generate ciphertext (CU 2 , CV 2 ) by encrypting with .

그리고 사용자 단말장치(100)는 전자 서명 값(CR, CS)과 생성한 암호문(CU2, CV2)을 서버(300)에 전송할 수 있다(S435). In addition, the user terminal device 100 may transmit the electronic signature values (CR, CS) and the generated ciphertext (CU 2 , CV 2 ) to the server 300 (S435).

서버(300)는 자신의 비밀 키(s)를 이용하여 암호문(CU2, CV2)을 복호화하고, 제공받은 전자 서명 값(CR, CS)을 이용하여 제1 메시지(Msg1)를 검증할 수 있다. 그리고 서버(300)는 전자 서명 유효하다면, 제1 메시지 및 제2 메시지를 저장할 수 있다(S440). The server 300 decrypts the cipher texts (CU 2 , CV 2 ) using its own secret key (s), and verifies the first message (Msg 1 ) using the provided electronic signature values (CR, CS). can And, if the electronic signature is valid, the server 300 may store the first message and the second message (S440).

한편, 상술한 MV0, MVsp*1,MVsp*1,…, MVsp*(nsp-1)는 위임 키(또는 인증 값)로 사용될 수 있다. 구체적으로, 관리자 단말장치(100)는 사용자 단말장치(100)에 회차 정보와 현재 회차의 랜덤 값만을 사용자 단말장치(200)에 제공하면, 사용자 단말장치(200)는 앞서 제공된 복수의 키 값을 이용하여 현재 회차의 해시 처리 값을 결정할 수 있다. SHA와 같이 암호학적으로 안전한 해시 함수 h의 특성으로 인하여 사용자 단말장치(100)는 관리자 단말장치(200)로부터 Ri를 전달받지 못하면, IDKk(k<i)로부터 MVi를 찾아 낼 수 없다. Meanwhile, the aforementioned MV 0 , MV sp*1 , MV sp*1 , . . . , MV sp*(nsp-1) can be used as a delegation key (or authentication value). Specifically, when the manager terminal device 100 provides the user terminal device 100 with only round number information and a random value of the current round, the user terminal device 200 provides the plurality of key values previously provided to the user terminal device 200. The hash processing value of the current round can be determined by using Due to the characteristics of cryptographically secure hash function h such as SHA, if the user terminal device 100 does not receive R i from the manager terminal device 200, it cannot find MV i from IDK k (k<i). .

이와 같이 해시 처리 값을 산출하기 위한 복수의 키 값을 관리자 단말장치(200)에서 생성하고, 해당 키 값이 사용자 단말장치(100) 및 서버(300)에서 공유하게 되면 사용자 추적을 위한 모든 준비 과정은 완료된다. 이하에서는 키 값이 공유된 상태에서의 사용자 추적 동작을 도 5를 참조하여 설명한다. In this way, when a plurality of key values for calculating hash processing values are generated in the manager terminal device 200 and the corresponding key values are shared by the user terminal device 100 and the server 300, all preparation processes for user tracking are performed. is complete. Hereinafter, a user tracking operation in a state in which a key value is shared will be described with reference to FIG. 5 .

도 5는 본 개시의 일 실시 예에 따른 위임 키를 이용한 사용자 추적 동작을 설명하기 위한 도면이다. 5 is a diagram for explaining a user tracking operation using a delegation key according to an embodiment of the present disclosure.

도 5를 참조하면, 사용자 추적 동작은 키 위임 단계(S510)와 트레킹 단계(S530)로 구분될 수 있다. Referring to FIG. 5 , the user tracking operation may be divided into a key delegation step (S510) and a tracking step (S530).

먼저, 키 위임 단계(S510)는 초기화 과정에서 생성한 위임 키 선택을 위한 정보를 전달하는 과정이다. 구체적으로, 관리자 단말장치(200)는 인증 메시지 생성을 위해 필요한 위임 키 MVi의 유효 사용 주기인 회차 정보(dp: Delegation Period)를 결정하고, 결정된 회차에 대응되는 랜덤 값(Rdp)을 R(1, 2, .., nps)에서 추출한 후(S515), 회차 정보(dp), 해당 회차의 랜덤 값(Rdp)을 사용자 단말장치(100)에 전송한다(S520). First, the key delegation step (S510) is a process of transmitting information for selecting a delegation key generated in the initialization process. Specifically, the administrator terminal device 200 determines delegation period information (dp: Delegation Period), which is an effective use period of the delegation key MV i necessary for generating an authentication message, and assigns a random value (R dp ) corresponding to the determined delegation key to R After extracting from (1, 2, .., nps) (S515), the number of times information (dp) and the random value of the number of times (R dp ) are transmitted to the user terminal device 100 (S520).

사용자 단말장치(100)는 IKDdp와 Rdp를 XOR하여 MVsp*sp를 생성하고, 이를 MV0로 검증한 후 유효하다면 MVsp*sp를 사용자 단말장치의 씨드(UVseed)로 저장할 수 있다(S525). 구체적으로, MVsp*dp를 sp*dp번 해시 함수(h1)에 적용하여 산출된 결과 값이 MV0과 같으면 산출된 값이 유효한 것으로 판단할 수 있다. The user terminal device 100 XORs IKD dp and R dp to generate MV sp*sp , verifies this as MV 0 , and if valid, may store MV sp*sp as a seed (UV seed ) of the user terminal device. (S525). Specifically, if the result value calculated by applying MV sp* dp to the hash function (h 1 ) times sp*dp is equal to MV 0 , the calculated value may be determined to be valid.

트레킹 단계(S530)는 사용자 단말장치(100)가 비콘 장치(10)의 근거리에 존재한다는 것을 알려주기 위한 메시지를 서버(300)에 전달하는 과정이다. The tracking step (S530) is a process of transmitting a message for notifying that the user terminal device 100 exists in a short distance of the beacon device 10 to the server 300.

서버(300)는 주기적으로 사용자에게 인증 값(Auth)을 보내라는 신호를 사용자 단말장치(100)에 전송할 수 있다(S535). The server 300 may periodically transmit a signal to the user terminal device 100 to send an authentication value (Auth) to the user (S535).

사용자 단말장치(100)는 비콘 장치(10)와 인접하게 위치하지 않은 경우에는 서버(300)의 요청을 수행하지 않고, 비콘 장치(10)와 인접한 경우에는 이하의 동작을 지속할 수 있다(S540). If the user terminal device 100 is not located adjacent to the beacon device 10, it may not perform the request of the server 300, and if it is adjacent to the beacon device 10, the following operations may be continued (S540). ).

사용자 단말장치(100)는 비콘 장치(10)로부터 비콘 정보(B, Bk, BVBK)를 수신한다(S545). The user terminal device 100 receives beacon information (B, Bk, BV BK ) from the beacon device 10 (S545).

그리고 사용자 단말장치(100)는 기저장된 씨드(UVseed)를 (Seed-Uk)번 반복적으로 해시 처리하여 해시 처리 값(UVUK)을 생성하고, 해당 해시 처리 값과 비콘 장치로부터 수신한 해시 처리 값(BVBK)을 XOR 연산 처리하여 인증 값(Auth)을 생성할 수 있다(S550). In addition, the user terminal device 100 repeatedly hash-processes the previously stored seed (UV seed ) (Seed-Uk) times to generate a hash-processed value (UV UK ), and the hash-processed value and the hash process received from the beacon device. An authentication value (Auth) may be generated by performing an XOR operation on the value (BV BK ) (S550).

그리고 사용자 단말장치(100)는 인증 값을 포함하는 인증 정보(U, UK, B, BK, Auth)를 서버(300)에 전송할 수 있다(S555). 여기서, U는 사용자 단말 장치의 ID, UK는 사용자 단말장치의 현재 주기 정보, B는 비콘 장치의 ID, BK는 비콘 장치의 주기 정보, Auth는 인증값이다. Further, the user terminal device 100 may transmit authentication information (U, UK, B, BK, Auth) including authentication values to the server 300 (S555). Here, U is the ID of the user terminal device, UK is the current period information of the user terminal device, B is the ID of the beacon device, BK is the period information of the beacon device, and Auth is the authentication value.

서버(300)는 사용자 단말장치(100)로부터 인증 정보를 수신하면, 수신한 인증 정보를 검증한다(S560). 구체적으로, 서버(300)는 초기화 과정에서 수신한 제1 메시지(Msg1)에 포함된 BVBK을 (n-Bk)번 반복적으로 해시 처리해서 BVBK'을 생성하고, 이를 인증 값(Auth)과 XOR해서 UVuk를 계산한다. 마지막으로 UVuk를 UK번 해시 처리해서 MVO와 같은지를 확인함으로써 수신한 인증 값이 유효한지를 검증할 수 있다. When receiving authentication information from the user terminal device 100, the server 300 verifies the received authentication information (S560). Specifically, the server 300 repeatedly hashes BV BK included in the first message (Msg 1 ) received during the initialization process (n-Bk) times to generate BV BK ', and converts it to an authentication value (Auth). and XOR to calculate UV uk . Finally, it is possible to verify whether the received authentication value is valid by hashing UV uk UK times and checking whether it is the same as MV O .

그리고 서버(300)는 수신한 인증 값이 유효하면, 수신한 인증 정보를 저장하고, 해당 주기에 사용자 단말장치(100)가 비콘 장치(10)의 통신 거리에 위치함을 인증할 수 있다. In addition, if the received authentication value is valid, the server 300 may store the received authentication information and authenticate that the user terminal device 100 is located within the communication distance of the beacon device 10 in a corresponding period.

도 6은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시하는 도면이다. 6 is a diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.

구체적으로, 도 1의 사용자 인증 시스템(1000)에서 키 값을 생성하는 관리자 단말장치, 키 값을 이용하여 인증 값을 생성하는 사용자 단말장치, 인증 값을 이용하여 인증을 수행하는 서버 등을 전자 장치라고 지칭할 수 있다. 이러한 전자 장치는 PC(Personal computer), 노트북, 스마트폰, 태블릿, 서버 등 다양한 장치일 수 있다. Specifically, in the user authentication system 1000 of FIG. 1, an electronic device including a manager terminal device generating a key value, a user terminal device generating an authentication value using a key value, and a server performing authentication using the authentication value can be referred to as Such an electronic device may be a variety of devices such as a personal computer (PC), a laptop computer, a smart phone, a tablet, and a server.

도 6을 참조하면, 전자 장치(600)는 통신 장치(610), 메모리(620), 디스플레이(630), 조작 입력 장치(640) 및 프로세서(650)를 포함할 수 있다. 전자 장치(600)는 PC, 서버 등 다양한 장치로 구현될 수 있다. Referring to FIG. 6 , an electronic device 600 may include a communication device 610, a memory 620, a display 630, a manipulation input device 640, and a processor 650. The electronic device 600 may be implemented as various devices such as a PC and a server.

통신 장치(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)로 지칭될 수도 있다. The communication device 610 is formed to connect the electronic device 600 with other devices, and is connected to an external device through a Local Area Network (LAN) and an Internet network, as well as a Universal Serial Bus (USB). ) port or wireless communication (eg, WiFi 802.11a/b/g/n, 3G, 4G, 5G) or short-range wireless communication (eg, Bluetooth, WiFi Direct, LTE D2D) do. Such a communication device 610 may also be referred to as a transceiver.

통신 장치(610)는 키 설정을 위한 각종 정보를 송수신할 수 있다. 예를 들어, 통신 장치(610)는 장치 ID(KUMS, U, M), 데이터 암호화에 필요한 소수 정보(p), 생성기(g), 공개 키(gs, gu, gm) 등을 송수신할 수 있다. The communication device 610 may transmit and receive various types of information for key setting. For example, the communication device 610 transmits and receives a device ID (KUMS, U, M), decimal information (p) required for data encryption, a generator (g), a public key (g s , g u , g m ), etc. can do.

그리고 통신 장치(610)는 비콘 동작과 관련된 각종 정보를 송수신할 수 있다. 예를 들어, 전자 장치(600)가 서버(300)인 경우, 통신 장치(610)는 비콘 정보 생성을 위한 체인 주기(n), 공개 값(BV0), 해시 체인 씨드(BVn)를 비콘 장치(10)에 전송할 수 있다. 그리고 전자 장치(600)가 사용자 단말장치(100)인 경우, 통신 장치(610)는 비콘 장치(10)로부터 비콘 정보(B, Bk, BVBK)를 수신하거나 수신한 비콘 정보를 관리자 단말장치(200)에 전송할 수 있다. Also, the communication device 610 may transmit/receive various types of information related to beacon operation. For example, when the electronic device 600 is the server 300, the communication device 610 transmits a chain period (n) for generating beacon information, a public value (BV 0 ), and a hash chain seed (BV n ) to a beacon. can be transmitted to the device 10. And when the electronic device 600 is the user terminal device 100, the communication device 610 receives beacon information (B, Bk, BV BK ) from the beacon device 10 or receives the received beacon information from the manager terminal device ( 200) can be transmitted.

그리고 통신 장치(610)는 초기화 동작을 위한 각종 정보를 송수신할 수 있다. 예를 들어, 전자 장치(600)가 관리자 단말장치(200)인 경우, 통신 장치(610)는 사용자 단말장치(100)로부터 비콘 정보를 전달받을 수 있으며, 제1 메시지에 대한 전자 서명 값 및 암호화된 제2 메시지를 사용자 단말장치(100)에 제공할 수 있다. 여기서, 비콘 정보는 주기적으로 브로드캐스팅 되는 정보로, 사용자 단말장치(100)가 비콘 장치(10)와 기설정된 거리(예를 들어, 10m) 이내로 인접하면 수신할 수 있다.Also, the communication device 610 may transmit and receive various types of information for an initialization operation. For example, when the electronic device 600 is the administrator terminal device 200, the communication device 610 may receive beacon information from the user terminal device 100, and the electronic signature value and encryption of the first message. The second message may be provided to the user terminal device 100. Here, the beacon information is information that is periodically broadcast, and can be received when the user terminal device 100 is adjacent to the beacon device 10 within a predetermined distance (eg, 10 m).

그리고 전자 장치(600)가 사용자 단말장치(200)인 경우, 통신 장치(610)는 관리자 단말장치(200)로부터 인증 값 및 암호화된 메시지를 수신할 수 있으며, 이를 서버(300)에 전송할 수도 있다. Also, when the electronic device 600 is the user terminal device 200, the communication device 610 may receive an authentication value and an encrypted message from the manager terminal device 200, and may transmit it to the server 300. .

그리고 통신 장치(610)는 사용자 추적 동작을 위한 각종 정보를 송수신할 수 있다. 예를 들어, 전자 장치(600)가 관리자 단말장치(200)인 경우, 통신 장치(610)는 회차 정보(dp) 및 회차 정보에 대응하는 랜덤 값 정보를 사용자 단말장치(100)에 전송할 수 있다. 그리고 전자 장치(600)가 사용자 단말장치(100)인 경우, 통신 장치(610)는 관리자 단말장치(200)로부터 회차 정보 및 랜덤 값 정보를 수신하고, 이를 기초로 생성한 인증 값을 포함하는 인증 정보를 서버(300)에 전송할 수 있다. 그리고 전자 장치(600)가 서버(300)인 경우, 통신 장치(610)는 사용자 단말장치(100)로부터 인증 정보를 수신할 수 있다. Also, the communication device 610 may transmit/receive various types of information for a user tracking operation. For example, when the electronic device 600 is the manager terminal device 200, the communication device 610 may transmit the turn information dp and random value information corresponding to the turn information to the user terminal device 100. . Further, when the electronic device 600 is the user terminal device 100, the communication device 610 receives turn information and random value information from the manager terminal device 200, and authentication including an authentication value generated based thereon. Information may be transmitted to the server 300 . Also, when the electronic device 600 is the server 300, the communication device 610 may receive authentication information from the user terminal device 100.

메모리(620)는 전자 장치(600)에 관한 적어도 하나의 인스트럭션(instruction)을 저장할 수 있다. 예를 들어, 메모리(620)에는 본 개시의 다양한 실시 예에 따라 전자 장치(600)가 동작하기 위한 각종 프로그램(또는 소프트웨어)이 저장될 수 있다. 여기서 프로그램은 도 3 내지 도 5의 동작을 수행하기 위한 프로그램일 수 있다. The memory 620 may store at least one instruction related to the electronic device 600 . For example, various programs (or software) for operating the electronic device 600 according to various embodiments of the present disclosure may be stored in the memory 620 . Here, the program may be a program for performing the operations of FIGS. 3 to 5 .

이러한 메모리(620)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다. The memory 620 may be implemented in various forms such as RAM, ROM, flash memory, HDD, external memory, memory card, etc., but is not limited to any one.

메모리(620)는 키 설정 단계에서 공유된 정보, 초기화 동작에서 공유된 정보 등을 저장할 수 있다. 예를 들어, 메모리(620)는 데이터의 암복호화에 필요한 공개 키와 자신의 비밀 키 정보를 저장할 수 있으며, 앞서 상술한 제1 메시지 및 제2 메시지 등을 저장할 수 있다. 여기서, 제2 메시지는 상술한 바와 같이 사용자 단말장치의 해시 처리 값의 결정에 이용되는 복수의 키 값(IKD) 정보를 포함할 수 있다. The memory 620 may store information shared in a key setting step, information shared in an initialization operation, and the like. For example, the memory 620 may store a public key required for data encryption/decryption and its own private key information, and may store the above-described first message and second message. Here, the second message may include a plurality of key value (IKD) information used to determine the hash processing value of the user terminal device as described above.

그리고 메모리(620)는 이력 정보를 저장할 수 있다. 구체적으로, 전자 장치(600)가 서버(300)인 경우, 메모리(620)는 사용자 단말장치(100)의 현재 공간의 체류 시간 정보(예를 들어, 최초 접속 시간, 최종 인증 시간, 총 체류 시간 등) 등을 저장할 수 있다. And the memory 620 may store history information. Specifically, when the electronic device 600 is the server 300, the memory 620 stores sojourn time information (eg, first access time, final authentication time, total sojourn time) of the current space of the user terminal device 100. etc.) can be stored.

메모리(620)는 통신 장치(610)를 통하여 수신한 정보를 임시 저장하거나, 계산 과정에서의 산출되는 값들을 임시 저장할 수 있다. The memory 620 may temporarily store information received through the communication device 610 or temporarily store values calculated in a calculation process.

디스플레이(630)는 전자 장치(600)가 지원하는 기능을 선택받기 위한 사용자 인터페이스 창을 표시한다. 예를 들어, 디스플레이(630)는 전자 장치(600)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 디스플레이(630)는 LCD(liquid crystal display), OLED(Organic Light Emitting Diodes) 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(640)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다. The display 630 displays a user interface window for selecting a function supported by the electronic device 600 . For example, the display 630 may display a user interface window for selecting various functions provided by the electronic device 600 . The display 630 may be a monitor such as a liquid crystal display (LCD), organic light emitting diodes (OLED), or the like, and may be implemented as a touch screen capable of simultaneously performing the functions of the manipulation input device 640 to be described later. .

디스플레이(630)는 키 생성 과정에서 필요한 파라미터(예를 들어, 보안 파라미터)의 입력을 요청하는 메시지를 표시할 수 있다. 예를 들어, 전자 장치(600)가 서버(300)인 경우, 암호화에 필요한 각종 시스템 파라미터의 설정에 필요한 메시지를 표시할 수 있다. 그리고 전자 장치(600)가 사용자 단말장치(100)인 경우, 사용자 인증 시스템(1000)에 참여할 것인지를 알리는 메시지를 표시할 수 있다. The display 630 may display a message requesting input of parameters (eg, security parameters) necessary in the key generation process. For example, when the electronic device 600 is the server 300, messages necessary for setting various system parameters required for encryption may be displayed. And, when the electronic device 600 is the user terminal device 100, a message indicating whether to participate in the user authentication system 1000 may be displayed.

조작 입력 장치(640)는 사용자로부터 전자 장치(600)의 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 예를 들어, 조작 입력 장치(640)는 사용자로부터 키 생성에 필요한 파라미터를 입력받을 수 있다. 또한, 전자 장치(600)가 사용자 단말장치(100)인 경우, 조작 입력 장치(640)는 사용자 인증 시스템(1000)에 참여하여 인증 절차를 수행할지에 대한 명령을 입력받을 수 있다. The manipulation input device 640 may receive a function selection of the electronic device 600 and a control command for the function from the user. For example, the manipulation input device 640 may receive parameters required for key generation from the user. Also, when the electronic device 600 is the user terminal device 100, the manipulation input device 640 may participate in the user authentication system 1000 and receive a command for performing an authentication procedure.

프로세서(650)는 전자 장치(600)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(650)는 메모리(620)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 전자 장치(600)의 동작을 전반적으로 제어할 수 있다. 이러한 프로세서(650)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 장치로 구성될 수도 있다. The processor 650 controls overall operations of the electronic device 600 . For example, the processor 650 may generally control the operation of the electronic device 600 by executing at least one instruction stored in the memory 620 . The processor 650 may be composed of a single device such as a central processing unit (CPU) and an application-specific integrated circuit (ASIC), or may be composed of a plurality of devices such as a CPU and a graphics processing unit (GPU).

프로세서(650)는 도 3 내지 도 5에 도시한 각종 동작을 수행할 수 있다. 구체적인 동작에 대해서는 앞서 설명하였는바, 이하에서는 사용자 단말장치(100)에서의 프로세서(650)의 동작만을 간단하게 설명한다. The processor 650 may perform various operations shown in FIGS. 3 to 5 . As the specific operation has been described above, only the operation of the processor 650 in the user terminal device 100 will be briefly described below.

프로세서(650)는 복수개의 키 값이 저장되어 있지 않거나, 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 수신한 비콘 정보를 관리자 단말장치(200)에 전송하도록 통신 장치(610)를 제어할 수 있다. The processor 650 controls the communication device 610 to transmit the received beacon information to the manager terminal device 200 when the plurality of key values are not stored or the validity period of the plurality of stored key values has elapsed. can

프로세서(650)는 복수개의 키 값 정보를 수신하면, 수신한 키 값 정보를 메모리(620)에 저장한다. 여기서 복수개의 키 값 정보는 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복하여 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 값이다. 이때, 관리자 단말장치(200)로부터 제1 씨드 값 정보를 수신하면, 프로세서(650)는 수신한 제1 씨드 값 정보도 메모리(620)에 저장할 수 있다. 여기서 회차 정보 및 랜덤 값 정보는 제1 주기로 수신될 수 있으며, 상술한 비콘 정보는 제1 주기보다 짧은 제2 주기로 수신될 수 있다. When the processor 650 receives a plurality of key value information, it stores the received key value information in the memory 620. Here, the plurality of key value information is obtained by repeating the first seed value the number of times (sp*dp) corresponding to the predetermined period (sp) and repetition information (dp), and each of the plurality of hash processed values has a plurality of random values. One of them is the value processed by the XOR operation. At this time, when first seed value information is received from the manager terminal device 200, the processor 650 may also store the received first seed value information in the memory 620. Here, the turn information and random value information may be received in a first cycle, and the above-described beacon information may be received in a second cycle shorter than the first cycle.

그리고 프로세서(650)는 관리자 단말장치로부터 회차 정보(dp) 및 랜덤 값 정보를 수신하면, 수신된 회차 정보, 랜덤 값 정보와 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하여 사용자 단말장치의 씨드 값으로 메모리(620)에 저장할 수 있다. When the processor 650 receives the turn information (dp) and the random value information from the manager terminal device, the processor 650 calculates a first hash processing value using the received turn information, the random value information and a plurality of stored key values to calculate the user terminal It can be stored in the memory 620 as the seed value of the device.

이때, 프로세서(650)는 씨드 값으로 저장하기 전에 수신한 랜덤 값 정보에 대한 검증을 수행할 수 있다. 구체적으로, 프로세서(650)는 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 산출된 제1 해시 처리 값을 검증할 수 있다. In this case, the processor 650 may verify the received random value information before storing it as a seed value. Specifically, the processor 650 may verify the first hash value calculated by repeatedly hashing the first seed value the number of times (sp*dp) corresponding to the predetermined period (sp) and turn information (dp). there is.

그리고 프로세서(650)는 비콘 장치(10)로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복적으로 해시 처리된 제2 해시 처리 값을 수신받으면, 메모리(620)에 저장된 사용자 단말장치(100)의 씨드 값(즉, 제1 해시 처리 값)과 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성할 수 있다. 이때, 프로세서(650)는 메모리(620)에 저장된 씨드 값을 사용자 단말장치(100)의 주기(Uk)에 대응되는 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 산출된 제3 해시 처리 값과 수신한 제2 해시 처리 값을 XOR 연산 처리하여 인증 값을 생성할 수 있다. Further, when the processor 650 receives the second hash processing value repeatedly hashed by the number of times the second seed value corresponds to the period Bk of the beacon from the beacon device 10, the user terminal stored in the memory 620 An authentication value may be generated by calculating and processing the seed value of the device 100 (ie, the first hash value) and the received second hash value. At this time, the processor 650 hash-processes the seed value stored in the memory 620 as many times as the number of times corresponding to the period Uk of the user terminal device 100 to calculate a third hash value, and the calculated third hash value. An authentication value may be generated by performing an XOR operation on the value and the received second hash value.

그리고 프로세서(650)는 생성한 인증 값을 서버에 전송하도록 통신 장치(610)를 제어한다. 구체적으로, 프로세서(650)는 서버(300)로부터 인증 값의 전송을 요청받으면, 이에 대응하여 생성한 인증 값을 포함하는 인증 정보가 서버(300)에 전송되도록 통신 장치(610)를 제어할 수 있다. And the processor 650 controls the communication device 610 to transmit the generated authentication value to the server. Specifically, when receiving a request for transmission of an authentication value from the server 300, the processor 650 may control the communication device 610 to transmit authentication information including an authentication value generated in response to the request to the server 300. there is.

이상과 같이 본 실시 예에 따른 전자 장치(600)는 사용자 추적 과정에서 해시 체인과 이전에 생성한 난수만을 사용함으로 계산적으로 효율적인 인증이 가능하다. 특히 사용자 단말장치가 서버에 전송하는 인증 값은 두개의 해시 처리 값을 XOR 연산 처리한 값으로, 즉 실제 인증 메시지인 제1 해시 처리 값(BVBK)을 비밀 키(BVVk)를 사용한 One time Pad(OTP)로 암호화한 효과를 가짐으로써, 안전하지 않은 채널로 해당 결과를 전송하여도 보안을 유지할 수 있는 효과가 있다. 따라서, 비밀 키나 공개 키 알고리즘을 이용하여 사용자 단말장치와 서버와의 통신을 형성하기 위한 부담도 줄일 수 있다. As described above, the electronic device 600 according to the present embodiment uses only the hash chain and previously generated random numbers in the user tracking process, thereby enabling computationally efficient authentication. In particular, the authentication value transmitted by the user terminal device to the server is a value obtained by XORing two hash values, that is, one time using the first hash value (BV BK ), which is an actual authentication message, using a secret key (BV Vk ). By having the effect of encryption with Pad (OTP), there is an effect of maintaining security even if the result is transmitted through an unsafe channel. Therefore, the burden of establishing communication between the user terminal device and the server using a private key or public key algorithm can be reduced.

또한, 상술한 바와 같은 사용자 인증 방법은 출입 인증을 위하여 QR 코드/NFC, 카메라 인식기 앞에서 멈추는 동작이 없더라도 고속도로의 하이패스와 같이 이들의 입출입을 인증하고 기록할 수 있다. 그리고 사용자의 직접적인 동작 없이도 이들이 소유한 스마튼포과 특정 공간에 설치된 비콘 장치를 통하여 사무실에 있는지를 지속적으로 체크하는 것도 가능하다. 이와 같은 방식으로 고객이나 직원이 해당 공간에 머무른 시간을 정확하게 측정할 수 있으므로 무인 시스템에 대한 신뢰성을 더욱 높일 수 있다. In addition, the user authentication method as described above can authenticate and record their entry and exit like a high pass on a highway even without stopping in front of a QR code / NFC or camera recognizer for access authentication. In addition, it is possible to continuously check whether the user is in the office through the smart phone owned by the user and the beacon device installed in a specific space without the user's direct action. In this way, the amount of time a customer or employee has been in the space can be accurately measured, further increasing the reliability of the unmanned system.

한편, 도 6을 도시하고 설명함에 있어서, 전자 장치(600)가 복수의 구성들을 포함하는 것으로 도시하였으나, 구현시에 상술한 구성 중 일부는 생략될 수 있으며, 상술한 구성 이외에 다른 구성이 추가될 수도 있다. Meanwhile, in the illustration and description of FIG. 6 , although the electronic device 600 is illustrated as including a plurality of components, some of the above-described components may be omitted during implementation, and other components may be added in addition to the above-described components. may be

도 7은 본 개시의 일 실시 예에 따른 사용자 인증 방법을 설명하기 위한 흐름도이다. 7 is a flowchart illustrating a user authentication method according to an embodiment of the present disclosure.

도 7을 참조하면, 제1 씨드 값에 대한 반복적으로 기설정된 주기(sp)*n번 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장한다(S710). 구체적으로, 복수개의 키 값이 저장되어 있지 않거나, 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 비콘 정보를 관리자 단말장치에 전송하고, 관리자 단말장치로부터 복수개의 키 값을 수신하여 저장할 수 있다. 이와 같은 키 값은 제1 씨드 값과 함께 관리자 단말장치(200)로부터 제공받을 수 있으며, 복수개의 키 값과 함께 제1 씨드 값도 함께 저장할 수 있다. Referring to FIG. 7, a plurality of key values obtained by performing an XOR operation on one of a plurality of random values are stored in each of a plurality of hash-processed values that have been repeatedly hashed at a preset period (sp)*n times for the first seed value. Do (S710). Specifically, when the plurality of key values are not stored or the validity period of the plurality of stored key values has elapsed, beacon information may be transmitted to the manager terminal device, and the plurality of key values may be received and stored from the manager terminal device. . Such a key value may be provided from the manager terminal device 200 together with a first seed value, and the first seed value may be stored together with a plurality of key values.

그리고 관리자 단말장치로부터 회차 정보(dp) 및 랜덤 값 정보를 수신하면, 수신된 회차 정보, 랜덤 값 정보와 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출한다(S720). 이때, 제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 산출된 제1 해시 처리 값을 검증할 수 있다. Then, when the number of times information (dp) and random value information are received from the manager terminal device, a first hash processing value is calculated using the received number of times information and random value information and a plurality of stored key values (S720). In this case, the first hash value calculated by repeatedly hashing the first seed value a number of times (sp*dp) corresponding to the predetermined period (sp) and turn information (dp) may be verified.

그리고 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복적으로 해시 처리된 제2 해시 처리 값을 수신받는다(S730). 구체적으로, 사용자 단말장치가 비콘 장치와 기설정된 거리 이내로 인접하면, 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신할 수 있다. Then, a second hash value obtained by repeatedly hashing the second seed value as many times as the number of times corresponding to the period (Bk) of the beacon is received from the beacon device (S730). Specifically, when the user terminal device is adjacent to the beacon device within a predetermined distance, beacon information including the second hash value may be received from the beacon device.

그리고 산출된 제1 해시 처리 값과 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성한다(S740). 구체적으로, 산출된 제1 해시 처리 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 산출된 제3 해시 처리 값과 수신한 제2 해시 처리 값을 XOR 연산 처리하여 인증 값을 생성할 수 있다. Then, an authentication value is generated by calculating and processing the calculated first hash value and the received second hash value (S740). Specifically, a third hash treatment value is calculated by hashing the calculated first hash treatment value a predetermined number of times, and an XOR operation is performed between the calculated third hash treatment value and the received second hash treatment value to obtain an authentication value. can create

그리고 생성한 인증 값을 서버에 전송한다(S750). 구체적으로, 서버로부터 인증 값의 전송을 요청받으면, 인증 값을 포함하는 인증 정보를 서버에 전송할 수 있다. Then, the generated authentication value is transmitted to the server (S750). Specifically, when receiving a request for transmission of an authentication value from the server, authentication information including the authentication value may be transmitted to the server.

이상과 같이 본 실시 예에 따른 사용자 인증 방법은 사용자 추적 과정에서 해시 체인과 이전에 생성한 난수만을 사용함으로 계산적으로 효율적인 인증이 가능하다. As described above, the user authentication method according to the present embodiment can perform computationally efficient authentication by using only the hash chain and previously generated random numbers in the user tracking process.

한편, 상술한 다양한 실시 예에 따른 사용자 인증 방법은 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 제어 동작을 수행할 수 있다. Meanwhile, the user authentication method according to various embodiments described above may be implemented in the form of program code for performing each step, stored in a recording medium, and distributed. In this case, the device in which the recording medium is loaded can perform the above-described control operation.

이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다. Such a recording medium may be various types of computer readable media such as ROM, RAM, memory chip, memory card, external hard drive, hard drive, CD, DVD, magnetic disk or magnetic tape.

이상 첨부 도면을 참고하여 본 개시에 대해서 설명하였지만 본 개시의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시 예 및/또는 도면에 제한되는 것으로 해석되어서는 안 된다. 그리고 특허청구범위에 기재된 개시의, 당업자에게 자명한 개량, 변경 및 수정도 본 개시의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.Although the present disclosure has been described with reference to the accompanying drawings, the scope of the present disclosure is determined by the claims described below and should not be construed as being limited to the foregoing embodiments and/or drawings. And it should be clearly understood that improvements, changes and modifications obvious to those skilled in the art of the disclosure described in the claims are also included in the scope of the present disclosure.

1000 : 사용자 인증 시스템 100: 사용자 단말장치
200: 관리자 단말장치 300: 관리 서버
600: 전자 장치 610: 통신 장치
620: 메모리 630: 디스플레이
640: 조작 입력 장치 650: 프로세서
1000: user authentication system 100: user terminal device
200: manager terminal device 300: management server
600: electronic device 610: communication device
620: memory 630: display
640: operation input device 650: processor

Claims (14)

전자 장치에 있어서,
비콘 장치, 관리자 단말장치, 서버 각각과 통신 가능한 통신 장치;
제1 씨드 값을 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복하여 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 메모리; 및
상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하여 상기 전자 장치의 씨드 값으로 상기 메모리에 저장하고,
상기 비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받으면, 상기 전자 장치의 씨드 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하고, 상기 인증 값을 서버에 전송하도록 상기 통신 장치를 제어하는 프로세서;를 포함하는 전자 장치.
In electronic devices,
A communication device capable of communicating with each of the beacon device, the manager terminal device, and the server;
One of a plurality of random values is XOR-processed on each of a plurality of hash-processed values by repeating the first seed value a number of times (sp * dp) corresponding to the predetermined period (sp) and turn information (dp). a memory for storing a plurality of key values; and
When receiving round information (dp) and random value information corresponding to the round information from the manager terminal device, a first hash processing value is calculated using the received round information, random value information and the plurality of stored key values. and store it in the memory as a seed value of the electronic device,
When a second hash value obtained by repeating hash processing of the second seed value as many times as the number of times corresponding to the beacon period (Bk) is received from the beacon device, the seed value of the electronic device and the received second hash value are An electronic device comprising: a processor for generating an authentication value through calculation processing and controlling the communication device to transmit the authentication value to a server.
제1항에 있어서,
상기 프로세서는,
상기 관리자 단말장치로부터 상기 제1 씨드 값을 수신하면, 상기 제1 씨드 값을 상기 메모리에 저장하고,
상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 산출된 제1 해시 처리 값을 검증하는 전자 장치.
According to claim 1,
the processor,
When receiving the first seed value from the manager terminal device, storing the first seed value in the memory;
The electronic device verifies the calculated first hash value by repeatedly hashing the first seed value a number of times (sp*dp) corresponding to the predetermined period (sp) and turn information (dp).
제1항에 있어서,
상기 프로세서는,
상기 전자 장치의 씨드 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성하는 전자 장치.
According to claim 1,
the processor,
The electronic device that hash-processes the seed value of the electronic device a predetermined number of times to calculate a third hash-processed value, and performs an XOR operation on the third hash-processed value and the second hash-processed value to generate the authentication value.
제1항에 있어서,
상기 통신 장치는,
상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신하는 전자 장치.
According to claim 1,
The communication device,
The electronic device receiving beacon information including a second hash processing value from the beacon device when adjacent to the beacon device within a preset distance.
제4항에 있어서,
상기 프로세서는,
복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 상기 메모리에 저장하는 전자 장치.
According to claim 4,
the processor,
When a plurality of key values are not stored or when the validity period of the stored key values has elapsed, the beacon information is transmitted to the manager terminal device, and the plurality of key values are received from the manager terminal device and stored in the memory electronic devices to store on.
제1항에 있어서,
상기 통신 장치는,
제1 주기로 상기 관리자 단말장치로부터 상기 회차 정보 및 랜덤 값 정보를 수신하고, 상기 제1 주기보다 짧은 제2 주기로 상기 비콘 장치로부터 제2 해시 처리 값을 수신하는 전자 장치.
According to claim 1,
The communication device,
The electronic device receiving the turn information and the random value information from the manager terminal device in a first cycle, and receiving a second hash processing value from the beacon device in a second cycle shorter than the first cycle.
제1항에 있어서,
상기 프로세서는,
상기 서버로부터 인증 값의 전송을 요청받으면, 상기 인증 값을 생성하고, 상기 생성된 인증 값을 상기 서버에 전송하도록 상기 통신 장치를 제어하는 전자 장치.
According to claim 1,
the processor,
The electronic device that controls the communication device to generate the authentication value and transmit the generated authentication value to the server when receiving a request for transmission of an authentication value from the server.
제1항에 있어서,
상기 통신 장치는,
상기 비콘 장치와 근거리 무선 통신 방식을 이용하여 데이터를 송수신하고, 상기 관리자 단말장치 및 상기 서버와 상기 근거리 무선 통신 방식과 다른 무선 통신 방식을 이용하여 데이터를 송수신하는 전자 장치.
According to claim 1,
The communication device,
An electronic device that transmits and receives data with the beacon device using a short-range wireless communication method, and transmits and receives data with the manager terminal device and the server using a wireless communication method different from the short-range wireless communication method.
사용자 단말장치의 사용자 인증 방법에 있어서,
제1 씨드 값에 대한 반복적으로 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 저장하는 단계;
관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하는 단계;
비콘 장치로부터 제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 수신받는 단계;
상기 산출된 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 단계; 및
상기 인증 값을 서버에 전송하는 단계;를 포함하는 사용자 인증 방법.
In the user authentication method of the user terminal device,
One of a plurality of random values performs an XOR operation on each of the plurality of hash processed values repeatedly hashed by the number of times (sp*dp) corresponding to the predetermined period (sp) and the number of times (dp) for the first seed value. storing a plurality of processed key values;
When receiving round information (dp) and random value information corresponding to the round information from the manager terminal device, calculating a first hash processing value using the received round information, random value information and the plurality of stored key values step;
Receiving a hash-processed second hash value by repeating the second seed value the number of times corresponding to the period Bk of the beacon from the beacon device;
generating an authentication value by calculating and processing the calculated first hash-processed value and the received second hash-processed value; and
Transmitting the authentication value to the server; user authentication method comprising a.
제9항에 있어서,
상기 저장하는 단계는,
상기 관리자 단말장치로부터 수신한 제1 씨드 값을 더 저장하고,
상기 사용자 인증 방법은,
상기 제1 씨드 값을 상기 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리하여 상기 제1 해시 처리 값을 검증하는 단계;를 더 포함하는 사용자 인증 방법.
According to claim 9,
The storing step is
further storing a first seed value received from the manager terminal device;
The user authentication method,
Verifying the first hash value by repeatedly hashing the first seed value a number of times (sp*dp) corresponding to the preset period (sp) and turn information (dp); user authentication further comprising: method.
제9항에 있어서,
상기 인증 값을 생성하는 단계는,
상기 산출된 제1 해시 처리 값을 기설정된 횟수만큼 해시 처리하여 제3 해시 처리 값을 산출하고, 상기 제3 해시 처리 값과 상기 제2 해시 처리 값을 XOR 연산 처리하여 상기 인증 값을 생성하는 사용자 인증 방법.
According to claim 9,
Generating the authentication value,
A user who hash-processes the calculated first hash-processed value a predetermined number of times to calculate a third hash-processed value, and performs an XOR operation between the third hash-processed value and the second hash-processed value to generate the authentication value. authentication method.
제9항에 있어서,
상기 제2 해시 처리 값을 수신받는 단계는,
상기 비콘 장치와 기설정된 거리 이내로 인접하면, 상기 비콘 장치로부터 제2 해시 처리 값을 포함하는 비콘 정보를 수신하는 사용자 인증 방법.
According to claim 9,
Receiving the second hash processing value,
A user authentication method for receiving beacon information including a second hash processing value from the beacon device when adjacent to the beacon device within a predetermined distance.
제12항에 있어서,
상기 저장하는 단계는,
복수개의 키 값이 저장되어 있지 않거나, 상기 저장된 복수개의 키 값의 유효 기간이 경과한 경우, 상기 비콘 정보를 상기 관리자 단말장치에 전송하고, 상기 관리자 단말장치로부터 복수개의 키 값을 수신하여 저장하는 사용자 인증 방법.
According to claim 12,
The storing step is
Transmitting the beacon information to the manager terminal device and receiving and storing the plurality of key values from the manager terminal device when the plurality of key values are not stored or the validity period of the stored key values has elapsed User authentication method.
사용자 인증 시스템에 있어서,
제1 씨드 값에 대해서 기설정된 주기(sp) 및 회차 정보(dp)에 대응되는 횟수(sp*dp) 만큼 반복 해시 처리된 복수개의 해시 처리 값 각각에 복수개의 랜덤 값 중 하나가 XOR 연산 처리된 복수개의 키 값을 생성하는 관리자 단말장치;
제2 씨드 값이 비콘의 주기(Bk)에 대응되는 횟수만큼 반복하여 해시 처리된 제2 해시 처리 값을 포함하는 비콘 정보를 전송하는 비콘 장치;
상기 복수개의 키 값을 상기 관리자 단말장치로부터 제공받아 저장하고, 상기 관리자 단말장치로부터 회차 정보(dp) 및 상기 회차 정보에 대응되는 랜덤 값 정보를 수신하면, 상기 수신된 회차 정보, 랜덤 값 정보와 상기 저장된 복수개의 키 값을 이용하여 제1 해시 처리 값을 산출하고, 상기 비콘 장치로부터 상기 제2 해시 처리 값을 수신받으면, 상기 제1 해시 처리 값과 상기 수신한 제2 해시 처리 값을 연산 처리하여 인증 값을 생성하는 사용자 단말장치; 및
상기 사용자 단말장치로부터 상기 인증 값을 수신하면, 상기 수신한 인증 값을 기초로 상기 사용자 단말장치가 상기 비콘 장치의 인근에 위치하는지를 확인하는 서버;를 포함하는 사용자 인증 시스템.
In the user authentication system,
For the first seed value, one of a plurality of random values is XOR-processed for each of a plurality of hash processed values repeatedly hashed by the number of times (sp*dp) corresponding to the predetermined period (sp) and turn information (dp). a manager terminal device generating a plurality of key values;
a beacon device that transmits beacon information including a second hash value obtained by hashing the second seed value by repeating the number of times corresponding to the period Bk of the beacon;
When receiving and storing the plurality of key values from the manager terminal device and receiving turn information (dp) and random value information corresponding to the turn information from the manager terminal device, the received turn information, random value information and A first hash processing value is calculated using the stored plurality of key values, and when the second hash processing value is received from the beacon device, the first hash processing value and the received second hash processing value are calculated and processed. a user terminal device that generates an authentication value by doing; and
and a server for confirming whether the user terminal device is located in the vicinity of the beacon device based on the received authentication value when receiving the authentication value from the user terminal device.
KR1020200175119A 2020-12-15 2020-12-15 Method for user authentication based on hash chain suitable for unmanned systems and electronic apparatus using it KR102501794B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200175119A KR102501794B1 (en) 2020-12-15 2020-12-15 Method for user authentication based on hash chain suitable for unmanned systems and electronic apparatus using it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175119A KR102501794B1 (en) 2020-12-15 2020-12-15 Method for user authentication based on hash chain suitable for unmanned systems and electronic apparatus using it

Publications (2)

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

Family

ID=82216942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175119A KR102501794B1 (en) 2020-12-15 2020-12-15 Method for user authentication based on hash chain suitable for unmanned systems and electronic apparatus using it

Country Status (1)

Country Link
KR (1) KR102501794B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102362795B1 (en) * 2017-09-27 2022-02-11 삼성에스디에스 주식회사 Method for device-to-device communication between terminals comprising device-to-device authentication using hash-chain
KR102473377B1 (en) * 2017-12-06 2022-12-02 재단법인대구경북과학기술원 Method and system for providing digital test service based on hash chain
KR102010462B1 (en) * 2018-01-09 2019-08-14 재단법인대구경북과학기술원 Beacon location checking method

Also Published As

Publication number Publication date
KR20220085224A (en) 2022-06-22

Similar Documents

Publication Publication Date Title
CN113489585B (en) Identity authentication method and system of terminal equipment, storage medium and electronic equipment
US20170126654A1 (en) Method and system for dynamic password authentication based on quantum states
US8856528B2 (en) Challenge-response system for maintenance operations via responder for telecommunications cabinet
CN105684344B (en) A kind of cipher key configuration method and apparatus
KR101233254B1 (en) Session key sharing method between Wireless Communication devices by using variable length of authentication code
US9225526B2 (en) Multifactor username based authentication
US20170331623A1 (en) Method and system for detecting eavesdropping during data transmission
US20090327724A1 (en) Two-way authentication between two communication endpoints using a one-way out-of-band (oob) channel
CN112398894B (en) Safety verification method and device for vehicle
CN104836784B (en) A kind of information processing method, client and server
CN106130716A (en) Cipher key exchange system based on authentication information and method
CN106470101A (en) For the identity identifying method of quantum key distribution process, apparatus and system
KR101348249B1 (en) OTP authentification method and system using of QR-code
CN105897784A (en) Internet of things terminal equipment encryption communication method and device
CN108599926A (en) A kind of HTTP-Digest modified AKA identity authorization systems and method based on pool of symmetric keys
CN107294696A (en) For the full homomorphism method for distributing key of Leveled
US8769301B2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
WO2017074953A1 (en) Method and system for dynamic password authentication based on quantum states
CN104618380A (en) Secret key update method suitable for internet of things
CN102571341B (en) A kind of Verification System based on dynamic image and authentication method
KR101204980B1 (en) Method and System of One-Time Password Authentication Scheme Provide Enhanced Randomness
CN108259428B (en) System and method for realizing data transmission
KR102501794B1 (en) Method for user authentication based on hash chain suitable for unmanned systems and electronic apparatus using it
CN117675254A (en) Equipment authentication method and related equipment
CN115632797A (en) Safety identity verification method based on zero-knowledge proof

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