KR102319664B1 - Electronic device blocking rsa and method for operating thereof - Google Patents

Electronic device blocking rsa and method for operating thereof Download PDF

Info

Publication number
KR102319664B1
KR102319664B1 KR1020210036802A KR20210036802A KR102319664B1 KR 102319664 B1 KR102319664 B1 KR 102319664B1 KR 1020210036802 A KR1020210036802 A KR 1020210036802A KR 20210036802 A KR20210036802 A KR 20210036802A KR 102319664 B1 KR102319664 B1 KR 102319664B1
Authority
KR
South Korea
Prior art keywords
signal
electronic device
code
codes
time
Prior art date
Application number
KR1020210036802A
Other languages
Korean (ko)
Inventor
배진홍
강유진
안영택
Original Assignee
주식회사 이노스코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이노스코리아 filed Critical 주식회사 이노스코리아
Priority to KR1020210036802A priority Critical patent/KR102319664B1/en
Priority to KR1020210135727A priority patent/KR102656577B1/en
Application granted granted Critical
Publication of KR102319664B1 publication Critical patent/KR102319664B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R25/00Fittings or systems for preventing or indicating unauthorised use or theft of vehicles
    • B60R25/10Fittings or systems for preventing or indicating unauthorised use or theft of vehicles actuating a signalling device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R25/00Fittings or systems for preventing or indicating unauthorised use or theft of vehicles
    • B60R25/20Means to switch the anti-theft system on or off
    • B60R25/24Means to switch the anti-theft system on or off using electronic identifiers containing a code not memorised by the user
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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/84Vehicles

Abstract

According to one embodiment, an electronic device comprises a communication circuit and a processor. The processor receives a first signal containing a first code from an external device through the communication circuit, generates a plurality of codes for comparison corresponding to each of a plurality of time points related to a first time point which is a reception time point of the first signal based on reception of the first signal, determines that the first signal is valid when the first code contained in the first signal exists among the plurality of codes for comparison, and determines that the first signal is invalid when the first code contained in the first signal does not exist among the plurality of codes for comparison.

Description

RSA를 방지하는 전자 장치 및 그 동작 방법{ELECTRONIC DEVICE BLOCKING RSA AND METHOD FOR OPERATING THEREOF}Electronic device for preventing RSA and operating method thereof

다양한 실시예는 RSA(relay station attack)을 방지하는 전자 장치 및 그 동작 방법에 관한 것이다.Various embodiments relate to an electronic device for preventing a relay station attack (RSA) and a method of operating the same.

현재의 차량 내의 잠금 장치의 조작을 위하여 스마트 키가 이용되고 있다. 스마트 키는, 다양한 기능을 지원하며, 다양한 기능 각각에 대응하는 통신 신호를 원격으로 차량으로 송신할 수 있다. 차량은, 스마트 키로부터의 통신 신호를 수신하고, 수신된 통신 신호의 정보를 분석하여 대응하는 기능을 수행할 수 있다. 예를 들어, 현재의 스마트 키 및/또는 차량은 차량의 잠금 장치의 잠금 해제, 잠금, 트렁크 개폐와 같은 기능들을 제공하고 있다.A smart key is currently used to operate a locking device in a vehicle. The smart key supports various functions and may remotely transmit a communication signal corresponding to each of the various functions to the vehicle. The vehicle may receive a communication signal from the smart key, analyze information of the received communication signal, and perform a corresponding function. For example, current smart keys and/or vehicles provide functions such as unlocking, locking, and opening/closing of a vehicle's locking device.

스마트 키를 소지한 사용자가 차량으로 접근하면, 차량은 스마트 키가 근접 범위 내로 진입함을 인식할 수 있다. 예를 들어, 차량은, 주기적(또는, 비주기적으로), 탐색 신호를 송신할 수 있다. 스마트 키는, 탐색 신호에 응답하는 응답 신호를 차량으로 송신할 수 있다. 차량은, 응답 신호의 수신에 따라 스마트 키가 근접 범위 내로 진입함을 인식할 수 있다. 이에 따라, 차량은 자동으로 개방 모드로 진입할 수도 있거나, 또는 차량의 손잡이 등에 대한 터치가 확인되면 차량 문의 잠금 장치를 잠금 해제할 수도 있다. 이에 따라, 사용자가 스마트 키를 직접 조작하지 않고 차량에 접근한다 하더라도, 차량의 제어가 자동적으로 수행될 수 있다.When the user with the smart key approaches the vehicle, the vehicle may recognize that the smart key enters the proximity range. For example, the vehicle may transmit a search signal periodically (or aperiodically). The smart key may transmit a response signal in response to the search signal to the vehicle. The vehicle may recognize that the smart key enters the proximity range according to the reception of the response signal. Accordingly, the vehicle may automatically enter the open mode, or may unlock the vehicle door lock when a touch on the handle of the vehicle is confirmed. Accordingly, even if the user approaches the vehicle without directly manipulating the smart key, the control of the vehicle may be automatically performed.

상술한 바와 같이, 사용자가 스마트 키를 직접 조작하지 않아도, 차량과 스마트 키 사이의 통신 신호의 송수신에 따라서 차량의 기능이 자동적으로 수행될 가능성이 있다. 상술한 기술은, 양 장치들이 근접한 경우에만 통신 신호의 송수신이 수행될 수 있다는 점을 가정하고 있다. 즉, 양 장치들이 멀리 떨어진 경우에는 통신 신호가 송수신될 수 없거나, 또는 통신 신호의 수신 세기(예를 들어 RSSI)가 임계 수신 세기 이하일 수 있으며, 이 경우에는 차량의 기능이 제어되지 않는다. 하지만, 최근 문제가 되는 RSA는, 복수 개의 릴레이 장치들이 통신 신호를 중계함에 따라, 원격에서의 권한을 가지지 않은 자에 의한 차량 기능 제어가 가능할 수 있다.As described above, even if the user does not directly manipulate the smart key, there is a possibility that the function of the vehicle is automatically performed according to transmission and reception of a communication signal between the vehicle and the smart key. The above technique assumes that transmission and reception of a communication signal can be performed only when both devices are close to each other. That is, when both devices are far apart, a communication signal may not be transmitted/received, or a reception strength (eg, RSSI) of the communication signal may be less than or equal to a threshold reception strength, and in this case, the vehicle function is not controlled. However, in RSA, which has recently become a problem, as a plurality of relay devices relay communication signals, it may be possible to remotely control vehicle functions by an unauthorized person.

다양한 실시예에 따른 전자 장치 및 그 동작 방법은, 통신 신호의 수신 시점와 연관된 복수 개의 시점들 각각에 대응하는 코드들을 생성하고, 생성된 코드들 중 통신 신호에 포함된 코드가 존재하는 지 여부에 따라 통신 신호의 유효 여부를 판정할 수 있다.An electronic device and an operating method thereof according to various embodiments generate codes corresponding to each of a plurality of time points associated with a reception time of a communication signal, and according to whether a code included in a communication signal exists among the generated codes It is possible to determine whether the communication signal is valid.

일 실시예에 따라서, 전자 장치는, 통신 회로, 및 프로세서를 포함하고, 상기 프로세서는, 상기 통신 회로를 통하여, 외부 장치로부터, 제 1 코드를 포함하는 제 1 신호를 수신하고, 상기 제 1 신호의 수신에 기반하여, 상기 제 1 신호의 수신 시점인 제 1 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성하고, 상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하는 경우, 상기 제 1 신호가 유효한 것으로 판단하고, 상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하지 않는 경우, 상기 제 1 신호가 유효하지 않다고 판단할 수 있다.According to an embodiment, an electronic device includes a communication circuit, and a processor, wherein the processor receives a first signal including a first code from an external device through the communication circuit, and the first signal generates a plurality of comparison codes corresponding to each of a plurality of time points associated with a first time point that is a reception time point of the first signal, and includes in the first signal among the plurality of comparison codes If the first code is present, it is determined that the first signal is valid, and when the first code included in the first signal does not exist among the plurality of comparison codes, the first signal is may be considered invalid.

일 실시예에 따라서, 전자 장치의 동작 방법은, 외부 장치로부터, 제 1 코드를 포함하는 제 1 신호를 수신하는 동작, 상기 제 1 신호의 수신에 기반하여, 상기 제 1 신호의 수신 시점인 제 1 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성하는 동작, 상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하는 경우, 상기 제 1 신호가 유효한 것으로 판단하는 동작, 및 상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하지 않는 경우, 상기 제 1 신호가 유효하지 않은 것으로 판단하는 동작을 포함할 수 있다.According to an embodiment of the present disclosure, a method of operating an electronic device includes receiving a first signal including a first code from an external device, and based on the reception of the first signal, a first signal reception time point generating a plurality of comparison codes corresponding to each of a plurality of time points associated with a first time point; when the first code included in the first signal among the plurality of comparison codes exists, the first signal may include an operation of determining that is valid, and an operation of determining that the first signal is invalid when the first code included in the first signal among the plurality of comparison codes does not exist. .

다양한 실시예에 따라서, 통신 신호의 수신 시점와 연관된 복수 개의 시점들 각각에 대응하는 코드들을 생성하고, 생성된 코드들 중 통신 신호에 포함된 코드가 존재하는 지 여부에 따라 통신 신호의 유효 여부를 판정할 수 있는, 전자 장치 및 그 동작 방법이 제공될 수 있다. 이에 따라, RSA와 같은 권한을 가지지 않는 자에 의한 원격 제어가 불가능할 수 있다.According to various embodiments, codes corresponding to each of the plurality of time points associated with the reception time of the communication signal are generated, and the validity of the communication signal is determined according to whether a code included in the communication signal among the generated codes exists. An electronic device and a method of operating the same may be provided. Accordingly, remote control by a person who does not have the same authority as the RSA may not be possible.

도 1은 다양한 실시예들과의 비교를 위한 비교예에 따른 RSA의 과정을 설명하기 위한 도면이다.
도 2는 다양한 실시예와의 비교를 위한 비교예에 따른 인증 방식을 도시한다.
도 3a은 다양한 실시예에 따른 전자 장치 및 차량의 동작을 설명하기 위한 흐름도를 도시한다.
도 3b는 다양한 실시예에 따른 차량 및/또는 전자 장치에 의하여 생성되는 코드의 예시이다.
도 4a은 다양한 실시예에 따른 전자 장치 및 차량의 동작을 설명하기 위한 흐름도를 도시한다.
도 4b는 다양한 실시예에 따른 전자 장치 및 차량의 동작을 설명하기 위한 흐름도를 도시한다.
도 5는 다양한 실시예에 따른 전자 장치 및 차량의 블록도를 도시한다.
도 6a는 다양한 실시예에 따른 전자 장치 및/또는 차량의 동작을 설명하기 위한 흐름도를 도시한다.
도 6b 내지 6d는 다양한 실시예에 따른 차량 및/또는 전자 장치에 의하여 관리되는 시점들을 도시한다.
도 7은 다양한 실시예에 따른 도어락 시스템 및 전자 장치를 설명하기 위한 도면이다.
도 8은 다양한 실시예에 따른 선거 관리 시스템 및 전자 장치를 설명하기 위한 도면이다.
도 9는 다양한 실시예에 따른 결제 장치 및 전자 장치를 설명하기 위한 도면이다.
도 10a는 다양한 실시예에 따른 전자 장치의 내부 장치들 사이의 통신을 설명하기 위한 도면이다.
도 10b는 다양한 실시예에 따른 하나의 전자 장치 내의 복수 개의 내부 장치들의 동작을 설명하기 위한 도면이다.
도 11은 다양한 실시예에 따른 중앙 서버와 전자 장치들 사이의 통신을 설명하기 위한 도면이다.
도 12는 다양한 실시예에 따른 중앙 서버의 동작을 설명하기 위한 흐름도이다.
도 13은 본 발명의 다양한 실시예에 따른 유일 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
도 14은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
도 15는 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
도 16은 본 발명의 다양한 실시예에 따른 오프셋 결정 과정을 설명하기 위한 흐름도를 도시한다.
도 17는 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.
도 18은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.
1 is a view for explaining a process of RSA according to a comparative example for comparison with various embodiments.
2 illustrates an authentication method according to a comparative example for comparison with various embodiments.
3A is a flowchart illustrating operations of an electronic device and a vehicle according to various embodiments of the present disclosure;
3B is an example of a code generated by a vehicle and/or an electronic device according to various embodiments of the present disclosure;
4A is a flowchart illustrating operations of an electronic device and a vehicle according to various embodiments of the present disclosure;
4B is a flowchart illustrating operations of an electronic device and a vehicle according to various embodiments of the present disclosure;
5 is a block diagram of an electronic device and a vehicle according to various embodiments of the present disclosure;
6A is a flowchart illustrating an operation of an electronic device and/or a vehicle according to various embodiments of the present disclosure;
6B to 6D illustrate viewpoints managed by a vehicle and/or an electronic device according to various embodiments.
7 is a view for explaining a door lock system and an electronic device according to various embodiments.
8 is a diagram for describing an election management system and an electronic device according to various embodiments of the present disclosure;
9 is a view for explaining a payment device and an electronic device according to various embodiments of the present disclosure;
10A is a diagram for describing communication between internal devices of an electronic device according to various embodiments of the present disclosure;
10B is a diagram for describing operations of a plurality of internal devices in one electronic device according to various embodiments of the present disclosure;
11 is a diagram for describing communication between a central server and electronic devices according to various embodiments of the present disclosure;
12 is a flowchart illustrating an operation of a central server according to various embodiments of the present disclosure;
13 is a flowchart illustrating a method of generating a unique code according to various embodiments of the present invention.
14 is a flowchart illustrating a code generation method according to various embodiments of the present invention.
15 is a flowchart illustrating a code generation method according to various embodiments of the present invention.
16 is a flowchart illustrating an offset determination process according to various embodiments of the present invention.
17 is a flowchart of a method for determining a character set according to various embodiments of the present disclosure;
18 is a flowchart of a method for determining a character set according to various embodiments of the present disclosure;

이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 예시적 실시예를 상세하게 설명한다. 다만, 본 발명이 예시적 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 실질적으로 동일한 기능을 수행하는 부재를 나타낸다.Hereinafter, exemplary embodiments according to the present invention will be described in detail with reference to the contents described in the accompanying drawings. However, the present invention is not limited or limited by the exemplary embodiments. The same reference numerals provided in the respective drawings indicate members that perform substantially the same functions.

도 1은 다양한 실시예들과의 비교를 위한 비교예에 따른 RSA의 과정을 설명하기 위한 도면이다.1 is a view for explaining a process of RSA according to a comparative example for comparison with various embodiments.

비교예를 따르면, 차량(1)은 제 1 범위(5) 내의 스마트 키로부터의 통신 신호에 포함된 정보를 이용하여, 대응하는 기능을 수행하도록 설정될 수 있다. 여기에서, 차량(1)은, 일반적인 차량을 의미할 수 있거나, 또는 일반적인 차량 내의 연산 수단(예를 들어, 프로세서, 미니 컴퓨터, FPGA, 또는 제어 회로 중 적어도 하나), 저장 수단(예를 들어, 메모리 등), 또는 통신 수단 중 적어도 일부를 의미할 수도 있다. 예를 들어, 통신 신호를 발생시킬 수 있는 장치가 통신 신호를 송신하는 경우, 장치와 차량(1) 사이의 거리가 멀어질수록 차량(1)에서의 통신 신호의 수신 세기가 약해질 수 있다. 예를 들어, 차량(1)은 외부 장치로부터의 통신 신호의 수신 세기에 따라서, 외부 장치가 제 1 범위(5) 내로 근접하였는지 여부를 판단할 수 있다. 비교예에 따르면, 차량(1)은, 제 1 범위(5) 내에서의 통신 신호가 확인되는 경우, 스마트 키가 존재하는 것으로 판단하고, 통신 신호에 의하여 지정되는 기능을 수행할 수 있다.According to the comparative example, the vehicle 1 may be set to perform a corresponding function by using the information included in the communication signal from the smart key within the first range 5 . Here, the vehicle 1 may mean a general vehicle, or computing means (eg, at least one of a processor, mini-computer, FPGA, or control circuit) in a general vehicle, storage means (eg, memory, etc.), or at least a part of communication means. For example, when a device capable of generating a communication signal transmits a communication signal, as the distance between the device and the vehicle 1 increases, the reception strength of the communication signal in the vehicle 1 may decrease. For example, the vehicle 1 may determine whether the external device approaches within the first range 5 according to the reception strength of the communication signal from the external device. According to the comparative example, when the communication signal within the first range 5 is confirmed, the vehicle 1 may determine that the smart key exists and perform a function designated by the communication signal.

한편, RSA에 의한 문제가 대두되고 있다. RSA를 위하여서는 두 개 이상의 릴레이 장치들(2,3)이 필요하다. 우선, 첫 번째 동작으로, 차량(1)은, 주기적으로, 또는 비주기적으로 통신 신호를 송신할 수 있다. 예를 들어, 제 1 릴레이 장치(2)는, 제 1 범위(5) 내에 배치된 것을 상정하도록 하며, 이에 따라 제 1 릴레이 장치(2)는 차량(1)으로부터의 통신 신호를 수신할 수 있다. 통신 신호에는, challenge 값이 포함된 것을 상정하도록 한다. 제 1 릴레이 장치(2)는, 수신받은 통신 신호를 제 2 릴레이 장치(3)로 송신할 수 있다. 해당 통신 신호에도 역시 challenge 값이 포함될 수 있다. 제 2 릴레이 장치(3)는, 수신받은 통신 신호를 스마트 키(4)로 송신할 수 있다. 해당 통신 신호에도 역시 challenge 값이 포함될 수 있다. 예를 들어, 권한이 없는 1명은 제 1 릴레이 장치(2)를 소지하고 차량(1) 근처에 위치하고, 권한이 없는 다른 1명은 제 2 릴레이 장치(3)를 소지하고 스마트 키(4)를 소지한 사용자 근처에 위치하는 것을 상정하도록 한다. 이 때, 제 2 릴레이 장치(3)는, 스마트 키(4) 근처에 위치하므로, 스마트 키(4)는 제 2 릴레이 장치(3)로부터의 통신 신호를 수신할 수 있다. 스마트 키(4)는, 통신 신호에 포함된 challenge 값에 대응하는 response 값을 생성할 수 있으며, response 값을 포함하는 통신 신호를 발생시킬 수 있다. 제 2 릴레이 장치(3)는, response 값을 포함하는 통신 신호를 수신할 수 있으며, 이를 제 1 릴레이 장치(2)로 송신할 수 있다. 제 1 릴레이 장치(2)는, response 값을 포함하는 통신 신호를 수신할 수 있으며, 이를 차량(1)으로 송신할 수 있다. 차량(1)은, response 값을 포함하는 통신 신호를 수신할 수 있으며, 통신 신호에 포함된 response 값을 이용하여 인증을 완료할 수 있고, 이에 대응하는 기능(예를 들어, 차량 문 개방)을 수행할 수 있다.On the other hand, the problem caused by RSA is emerging. For RSA, two or more relay devices (2,3) are required. First, as a first operation, the vehicle 1 may transmit a communication signal periodically or aperiodically. For example, it is assumed that the first relay device 2 is disposed within the first range 5 , so that the first relay device 2 can receive a communication signal from the vehicle 1 . . It is assumed that the communication signal contains a challenge value. The first relay device 2 may transmit the received communication signal to the second relay device 3 . The corresponding communication signal may also include a challenge value. The second relay device 3 may transmit the received communication signal to the smart key 4 . The corresponding communication signal may also include a challenge value. For example, one non-authorized person possesses the first relay device 2 and is located near the vehicle 1, and the other non-authorized person possesses the second relay device 3 and the smart key 4 It is assumed that it is located near one user. At this time, since the second relay device 3 is located near the smart key 4 , the smart key 4 may receive a communication signal from the second relay device 3 . The smart key 4 may generate a response value corresponding to the challenge value included in the communication signal, and may generate a communication signal including the response value. The second relay device 3 may receive a communication signal including a response value, and may transmit it to the first relay device 2 . The first relay device 2 may receive a communication signal including a response value, and may transmit it to the vehicle 1 . The vehicle 1 may receive a communication signal including a response value, and may complete authentication by using the response value included in the communication signal, and perform a function corresponding thereto (eg, opening the vehicle door). can be done

상술한 바와 같이, 단순히 특정 범위(5) 내에 배치되는 스마트 키(4)와의 통신 신호의 교환에 따른 인증 방식은, RSA에 매우 취약하다.As described above, the authentication method according to the exchange of a communication signal with the smart key 4 simply disposed within a specific range 5 is very vulnerable to RSA.

도 2는 다양한 실시예와의 비교를 위한 비교예에 따른 인증 방식을 도시한다.2 illustrates an authentication method according to a comparative example for comparison with various embodiments.

