WO2017003243A1 - 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법 - Google Patents

랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
WO2017003243A1
WO2017003243A1 PCT/KR2016/007093 KR2016007093W WO2017003243A1 WO 2017003243 A1 WO2017003243 A1 WO 2017003243A1 KR 2016007093 W KR2016007093 W KR 2016007093W WO 2017003243 A1 WO2017003243 A1 WO 2017003243A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
electronic device
otp
character set
generating
Prior art date
Application number
PCT/KR2016/007093
Other languages
English (en)
French (fr)
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 주식회사 이노스코리아
Publication of WO2017003243A1 publication Critical patent/WO2017003243A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords

Definitions

  • the present invention relates to an electronic device for generating a random and unique code and a control method thereof, and more particularly to an electronic device for generating a random and unique code using a time-based one time password and a control method thereof. It is about.
  • All computer application systems including the operating system can uniquely generate IDs and assign them to each user in order to distinguish the accessing users.
  • IDs can be easily exposed or leaked, and in order to compensate for this, users can easily create passwords that can be memorized and map them with IDs to manage them. Accordingly, security may be increased when a password is used together when the user's ID is exposed.
  • the user generally sets a simple password such as '12345678' that is easy to remember. Accordingly, there is a vulnerability that can be easily inferred by others or hackers. Even if a complex password (e.g. aB3Pe # 28dwqP) is set, the hacker can easily steal the username and password using advanced hacking techniques such as key loggers. To compensate for this, the system requires the user to periodically change complex passwords (of a certain length, mixed case of letters, special characters, numbers). In reality, it is very difficult for a user to remember such a complicated password, and a real user writes down his ID and password for each system.
  • a complex password e.g. aB3Pe # 28dwqP
  • the classification of users based on simple ID / password only has limitations due to the development of hacking technology, and only the information (ID / password) that the user remembers and only the user (eg, One-time password generator, OTP token, security card, etc.) are used together, and this user authentication method is called two-factor authentication.
  • the user may use the ID / password that the user knows (remembers) and what the user possesses (eg, OTP token, security card, etc.). That is, since authentication is performed using an ID, a password that the user knows (Knowledge Factor), and a thing that the user possesses (Possession Factor), it is called 2-factor authentication. Furthermore, the use of several factors, especially user biometric information (fingerprint recognition, iris recognition, voice recognition, etc.), for user authentication is called multi-factor authentication.
  • a one-time code is a string of ASCII codes, alphanumeric, ⁇ '0',..., '9', 'A',..., 'Z', 'a',..., 'z' ⁇ and special It consists of a combination of displayable ASCII characters ( ⁇ '!', '@',... ⁇ ). This does not mean a real user ID registered in the system, but a randomly generated ID of a certain length, which means a string consisting of characters contained in a given character set.
  • the random IDs assigned to the user are 'A012ZE', 'KABFZE', '019D3F',... Becomes
  • TOTP (RFC6238) is used to generate such codes periodically with different character combinations, and unique and random codes can be generated by using each generated TOTP digit as an index of a given character set.
  • OTP has the probability that the same result is obtained when algorithmically uses different SEED at the same time. In other words, there is a probability of collision. After all, only the TOTP code cannot be used as an ID because it does not satisfy the uniqueness of ID at the same time.
  • the conventional user classification technique operates based on a method in which an ID and a password are fixed, thereby causing a problem of exposing a user ID and a password.
  • the present invention has been made to solve the above-described problem, various embodiments of the present invention can provide an electronic device and method for generating a random and unique code.
  • a method of controlling an electronic device may include: storing a first seed, a first unique code assigned to a first user, and a character set for generating a one time password; Generating a first one time password (OTP) using the first seed; Generating a first sub code by mapping an operation result of the first OTP and a first unique code to the character set; Generating a second sub code by mapping the first OTP to the character set; Generating a code using the first sub code and the second sub code; And transmitting the generated code to another electronic device through the communication module.
  • OTP one time password
  • a control method of an electronic device that performs authentication may include receiving a first code from another electronic device; Storing a first seed, a first unique code assigned to the first user, and a character set for generating a one time password; Generating a first one time password (OTP) using the first seed; Generating a first sub code by mapping an operation result of the first OTP and a first unique code to the character set; Generating a second sub code by mapping the first OTP to the character set; Generating a second code using the first sub code and the second sub code; Performing authentication if the second code matches the first code received through the communication module; And performing an authentication set not to perform authentication if the second code and the first code received through the communication module do not match.
  • OTP one time password
  • an electronic device may include a communication module; A memory for storing a first seed for generating a one time password, a first unique code assigned to the first user, and a character set; And a processor, wherein the processor is configured to generate a first one time password (OTP) using the first seed, and to map an operation result of the first OTP and the first unique code to the character set.
  • OTP one time password
  • Generate a sub code map the first OTP to the character set to generate a second sub code, generate a code using the first sub code and the second sub code, and generate the code It may be set to transmit to another electronic device through a communication module.
  • Generate a sub code generate a second sub code by mapping the first OTP to the character set, generate a second code using the first sub code and the second sub code, and generate the second code
  • authentication may be performed, and when the second code and the first code received through the communication module do not coincide, the authentication may not be performed.
  • an electronic device and a method for generating a random and unique code may be provided.
  • the generated random and unique code can be used in a variety of technical fields, such as IDs to identify users in the system, input codes for electronic commerce, identification codes for money substitutes such as cultural gift certificates.
  • the electronic device and the method according to various embodiments of the present disclosure may dynamically generate a random and unique code over time, thereby significantly reducing the possibility of the code leaking.
  • FIG. 1 is a flowchart illustrating a unique code generation method according to various embodiments of the present disclosure.
  • FIG. 2 is a block diagram of an electronic device that generates a code according to various embodiments of the present disclosure.
  • FIG. 3 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
  • FIG. 5 is a flowchart illustrating an offset determination process according to various embodiments of the present disclosure.
  • FIG. 6 is a flowchart illustrating a character set determination method according to various embodiments of the present disclosure.
  • FIG. 8 is a block diagram of a smart card and a card reader according to various embodiments of the present invention.
  • FIG. 9 is a flowchart illustrating an operation of a smart card and a reader according to various embodiments of the present disclosure.
  • FIG. 10 is a flowchart illustrating an operation of an electronic device and an opening / closing system according to various embodiments of the present disclosure.
  • FIG. 11 is a conceptual diagram illustrating a multi-factor authentication system according to various embodiments of the present disclosure.
  • FIG. 12 is a conceptual diagram illustrating an authentication process by a smart card according to various embodiments of the present disclosure.
  • FIG. 13 is a conceptual diagram illustrating a system login process according to various embodiments of the present disclosure.
  • FIG. 14 is a conceptual diagram illustrating an operation of an electronic device in an IoT environment according to various embodiments of the present disclosure.
  • FIG. 1 is a flowchart illustrating a unique code generation method according to various embodiments of the present disclosure.
  • the first electronic device 100 may be an electronic device that generates a unique code
  • the server 200 may be an electronic device that generates a unique code and verifies a unique code requested for verification.
  • the server 200 may be an electronic device that manages a service using a unique code.
  • the server 200 is an electronic device that manages a web service and manages a user ID and login information corresponding thereto.
  • the first electronic device 100 may share the first unique code and the first seed with the server 200.
  • the server 200 transmits the first unique code and the first seed to the first electronic device 100 when subscribing the first user using the first electronic device 100 to the system. can do.
  • the server 200 may transmit information capable of displaying the first unique code and the first seed to another electronic device.
  • the first user may request subscription to the server 200 through the first electronic device 100 or another electronic device.
  • the server 200 may assign a first unique code to the first user in response to the subscription request.
  • the server 200 may transmit the first unique code to the first electronic device 100 or another electronic device.
  • the server 200 may also grant the first seed to the first user.
  • the first seed may be given to the first user for generating a time-based one-time password.
  • the server 200 may transmit the first seed to the first electronic device 100 or another electronic device.
  • the server 200 may transmit a QR code image including the first unique code and the first seed to the first electronic device 100 or another electronic device.
  • the first user may photograph the QR code displayed on another electronic device with the first electronic device 100, and accordingly, the first electronic device 100 may acquire the first unique code and the first seed.
  • the first electronic device 100 may generate a first one time password (OTP) using the first seed and the first time information. That is, the first electronic device 100 may generate the first OTP using the first time information and the first seed corresponding to the first time point at the first time point. In addition, at the second time point, the first electronic device 100 may generate the second OTP using the second time information and the first seed corresponding to the second time point. The first electronic device 100 may dynamically generate the OTP according to the passage of time.
  • OTP one time password
  • the first electronic device 100 may generate a first code using the first OTP and the first unique code.
  • a process in which the first electronic device 100 generates a random and unique first code using the first OTP and the first unique code will be described later in more detail.
  • the randomness and dynamic changeability of the first OTP and the uniqueness of the first unique code can be guaranteed, so that they can be random and unique. .
  • the randomness and uniqueness of the first code will be described later in more detail.
  • the server 200 may generate a first OTP using the first seed and the first time information.
  • the server 200 may generate the same first OTP generated by the first electronic device 100 by using the first time information and the first seed corresponding to the first time point from the first time point.
  • the server 200 may also generate a second OTP identical to that generated by the first electronic device 100 at the second time point by using the second time information and the first seed corresponding to the second time point at the second time point. . That is, the server 200 may also be generated while dynamically changing the OTP.
  • the server 200 may generate a first code using the first OTP and the first unique code.
  • the server 200 generates the first code using the first OTP and the first unique code.
  • the method in which the first electronic device 100 generates the first code using the first OTP and the first unique code. May be the same as Accordingly, the first code generated by the server 200 and the first code generated by the first electronic device 100 may be the same.
  • the server 200 may receive a code verification request.
  • the server 200 may receive a code confirmation request from an electronic device operated by a first user, for example, the first electronic device 100 or another electronic device.
  • the server 200 may determine whether the code in the code verification request is the same as the first code generated by the server 200. If the code in the code verification request is the same as the first code generated by the server 200, in operation 180, the server 200 may determine that the code is suitable. If the code in the code verification request is different from the first code generated by the server 200, in operation 190, the server 200 may determine that the code is inappropriate. The server 200 may perform or not perform additional services such as user login or electronic commerce payment, depending on whether the code is appropriate or inadequate.
  • FIG. 2 is a block diagram of an electronic device that generates a code according to various embodiments of the present disclosure.
  • the electronic device 100 may include an imaging module 101, a processor 102, and a memory 103.
  • the photographing module 101 is a module capable of photographing an external landscape.
  • the processor 102 may acquire information of a seed, a unique code, and a character set by using an image acquired through the photographing module 101. Can be.
  • the processor 102 stores a CPU, a ROM in which a control program for controlling the electronic device 100 is stored, and a signal or data input from the outside of the display device 100, or is performed by the display device 100.
  • RAM may be used as a storage area for work.
  • the CPU may include single core, dual core, triple core, or quad core.
  • the CPU, ROM and RAM can be interconnected via an internal bus.
  • the memory 103 may include both the above-described ROM and RAM, and may store information about a program or algorithm, a seed, a unique code, and a character set for generating a code.
  • the memory 103 when executed, causes the processor 102 to obtain a first seed for generating a one time password, a first unique code and a character set assigned to the first user, and to use the first seed. Generate a first OTP (one time password), map the operation result of the first OTP and the first unique code to the character set to generate a first sub code, and map the first OTP to the character set To generate a second sub code, and to store an instruction for generating the code by using the first sub code and the second sub code.
  • a first OTP one time password
  • the memory 103 may be configured to generate, by the processor 102, the first OTP by inputting first time information corresponding to the first seed and the first time point into a time-based one-time encryption algorithm when executed. Can be saved.
  • the memory 103 converts the first unique code into a numeric code, adds the numeric code to the first OTP, and adds the summation, by the processor 102, when executed, in comparison with the character set. Instructions for generating a first sub code by mapping a result to the character set may be stored.
  • the memory 103 may, when executed, the processor 102 performs a mod operation on the sum result with the size of the character set, and outputs a result of performing a mode operation on the sum result. Instructions for generating the first sub code may be stored.
  • the memory 103 executes an instruction that, when executed, causes the processor 102 to apply a predetermined offset to the sum result and to map the offset applied sum result to the character set to generate the first sub code. Can be stored.
  • the memory 103 may, when executed, perform a mod operation on the offset-added summing result with the size of the character set, and output a result of performing a mode operation on the summing result.
  • An instruction for generating the first sub code by mapping to a character set may be stored.
  • the memory 103 may be configured to generate the second sub code by executing the processor 102 to apply the predetermined offset to the first OTP and to map the offset-applied first OTP to the character set. Instructions can be stored.
  • the memory 103 when executed, causes the processor 102 to perform a mod operation on the offset-applied first OTP with the size of the character set, and to perform a mode operation on the first OTP. Instructions for mapping the character set to the character set to generate the second sub code.
  • the memory 103 may store instructions that, when executed, obtain the character set by the processor 102 obtaining a basic character set and shuffling elements of the basic character set.
  • the memory 103 when executed, causes the processor 102 to obtain a second seed that is the same for all users of the system, generate a second OTP using the second seed, and generate a second OTP for the second OTP.
  • An instruction for swapping each element of the elementary character set with another element may be stored by using a mod operation result of the number of elements of the elementary character set.
  • the server 200 may include a communication module 201 and a processor 202.
  • the communication module 201 may transmit information on the seed, the unique code, and the character set to another electronic device according to the request. In addition, the communication module 201 may perform a code verification request including a code.
  • the processor 202 may assign a unique code to the user. Alternatively, the processor 202 may generate a code in response to the code verification request. The processor 202 may determine whether the code verification request is legitimate by comparing the generated code with the code in the code verification request.
  • FIG. 3 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
  • the first electronic device 100 may obtain a first unique code and a different first seed for each user.
  • the first seed may be granted by the server 200 to the first user.
  • the first unique code is a character string based on an ASCII code, and may be a combination of alphabets, numbers, and special characters.
  • the first unique code may be a code selected from elements of a preset character set.
  • the server 200 may generate a first unique code for the first user by using an algorithm that generates a unique code from the character set and transmit it to the first electronic device 100.
  • the server 200 may generate a unique code for another user, and the unique code assigned to each of the users may be different.
  • the first electronic device 100 may generate a first OTP using the first seed and the first time information.
  • the first OTP may consist of numbers, for example.
  • the first electronic device 100 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a preset character set.
  • the first electronic device 100 may set ⁇ '0', '1', '2',... As a preset character set. , '9',, 'A', 'B',... , 'Z' ⁇ is assumed. In addition, it is assumed that the first electronic device 100 acquires "AX83Z0" as the first unique code. According to an embodiment of the present disclosure, the first electronic device 100 may convert each digit of the first unique code into a numeric code by checking the index of the digit of each character in the first unique code. .
  • the first electronic device 100 converts the unique code of "A” into a numeric code of "10” by confirming that "A", which is the first digit character of the first code, is the 11th index in the character set. can do. This may be due to the starting point of the numeric code being zero.
  • the first electronic device 100 may convert the unique code of "X” into “33” by confirming that "X” is the 34th index in the character set.
  • the first electronic device 100 may convert the first unique code "AX83Z0" into a numeric code of ⁇ 10,33,8,3,35,0 ⁇ .
  • the first electronic device 100 may add 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 add a number code of ⁇ 10,33,8,3,35,0 ⁇ with a first OTP of ⁇ 3,8,2,9,0,1 ⁇ , and ⁇ 13 , 41, 10, 12, 35, 1 ⁇ can be obtained. On the other hand, when the total number of elements in the character set exceeds 36, for example, 36, the first electronic device 100 performs a mod operation on the total number of elements in the character set. It can be substituted as a result.
  • the first electronic device 100 may replace “41” with "5" which is a result of performing a 36 mode operation on "41". Accordingly, the first electronic device 100 will be described later.
  • a sum result of ⁇ 13,5,10,12,35,1 ⁇ can be obtained.
  • an offset may be applied when generating the sum result, which is described in more detail.
  • the first electronic device 100 may generate a first sub code by mapping the sum result to a character set. For example, the first electronic device 100 may interpret each number of ⁇ 13, 5, 10, 12, 35, 1 ⁇ as an index and obtain a character corresponding thereto from the character set. That is, the first electronic device 100 may obtain "D" corresponding to the index of "13" as the first character of the first sub code. The electronic device 100 may obtain "5" corresponding to the index of "5" as the second character of the first sub code. According to the above-described scheme, the first electronic device 100 may obtain a first sub code of “D5ACY1”.
  • the first electronic device 100 may generate a second sub code by mapping the first OTP to a character set. For example, the first electronic device 100 interprets that each digit of the first OTP of ⁇ 3,8,2,9,0,1 ⁇ is an index, and thus the second sub code corresponding to each digit. Each digit of a character can be generated. For example, the first electronic device 100 may obtain a letter of '3' corresponding to the number of '3' and may obtain a letter of '8' corresponding to the number of '8'. Accordingly, the first electronic device 100 may obtain a second sub code of “382901”. In another embodiment of the present invention, a second sub code may be obtained by mapping a result of applying an offset to each digit of a number to a character set, which will be described later in more detail.
  • the first electronic device 100 may generate a first code including the first sub code and the second sub code.
  • the first electronic device 100 may generate a first code of, for example, “D5ACY1382901” by concatenate the first sub code and the second sub code.
  • “D5ACY1” which is the first sub code of the first code, is set by summing up a dynamic and randomly generated OTP and a unique code, and guarantees uniqueness by the unique code while ensuring dynamic and randomness. Can be.
  • the first electronic device 100 since a code having the same sum result may have a low probability, the first electronic device 100 according to various embodiments of the present disclosure may generate a first code that is a unique code by concatenateing a second sub code.
  • FIG. 4 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
  • the first electronic device 100 may obtain a first unique code and a different first seed for each user. As described above, the first electronic device 100 receives the first unique code and the first seed from the server 200 or photographs a QR code displayed by another electronic device to capture the first unique code and the first seed. Can be received.
  • the first seed may be a seed for generating an OTP assigned to the first user by the server.
  • the first electronic device 100 may generate a first OTP using the first seed and the first time information.
  • the first electronic device 100 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a character set. For example, similarly to the embodiment of FIG. 3, the first electronic device 100 may obtain a first unique code of “AX83Z0”, and the first time information corresponding to the first time point at the first time point may be obtained. And a first OTP of “382901” using the first seed.
  • the first electronic device 100 may preset ⁇ '0', '1', '2',...
  • a first unique code may be mapped to a character set of 'Z' ⁇ to convert the first unique code "AX83Z0" into a numeric code of ⁇ 10,33,8,3,35,0 ⁇ .
  • the first electronic device 100 may add 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 add a number code of ⁇ 10,33,8,3,35,0 ⁇ with a first OTP of ⁇ 3,8,2,9,0,1 ⁇ , and ⁇ 13 , 41, 10, 12, 35, 1 ⁇ can be obtained.
  • the first electronic device 100 may apply an offset to the sum result.
  • the first electronic device 100 may set the offset to 18, for example.
  • the first electronic device 100 may add an offset of 18 to the number of digits of the sum result.
  • the first electronic device may obtain a result of mode calculating the size of the character set to the offset-added sum result. Accordingly, the first electronic device 100 may obtain ⁇ 31, 23, 28, 30, 17, 19 ⁇ which is an offset-added sum result.
  • the first electronic device 100 may generate the first sub code by mapping the offset-added sum result to the character set.
  • the first electronic device 100 may interpret '31', which is the offset-added sum result, as an index in the character set, and may obtain '31', which is the 31st character.
  • the first electronic device 100 may sequentially convert '23', '28', '30', '17', and '19' to characters, thereby generating a first sub code of “VNSUHJ”. can do.
  • the first electronic device 100 may apply an offset to the first OTP. Accordingly, offset 18 is added to each number of the first OTP of ⁇ 3,8,2,9,0,1 ⁇ to generate the offset-applied first OTP of ⁇ 21,26,20,27,18 ⁇ . Can be.
  • the first electronic device 100 may generate a second sub code by mapping the offset-applied first OTP to a character set. That is, the first electronic device 100 may generate the second sub code by interpreting each number of ⁇ 21, 26, 20, 27, 18 ⁇ of the offset-added first OTP as an index in the character set. For example, the first electronic device 100 may obtain 'L', which is the 21st character in the character set, based on '21', which is the first number of the offset first OTP. In the above-described manner, the first electronic device 100 may generate a second sub code of “LQKRIJ” from ⁇ 21, 26, 20, 27, 18 ⁇ of the offset-applied first OTP.
  • the first electronic device 100 may generate a first code including the first sub code and the second sub code.
  • the first electronic device 100 may generate a first code of, for example, “D5ACY1LQKRIJ” by concatenate the first sub code and the second sub code.
  • “D5ACY1” which is the first sub code of the first code, is set by summing up a dynamic and randomly generated OTP and a unique code, and guarantees uniqueness by the unique code while ensuring dynamic and randomness. Can be.
  • the first electronic device 100 since a code having the same sum result may have a low probability, the first electronic device 100 according to various embodiments of the present disclosure may generate a first code that is a unique code by concatenateing a second sub code.
  • the character set C given in the same way can consist of several forms. In addition, the elements of C may be shuffled within the same set.
  • a random six-digit TOTP code would be '839023' and '659921'.
  • preId + C ((d + x + offset)% S); // append to the character created in the previous step
  • FIG. 5 is a flowchart illustrating an offset determination process according to various embodiments of the present disclosure.
  • the first electronic device 100 may obtain the same second seed for all users.
  • the second seed may be a seed value for generating a time-based one-time password, for example, and may be different from the first seed.
  • the first electronic device 100 may generate a second OTP based on the second seed and the first time information.
  • the first electronic device 100 may determine an offset to be used in FIG. 4 using the second OTP. have.
  • the first electronic device 100 may set an offset as a determined value of a mode operation for the number of elements of the character set to an 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, so that the offset generated at the first point in time may be the same for all users, so that uniqueness of the generated code can be guaranteed continuously have.
  • the first electronic device 100 may obtain the same second seed for all users.
  • the second seed may be a seed value for generating a time-based one-time password, for example, and may be different from the first seed.
  • the first electronic device 100 may generate a second OTP using the second seed and the first time information.
  • the first electronic device 100 may determine the character set using the second OTP. For example, the first electronic device 100 may first acquire a basic character set, and determine the character set to be used for code generation by modifying the basic character set based on the second OTP.
  • FIG. 7 is a flowchart illustrating a character set determination method according to various embodiments of the present disclosure.
  • the first electronic device 100 may obtain a basic character set.
  • the first electronic device 100 may use ⁇ '0', '1', '2',... , '9' ⁇ can be obtained.
  • the number of elements of the basic character set may be 10.
  • the first electronic device 100 may generate a second OTP using the second seed and the first time information.
  • the first electronic device 100 may generate a second OTP using a hOTP algorithm. For example, it is assumed that the first electronic device 100 generates the second OTP of 123456.
  • the first electronic device 100 may modulate the size of the second OTP and the character set to obtain an operation determination value.
  • the first electronic device 100 may exchange positions of two characters of the basic character set by using an operation determination value. For example, the first electronic device 100 may obtain 6 that is a result of the mode operation on 123456. The first electronic device 100 may interpret the result of operation 6 as an index of the character set and swap the sixth character of the character set with the zeroth character.
  • the first electronic device 100 may sequentially swap all the characters to acquire a character set that shuffles the basic character set. For example, the first electronic device 100 interprets an OPT generation, a mode operation, and an operation result as an index on the first character of the character set, and performs swapping with the first character and the character corresponding to the index.
  • the above-described process can be performed for the second to ninth characters.
  • the first electronic device 100 may generate a first code using the shuffled character set.
  • 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 assured in succession.
  • the number 6 is the index of C.
  • the number corresponding to C [6] is replaced with the C [0] th character to be replaced. That is, swapping.
  • the value of the module of HOTP generated in each step as S is O.
  • the shuffling character set is used to generate a random code once.
  • a character set that guarantees uniqueness of the generated code may be shuffled.
  • the smart card 800 may include a processor 810, a memory 820, and a communication circuit 830.
  • the smart card 800 may have a self computing function on a surface of a plastic card having the same material and size as a general credit card.
  • Smart card 800 may be implemented as a financial card, or may be inserted in the passport, and those skilled in the art will readily understand that there is no limitation as long as it is a field for performing authentication using specific information.
  • the processor 810 may output a code generated through the data line 811 to the reader 850.
  • the processor 810 may drive with power received via the data line 811.
  • the processor 810 may transmit the generated code to the communication circuit 853 of the reader 850 via the communication circuit 830.
  • the communication circuit 830 may transmit a code provided from the processor 810 to the communication circuit 853 based on various communication schemes such as Bluetooth, Zigbee, infrared communication, visible light communication, NFC communication, Wi-Fi Direct, and the like. have. Accordingly, the smart card 800 may transmit a code generated in a contact or contactless manner to the card reader 850.
  • Code received in a contact or contactless manner with the card reader 850 may be provided to the processor 851.
  • the processor 851 may generate code.
  • the processor 851 may determine whether the received code is suitable by comparing the generated code with the received code.
  • the card reader 850 may forward the received code to the management server.
  • the management server may generate a code, and may determine whether the received code is appropriate by comparing the generated code with the generated code.
  • FIG. 9 is a flowchart illustrating an operation of a smart card and a reader according to various embodiments of the present disclosure.
  • the smart card 900 may receive power from the reader 901.
  • the smart card 900 may receive power from the reader 901 through a data line or a power line, or may wirelessly receive power.
  • the smart card 900 may share the first unique code and the first seed with the reader 901.
  • the smart card 900 may store the first unique code assigned in advance.
  • the reader 901 or management server may also store the first unique code in advance.
  • the first seed may be given to the first user for generating a time-based one-time password.
  • the management server may assign the first seed to the smart card 900, which may be stored in the smart card 900.
  • the smart card 900 may generate a first one time password (OTP) using the first seed and the first time information. That is, the smart card 900 may generate the first OTP using the first time information and the first seed corresponding to the first time point at the first time point.
  • the smart card 900 may generate a second OTP using the second time information and the first seed corresponding to the second time point at the second time point.
  • the smart card 900 may be generated by dynamically changing the OTP over time.
  • the smart card 900 may generate a first code using the first OTP and the first unique code. Since the smart card 900 has been described in detail with respect to the process of generating a random and unique first code using the first OTP and the first unique code, further description thereof will be omitted. As 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 that the first code can be random and unique. .
  • the reader 901 or the management server may generate a first OTP using the first seed and the first time information.
  • the reader 901 may generate the same first OTP generated by the smart card 900 using the first time information and the first seed corresponding to the first time point from the first time point.
  • the reader 901 may also generate a second OTP identical to that generated by the smart card 900 at the second time point by using the second time information and the first seed corresponding to the second time point at the second time point. That is, the reader 901 can also be generated while dynamically changing the OTP.
  • the reader 901 may generate a first code using the first OTP and the first unique code.
  • the reader 901 may determine whether the code in the code verification request is the same as the first code generated by the reader 901. If the code in the code verification request is the same as the first code generated by the reader 901, in operation 980, the reader 901 may determine that the code is suitable. If the code in the code verification request is different from the first code generated by the reader 901, in operation 970, the reader 901 may determine that the code is inappropriate.
  • FIG. 10 is a flowchart illustrating an operation of the electronic apparatus 1000 and the open / close system 1001 according to various embodiments of the present disclosure.
  • the opening and closing system may be implemented in various forms, such as a door of a vehicle or a system requiring security passage.
  • the electronic device 1000 may receive power from the open / close system 1001.
  • the electronic device 1000 may receive power from the switch system 1001 through a data line or a power line, or may wirelessly receive power.
  • the electronic apparatus 1000 may generate a first one time password (OTP) using the first seed and the first time information.
  • OTP one time password
  • the electronic apparatus 1000 may generate a first code by using the first OTP and the first unique code. Since the electronic apparatus 1000 has described in detail a process of generating a random and unique first code using the first OTP and the first unique code, further description thereof will be omitted.
  • the open / close system 1001 or the management server may generate the first OTP using the first seed and the first time information.
  • the open / close system 1001 may generate the same first OTP generated by the electronic apparatus 1000 using the first time information and the first seed corresponding to the first time point from the first time point.
  • the open / close system 1001 may also generate a second OTP that is generated by the electronic apparatus 1000 at the second time point by using the second time information and the first seed corresponding to the second time point at the second time point.
  • the open / close system 1001 may receive a code confirmation request from the electronic device 1000. That is, the open / close system 1001 may receive a code generated by the electronic apparatus 1000 in a contact or non-contact manner.
  • the open / close system 1001 may determine whether the code in the code confirmation request is the same as the first code generated by the open / close system 1001. If the code in the code confirmation request is the same as the first code generated by the open / close system 1001, in operation 1080, the open / close system 1001 may determine that the code is suitable. If the code in the code confirmation request is different from the first code generated by the open / close system 1001, in operation 1070, the open / close system 1001 may determine that the code is inappropriate.
  • FIG. 11 is a conceptual diagram illustrating a multi-factor authentication system according to various embodiments of the present disclosure.
  • the electronic device 1100 may display a screen 1110 for inputting a password.
  • the screen 1110 for password input may include a plurality of numbers.
  • the electronic device 1100 continuously inputs "1" 1111, "2" 1112, “3” 1113, and "4" 1114 to the screen 1110 for password input. Can be detected.
  • the electronic device 1100 may generate a code “Sr DCC 1040” using a unique code of “1” 1111 input first.
  • a code of "FQd3se4tT" is generated using a unique code of "2" 1112
  • a code of "FrWwre0Te” is generated using a unique code of "3" 1113, and "4" (1114).
  • Code of "hwDYQzQ key” can be generated by using unique code of.
  • the electronic device 1100 may transmit "SrDCC1040FQd3se4tTFrWwre0TehwDYQzQ", which is a connection of the generated codes, to the management server 1101.
  • the management server 1101 may also compare the code “SrDCC1040FQd3se4tTFrWwre0TehwDYQzQ”, which is a code using each number of the “1234” stored in advance, with the code received from the electronic device 1100, and determine whether the code is suitable according to the comparison result. have. Accordingly, multi-factor authentication using information of "1234" by the user's memory and codes generated therefrom may be possible.
  • FIG. 12 is a conceptual diagram illustrating an authentication process by a smart card according to various embodiments of the present disclosure.
  • the smart card 1201 may transmit a code generated in a contact or contactless manner to a security gate 1202.
  • the smart card 1201 may receive power from the security gate 1202 by wire or wirelessly, and generate and output a code by operating an applet using the received power.
  • the security gate 1202 may transmit the code 1203 received from the smart card 1201 to the security server 1210.
  • the security server 1210 may transmit the code 1211 to a management server 1230.
  • the management server 1230 may generate a code in advance and compare the received code 1211 with the generated code. As a result of the comparison, when the pre-generated code and the received code 1211 match, the management server 1230 transmits the corresponding user identification (ID) and password related information 1241 to the security server 1210. Can be.
  • ID user identification
  • the security server 1210 may transmit an open command 1242 to the security gate 1202 based on the received user identification (ID) and password related information 1241.
  • the security gate 1202 may open the door according to the received open command 1242.
  • the management server 1230 if the management server 1230, as a result of the comparison, the pre-generated code and the received code 1211 does not match, it may transmit an authentication failure message to the security server 1210, in this case, the security server 1210 May transmit a close command to security gate 1202.
  • FIG. 13 is a conceptual diagram illustrating a system login process according to various embodiments of the present disclosure.
  • the electronic device 1301 may be implemented in a structure capable of inserting a smart card. Accordingly, the smart card may receive power from the electronic device 1301 to execute the applet, and output the code generated as a result of the applet to the electronic device 1301.
  • the electronic device 1301 may display a code (Random ID) received from the smart card and a user name together. The user may check this and write the user name 1311 and the displayed code (eg, 6GHtY) 1312 on the login window in the device 1310 capable of groupware login such as a computer.
  • the device 1310 capable of logging in groupware may transmit the received user name and code 1313 to the groupware server 1320, and the groupware server 1320 may transmit the user name and code 1321 to the management server. Forwarding to 1330.
  • FIG. 14 is a conceptual diagram illustrating an operation of an electronic device in an IoT environment according to various embodiments of the present disclosure.
  • the electronic device 1401 or the smart card 1402 may generate a code 1403 and transmit it to the home network control point 1410.
  • the electronic device 1401 or the smart card 1402 may transmit a control signal to at least one of the plurality of electronic devices 1411 to 1419 in the home network.
  • the control point 1410 may generate a code, and compare it with the received code 1403. As a result of the comparison, if the received code 1403 and the generated code match, the control point 1410 may control the electronic device to perform the corresponding command.
  • the control may be performed in a security-protected environment for the gas valve control system or the like directly connected to the safety of the user.
  • the present invention can be applied to any field where authentication is required.
  • the gift certificate number generator according to the present invention can generate a unique and random code through the algorithm described above, assign it to each type of gift certificate, and share it with the authentication system.
  • authentication can be performed by comparing the received gift certificate number with a pre-shared gift certificate number.
  • the generated code is unique and guaranteed randomness, it can be prevented that analogy generation of the gift certificate number by the other.

Abstract

본 발명의 다양한 실시예에 의한 전자 장치는, 통신 모듈, 일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는, 상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하고, 상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하고, 상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하고, 상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 코드를 생성하고, 상기 생성된 코드를 상기 통신 모듈을 통하여 다른 전자 장치로 송신하도록 설정될 수 있다.

Description

랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법
본 발명은 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법으로, 더욱 상세하게는 시간 기반 일회용 암호(time-based one time password)를 이용하여 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법에 관한 것이다.
운영체제를 비롯한 모든 컴퓨터 응용 시스템은 접근하는 사용자의 구분을 위하여 아이디(ID)를 유일하게 생성하여 각 사용자에게 부여할 수 있다. 아이디는 쉽게 노출 혹은 유출될 수 있어 이를 보완하기 위하여 사용자가 쉽게 기억할 수 있는 암호를 생성하여 아이디와 함께 매핑하여 관리할 수 있다. 이에 따라, 사용자의 아이디가 노출된 경우에 비하여 암호를 함께 이용하는 경우에 보안성이 증대될 수 있다.
하지만, 사용자는 일반적으로 기억하기 쉬운 암호, 예를 들어 ‘12345678’와 같이 단순한 형태를 설정하는 경우가 일반적이다. 이에 따라, 타인 혹은 해커가 쉽게 암호를 유추할 수 있는 취약점이 존재한다. 설령, 복잡한 암호(예, aB3Pe#28dwqP)가 설정된 경우라 하더라도, 해커는 발달된 해킹기술, 예를 들어 키로 거(Key Logger)와 같은 해킹툴을 이용하여 아이디와 암호를 쉽게 탈취할 수 있다. 이를 보완하기 위하여, 시스템은 사용자에게 복잡한 암호(일정한 길이, 영문자 대/소문자, 특수문자, 숫자를 혼합)를 주기적으로 변경하여 사용하도록 요구한다. 현실적으로 사용자가 이와 같은 복잡한 암호를 기억하는 것은 대단히 어렵고, 실제 사용자는 자신의 아이디와 암호를 시스템별로 메모하여 사용하고 있다.
이와 더불어, 단순 아이디/암호 기반만으로 사용자를 구분은 것은 해킹기술의 발달로 인하여 한계를 가지고 있고, 이를 보완하기 위하여 사용자가 기억하는 정보(아이디/암호)와 사용자만이 소지하고 있는 것(예, 일회용비밀번호 생성기, OTP 토큰, 보안카드 등)를 함께 사용하도록 하고, 이와 같은 사용자인증 방법을 투팩터(2 factor) 인증이라고 한다.
즉, 사용자가 인지(기억)하고 있는 아이디/암호와 사용자가 소지하고 있는 무엇(예, OTP 토큰, 보안카드 등)을 함께 사용하도록 한다. 즉, 사용자가 인지(기억)(Knowledge Factor)하고 있는 아이디, 암호와 사용자가 소지(Possession Factor)하고 있는 것을 이용하여 인증을 수행하므로 2 factor 인증이라고 일컫는다. 나아가 사용자인증에 여러 요소, 특히 사용자 생체정보(지문인식, 홍채인식, 음성인식등)를 함께 사용하는 것을 멀티팩터(multi factor)인증이라고 한다.
사실, 시스템에 접근하는 사용자구분을 위해서는 아이디만 있으면 되나 보안상 이를 보완하기 위하여 복잡한 암호와 여러 요소(multi factor)를 함께 사용자에게 요구하고 있는 것이다. 이것은 사용자를 위한 것이 아닌 시스템을 위한 형태로 사용자 인증기술이 연구/개발되어지고 있다는 것을 의미한다고 볼 수 있다.
일회용 코드는 ASCII 코드로 구성된 문자열로써, 알파벳과 숫자(alphanumeric, {'0', …, '9', 'A', …, 'Z', 'a', … ,'z'})와 특수문자(displayable ASCII character, {'!', '@', … })의 조합으로 구성된다. 이것은 시스템에 등록되어 있는 실제 사용자 아이디를 의미하는 것이 아닌 일정길이의 임의로 생성된 아이디이며, 주어진 문자집합에 포함된 문자로 구성된 문자열을 뜻한다.
예를 들면, 주어진 문자집합이 { '0', … , '9', 'A', … , 'Z' } 라고 하고 길이를 6이라고 하면, 사용자에게 할당된 랜덤 아이디는 ‘A012ZE’, ‘KABFZE’, ‘019D3F’, … 이 된다. 이때 사용자에게 할당된 일회용 코드는 유일해야 한다, 즉 주어진 문자집합을 이용하여 생성할 수 있는 최대 코드의 개수는 36(알파벳 대문자 개수(26) + 숫자(10)) ^ 6(랜덤아이디 길이) = 2,176,782,336 개가 된다.
이와 같은 코드를 주기적으로 다른 문자조합으로 생성하기 위해 TOTP(RFC6238)를 사용하였고, 생성된 TOTP 각 자릿수를 주어진 문자집합의 인덱스(index)로 사용함으로써 유일하면서도 랜덤한 코드를 생성할 수 있다. 하지만 OTP는 알고리즘 적으로 동일 시점에 다른 SEED를 사용하였을 때, 같은 결과가 나올 확률이 있다. 즉, 충돌이 발생할 확률이 있다는 것이다. 결국 TOTP 코드만 가지고는 동일 시점에 아이디의 요건인 유일성을 만족하지 않으므로 아이디로 사용할 수 없다.
상술한 바와 같이, 종래의 사용자 구분 기술은, 아이디와 암호가 고정된 방식에 기초하여 동작하며, 이에 따라 사용자 아이디 및 암호가 노출되는 문제점이 발생한다. 본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 다양한 실시예들은 랜덤하면서도 유일한 코드를 생성하는 전자 장치 및 방법을 제공할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치의 제어 방법은, 일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 동작; 상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하는 동작; 상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하는 동작; 상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하는 동작; 상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 코드를 생성하는 동작; 및 상기 생성된 코드를 상기 통신 모듈을 통하여 다른 전자 장치로 송신하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에서, 인증을 수행하는 전자 장치의 제어 방법은, 다른 전자 장치로부터 제 1 코드를 수신하는 동작; 일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 동작; 상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하는 동작; 상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하는 동작; 상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하는 동작; 상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 제 2 코드를 생성하는 동작; 상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하면, 인증을 수행하는 동작; 및 상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하지 않으면, 인증을 수행하지 않도록 설정된 인증을 수행하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치는, 통신 모듈; 일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 메모리; 및 프로세서를 포함하고, 상기 프로세서는, 상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하고, 상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하고, 상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하고, 상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 코드를 생성하고, 상기 생성된 코드를 상기 통신 모듈을 통하여 다른 전자 장치로 송신하도록 설정될 수 있다.
본 발명의 다양한 실시예에서, 인증을 수행하는 전자 장치는, 다른 전자 장치로부터 제 1 코드를 수신하는 통신 모듈; 일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 메모리; 및 프로세서를 포함하고, 상기 프로세서는, 상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하고, 상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하고, 상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하고, 상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 제 2 코드를 생성하고, 상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하면, 인증을 수행하고, 상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하지 않으면, 인증을 수행하지 않도록 설정될 수 있다.
본 발명의 다양한 실시예들에 의하여, 랜덤하면서도 유일한 코드를 생성하는 전자 장치 및 방법이 제공될 수 있다. 생성된 랜덤하면서도 유일한 코드는, 시스템에서 사용자를 구분하기 위한 아이디, 전자 상거래를 위한 입력 코드, 문화상품권과 같은 화폐 대용 인쇄물의 식별 코드 등의 다양한 기술 분야에서 이용될 수 있다. 특히, 본 발명의 다양한 실시예들에 의한 전자 장치 및 방법은, 랜덤하면서도 유일한 코드를 시간에 따라 동적으로 생성할 수 있으며, 이에 따라 코드가 유출될 가능성이 현저히 저하될 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 유일 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
도 2는 본 발명의 다양한 실시예에 따른 코드를 생성하는 전자 장치의 블록도를 도시한다.
도 3은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
도 4는 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
도 5는 본 발명의 다양한 실시예에 따른 오프셋 결정 과정을 설명하기 위한 흐름도를 도시한다.
도 6은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.
도 7은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.
도 8은 본 발명의 다양한 실시예에 따른 스마트카드 및 카드 리더기의 블록도를 도시한다.
도 9는 본 발명의 다양한 실시예에 따른 스마트카드 및 리더기의 동작을 설명하기 위한 흐름도를 도시한다.
도 10은 본 발명의 다양한 실시예에 따른 전자 장치 및 개폐 시스템의 동작을 설명하기 위한 흐름도를 도시한다.
도 11은 본 발명의 다양한 실시예에 따른 멀티-팩터(multi-factor) 인증 시스템을 설명하기 위한 개념도를 도시한다.
도 12는 본 발명의 다양한 실시예에 따른 스마트카드에 의한 인증 과정을 설명하기 위한 개념도를 도시한다.
도 13은 본 발명의 다양한 실시예에 따른 시스템 로그인 과정을 설명하기 위한 개념도를 도시한다.
도 14는 본 발명의 다양한 실시예에 따른 IoT 환경에서의 전자 장치의 동작을 설명하기 위한 개념도를 도시한다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 예시적 실시예를 상세하게 설명한다. 다만, 본 발명이 예시적 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 실질적으로 동일한 기능을 수행하는 부재를 나타낸다.
도 1은 본 발명의 다양한 실시예에 따른 유일 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
도 1의 실시예에서, 제 1 전자 장치(100)는 유일 코드를 생성하는 전자 장치일 수 있으며, 서버(200)는 유일 코드를 생성하고, 검증 요청된 유일 코드를 검증하는 전자 장치일 수 있다. 서버(200)는 유일 코드를 이용하는 서비스를 관리하는 전자 장치일 수 있다. 예를 들어, 서버(200)는 웹 서비스를 관리하는 전자 장치로, 사용자 아이디 및 이에 대응하는 로그인 정보를 관리할 수 있다.
110 동작에서, 제 1 전자 장치(100)는 서버(200)와 제 1 고유 코드 및 제 1 씨드를 공유할 수 있다. 하나의 실시예에서, 서버(200)는 제 1 전자 장치(100)를 사용하는 제 1 사용자를 시스템에 가입시키는 경우에, 제 1 전자 장치(100)로 제 1 고유 코드 및 제 1 씨드를 송신할 수 있다. 또는, 서버(200)는 제 1 고유 코드 및 제 1 씨드를 디스플레이할 수 있는 정보를 다른 전자 장치로 송신할 수도 있다. 예를 들어, 제 1 사용자는 제 1 전자 장치(100) 또는 다른 전자 장치를 통하여 서버(200)로 가입을 요청할 수 있다. 서버(200)는 가입 요청에 대응하여 제 1 사용자에게 제 1 고유 코드를 부여할 수 있다. 서버(200)는 제 1 고유 코드를 제 1 전자 장치(100) 또는 다른 전자 장치로 송신할 수 있다. 서버(200)는 아울러 제 1 사용자에게 제 1 씨드를 부여할 수 있다. 제 1 씨드는 시간 기반 일회용 암호 생성을 위하여 제 1 사용자에게 부여될 수 있다. 서버(200)는 제 1 씨드를 제 1 전자 장치(100) 또는 다른 전자 장치로 송신할 수 있다. 하나의 실시예에서, 서버(200)는 제 1 고유 코드 및 제 1 씨드를 포함하는 QR 코드 이미지를 제 1 전자 장치(100) 또는 다른 전자 장치로 송신할 수 있다. 제 1 사용자는 다른 전자 장치에서 표시되는 QR 코드를 제 1 전자 장치(100)로 촬영할 수 있으며, 이에 따라 제 1 전자 장치(100)는 제 1 고유 코드 및 제 1 씨드를 획득할 수 있다.
120 동작에서, 제 1 전자 장치(100)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP(one time password)를 생성할 수 있다. 즉, 제 1 전자 장치(100)는 제 1 시점에서, 제 1 시점에 대응하는 제 1 시간 정보 및 제 1 씨드를 이용하여 제 1 OTP를 생성할 수 있다. 아울러, 제 1 전자 장치(100)는 제 2 시점에서는, 제 2 시점에 대응하는 제 2 시간 정보 및 제 1 씨드를 이용하여 제 2 OTP를 생성할 수 있다. 제 1 전자 장치(100)는 시간의 흐름에 따라서 동적으로 OTP를 변경하여 생성할 수 있다.
130 동작에서, 제 1 전자 장치(100)는 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 제 1 전자 장치(100)가 제 1 OTP 및 제 1 고유 코드를 이용하여 랜덤하면서도 유일한 제 1 코드를 생성하는 과정에 대하여서는 더욱 상세하게 후술하도록 한다. 제 1 코드는 제 1 OTP 및 제 1 고유 코드를 모두 이용하여 생성됨에 따라서, 제 1 OTP의 랜덤성 및 동적인 변경 가능성과 제 1 고유 코드의 유일성을 보장받을 수 있어, 랜덤하면서도 유일할 수 있다. 제 1 코드의 랜덤성 및 유일성에 대하여서도 더욱 상세하게 후술하도록 한다.
140 동작에서, 서버(200)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 서버(200)는 제 1 시점에서 제 1 시점에 대응하는 제 1 시간 정보와 제 1 씨드를 이용하여 제 1 전자 장치(100)가 생성한 것과 동일한 제 1 OTP를 생성할 수 있다. 서버(200) 또한 제 2 시점에서 제 2 시점에 대응하는 제 2 시간 정보와 제 1 씨드를 이용하여 제 1 전자 장치(100)가 제 2 시점에서 생성한 것과 동일한 제 2 OTP를 생성할 수 있다. 즉, 서버(200)도 OTP를 동적으로 변경하면서 생성할 수 있다.
150 동작에서, 서버(200)는 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 서버(200)가 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성하는 방식은 제 1 전자 장치(100)가 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성하는 방식과 동일할 수 있다. 이에 따라, 서버(200)가 생성한 제 1 코드와 제 1 전자 장치(100)가 생성한 제 1 코드는 동일할 수 있다.
160 동작에서, 서버(200)는 코드 확인 요청을 수신할 수 있다. 서버(200)는 제 1 사용자가 조작하는 전자 장치, 예를 들어 제 1 전자 장치(100) 또는 다른 전자 장치로부터 코드 확인 요청을 수신할 수 있다.
170 동작에서, 서버(200)는 코드 확인 요청 내의 코드가 서버(200)가 생성한 제 1 코드와 동일한지 여부를 판단할 수 있다. 코드 확인 요청 내의 코드가 서버(200)가 생성한 제 1 코드와 동일한 경우에는, 180 동작에서, 서버(200)는 코드가 적합한 것으로 판단할 수 있다. 코드 확인 요청 내의 코드가 서버(200)가 생성한 제 1 코드와 상이한 경우에는, 190 동작에서, 서버(200)는 코드가 부적합한 것으로 판단할 수 있다. 서버(200)는 코드 적합 또는 부적합 여부에 따라, 사용자 로그인 또는 전자 상거래 결재 등의 추가 서비스를 수행 또는 미수행할 수도 있다.
도 2는 본 발명의 다양한 실시예에 따른 코드를 생성하는 전자 장치의 블록도를 도시한다.
전자 장치(100)는 촬영 모듈(101), 프로세서(102) 및 메모리(103)를 포함할 수 있다.
촬영 모듈(101)은 외부의 경관을 촬영할 수 있는 모듈로, 예를 들어 프로세서(102)는 촬영 모듈(101)을 통하여 획득된 이미지를 이용하여, 씨드, 고유 코드 및 문자 세트의 정보를 획득할 수 있다.
프로세서(102)는 CPU, 전자 장치(100)의 제어를 위한 제어프로그램이 저장된 롬(ROM) 및 디스플레이 장치(100)의 외부로부터 입력되는 신호 또는 데이터를 기억하거나, 디스플레이 장치(100)에서 수행되는 작업을 위한 기억영역으로 사용되는 램(RAM)을 포함할 수 있다. CPU는 싱글 코어, 듀얼 코어, 트리플 코어, 또는 쿼드 코어를 포함할 수 있다. CPU, 롬 및 램은 내부버스(bus)를 통해 상호 연결될 수 있다.
메모리(103)는 상기의 롬 및 램을 모두 포함할 수 있으며, 코드를 생성하기 위한 프로그램 또는 알고리즘, 씨드, 고유 코드 및 문자 세트에 대한 정보를 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 획득하고, 상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하고, 상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하고, 상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하고, 상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 상기 코드를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 상기 제 1 씨드 및 제 1 시점에 대응하는 제 1 시간 정보를 시간 기반 일회용 암호 알고리즘에 입력하여, 상기 제 1 OTP를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 상기 문자 세트와 비교함으로써, 상기 제 1 고유 코드를 숫자 코드로 변환하고, 상기 숫자 코드를 상기 제 1 OTP와 합산하고, 상기 합산 결과를 상기 문자 세트에 매핑하여 상기 제 1 서브 코드를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 상기 합산 결과에 대하여 상기 문자 세트의 크기로 모드(mod) 연산을 수행하고, 상기 합산 결과에 대한 모드 연산 수행 결과를 상기 문자 세트에 매핑하여 상기 제 1 서브 코드를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 상기 합산 결과에 기설정된 오프셋을 적용하고, 상기 오프셋 적용된 합산 결과를 상기 문자 세트에 매핑하여 상기 제 1 서브 코드를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 상기 오프셋 적용된 합산 결과에 대하여 상기 문자 세트의 크기로 모드(mod) 연산을 수행하고, 상기 합산 결과에 대한 모드 연산 수행 결과를 상기 문자 세트에 매핑하여 상기 제 1 서브 코드를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 상기 제 1 OTP에 상기 기설정된 오프셋을 적용하고, 상기 오프셋 적용된 제 1 OTP를 상기 문자 세트에 매핑하여 상기 제 2 서브 코드를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 상기 오프셋 적용된 제 1 OTP에 대하여 상기 문자 세트의 크기로 모드(mod) 연산을 수행하고, 상기 제 1 OTP에 대한 모드 연산 수행 결과를 상기 문자 세트에 매핑하여 상기 제 2 서브 코드를 생성하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 기본 문자 세트를 획득하고, 상기 기본 문자 세트의 원소를 셔플링(shuffling) 함으로써, 상기 문자 세트를 획득하는 인스트럭션을 저장할 수 있다.
상기 메모리(103)는, 실행시에 상기 프로세서(102)가, 시스템의 모든 사용자에게 동일한 제 2 씨드를 획득하고, 상기 제 2 씨드를 이용하여 제 2 OTP를 생성하고, 상기 제 2 OTP에 대한 상기 기본 문자 세트의 원소의 개수의 모드(mod) 연산 결과를 이용하여 상기 기본 문자 세트의 각 자리 원소를 다른 자리의 원소와 스와핑(swapping)하는 인스트럭션을 저장할 수 있다.
한편, 서버(200)는 통신 모듈(201) 및 프로세서(202)를 포함할 수 있다.
통신 모듈(201)은 요청에 따라 씨드, 고유 코드 및 문자 세트에 대한 정보를 다른 전자 장치로 송신할 수 있다. 아울러, 통신 모듈(201)은 코드를 포함한 코드 확인 요청을 수행할 수 있다.
프로세서(202)는 고유 코드를 사용자에게 부여할 수 있다. 또는, 프로세서(202)는 코드 확인 요청에 대응하여, 코드를 생성할 수 있다. 프로세서(202)는 생성된 코드를 코드 확인 요청 내의 코드와 비교함으로써, 코드 확인 요청이 적법한지 여부를 판단할 수 있다.
도 3은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
310 동작에서, 제 1 전자 장치(100)는 제 1 고유 코드 및 사용자마다 상이한 제 1 씨드를 획득할 수 있다. 제 1 씨드는 제 1 사용자에게 서버(200)에 의하여 부여된 것일 수 있다. 한편, 제 1 고유 코드는 ASCII 코드에 기초한 문자열로, 알파벳과 숫자와 특수 문자의 조합일 수 있다. 제 1 고유 코드는 미리 설정된 문자 세트의 원소로부터 선택된 코드일 수 있다. 예를 들어, 서버(200)는 문자 세트로부터 유일한 코드를 생성하는 알고리즘을 이용하여 제 1 사용자를 위한 제 1 고유 코드를 생성하고, 이를 제 1 전자 장치(100)로 송신할 수 있다. 서버(200)는 다른 사용자를 위하여 고유 코드를 생성할 수도 있으며, 사용자들 각각에 부여된 고유 코드는 상이할 수 있다.
320 동작에서, 제 1 전자 장치(100)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 제 1 OTP는 예를 들어 숫자로 구성될 수 있다.
330 동작에서, 제 1 전자 장치(100)는 제 1 고유 코드를 미리 설정된 문자 세트에 매핑하여 제 1 고유 코드에 대응하는 숫자 코드를 생성할 수 있다.
예를 들어, 제 1 전자 장치(100)는 미리 설정된 문자 세트로 { '0', '1', '2', …, '9', ,'A', 'B', …, 'Z' }을 이용하는 경우를 상정하도록 한다. 아울러, 제 1 전자 장치(100)는 제 1 고유 코드로 "AX83Z0"를 획득한 것을 상정하도록 한다. 하나의 실시예에서, 제 1 전자 장치(100)는 제 1 고유 코드의 각 자리 문자가 문자 세트에서 몇 번째 인덱스인지를 확인함으로써, 제 1 고유 코드의 각 자리 문자를 숫자 코드로 변환할 수 있다. 예를 들어, 제 1 전자 장치(100)는 제 1 코드의 첫 번째 자리 문자인 "A"가 문자 세트에서 11번째 인덱스인 것을 확인함으로써 "A"의 고유 코드를 "10"의 숫자 코드로 변환할 수 있다. 이는, 숫자 코드의 시작점이 0인 것으로부터 기인할 수 있다. 동일한 방식으로, 제 1 전자 장치(100)는 "X"가 문자 세트에서 34번째 인덱스인 것을 확인함으로써 "X"의 고유 코드를 "33"으로 변환할 수 있다. 제 1 전자 장치(100)는 제 1 고유 코드인 "AX83Z0"을 {10,33,8,3,35,0}의 숫자 코드로 변환할 수 있다.
340 동작에서, 제 1 전자 장치(100)는 제 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개를 초과하는 경우에는, 제 1 전자 장치(100)는 해당 합산 결과를 문자 세트의 원소의 총 개수에 모드(mod) 연산을 한 결과로 치환할 수 있다. 이 경우에는, 제 1 전자 장치(100)는 "41"을 "41"에 36의 모드 연산을 수행한 결과인 "5"로 치환할 수 있다. 이에 따라, 제 1 전자 장치(100)는 후술하도록 한다. {13,5,10,12,35,1} 의 합산 결과를 획득할 수 있다. 본 발명의 다른 실시예에서는 합산 결과 생성시 오프셋을 적용할 수도 있으며, 이에 대하여서는 더욱 상세하게
350 동작에서, 제 1 전자 장치(100)는 합산 결과를 문자 세트에 매핑하여 제 1 서브 코드를 생성할 수 있다. 예를 들어, 제 1 전자 장치(100)는 {13,5,10,12,35,1} 의 각 숫자를 인덱스로 해석하여 이에 대응하는 문자를 문자 세트로부터 획득할 수 있다. 즉, 제 1 전자 장치(100)는 '13'의 인덱스에 대응하는 "D"를 제 1 서브 코드의 첫 번째 문자로 획득할 수 있다. 전자 장치(100)는 '5'의 인덱스에 대응하는 "5"를 제 1 서브 코드의 두 번째 문자로 획득할 수 있다. 상술한 방식에 따라서, 제 1 전자 장치(100)는 "D5ACY1"의 제 1 서브 코드를 획득할 수 있다.
360 동작에서, 제 1 전자 장치(100)는 제 1 OTP를 문자 세트에 매핑하여 제 2 서브 코드를 생성할 수 있다. 예를 들어, 제 1 전자 장치(100)는 {3,8,2,9,0,1} 의 제 1 OTP의 각 자리 숫자가 인덱스인 것으로 해석하여, 각 자리 숫자에 대응하는 제 2 서브 코드의 문자의 각 자리를 생성할 수 있다. 예를 들어, 제 1 전자 장치(100)는 '3'의 숫자에 대응하여 '3'의 문자를 획득할 수 있으며, '8'의 숫자에 대응하여 '8'의 문자를 획득할 수 있다. 이에 따라 제 1 전자 장치(100)는 "382901"의 제 2 서브 코드를 획득할 수 있다. 본 발명의 다른 실시예에서는 숫자의 각 자리마다 오프셋을 적용한 결과를 문자 세트에 매핑하여 제 2 서브 코드를 획득할 수도 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다.
370 동작에서, 제 1 전자 장치(100)는 제 1 서브 코드 및 제 2 서브 코드를 포함하는 제 1 코드를 생성할 수 있다. 제 1 전자 장치(100)는 제 1 서브 코드 및 제 2 서브 코드를 concatenate 하여 예를 들어 "D5ACY1382901"의 제 1 코드를 생성할 수 있다. 상술한 바와 같이, 제 1 코드의 제 1 서브 코드인 "D5ACY1"은 동적이면서 랜덤하게 생성되는 OTP 및 고유 코드의 합산에 의하여 설정된 것으로, 동적이면서 랜덤성이 보장되면서, 고유 코드에 의한 유일성이 보장될 수 있다. 다만, 낮은 확률로 합산 결과가 동일한 코드가 발생할 수도 있으므로, 본 발명의 다양한 실시 예에 따른 제 1 전자 장치(100)는 제 2 서브 코드를 concatenate 함으로써 유일한 코드인 제 1 코드를 생성할 수 있다.
도 4는 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.
410 동작에서, 제 1 전자 장치(100)는 제 1 고유 코드 및 사용자마다 상이한 제 1 씨드를 획득할 수 있다. 상술한 바와 같이, 제 1 전자 장치(100)는 서버(200)로부터 제 1 고유 코드 및 제 1 씨드를 수신하거나 또는 다른 전자 장치에서 디스플레이되는 QR 코드를 촬영함으로써 제 1 고유 코드 및 제 1 씨드를 수신할 수 있다. 제1 씨드는 서버가 제 1 사용자에게 부여한 OTP 생성을 위한 씨드일 수 있다.
420 동작에서, 제 1 전자 장치(100)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 430 동작에서, 제 1 전자 장치(100)는 제 1 고유 코드를 문자 세트에 매핑하여 제 1 고유 코드에 대응하는 숫자 코드를 생성할 수 있다. 예를 들어, 도 3의 실시예에서와 유사하게, 제 1 전자 장치(100)는 "AX83Z0"의 제 1 고유 코드를 획득할 수 있으며, 제 1 시점에 제 1 시점에 대응하는 제 1 시간 정보 및 제 1 씨드를 이용하여 "382901"의 제 1 OTP를 생성할 수 있다. 제 1 전자 장치(100)는 미리 설정된 { '0', '1', '2', …, '9', ,'A', 'B', …, 'Z' }의 문자 세트에 제 1 고유 코드를 매핑하여 제 1 고유 코드인 "AX83Z0"을 {10,33,8,3,35,0}의 숫자 코드로 변환할 수 있다.
440 동작에서, 제 1 전자 장치(100)는 제 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} 의 합산 결과를 획득할 수 있다. 450 동작에서, 제 1 전자 장치(100)는 상기 합산 결과에 오프셋을 적용할 수 있다. 제 1 전자 장치(100)는 오프셋을 예를 들어 18로 설정할 수 있다. 제 1 전자 장치(100)는 합산 결과의 매 자리 수의 숫자에 오프셋인 18을 합산할 수 있다. 아울러, 도 3과 유사하게 제 1 전자 장치는 오프셋 적용된 합산 결과에 문자 세트의 크기를 모드 연산한 결과를 획득할 수 있다. 이에 따라, 제 1 전자 장치(100)는 오프셋 적용된 합산 결과인 {31,23,28,30,17,19}를 획득할 수 있다.
460 동작에서, 제 1 전자 장치(100)는 오프셋 적용된 합산 결과를 문자 세트에 매핑하여 제 1 서브 코드를 생성할 수 있다. 제 1 전자 장치(100)는 오프셋 적용된 합산 결과인 '31'을 문자 세트에서의 인덱스로 해석하여, 31번째 문자인 'V'를 획득할 수 있다. 제 1 전자 장치(100)는, '23', '28', '30', '17', '19' 을 순차적으로 문자로 변환할 수 있으며, 이에 따라 "VNSUHJ"의 제 1 서브 코드를 생성할 수 있다.
470 동작에서, 제 1 전자 장치(100)는 제 1 OTP에 오프셋을 적용할 수 있다. 이에 따라, {3,8,2,9,0,1} 의 제 1 OTP의 각 숫자에 오프셋 18을 합산하여, {21,26,20,27,18}의 오프셋 적용된 제 1 OTP를 생성할 수 있다.
480 동작에서, 제 1 전자 장치(100)는 오프셋 적용된 제 1 OTP를 문자 세트에 매핑하여 제 2 서브 코드를 생성할 수 있다. 즉, 제 1 전자 장치(100)는 오프셋 적용된 제 1 OTP의 {21,26,20,27,18} 의 각 숫자를 문자 세트에서의 인덱스로 해석하여, 제 2 서브 코드를 생성할 수 있다. 예를 들어, 제 1 전자 장치(100)는 오프셋 적용된 제 1 OTP의 첫 번째 숫자인 '21'에 기초하여, 문자 세트에서의 21번째 문자인 'L'을 획득할 수 있다. 상술한 방식으로, 제 1 전자 장치(100)는 오프셋 적용된 제 1 OTP의 {21,26,20,27,18} 으로부터 "LQKRIJ"의 제 2 서브 코드를 생성할 수 있다.
490 동작에서, 제 1 전자 장치(100)는 제 1 서브 코드 및 제 2 서브 코드를 포함하는 제 1 코드를 생성할 수 있다. 제 1 전자 장치(100)는 제 1 서브 코드 및 제 2 서브 코드를 concatenate 하여 예를 들어 "D5ACY1LQKRIJ"의 제 1 코드를 생성할 수 있다. 상술한 바와 같이, 제 1 코드의 제 1 서브 코드인 "D5ACY1"은 동적이면서 랜덤하게 생성되는 OTP 및 고유 코드의 합산에 의하여 설정된 것으로, 동적이면서 랜덤성이 보장되면서, 고유 코드에 의한 유일성이 보장될 수 있다. 다만, 낮은 확률로 합산 결과가 동일한 코드가 발생할 수도 있으므로, 본 발명의 다양한 실시 예에 따른 제 1 전자 장치(100)는 제 2 서브 코드를 concatenate 함으로써 유일한 코드인 제 1 코드를 생성할 수 있다.
하기에서는, 상술한 코드 생성 과정을 알고리즘을 통하여 설명하도록 한다.
- 정의
-C : ASCII 코드로 표현되는 서로 다른 문자를 원소로 하는 문자집합
주어진 문자집합을 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’ } 와 같이 될 수 있다.
-S : 주어진 문자집합 C의 원소개수
-C(n) : n 번째 C의 원소 (0 <= n < C의 문자개수)
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’ 가 된다.
-IndexOf(c) : 주어진 문자 c의 C 내 인덱스
주어진 문자집합 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 일때, IndexOf(‘8’) = 0, IndexOf(‘5’) = 9 가 된다.
-U : C에 포함된 문자로 구성된 임의 생성된 사용자 고유 아이디를 나타내는 문자열
주어진 문자집합 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 일 때 U 는 ‘0382’, ‘7192’와 같이 표현된다.
-U(n) : U의 n 번째 문자 ( 0 <= n < U의 문자개수)
주어진 U = ‘0382’일 때, n은 0 <= n < 4인 정수이며, U(2) = ‘8’, U(3) = ‘2’ 가 된다.
-T : TOTP 코드
예를 들면, 랜덤한 6자리 TOTP 코드는 ‘839023’, ‘659921’ 이 된다.
-T(n) : TOTP 코드 내 n 번째 위치한 숫자 (0 <= n < TOTP 자릿수)
예를 들면, 생성된 TOTP 코드가 ‘839023’일 때, T(0) = ‘8’, T(5) = ‘3’ 이 된다.
-N : 랜덤 코드의 길이 ( N >= 1 )
-R : 랜덤 코드
-numOf(c) : ASCII 문자숫자 c를 숫자로 변환
-알고리즘
프로그래밍언어 C++와 유사한 형태로 기술한다.
String generate_random_id ( C, U, N, T )
{
string preId;
string postId;
int offset = 18; // 임의로 지정
for (n = 0; n < N; n++)
{
int d = numOf(T(n)); // T(n) ASCII 코드를 숫자로 변환, ‘3’ -> 3, ‘9’ -> 9
int x = IndexOf(U(n));
preId += C ( (d + x + offset) % S ); // 이전단계에 만들어진 문자에 append한다.
postId += C ( (d + offset)%S);
}
return (preId + postId); // 만들어진 두개의 문자를 append 해서 최종 R을 만든다.
}
-시뮬레이션
만약,
N = 6,
C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’} 이고,
S = 10 + 26 = 36
U = ‘AX83Z0’ 이고
T = ‘382901’라고 하면,
0 <= n < 36, (0 … 35)
IndexOf(U) = { 10, 33, 8, 3, 35, 0 } 이 되고,
numOf (T) = { 3, 8, 2, 9, 0, 1 } 이 되고,
각 자리에 대해 연산을 수행하면,
preId[0] = C ( ( 3 + 10 + 18 ) % 36 ) = C ( 31 % 36 ) = C ( 31 ) = ‘V’
preId[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[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[5] = C ( 1 + 0 + 18 ) % 36 ) = C ( 19 % 36 ) = C ( 19 ) = ‘J’
이고,
postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = ‘L’
postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = ‘Q’
postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = ‘K’
postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = ‘R’
postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = ‘I’
postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = ‘J’
이 되어,
R = generate_random_id(C, U, N, T) 가 되고, R = ‘VNSUHJ LQKRIJ’ 가 나온다.
-시뮬레이션 2 - 같은 시점에 다른 아이디인 경우
위와 동일하게 N = 6, C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’}, S = 10 + 26 = 36 으로 설정한다.
대신 U = ‘B05EFA’ 이고,
위와 같은 T = ‘382901’ 가 나왔다고 하면,
0 <= n < 36, (0 … 35)
IndexOf(U) = { 11, 0, 6, 14, 15, 10 } 이 되고,
numOf(T) = { 3, 8, 2, 9, 0, 1 } 이 되고,
각 자리에 대해 연산을 수행하면,
preId[0] = C ( ( 3 + 11 + 18 ) % 36 ) = C ( 32 % 36 ) = C ( 31 ) = ‘W’
preId[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[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[5] = C ( 1 + 10 + 18 ) % 36 ) = C ( 29 % 36 ) = C ( 29 ) = ‘T’
이고,
postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = ‘L’
postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = ‘Q’
postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = ‘K’
postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = ‘R’
postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = ‘I’
postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = ‘J’
이 되어,
R = generate_random_id(C, U, N, T) 가 되고, R = ‘WQQ5XT LQKRIJ’ 가 나온다.
따라서 같은 시점에 같은 OTP가 나와도 마다 다른 랜덤 코드는 상이한 결과를 가진다.
도 5는 본 발명의 다양한 실시예에 따른 오프셋 결정 과정을 설명하기 위한 흐름도를 도시한다.
510 동작에서, 제 1 전자 장치(100)는 모든 사용자에게 동일한 제 2 씨드를 획득할 수 있다. 여기에서, 제 2 씨드는 예를 들어 시간 기반 일회용 암호를 생성하기 위한 씨드값일 수 있으며, 제 1 시드와는 상이할 수 있다. 520 동작에서, 제 1 전자 장치(100)는 제 2 씨드 및 제 1 시간 정보에 기초하여 제 2 OTP를 생성할 수 있으며, 530 동작에서 상기 제 2 OTP를 이용하여 도 4에서 이용할 오프셋을 결정할 수 있다. 예를 들어, 제 1 전자 장치(100)는 제 2 씨드를 이용하여 생성한 오프셋에 문자 세트의 원소의 개수에 대한 모드 연산의 결괏값으로 오프셋을 설정할 수 있다. 제 2 씨드는 제 1 사용자뿐만 아니라 시스템에 가입된 사용자 모두에게 동일할 수 있으며, 이에 따라 제 1 시점에서 생성된 오프셋은 모든 사용자에게 동일할 수 있어, 생성된 코드의 유일성이 연속하여 보장될 수 있다.
도 6은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.
610 동작에서, 제 1 전자 장치(100)는 모든 사용자에게 동일한 제 2 씨드를 획득할 수 있다. 여기에서, 제 2 씨드는 예를 들어 시간 기반 일회용 암호를 생성하기 위한 씨드값일 수 있으며, 제 1 씨드와는 상이할 수 있다.
620 동작에서, 제 1 전자 장치(100)는 제 2 씨드 및 제 1 시간 정보를 이용하여 제 2 OTP 생성할 수 있다. 630 동작에서, 제 1 전자 장치(100)는 제 2 OTP를 이용하여 문자 세트를 결정할 수 있다. 예를 들어, 제 1 전자 장치(100)는 기본 문자 세트를 최초 획득할 수 있으며, 기본 문자 세트를 제 2 OTP에 기초하여 변형함으로써 코드 생성에 이용할 문자 세트를 결정할 수 있다.
도 7은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.
710 동작에서, 제 1 전자 장치(100)는 기본 문자 세트를 획득할 수 있다. 예를 들어, 제 1 전자 장치(100)는 { '0', '1', '2', …, '9' }의 기본 문자 세트를 획득할 수 있다. 기본 문자 세트의 원소의 개수는 10일 수 있다.
720 동작에서, 제 1 전자 장치(100) 제 2 씨드 및 제 1 시간 정보를 이용하여 제 2 OTP 생성할 수 있다. 본 발명의 다양한 실시예에서는, 제 1 전자 장치(100)는 hOTP 알고리즘으로 제 2 OTP를 생성할 수도 있다. 예를 들어, 제 1 전자 장치(100)는 123456의 제 2 OTP를 생성한 것을 상정하도록 한다.
730 동작에서, 제 1 전자 장치(100)는 제 2 OTP 및 문자 세트의 크기를 모드(mod) 연산하여, 연산 결괏값을 획득할 수 있다. 740 동작에서, 제 1 전자 장치(100)는 연산 결괏값을 이용하여 기본 문자 세트의 두 개의 문자의 위치를 맞교환할 수 있다. 예를 들어, 제 1 전자 장치(100)는 123456에 대한 모드 연산 결과인 6을 획득할 수 있다. 제 1 전자 장치(100)는 6의 연산 결과를 문자 세트의 인덱스로 해석하여, 문자 세트의 6번째 문자를 0번째 문자와 스와핑할 수 있다.
750 동작에서, 제 1 전자 장치(100)는 모든 문자에 대하여 순차적으로 스와핑을 수행하여 기본 문자 세트를 셔플링한 문자 세트를 획득할 수 있다. 예를 들어, 제 1 전자 장치(100)는 문자 세트의 1번째 문자에 대하여, OPT 생성, 모드 연산, 연산 결괏값을 인덱스로 해석하여 1번째 문자와 인덱스에 대응하는 문자와 스와핑을 수행하고, 상술한 과정을 2번째 문자 내지 9번째 문자에 대하여 모두 수행할 수 있다.
760 동작에서, 제 1 전자 장치(100)는 셔플링한 문자 세트를 이용하여 제 1 코드를 생성할 수 있다.
상술한 바에 따라, 문자 집합은 동적으로 변경될 수 있으며, 씨드만 공유된다면 모든 사용자에 대하여 동일한 문자 집합이 생성될 수 있어, 상술한 바에서 생성된 코드의 유일성이 연속되어 보장될 수 있다.
하기에서는, 상술한 문자 세트 셔플링 방법의 알고리즘을 설명하도록 한다.
1. 기본 문자집합 C = {‘0’, ‘1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’} 이라한다.
2. Global Key를 설정하고 이를 OTP의 seed로 이용한다.
3. 문자집합의 크기 S만큼 다음을 반복하여 랜덤한 문자집합을 만든다.
1) C(n)의 자리를 변경하기 위해서, HOTP를 하나 만들고 집합크기로 Mod계산한다.
2) HOTP는 123456이면, 문자집합 크기인 10으로 Mod 계산하여 6을 얻어낸다.
3) 얻어낸 6은 C의 인덱스를 의미하며 C[6]에 해당하는 숫자를 현재 바꾸려고 하는 C[0]번째 문자와 자리를 바꾼다. 즉 스와핑 한다.
4) 1,2,3과 정을 9번 더 반복하여 C[9]까지 수행한다.
5) 위 계산이 완료되면 셔플링된 문자집합이 나오고, 이 집합을 이용하여 랜덤 아이디를 생성할 수 있다.
시뮬레이션 - 문자집합 셔플링
문자집합 C = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 이고, C의 크기 S = 10, 0 <= n < 10이다.
각 단계에서 생성되는 HOTP를 S로 모듈로 한 값을 O라 하고
O(0) = 1111 2222 % 10,
O(1) = 3333 4444 % 10,
O(2) = 5555 6666 % 10,
O(3) = 7777 8888 % 10,
O(4) = 9999 0000 % 10,
O(5) = 1111 2222 % 10,
O(6) = 3333 4444 % 10,
O(7) = 5555 6666 % 10,
O(8) = 7777 8888 % 10,
O(9) = 9999 0000 % 10이라고 가정한다.
1) C[0] = 0 섞기
O[0] = 11112222 % 10 = 2이므로, C[2]을 C[0] 자리에 보내고 C[0]을 C[2]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 1, 0, 3, 4, 5, 6, 7, 8, 9} 가 된다.
2) C[1] = 1 섞기
O[1] = 33334444 % 10 = 4이므로, C[4]을 C[1] 자리에 보내고 C[1]을 C[4]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 4, 0, 3, 1, 5, 6, 7, 8, 9} 이 된다.
3) C[2] = 0 섞기
O[2] = 55556666 % 10 = 6이므로, C[6]을 C[2] 자리에 보내고 C[2]를 C[6]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 4, 6, 3, 1, 5, 0, 7, 8, 9} 이 된다.
4) C[3] = 1 섞기
O[3] = 77778888 % 10 = 8이므로, C[8]을 C[3] 자리에 보내고 C[3]를 C[8]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 4, 6, 8, 1, 5, 0, 7, 3, 9} 이 된다.
5) C[4] = 4 섞기
O[4] = 99990000 % 10 = 0이므로, C[0]을 C[4] 자리에 보내고 C[4]를 C[0]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 6, 8, 2, 5, 0, 7, 3, 9} 이 된다.
6) C[5] = 5 섞기
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} 이 된다.
7) C[6] = 0 섞기
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} 이 된다.
8) C[7] = 7 섞기
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} 이 된다.
9) C[8] = 3 섞기
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} 이 된다.
10) C[9] = 9 섞기
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} 이 된다.
따라서 셔플링된 문자집합은 C = {‘9’, ‘4’, ‘5’, ‘8’, ‘0’, ‘6’, ‘7’, ‘2’, ‘3’, ‘1’}이 되며, 이 셔플링 문자집합을 이용하여 랜덤 코드를 한번 생성하게 된다.
상술한 바에 따라서 생성된 코드의 유일성이 보장되는 문자 집합이 셔플링될 수 있다.
도 8은 본 발명의 다양한 실시예에 따른 스마트카드 및 카드 리더기의 블록도를 도시한다. 도 8에 도시된 바와 같이, 스마트카드(800)는 프로세서(810), 메모리(820) 및 통신 회로(830)를 포함할 수 있다. 스마트카드(800)는 일반적인 신용카드와 동일한 재질과 사이즈인 플라스틱 카드의 표면에 자체 연산 기능을 가질 수 있다. 스마트카드(800)는 금융 카드로 구현될 수 있거나, 또는 여권 내에도 삽입될 수도 있으며, 특정 정보를 이용하여 인증을 수행하는 분야라면 제한이 없음을 당업자는 용이하게 이해할 수 있을 것이다.
예를 들어, 메모리(820)에는 운영체제(Chip Operating System: COS)가 저장될 수 있다. 운영체제는, 메모리(820)에 저장된 애플릿(applet)을 저장 및 관리할 수 있으며, 애플릿으로부터 송수신 되는 데이터를 하드웨어 단으로 송수신할 수 있다. 메모리(820)에 저장된 애플릿은 Java 언어로 구성된 작은 응용 프로그램을 의미할 수 있다. Java 언어는 인터넷 기반의 언어이므로 용량과 속도의 한계로 프로그램을 크게 만들 필요가 없으므로 소규모 애니메이션, 그림 그리기, 날씨 변화 표시하기, 주가정보 표시 등의 간단한 기능을 처리하는 작은 프로그램을 만들어 사용하는 데 이를 의미할 수 있다. 예를 들어, 애플릿은 메모리(820)에 저장된 보안 정보로부터 유일하고 랜덤한 코드를 출력할 수 있다. 더욱 상세하게, 애플릿은 저장된 보안 정보를 이용하여 상술한 과정을 통하여 유일하고 랜덤한 코드를 출력하도록 설정될 수 있다. 아울러, 메모리(820)에는 일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트가 저장될 수 있다.
프로세서(810)는 예를 들어, 데이터 선(811)을 통하여 생성된 코드를 리더기(850)로 출력할 수 있다. 프로세서(810)는 데이터 선(811)을 통하여 수신된 전력으로 구동할 수도 있다. 또 다른 실시예에서, 프로세서(810)는 생성된 코드를 통신 회로(830)를 통하여 리더기(850)의 통신 회로(853)로 송신할 수 있다. 통신 회로(830)는, 블루투스, 지그비, 적외선 통신, 가시광 통신, NFC 통신, Wi-fi 다이렉트 등의 다양한 통신 방식에 기초하여 프로세서(810)로부터 제공받은 코드를 통신 회로(853)로 송신할 수 있다. 이에 따라, 스마트카드(800)는 접촉식 또는 비접촉식으로 생성된 코드를 카드 리더기(850)로 송신할 수 있다.
카드 리더기(850)에 접촉식 또는 비접촉식으로 수신된 코드는 프로세서(851)로 제공될 수 있다. 프로세서(851)는 코드를 생성할 수 있다. 프로세서(851)는 생성한 코드와 수신된 코드를 비교함으로써 수신된 코드가 적합한지 여부를 판단할 수 있다. 또는, 카드 리더기(850)는 수신된 코드를 관리 서버로 포워딩할 수도 있다. 이 경우, 관리 서버는 코드를 생성할 수 있으며, 포워딩 된 코드와 생성된 코드를 비교함으로써 수신된 코드가 적합한지 여부를 판단할 수 있다.
도 9는 본 발명의 다양한 실시예에 따른 스마트카드 및 리더기의 동작을 설명하기 위한 흐름도를 도시한다.
905 동작에서, 스마트카드(900)는 리더기(901)로부터 전력을 수신할 수 있다. 스마트카드(900)는 리더기(901)로부터 데이터 선 또는 전력선을 통하여 전력을 수신하거나, 또는 무선으로 전력을 수신할 수도 있다.
910 동작에서, 스마트카드(900)는 리더기(901)와 제 1 고유 코드 및 제 1 씨드를 공유할 수 있다. 스마트카드(900)에는 부여된 제 1 고유 코드가 미리 저장될 수 있다. 리더기(901) 또는 관리 서버 또한 제 1 고유 코드를 미리 저장할 수 있다. 제 1 씨드는 시간 기반 일회용 암호 생성을 위하여 제 1 사용자에게 부여될 수 있다. 관리 서버는 제 1 씨드를 스마트카드(900)에도 부여할 수 있으며, 이는 스마트카드(900)에 저장될 수 있다. 스마트카드(900)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP(one time password)를 생성할 수 있다. 즉, 스마트카드(900)는 제 1 시점에서, 제 1 시점에 대응하는 제 1 시간 정보 및 제 1 씨드를 이용하여 제 1 OTP를 생성할 수 있다. 아울러, 스마트카드(900)는 제 2 시점에서는, 제 2 시점에 대응하는 제 2 시간 정보 및 제 1 씨드를 이용하여 제 2 OTP를 생성할 수 있다. 스마트카드(900)는 시간의 흐름에 따라서 동적으로 OTP를 변경하여 생성할 수 있다.
920 동작에서, 스마트카드(900)는 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 스마트카드(900)가 제 1 OTP 및 제 1 고유 코드를 이용하여 랜덤하면서도 유일한 제 1 코드를 생성하는 과정에 대하여서는 상세히 설명하였으므로, 여기에서는 더 이상의 설명은 생략하도록 한다. 제1 코드는 제 1 OTP 및 제 1 고유 코드를 모두 이용하여 생성됨에 따라서, 제 1 OTP의 랜덤성 및 동적인 변경 가능성과 제 1 고유 코드의 유일성을 보장받을 수 있어, 랜덤하면서도 유일할 수 있다.
930 동작에서, 리더기(901) 또는 관리 서버는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 리더기(901)는 제 1 시점에서 제 1 시점에 대응하는 제 1 시간 정보와 제 1 씨드를 이용하여 스마트카드(900)가 생성한 것과 동일한 제 1 OTP를 생성할 수 있다.
리더기(901) 또한 제 2 시점에서 제 2 시점에 대응하는 제 2 시간 정보와 제 1 씨드를 이용하여 스마트카드(900)가 제 2 시점에서 생성한 것과 동일한 제 2 OTP를 생성할 수 있다. 즉, 리더기(901)도 OTP를 동적으로 변경하면서 생성할 수 있다. 940 동작에서, 리더기(901)는 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다.
950 동작에서, 리더기(901)는 스마트카드(900)로부터 코드 확인 요청을 수신할 수 있다. 즉, 리더기(901)는 스마트카드(900)가 생성한 코드를 접촉식 또는 비접촉식으로 수신할 수 있다.
960 동작에서, 리더기(901)는 코드 확인 요청 내의 코드가 리더기(901)가 생성한 제 1 코드와 동일한지 여부를 판단할 수 있다. 코드 확인 요청 내의 코드가 리더기(901)가 생성한 제 1 코드와 동일한 경우에는, 980 동작에서, 리더기(901)는 코드가 적합한 것으로 판단할 수 있다. 코드 확인 요청 내의 코드가 리더기(901)가 생성한 제 1 코드와 상이한 경우에는, 970 동작에서, 리더기(901)는 코드가 부적합한 것으로 판단할 수 있다.
도 10은 본 발명의 다양한 실시예에 따른 전자 장치(1000) 및 개폐 시스템(1001)의 동작을 설명하기 위한 흐름도를 도시한다. 개폐 시스템은, 자동차의 출입문, 또는 보안 통과가 요구되는 시스템 등으로 다양한 형태로 구현될 수 있다.
1005 동작에서, 전자 장치(1000)는 개폐 시스템(1001)으로부터 전력을 수신할 수 있다. 전자 장치(1000)는 개폐 시스템(1001)으로부터 데이터 선 또는 전력선을 통하여 전력을 수신하거나, 또는 무선으로 전력을 수신할 수도 있다.
1010 동작에서, 전자 장치(1000)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP(one time password)를 생성할 수 있다. 1020 동작에서, 전자 장치(1000)는 제 1 OTP 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 전자 장치(1000)가 제 1 OTP 및 제 1 고유 코드를 이용하여 랜덤하면서도 유일한 제 1 코드를 생성하는 과정에 대하여서는 상세히 설명하였으므로, 여기에서는 더 이상의 설명은 생략하도록 한다.
1030 동작에서, 개폐 시스템(1001) 또는 관리 서버는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 개폐 시스템(1001)은 제 1 시점에서 제 1 시점에 대응하는 제 1 시간 정보와 제 1 씨드를 이용하여 전자 장치(1000)가 생성한 것과 동일한 제 1 OTP를 생성할 수 있다.
개폐 시스템(1001) 또한 제 2 시점에서 제 2 시점에 대응하는 제 2 시간 정보와 제 1 씨드를 이용하여 전자 장치(1000)가 제 2 시점에서 생성한 것과 동일한 제 2 OTP를 생성할 수 있다.
1050 동작에서, 개폐 시스템(1001)은 전자 장치(1000)로부터 코드 확인 요청을 수신할 수 있다. 즉, 개폐 시스템(1001)은 전자 장치(1000)가 생성한 코드를 접촉식 또는 비접촉식으로 수신할 수 있다.
1060 동작에서, 개폐 시스템(1001)은 코드 확인 요청 내의 코드가 개폐 시스템(1001)이 생성한 제 1 코드와 동일한지 여부를 판단할 수 있다. 코드 확인 요청 내의 코드가 개폐 시스템(1001)이 생성한 제 1 코드와 동일한 경우에는, 1080 동작에서, 개폐 시스템(1001)은 코드가 적합한 것으로 판단할 수 있다. 코드 확인 요청 내의 코드가 개폐 시스템(1001)이 생성한 제 1 코드와 상이한 경우에는, 1070 동작에서, 개폐 시스템(1001)은 코드가 부적합한 것으로 판단할 수 있다.
도 11은 본 발명의 다양한 실시예에 따른 멀티-팩터(multi-factor) 인증 시스템을 설명하기 위한 개념도를 도시한다.
도 11을 참조하면, 전자 장치(1100)는 패스워드 입력을 위한 화면(1110)을 표시할 수 있다. 패스워드 입력을 위한 화면(1110)은 복수 개의 숫자를 포함할 수 있다. 예를 들어, 전자 장치(1100)는 패스워드 입력을 위한 화면(1110)에 "1" (1111), "2" (1112), "3" (1113), "4" (1114) 가 연속적으로 입력됨을 검출할 수 있다. 전자 장치(1100)는 우선 입력된 "1" (1111) 의 고유 코드를 이용하여 코드인 "Sr DCC 1040"을 생성할 수 있다. 아울러, "2 "(1112) 의 고유 코드를 이용하여 "FQd3se4tT"의 코드를 생성하고, "3" (1113) 의 고유 코드를 이용하여 "FrWwre0Te"의 코드를 생성하고, "4" (1114) 의 고유 코드를 이용하여 "hwDYQzQ키"의 코드를 생성할 수 있다. 전자 장치(1100)는 생성된 코드들의 연결인 "SrDCC1040FQd3se4tTFrWwre0TehwDYQzQ"를 관리 서버(1101)로 송신할 수 있다. 관리 서버(1101) 또한, 미리 저장된 "1234"의 각각의 숫자를 이용한 코드인 "SrDCC1040FQd3se4tTFrWwre0TehwDYQzQ"를 전자 장치(1100)로부터 수신된 코드와 비교할 수 있으며, 비교 결과에 따라 코드의 적합 여부를 판단할 수 있다. 이에 따라, 사용자의 기억에 의한 "1234"의 정보 및 이로부터 생성된 코드를 이용한 멀티 팩터 인증이 가능할 수 있다.
도 12는 본 발명의 다양한 실시예에 따른 스마트카드에 의한 인증 과정을 설명하기 위한 개념도를 도시한다.
도 12에 도시된 바와 같이, 스마트카드(1201)는 보안 게이트(security gate)(1202) 에 접촉식 또는 비접촉식으로 생성한 코드를 송신할 수 있다. 스마트카드(1201)는 보안 게이트(1202)로부터 유선 또는 무선으로 전력을 수신할 수도 있으며, 수신된 전력을 이용하여 애플릿을 동작시켜 코드를 생성하여 출력할 수 있다. 보안 게이트(1202)는 스마트카드(1201)로부터 수신된 코드(1203)를 보안 서버(security server)(1210) 로 송신할 수 있다. 보안 서버(1210)는 코드(1211)를 관리 서버(server)(1230)로 송신할 수 있다. 관리 서버(1230)는 미리 코드를 생성하고, 수신된 코드(1211)와 생성한 코드를 비교할 수 있다. 비교 결과, 미리 생성된 코드와 수신된 코드(1211)가 일치하면, 관리 서버(1230)는 해당 유저 식별자(user identification: ID)와 비밀 번호 관련 정보(1241)를 보안 서버(1210)로 송신할 수 있다. 보안 서버(1210)는 수신된 해당 유저 식별자(user identification: ID)와 비밀 번호 관련 정보(1241)에 기초하여 개방 명령(1242)을 보안 게이트(1202)로 송신할 수 있다. 보안 게이트(1202)는 수신된 개방 명령(1242)에 따라 문을 개방할 수 있다. 한편, 관리 서버(1230)가 비교 결과, 미리 생성된 코드와 수신된 코드(1211)가 일치하지 않으면, 인증 실패 메시지를 보안 서버(1210)로 송신할 수도 있으며, 이 경우에 보안 서버(1210)는 보안 게이트(1202)에 폐쇄 명령을 송신할 수도 있다.
도 13은 본 발명의 다양한 실시예에 따른 시스템 로그인 과정을 설명하기 위한 개념도를 도시한다.
전자 장치(1301)는 스마트카드를 삽입할 수 있는 구조로 구현될 수 있다. 이에 따라, 스마트카드는 전자 장치(1301)로부터 전력을 수신하여 애플릿을 실행할 수 있으며, 애플릿 실행 결과 생성된 코드를 전자 장치(1301)로 출력할 수 있다. 전자 장치(1301)는 스마트카드로부터 수신된 코드(Random ID)와 사용자 명칭(user name)을 함께 표시할 수 있다. 사용자는 이를 확인하여 컴퓨터와 같은 그룹웨어 로그인(groupware login)이 가능한 장치(1310)에 사용자 명칭(1311) 및 표시된 코드(예를 들어, 6GHtY)(1312) 를 로그인 창 상에서 기재할 수 있다. 그룹웨어 로그인이 가능한 장치(1310)는 입력받은 사용자 명칭 및 코드(1313)를 그룹웨어 서버(groupware server)(1320) 로 송신할 수 있으며, 그룹웨어 서버(1320)는 사용자 명칭 및 코드(1321)를 관리 서버(1330)로 포워딩할 수 있다.
관리 서버(1330)는 미리 코드를 생성할 수 있으며, 미리 생성한 코드와 수신된 코드를 서로 비교할 수 있다. 비교 결과, 미리 생성한 코드와 수신된 코드가 동일하면, 관리 서버(1330)는 사용자 명칭 및 비밀 번호 관련 정보(1341)를 그룹웨어 서버(1320)로 송신할 수 있다. 그룹웨어 서버(1320)는 수신된 해당 유저 식별자(user identification: ID)와 비밀 번호 관련 정보(1341)에 기초하여 그룹웨어 로그인 관련 메시지(1342)를 로그인(group ware login)이 가능한 장치(1310)로 송신할 수 있다. 한편, 관리 서버(1330)가 비교 결과, 미리 생성된 코드와 수신된 코드(1321)가 일치하지 않으면, 인증 실패 메시지를 그룹웨어 서버(1320)로 송신할 수도 있으며, 이 경우에 그룹웨어 서버(1320)는 로그인 실패 메시지를 송신할 수도 있다. 한편, 도 12 및 도 13에서 설명한 바와 같이, 하나의 스마트카드를 이용하여 온라인/오프라인 모두에서 인증을 수행할 수 있다.
도 14는 본 발명의 다양한 실시예에 따른 IoT 환경에서의 전자 장치의 동작을 설명하기 위한 개념도를 도시한다.
전자 장치(1401) 또는 스마트카드(1402)는 코드(1403)를 생성하여 이를 홈 네트워크 제어 포인트(control point)(1410)로 송신할 수 있다. 전자 장치(1401) 또는 스마트카드(1402)는 홈 네트워크 내 복수 개의 전자 장치(1411 내지 1419) 중 적어도 하나에 대해 제어 신호를 함께 송신할 수 있다. 한편, 제어 포인트(1410)는 코드를 생성할 수 있으며, 이를 수신된 코드(1403)와 비교할 수 있다. 비교 결과 수신된 코드(1403)와 생성한 코드가 일치하면, 제어 포인트(1410)는 해당 명령을 수행할 전자 장치를 제어할 수 있다. 이에 따라, 예를 들어 사용자의 안전과 직결되는 가스 밸브 제어 시스템 등에 대해 제어가 보안이 담보된 환경에서 수행될 수 있다.
한편, 본 발명은 인증이 요구되는 분야라면 어디든 적용이 될 수 있다. 예를 들어, 본 발명에 의한 상품권 번호 생성기는, 상술한 알고리즘을 통하여 유일하면서도 랜덤한 코드를 생성하여, 상품권 종마다 부여하고, 인증 시스템과도 공유할 수 있다. 인증 시스템에서는, 상품권 번호가 온라인 사용 시스템을 통하여 수신되는 경우에, 수신된 상품권 번호와 미리 공유된 상품권 번호를 비교함으로써 인증을 수행할 수 있다. 상술한 바와 같이, 생성된 코드는 유일하면서 랜덤성이 보장됨에 따라서, 타자에 의하여 상품권 번호를 유추 생성됨이 방지될 수 있다.