비교예를 따르면, 차량(1)은, 통신 신호를 스마트 키(4)로 송신하고, 스마트 키(4)는 이에 대응하여 통신 신호를 차량(1)으로 송신할 수 있다. 차량(1)으로부터 스마트 키(4)로의 통신 신호의 송신에 Δt1이 소요되고, 스마트 키(4)부터 차량(1)으로의 통신 신호의 송신에 Δt2가 소요됨을 가정하도록 한다. 아울러, 차량은 Δt1 및 Δt2와, 스마트 키(4)에서의 신호 처리에 요구되는 시간의 합계 시간이 임계 시간 이내인지 여부에 따라, 스마트 키(4)가 차량(1)에 근접한 지 여부를 판단할 수 있다. 만약, Δt1 및 Δt2와, 스마트 키(4)에서의 신호 처리에 요구되는 시간의 합계 시간이 임계 시간 이내인 경우에는, 차량(1)은 스마트 키(4)가 차량(1)에 근접한 것으로 판단하고, 스마트 키(4)에 의하여 지정되는 기능을 수행할 수 있다.According to the comparative example, the vehicle 1 may transmit a communication signal to the smart key 4 , and the smart key 4 may transmit a communication signal to the vehicle 1 in response thereto. It is assumed that Δt1 is required for transmission of a communication signal from the vehicle 1 to the smart key 4 and Δt2 is required for transmission of a communication signal from the smart key 4 to the vehicle 1 . In addition, the vehicle determines whether the smart key 4 is close to the vehicle 1 according to whether the sum of Δt1 and Δt2 and the time required for signal processing in the smart key 4 is within a threshold time. can do. If the sum of Δt1 and Δt2 and the time required for signal processing in the smart key 4 is within the threshold time, the vehicle 1 determines that the smart key 4 is close to the vehicle 1. and a function designated by the smart key 4 can be performed.

만약, 스마트 키(4)가 차량(1)으로부터 상대적으로 멀리 떨어진 경우, 차량(1)으로부터 스마트 키(4)로의 통신 신호의 송신에 Δt3이 소요되고, 스마트 키(4)부터 차량(1)으로의 통신 신호의 송신에 Δt4가 소요될 수 있다. 차량은 Δt1 및 Δt2와, 스마트 키(4)에서의 신호 처리에 요구되는 시간의 합계 시간이 임계 시간 이내인지 여부에 따라, 스마트 키(4)가 차량(1)에 근접한 지 여부를 판단할 수 있다. 만약, Δt3 및 Δt4와, 스마트 키(4)에서의 신호 처리에 요구되는 시간의 합계 시간이 임계 시간 초과인 경우에는, 차량(1)은 스마트 키(4)가 차량(1)에 근접하지 않은 것으로 판단하고, 스마트 키(4)에 의하여 지정되는 기능을 수행하지 않을 수 있다.If the smart key 4 is relatively far from the vehicle 1, Δt3 is required to transmit a communication signal from the vehicle 1 to the smart key 4, and the smart key 4 to the vehicle 1 It may take Δt4 to transmit a communication signal to The vehicle can determine whether the smart key 4 is close to the vehicle 1 according to whether the sum of Δt1 and Δt2 and the time required for signal processing in the smart key 4 is within the threshold time. have. If the sum of Δt3 and Δt4 and the time required for signal processing in the smart key 4 exceeds the threshold time, the vehicle 1 determines that the smart key 4 is not close to the vehicle 1. It is determined that it is, and the function designated by the smart key 4 may not be performed.

한편, 정확한 판단을 위하여서는, 소요 시간의 정확한 측정이 요구되며, 스마트 키(4)에 의한 처리 시간이 조작될 가능성 또한 존재한다. 특히, 반드시 양방향 통신 신호의 교환이 수행되어야만 인증이 수행될 수 있고, 단방향 통신 신호 송신으로는 인증이 불가능하다.On the other hand, for accurate determination, accurate measurement of the required time is required, and there is also a possibility that the processing time by the smart key 4 may be manipulated. In particular, authentication can be performed only when two-way communication signal exchange is performed, and authentication cannot be performed by one-way communication signal transmission.

도 3a은 다양한 실시예에 따른 전자 장치 및 차량의 동작을 설명하기 위한 흐름도를 도시한다. 도 3a의 실시예는 도 3b를 참조하여 더욱 상세하게 설명하도록 한다. 도 3b는 다양한 실시예에 따른 차량 및/또는 전자 장치에 의하여 생성되는 코드의 예시이다. 도 3a에서의 전자 장치(101), 또는 본 개시의 다양한 실시예들에 의한 전자 장치(101)는, 예를 들어 스마트 키이거나, 또는 스마트 키의 기능을 지원하는 전자 장치(예를 들어, 단말기, 스마트 폰, PDA, 웨어러블 장치 등)일 수 있으며, 그 종류에는 제한이 없다. 한편, 도 3a에 의한 전자 장치(101)의 동작 방법은, 스마트 키뿐만 아니라 다양한 분야에 적용될 수도 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다.3A is a flowchart illustrating operations of an electronic device and a vehicle according to various embodiments of the present disclosure; The embodiment of FIG. 3A will be described in more detail with reference to FIG. 3B. 3B is an example of a code generated by a vehicle and/or an electronic device according to various embodiments of the present disclosure; The electronic device 101 in FIG. 3A , or the electronic device 101 according to various embodiments of the present disclosure, is, for example, a smart key or an electronic device (eg, a terminal) supporting the function of the smart key. , smart phone, PDA, wearable device, etc.), and there is no limitation on the type. Meanwhile, the method of operating the electronic device 101 illustrated in FIG. 3A may be applied not only to the smart key but also to various fields, which will be described later in more detail.

다양한 실시예에 따르면, 차량(300)은, 301 동작에서, 코드를 생성할 수 있다. 예를 들어, 차량(300)은, 도 3b에서와 같이, 코드(331)을 생성할 수 있다. 차량(300)은, 제 1 시점(예를 들어, 도 3b에서의 t=t1-(n-i)Δt)에서, 제 1 시점을 이용하여 코드(331)를 생성할 수 있다. 여기에서, t1은 후술할 것으로 차량(300)이 송신한 통신 신호의 전자 장치(101)에서의 수신 시점일 수 있다. 여기에서, 후술할 것으로 전자 장치(101)에서 생성하는 코드들(341,342,...,343,...,344)의 개수는 n+1일 수 있다. i는 0 이상의 정수일 수 있다. 예를 들어, 차량(300)은, 씨드 값과 제 1 시점을, OTP(one time password) 생성 알고리즘에 적용함으로써, 코드(331)를 생성할 수 있다. 하지만, 코드(331)의 생성 방법은 단순히 예시적인 것으로, 적어도 하나의 시점에 대한 정보를 이용하여 코드를 생성하는 방식이라면 제한이 없다. 또는, 차량(300)은, 유일하면서 랜덤함이 보장되는 알고리즘에 기반하여 코드(331)를 생성할 수도 있으며, 상세한 알고리즘은 도 13 내지 도 18을 참조하여 설명하도록 한다. 상술한 바에 따라, 차량(300)은, 제 1 시점 (예를 들어, 도 3b에서의 t=t1-(n-i)Δt)에서, 제 1 시점을 이용하여 코드(331)를 생성할 수 있다.According to various embodiments, the vehicle 300 may generate a code in operation 301 . For example, vehicle 300 may generate code 331 , as in FIG. 3B . The vehicle 300 may generate the code 331 using the first time point at a first time point (eg, t=t 1 -(ni)Δt in FIG. 3B ). Here, t 1 may be a reception time in the electronic device 101 of a communication signal transmitted by the vehicle 300 , which will be described later. Here, as will be described later, the number of codes 341 , 342 , ..., 343 , ..., 344 generated by the electronic device 101 may be n+1. i may be an integer greater than or equal to 0. For example, the vehicle 300 may generate the code 331 by applying the seed value and the first time point to an OTP (one time password) generation algorithm. However, the method of generating the code 331 is merely exemplary, and there is no limitation as long as it is a method of generating a code using information on at least one time point. Alternatively, the vehicle 300 may generate the code 331 based on an algorithm that is unique and guaranteed to be random, and the detailed algorithm will be described with reference to FIGS. 13 to 18 . As described above, the vehicle 300 may generate the code 331 using the first time point at a first time point (eg, t=t 1 -(ni)Δt in FIG. 3B ). .

다양한 실시예에 따르면, 303 동작에서, 차량(300)은, 코드(331)를 포함하는 신호를 송신할 수 있다. 305 동작에서, 전자 장치(101)는 코드(331)를 포함하는 신호 수신에 기반하여, 신호 수신 시점(t1)과 연관된 복수 개의 시점(예를 들어, 도 3b에서의 t=t1-(n-i)Δt, i는 0부터 n)들 각각에 대응하는 복수 개의 비교용 코드들(예를 들어, 도 3b에서의 341,342,...,343,...,344)을 생성할 수 있다. 예를 들어, 도 3b에서와 같이 전자 장치(101)는, 씨드 값과, n+1개의 시점들 t=t1-(n-i)Δt(i는 0부터 n) 각각을, 코드 생성 알고리즘에 적용함에 따라서 복수 개의 비교용 코드들(341,342,...,343,...,344)을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 씨드 값과 t1-nΔt의 시점을 코드 생성 알고리즘에 적용하여 제 0 생성 코드(341)를 생성하고, 씨드 값과 t1-(n-1)Δt의 시점을 코드 생성 알고리즘에 적용하여 제 1 생성 코드(342)를 생성하고, 씨드 값과 t1-(n-i)Δt의 시점을 코드 생성 알고리즘에 적용하여 제 i+1 생성 코드(343)를 생성하고, 씨드 값과 t1의 시점을 코드 생성 알고리즘에 적용하여 제 n 생성 코드(344)를 생성할 수 있다. 예를 들어, 전자 장치(101) 및 차량(300) 각각에 저장된 씨드 값은 동일할 수 있다. 여기에서, 시간 간격인 Δt 은 제한이 없다. 한편, 코드(331)이 생성된 시점부터 전자 장치(101)가 신호를 수신한 시점(t1)에는 ΔT1의 시간이 소요될 수 있다. 이에 따라, 전자 장치(101)는, 하나의 예시에서, 신호를 수신한 시점(t1)으로 과거의 시점들에 대하여 코드들(341,342,...,343,..., 344)을 생성할 수 있다. 한편, 다른 예시에서는, 전자 장치(101)는, 신호를 수신한 시점(t1)의 과거 시점들뿐만 아니라 미래 시점들에 대한 코드들을 생성할 수도 있으며, 이에 대하여서는 도 6a 내지 6d를 참조하여 더욱 상세하게 설명하도록 한다.According to various embodiments, in operation 303 , the vehicle 300 may transmit a signal including the code 331 . In operation 305 , the electronic device 101 receives a plurality of time points (eg, t=t 1 -( in FIG. 3B ) associated with the signal reception time t 1 based on the signal reception including the code 331 . ni)Δt, i may generate a plurality of comparison codes (eg, 341,342,...,343,...,344 in FIG. 3B ) corresponding to each of 0 to n). For example, as shown in FIG. 3B , the electronic device 101 applies the seed value and each of n+1 time points t=t 1 -(ni)Δt (i is 0 to n) to the code generation algorithm. Accordingly, a plurality of comparison codes 341, 342, ..., 343, ..., 344 may be generated. For example, the electronic device 101 applies the seed value and the time point of t 1 -nΔt to the code generation algorithm to generate the zeroth generation code 341 , and the seed value and t 1 -(n-1)Δt The first generation code 342 is generated by applying the time point of to the code generation algorithm, and the i+1th generation code 343 is generated by applying the seed value and the time point of t 1 -(ni)Δt to the code generation algorithm. Then, the nth generation code 344 may be generated by applying the seed value and the time point of t 1 to the code generation algorithm. For example, the seed values stored in each of the electronic device 101 and the vehicle 300 may be the same. Here, the time interval Δt is not limited. Meanwhile, a time of ΔT 1 may be taken from a time when the code 331 is generated to a time t 1 when the electronic device 101 receives a signal. Accordingly, in one example, the electronic device 101 generates codes 341,342,...,343,..., 344 with respect to time points in the past as the time point t 1 at which the signal is received. can do. Meanwhile, in another example, the electronic device 101 may generate codes for future time points as well as past time points of the time point t 1 at which the signal is received, with reference to FIGS. 6A to 6D , It will be described in more detail.

한편, 차량(300) 및 전자 장치(101)가 근접한 것으로 판단될 수 있는 거리에 대응하는 시간에 기반하여, 코드들의 개수(예를 들어, n+1개) 및 시간 간격(Δt)가 설정될 수 있다. 예를 들어, 차량(300) 및 전자 장치(101)가 근접한 것으로 판단될 수 있는 거리가 a이면, 해당 거리 a에 대응하는 시간은 b일 수 있다. 하나의 예에서, b는 a를 c(광속)으로 나눈 값일 수 있으나, 제한은 없다. 만약, 시간이 b인 경우, (n+1)과 Δt의 곱이 b를 만족하도록, (n+1)과 Δt가 설정될 수 있다. (n+1) 및/또는 Δt는 디폴트 값일 수도 있으나, 구현에 따라 전자 장치(101)에 의하여 계산되어 변경되는 값일 수도 있다. b가 커질수록 유효한 것으로 판단되는 범위가 넓어지며, b가 작아질수록 유효한 것으로 판단되는 범위가 좁아질 수 있다. 이에 따라, (n+1)과 Δt은 적용되는 서비스의 종류에 따라 적절하게 설정될 수 있을 것이다.On the other hand, based on a time corresponding to a distance at which the vehicle 300 and the electronic device 101 can be determined to be close, the number of codes (eg, n+1) and the time interval Δt are to be set. can For example, if the distance at which the vehicle 300 and the electronic device 101 can be determined to be close is a, the time corresponding to the corresponding distance a may be b. In one example, b may be a value obtained by dividing a by c (speed of light), but there is no limitation. If time is b, (n+1) and Δt may be set so that the product of (n+1) and Δt satisfies b. (n+1) and/or Δt may be default values, but may be values calculated and changed by the electronic device 101 according to implementation. As b becomes larger, the range determined to be effective may be widened, and as b becomes smaller, the range determined to be effective may be narrowed. Accordingly, (n+1) and Δt may be appropriately set according to the type of service applied.

다양한 실시예에 따라서, 전자 장치(101)는, 307 동작에서, 복수 개의 비교용 코드들(341,342,...,343,..., 344) 중, 신호에 포함된 코드(331)가 존재하는지 여부를 판단할 수 있다. 도 3a 및 3b의 예시에서는, 전자 장치(101)가 신호가 수신된 시점(t1)으로부터 과거의 시점들에 대하여 동일한 씨드 값으로 코드들(341,342,...,343,...,344)을 생성할 수 있다. 이에 따라, 만약, 전자 장치(101) 및 차량(300) 사이의 거리가 근접한 것으로 판단될 수 있는 범위 이내라면, 코드들(341,342,...,343,...,344) 중 하나는 차량(300)이 송신한 코드(331)와 동일할 수 있다. 만약, 전자 장치(101) 및 차량(300) 사이의 거리가 근접한 것으로 판단될 수 있는 범위 밖이라면, 코드들(341,342,...,343,...,344) 중에는 차량(300)이 송신한 코드(331)와 동일한 코드가 없을 수 있다. 이에 따라, 복수 개의 비교용 코드들(341,342,...,343,...,344) 중, 신호에 포함된 코드(331)가 존재하는 것으로 판단되면(307-예), 전자 장치(101)는, 309 동작에서, 신호가 유효한 것으로 판단할 수 있다. 만약, 복수 개의 비교용 코드들(341,342,...,343,...,344) 중, 신호에 포함된 코드(331)가 존재하지 않는 것으로 판단되면(309-아니오), 전자 장치(101)는, 311 동작에서, 신호가 유효하지 않은 것으로 판단할 수 있다.According to various embodiments, in operation 307 , the electronic device 101 includes a code 331 included in a signal among the plurality of comparison codes 341 , 342 , ..., 343 , ..., 344 . You can decide whether to do it or not. In the example of FIGS. 3A and 3B , the electronic device 101 sets the codes 341,342,...,343,...,344 with the same seed value with respect to time points in the past from the time point t 1 at which the signal is received. ) can be created. Accordingly, if the distance between the electronic device 101 and the vehicle 300 is within a range that can be determined to be close, one of the codes 341,342,...,343,...,344 is the vehicle. It may be the same as the code 331 transmitted by 300 . If the distance between the electronic device 101 and the vehicle 300 is outside a range that can be determined to be close, the vehicle 300 is transmitted among the codes 341 , 342 , ..., 343 , ..., 344 . There may not be a code identical to one code 331 . Accordingly, if it is determined that the code 331 included in the signal exists among the plurality of comparison codes 341,342,...,343,...,344 (307-Yes), the electronic device 101 ), in operation 309 , it may be determined that the signal is valid. If it is determined that the code 331 included in the signal does not exist among the plurality of comparison codes 341,342,...,343,...,344 (309-No), the electronic device 101 ), in operation 311 , it may be determined that the signal is invalid.

상술한 바에 따라서, 전자 장치(101)는, 차량(300)으로부터의 신호가 유효한 지 여부를 판단할 수 있다. 특히, 송수신 시점의 측정 정확도가 다소 떨어진다 하더라도, 과거의 시점들에 대한 코드들의 생성 및 비교에 따른 유효 여부가 판단되므로 정확한 인증이 가능할 수 있다. 아울러, 단방향 통신 신호 송신으로도 인증이 가능할 수 있다. 또한, 타임 스탬프가 아닌 알고리즘을 통하여 생성된 코드가 송신되기 때문에, 권한이 없는 자의 조작이 불가능하다.As described above, the electronic device 101 may determine whether the signal from the vehicle 300 is valid. In particular, even if the measurement accuracy of the transmission/reception time point is somewhat lower, since the validity is determined according to the generation and comparison of codes with respect to the past time points, accurate authentication may be possible. In addition, authentication may be possible even by transmitting a one-way communication signal. In addition, since the generated code is transmitted through an algorithm rather than a time stamp, manipulation by an unauthorized person is impossible.

도 4a은 다양한 실시예에 따른 전자 장치 및 차량의 동작을 설명하기 위한 흐름도를 도시한다.4A is a flowchart illustrating operations of an electronic device and a vehicle according to various embodiments of the present disclosure;

다양한 실시예에 따르면, 전자 장치(101)는, 401 동작에서, 코드를 생성할 수 있다. 전자 장치(101)는, 제 1 시점에서, 제 1 시점을 이용하여 코드를 생성할 수 있다. 예를 들어, 전자 장치(101)는, 씨드 값과 제 1 시점을, OTP 생성 알고리즘에 적용함으로써, 코드를 생성할 수 있다. 하지만, 전자 장치(101)가 코드를 생성하는 방식에도 제한은 없다. 상술한 바에 따라, 전자 장치(101)는, 제 1 시점에서, 제 1 시점을 이용하여 코드를 생성할 수 있다.According to various embodiments, the electronic device 101 may generate a code in operation 401 . The electronic device 101 may generate a code at a first time point using the first time point. For example, the electronic device 101 may generate a code by applying the seed value and the first time point to the OTP generation algorithm. However, there is no limitation on the manner in which the electronic device 101 generates a code. As described above, the electronic device 101 may generate a code at a first time point using the first time point.

다양한 실시예에 따르면, 403 동작에서, 전자 장치(101)는 코드를 포함하는 신호를 송신할 수 있다. 405 동작에서, 차량(300)은, 코드를 포함하는 신호 수신에 기반하여, 신호 수신 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성할 수 있다. 예를 들어, 차량(300)은, 씨드 값과, 복수 개의 시점들 각각을, 코드 생성 알고리즘에 적용함에 따라서 복수 개의 비교용 코드들을 생성할 수 있다. 예를 들어, 전자 장치(101) 및 차량(300) 각각에 저장된 씨드 값은 동일할 수 있다. 한편, 코드가 생성된 시점부터 차량(300)이 신호를 수신한 시점(t1)에는 ΔT2의 시간이 소요될 수 있다. 이에 따라, 차량(300)은, 하나의 예시에서, 신호를 수신한 시점으로 과거의 시점들에 대하여 코드들을 생성할 수 있다. 한편, 다른 예시에서는, 차량(300)은, 신호를 수신한 시점의 과거 시점들뿐만 아니라 미래 시점들에 대한 코드들을 생성할 수도 있으며, 이에 대하여서는 도 6a 내지 6d를 참조하여 더욱 상세하게 설명하도록 한다. 한편, 차량(300) 및 전자 장치(101)가 근접한 것으로 판단될 수 있는 거리에 대응하는 시간에 기반하여, 코드들의 개수 및 과거의 시점들 사이의 시간 간격이 설정될 수 있다.According to various embodiments, in operation 403 , the electronic device 101 may transmit a signal including a code. In operation 405 , the vehicle 300 may generate a plurality of comparison codes corresponding to each of the plurality of time points associated with the signal reception time, based on the reception of the signal including the code. For example, the vehicle 300 may generate a plurality of comparison codes by applying the seed value and each of the plurality of time points to the code generation algorithm. For example, the seed values stored in each of the electronic device 101 and the vehicle 300 may be the same. Meanwhile, a time of ΔT 2 may be taken from a time when the code is generated to a time t 1 at which the vehicle 300 receives a signal. Accordingly, in one example, the vehicle 300 may generate codes with respect to time points in the past as a time point at which a signal is received. Meanwhile, in another example, the vehicle 300 may generate codes for future time points as well as past time points at the time of receiving the signal, which will be described in more detail with reference to FIGS. 6A to 6D . do. Meanwhile, the number of codes and a time interval between time points in the past may be set based on a time corresponding to a distance at which the vehicle 300 and the electronic device 101 may be determined to be close.

다양한 실시예에 따라서, 차량(300)은, 407 동작에서, 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하는지 여부를 판단할 수 있다. 차량(300)은, 신호가 수신된 시점으로부터 과거의 시점들에 대하여 동일한 씨드 값으로 코드들을 생성할 수 있다. 이에 따라, 만약, 전자 장치(101) 및 차량(300) 사이의 거리가 근접한 것으로 판단될 수 있는 범위 이내라면, 코드들 중 하나는 전자 장치(101)가 송신한 코드와 동일할 수 있다. 만약, 전자 장치(101) 및 차량(300) 사이의 거리가 근접한 것으로 판단될 수 있는 범위 밖이라면, 코드들 중에는 전자 장치(101)가 송신한 코드와 동일한 코드가 없을 수 있다. 이에 따라, 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하는 것으로 판단되면(407-예), 전자 장치(101)는, 409 동작에서, 신호가 유효한 것으로 판단할 수 있다. 만약, 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하지 않는 것으로 판단되면(409-아니오), 전자 장치(101)는, 411 동작에서, 신호가 유효하지 않은 것으로 판단할 수 있다.According to various embodiments, in operation 407 , the vehicle 300 may determine whether a code included in a signal among a plurality of comparison codes exists. The vehicle 300 may generate codes with the same seed value for time points in the past from the point in time when the signal is received. Accordingly, if the distance between the electronic device 101 and the vehicle 300 is within a range that can be determined to be close, one of the codes may be the same as the code transmitted by the electronic device 101 . If the distance between the electronic device 101 and the vehicle 300 is outside a range that can be determined to be close, among the codes, there may be no code identical to the code transmitted by the electronic device 101 . Accordingly, if it is determined that a code included in the signal exists among the plurality of comparison codes ( 407 - Yes), the electronic device 101 may determine that the signal is valid in operation 409 . If it is determined that the code included in the signal does not exist among the plurality of comparison codes ( 409 - NO), the electronic device 101 may determine that the signal is invalid in operation 411 .

상술한 바에 따라서, 차량(300)은, 전자 장치(101)로부터의 신호가 유효한 지 여부를 판단할 수 있다. 특히, 송수신 시점의 측정 정확도가 다소 떨어진다 하더라도, 과거의 시점들에 대한 코드들의 생성 및 비교에 따른 유효 여부가 판단되므로 정확한 인증이 가능할 수 있다. 아울러, 단방향 통신 신호 송신으로도 인증이 가능할 수 있다. 또한, 타임 스탬프가 아닌 알고리즘을 통하여 생성된 코드가 송신되기 때문에, 권한이 없는 자의 조작이 불가능하다. 도 4a의 실시예에서는, 전자 장치(101)가 차량(300)으로부터의 신호가 수신되지 않은 상태에서, 차량(300)으로의 신호를 송신할 수 있다. 차량(300)은, 적어도 상시적으로 신호가 수신되는지 여부를 모니터링할 수 있다. 한편, 다른 실시예에서는, 전자 장치(101)는, 차량으로부터 신호를 수신하고, 신호의 수신에 응답하여 코드를 포함하는 신호를 송신할 수 있다. 한편, 또 다른 실시예에서는, 전자 장치(101)는, 차량으로부터 코드를 포함하는 신호를 수신하고, 해당 코드에 기반하여 인증이 성공하면, 이에 응답하여 코드를 포함하는 신호를 송신할 수도 있으며, 이에 대하여서는 도 4b를 참조하여 상세하게 설명하도록 한다.As described above, the vehicle 300 may determine whether the signal from the electronic device 101 is valid. In particular, even if the measurement accuracy of the transmission/reception time point is somewhat lower, since the validity is determined according to the generation and comparison of codes with respect to the past time points, accurate authentication may be possible. In addition, authentication may be possible even by transmitting a one-way communication signal. In addition, since the generated code is transmitted through an algorithm rather than a time stamp, manipulation by an unauthorized person is impossible. In the embodiment of FIG. 4A , the electronic device 101 may transmit a signal to the vehicle 300 in a state in which the signal from the vehicle 300 is not received. The vehicle 300 may at least constantly monitor whether a signal is received. Meanwhile, in another embodiment, the electronic device 101 may receive a signal from the vehicle and transmit a signal including a code in response to the reception of the signal. Meanwhile, in another embodiment, the electronic device 101 may receive a signal including a code from a vehicle, and when authentication is successful based on the code, in response to it, the electronic device 101 may transmit a signal including the code, This will be described in detail with reference to FIG. 4B.

도 4b는 다양한 실시예에 따른 전자 장치 및 차량의 동작을 설명하기 위한 흐름도를 도시한다.4B is a flowchart illustrating operations of an electronic device and a vehicle according to various embodiments of the present disclosure;

다양한 실시예에 따르면, 전자 장치(101)는, 421 동작에서, 차량(300)으로부터 제 1 코드를 포함하는 제 1 신호를 수신할 수 있다. 423 동작에서, 전자 장치(101)는, 제 1 신호의 수신에 기반하여, 제 1 신호 수신 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 도 3a 및 3b를 참조하여 설명한 바와 같이, 제 1 신호의 수신 시점을 기준으로 하는 복수 개의 과거의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성할 수 있으나, 더욱 상세하게 후술할 것으로 과거의 시점들, 수신 시점 및 미래의 시점들에 대응하는 복수 개의 비교용 코드들을 생성할 수도 있다. 예를 들어, 전자 장치(101)는, 차량(300)과 공유한 씨드 값과 복수 개의 시점들 각각을, 코드 생성 알고리즘에 적용함으로써 복수 개의 비교용 코드들을 생성할 수 있다.According to various embodiments, in operation 421 , the electronic device 101 may receive a first signal including the first code from the vehicle 300 . In operation 423 , the electronic device 101 may generate a plurality of comparison codes corresponding to each of the plurality of time points associated with the first signal reception time, based on the reception of the first signal. For example, as described with reference to FIGS. 3A and 3B , the electronic device 101 may generate a plurality of comparison codes corresponding to each of a plurality of past time points based on the reception time of the first signal. However, as will be described later in more detail, it is also possible to generate a plurality of comparison codes corresponding to past time points, reception time points, and future time points. For example, the electronic device 101 may generate a plurality of comparison codes by applying the seed value shared with the vehicle 300 and each of the plurality of time points to a code generation algorithm.

다양한 실시예에 따라서, 전자 장치(101)는, 425 동작에서, 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하는지 여부를 판단할 수 있다. 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하는 것으로 판단되면(425-예), 전자 장치(101)는 427 동작에서, 신호가 유효한 것으로 판단할 수 있다. 이후, 전자 장치(101)는, 429 동작에서, 제 2 코드를 생성할 수 있다. 전자 장치(101)는, 차량(300)과 공유한 씨드 값과 임의의 시점을 코드 생성 알고리즘에 적용함으로써 제 2 코드를 생성할 수 있다. 전자 장치(101)는, 431 동작에서, 제 2 코드를 포함하는 제 2 신호를 차량(300)으로 송신할 수 있다. 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하는 것으로 판단되지 않으면(425-아니오), 전자 장치(101)는, 433 동작에서, 신호가 유효하지 않은 것으로 판단할 수 있다. 이후, 차량(300)은 제 2 코드를 포함하는 제 2 신호의 수신에 기반하여, 제 2 신호 수신 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성할 수 있다. 예를 들어, 차량(300)은, 제 2 신호의 수신 시점을 기준으로 하는 복수 개의 과거의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성할 수 있으나, 더욱 상세하게 후술할 것으로 과거의 시점들, 수신 시점 및 미래의 시점들에 대응하는 복수 개의 비교용 코드들을 생성할 수도 있다. 예를 들어, 차량(300)은, 전자 장치(101)와 공유한 씨드 값과 복수 개의 시점들 각각을, 코드 생성 알고리즘에 적용함으로써 복수 개의 비교용 코드들을 생성할 수 있다. 차량(300)은, 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하는지 여부를 판단할 수 있다. 복수 개의 비교용 코드들 중, 제 2 신호에 포함된 코드가 존재하는 것으로 판단되면, 차량(300)은 신호가 유효한 것으로 판단할 수 있다. 복수 개의 비교용 코드들 중, 제 2 신호에 포함된 코드가 존재하는 것으로 판단되지 않으면, 차량(300)은 신호가 유효하지 않은 것으로 판단할 수 있다.According to various embodiments, in operation 425 , the electronic device 101 may determine whether a code included in a signal exists among a plurality of comparison codes. If it is determined that a code included in the signal exists among the plurality of comparison codes (425-Yes), the electronic device 101 may determine that the signal is valid in operation 427 . Thereafter, the electronic device 101 may generate the second code in operation 429 . The electronic device 101 may generate the second code by applying the seed value shared with the vehicle 300 and an arbitrary time point to the code generation algorithm. In operation 431 , the electronic device 101 may transmit a second signal including the second code to the vehicle 300 . Among the plurality of comparison codes, if it is not determined that a code included in the signal exists (425-No), the electronic device 101 may determine that the signal is invalid in operation 433 . Thereafter, the vehicle 300 may generate a plurality of comparison codes corresponding to each of the plurality of time points associated with the second signal reception time based on the reception of the second signal including the second code. For example, the vehicle 300 may generate a plurality of comparison codes corresponding to each of a plurality of past time points based on the reception time of the second signal, but will be described later in more detail. It is also possible to generate a plurality of codes for comparison corresponding to each other, a reception time point, and future time points. For example, the vehicle 300 may generate a plurality of comparison codes by applying a seed value shared with the electronic device 101 and each of a plurality of time points to a code generation algorithm. The vehicle 300 may determine whether a code included in a signal exists among a plurality of comparison codes. If it is determined that a code included in the second signal exists among the plurality of comparison codes, the vehicle 300 may determine that the signal is valid. If it is not determined that there is a code included in the second signal among the plurality of comparison codes, the vehicle 300 may determine that the signal is invalid.

도 5는 다양한 실시예에 따른 전자 장치 및 차량의 블록도를 도시한다.5 is a block diagram of an electronic device and a vehicle according to various embodiments of the present disclosure;

다양한 실시예에 따르면, 전자 장치(101)는, 프로세서(501), 통신 회로(502), 또는 메모리(503) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에 따르면, 차량(300)은, 프로세서(511), 통신 회로(512), 또는 메모리(513) 중 적어도 하나를 포함할 수 있다.According to various embodiments, the electronic device 101 may include at least one of a processor 501 , a communication circuit 502 , and a memory 503 . According to various embodiments, the vehicle 300 may include at least one of a processor 511 , a communication circuit 512 , and a memory 513 .

다양한 실시예에 따라서, 프로세서(501) 또는 프로세서(511) 중 적어도 하나는, CPU, 제어를 위한 제어프로그램이 저장된 롬(ROM) 및 외부로부터 입력되는 신호 또는 데이터를 기억하거나, 전자 장치(101)에서 수행되는 작업을 위한 기억영역으로 사용되는 램(RAM) 중 적어도 하나를 포함할 수 있다. CPU는 싱글 코어, 듀얼 코어, 트리플 코어, 또는 쿼드 코어를 포함할 수 있다. CPU, 롬 및 램은 내부버스(bus)를 통해 상호 연결될 수 있다. According to various embodiments, at least one of the processor 501 or the processor 511 stores a CPU, a ROM in which a control program for control is stored, and signals or data input from the outside, or the electronic device 101 . It may include at least one of RAM used as a storage area for a work performed in the . The CPU may include single core, dual core, triple core, or quad core. The CPU, ROM and RAM may be interconnected through an internal bus.

다양한 실시예에 따라서, 메모리(503) 또는 메모리(513) 중 적어도 하나는 상기의 롬 및 램을 모두 포함할 수 있으며, 더욱 상세하게 후술할 코드를 생성하기 위한 프로그램 또는 알고리즘, 씨드, 고유 코드 등의 정보를 저장할 수 있다. 메모리(503) 또는 메모리(513) 중 적어도 하나는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 하나로 구현될 수 있으며, 그 구현 형태에는 제한이 없다.According to various embodiments, at least one of the memory 503 or the memory 513 may include both the ROM and the RAM, and a program or algorithm for generating a code to be described in more detail later, a seed, a unique code, etc. information can be stored. At least one of the memory 503 and the memory 513 may be implemented as at least one of a volatile memory or a non-volatile memory, and there is no limitation in the implementation form.

다양한 실시예에 따라서, 통신 회로(502) 또는 통신 회로(512) 중 적어도 하나는 통신을 통하여 데이터를 송수신할 수 있다. 통신 회로(502) 또는 통신 회로(512)에서 수행되는 통신의 방식에는 제한이 없다. 예를 들어, 통신 회로(502) 또는 통신 회로(512)는, 일반적인 차량용 스마트 키에서 이용되는 RF(radio frequency) 방식 또는 LF(low frequency) 방식에 따라 데이터를 송수신할 수 있다. 통신 회로(502) 또는 통신 회로(512)는, 일반적인 차량용 스마트 키에서 이용되는 방식 이외에도 데이터를 송수신할 수 있는 통신 방식이라면 제한 없이 이용할 수 있다. 예를 들어, 통신 회로(502) 또는 통신 회로(512)는, 근거리 통신(예를 들어, 블루투스, NFC, Zigbee, UWB 등)뿐만 아니라, D2D 기반의 무선 통신(예를 들어, LTE 또는 5G에서의 D2D 통신)을 이용할 수도 있다.According to various embodiments, at least one of the communication circuit 502 and the communication circuit 512 may transmit/receive data through communication. There is no limitation on the manner of communication performed in the communication circuit 502 or the communication circuit 512 . For example, the communication circuit 502 or the communication circuit 512 may transmit/receive data according to a radio frequency (RF) method or a low frequency (LF) method used in a general vehicle smart key. The communication circuit 502 or the communication circuit 512 may be used without limitation as long as it is a communication method capable of transmitting and receiving data in addition to the method used in a general vehicle smart key. For example, the communication circuit 502 or the communication circuit 512 may be configured not only for short-range communication (eg, Bluetooth, NFC, Zigbee, UWB, etc.), but also for D2D-based wireless communication (eg, in LTE or 5G). of D2D communication) may be used.

다양한 실시예에 따라서, 프로세서(501) 및/또는 프로세서(511)는, 통신 회로(502) 및/또는 통신 회로(512)를 통하여, 외부 장치로부터, 제 1 코드를 포함하는 제 1 신호를 수신하고, 상기 제 1 신호의 수신에 기반하여, 상기 제 1 신호의 수신 시점인 제 1 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성하고, 상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하는 경우, 상기 제 1 신호가 유효한 것으로 판단하고, 상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하지 않는 경우, 상기 제 1 신호가 유효하지 않은 것으로 판단하도록 설정될 수 있다.According to various embodiments, the processor 501 and/or the processor 511 receives a first signal including a first code from an external device through the communication circuit 502 and/or the communication circuit 512 . and, based on the reception of the first signal, generate a plurality of comparison codes corresponding to each of a plurality of time points associated with a first time point, which is a reception time point of the first signal, and among the plurality of comparison codes, When the first code included in the first signal is present, it is determined that the first signal is valid, and the first code included in the first signal among the plurality of comparison codes does not exist , it may be set to determine that the first signal is invalid.

다양한 실시예에 따라서, 메모리(503) 및/또는 메모리(513)는, 씨드 값 및 상기 씨드 값과 시점과 연관된 정보를 이용하여 코드를 생성하기 위한 코드 생성 알고리즘을 저장할 수 있다. 프로세서(501) 및/또는 프로세서(511)는, 상기 복수 개의 비교용 코드들을 생성하는 동작의 적어도 일부로, 상기 씨드 값 및 상기 복수 개의 시점들 각각을, 상기 코드 생성 알고리즘에 적용함에 기반하여 상기 복수 개의 코드들 각각을 생성하도록 설정될 수 있다.According to various embodiments, the memory 503 and/or the memory 513 may store a seed value and a code generation algorithm for generating a code using information associated with the seed value and the time point. The processor 501 and/or the processor 511 is configured to, as at least part of the operation of generating the plurality of comparison codes, based on applying the seed value and each of the plurality of time points to the code generation algorithm. It can be set to generate each of the codes.

다양한 실시예에 따라서, 프로세서(501) 및/또는 프로세서(511)는, 상기 제 1 신호가 유효한 것으로 판단한 경우, 상기 씨드 값 및 제 2 시점을, 상기 코드 생성 알고리즘에 적용함에 기반하여 제 2 코드를 생성하고, 통신 회로(502) 및/또는 통신 회로(512)를 통하여, 상기 제 2 코드를 포함하는 제 2 신호를 상기 외부 장치로 송신하도록 더 설정될 수 있다.According to various embodiments, when it is determined that the first signal is valid, the processor 501 and/or the processor 511 applies the seed value and the second time point to the code generation algorithm to generate a second code. and transmit a second signal including the second code to the external device through the communication circuit 502 and/or the communication circuit 512 .

다양한 실시예에 따라서, 메모리(503) 및/또는 메모리(513)는, 일회용 암호를 생성하기 위한 제 1 씨드 값, 상기 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장할 수 있다. 프로세서(501) 및/또는 프로세서(511)는, 상기 복수 개의 비교용 코드들을 생성하는 동작의 적어도 일부로, 상기 제 1 씨드 값 및 상기 복수 개의 시점들 각각을 이용하여 복수 개의 제 1 OTP들을 생성하고, 상기 복수 개의 제 1 OTP들 각각 및 상기 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 복수 개의 제 1 서브 코드들을 생성하고, 상기 복수 개의 제 1 OTP들을 상기 문자 세트에 매핑하여 복수 개의 제 2 서브 코드들을 생성하고, 상기 복수 개의 제 1 서브 코드들 각각과, 상기 복수 개의 제 2 서브 코드들 각각을 이용하여, 상기 복수 개의 코드들 각각을 생성하도록 설정될 수 있다.According to various embodiments, memory 503 and/or memory 513 may store a first seed value for generating a one-time password, a first unique code assigned to the user, and a character set. The processor 501 and/or the processor 511 generates, as at least part of the operation of generating the plurality of comparison codes, a plurality of first OTPs using the first seed value and each of the plurality of time points; , by mapping each of the plurality of first OTPs and the operation result of the first unique code to the character set to generate a plurality of first sub codes, and mapping the plurality of first OTPs to the character set to create a plurality of The second sub-codes may be generated, and each of the plurality of codes may be generated using each of the plurality of first sub-codes and each of the plurality of second sub-codes.

다양한 실시예에 따라서, 상기 복수 개의 시점들은, 상기 제 1 시점 또는 상기 제 1 신호의 수신 시점 이전의 적어도 하나의 과거 시점 중 적어도 일부를 포함할 수 있다. 또는, 다양한 실시예에 따라서, 상기 복수 개의 시점들은, 상기 제 1 시점, 상기 제 1 신호의 수신 시점 이전의 적어도 하나의 과거 시점, 또는 상기 제 1 신호의 수신 시점 이후의 적어도 하나의 미래 시점 중 적어도 일부를 포함할 수 있다.According to various embodiments, the plurality of time points may include at least a part of the first time point or at least one past time point before the reception time of the first signal. Alternatively, according to various embodiments, the plurality of time points may be selected from among the first time point, at least one past time point before the reception time of the first signal, or at least one future time point after the reception time of the first signal It may include at least a portion.

도 6a는 다양한 실시예에 따른 전자 장치 및/또는 차량의 동작을 설명하기 위한 흐름도를 도시한다. 도 6a의 실시예는 도 6b 내지 6d를 참조하여 더욱 상세하게 설명하도록 한다. 도 6b 내지 6d는 다양한 실시예에 따른 차량 및/또는 전자 장치에 의하여 관리되는 시점들을 도시한다.6A is a flowchart illustrating an operation of an electronic device and/or a vehicle according to various embodiments of the present disclosure; The embodiment of FIG. 6A will be described in more detail with reference to FIGS. 6B to 6D. 6B to 6D illustrate viewpoints managed by a vehicle and/or an electronic device according to various embodiments.