Claims (20)

  1. 전자 장치의 제어 방법에 있어서,
    일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 동작;
    상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하는 동작;
    상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하는 동작;
    상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하는 동작;
    상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 코드를 생성하는 동작; 및
    상기 생성된 코드를 상기 통신 모듈을 통하여 다른 전자 장치로 송신하는 동작
    을 포함하는 전자 장치의 제어 방법.
  2. 제 1 항에 있어서,
    상기 전자 장치는 스마트카드이며, 상기 다른 전자 장치는 인증을 수행하는 전자 장치인 것을 특징으로 하는 전자 장치의 제어 방법.
  3. 제 1 항에 있어서,
    상기 전자 장치는 스마트카드이며, 상기 다른 전자 장치는 상기 생성된 코드를 중계하는 전자 장치이며,
    상기 다른 전자 장치는 상기 생성된 코드를 인증을 수행하는 전자 장치로 중계하는 것을 특징으로 하는 전자 장치의 제어 방법.
  4. 제 1 항에 있어서,
    상기 전자 장치는 스마트카드이며, 상기 다른 전자 장치는 개폐 시스템인 것을 특징으로 하는 전자 장치의 제어 방법.
  5. 제 4 항에 있어서,
    상기 개폐 시스템은, 상기 수신된 코드를 이용하여 인증을 수행하거나 또는 인증을 수행하는 또 다른 전자 장치로 상기 수신된 코드에 대한 인증을 요청하도록 설정된 전자 장치의 제어 방법.
  6. 제 5 항에 있어서,
    상기 개폐 시스템은, 상기 인증 결과 또는 상기 또 다른 전자 장치로부터 수신된 인증 결과에 기초하여, 시스템의 개폐를 제어하는 것을 특징으로 하는 전자 장치의 제어 방법.
  7. 제 1 항에 있어서,
    상기 다른 전자 장치는 홈 네트워크를 구성하는 전자 장치인 것을 특징으로 하는 전자 장치의 제어 방법.
  8. 제 7 항에 있어서,
    상기 홈 네트워크를 구성하는 전자 장치는, 상기 인증 결과에 기초하여, 상기 홈 네트워크를 구성하는 전자 장치를 제어하거나 또는 상기 홈 네트워크를 구성하는 또 다른 전자 장치를 제어하도록 설정된 전자 장치의 제어 방법.
  9. 인증을 수행하는 전자 장치의 제어 방법에 있어서,
    다른 전자 장치로부터 제 1 코드를 수신하는 동작;
    일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 동작;
    상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하는 동작;
    상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하는 동작;
    상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하는 동작;
    상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 제 2 코드를 생성하는 동작;
    상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하면, 인증을 수행하는 동작; 및
    상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하지 않으면, 인증을 수행하지 않도록 설정된 인증을 수행하는 동작
    을 포함하는 전자 장치의 제어 방법.
  10. 제 9 항에 있어서,
    상기 인증을 수행하는 전자 장치는, 상기 스마트카드로 상기 제 1 코드를 생성하기 위한 전력을 송신하고,
    상기 통신 모듈은 스마트카드로부터 상기 제 1 코드를 수신하는 것을 특징으로 하는 인증을 수행하는 전자 장치의 제어 방법.
  11. 전자 장치에 있어서,
    통신 모듈;
    일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 메모리; 및
    프로세서
    를 포함하고,
    상기 프로세서는,
    상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하고,
    상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하고,
    상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하고,
    상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 코드를 생성하고,
    상기 생성된 코드를 상기 통신 모듈을 통하여 다른 전자 장치로 송신하도록 설정된 전자 장치.
  12. 제 11 항에 있어서,
    상기 전자 장치는 스마트카드이며, 상기 다른 전자 장치는 인증을 수행하는 전자 장치인 것을 특징으로 하는 전자 장치.
  13. 제 11 항에 있어서,
    상기 전자 장치는 스마트카드이며, 상기 다른 전자 장치는 상기 생성된 코드를 중계하는 전자 장치이며,
    상기 다른 전자 장치는 상기 생성된 코드를 인증을 수행하는 전자 장치로 중계하는 것을 특징으로 하는 전자 장치.
  14. 제 1 항에 있어서,
    상기 전자 장치는 스마트카드이며, 상기 다른 전자 장치는 개폐 시스템인 것을 특징으로 하는 전자 장치.
  15. 제 14 항에 있어서,
    상기 개폐 시스템은, 상기 수신된 코드를 이용하여 인증을 수행하거나 또는 인증을 수행하는 또 다른 전자 장치로 상기 수신된 코드에 대한 인증을 요청하도록 설정된 전자 장치.
  16. 제 15 항에 있어서,
    상기 개폐 시스템은, 상기 인증 결과 또는 상기 또 다른 전자 장치로부터 수신된 인증 결과에 기초하여, 시스템의 개폐를 제어하는 것을 특징으로 하는 전자 장치.
  17. 제 1 항에 있어서,
    상기 다른 전자 장치는 홈 네트워크를 구성하는 전자 장치인 것을 특징으로 하는 전자 장치.
  18. 제 17 항에 있어서,
    상기 홈 네트워크를 구성하는 전자 장치는, 상기 인증 결과에 기초하여, 상기 홈 네트워크를 구성하는 전자 장치를 제어하거나 또는 상기 홈 네트워크를 구성하는 또 다른 전자 장치를 제어하도록 설정된 전자 장치.
  19. 인증을 수행하는 전자 장치에 있어서,
    다른 전자 장치로부터 제 1 코드를 수신하는 통신 모듈;
    일회용 암호를 생성하기 위한 제 1 씨드, 제 1 사용자에게 부여된 제 1 고유 코드 및 문자 세트를 저장하는 메모리; 및
    프로세서
    를 포함하고,
    상기 프로세서는,
    상기 제 1 씨드를 이용하여 제 1 OTP(one time password)를 생성하고,
    상기 제 1 OTP 및 제 1 고유 코드의 연산 결과를 상기 문자 세트에 매핑하여 제 1 서브 코드를 생성하고,
    상기 제 1 OTP를 상기 문자 세트에 매핑하여 제 2 서브 코드를 생성하고,
    상기 제 1 서브 코드 및 상기 제 2 서브 코드를 이용하여 제 2 코드를 생성하고,
    상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하면, 인증을 수행하고,
    상기 제 2 코드와 상기 통신 모듈을 통하여 수신된 상기 제 1 코드가 일치하지 않으면, 인증을 수행하지 않도록 설정된 인증을 수행하는 전자 장치.
  20. 제 19 항에 있어서,
    상기 인증을 수행하는 전자 장치는, 상기 스마트카드로 상기 제 1 코드를 생성하기 위한 전력을 송신하고,
    상기 통신 모듈은 스마트카드로부터 상기 제 1 코드를 수신하는 것을 특징으로 하는 인증을 수행하는 전자 장치.