다양한 실시예에 따르면, 전자 장치(101)는, 601 동작에서, 차량(300)으로부터 코드를 포함하는 신호를 수신할 수 있다. 한편, 도 6a의 실시예에 따른 동작 방법은, 차량(300)에 의하여 수행될 수도 있으며, 이 경우에는 차량(300)은 전자 장치(101)로부터 코드를 포함하는 신호를 수신할 수 있음을 당업자는 이해할 것이다. 603 동작에서, 전자 장치(101)는, 코드를 포함하는 신호의 수신에 기반하여, 신호 수신 시점의 전후 복수 개의 시점들에 대응하는 복수 개의 비교용 코드들을 생성할 수 있다. 예를 들어, 도 6b를 참조하면, 차량(300)은, 복수 개의 시점들(631,632,633,634,635,636,637)을 관리할 수 있다. 전자 장치(101)는, 복수 개의 시점들(641,642,643,644,645,646,647)을 관리할 수 있다. 전자 장치(101) 및 차량(300)은, 포함하는 클럭 발생기(예를 들어, LCO)에 기반하여 시점들을 관리할 수 있다. 예를 들어, 도 6b에서는, 전자 장치(101)의 시점들(641,642,643,644,645,646,647)과, 차량(300)의 시점들(631,632,633,634,635,636,637)이 동기화될 수 있다. 이 경우, 차량(300)이 제 3 시점(633)에 코드를 생성하여, 코드를 포함한 신호를 전자 장치(101)로 송신할 수 있다. 예를 들어, 신호의 송신 및/처리에 2개 단위의 시점이 소요됨을 상정하도록 한다. 전자 장치(101)는, 제 5 시점(645)에서 신호를 수신할 수 있다. 예를 들어, 전자 장치(101)는, 제 5 시점(645)을 기점으로 과거의 시점들(예를 들어, 641,642,643,644) 중 적어도 일부에 대응하는 코드들을 생성할 수 있다. 전자 장치(101)는, 제 3 시점(643)에 대응하는 코드를 생성하고, 생성한 코드가 신호에 포함된 코드와 동일함을 확인할 수 있다. 도 6b에서와 같이, 전자 장치(101) 및 차량(300)이 동기화된 경우라면 전자 장치(101)가 신호의 수신 시점을 기반으로 과거의 시점들에 대하여서만 코드를 생성하여도 인증에 문제가 없다.According to various embodiments, the electronic device 101 may receive a signal including a code from the vehicle 300 in operation 601 . Meanwhile, those skilled in the art know that the operation method according to the embodiment of FIG. 6A may be performed by the vehicle 300 , and in this case, the vehicle 300 may receive a signal including a code from the electronic device 101 . will understand In operation 603 , the electronic device 101 may generate a plurality of comparison codes corresponding to a plurality of time points before and after a signal reception time, based on reception of a signal including a code. For example, referring to FIG. 6B , the vehicle 300 may manage a plurality of viewpoints 631 , 632 , 633 , 634 , 635 , 636 and 637 . The electronic device 101 may manage a plurality of viewpoints 641 , 642 , 643 , 644 , 645 , 646 , and 647 . The electronic device 101 and the vehicle 300 may manage time points based on the included clock generator (eg, LCO). For example, in FIG. 6B , viewpoints 641,642,643,644,645,646,647 of the electronic device 101 and viewpoints 631,632,633,634,635,636,637 of the vehicle 300 may be synchronized. In this case, the vehicle 300 may generate a code at the third time point 633 and transmit a signal including the code to the electronic device 101 . For example, it is assumed that two units of time are required for signal transmission and/or processing. The electronic device 101 may receive a signal at a fifth time point 645 . For example, the electronic device 101 may generate codes corresponding to at least some of past time points (eg, 641 , 642 , 643 , 644 ) based on the fifth time point 645 . The electronic device 101 may generate a code corresponding to the third time point 643 and check that the generated code is the same as the code included in the signal. As shown in FIG. 6B , if the electronic device 101 and the vehicle 300 are synchronized, even if the electronic device 101 generates a code only for past time points based on the signal reception time, there is a problem in authentication. none.

한편, 도 6c를 참조하면, 전자 장치(101) 및 차량(300)은 동기화되지 않을 가능성도 있다. 예를 들어, 전자 장치(101) 및 차량(300)의 시점이 4개 단위의 시점의 차이가 날 수 있다. 예를 들어, 차량(300)이 관리하는 제 5 시점(635)이, 전자 장치(101)가 관리하는 제 1 시점(641)에 대응할 수 있다. 이 경우, 차량(300)이 제 3 시점(633)에 코드를 생성하여, 코드를 포함한 신호를 전자 장치(101)로 송신할 수 있다. 예를 들어, 신호의 송신 및/처리에 2개 단위의 시점이 소요됨을 상정하도록 한다. 전자 장치(101)는, 제 1 시점(641)에서 신호를 수신할 수 있다. 예를 들어, 전자 장치(101)는, 제 1 시점(641)을 기점으로 과거의 시점들에 대응하는 코드들을 생성하는 경우에는, 제 3 시점(633)에 대응하는 코드를 생성할 수 없다. 이 경우에는, 전자 장치(101)는 수신 시점인 제 1 시점(641)의 미래 시점인 제 3 시점(643)에 대응하는 코드를 생성하여야만, 수신된 신호에 포함된 코드를 인증할 수 있다. 이에 따라, 전자 장치(101) 및 차량(300)의 시계가 동기화되지 않을 가능성도 있으므로, 전자 장치(101)는 신호의 수신 시점의 과거 시점들뿐만 아니라, 수신 시점, 아울러 미래 시점에 대한 코드를 생성할 수도 있다.Meanwhile, referring to FIG. 6C , the electronic device 101 and the vehicle 300 may not be synchronized. For example, there may be a difference between the viewpoints of the electronic device 101 and the viewpoints of the vehicle 300 by 4 units. For example, a fifth viewpoint 635 managed by the vehicle 300 may correspond to a first viewpoint 641 managed by the electronic device 101 . In this case, the vehicle 300 may generate a code at the third time point 633 and transmit a signal including the code to the electronic device 101 . For example, it is assumed that two units of time are required for signal transmission and/or processing. The electronic device 101 may receive a signal at a first time point 641 . For example, if the electronic device 101 generates codes corresponding to time points in the past with the first time point 641 as a starting point, the electronic device 101 cannot generate a code corresponding to the third time point 633 . In this case, the electronic device 101 may authenticate the code included in the received signal only after generating a code corresponding to the third time point 643 which is a future time point of the first time point 641 which is the reception time point. Accordingly, since there is a possibility that the clocks of the electronic device 101 and the vehicle 300 may not be synchronized, the electronic device 101 generates codes for not only past times of the signal reception time, but also the reception time and future times. You can also create

한편, 도 6d를 참조하면, 전자 장치(101) 및 차량(300)은 동기화되지 않을 가능성도 있다. 예를 들어, 전자 장치(101) 및 차량(300)의 시점이 2개 단위의 시점의 차이가 날 수 있다. 예를 들어, 차량(300)이 관리하는 제 1 시점(631)이, 전자 장치(101)가 관리하는 제 3 시점(643)에 대응할 수 있다. 이 경우, 차량(300)이 제 3 시점(633)에 코드를 생성하여, 코드를 포함한 신호를 전자 장치(101)로 송신할 수 있다. 예를 들어, 신호의 송신 및/처리에 2개 단위의 시점이 소요됨을 상정하도록 한다. 전자 장치(101)는, 제 7 시점(647)에서 신호를 수신할 수 있다. 만약, 전자 장치(101)가 생성하는 코드의 개수가, 동기화 여부와 무관하게 4개로 설정된 경우에는 전자 장치(101)는, 제 7 시점(647), 제 6 시점(646), 제 5 시점(645), 및 제 4 시점(644) 각각에 대응하는 코드를 생성할 수 있다. 이에 따라, 전자 장치(101) 및 차량(300) 사이의 거리가, 미리 설정된 4개의 시점보다 작은 2개의 시점에 대응하는 거리인 경우에도, 전자 장치(101)는 인증 실패로 판단할 수 있다. 다양한 예시에서, 전자 장치(101)가 생성하는 코드의 개수는, 인증을 담보할 수 있는 거리에 대응하는 시간뿐만 아니라, 동기화되지 않은 경우의 시간 차이를 더 고려하여 설정될 수도 있다.Meanwhile, referring to FIG. 6D , the electronic device 101 and the vehicle 300 may not be synchronized. For example, there may be a difference between the viewpoints of the electronic device 101 and the viewpoints of the vehicle 300 in two units. For example, a first viewpoint 631 managed by the vehicle 300 may correspond to a third viewpoint 643 managed by the electronic device 101 . In this case, the vehicle 300 may generate a code at the third time point 633 and transmit a signal including the code to the electronic device 101 . For example, it is assumed that two units of time are required for signal transmission and/or processing. The electronic device 101 may receive a signal at a seventh time point 647 . If the number of codes generated by the electronic device 101 is set to four irrespective of whether or not synchronization is performed, the electronic device 101 performs the seventh time point 647 , the sixth time point 646 , and the fifth time point ( 645 ) and a code corresponding to each of the fourth time points 644 may be generated. Accordingly, even when the distance between the electronic device 101 and the vehicle 300 is a distance corresponding to two viewpoints that are smaller than the four preset viewpoints, the electronic device 101 may determine the authentication failure. In various examples, the number of codes generated by the electronic device 101 may be set in consideration of not only a time corresponding to a distance that can guarantee authentication, but also a time difference in the case of not being synchronized.

다양한 실시예에 따라서, 전자 장치(101)는 605 동작에서, 신호 수신 시점의 전후 복수 개의 시점들에 대응하는 복수 개의 비교용 코드들 중, 신호에 포함된 코드가 존재하는지 여부를 판단할 수 있다. 복수 개의 비교용 코드들 중 신호에 포함된 코드가 존재하는 경우(605-예), 전자 장치(101)는 607 동작에서 신호가 유효한 것으로 판단할 수 있다. 복수 개의 비교용 코드들 중 신호에 포함된 코드가 존재하지 않는 경우(605-아니오), 전자 장치(101)는 609 동작에서 신호가 유효하지 않은 것으로 판단할 수 있다According to various embodiments of the present disclosure, in operation 605 , the electronic device 101 may determine whether a code included in a signal exists among a plurality of comparison codes corresponding to a plurality of time points before and after a signal reception time. . When there is a code included in the signal among the plurality of comparison codes (605 - Yes), the electronic device 101 may determine that the signal is valid in operation 607 . If there is no code included in the signal among the plurality of comparison codes (605 - NO), the electronic device 101 may determine that the signal is invalid in operation 609 .

도 7은 다양한 실시예에 따른 도어락 시스템 및 전자 장치를 설명하기 위한 도면이다.7 is a view for explaining a door lock system and an electronic device according to various embodiments.

다양한 실시예에 따라서, 전자 장치(101)는, 도어락 시스템(701)과 통신을 수행할 수 있다. 도어락 시스템(701)은, 예를 들어 도 5의 차량(300)의 구성요소들(511,512,513) 중 적어도 일부를 포함할 수 있다. 도어락 시스템(701)은, 일정 거리(D) 내에서의 명령에 기반하여서는 도어 개방을 수행할 수 있으나, 일정 거리(D) 밖에서의 명령에 대하여서는 무시하도록 설정될 수 있다.According to various embodiments, the electronic device 101 may communicate with the door lock system 701 . The door lock system 701 may include, for example, at least some of the components 511 , 512 , and 513 of the vehicle 300 of FIG. 5 . The door lock system 701 may perform door opening based on a command within a predetermined distance D, but may be set to ignore a command outside the predetermined distance D.

예를 들어, 전자 장치(101)가 도어락 시스템(701)으로부터 일정 거리(D) 내로 진입하는 경우, 전자 장치(101)는 코드(711)를 포함하는 신호(712)를 송신할 수 있다. 상술한 바와 같이, 하나의 예에서 전자 장치(101)는, 도어락 시스템(701)으로부터의 신호 수신과 무관한 적어도 하나의 이벤트(예를 들어, 사용자 입력 수신)의 충족에 기반하여 신호를 송신할 수 있다. 다른 예에서, 전자 장치(101)는, 도어락 시스템(701)으로부터의 신호의 수신에 응답하여, 신호를 송신할 수 있다. 또 다른 예에서, 전자 장치(101)는, 도어락 시스템(701)으로부터의 신호에 포함된 코드에 기반하여 인증이 성공한 경우에, 신호를 송신할 수도 있다. 도어락 시스템(701)은, 신호(712)의 수신 시점과 연관된 복수 개의 시점들에 각각 대응하는 복수 개의 코드들(720)을 생성할 수 있다. 복수 개의 코드들(720)의 개수는, 예를 들어 거리(D)에 기반하여 설정될 수 있으나, 제한은 없다. 도어락 시스템(701)은, 복수 개의 코드들(720) 중, 신호(712)에 포함된 코드(711)가 존재하는 경우에, 도어 개방을 수행할 수 있다. 도어락 시스템(701)은, 복수 개의 코드들(720) 중, 신호(712)에 포함된 코드(711)가 존재하는 경우에, 도어 개방을 방지할 수 있다. 상술한 바에 따라서, 전자 장치(101)가 도어락 시스템(701)으로부터 미리 지정된 거리(D) 안에 위치하는 경우에만, 도어락 시스템(701)이 도어를 개방할 수 있다. 또한, 상술한 RSA에 의하여 도어락 시스템(701)이 도어를 개방하는 것이 방지될 수도 있다.For example, when the electronic device 101 enters within a predetermined distance D from the door lock system 701 , the electronic device 101 may transmit a signal 712 including the code 711 . As described above, in one example, the electronic device 101 transmits a signal based on the satisfaction of at least one event (eg, reception of a user input) unrelated to reception of a signal from the door lock system 701 . can In another example, the electronic device 101 may transmit a signal in response to receiving a signal from the door lock system 701 . In another example, the electronic device 101 may transmit a signal when authentication is successful based on a code included in the signal from the door lock system 701 . The door lock system 701 may generate a plurality of codes 720 respectively corresponding to a plurality of time points associated with the reception time of the signal 712 . The number of the plurality of codes 720 may be set, for example, based on the distance D, but there is no limitation. The door lock system 701 may perform door opening when the code 711 included in the signal 712 is present among the plurality of codes 720 . The door lock system 701 may prevent the door from being opened when there is a code 711 included in the signal 712 among the plurality of codes 720 . As described above, only when the electronic device 101 is located within a predetermined distance D from the door lock system 701 , the door lock system 701 may open the door. In addition, the door lock system 701 may be prevented from opening the door by the above-described RSA.

도 8은 다양한 실시예에 따른 선거 관리 시스템 및 전자 장치를 설명하기 위한 도면이다.8 is a diagram for describing an election management system and an electronic device according to various embodiments of the present disclosure;

다양한 실시예에 따라서, 전자 장치(101)는, 선거 관리 시스템(801)과 통신을 수행할 수 있다. 선거 관리 시스템(801)은, 예를 들어 도 5의 차량(300)의 구성요소들(511,512,513) 중 적어도 일부를 포함할 수 있다. 선거 관리 시스템(801)은, 일정 거리(D) 내에서의 생성된 투표 데이터가 유효한 것으로 판단할 수 있으나, 일정 거리(D) 밖에서의 생성된 투표 데이터에 대하여서는 무시하도록 설정될 수 있다.According to various embodiments, the electronic device 101 may communicate with the election management system 801 . The election management system 801 may include, for example, at least some of the components 511 , 512 , and 513 of the vehicle 300 of FIG. 5 . The election management system 801 may determine that the generated voting data within a certain distance (D) is valid, but may be set to ignore the generated voting data outside a certain distance (D).

예를 들어, 선거 관리 시스템(801)으로부터 일정 거리(D) 내에서, 전자 장치(101)는 코드(811a) 및 투표 데이터(811b)를 포함하는 신호(811)를 송신할 수 있다. 예를 들어, 전자 장치(101)는, 투표를 위한 UI(810)를 표시할 수 있으며, UI(810)를 통한 사용자 입력에 기반하여 투표 데이터(811b)를 생성할 수 있다. 선거 관리 시스템(801)은, 신호(811)의 수신 시점과 연관된 복수 개의 시점들에 각각 대응하는 복수 개의 코드들(820)을 생성할 수 있다. 복수 개의 코드들(820)의 개수는, 예를 들어 거리(D)에 기반하여 설정될 수 있으나, 제한은 없다. 선거 관리 시스템(801)은, 복수 개의 코드들(820) 중, 신호(811)에 포함된 코드(811a)가 존재하는 경우에, 투표 데이터(811b)가 유효한 것으로 판단할 수 있다. 한편, 더욱 상세하게 후술할 것으로, 다양한 실시예에 따른 전자 장치(101)는, 랜덤성이 보장되면서 동시에 유일성이 보장되는 코드(811a)를 생성할 수 있다. 이 경우, 선거 관리 시스템(801)은, 코드(811a)를 생성하는 전자 장치(101)가 일정한 거리(D) 내에 위치하는지 여부를 판단할 뿐만 아니라, 코드(811a)에 기반하여 사용자 인증도 수행할 수도 있다. 예를 들어, 씨드 값이 투표인단 개개인마다 부여될 수 있으며, 이에 따라 코드(811a)는 투표인단 개개인마다 상이할 수 있으며, 투표인 인증에 이용될 수 있다. 한편, 비밀 투표의 보장을 위하여, 선거 관리 시스템(801)은, 인증 수행 이후에는, 코드(811a) 및 데이터(811b)를 분리하여 관리할 수도 있다. 상술한 바에 따라서, RSA에 기반하여 선거 결과의 조작됨이 방지될 수 있다.For example, within a predetermined distance D from the election management system 801 , the electronic device 101 may transmit a signal 811 including a code 811a and voting data 811b. For example, the electronic device 101 may display a UI 810 for voting, and may generate voting data 811b based on a user input through the UI 810 . The election management system 801 may generate a plurality of codes 820 respectively corresponding to a plurality of time points associated with the reception time of the signal 811 . The number of the plurality of codes 820 may be set, for example, based on the distance D, but there is no limitation. The election management system 801 may determine that the voting data 811b is valid when there is a code 811a included in the signal 811 among the plurality of codes 820 . On the other hand, as will be described in more detail later, the electronic device 101 according to various embodiments may generate a code 811a with guaranteed randomness and guaranteed uniqueness at the same time. In this case, the election management system 801 not only determines whether the electronic device 101 generating the code 811a is located within a predetermined distance D, but also performs user authentication based on the code 811a. You may. For example, a seed value may be assigned to each individual voting group, and accordingly, the code 811a may be different for each individual voting group and may be used for voter authentication. On the other hand, to ensure secret voting, the election management system 801 may manage the code 811a and the data 811b separately after authentication is performed. As described above, manipulation of election results based on the RSA can be prevented.

도 9는 다양한 실시예에 따른 결제 장치 및 전자 장치를 설명하기 위한 도면이다.9 is a view for explaining a payment device and an electronic device according to various embodiments of the present disclosure;

다양한 실시예에 따라서, 전자 장치(101)는, 오프라인 상의 결제 장치(900)와 통신을 수행할 수 있다. 결제 장치(900)는, 예를 들어 도 5의 차량(300)의 구성요소들(511,512,513) 중 적어도 일부를 포함할 수 있다. 결제 장치(900)는, 일정 거리(D) 내에서의 생성된 결제 데이터가 유효한 것으로 판단할 수 있으나, 일정 거리(D) 밖에서의 생성된 결제 데이터에 대하여서는 무시하도록 설정될 수 있다.According to various embodiments, the electronic device 101 may communicate with the offline payment device 900 . The payment device 900 may include, for example, at least some of the components 511 , 512 , and 513 of the vehicle 300 of FIG. 5 . The payment device 900 may determine that the payment data generated within the predetermined distance D is valid, but may be set to ignore the payment data generated outside the predetermined distance D.

예를 들어, 전자 장치(101)는 결제를 위한 UI(910)를 표시할 수 있으며, UI(910)에는 승인 버튼(911) 및 거절 버튼(912)이 포함될 수 있다. 만약, 승인 버튼(911)이 선택된 경우에는, 전자 장치(101)는 결제 데이터(932b)를 생성할 수 있다. 결제 데이터(932b)는, 예를 들어 결제 대상과 연관된 정보, 가격 정보를 포함할 수 있으나, 포함되는 정보에는 제한이 없다. 전자 장치(101)는, 코드(932a)를 생성할 수 있다. 전자 장치(101)는, 코드(932a) 및 결제 데이터(932b)를 포함하는 신호(933)를 송신할 수 있다. 결제 장치(900)는, 신호(933)의 수신에 기반하여, 신호(933)의 수신 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 코드들(931)을 포함할 수 있다. 만약, 전자 장치(101)가 결제 장치(900)로부터 일정 거리(D) 이상 떨어진 경우에는, 코드들(931)에 전자 장치(101)가 생성한 코드(932a)가 포함되지 않을 수 있다. 이 경우, 결제 장치(900)는 결제 데이터(932b)를 처리하지 않도록 설정될 수 있다.For example, the electronic device 101 may display a UI 910 for payment, and the UI 910 may include an approval button 911 and a rejection button 912 . If the approval button 911 is selected, the electronic device 101 may generate payment data 932b. The payment data 932b may include, for example, information related to a payment target and price information, but there is no limitation on the information included. The electronic device 101 may generate a code 932a. The electronic device 101 may transmit a signal 933 including a code 932a and payment data 932b. Based on the reception of the signal 933 , the payment device 900 may include a plurality of codes 931 corresponding to each of a plurality of times associated with the reception time of the signal 933 . If the electronic device 101 is separated from the payment device 900 by a certain distance D or more, the codes 931 may not include the code 932a generated by the electronic device 101 . In this case, the payment device 900 may be set not to process the payment data 932b.