PCT/KR2016/007093 2015-07-01 2016-07-01 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법 WO2017003243A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0094374 2015-07-01
KR1020150094374A KR101572111B1 (ko) 2015-07-01 2015-07-01 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 방법

Publications (1)

Publication Number Publication Date
WO2017003243A1 true WO2017003243A1 (ko) 2017-01-05

Family

ID=54847747

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/KR2015/013444 WO2017003051A1 (ko) 2015-07-01 2015-12-09 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 방법
PCT/KR2016/007093 WO2017003243A1 (ko) 2015-07-01 2016-07-01 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/013444 WO2017003051A1 (ko) 2015-07-01 2015-12-09 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 방법

Country Status (7)

Country Link
US (1) US10341336B2 (ko)
EP (1) EP3113410B1 (ko)
JP (1) JP6199447B2 (ko)
KR (1) KR101572111B1 (ko)
CN (1) CN106452777B (ko)
AU (1) AU2016204540B2 (ko)
WO (2) WO2017003051A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101751894B1 (ko) * 2015-12-29 2017-07-03 한국정보통신주식회사 결제 단말 장치 및 일회용 카드 코드를 이용한 결제 처리 방법
KR101751887B1 (ko) * 2015-12-29 2017-07-11 한국정보통신주식회사 일회용 카드 코드 생성 방법, 그를 이용한 카드 결제 승인 방법, 카드 리더기 및 서버
US20170357799A1 (en) * 2016-06-12 2017-12-14 Logmein, Inc. Tracking and managing multiple time-based one-time password (TOTP) accounts
KR101945738B1 (ko) * 2016-11-29 2019-02-08 충남대학교산학협력단 어플리케이션의 무결성을 검증하기 위한 어플리케이션 서버 및 그 제어 방법
EP3425602B1 (en) * 2017-07-06 2020-09-02 Wincor Nixdorf International GmbH Method and system of performing an authorization mechanism between a service terminal system and a helpdesk system
KR102036155B1 (ko) * 2017-08-16 2019-10-24 (주)디에스멘토링 서버 패스워드 관리 방법 및 장치
US11190495B2 (en) * 2017-10-02 2021-11-30 Colossio, Inc. One-time-pad encryption
US10068082B1 (en) * 2017-11-16 2018-09-04 Fmr Llc Systems and methods for maintaining split knowledge of web-based accounts
JP7192208B2 (ja) * 2017-12-01 2022-12-20 ヤマハ株式会社 機器制御システム、デバイス、プログラム、及び機器制御方法
JP6962158B2 (ja) 2017-12-01 2021-11-05 ヤマハ株式会社 機器制御システム、機器制御方法、及びプログラム
JP7067082B2 (ja) 2018-01-24 2022-05-16 ヤマハ株式会社 機器制御システム、機器制御方法、及びプログラム
CN110391897A (zh) * 2018-04-20 2019-10-29 武汉真元生物数据有限公司 一种基于生物标识的口令生成方法及系统
US10460221B1 (en) * 2018-09-07 2019-10-29 Ryan C. Tucker Displaying a seeded, continuously updating identifier in a QR code
US10893041B2 (en) * 2018-10-10 2021-01-12 International Business Machines Corporation Single use passcode authentication
US10389708B1 (en) * 2019-01-03 2019-08-20 Capital One Services, Llc Secure authentication of a user associated with communication with a service representative
US10769873B1 (en) 2019-06-28 2020-09-08 Alibaba Group Holding Limited Secure smart unlocking
KR102242720B1 (ko) * 2019-07-09 2021-04-21 에스지에이 주식회사 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 otp 설정 방법
KR102227505B1 (ko) * 2019-09-19 2021-03-16 주식회사 이노스코리아 와이파이를 제공하는 억세스 포인트에 연결하는 전자 장치 및 그 동작 방법
KR20210103870A (ko) * 2020-02-14 2021-08-24 주식회사 대림 세대단말기를 중심으로 하는 스마트홈 보안 강화 시스템
US11402814B2 (en) * 2020-04-22 2022-08-02 Capital One Services, Llc Interactive home system including wireless devices
CN111935178B (zh) * 2020-09-23 2020-12-29 南京中孚信息技术有限公司 一种移动设备双因子离线认证方法、系统及装置
EP4020267A1 (en) * 2020-12-22 2022-06-29 Banco Bilbao Vizcaya Argentaria, S.A. Anti-fraud method for authorizing operations
JP7333923B2 (ja) * 2022-01-28 2023-08-28 株式会社ギガ・システム 認証システム、認証モジュール、および認証プログラム
KR20230120309A (ko) * 2022-02-09 2023-08-17 (주)가온아이 포스트 양자 암호 환경을 위한 고 차원 다형성 암호화를 수행하는 전자 장치 및 그 동작 방법
KR102600593B1 (ko) * 2022-12-22 2023-11-09 장준 가상 키보드를 이용하여 데이터를 암호화하기 위한 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069584B1 (en) * 1998-12-08 2006-06-27 Davis Campbell Engineering Llc Process and apparatus for improving the security of authentication procedures using a new “Super PIN”
KR20090033594A (ko) * 2007-10-01 2009-04-06 에스케이 텔레콤주식회사 이동통신 단말기에서의 공인 인증서 비밀번호 인증 장치 및방법
JP2010102637A (ja) * 2008-10-27 2010-05-06 Kddi Corp 数字列変換装置、ユーザ認証システム、数字列変換方法、およびプログラム
KR20110039947A (ko) * 2009-10-13 2011-04-20 주식회사 아레오네트웍스 온라인 무선 결제 방법 및 시스템과 이를 위한 기록매체
KR20150004540A (ko) * 2013-07-03 2015-01-13 (주)에이티솔루션즈 오류 관리를 위한 엔에프씨 기반 다중 오티피 운영 방법

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4879747A (en) * 1988-03-21 1989-11-07 Leighton Frank T Method and system for personal identification
JP3053527B2 (ja) 1993-07-30 2000-06-19 インターナショナル・ビジネス・マシーンズ・コーポレイション パスワードを有効化する方法及び装置、パスワードを生成し且つ予備的に有効化する方法及び装置、認証コードを使用して資源のアクセスを制御する方法及び装置
US10326798B2 (en) * 1998-07-16 2019-06-18 Grid7, LLC System and method for secure data transmission and storage
DE60129682T2 (de) * 2000-03-29 2008-04-30 Vadium Technology Inc., Seattle Einmalige pad-verschlüsselung mit zentralschlüsseldienst und schlüsselfähigen zeichen
US7363494B2 (en) 2001-12-04 2008-04-22 Rsa Security Inc. Method and apparatus for performing enhanced time-based authentication
US20060034456A1 (en) * 2002-02-01 2006-02-16 Secure Choice Llc Method and system for performing perfectly secure key exchange and authenticated messaging
US7519989B2 (en) * 2003-07-17 2009-04-14 Av Thenex Inc. Token device that generates and displays one-time passwords and that couples to a computer for inputting or receiving data for generating and outputting one-time passwords and other functions
JP2007523431A (ja) 2004-02-23 2007-08-16 ベリサイン・インコーポレイテッド トークン認証システムおよび方法
JP2006018773A (ja) 2004-07-05 2006-01-19 Fujitsu Ltd パスワード認証装置、パスワード認証方法およびパスワード認証プログラム
CN1731721A (zh) 2004-08-22 2006-02-08 西安海星现代科技股份有限公司 动态口令生成方法
US7437755B2 (en) * 2005-10-26 2008-10-14 Cisco Technology, Inc. Unified network and physical premises access control server
US9002750B1 (en) * 2005-12-09 2015-04-07 Citicorp Credit Services, Inc. (Usa) Methods and systems for secure user authentication
CN101000673A (zh) 2006-01-13 2007-07-18 蒋利 用户交易口令确认系统及方法
JP4693171B2 (ja) * 2006-03-17 2011-06-01 株式会社日立ソリューションズ 認証システム
EP1999678A1 (en) * 2006-03-29 2008-12-10 Casio Computer Co., Ltd. Identification information output device
US20080072058A1 (en) * 2006-08-24 2008-03-20 Yoram Cedar Methods in a reader for one time password generating device
US20080132235A1 (en) * 2006-11-30 2008-06-05 Motorola, Inc. Method to Facilitate Pre-Provisioning a Wireless Access Point With a One-Time Password to Facilitate Authorized Handoffs for a Given Communication Session
US8255696B2 (en) * 2007-05-01 2012-08-28 Microsoft Corporation One-time password access to password-protected accounts
US8788835B2 (en) * 2007-08-28 2014-07-22 Alcatel Lucent Methods for selectively capturing and replicating one-time password generator functionality from device to device
US8424057B2 (en) * 2007-12-28 2013-04-16 Ebay, Inc. Mobile anti-phishing
US20090220075A1 (en) * 2008-02-28 2009-09-03 Akros Techlabs, Llc Multifactor authentication system and methodology
US9521142B2 (en) 2009-02-03 2016-12-13 Inbay Technologies Inc. System and method for generating passwords using key inputs and contextual inputs
US20100242104A1 (en) 2009-03-23 2010-09-23 Wankmueller John R Methods and systems for secure authentication
US20120131655A1 (en) * 2009-05-11 2012-05-24 Emue Holdings Pty Ltd. User Authentication Device and Method
US8799668B2 (en) * 2009-11-23 2014-08-05 Fred Cheng Rubbing encryption algorithm and security attack safe OTP token
JP2013509840A (ja) * 2009-12-30 2013-03-14 エヌイーシー ヨーロッパ リミテッド ユーザー認証の方法及びシステム
US8412928B1 (en) * 2010-03-31 2013-04-02 Emc Corporation One-time password authentication employing local testing of candidate passwords from one-time password server
US9258296B2 (en) * 2010-07-29 2016-02-09 Nirmal Juthani System and method for generating a strong multi factor personalized server key from a simple user password
US8640206B2 (en) * 2010-08-20 2014-01-28 Regis J. Betsch System and method for controlling access to information stored at plurality of sites
US8312519B1 (en) * 2010-09-30 2012-11-13 Daniel V Bailey Agile OTP generation
US8869255B2 (en) 2010-11-30 2014-10-21 Forticom Group Ltd Method and system for abstracted and randomized one-time use passwords for transactional authentication
KR101360615B1 (ko) 2011-10-18 2014-02-10 김성수 근거리 무선통신을 이용한 주문 서비스 시스템 및 방법
TWI466525B (zh) * 2011-11-21 2014-12-21 Inst Information Industry 存取控制系統及其存取控制方法
US20130185780A1 (en) * 2012-01-12 2013-07-18 Infosys Limited Computer implemented method and system for generating a one time password
US9172698B1 (en) * 2012-10-12 2015-10-27 Ut-Battelle, Llc System and method for key generation in security tokens
US8909933B2 (en) * 2012-10-25 2014-12-09 International Business Machines Corporation Decoupled cryptographic schemes using a visual channel
US9218476B1 (en) * 2012-11-07 2015-12-22 Amazon Technologies, Inc. Token based one-time password security
CN103067892B (zh) 2012-12-21 2015-06-03 深圳一卡通新技术有限公司 一种使用水印的短信传输方法
GB2509322A (en) * 2012-12-28 2014-07-02 Securenvoy Plc Time-based two factor authentication
US8904482B1 (en) 2012-12-31 2014-12-02 Emc Corporation Techniques for securing a one-time passcode with an alteration code
US9313024B1 (en) 2013-06-13 2016-04-12 Masergy Communications, Inc. Keyed communication token
FR3008837B1 (fr) * 2013-07-19 2015-08-07 In Webo Technologies Procede d'authentification forte
US9361445B2 (en) * 2014-01-31 2016-06-07 Google Inc. Multiline one time password
KR101428650B1 (ko) * 2014-03-07 2014-08-13 (주)케이사인 암호화 방법 및 복호화 방법
US9332008B2 (en) * 2014-03-28 2016-05-03 Netiq Corporation Time-based one time password (TOTP) for network authentication
US9621526B2 (en) * 2014-04-10 2017-04-11 OTP Technologies, Inc. Content encryption and decryption
CN105095701A (zh) 2014-05-06 2015-11-25 黄熙镜 一种用户认证的方法、装置和终端设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069584B1 (en) * 1998-12-08 2006-06-27 Davis Campbell Engineering Llc Process and apparatus for improving the security of authentication procedures using a new “Super PIN”
KR20090033594A (ko) * 2007-10-01 2009-04-06 에스케이 텔레콤주식회사 이동통신 단말기에서의 공인 인증서 비밀번호 인증 장치 및방법
JP2010102637A (ja) * 2008-10-27 2010-05-06 Kddi Corp 数字列変換装置、ユーザ認証システム、数字列変換方法、およびプログラム
KR20110039947A (ko) * 2009-10-13 2011-04-20 주식회사 아레오네트웍스 온라인 무선 결제 방법 및 시스템과 이를 위한 기록매체
KR20150004540A (ko) * 2013-07-03 2015-01-13 (주)에이티솔루션즈 오류 관리를 위한 엔에프씨 기반 다중 오티피 운영 방법