한편, 전자 장치(101)가 결제 장치(900)로부터 일정 거리(D) 이내에 위치한 상태에서, 전자 장치(101)는, 코드(942a) 및 결제 데이터(942b)를 생성할 수 있다. 전자 장치(101)는, 코드(942a) 및 결제 데이터(942b)를 포함하는 신호(943)를 송신할 수 있다. 결제 장치(900)는, 신호(943)의 수신에 기반하여, 신호(943)의 수신 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 코드들(941)을 포함할 수 있다. 결제 장치(900)는, 복수 개의 코드들(941) 중 신호(943)에 포함된 코드(942a)가 존재함을 확인할 수 있다. 이 경우, 결제 장치(900)는, 결제 데이터(942b)를 처리할 수 있다. 예를 들어, 결제 장치(900)는, 결제 데이터(942b)에 대응하는 결제를 승인하거나, 또는 결제 승인을 중앙 서버로 요청할 수도 있다. 이에 따라, 오프라인 환경에서의 보안이 담보된 결제가 수행될 수 있다. 특히, 기존의 NFC 결제의 극히 짧은 거리에서만 동작되는 단점이 보완될 수 있다. 또한, MST를 위하여 추가적인 코일이 전자 장치(101) 내에 배치될 것이 요구되는 단점이 보완될 수 있다. 아울러, 다양한 실시예에 따른 동작 방법은 통신 방식에 제한되지 않는다. 이에 따라, 전자 장치(101)에 이미 포함되어 있는 통신 회로를 이용할 수 있다.Meanwhile, in a state where the electronic device 101 is located within a predetermined distance D from the payment device 900 , the electronic device 101 may generate a code 942a and payment data 942b . The electronic device 101 may transmit a signal 943 including a code 942a and payment data 942b. Based on the reception of the signal 943 , the payment device 900 may include a plurality of codes 941 corresponding to each of a plurality of times associated with the reception time of the signal 943 . The payment device 900 may confirm that a code 942a included in the signal 943 among the plurality of codes 941 exists. In this case, the payment device 900 may process the payment data 942b. For example, the payment device 900 may approve a payment corresponding to the payment data 942b or request payment approval from the central server. Accordingly, payment with security guaranteed in an offline environment may be performed. In particular, the disadvantage of operating only in an extremely short distance of the existing NFC payment can be compensated. In addition, the disadvantage that an additional coil is required to be disposed in the electronic device 101 for MST can be compensated. In addition, the operating method according to various embodiments is not limited to the communication method. Accordingly, the communication circuit already included in the electronic device 101 may be used.

도 10a는 다양한 실시예에 따른 전자 장치의 내부 장치들 사이의 통신을 설명하기 위한 도면이다. 도 10a의 실시예는 도 10b를 참조하여 설명하도록 한다. 도 10b는 다양한 실시예에 따른 하나의 전자 장치 내의 복수 개의 내부 장치들의 동작을 설명하기 위한 도면이다.10A is a diagram for describing communication between internal devices of an electronic device according to various embodiments of the present disclosure; The embodiment of FIG. 10A will be described with reference to FIG. 10B. 10B is a diagram for describing operations of a plurality of internal devices in one electronic device according to various embodiments of the present disclosure;

다양한 실시예에 따라서, 전자 장치(1000)는, 제 1 내부 장치(1001) 및 제 2 내부 장치(1003)를 포함할 수 있다. 제 1 내부 장치(1001) 및 제 2 내부 장치(1002)는 GPIO, MIPI, I2C, SPI, UART 등과 같은 다양한 인터페이스를 통하여 데이터를 송수신할 수 있다. 제 1 내부 장치(1001)로부터의 데이터가 제 2 내부 장치(1002)에 의하여 이용될 수 있다. 하지만, 외부 장치(1010)가 해킹(1002)을 통하여 제 2 내부 장치(1002)에 접근할 수 있으며, 제 1 내부 장치(1001)로부터의 데이터를 변조하거나, 또는 다른 값을 제 2 내부 장치(1002)로 입력할 수도 있다. 도 10b를 참조하면, 1021 동작에서 제 1 내부 장치(1001)는, 검증을 위한 코드(1004a)를 생성할 수 있으며, 송신을 위한 데이터(1004b) 뿐만 아니라, 검증을 위한 코드(1004a)를 포함하는 신호(1003)를 제 2 내부 장치(1002)로 송신할 수 있다. 1023 동작에서, 제 2 내부 장치(1002)는, 코드(1004a)를 포함하는 신호(1003)를 수신할 수 있다. 제 2 내부 장치(1002)는, 신호(1003)를 수신한 경우에, 1025 동작에서, 신호(1003)의 수신 시점과 연관된 복수 개의 시점들 각각에 대응하는 코드들을 생성할 수 있다. 예를 들어, 코드들의 생성 개수는, 제 1 내부 장치(1001) 및 제 2 내부 장치(1002)의 물리적 거리에 기반하여 설정될 수도 있다. 제 2 내부 장치(1002)는, 1027 동작에서, 복수 개의 코드들 중, 신호(1003)에 포함된 코드(1004)가 존재하는지 여부를 판단할 수 있다. 만약, 복수 개의 코드들 중, 신호(1003)에 포함된 코드(1004a)가 존재하는 경우에는(1027-예), 1029 동작에서 제 2 내부 장치(1002)는 신호(1003)가 유효한 것으로 판단할 수 있다. 제 2 내부 장치(1002)는 데이터(1004b)를 처리할 수 있다. 만약, 복수 개의 코드들 중, 신호(1003)에 포함된 코드(1004a)가 존재하지 않는 경우에는(1027-아니오), 1031 동작에서 제 2 내부 장치(1002)는 신호(1003)가 유효하지 않은 것으로 판단할 수 있다. 제 2 내부 장치(1002)는 데이터(1004b)를 처리하지 않을 수 있다. 한편, 모든 데이터들에 대하여 검증을 위한 코드 생성 및/또는 비교를 수행하는 경우, 연산량이 증가할 수 있으므로, 전자 장치(1000)는, 보안이 요구되는 데이터에 대하여 도 10a 및 10b에서 설명한 동작 방법을 수행할 수도 있으나, 이는 예시적인 것으로 전체 데이터에 대하여 동작 방법이 수행될 수도 있다.According to various embodiments, the electronic device 1000 may include a first internal device 1001 and a second internal device 1003 . The first internal device 1001 and the second internal device 1002 may transmit/receive data through various interfaces such as GPIO, MIPI, I2C, SPI, and UART. Data from the first internal device 1001 may be used by the second internal device 1002 . However, the external device 1010 may access the second internal device 1002 through the hacking 1002, modulating data from the first internal device 1001, or using a different value to the second internal device ( 1002) can also be entered. Referring to FIG. 10B , in operation 1021 , the first internal device 1001 may generate a code 1004a for verification, including data 1004b for transmission as well as a code 1004a for verification. A signal 1003 may be transmitted to the second internal device 1002 . In operation 1023 , the second internal device 1002 may receive the signal 1003 including the code 1004a. When receiving the signal 1003 , the second internal device 1002 may generate codes corresponding to each of a plurality of time points associated with the reception time of the signal 1003 in operation 1025 . For example, the number of codes to be generated may be set based on a physical distance between the first internal device 1001 and the second internal device 1002 . In operation 1027 , the second internal device 1002 may determine whether a code 1004 included in the signal 1003 exists among a plurality of codes. If, among the plurality of codes, the code 1004a included in the signal 1003 exists (1027-Yes), in operation 1029, the second internal device 1002 determines that the signal 1003 is valid. can The second internal device 1002 may process the data 1004b. If, among the plurality of codes, the code 1004a included in the signal 1003 does not exist (1027 - NO), in operation 1031 , the second internal device 1002 determines that the signal 1003 is invalid. can be judged as The second internal device 1002 may not process the data 1004b. Meanwhile, when generating and/or comparing codes for verification is performed on all data, the amount of computation may increase, so that the electronic device 1000 operates the method described with reference to FIGS. 10A and 10B for data requiring security. may be performed, but this is exemplary and the operation method may be performed on all data.

도 11은 다양한 실시예에 따른 중앙 서버와 전자 장치들 사이의 통신을 설명하기 위한 도면이다. 도 11의 실시예는 도 12를 참조하여 설명하도록 한다. 도 12는 다양한 실시예에 따른 중앙 서버의 동작을 설명하기 위한 흐름도이다.11 is a diagram for describing communication between a central server and electronic devices according to various embodiments of the present disclosure; The embodiment of FIG. 11 will be described with reference to FIG. 12 . 12 is a flowchart illustrating an operation of a central server according to various embodiments of the present disclosure;

다양한 실시예에 따라서, 중앙 서버(1140)는, 복수 개의 전자 장치들(1111,1121,1131)와 데이터를 송수신할 수 있다. 예를 들어, 제 1 전자 장치(1111)는, 기지국(1112)을 통하여 무선 통신을 수행할 수 있다. 기지국(1112)은, 예를 들어 제 1 프록시(1114) 및 제 2 프록시(1113)를 통하여 중앙 서버(1140)와 통신을 수행할 수 있다. 예를 들어, 제 2 전자 장치(1121)는, 제 3 프록시(1122)를 통하여 중앙 서버(1140)와 통신을 수행할 수 있다. 이와 유사하게, 제 3 전자 장치(1131)와 중앙 서버(1140) 사이에는 복수 개의 중계 장치가 배치될 수 있다. 이에 따라, 제 1 전자 장치(1111), 제 2 전자 장치(1121), 및 제 3 전자 장치(1131)가 동시에 데이터를 송신한다 하더라도, 중앙 서버(1140)에 도달되는 시점은 통신 환경에 따라 상이할 수 있다. 예를 들어, 중앙 서버(1140)가 콘서트 예매와 같은 서비스를 제공하는 경우에, 제 1 전자 장치(1111)의 사용자가 가장 먼저 데이터를 발송한다 하더라도, 도달 시간에 따라 더 늦게 중앙 서버(1140)에 도착할 가능성이 있다. 예를 들어, 제 1 전자 장치(1111)가 데이터(1101)를 송신하는 시점(t1)이, 다른 시점들(t2, t3)보다 빠름에도 불구하고, 중앙 서버(1140)에 도달하는 시점이 가장 늦을 수도 있다.According to various embodiments, the central server 1140 may transmit/receive data to/from the plurality of electronic devices 1111 , 1121 , and 1131 . For example, the first electronic device 1111 may perform wireless communication through the base station 1112 . The base station 1112 may communicate with the central server 1140 through, for example, the first proxy 1114 and the second proxy 1113 . For example, the second electronic device 1121 may communicate with the central server 1140 through the third proxy 1122 . Similarly, a plurality of relay devices may be disposed between the third electronic device 1131 and the central server 1140 . Accordingly, even if the first electronic device 1111 , the second electronic device 1121 , and the third electronic device 1131 transmit data at the same time, the time point at which the central server 1140 is reached is different depending on the communication environment. can do. For example, when the central server 1140 provides a service such as a concert reservation, even if the user of the first electronic device 1111 transmits data first, the central server 1140 may arrive later according to the arrival time. is likely to arrive at For example, although the time t1 at which the first electronic device 1111 transmits the data 1101 is earlier than the other time points t2 and t3, the time at which the first electronic device 1111 reaches the central server 1140 is the most It may be late.

한편, 전자 장치들(1111,1121,1131)은 데이터들(1101b,1123b,1132b)의 생성 시점을 이용하여 코드들(1101a,1123a,1132a)을 생성할 수 있다. 전자 장치들(1111,1121,1131)은 데이터들(1101b,1123b,1132b) 및 코드들(1101a,1123a,1132a)을 포함하는 신호들(1101,1123,1132)을 중앙 서버(1140)로 송신할 수 있다.Meanwhile, the electronic devices 1111 , 1121 , and 1131 may generate the codes 1101a , 1123a , and 1132a using the generation time of the data 1101b , 1123b , and 1132b . The electronic devices 1111 , 1121 , and 1131 transmit signals 1101 , 1123 , 1132 including data 1101b , 1123b and 1132b and codes 1101a , 1123a and 1132a to the central server 1140 . can do.

다양한 실시예에 따라서, 중앙 서버(1140)는, 도 12에서와 같이, 1201 동작에서 각각이 코드를 포함하는 복수 개의 신호들을 수신할 수 있다. 중앙 서버(1140)는, 1203 동작에서, 코드에 기반하여, 복수 개의 신호들 각각의 실행 시점(또는, 생성 시점)을 확인할 수 있다. 예를 들어, 중앙 서버(1140)는, 신호의 수신 시점과 연관된 복수 개의 시점들에 대응하는 신호들을 생성할 수 있으며, 생성한 코드들 중 해당 코드에 대응하는 시점을 확인할 수 있다. 중앙 서버(1140)는, 1205 동작에서, 실행 시점에 대응하는 동작을 수행할 수 있다. 중앙 서버(1140)는, 신호들의 수신 시점이 아닌, 실행 시점(또는, 신호 생성 시점)에 기반하여, 전자 장치들(1111,1121,1131) 사이의 우선 순위를 결정할 수도 있다. 예를 들어, 중앙 서버(1140)는, 데이터의 수신 시점이 아닌, 특정 동작의 실행 시점(예를 들어, 데이터 송신 시점)을 기초로, 전자 장치(1111)에 높은 우선 순위를 부여할 수도 있다.According to various embodiments, as shown in FIG. 12 , the central server 1140 may receive a plurality of signals each including a code in operation 1201 . In operation 1203 , the central server 1140 may check the execution time (or generation time) of each of the plurality of signals based on the code. For example, the central server 1140 may generate signals corresponding to a plurality of time points associated with a signal reception time, and may identify a time point corresponding to the corresponding code among the generated codes. The central server 1140 may perform an operation corresponding to the execution time in operation 1205 . The central server 1140 may determine the priority among the electronic devices 1111 , 1121 , and 1131 based on an execution time (or a signal generation time) rather than a reception time of the signals. For example, the central server 1140 may give a high priority to the electronic device 1111 based on the execution time of a specific operation (eg, the data transmission time), not the data reception time. .

도 13은 본 발명의 다양한 실시예에 따른 유일 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.13 is a flowchart illustrating a method of generating a unique code according to various embodiments of the present invention.

도 13의 실시예에서, 전자 장치(101)는 유일 코드를 생성하는 전자 장치일 수 있으며, 외부 장치(200)는 유일 코드를 생성하고, 검증 요청된 유일 코드를 검증하는 전자 장치일 수 있다. 외부 장치(200)는 유일 코드를 이용하는 서비스를 관리하는 전자 장치일 수 있다. 예를 들어, 외부 장치(200)는, 예를 들어 상술한 차량, 도어락 시스템, 선거 관리 시스템, 결제 장치, 중앙 서버일 수 있으나 제한은 없다. 아울러, 도 13에서 외부 장치(200)가 코드 확인 요청을 수신하는 것과 같이 도시되어 있지만, 상술한 바와 같이 전자 장치(101)가 코드 확인 요청을 수신할 수도 있다.In the embodiment of FIG. 13 , the electronic device 101 may be an electronic device that generates a unique code, and the external device 200 may be an electronic device that generates a unique code and verifies the verification-requested unique code. The external device 200 may be an electronic device that manages a service using a unique code. For example, the external device 200 may be, for example, the above-described vehicle, a door lock system, an election management system, a payment device, or a central server, but is not limited thereto. In addition, although it is illustrated in FIG. 13 that the external device 200 receives the code check request, as described above, the electronic device 101 may also receive the code check request.

1310 동작에서, 전자 장치(101)는 외부 장치(200)와 제 1 고유 코드 및 제 1 씨드를 공유할 수 있다. 하나의 실시예에서, 외부 장치(200)는 전자 장치(101)를 사용하는 제 1 사용자를 시스템에 가입시키는 경우(또는, 어플리케이션 다운 로드하는 경우)에, 전자 장치(101)로 제 1 고유 코드 및 제 1 씨드를 송신할 수 있다. 또는, 외부 장치(200)는 제 1 고유 코드 및 제 1 씨드를 디스플레이할 수 있는 정보를 다른 전자 장치로 송신할 수도 있다. 예를 들어, 제 1 사용자는 전자 장치(101) 또는 다른 전자 장치를 통하여 외부 장치(200)로 가입을 요청할 수 있다. 외부 장치(200)는 가입 요청에 대응하여 제 1 사용자(또는, 어플리케이션)에게 제 1 고유 코드 및 제 1 씨드를 부여할 수 있다. 외부 장치(200)는 제 1 고유 코드를 전자 장치(101) 또는 다른 전자 장치로 송신할 수 있다. 외부 장치(200)는 아울러 제 1 사용자에게 제 1 씨드를 부여할 수 있다. 제 1 씨드는 시간 기반 일회용 암호 생성을 위하여 제 1 사용자에게 부여될 수 있다. 외부 장치(200)는 제 1 씨드를 전자 장치(101) 또는 다른 전자 장치로 송신할 수 있다. 하나의 실시예에서, 외부 장치(200)는 제 1 고유 코드 및 제 1 씨드를 포함하는 QR 코드 이미지를 전자 장치(101) 또는 다른 전자 장치로 송신할 수 있다. 제 1 사용자는 다른 전자 장치에서 표시되는 QR 코드를 전자 장치(101)로 촬영할 수 있으며, 이에 따라 전자 장치(101)는 제 1 고유 코드 및 제 1 씨드를 획득할 수 있다.In operation 1310 , the electronic device 101 may share the first unique code and the first seed with the external device 200 . In one embodiment, the external device 200 sends the first unique code to the electronic device 101 when a first user who uses the electronic device 101 joins the system (or downloads an application). and the first seed. Alternatively, the external device 200 may transmit the first unique code and information for displaying the first seed to another electronic device. For example, the first user may request a subscription to the external device 200 through the electronic device 101 or another electronic device. The external device 200 may provide a first unique code and a first seed to the first user (or application) in response to a subscription request. The external device 200 may transmit the first unique code to the electronic device 101 or another electronic device. The external device 200 may also grant the first seed to the first user. The first seed may be given to the first user for time-based one-time password generation. The external device 200 may transmit the first seed to the electronic device 101 or another electronic device. In one embodiment, the external device 200 may transmit a QR code image including the first unique code and the first seed to the electronic device 101 or another electronic device. The first user may photograph a QR code displayed on another electronic device with the electronic device 101 , and accordingly, the electronic device 101 may obtain a first unique code and a first seed.

1320 동작에서, 전자 장치(101)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP(one time password)를 생성할 수 있다. 즉, 전자 장치(101)는 제 1 시점에서, 제 1 시점에 대응하는 제 1 시간 정보 및 제 1 씨드를 이용하여 제 1 OTP를 생성할 수 있다. 아울러, 전자 장치(101)는 제 2 시점에서는, 제 2 시점에 대응하는 제 2 시간 정보 및 제 1 씨드를 이용하여 제 2 OTP를 생성할 수 있다. 전자 장치(101)는 시간의 흐름에 따라서 동적으로 OTP를 변경하여 생성할 수 있다.In operation 1320 , the electronic device 101 may generate a first one time password (OTP) using the first seed and the first time information. That is, at a first time point, the electronic device 101 may generate a first OTP using the first time information and the first seed corresponding to the first time point. In addition, at the second time point, the electronic device 101 may generate the second OTP using the second time information corresponding to the second time point and the first seed. The electronic device 101 may dynamically change and generate the OTP according to the passage of time.

1330 동작에서, 전자 장치(101)는 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 전자 장치(101)가 제 1 OTP 및 제 1 고유 코드를 이용하여 랜덤하면서도 유일한 제 1 코드를 생성하는 과정에 대하여서는 더욱 상세하게 후술하도록 한다. 제 1 코드는 제 1 OTP 및 제 1 고유 코드를 모두 이용하여 생성됨에 따라서, 제 1 OTP의 랜덤성 및 동적인 변경 가능성과 제 1 고유 코드의 유일성을 보장받을 수 있어, 랜덤하면서도 유일할 수 있다. 제 1 코드의 랜덤성 및 유일성에 대하여서도 더욱 상세하게 후술하도록 한다.In operation 1330, the electronic device 101 may generate a first code using the first OTP and the first unique code. A process in which the electronic device 101 generates a random and unique first code using the first OTP and the first unique code will be described later in more detail. Since the first code is generated using both the first OTP and the first unique code, the randomness and dynamic changeability of the first OTP and the uniqueness of the first unique code can be guaranteed, so it can be both random and unique . The randomness and uniqueness of the first code will also be described later in more detail.

1340 동작에서, 외부 장치(200)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 외부 장치(200)는 제 1 시점에서 제 1 시점에 대응하는 제 1 시간 정보와 제 1 씨드를 이용하여 전자 장치(101)가 생성한 것과 동일한 제 1 OTP를 생성할 수 있다. 외부 장치(200) 또한 제 2 시점에서 제 2 시점에 대응하는 제 2 시간 정보와 제 1 씨드를 이용하여 전자 장치(101)가 제 2 시점에서 생성한 것과 동일한 제 2 OTP를 생성할 수 있다. 즉, 외부 장치(200)도 OTP를 동적으로 변경하면서 생성할 수 있다. 한편, 상술한 바와 같이, 외부 장치(200)는 복수 개의 코드들을 생성할 수 있다.In operation 1340 , the external device 200 may generate a first OTP using the first seed and first time information. The external device 200 may generate the same first OTP as that generated by the electronic device 101 using the first time information and the first seed corresponding to the first time at the first time point. The external device 200 may also generate the same second OTP that the electronic device 101 generated at the second time point by using the first seed and second time information corresponding to the second time point at the second time point. That is, the external device 200 may also generate the OTP while dynamically changing it. Meanwhile, as described above, the external device 200 may generate a plurality of codes.

1350 동작에서, 외부 장치(200)는 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 외부 장치(200)가 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성하는 방식은 전자 장치(101)가 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성하는 방식과 동일할 수 있다. 이에 따라, 외부 장치(200)가 생성한 제 1 코드와 전자 장치(101)가 생성한 제 1 코드는 동일할 수 있다.In operation 1350 , the external device 200 may generate a first code using the first OTP and the first unique code. The method in which the external device 200 generates the first code using the first OTP and the first unique code is different from the method in which the electronic device 101 generates the first code using the first OTP and the first unique code. may be the same. Accordingly, the first code generated by the external device 200 and the first code generated by the electronic device 101 may be the same.

1360 동작에서, 외부 장치(200)는 코드 확인 요청을 수신할 수 있다. 외부 장치(200)는 전자 장치(101)부터 코드 확인 요청을 수신할 수 있다.In operation 1360 , the external device 200 may receive a code check request. The external device 200 may receive a code check request from the electronic device 101 .

1370 동작에서, 외부 장치(200)는 코드 확인 요청 내의 코드가 외부 장치(200)가 생성한 제 1 코드와 동일한지 여부를 판단할 수 있다. 상술한 바에서는, 외부 장치(200)가 복수 개의 코드들을 생성하고 제 1 코드와 동일한 코드가 있는지 여부를 판단할 수 있다. 코드 확인 요청 내의 코드가 외부 장치(200)가 생성한 제 1 코드와 동일한 경우에는, 1080 동작에서, 외부 장치(200)는 코드가 적합한 것으로 판단할 수 있다. 코드 확인 요청 내의 코드가 외부 장치(200)가 생성한 제 1 코드와 상이한 경우에는, 1390 동작에서, 외부 장치(200)는 코드가 부적합한 것으로 판단할 수 있다. 외부 장치(200)는 코드 적합 또는 부적합 여부에 따라, 사용자 로그인 또는 전자 상거래 결재 등의 추가 서비스를 수행 또는 미수행할 수도 있다.In operation 1370 , the external device 200 may determine whether the code in the code check request is the same as the first code generated by the external device 200 . As described above, the external device 200 may generate a plurality of codes and determine whether there is a code identical to the first code. If the code in the code check request is the same as the first code generated by the external device 200 , in operation 1080 , the external device 200 may determine that the code is appropriate. If the code in the code check request is different from the first code generated by the external device 200 , in operation 1390 , the external device 200 may determine that the code is inappropriate. The external device 200 may or may not perform additional services, such as user login or e-commerce payment, depending on whether the code is suitable or not.

도 14은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.14 is a flowchart illustrating a code generation method according to various embodiments of the present invention.

1410 동작에서, 전자 장치(101)는 제 1 고유 코드 및 사용자마다 상이한 제 1 씨드를 획득할 수 있다. 제 1 씨드는 제 1 사용자에게 외부 장치(200)에 의하여 부여된 것일 수 있다. 한편, 제 1 고유 코드는 ASCII 코드에 기초한 문자열로, 알파멧과 숫자와 특수 문자의 조합일 수 있다. 제 1 고유 코드는 미리 설정된 문자 세트의 원소로부터 선택된 코드일 수 있다. 예를 들어, 외부 장치(200)는 문자 세트로부터 유일한 코드를 생성하는 알고리즘을 이용하여 제 1 사용자를 위한 제 1 고유 코드를 생성하고, 이를 전자 장치(101)로 송신할 수 있다. 외부 장치(200)는 다른 사용자를 위하여 고유 코드를 생성할 수도 있으며, 사용자들 각각에 부여된 고유 코드는 상이할 수 있다.In operation 1410 , the electronic device 101 may obtain a first unique code and a different first seed for each user. The first seed may be provided to the first user by the external device 200 . Meanwhile, the first unique code is a character string based on an ASCII code, and may be a combination of an alphabet, a number, and a special character. The first unique code may be a code selected from elements of a preset character set. For example, the external device 200 may generate a first unique code for the first user using an algorithm for generating a unique code from a character set, and transmit it to the electronic device 101 . The external device 200 may generate a unique code for another user, and the unique code assigned to each user may be different.

1420 동작에서, 전자 장치(101)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 제 1 OTP는 예를 들어 숫자로 구성될 수 있다.In operation 1420 , the electronic device 101 may generate the first OTP using the first seed and the first time information. The first OTP may be composed of, for example, a number.

1430 동작에서, 전자 장치(101)는 제 1 고유 코드를 미리 설정된 문자 세트에 매핑하여 제 1 고유 코드에 대응하는 숫자 코드를 생성할 수 있다.In operation 1430 , the electronic device 101 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a preset character set.

예를 들어, 전자 장치(101)는 미리 설정된 문자 세트로 { '0', '1', '2', …, '9', ,'A', 'B', …, 'Z' }를 이용하는 경우를 상정하도록 한다. 아울러, 전자 장치(101)는 제 1 고유 코드로 "AX83Z0"를 획득한 것을 상정하도록 한다. 하나의 실시예에서, 전자 장치(101)는 제 1 고유 코드의 각 자리 문자가 문자 세트에서 몇 번째 인덱스인지를 확인함으로써, 제 1 고유 코드의 각 자리 문자를 숫자 코드로 변환할 수 있다. 예를 들어, 전자 장치(101)는 제 1 코드의 첫번째 자리 문자인 "A"가 문자 세트에서 11번째 인덱스인 것을 확인함으로써 "A"의 고유 코드를 "10"의 숫자 코드로 변환할 수 있다. 이는, 숫자 코드의 시작점이 0인 것으로부터 기인할 수 있다. 동일한 방식으로, 전자 장치(101)는 "X"가 문자 세트에서 34번째 인덱스인 것을 확인함으로써 "X"의 고유 코드를 "33"으로 변환할 수 있다. 전자 장치(101)는 제 1 고유 코드인 "AX83Z0"을 {10,33,8,3,35,0}의 숫자 코드로 변환할 수 있다.For example, the electronic device 101 may set { '0', '1', '2', ... , '9', ,'A', 'B', … , 'Z' } is assumed. In addition, it is assumed that the electronic device 101 obtains “AX83Z0” as the first unique code. In an embodiment, the electronic device 101 may convert each digit of the first unique code into a numeric code by checking an index of each digit of the first unique code in the character set. For example, the electronic device 101 may convert the unique code of “A” into a numeric code of “10” by confirming that “A”, which is the first digit of the first code, is the 11th index in the character set. . This may result from the starting point of the numeric code being zero. In the same manner, the electronic device 101 may convert the unique code of “X” to “33” by confirming that “X” is the 34th index in the character set. The electronic device 101 may convert the first unique code “AX83Z0” into a numeric code of {10,33,8,3,35,0}.

1440 동작에서, 전자 장치(101)는 제 1 OTP 및 숫자 코드를 합산할 수 있다. 예를 들어, 제 1 OTP가 "382901"인 경우에는, 제 1 OTP의 각 자리수를 변환된 숫자 코드의 각 자리수와 합산할 수 있다. 즉, 전자 장치(100)는 {10,33,8,3,35,0}의 숫자 코드를 {3,8,2,9,0,1}의 제 1 OTP와 합산할 수 있으며, {13,41,10,12,35,1}의 합산 결과를 획득할 수 있다. 한편, 합산 결과 중 문자 세트의 원소의 총 개수, 예를 들어 36개를 초과하는 경우에는, 전자 장치(101)는 해당 합산 결과를 문자 세트의 원소의 총 개수에 모드(mod) 연산을 한 결과로 치환할 수 있다. 이 경우에는, 전자 장치(101)는 "41"을 "41"에 36의 모드 연산을 수행한 결과인 "5"로 치환할 수 있다. 이에 따라, 전자 장치(101)는후술하도록 한다. {13,5,10,12,35,1}의 합산 결과를 획득할 수 있다. 본 발명의 다른 실시예에서는 합산 결과 생성시 오프셋을 적용할 수도 있다.In operation 1440, the electronic device 101 may sum the first OTP and the numeric code. For example, when the first OTP is “382901”, each digit of the first OTP may be summed with each digit of the converted numeric code. That is, the electronic device 100 may sum the numeric code of {10,33,8,3,35,0} with the first OTP of {3,8,2,9,0,1}, {13 ,41,10,12,35,1} can be obtained. On the other hand, when the total number of elements of the character set, for example, exceeds 36 among the summation results, the electronic device 101 performs a mod operation on the total number of elements in the character set for the result of the summation. can be replaced with In this case, the electronic device 101 may replace "41" with "5", which is a result of performing the mode operation of 36 on "41". Accordingly, the electronic device 101 will be described later. The sum of {13,5,10,12,35,1} can be obtained. In another embodiment of the present invention, an offset may be applied when generating the summation result.

1450 동작에서, 전자 장치(101)는 합산 결과를 문자 세트에 매핑하여 제 1 서브 코드를 생성할 수 있다. 예를 들어, 전자 장치(101)는 {13,5,10,12,35,1}의 각 숫자를 인덱스로 해석하여 이에 대응하는 문자를 문자 세트로부터 획득할 수 있다. 즉, 전자 장치(101)는 '13'의 인덱스에 대응하는 "D"를 제 1 서브 코드의 첫 번째 문자로 획득할 수 있다. 전자 장치(100)는 '5'의 인덱스에 대응하는 "5"를 제 1 서브 코드의 두 번째 문자로 획득할 수 있다. 상술한 방식에 따라서, 전자 장치(101)는 "D5ACY1"의 제 1 서브 코드를 획득할 수 있다.In operation 1450 , the electronic device 101 may generate a first sub-code by mapping the summation result to a character set. For example, the electronic device 101 may interpret each number of {13,5,10,12,35,1} as an index and obtain a corresponding character from the character set. That is, the electronic device 101 may obtain "D" corresponding to the index of '13' as the first character of the first subcode. The electronic device 100 may obtain "5" corresponding to the index of '5' as the second character of the first subcode. According to the above-described method, the electronic device 101 may obtain the first sub-code of “D5ACY1”.

1460 동작에서, 전자 장치(101)는 제 1 OTP를 문자 세트에 매핑하여 제 2 서브 코드를 생성할 수 있다. 예를 들어, 전자 장치(101)는 {3,8,2,9,0,1}의 제 1 OTP의 각 자리 숫자가 인덱스인 것으로 해석하여, 각 자리 숫자에 대응하는 제 2 서브 코드의 문자의 각 자리를 생성할 수 있다. 예를 들어, 전자 장치(101)는 '3'의 숫자에 대응하여 '3'의 문자를 획득할 수 있으며, '8'의 숫자에 대응하여 '8'의 문자를 획득할 수 있다. 이에 따라 전자 장치(101)는 "382901"의 제 2 서브 코드를 획득할 수 있다. 본 발명의 다른 실시예에서는 숫자의 각 자리마다 오프셋을 적용한 결과를 문자 세트에 매핑하여 제 2 서브 코드를 획득할 수도 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다.In operation 1460, the electronic device 101 may generate a second sub-code by mapping the first OTP to a character set. For example, the electronic device 101 interprets each digit of the first OTP of {3,8,2,9,0,1} as an index, and the character of the second subcode corresponding to each digit Each digit of can be created. For example, the electronic device 101 may obtain the character of '3' corresponding to the number of '3' and may obtain the character of '8' corresponding to the number of '8'. Accordingly, the electronic device 101 may acquire the second sub-code of “382901”. In another embodiment of the present invention, the result of applying an offset to each digit of a number may be mapped to a character set to obtain the second sub-code, which will be described in more detail later.

1470 동작에서, 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 포함하는 제 1 코드를 생성할 수 있다. 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 concatenate하여 예를 들어 "D5ACY1382901"의 제 1 코드를 생성할 수 있다. 상술한 바와 같이, 제 1 코드의 제 1 서브 코드인 "D5ACY1"은 동적이면서 랜덤하게 생성되는 OTP 및 고유 코드의 합산에 의하여 설정된 것으로, 동적이면서 랜덤성이 보장되면서, 고유 코드에 의한 유일성이 보장될 수 있다. 다만, 낮은 확률로 합산 결과가 동일한 코드가 발생할 수도 있으므로, 본 발명의 다양한 실시예에 따른 전자 장치(101)는 제 2 서브 코드를 concatenate함으로써 유일한 코드인 제 1 코드를 생성할 수 있다.In operation 1470, the electronic device 101 may generate a first code including the first sub-code and the second sub-code. The electronic device 101 may generate a first code of, for example, “D5ACY1382901” by concatenating the first sub-code and the second sub-code. As described above, "D5ACY1", which is the first sub-code of the first code, is set by the summation of dynamically and randomly generated OTPs and unique codes. Dynamic and randomness is guaranteed while uniqueness is guaranteed by the unique code. can be However, since codes having the same summing result may be generated with a low probability, the electronic device 101 according to various embodiments of the present invention may generate the first code, which is a unique code, by concatenating the second sub-code.

도 15는 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.15 is a flowchart illustrating a code generation method according to various embodiments of the present invention.

1510 동작에서, 전자 장치(101)는 제 1 고유 코드 및 사용자마다 상이한 제 1 씨드를 획득할 수 있다. 상술한 바와 같이, 전자 장치(101)는 외부 장치(200)로부터 제 1 고유 코드 및 제 1 씨드를 수신하거나 또는 다른 전자 장치에서 디스플레이되는 QR 코드를 촬영함으로써 제 1 고유 코드 및 제 1 씨드를 수신할 수 있다. 제 1 씨드는 서버가 제 1 사용자에게 부여한 OTP 생성을 위한 씨드일 수 있다.In operation 1510 , the electronic device 101 may obtain a first unique code and a different first seed for each user. As described above, the electronic device 101 receives the first unique code and the first seed from the external device 200 or receives the first unique code and the first seed by photographing a QR code displayed on another electronic device. can do. The first seed may be a seed for OTP generation granted by the server to the first user.

1520 동작에서, 전자 장치(101)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 1530 동작에서, 전자 장치(101)는 제 1 고유 코드를 문자 세트에 매핑하여 제 1 고유 코드에 대응하는 숫자 코드를 생성할 수 있다. 예를 들어, 도 3의 실시예에서와 유사하게, 전자 장치(101)는 "AX83Z0"의 제 1 고유 코드를 획득할 수 있으며, 제 1 시점에 제 1 시점에 대응하는 제 1 시간 정보 및 제 1 씨드를 이용하여 "382901"의 제 1 OTP를 생성할 수 있다. 전자 장치(101)는 미리 설정된 { '0', '1', '2', …, '9', ,'A', 'B', …, 'Z' }의 문자 세트에 제 1 고유 코드를 매핑하여 제 1 고유 코드인 "AX83Z0"을 {10,33,8,3,35,0}의 숫자 코드로 변환할 수 있다.In operation 1520 , the electronic device 101 may generate the first OTP by using the first seed and the first time information. In operation 1530 , the electronic device 101 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a character set. For example, similar to the embodiment of FIG. 3 , the electronic device 101 may obtain a first unique code of “AX83Z0”, and at a first time point, first time information corresponding to the first time point and the first time information A first OTP of “382901” may be generated using one seed. The electronic device 101 has preset { '0', '1', '2', ... , '9', ,'A', 'B', … , 'Z' } may be mapped to the first unique code to convert the first unique code "AX83Z0" into a numeric code of {10,33,8,3,35,0}.

1540 동작에서, 전자 장치(101)는 제 1 OTP 및 숫자 코드를 합산할 수 있다. 예를 들어, 제 1 OTP가 "382901"인 경우에는, 제 1 OTP의 각 자리수를 변환된 숫자 코드의 각 자리수와 합산할 수 있다. 즉, 전자 장치(100)는 {10,33,8,3,35,0}의 숫자 코드를 {3,8,2,9,0,1}의 제 1 OTP와 합산할 수 있으며, {13,41,10,12,35,1}의 합산 결과를 획득할 수 있다. 1550 동작에서, 전자 장치(101)는 상기 합산 결과에 오프셋을 적용할 수 있다. 전자 장치(101)는 오프셋을 예를 들어 18로 설정할 수 있다. 전자 장치(101)는 합산 결과의 매 자리 수의 숫자에 오프셋인 18을 합산할 수 있다. 아울러, 도 3과 유사하게 제 1 전자 장치는 오프셋 적용된 합산 결과에 문자 세트의 크기를 모드 연산한 결과를 획득할 수 있다. 이에 따라, 전자 장치(101)는 오프셋 적용된 합산 결과인 {31,23,28,30,17,19}를 획득할 수 있다.In operation 1540 , the electronic device 101 may sum the first OTP and the numeric code. For example, when the first OTP is “382901”, each digit of the first OTP may be summed with each digit of the converted numeric code. That is, the electronic device 100 may sum the numeric code of {10,33,8,3,35,0} with the first OTP of {3,8,2,9,0,1}, {13 ,41,10,12,35,1} can be obtained. In operation 1550 , the electronic device 101 may apply an offset to the summing result. The electronic device 101 may set the offset to, for example, 18. The electronic device 101 may add an offset of 18 to every digit of the summation result. In addition, similarly to FIG. 3 , the first electronic device may obtain a result of calculating the size of the character set on the summation result to which the offset is applied. Accordingly, the electronic device 101 may obtain {31,23,28,30,17,19}, which is the summing result to which the offset is applied.

1560 동작에서, 전자 장치(101)는 오프셋 적용된 합산 결과를 문자 세트에 매핑하여 제 1 서브 코드를 생성할 수 있다. 전자 장치(101)는 오프셋 적용된 합산 결과인 '31'을 문자 세트에서의 인덱스로 해석하여, 31번째 문자인 'V'를 획득할 수 있다. 전자 장치(101)는, '23', '28', '30', '17', '19'을 순차적으로 문자로 변환할 수 있으며, 이에 따라 "VNSUHJ"의 제 1 서브 코드를 생성할 수 있다.In operation 1560, the electronic device 101 may generate the first sub-code by mapping the offset-applied summing result to the character set. The electronic device 101 may interpret '31', which is the offset applied summing result, as an index in the character set, and obtain 'V', which is the 31st character. The electronic device 101 may sequentially convert '23', '28', '30', '17', and '19' into characters, thereby generating the first sub-code of "VNSUHJ". have.

1570 동작에서, 전자 장치(101)는 제 1 OTP에 오프셋을 적용할 수 있다. 이에 따라, {3,8,2,9,0,1}의 제 1 OTP의 각 숫자에 오프셋 18을 합산하여, {21,26,20,27,18}의 오프셋 적용된 제 1 OTP를 생성할 수 있다.In operation 1570 , the electronic device 101 may apply an offset to the first OTP. Accordingly, by adding the offset 18 to each number of the first OTP of {3,8,2,9,0,1}, the first OTP to which the offset of {21,26,20,27,18} is applied is generated. can

1580 동작에서, 전자 장치(101)는 오프셋 적용된 제 1 OTP를 문자 세트에 매핑하여 제 2 서브 코드를 생성할 수 있다. 즉, 전자 장치(101)는 오프셋 적용된 제 1 OTP의 {21,26,20,27,18}의 각 숫자를 문자 세트에서의 인덱스로 해석하여, 제 2 서브 코드를 생성할 수 있다. 예를 들어, 전자 장치(101)는 오프셋 적용된 제 1 OTP의 첫 번째 숫자인 '21'에 기초하여, 문자 세트에서의 21번째 문자인 'L'을 획득할 수 있다. 상술한 방식으로, 전자 장치(101)는 오프셋 적용된 제 1 OTP의 {21,26,20,27,18}으로부터 "LQKRIJ"의 제 2 서브 코드를 생성할 수 있다.In operation 1580 , the electronic device 101 may generate a second sub-code by mapping the offset-applied first OTP to a character set. That is, the electronic device 101 may interpret each number of {21,26,20,27,18} of the first OTP to which the offset is applied as an index in the character set to generate the second subcode. For example, the electronic device 101 may obtain 'L', which is the 21st character in the character set, based on '21', which is the first number of the first OTP to which the offset is applied. In the above-described manner, the electronic device 101 may generate the second sub-code of “LQKRIJ” from {21,26,20,27,18} of the first OTP to which the offset is applied.

1590 동작에서, 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 포함하는 제 1 코드를 생성할 수 있다. 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 concatenate하여 예를 들어 "D5ACY1LQKRIJ"의 제 1 코드를 생성할 수 있다. 상술한 바와 같이, 제 1 코드의 제 1 서브 코드인 "D5ACY1"은 동적이면서 랜덤하게 생성되는 OTP 및 고유 코드의 합산에 의하여 설정된 것으로, 동적이면서 랜덤성이 보장되면서, 고유 코드에 의한 유일성이 보장될 수 있다. 다만, 낮은 확률로 합산 결과가 동일한 코드가 발생할 수도 있으므로, 본 발명의 다양한 실시예에 따른 전자 장치(101)는 제 2 서브 코드를 concatenate함으로써 유일한 코드인 제 1 코드를 생성할 수 있다.In operation 1590, the electronic device 101 may generate a first code including the first sub-code and the second sub-code. The electronic device 101 may generate a first code of, for example, “D5ACY1LQKRIJ” by concatenating the first sub-code and the second sub-code. As described above, "D5ACY1", which is the first sub-code of the first code, is set by the summation of dynamically and randomly generated OTPs and unique codes. Dynamic and randomness is guaranteed while uniqueness is guaranteed by the unique code. can be However, since codes having the same summing result may be generated with a low probability, the electronic device 101 according to various embodiments of the present invention may generate the first code, which is a unique code, by concatenating the second sub-code.

하기에서는, 상술한 코드 생성 과정을 알고리즘을 통하여 설명하도록 한다.Hereinafter, the above-described code generation process will be described through an algorithm.

- 정의- Justice

-C : ASCII 코드로 표현되는 서로 다른 문자를 원소로 하는 문자집합-C : A character set whose elements are different characters expressed in ASCII codes.