Also Published As

Publication number Publication date
US10341336B2 (en) 2019-07-02
KR101572111B1 (ko) 2015-11-27
JP2017017711A (ja) 2017-01-19
US20170006026A1 (en) 2017-01-05
JP6199447B2 (ja) 2017-09-20
EP3113410A1 (en) 2017-01-04
WO2017003051A1 (ko) 2017-01-05
AU2016204540A1 (en) 2017-01-19
CN106452777A (zh) 2017-02-22
EP3113410B1 (en) 2019-03-27
AU2016204540B2 (en) 2017-10-12
CN106452777B (zh) 2019-12-13

Similar Documents

Publication Publication Date Title
WO2017003243A1 (ko) 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법
WO2021071157A1 (en) Electronic device and method for managing blockchain address using the same
WO2020032321A1 (ko) 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
WO2016129838A1 (en) Electronic device and method for processing secure information
WO2015016627A1 (ko) 동일한 네트워크 상의 복수개의 ap 장치 중 하나의 ap 장치와 단말기를 연결하는 방법 및 장치
CN107113171A (zh) 安全通信系统、方法及装置
WO2021261728A1 (ko) 다기능을 가지는 보안 연결을 제공하는 보안 통신 장치 및 그 동작 방법
WO2021075867A1 (ko) 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
WO2018034491A1 (en) A primary device, an accessory device, and methods for processing operations on the primary device and the accessory device
WO2020091525A1 (ko) 생체 인증을 이용한 결제 방법 및 그 전자 장치
WO2022114857A1 (ko) 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법
WO2017188497A1 (ko) 무결성 및 보안성이 강화된 사용자 인증방법
WO2019139421A1 (en) User terminal device, electronic device, system comprising the same and control method thereof
WO2015026083A1 (ko) 휴대폰 본인인증 도용방지와 스미싱 방지를 위한 문자메시지 보안시스템 및 방법
WO2020149500A1 (ko) 공유된 키를 등록하기 위한 방법 및 장치
WO2018110775A1 (ko) 전자 기기 인증 매니저 장치
WO2023085588A1 (ko) 운전자 인증에 기반한 차량 제어 방법 및 전자 장치
WO2021054619A1 (ko) 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법
WO2020235733A1 (ko) 유저 바이오 데이터를 이용한 유저 인증 및 서명 장치와 방법
WO2021133074A2 (ko) 경량 기기 전용 개체 또는 메시지 인증 방법 및 이를 수행하는 장치들
WO2019107946A1 (en) Electronic device and method for processing remote payment
WO2023054857A1 (ko) 네트워크 내의 장치
WO2022182102A1 (ko) 사용자 인증을 수행하는 방법 및 이를 수행하는 장치
WO2017071448A1 (zh) 一种移动网络注册方法及相关设备、系统
WO2022203094A1 (ko) 알에스에이를 방지하는 전자 장치 및 그 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16818276

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16818276

Country of ref document: EP

Kind code of ref document: A1