주어진 문자집합을 C 라고 하고, C 는 ASCII 코드로 표현되는 서로다른 문자(알파벳 대,소문자, 특수문자, 숫자)로 구성된다. 예를 들면, C 가 숫자만으로 구성되었다면 C = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ }가 되며, 같은 숫자가 중복되지 않는다. 또한 숫자와 영문대문자로 구성된다면, C = { ‘0’, … ,’9’, ‘A’, … ‘Z’ }가 된다. 동일한 방법으로 주어진 문자집합 C 는 여러가지 형태로 구성될 수 있다. 또한, C 의 원소를 동일 집합내에서 셔플링(shuffling) 될 수 있다. 예를 들면, 숫자만으로 구성된 문자집합 C = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ } 가 셔플링 된다면 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 와 같이 될 수 있다.The given character set is called C, and C is composed of different characters (uppercase and lowercase letters, special characters, and numbers) expressed in ASCII codes. For example, if C consists of only numbers, then C = { '0', '1', '2', '3', '4', '5', '6', '7', '8', ' 9' }, and the same number is not duplicated. Also, if it consists of numbers and uppercase letters, C = { ‘0’, … ,’9’, ‘A’, … 'Z' }. A character set C given in the same way can be composed of various forms. Also, elements of C may be shuffled within the same set. For example, a character set consisting of only numbers C = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9 If ' } is shuffled then C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' } can be together

-S : 주어진 문자집합 C 의 원소개수-S : the number of elements in the given character set C

-C(n) : n 번째 C 의 원소 (0 <= n < C의 문자개)-C(n) : nth element of C (0 <= n < number of C characters)

C 의 n 번째 원소를 C(n) 이라고 정의하고 이 때, n 은 0 <= n < S 인 정수이다. 즉, n은 C 에 포함된 원소의 인덱스(index)를 의미한다. 숫자로만 구성된 문자집합 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 가 있다면, 0 <= n < 10 이고, C(0) = ‘8’, C(9) = ‘5’ 가 된다.Define the nth element of C as C(n), where n is an integer such that 0 <= n < S. That is, n means an index of an element included in C. If we have a digit-only character set C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' } , 0 <= n < 10, C(0) = '8', C(9) = '5'.

-IndexOf(c) : 주어진 문자 c 의 C 내 인덱스-IndexOf(c) : the index in C of the given character c

주어진 문자집합 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 일때, IndexOf(‘8’) = 0, IndexOf(‘5’) = 9 가 된다.Given character set C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' }, IndexOf( '8') = 0, IndexOf('5') = 9.

-U : C 에 포함된 문자로 구성된 임의 생성된 사용자 고유아이디를 나타내는 문자열-U : A string representing a randomly generated unique user ID composed of the characters contained in C

주어진 문자집합 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 일 때 U 는 ‘0382’, ‘7192’와 같이 표현된다. Given a character set C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' } then U is It is expressed as '0382', '7192'.

-U(n) : U 의 n 번째 문자 ( 0 <= n < U의 문자개수)-U(n) : nth character of U (0 <= n < number of characters in U)

주어진 U = ‘0382’ 일 때, n은 0 <= n < 4 인 정수이며, U(2) = ‘8’, U(3) = ‘2’ 가 된다.Given U = ‘0382’, n is an integer such that 0 <= n < 4, U(2) = ‘8’, U(3) = ‘2’.

-T : TOTP 코드-T : TOTP code

예를 들면, 랜덤한 6자리 TOTP 코드는 ‘839023’, ‘659921’ 이 된다.For example, the random 6-digit TOTP code becomes '839023' and '659921'.

-T(n) : TOTP 코드내 n 번째 위치한 숫자 (0 <= n < TOTP 자리수)-T(n) : nth position number in TOTP code (0 <= n < TOTP digit)

예를 들면, 생성된 TOTP 코드가 ‘839023’ 일 때, T(0) = 8, T(5) = 3 이 된다.For example, when the generated TOTP code is ‘839023’, T(0) = 8, T(5) = 3.

-N : 랜덤 코드의 길이 ( N >= 1 )-N : length of random code ( N >= 1 )

-R : 랜덤 코드-R : random code

-알고리즘-algorithm

프로그래밍언어 C++ 와 유사한 형태로 기술한다.It is described in a form similar to that of the programming language C++.

String generate_random_id ( C, U, N, T )String generate_random_id ( C, U, N, T )

{ {

string preId;string preId;

string postId; string postId;

int offset = 18; // 임의로 지정 int offset = 18; // arbitrarily

for (n = 0; n < N; n++)for (n = 0; n < N; n++)

{{

int d = numOf(T(n)); // T(n) ASCII 코드를 숫자로 변환, ‘3’ -> 3, ‘9’ -> 9 int d = numOf(T(n)); // Convert T(n) ASCII code to number, ‘3’ -> 3, ‘9’ -> 9

int x = IndexOf(U(n)); int x = IndexOf(U(n));

preId += C ( (d + x + offset) % S ); // 이전단계에 만들어진 문자에 append한다. preId += C ( (d + x + offset) % S ); // Append to the character created in the previous step.

postId += C ( T(n) + offset); postId += C ( T(n) + offset);

} }

return (preId + postId); // 만들어진 두개의 문자를 append해서 최종 R을 만든다. return (preId + postId); // Append the created two characters to make the final R.

}}

-시뮬레이션-simulation

만약,if,

N = 6,N = 6,

C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’} 이고,C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’} ,

S = 10 + 26 = 36S = 10 + 26 = 36

U = ‘AX83Z0’ 이고U = ‘AX83Z0’ and

T = ‘382901’ 라고 하면,If T = ‘382901’,

0 <= n < 36, (0 ... 35)0 <= n < 36, (0 ... 35)

IndexOf(U) = { 10, 33, 8, 3, 35, 0 } 이 되고,IndexOf(U) = { 10, 33, 8, 3, 35, 0 } becomes,

numOf (T) = { 3, 8, 2, 9, 0, 1 } 이 되고,numOf(T) = { 3, 8, 2, 9, 0, 1 } becomes,

각 자리에 대해 연산을 수행하면,If you perform an operation on each digit,

preId[0] = C ( ( 3 + 10 + 18 ) % 36 ) = C ( 31 % 36 ) = C ( 31 ) = 'V'preId[0] = C ( ( 3 + 10 + 18 ) % 36 ) = C ( 31 % 36 ) = C ( 31 ) = 'V'

110preId[1] = C ( ( 8 + 33 + 18 ) % 36 ) = C ( 59 % 36 ) = C ( 23 ) = 'N'110preId[1] = C ( ( 8 + 33 + 18 ) % 36 ) = C ( 59 % 36 ) = C ( 23 ) = 'N'

preId[2] = C ( ( 2 + 8 + 18 ) % 36 ) = C ( 28 % 36 ) = C ( 28 ) = 'S'preId[2] = C ( ( 2 + 8 + 18 ) % 36 ) = C ( 28 % 36 ) = C ( 28 ) = 'S'

preId[3] = C ( ( 9 + 3 + 18 ) % 36 ) = C ( 30 % 36 ) = C ( 30 ) = 'U'preId[3] = C ( ( 9 + 3 + 18 ) % 36 ) = C ( 30 % 36 ) = C ( 30 ) = 'U'

preId[4] = C ( ( 0 + 35 + 18 ) % 36 ) = C ( 53 % 36 ) = C ( 17 ) = 'H'preId[4] = C ( ( 0 + 35 + 18 ) % 36 ) = C ( 53 % 36 ) = C ( 17 ) = 'H'

preId[5] = C ( 1 + 0 + 18 ) % 36 ) = C ( 19 % 36 ) = C ( 19 ) = 'J'preId[5] = C ( 1 + 0 + 18 ) % 36 ) = C ( 19 % 36 ) = C ( 19 ) = 'J'

이고,ego,

postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'

postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'

postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'

postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'

postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'

postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'

이 되어,become this,

R = generate_random_id(C, U, N, T) 가 되고, R = ‘VNSUHJ LQKRIJ’ 가 나온다.R = generate_random_id(C, U, N, T) and R = ‘VNSUHJ LQKRIJ’.

-시뮬레이션2 - 같은 시점에 다른 아이디인 경우-Simulation 2 - In case of different IDs at the same time

위와 동일하게 N = 6, C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’}, S = 10 + 26 = 36 으로 설정한다.Same as above, N = 6, C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’}, set S = 10 + 26 = 36 .

대신 U = ‘B05EFA’ 이고, Instead, U = ‘B05EFA’,

위와 같은 T = ‘382901’가 나왔다고 하면,If T = ‘382901’ as above,

0 <= n < 36, (0 ... 35)0 <= n < 36, (0 ... 35)

IndexOf(U) = { 11, 0, 6, 14, 15, 10 } 이 되고,IndexOf(U) = { 11, 0, 6, 14, 15, 10 } becomes,

numOf(T) = { 3, 8, 2, 9, 0, 1 } 이 되고,numOf(T) = { 3, 8, 2, 9, 0, 1 } becomes,

각 자리에 대해 연산을 수행하면,If you perform an operation on each digit,

preId[0] = C ( ( 3 + 11 + 18 ) % 36 ) = C ( 32 % 36 ) = C ( 31 ) = 'W'preId[0] = C ( ( 3 + 11 + 18 ) % 36 ) = C ( 32 % 36 ) = C ( 31 ) = 'W'

133preId[1] = C ( ( 8 + 0 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'133preId[1] = C ( ( 8 + 0 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'

preId[2] = C ( ( 2 + 6 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'preId[2] = C ( ( 2 + 6 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'

preId[3] = C ( ( 9 + 14 + 18 ) % 36 ) = C ( 41 % 36 ) = C ( 5 ) = '5'preId[3] = C ( ( 9 + 14 + 18 ) % 36 ) = C ( 41 % 36 ) = C ( 5 ) = '5'

preId[4] = C ( ( 0 + 15 + 18 ) % 36 ) = C ( 33 % 36 ) = C ( 33 ) = 'X'preId[4] = C ( ( 0 + 15 + 18 ) % 36 ) = C ( 33 % 36 ) = C ( 33 ) = 'X'

preId[5] = C ( 1 + 10 + 18 ) % 36 ) = C ( 29 % 36 ) = C ( 29 ) = 'T'preId[5] = C ( 1 + 10 + 18 ) % 36 ) = C ( 29 % 36 ) = C ( 29 ) = 'T'

이고,ego,

postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'

postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'

postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'

postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'

postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'

postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'

이 되어,become this,

R = generate_random_id(C, U, N, T) 가 되고, R = ‘WQQ5XT LQKRIJ’ 가 나온다.R = generate_random_id(C, U, N, T) and R = ‘WQQ5XT LQKRIJ’.

따라서 같은 시점에 같은 OTP가 나와도 마다 다른 랜덤 코드는 상이한 결과를 가진다.Therefore, even if the same OTP occurs at the same time, different random codes have different results.

도 16은 본 발명의 다양한 실시예에 따른 오프셋 결정 과정을 설명하기 위한 흐름도를 도시한다.16 is a flowchart illustrating an offset determination process according to various embodiments of the present invention.

1610 동작에서, 전자 장치(101)는 모든 사용자에게 동일한 제 2 씨드를 획득할 수 있다. 여기에서, 제 2 씨드는 예를 들어 시간 기반 일회용 암호를 생성하기 위한 씨드값일 수 있으며, 제 1 씨드와는 상이할 수 있다. 1620 동작에서, 전자 장치(101)는 제 2 씨드 및 제 1 시간 정보에 기초하여 제 2 OTP를 생성할 수 있으며, 1630 동작에서 상기 제 2 OTP를 이용하여 도 4에서 이용할 오프셋을 결정할 수 있다. 예를 들어, 전자 장치(101)는 제 2 씨드를 이용하여 생성한 오프셋에 문자 세트의 원소의 개수에 대한 모드 연산의 결과 값으로 오프셋을 설정할 수 있다. 제 2 씨드는 제 1 사용자 뿐만 아니라 시스템에 가입된 사용자 모두에게 동일할 수 있으며, 이에 따라 제 1 시점에서 생성된 오프셋은 모든 사용자에게 동일할 수 있어, 생성된 코드의 유일성이 연속하여 보장될 수 있다.In operation 1610 , the electronic device 101 may obtain the same second seed for all users. Here, the second seed may be, for example, a seed value for generating a time-based one-time password, and may be different from the first seed. In operation 1620, the electronic device 101 may generate a second OTP based on the second seed and the first time information, and in operation 1630 may determine an offset to be used in FIG. 4 using the second OTP. For example, the electronic device 101 may set the offset as a result value of a mode operation on the number of elements in the character set to the offset generated using the second seed. The second seed may be the same not only for the first user but also for all users subscribed to the system, and accordingly, the offset generated at the first time point may be the same for all users, so that the uniqueness of the generated code can be continuously guaranteed. have.

도 17는 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.17 is a flowchart of a method for determining a character set according to various embodiments of the present disclosure;

1710 동작에서, 전자 장치(101)는 모든 사용자에게 동일한 제 2 씨드를 획득할 수 있다. 여기에서, 제 2 씨드는 예를 들어 시간 기반 일회용 암호를 생성하기 위한 씨드값일 수 있으며, 제 1 씨드와는 상이할 수 있다. In operation 1710, the electronic device 101 may obtain the same second seed for all users. Here, the second seed may be, for example, a seed value for generating a time-based one-time password, and may be different from the first seed.

1720 동작에서, 전자 장치(101)는 제 2 씨드 및 제 1 시간 정보를 이용하여 제 2 OTP 생성할 수 있다. 1730 동작에서, 전자 장치(101)는 제 2 OTP를 이용하여 문자 세트를 결정할 수 있다. 예를 들어, 전자 장치(101)는 기본 문자 세트를 최초 획득할 수 있으며, 기본 문자 세트를 제 2 OTP에 기초하여 변형함으로써 코드 생성에 이용할 문자 세트를 결정할 수 있다.In operation 1720, the electronic device 101 may generate a second OTP using the second seed and the first time information. In operation 1730, the electronic device 101 may determine a character set using the second OTP. For example, the electronic device 101 may initially acquire a basic character set, and may determine a character set to be used for code generation by transforming the basic character set based on the second OTP.

도 18은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.18 is a flowchart of a method for determining a character set according to various embodiments of the present disclosure;

1810 동작에서, 전자 장치(101)는 기본 문자 세트를 획득할 수 있다. 예를 들어, 전자 장치(101)는 { '0', '1', '2', …, '9' }의 기본 문자 세트를 획득할 수 있다. 기본 문자 세트의 원소의 개수는 10일 수 있다.In operation 1810 , the electronic device 101 may acquire a basic character set. For example, the electronic device 101 is { '0', '1', '2', ... , you can get the default character set of '9' }. The number of elements in the basic character set may be 10.

1820 동작에서, 전자 장치(101) 제 2 씨드 및 제 1 시간 정보를 이용하여 제 2 OTP 생성할 수 있다. 본 발명의 다양한 실시예에서는, 전자 장치(101)는 hOTP 알고리즘으로 제 2 OTP를 생성할 수도 있다. 예를 들어, 전자 장치(101)는 123456의 제 2 OTP를 생성한 것을 상정하도록 한다.In operation 1820, the electronic device 101 may generate a second OTP using the second seed and the first time information. In various embodiments of the present disclosure, the electronic device 101 may generate the second OTP using the hOTP algorithm. For example, it is assumed that the electronic device 101 generates the second OTP of 123456.

1830 동작에서, 전자 장치(101)는 제 2 OTP 및 문자 세트의 크기를 모드(mod) 연산하여, 연산 결과값을 획득할 수 있다. 1840 동작에서, 전자 장치(101)는 연산 결과값을 이용하여 기본 문자 세트의 두 개의 문자의 위치를 스와핑할 수 있다. 예를 들어, 전자 장치(101)는 123456에 대한 모드 연산 결과인 6을 획득할 수 있다. 전자 장치(101)는 6의 연산 결과를 문자 세트의 인덱스로 해석하여, 문자 세트의 6번째 문자를 0번째 문자와 스와핑할 수 있다.In operation 1830 , the electronic device 101 may perform a mod operation on the size of the second OTP and the character set to obtain an operation result value. In operation 1840 , the electronic device 101 may swap positions of two characters of the basic character set using the operation result value. For example, the electronic device 101 may obtain 6, which is a mode operation result for 123456. The electronic device 101 may interpret the operation result of 6 as an index of the character set, and may swap the 6th character of the character set with the 0th character.

1850 동작에서, 전자 장치(101)는 모든 문자에 대하여 순차적으로 스와핑을 수행하여 기본 문자 세트를 셔플링한 문자 세트를 획득할 수 있다. 예를 들어, 전자 장치(101)는 문자 세트의 1번째 문자에 대하여, OPT 생성, 모드 연산, 연산 결과 값을 인덱스로 해석하여 1번째 문자와 인덱스에 대응하는 문자와 스와핑을 수행하고, 상술한 과정을 2번째 문자 내지 9번째 문자에 대하여 모두 수행할 수 있다.In operation 1850, the electronic device 101 sequentially performs swapping on all characters to obtain a character set obtained by shuffling a basic character set. For example, the electronic device 101 interprets the OPT generation, mode operation, and operation result value as an index with respect to the first character of the character set, and performs swapping with the first character and the character corresponding to the index, as described above. The process may be performed for all of the second to ninth characters.

1860 동작에서, 전자 장치(101)는 셔플링한 문자 세트를 이용하여 제 1 코드를 생성할 수 있다.In operation 1860, the electronic device 101 may generate the first code using the shuffled character set.

상술한 바에 따라, 문자 집합은 동적으로 변경될 수 있으며, 씨드만 공유된다면 모든 사용자에 대하여 동일한 문자 집합이 생성될 수 있어, 상술한 바에서 생성된 코드의 유일성이 연속되어 보장될 수 있다.As described above, the character set can be dynamically changed, and if only the seed is shared, the same character set can be generated for all users, so that the uniqueness of the generated code can be continuously guaranteed as described above.

하기에서는, 상술한 문자 세트 셔플링 방법의 알고리즘을 설명하도록 한다.Hereinafter, the algorithm of the above-described character set shuffling method will be described.

1. 기본 문자집합 C = {‘0’, ‘1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’} 이라한다.1. Let the basic character set C = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'} .

2. Global Key를 설정하고 이를 OTP의 seed로 이용한다.2. Set the Global Key and use it as the seed of OTP.

3. 문자집합의 크기 S만큼 다음을 반복하여 랜덤한 문자집합을 만든다.3. Repeat the following as much as the size of the character set S to make a random character set.

1) C(n)의 자리를 변경하기 위해서, HOTP를 하나 만들고 집합크기로 Mod계산한다.1) To change the position of C(n), create one HOTP and calculate Mod with the set size.

2) HOTP는 123456이면, 문자집합 크기인 10으로 Mod계산하여 6을 얻어낸다.2) If HOTP is 123456, 6 is obtained by calculating Mod with the character set size of 10.

3) 얻어낸 6은 C의 인덱스를 의미하며 C[6]에 해당하는 숫자를 현재 바꾸려고 하는 C[0]번째 문자와 자리를 바꾼다. 즉 스와핑 한다.3) The obtained 6 means the index of C, and the number corresponding to C[6] is replaced with the C[0]th character that is currently being replaced. That is, swapping.

4) 1,2,3과정을 9번 더 반복하여 C[9]까지 수행한다.4) Repeat steps 1, 2, 3 9 more times until C[9].

5) 위 계산이 완료되면 셔플링된 문자집합이 나오고, 이 집합을 이용하여 랜덤아이디를 생성할 수 있다.5) When the above calculation is completed, a shuffled character set is displayed, and a random ID can be generated using this set.

시뮬레이션 - 문자집합 셔플링Simulation - Shuffling Character Sets

문자집합 C = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}이고, C의 크기S = 10, 0 <= n < 10이다. The character set C = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, the size of C is S = 10, 0 <= n < 10.

각 단계에서 생성되는 HOTP를 S로 모듈러 한 값을 O라 하고 Let O be the modular value of the HOTP generated in each step by S, and

O(0) = 1111 2222 % 10, O(0) = 1111 2222 % 10,

O(1) = 3333 4444 % 10, O(1) = 3333 4444 % 10,

O(2) = 5555 6666 % 10,O(2) = 5555 6666 % 10,

O(3) = 7777 8888 % 10,O(3) = 7777 8888 % 10,

O(4) = 9999 0000 % 10,O(4) = 9999 0000 % 10,

O(5) = 1111 2222 % 10,O(5) = 1111 2222 % 10,

O(6) = 3333 4444 % 10,O(6) = 3333 4444 % 10,

O(7) = 5555 6666 % 10,O(7) = 5555 6666 % 10,

O(8) = 7777 8888 % 10, O(8) = 7777 8888 % 10,

O(9) = 9999 0000 % 10 이라고 가정한다.Assume that O(9) = 9999 0000 % 10.

1) C[0] = 0 섞기1) C[0] = 0 shuffle

O[0] = 11112222 % 10 = 2 이므로, C[2]을 C[0]자리에 보내고 C[0]을 C[2]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 1, 0, 3, 4, 5, 6, 7, 8, 9} 가 된다.Since O[0] = 11112222 % 10 = 2, we swap by sending C[2] to C[0] and C[0] to C[2]. So the character set is C = {2, 1, 0, 3, 4, 5, 6, 7, 8, 9}.

2) C[1] = 1 섞기2) C[1] = 1 shuffle

O[1] = 33334444 % 10 = 4 이므로, C[4]을 C[1]자리에 보내고 C[1]을 C[4]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 4, 0, 3, 1, 5, 6, 7, 8, 9} 이 된다.Since O[1] = 33334444 % 10 = 4, we swap by sending C[4] to C[1] and C[1] to C[4]. So the character set is C = {2, 4, 0, 3, 1, 5, 6, 7, 8, 9}.

3) C[2] = 0 섞기3) C[2] = 0 shuffle

O[2] = 55556666 % 10 = 6 이므로, C[6]을 C[2]자리에 보내고 C[2]를 C[6]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 4, 6, 3, 1, 5, 0, 7, 8, 9}이 된다.Since O[2] = 55556666 % 10 = 6, we swap by sending C[6] to C[2] and C[2] to C[6]. So the character set is C = {2, 4, 6, 3, 1, 5, 0, 7, 8, 9}.

4) C[3] = 1 섞기4) C[3] = 1 shuffle

O[3] = 77778888 % 10 = 8 이므로, C[8]을 C[3]자리에 보내고 C[3]를 C[8]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 4, 6, 8, 1, 5, 0, 7, 3, 9}이 된다.Since O[3] = 77778888 % 10 = 8, we swap by sending C[8] to C[3] and C[3] to C[8]. So the character set is C = {2, 4, 6, 8, 1, 5, 0, 7, 3, 9}.

5) C[4] = 4 섞기5) C[4] = 4 shuffle

O[4] = 99990000 % 10 = 0 이므로, C[0]을 C[4]자리에 보내고 C[4]를 C[0]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 6, 8, 2, 5, 0, 7, 3, 9}이 된다.Since O[4] = 99990000 % 10 = 0, we swap by sending C[0] to C[4] and C[4] to C[0]. So the character set is C = {1, 4, 6, 8, 2, 5, 0, 7, 3, 9}.

6) C[5] = 5 섞기6) C[5] = 5 shuffle

O[5] = 1111 2222 % 10 = 2 이므로, C[2]을 C[5]자리에 보내고 C[5]를 C[2]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 5, 8, 2, 6, 0, 7, 3, 9}이 된다.Since O[5] = 1111 2222 % 10 = 2, we swap by sending C[2] to C[5] and C[5] to C[2]. So the character set is C = {1, 4, 5, 8, 2, 6, 0, 7, 3, 9}.

7) C[6] = 0 섞기7) C[6] = 0 shuffle

O[6] = 3333 4444 % 10 = 4 이므로, C[4]을 C[6]자리에 보내고 C[6]를 C[4]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 5, 8, 0, 6, 2, 7, 3, 9}이 된다.Since O[6] = 3333 4444 % 10 = 4, we swap by sending C[4] to C[6] and C[6] to C[4]. So the character set is C = {1, 4, 5, 8, 0, 6, 2, 7, 3, 9}.

8) C[7] = 7 섞기8) C[7] = 7 shuffle

O[7] = 5555 6666% 10 = 6 이므로, C[6]을 C[7]자리에 보내고 C[7]를 C[6]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}이 된다.O[7] = 5555 6666% 10 = 6, so we swap by sending C[6] to C[7] and sending C[7] to C[6]. So the character set is C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}.

9) C[8] = 3 섞기9) C[8] = 3 shuffle

O[8] = 7777 8888% 10 = 8 이므로, C[8]을 C[8]자리에 보내고 C[8]를 C[8]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}이 된다.O[8] = 7777 8888% 10 = 8, so we swap by sending C[8] to C[8] and C[8] to C[8]. So the character set is C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}.

10) C[9] = 9 섞기10) C[9] = 9 shuffle

O[9] = 9999 0000 % 10 = 0 이므로, C[0]을 C[9]자리에 보내고 C[9]를 C[0]에 보내서 스와핑한다. 따라서 문자집합은 C = {9, 4, 5, 8, 0, 6, 7, 2, 3, 1}이 된다.Since O[9] = 9999 0000 % 10 = 0, we swap by sending C[0] to C[9] and C[9] to C[0]. So the character set is C = {9, 4, 5, 8, 0, 6, 7, 2, 3, 1}.

따라서 셔플링된 문자집합은 C = {‘9’, ‘4’, ‘5’, ‘8’, ‘0’, ‘6’, ‘7’, ‘2’, ‘3’, ‘1’}이 되며, 이 셔플링 문자집합을 이용하여 랜덤 코드를 한번 생성하게 된다.So the shuffled character set is C = {'9', '4', '5', '8', '0', '6', '7', '2', '3', '1'} , and a random code is generated once using this shuffling character set.

본 발명의 실시 예들은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 발명의 그래픽 화면 갱신 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의해 구현될 수 있고, 상기 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 따라서, 본 발명은 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.It will be appreciated that the embodiments of the present invention can be realized in the form of hardware, software, or a combination of hardware and software. Any such software, for example, whether erasable or rewritable, may contain a volatile or non-volatile storage device such as a ROM, or a memory such as, for example, RAM, a memory chip, device or integrated circuit. , or, for example, an optically or magnetically recordable storage medium such as a CD, DVD, magnetic disk or magnetic tape, and at the same time may be stored in a machine (eg, computer) readable storage medium. The graphic screen updating method of the present invention may be implemented by a computer or a mobile terminal including a control unit and a memory, wherein the memory is a machine suitable for storing a program or programs including instructions for implementing embodiments of the present invention. It will be appreciated that this is an example of a readable storage medium. Accordingly, the present invention includes a program including code for implementing an apparatus or method described in any claim of the present specification, and a machine (computer, etc.) readable storage medium storing such a program. Further, such a program may be transmitted electronically over any medium, such as a communication signal transmitted over a wired or wireless connection, and the present invention suitably includes the equivalent thereof.

또한, 상기 장치는 유선 또는 무선으로 연결되는 프로그램 제공 장치로부터 상기 프로그램을 수신하여 저장할 수 있다. 상기 프로그램 제공 장치는 상기 그래픽 처리 장치가 기설정된 컨텐츠 보호 방법을 수행하도록 하는 지시들을 포함하는 프로그램, 컨텐츠 보호 방법에 필요한 정보 등을 저장하기 위한 메모리와, 상기 그래픽 처리 장치와의 유선 또는 무선 통신을 수행하기 위한 통신부와, 상기 그래픽 처리 장치의 요청 또는 자동으로 해당 프로그램을 상기 송수신 장치로 전송하는 제어부를 포함할 수 있다.Also, the device may receive and store the program from a program providing device connected by wire or wirelessly. The program providing device includes a program including instructions for the graphic processing device to perform a preset content protection method, a memory for storing information necessary for the content protection method, and wired or wireless communication with the graphic processing device. It may include a communication unit for performing the execution, and a control unit for automatically transmitting a corresponding program to the transceiver at a request of the graphic processing device or automatically.

Claims (18)

전자 장치에 있어서,
통신 회로, 및
프로세서를 포함하고, 상기 프로세서는:
상기 통신 회로를 통하여, 외부 장치로부터, 하나의 제 1 코드를 포함하는 제 1 신호를 수신하고,
상기 제 1 신호의 수신에 기반하여, 상기 제 1 신호의 수신 시점인 제 1 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성하고,
상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하는 경우, 상기 제 1 신호가 유효한 것으로 판단하고,
상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하지 않는 경우, 상기 제 1 신호가 유효하지 않은 것으로 판단하도록 설정되고,
상기 전자 장치는, 씨드 값 및 상기 씨드 값과 시점과 연관된 정보를 이용하여 코드를 생성하기 위한 코드 생성 알고리즘을 저장하는 메모리를 더 포함하고,
상기 프로세서는, 상기 복수 개의 비교용 코드들을 생성하는 동작의 적어도 일부로, 상기 씨드 값 및 상기 복수 개의 시점들 각각을, 상기 코드 생성 알고리즘에 적용함에 기반하여 상기 복수 개의 코드들 각각을 생성하도록 설정되고,
상기 프로세서는, 상기 제 1 신호가 유효한 것으로 판단한 경우, 상기 씨드 값 및 제 2 시점을, 상기 코드 생성 알고리즘에 적용함에 기반하여 제 2 코드를 생성하고, 상기 통신 회로를 통하여, 상기 제 2 코드를 포함하는 제 2 신호를 상기 외부 장치로 송신하도록 더 설정된 전자 장치.
In an electronic device,
communication circuitry, and
A processor, comprising:
receiving a first signal including one first code from an external device through the communication circuit;
Based on the reception of the first signal, generating a plurality of comparison codes corresponding to each of a plurality of time points associated with a first time point, which is a reception time point of the first signal,
If the first code included in the first signal among the plurality of comparison codes exists, it is determined that the first signal is valid,
If the first code included in the first signal among the plurality of comparison codes does not exist, it is set to determine that the first signal is invalid,
The electronic device further includes a memory for storing a seed value and a code generation algorithm for generating a code using information associated with the seed value and time,
the processor is configured to generate each of the plurality of codes based on applying the seed value and each of the plurality of time points to the code generation algorithm as at least part of the operation of generating the plurality of codes for comparison, ,
When it is determined that the first signal is valid, the processor generates a second code based on applying the seed value and the second time point to the code generation algorithm, and transmits the second code through the communication circuit. An electronic device further configured to transmit a second signal including a second signal to the external device.
삭제delete 삭제delete 제 1 항에 있어서,
상기 외부 장치는,
상기 제 2 신호의 수신에 기반하여, 상기 제 2 신호의 수신 시점과 연관된 다른 복수 개의 시점들 각각에 대응하는 다른 복수 개의 비교용 코드들을 생성하고,
상기 다른 복수 개의 비교용 코드들 중 상기 제 2 신호에 포함된 상기 제 2 코드가 존재하는 경우, 상기 제 2 신호가 유효한 것으로 판단하고,
상기 다른 복수 개의 비교용 코드들 중 상기 제 2 신호에 포함된 상기 제 2 코드가 존재하지 않는 경우, 상기 제 2 신호가 유효하지 않은 것으로 판단하도록 설정된 전자 장치.
The method of claim 1,
The external device is
Based on the reception of the second signal, generating a plurality of other comparison codes corresponding to each of a plurality of other times associated with the reception time of the second signal,
If the second code included in the second signal is present among the plurality of other comparison codes, it is determined that the second signal is valid,
an electronic device configured to determine that the second signal is invalid when the second code included in the second signal does not exist among the plurality of other comparison codes.
제 1 항에 있어서,
상기 메모리는, 일회용 암호를 생성하기 위한 상기 씨드 값, 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하고,
상기 프로세서는, 상기 복수 개의 비교용 코드들을 생성하는 동작의 적어도 일부로,
상기 씨드 값 및 상기 복수 개의 시점들 각각을 이용하여 복수 개의 제 1 OTP들을 생성하고,
상기 복수 개의 제 1 OTP들 각각 및 상기 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 복수 개의 제 1 서브 코드들을 생성하고,
상기 복수 개의 제 1 OTP들을 상기 문자 세트에 매핑하여 복수 개의 제 2 서브 코드들을 생성하고,
상기 복수 개의 제 1 서브 코드들 각각과, 상기 복수 개의 제 2 서브 코드들 각각을 이용하여, 상기 복수 개의 코드들 각각을 생성하도록 설정된 전자 장치.
The method of claim 1,
the memory stores the seed value for generating a one-time password, a first unique code given to a user, and a character set;
The processor, as at least part of the operation of generating the plurality of comparison codes,
generating a plurality of first OTPs using the seed value and each of the plurality of time points;
mapping each of the plurality of first OTPs and an operation result of the first unique code to the character set to generate a plurality of first sub codes,
generating a plurality of second sub codes by mapping the plurality of first OTPs to the character set;
An electronic device configured to generate each of the plurality of codes by using each of the plurality of first sub-codes and each of the plurality of second sub-codes.
삭제delete 삭제delete 제 1 항에 있어서,
상기 복수 개의 시점들은,
상기 제 1 시점 또는 상기 제 1 신호의 수신 시점 이전의 적어도 하나의 과거 시점 중 적어도 일부를 포함하는 전자 장치.
The method of claim 1,
The plurality of time points are
The electronic device including at least a part of the first time point or at least one past time point before the reception time of the first signal.
제 1 항에 있어서,
상기 복수 개의 시점들은,
상기 제 1 시점, 상기 제 1 신호의 수신 시점 이전의 적어도 하나의 과거 시점, 또는 상기 제 1 신호의 수신 시점 이후의 적어도 하나의 미래 시점 중 적어도 일부를 포함하는 전자 장치.
The method of claim 1,
The plurality of time points are
The electronic device including at least a part of the first time point, at least one past time point before the reception time of the first signal, or at least one future time point after the reception time of the first signal.
전자 장치의 동작 방법에 있어서,
외부 장치로부터, 하나의 제 1 코드를 포함하는 제 1 신호를 수신하는 동작;
상기 제 1 신호의 수신에 기반하여, 상기 제 1 신호의 수신 시점인 제 1 시점과 연관된 복수 개의 시점들 각각에 대응하는 복수 개의 비교용 코드들을 생성하는 동작;
상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하는 경우, 상기 제 1 신호가 유효한 것으로 판단하는 동작, 및
상기 복수 개의 비교용 코드들 중 상기 제 1 신호에 포함된 상기 제 1 코드가 존재하지 않는 경우, 상기 제 1 신호가 유효하지 않은 것으로 판단하는 동작
을 포함하고,
상기 복수 개의 비교용 코드들을 생성하는 동작은,
상기 전자 장치에 저장된 씨드 값 및 상기 복수 개의 시점들 각각을, 상기 씨드 값과 시점과 연관된 정보를 이용하여 코드를 생성하기 위한 코드 생성 알고리즘에 적용함에 기반하여 상기 복수 개의 코드들 각각을 생성하고,
상기 전자 장치의 동작 방법은,
상기 제 1 신호가 유효한 것으로 판단한 경우, 상기 씨드 값 및 제 2 시점을, 상기 코드 생성 알고리즘에 적용함에 기반하여 제 2 코드를 생성하는 동작, 및
상기 제 2 코드를 포함하는 제 2 신호를 상기 외부 장치로 송신하는 동작
을 더 포함하는 전자 장치의 동작 방법.
A method of operating an electronic device, comprising:
receiving, from an external device, a first signal including one first code;
generating, based on the reception of the first signal, a plurality of comparison codes corresponding to each of a plurality of time points associated with a first time point, which is a reception time point of the first signal;
determining that the first signal is valid when the first code included in the first signal among the plurality of comparison codes exists; and
Determining that the first signal is invalid when the first code included in the first signal among the plurality of comparison codes does not exist
including,
The operation of generating the plurality of comparison codes includes:
generating each of the plurality of codes based on applying the seed value stored in the electronic device and each of the plurality of time points to a code generation algorithm for generating a code using information associated with the seed value and the time point;
The method of operating the electronic device comprises:
generating a second code based on applying the seed value and the second time point to the code generation algorithm when it is determined that the first signal is valid; and
Transmitting a second signal including the second code to the external device
The method of operating an electronic device further comprising a.
삭제delete 삭제delete 제 10 항에 있어서,
상기 외부 장치는,
상기 제 2 신호의 수신에 기반하여, 상기 제 2 신호의 수신 시점과 연관된 다른 복수 개의 시점들 각각에 대응하는 다른 복수 개의 비교용 코드들을 생성하고,
상기 다른 복수 개의 비교용 코드들 중 상기 제 2 신호에 포함된 상기 제 2 코드가 존재하는 경우, 상기 제 2 신호가 유효한 것으로 판단하고,
상기 다른 복수 개의 비교용 코드들 중 상기 제 2 신호에 포함된 상기 제 2 코드가 존재하지 않는 경우, 상기 제 2 신호가 유효하지 않은 것으로 판단하도록 설정된 전자 장치의 동작 방법.
11. The method of claim 10,
The external device is
Based on the reception of the second signal, generating a plurality of other comparison codes corresponding to each of a plurality of other times associated with the reception time of the second signal,
If the second code included in the second signal is present among the plurality of other comparison codes, it is determined that the second signal is valid,
When the second code included in the second signal does not exist among the plurality of other comparison codes, the method of operating an electronic device is configured to determine that the second signal is invalid.
제 10 항에 있어서,
상기 복수 개의 비교용 코드들을 생성하는 동작은,
상기 씨드 값 및 상기 복수 개의 시점들 각각을 이용하여 복수 개의 제 1 OTP들을 생성하는 동작;
상기 복수 개의 제 1 OTP들 각각 및 상기 제 1 고유 코드의 연산 결과를 상기 전자 장치에 저장된 문자 세트에 매핑하여 복수 개의 제 1 서브 코드들을 생성하는 동작;
상기 복수 개의 제 1 OTP들을 상기 문자 세트에 매핑하여 복수 개의 제 2 서브 코드들을 생성하는 동작, 및
상기 복수 개의 제 1 서브 코드들 각각과, 상기 복수 개의 제 2 서브 코드들 각각을 이용하여, 상기 복수 개의 코드들 각각을 생성하는 동작
을 포함하는 전자 장치의 동작 방법.
11. The method of claim 10,
The operation of generating the plurality of comparison codes includes:
generating a plurality of first OTPs using the seed value and each of the plurality of time points;
generating a plurality of first sub-codes by mapping each of the plurality of first OTPs and an operation result of the first unique code to a character set stored in the electronic device;
mapping the plurality of first OTPs to the character set to generate a plurality of second sub codes; and
generating each of the plurality of codes by using each of the plurality of first sub-codes and each of the plurality of second sub-codes;
A method of operating an electronic device comprising a.
삭제delete 삭제delete 제 10 항에 있어서,
상기 복수 개의 시점들은,
상기 제 1 시점 또는 상기 제 1 신호의 수신 시점 이전의 적어도 하나의 과거 시점 중 적어도 일부를 포함하는 전자 장치의 동작 방법.
11. The method of claim 10,
The plurality of time points are
The method of operating an electronic device including at least a portion of the first time point or at least one past time point before the reception time of the first signal.
제 10 항에 있어서,
상기 복수 개의 시점들은,
상기 제 1 시점, 상기 제 1 신호의 수신 시점 이전의 적어도 하나의 과거 시점, 또는 상기 제 1 신호의 수신 시점 이후의 적어도 하나의 미래 시점 중 적어도 일부를 포함하는 전자 장치의 동작 방법.
11. The method of claim 10,
The plurality of time points are
The method of operating an electronic device including at least a part of the first time point, at least one past time point before the reception time of the first signal, or at least one future time point after the reception time of the first signal.
KR1020210036802A 2021-03-22 2021-03-22 Electronic device blocking rsa and method for operating thereof KR102319664B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210036802A KR102319664B1 (en) 2021-03-22 2021-03-22 Electronic device blocking rsa and method for operating thereof
KR1020210135727A KR102656577B1 (en) 2021-10-13 Electronic device blocking rsa and method for operating thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210036802A KR102319664B1 (en) 2021-03-22 2021-03-22 Electronic device blocking rsa and method for operating thereof

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210135727A Division KR102656577B1 (en) 2021-10-13 Electronic device blocking rsa and method for operating thereof

Publications (1)

Publication Number Publication Date
KR102319664B1 true KR102319664B1 (en) 2021-11-03

Family

ID=78505175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210036802A KR102319664B1 (en) 2021-03-22 2021-03-22 Electronic device blocking rsa and method for operating thereof

Country Status (1)

Country Link
KR (1) KR102319664B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460916B1 (en) * 2013-12-23 2014-11-12 주식회사 이노스코리아 User authentication method using one time password and user authentication device for using one time password
KR102227505B1 (en) * 2019-09-19 2021-03-16 주식회사 이노스코리아 Electronic device for connecting to access point providing wifi

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460916B1 (en) * 2013-12-23 2014-11-12 주식회사 이노스코리아 User authentication method using one time password and user authentication device for using one time password
KR102227505B1 (en) * 2019-09-19 2021-03-16 주식회사 이노스코리아 Electronic device for connecting to access point providing wifi

Also Published As

Publication number Publication date
KR20220131804A (en) 2022-09-29

Similar Documents

Publication Publication Date Title
US11937081B2 (en) Quorum-based secure authentication
KR101572111B1 (en) Electronic device and method for generating random and unique code
US11115403B2 (en) Multi-level user device authentication system for internet of things (IOT)
JP5764203B2 (en) Password safe input system using password key movement value and password safe input method
US9467293B1 (en) Generating authentication codes associated with devices
US20170236350A1 (en) Electronic door lock system
KR102651659B1 (en) Method and device for verifying authorization of electronic device
CN106952378A (en) Method for unlocking and device, electronic lock
JPS63139440A (en) Key management system for public communication
CN101711471A (en) Security manager device and method for providing network authentication information
CN113223210B (en) Offline control method and device for electronic lock and terminal equipment
KR102236656B1 (en) Secured communication device providing secured connection having multiple functions and method for operating thereof
KR102227505B1 (en) Electronic device for connecting to access point providing wifi
CN106063188B (en) Certification and/or identification method in a communication network
CN109064599A (en) Purview certification method and device
CN109559415A (en) A kind of intelligent door lock control method and intelligent door lock
CN117411913B (en) Secure interaction method of cloud platform and health application based on power transformation
KR101599055B1 (en) a locking control apparatus using a password
KR102319664B1 (en) Electronic device blocking rsa and method for operating thereof
CN105844740A (en) Novel remote-sensing control method and apparatus
KR102656577B1 (en) Electronic device blocking rsa and method for operating thereof
CN111818376A (en) Password setting method, smart television, electronic equipment and readable storage medium
CN109272310A (en) Two-dimensional code generation method and device and electronic equipment
US9462467B2 (en) Secure processing system for use with a portable communication device
CN113225178A (en) Module-based dynamic password

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
A107 Divisional application of patent
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant