WO2023153717A1 - Electronic device for performing high-dimensional polymorphic encryption for post-quantum encryption environment, and operating method thereof - Google Patents

Electronic device for performing high-dimensional polymorphic encryption for post-quantum encryption environment, and operating method thereof Download PDF

Info

Publication number
WO2023153717A1
WO2023153717A1 PCT/KR2023/001519 KR2023001519W WO2023153717A1 WO 2023153717 A1 WO2023153717 A1 WO 2023153717A1 KR 2023001519 W KR2023001519 W KR 2023001519W WO 2023153717 A1 WO2023153717 A1 WO 2023153717A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
random number
counter
encryption
generate
Prior art date
Application number
PCT/KR2023/001519
Other languages
French (fr)
Korean (ko)
Inventor
안영택
강유진
염중배
Original Assignee
(주)가온아이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)가온아이 filed Critical (주)가온아이
Publication of WO2023153717A1 publication Critical patent/WO2023153717A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/70Photonic quantum communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Definitions

  • Various embodiments relate to an electronic device that performs high-dimensional polymorphic encryption for a post-quantum cryptography environment and an operating method thereof, and more particularly, to an electronic device using a synchronized key and/or cryptographic package and an operating method thereof. .
  • Quantum computing may mean a technique of performing calculations based on quantum mechanical concepts such as superposition or entanglement.
  • quantum computing can perform calculations based on qubits (or quantum bits).
  • a bit in legacy computing can be represented by 0 and 1, but a qubit can be represented by a linear combination of a state (or vector, or ket) corresponding to 0 and a state corresponding to 1. Accordingly, even for one qubit, various states exceeding two states may be expressed.
  • the calculation speed of quantum computing may be overwhelmingly greater than that of legacy computing, and there is a concern that existing cryptography and algorithms may be incapacitated by quantum computing.
  • various encryption algorithms e.g., multivariate-based encryption algorithms, code-based encryption algorithms, lattice-based encryption algorithms, isogeny-based encryption algorithms, and hash-based encryption algorithms
  • multivariate-based encryption algorithms e.g., multivariate-based encryption algorithms, code-based encryption algorithms, lattice-based encryption algorithms, isogeny-based encryption algorithms, and hash-based encryption algorithms
  • An electronic device and an operating method thereof may perform encryption on plain text using a dynamically changing encryption package based on a dynamically changing key.
  • An electronic device and an operating method thereof may perform decryption of ciphertext using a dynamically changing encryption package based on a dynamically changing key.
  • a first electronic device may include a memory for storing a plurality of encryption packages each including an encryption algorithm and/or a decryption algorithm, a processor functionally connected to the memory, and a processor functionally connected to the processor.
  • a communication circuit wherein the processor generates a first random number based on a first counter, selects a first encryption package from among the plurality of encryption packages based on the first random number, and generates a first key and the communication circuitry to generate a first ciphertext based on applying the first plaintext to an encryption algorithm of the first encryption package, and transmit information including the first ciphertext and the first counter to a second electronic device.
  • the processor generates a first random number based on a first counter, selects a first encryption package from among the plurality of encryption packages based on the first random number, and generates a first key and the communication circuitry to generate a first ciphertext based on applying the first plaintext to an encryption algorithm of the first encryption package, and transmit information including the first cipher
  • the second electronic device includes a memory for storing a plurality of encryption packages, each of which includes an encryption algorithm and/or a decryption algorithm, a processor functionally connected to the memory, and a processor functionally connected to the processor. and a communication circuit, wherein the processor receives information including a first counter and a first ciphertext through the communication circuit, generates a first random number based on the first counter, and generates a first random number based on the first counter. Based on selecting a first encryption package from among the plurality of encryption packages and applying a first key and the first ciphertext to a decryption algorithm of the first encryption package, a first encryption package corresponding to the first ciphertext Can be set to generate plaintext.
  • a method of operating a first electronic device storing a plurality of encryption packages, each of which includes an encryption algorithm and/or a decryption algorithm includes generating a first random number based on a first counter; Selecting a first encryption package from among the plurality of encryption packages based on a first random number, and generating a first ciphertext based on applying a first key and a first plaintext to an encryption algorithm of the first encryption package. and transmitting information including the first cipher text and the first counter to a second electronic device.
  • a method of operating a second electronic device storing a plurality of encryption packages, each of which includes an encryption algorithm and/or a decryption algorithm includes, from a first electronic device, a first counter and a first cipher text. Receiving information, generating a first random number based on the first counter, selecting a first encryption package among the plurality of encryption packages based on the first random number, and using a first key and generating a first plaintext corresponding to the first ciphertext based on applying the first ciphertext to a decryption algorithm of the first encryption package.
  • an electronic device capable of encrypting plaintext using a dynamically changed encryption package based on a dynamically changed key and an operating method thereof may be provided.
  • an electronic device capable of decrypting ciphertext using a dynamically changed encryption package based on a dynamically changed key and an operating method thereof may be provided.
  • FIG. 1 is a flowchart illustrating an operating method of a first electronic device performing encryption and a second electronic device performing decryption according to a comparative example for comparison with various embodiments.
  • FIG. 2 is a diagram for explaining processes of generating ciphertext, transmitting ciphertext, and generating plaintext based on ciphertext according to various embodiments.
  • FIG. 3 shows a block diagram of electronic devices according to various embodiments.
  • FIG. 4 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • FIG. 5 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • FIG. 6 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • FIG. 7 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • FIG. 8 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • FIG. 9 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • FIG. 10 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
  • FIG. 11 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
  • FIG. 12 is a flowchart illustrating an offset determination process according to various embodiments of the present disclosure.
  • FIG. 13 shows a flowchart of a character set determination method according to various embodiments of the present invention.
  • FIG. 14 shows a flowchart of a character set determination method according to various embodiments of the present invention.
  • FIG. 1 is a flowchart illustrating an operating method of a first electronic device performing encryption and a second electronic device performing decryption according to a comparative example for comparison with various embodiments. Meanwhile, those skilled in the art know that at least some of the operations performed by the first electronic device 101 and/or the second electronic device 102 according to the comparative example may also be performed by the electronic device according to various embodiments.
  • the encryption according to the comparative example of FIG. 1 may be referred to as dynamic encryption.
  • the first electronic device 101 may generate cipher text by performing encryption on plain text, and may be referred to as a transmitting device in other words.
  • the second electronic device 102 may generate plain text by performing decryption on the cipher text, and may be referred to as a receiving side device in other words.
  • the first electronic device 101 and the second electronic device 102 may share the secret key K in operation 111 .
  • the first electronic device 101 may select an encryption function E and a decryption function D, which are one of a plurality of encryption systems. For example, the first electronic device 101 may randomly select one of a plurality of encryption systems.
  • the first electronic device 101 may construct an algorithm ⁇ based on the selected encryption function E and/or decryption function D.
  • the first electronic device 101 may obtain an executable code X by compiling an algorithm ⁇ to be built.
  • the first electronic device 101 may transmit the code X to the second electronic device 102 as a receiving device.
  • the first electronic device 101 may obtain ciphertext c by encrypting plaintext m using the encryption function E and the secret key K.
  • the first electronic device 101 may transmit the encrypted text c to the second electronic device 102.
  • the second electronic device 102 may execute code X in operation 125 .
  • the second electronic device 102 may decrypt cipher text c using the execution key and secret key K of code X to obtain plain text m.
  • the second electronic device 102 may store plain text m and delete code X.
  • transmission and reception of code X in operation 119 is essential.
  • FIG. 2 is a diagram for explaining processes of generating ciphertext, transmitting ciphertext, and generating plaintext based on ciphertext according to various embodiments.
  • the first electronic device 101 may be a transmitting device that generates cipher text using plain text
  • the second electronic device 101 is a receiving device that generates plain text using received cipher text.
  • operations performed by the first electronic device 101 may be described on the left
  • operations performed by the second electronic device 102 may be described on the right.
  • An arrow passing through a dotted line may indicate transmission of encrypted text from the first electronic device 101 to the second electronic device 102 .
  • the first round (Round #1) and the second round (Round #2) of FIG. 2 may be divided into units of generation and transmission of one cipher text, but there is no limitation.
  • the first electronic device 101 and the second electronic device 102 may store the encryption package set 200 in advance.
  • the encryption package set 200 may include a plurality of encryption packages 201 , 202 , and 203 .
  • at least some of the plurality of encryption packages 201 , 202 , and 203 may be classified according to the type of encryption algorithm.
  • the plurality of cryptographic packages 201, 202, and 203 include AES, DES, 3DES, LEA, RC2, RC5, RC6, Present, XTEA, TEA, mCrypton, Twofish, Idea, GOST, Katan, PRINTcipher, Blowfish, Khundra, It may be at least some of various encryption algorithms such as Skipjack, Misty1, Prince, Sea, CLEFIA, LED, KLEIN, SEA, NOEKEON, RECTANGLE, Piccolo, SMON, and SPECK.
  • each of at least some of the plurality of encryption packages 201, 202, and 203 may be classified according to a key size.
  • the first encryption package 201 is AES with a key size of 128, and the second encryption package 202 may be implemented with AES with a key size of 192.
  • each of at least some of the plurality of encryption packages 201, 202, and 203 may be classified according to a block size.
  • the first encryption package 201 is RC5 with a 32 block size
  • the second encryption package 202 may be implemented with RC5 with a 64 block size.
  • An encryption package may include an encryption algorithm and/or a decryption algorithm. For example, as the number of encryption packages increases, the possibility of hacking may decrease.
  • highly secure quantum cryptographic algorithms developed later may also be included (or updated) in the cryptographic package set 200.
  • the first electronic device 101 may generate a first cipher text C1 using the first plain text m1 in a first round (round #1).
  • the first electronic device 101 may select a second encryption package 202 from among a plurality of encryption packages 201 , 202 , and 203 .
  • the first electronic device 101 may generate the second encryption package 202 among the plurality of encryption packages 201 , 202 , and 203 based on the first random number R1 .
  • the first electronic device 101 may store in advance a random number generation algorithm T that outputs the first random number R1 based on the first counter t1 (eg, time information).
  • the first counter t1 may be time information of the current time
  • the random number generation algorithm T may be a one time password (OTP) algorithm
  • the first random number R1 may be OTP
  • the random number generation algorithm T may use, for example, a seed shared between the first electronic device 101 and the second electronic device 102 .
  • the first electronic device 101 and the second electronic device 102 may store an algorithm (f) for selecting one of the encryption packages 201 , 202 , and 203 using a random number.
  • a first output value may be output.
  • the first output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203. According to the process described above, among the encryption packages 201 , 202 , and 203 , for example, the second encryption package 202 may be randomly selected.
  • the first electronic device 101 may input the first plain text m1 into the second encryption package 202 .
  • the first electronic device 101 may input the first key K1 into the second encryption package 202 .
  • the first key K1 may be, for example, a symmetric key, but is not limited thereto.
  • the first electronic device 101 and the second electronic device 102 may store an algorithm g for generating the first key K1 using the first random number R1.
  • the format and/or size of a key required for each of the encryption packages 201, 202, and 203 may be different, and an algorithm (g) for generating a key may be selected according to the selected encryption package.
  • cryptographic packages and algorithms for key generation may be managed in pairs.
  • the first key K1 is generated based on the algorithm g, and in another embodiment, the first electronic device 101 may use the first random number as a key for encryption.
  • the first plain text m1 and the first key K1 are input to the second encryption package 202, the first cipher text C1 can be output.
  • the first plaintext m1 and the first key K1 are input to the encryption algorithm included in the second encryption package 202, the first ciphertext C1 may be output.
  • the first electronic device 101 may transmit the first counter t1 using the generated first encrypted text C1 to the second electronic device 102 as a receiving device.
  • the first counter t1 is time information
  • the data area of the first cipher text C1 and the first counter An area (eg, a time stamp) corresponding to t1) may be included.
  • the second electronic device 102 may receive the first ciphertext C1 and the first counter t1.
  • the second electronic device 102 may select one of the encryption packages 201 , 202 , and 203 to perform decryption.
  • the second electronic device 102 may generate a first random number R1 using the received first counter t1. Since the second electronic device 102 and the first electronic device 101 share the same random number generation algorithm T, the first random number R1 can be generated based on the first counter t1. .
  • the second electronic device 102 may select the second encryption package 202 using the first random number R1. For example, when a first random number R1 is input to the algorithm f, a first output value may be output.
  • the first output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203. According to the process described above, among the encryption packages 201 , 202 , and 203 , for example, the second encryption package 202 may be randomly selected.
  • the second electronic device 102 may generate the first key K1 using the first random number R1.
  • the second electronic device 102 may generate the first key K1 based on inputting the first random number R1 to the algorithm g.
  • the format and/or size of a key required for each of the encryption packages 201, 202, and 203 may be different, and an algorithm (g) for generating a key may be selected according to the selected encryption package.
  • cryptographic packages and algorithms for key generation may be managed in pairs.
  • the first key K1 is generated based on the algorithm g, and in another embodiment, the first electronic device 101 may use the first random number as a key for encryption.
  • the second electronic device 102 may input the first key K1 and the first ciphertext C1 into the selected second encryption package 202 .
  • the first key K1 and the first cipher text C1 are input to the decryption algorithm of the second encryption package 202, the first plain text m1 can be output. Accordingly, the second electronic device 102 may obtain the first plain text m1.
  • the first electronic device 101 and the second electronic device 102 may select the same encryption package (eg, the second encryption package 202) from among the plurality of encryption packages 201, 202, and 203. there is. Accordingly, since the transmission process of the code according to the comparative example is not required, not only the amount of transmitted and received data is relatively small, but also security can be increased.
  • the first electronic device 101 may generate the second ciphertext C2 using the second plaintext m2 in the second round (round #2).
  • the first electronic device 101 may select an Nth encryption package 203 from among a plurality of encryption packages 201 , 202 , and 203 .
  • the first electronic device 101 may generate the Nth encryption package 203 among the plurality of encryption packages 201 , 202 , and 203 based on the second random number R2 .
  • the first electronic device 101 may store in advance a random number generation algorithm T that outputs the second random number R2 based on the second counter t2 (eg, time information).
  • the second counter t2 may be time information of the current time
  • the random number generation algorithm T may be an OTP algorithm
  • the second random number R2 may be OTP, but this
  • a second output value may be output.
  • the second output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203.
  • the Nth encryption package 203 may be randomly selected.
  • the first electronic device 101 may input the second plain text m2 into the Nth encryption package 203 .
  • the first electronic device 101 may input the second key K2 into the Nth encryption package 203 .
  • the second key K2 may be, for example, a symmetric key, but is not limited thereto.
  • the first electronic device 101 and the second electronic device 102 may store an algorithm g for generating the first key K2 using the second random number R2.
  • the algorithm g used in the second round (round # 2) is shown as the same as the algorithm g used in the first round (round # 1), but this is exemplary, It will be understood by those skilled in the art that the key generation algorithm (g), as described above, may vary depending on the selected cryptographic package.
  • the second key K2 is generated based on the algorithm (g), and in another embodiment, the first electronic device 101 may use the second random number as a key for encryption.
  • the second plain text m2 and the second key K2 are input to the Nth cryptographic package 203, the second cipher text C2 can be output.
  • the second plaintext m2 and the second key K2 are input to the encryption algorithm included in the Nth encryption package 203, the second ciphertext C2 may be output.
  • the first electronic device 101 may transmit the generated second encrypted text C2 to the second electronic device 102, which is a receiving side device, together with the second counter t2 using the generated second password text C2. .
  • the second counter t2 is time information
  • the data area of the second cipher text C2 and the second counter An area (eg, a time stamp) corresponding to t2) may be included.
  • the second electronic device 102 may receive the second ciphertext C2 and the second counter t2.
  • the second electronic device 102 may select one of the encryption packages 201 , 202 , and 203 to perform decryption.
  • the second electronic device 102 may generate the second random number R2 using the received second counter t2. Since the second electronic device 102 and the first electronic device 101 share the same random number generation algorithm T, the second random number R2 can be generated based on the second counter t2. .
  • the second electronic device 102 may select the Nth encryption package 203 using the second random number R2. For example, when the second random number R2 is input to the algorithm (f), the second output value may be output.
  • the second output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203. According to the above process, among the encryption packages 201 , 202 , and 203 , for example, the Nth encryption package 203 may be randomly selected.
  • the second electronic device 102 may generate the second key K2 using the second random number R2. For example, the second electronic device 102 may generate the second key K2 based on inputting the second random number R2 to the algorithm g. The second electronic device 102 may input the second key K2 and the second ciphertext C2 into the selected second encryption package 202 . As the second key K2 and the second cipher text C2 are input to the decryption algorithm of the second encryption package 202, the second plain text m2 can be output. Accordingly, the second electronic device 102 may obtain the second plain text m2.
  • an encryption package can be randomly selected for each plain text to be transmitted, and in particular, code transmission in the comparative example of FIG. 1 is not required.
  • the above-described encryption and/or decryption may be referred to as high level polymorphic cryptography (HLPC).
  • HLPC high level polymorphic cryptography
  • the cryptographic package set is composed of cryptographic packages for the post-quantum cryptography environment, it can be robust against hacking.
  • FIG. 3 shows a block diagram of electronic devices according to various embodiments.
  • the first electronic device 101 may include at least one of a processor 301 , a communication circuit 302 , and a memory 303 .
  • the second electronic device 102 may include at least one of a processor 311 , a communication circuit 312 , and a memory 313 .
  • At least one of the processor 301 or the processor 311 stores a CPU, a ROM in which a control program for control is stored, and signals or data input from the outside, or the electronic device 101 It may include at least one of RAM (RAM) used as a storage area for work performed in .
  • a CPU may include a single core, dual core, triple core, or quad core.
  • the CPU, ROM and RAM may be interconnected through an internal bus.
  • An operation performed by the first electronic device 101 may be performed by, for example, the processor 301 or other hardware under the control of the processor 301 .
  • performing a specific operation by the first electronic device 101 may mean that the specific operation is performed as an instruction stored in the memory 303 is executed.
  • An operation performed by the second electronic device 102 may be performed by, for example, the processor 311 or other hardware under the control of the processor 311 .
  • performing a specific operation by the second electronic device 102 may mean that the specific operation is performed as an instruction stored in the memory 313 is executed.
  • At least one of the memory 303 or the memory 313 may include both ROM and RAM, and as described above, an algorithm for generating counters (eg, t1 and t2) ( Or, a clock providing time information), a plurality of encryption packages (201, 202, 203), an algorithm (T) for generating a random number, an algorithm (f) for selecting an encryption package, or an algorithm (g) for generating a key. At least one can be stored. At least one of the memory 303 and the memory 313 may be implemented as at least one of a volatile memory and a non-volatile memory, and the implementation form is not limited.
  • At least one of the communication circuit 302 or the communication circuit 312 may transmit and receive data through communication. There is no limitation on the manner of communication performed in the communication circuit 302 or the communication circuit 312 .
  • the processor 301 may randomly select any one of the encryption packages 201 , 202 , and 203 .
  • the processor 301 may generate ciphertext based on plaintext using the selected ciphertext package.
  • the processor 301 may generate a random number, and may generate a key based on the random number, but the key generation method is not limited.
  • processor 301 and/or processor 311 may, via communication circuitry 302 and/or communication circuitry 312, ciphertext (eg, C1 or C2) and a counter (eg, For example, t1 or t2) can be transmitted and received.
  • the processor 311 may randomly select one of the encryption packages 201 , 202 , and 203 .
  • the processor 311 may select the same encryption package as the encryption package used by the first electronic device 101 by selecting an encryption package based on the received counter, for example.
  • the processor 311 may generate plaintext based on the ciphertext using the selected encryption package.
  • the processor 301 may generate a random number, and may generate a key based on the random number, but the key generation method is not limited.
  • FIG. 4 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • the first electronic device 101 and the second electronic device 102 may share a first seed in operation 401 .
  • the first seed may be exchanged between the first electronic device 101 and the second electronic device 102 based on, for example, an elliptic-curve Diffie-Hellman (ECDH) key exchange algorithm.
  • ECDH elliptic-curve Diffie-Hellman
  • the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed.
  • the first electronic device 101 may store a random number generation algorithm using the first seed and the first counter as input values and the first random number as an output value.
  • the random number generation algorithm may be shared with the second electronic device 102 in advance.
  • the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited.
  • the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first random number may be selected, but is not limited thereto.
  • the first electronic device 101 may generate a first key using a first random number.
  • the first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance.
  • the first electronic device 101 may generate the first key by inputting the first random number into the key generation algorithm, but the generation method is not limited.
  • the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key.
  • the first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package.
  • the first electronic device 101 may transmit information including the generated encrypted text and the first counter to the second electronic device 102 in operation 411 .
  • the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed.
  • the second electronic device 102 may obtain the first random number by inputting the first counter received in operation 411 and the first seed shared in advance to the random number generation algorithm.
  • the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited.
  • the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first random number may be selected, but is not limited thereto.
  • the second electronic device 102 may generate a first key using the first random number.
  • the second electronic device 102 may generate the first key by inputting the first random number into the key generation algorithm, but the generation method is not limited.
  • the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext.
  • the second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
  • FIG. 5 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • the first electronic device 101 and the second electronic device 102 may share a first seed and a second seed in operation 501 .
  • the first electronic device 101 generates a first random number corresponding to the first counter using the first seed, and generates a second random number corresponding to the first counter using the second seed.
  • two random numbers may be generated by the first electronic device 501 .
  • the first electronic device 101 may generate two different random numbers by inputting the same counter to two different random number generating algorithms.
  • the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number.
  • the first electronic device 101 may generate a first key using the second random number.
  • the first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance.
  • the first electronic device 101 may generate the first key by inputting the second random number to the key generation algorithm, but the generation method is not limited.
  • the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key.
  • the first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package.
  • the first electronic device 101 may transmit information including the generated encrypted text and the first counter to the second electronic device 102 in operation 511 .
  • the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed, and generate the first random number corresponding to the first counter using the second seed.
  • a second random number corresponding to may be generated.
  • the second electronic device 102 acquires the first random number and the second random number by inputting the first counter received in operation 511 and the first and second seeds shared in advance to a random number generating algorithm, respectively. can do.
  • the first counter may be first time information (or first time stamp), and the first random number and the second random number may be OTPs, but there is no limitation in their types.
  • the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number.
  • the second electronic device 102 may generate a first key using the second random number.
  • the second electronic device 102 may generate the first key by inputting the second random number into the key generation algorithm, but the generation method is not limited.
  • the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext.
  • the second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
  • FIG. 6 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • the first electronic device 101 and the second electronic device 102 may share a first seed in operation 601 .
  • the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed, and generate a second random number by using the first seed.
  • a second random number corresponding to may be generated.
  • the random number generation algorithm may be shared with the second electronic device 102 in advance.
  • the first counter may be first time information (or a first time stamp)
  • the second counter may be second time information (or a second time stamp)
  • a first random number and The second random number may be an OTP, but the type is not limited.
  • the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number.
  • the first electronic device 101 may generate a first key using the second random number.
  • the first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance.
  • the first electronic device 101 may generate the first key by inputting the second random number to the key generation algorithm, but the generation method is not limited.
  • the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key.
  • the first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package.
  • the first electronic device 101 may transmit information including the generated encrypted text and the first counter and the second counter to the second electronic device 102.
  • the second electronic device 102 in operation 613, the second electronic device 102 generates a first random number corresponding to the first counter using the first seed and corresponds to the second counter using the first seed. It is possible to generate a second random number that The second electronic device 102 may obtain the first random number by inputting the first counter received in operation 611 and the first seed shared in advance to the random number generation algorithm.
  • the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited.
  • the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number.
  • the second electronic device 102 may generate a first key using the second random number.
  • the second electronic device 102 may generate the first key by inputting the second random number into the key generation algorithm, but the generation method is not limited.
  • the second electronic device 102 may generate plaintext by decrypting the ciphertext using the first encryption package and the first key.
  • the second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
  • FIG. 7 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • the first electronic device 101 and the second electronic device 102 may share a first seed and a second seed in operation 701 .
  • the first electronic device 101 generates a first random number corresponding to the first counter using the first seed, and generates a second random number corresponding to the second counter using the second seed.
  • the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number.
  • the first electronic device 101 may generate a first key using the second random number.
  • the first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance.
  • the first electronic device 101 may generate the first key by inputting the second random number to the key generation algorithm, but the generation method is not limited.
  • the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key.
  • the first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package.
  • the first electronic device 101 may transmit information including the generated encrypted text and the first counter and the second counter to the second electronic device 102 .
  • the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed, and generate a second random number corresponding to the first counter using the second seed.
  • a second random number corresponding to may be generated.
  • the second electronic device 102 inputs the first counter and the first counter received in operation 711 to the random number generating algorithm, and inputs the second counter and the second seed to the random number generating algorithm, thereby generating the first random number. and a second random number may be obtained.
  • the first counter and the second counter may be first time information and second time information (or first time stamp and second time stamp), and the first random number and the second random number may be OTP. It can be, but the type is not limited.
  • the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number.
  • the second electronic device 102 may generate a first key using the second random number.
  • the second electronic device 102 may generate the first key by inputting the second random number into the key generation algorithm, but the generation method is not limited.
  • the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext.
  • the second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
  • FIG. 8 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • the first electronic device 101 and the second electronic device 102 may share a first seed in operation 801 .
  • the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed.
  • the second electronic device 101 may generate a first random number corresponding to the first counter using the first seed.
  • the first electronic device 101 and the second electronic device 102 may be counter-synchronized (eg, time-synchronized), thereby generating the same first counter.
  • the first electronic device 101 and the second electronic device 102 may store a random number generation algorithm that uses the first seed and the first counter as input values and uses the first random number as an output value. .
  • the random number generation algorithm may be shared with the second electronic device 102 in advance.
  • the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited.
  • the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number.
  • the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number.
  • the first electronic device 101 may generate a first key using a first random number.
  • the second electronic device 102 may generate a first key using the first random number.
  • the first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance.
  • the first electronic device 101 and the second electronic device 102 may generate the first key by inputting the first random number into the key generation algorithm, but the generation method is not limited.
  • the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key.
  • the first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package.
  • the first electronic device 101 may transmit the generated encrypted text to the second electronic device 102 in operation 817 .
  • the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext.
  • the second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
  • FIG. 9 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
  • the first electronic device 101 and the second electronic device 102 may share a first seed and a first unique code in operation 901 .
  • the first unique code may be, for example, a code uniquely assigned to the first electronic device 101 (or its user account) within the encryption system.
  • the first seed and the first unique code may be exchanged between the first electronic device 101 and the second electronic device 102 based on, for example, an ECDH key exchange algorithm, but the exchange method is not limited.
  • the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed.
  • the first electronic device 101 may generate a first code using the first random number and the first unique code. A method of generating the first code will be described later in more detail.
  • the first electronic device 101 may select a first encryption package from among a plurality of encryption packages by using the first code. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first code may be selected, but is not limited thereto.
  • the first electronic device 101 may generate a first key using the first code.
  • the first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance.
  • the first electronic device 101 may generate the first key by inputting the first code into the key generation algorithm, but the generation method is not limited.
  • the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key.
  • the first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package.
  • the first electronic device 101 may transmit information including the generated encrypted text and the first counter to the second electronic device 102 in operation 913 .
  • the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed.
  • the second electronic device 102 may generate a first code using the first random number and the first unique code.
  • the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first code. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first code may be selected, but is not limited thereto.
  • the second electronic device 102 may generate a first key using the first code.
  • the second electronic device 102 may generate the first key by inputting the first code into the key generation algorithm, but the generation method is not limited.
  • the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext.
  • the second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
  • the first electronic device 101 may transmit not only the encrypted text and the first counter but also the first code to the second electronic device 102.
  • the second electronic device 101 may compare the first code generated in operation 917 with the first code received in operation 913 . If the first code generated in operation 917 and the first code received in operation 913 are the same, the second electronic device 102 may confirm that the generated cipher text is valid. Alternatively, when the first code generated in operation 917 and the first code received in operation 913 are not identical, the second electronic device 102 may determine that the generated cipher text is invalid.
  • FIG. 10 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
  • the first electronic device 101 may acquire a first unique code and a first seed that is different for each user.
  • the first seed may be given 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 external device may generate a first unique code for the first user using an algorithm for generating a unique code from a character set and transmit the first unique code to the first electronic device 101 .
  • the external device may generate a unique code for other users, and the unique code assigned to each user may be different.
  • the first electronic device 101 may generate a first OTP, which is an example of a random number, using the first seed and the first time information.
  • the first OTP may be composed of numbers, for example.
  • the first electronic device 101 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a preset character set.
  • the first electronic device 101 sets ⁇ '0', '1', '2', . . . , '9', ,'A', 'B', ... , 'Z' ⁇ is assumed. In addition, it is assumed that the first electronic device 101 acquires “AX83Z0” as the first unique code.
  • the first electronic device 101 may convert each digit of the first unique code into a numeric code by checking the index of each digit of the first unique code in the character set. . For example, the first electronic device 101 converts the unique code of "A" into a numeric code of "10" by confirming that "A", the first character of the first code, is the 11th index in the character set.
  • the first electronic device 101 can convert the unique code of "X” to "33” by confirming that "X” is the 34th index in the character set.
  • the first electronic device 101 may convert the first unique code “AX83Z0” into a numeric code of ⁇ 10,33,8,3,35,0 ⁇ .
  • the first electronic device 101 may sum the first OTP and the numeric code. For example, when the first OTP is "382901", each digit of the first OTP may be added to each digit of the converted numeric code. That is, the electronic device 100 may sum the number codes of ⁇ 10,33,8,3,35,0 ⁇ with the first OTP of ⁇ 3,8,2,9,0,1 ⁇ , and ⁇ 13 ,41,10,12,35,1 ⁇ can be obtained. Meanwhile, if the total number of character set elements in the summation result exceeds 36, for example, the first electronic device 101 performs a mod operation on the summation result to the total number of character set elements. can be replaced by one result.
  • the first electronic device 101 may replace “41” with "5" which is a result of performing a mode operation of 36 on "41". Accordingly, the first electronic device 101 will be described later.
  • the summation result of ⁇ 13,5,10,12,35,1 ⁇ can be obtained.
  • an offset may be applied when generating a summation result.
  • the first electronic device 101 may generate a first sub code by mapping the summation result to a character set. For example, the first electronic device 101 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 101 may acquire "D" corresponding to the index of '13' as the first character of the first sub code. The electronic device 100 may acquire "5" corresponding to the index of '5' as the second character of the first sub code. According to the above method, the first electronic device 101 may acquire the first sub code of "D5ACY1".
  • the first electronic device 101 may generate a second sub-code by mapping the first OTP to a character set. For example, the first electronic device 101 interprets each digit of the first OTP of ⁇ 3,8,2,9,0,1 ⁇ as an index, and generates a second subcode corresponding to each digit. Each digit of the character of can be generated. For example, the first electronic device 101 may acquire the character '3' corresponding to the number '3', and obtain the character '8' corresponding to the number '8'. Accordingly, the first electronic device 101 may acquire the second sub code of “382901”. In another embodiment of the present invention, the 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 in more detail later.
  • the first electronic device 101 may generate a first code including a first sub code and a second sub code.
  • the first electronic device 101 may concatenate the first sub-code and the second sub-code to generate a first code of “D5ACY1382901”, for example.
  • “D5ACY1” which is the first sub-code of the first code, is set by adding the dynamic and randomly generated OTP and the unique code, and guarantees uniqueness by the unique code while dynamic and randomness is guaranteed. It can be.
  • the first electronic device 101 since a code having the same summation result may occur with a low probability, the first electronic device 101 according to various embodiments of the present disclosure may generate a first code, which is a unique code, by concatenating the second sub code.
  • FIG. 11 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
  • the first electronic device 101 may acquire a first unique code and a first seed that is different for each user. As described above, the first electronic device 101 may receive the first unique code and the first seed by receiving the first unique code and the first seed from an external device or by capturing a QR code displayed on another electronic device. can The first seed may be a seed for OTP generation given to the first user by the server.
  • the first electronic device 101 may generate a first OTP using the first seed and first time information.
  • the first electronic device 101 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a character set. For example, the first electronic device 101 may acquire the first unique code of “AX83Z0” and obtain “382901” by using the first time information corresponding to the first time point and the first seed.
  • a first OTP of can be generated.
  • the first electronic device 101 sets preset ⁇ '0', '1', '2', ... , '9', ,'A', 'B', ... , 'Z' ⁇ to convert the first unique code "AX83Z0" into a numeric code of ⁇ 10,33,8,3,35,0 ⁇ .
  • the first electronic device 101 may sum the first OTP and the numeric code. For example, when the first OTP is "382901", each digit of the first OTP may be added to each digit of the converted numeric code. That is, the electronic device 100 may sum the number codes of ⁇ 10,33,8,3,35,0 ⁇ with the first OTP of ⁇ 3,8,2,9,0,1 ⁇ , and ⁇ 13 ,41,10,12,35,1 ⁇ can be obtained.
  • the first electronic device 101 may apply an offset to the summation result. The first electronic device 101 may set the offset to 18, for example. The first electronic device 101 may add an offset of 18 to each digit of the summation result.
  • the first electronic device may obtain a result of mode operation of the size of the character set on the offset-applied summation result. Accordingly, the first electronic device 101 may obtain ⁇ 31, 23, 28, 30, 17, 19 ⁇ , which is the summation result to which the offset is applied.
  • the first electronic device 101 may generate a first sub-code by mapping the offset-applied summation result to a character set.
  • the first electronic device 101 interprets '31', which is the result of summing with the offset applied, as an index in the character set, and obtains 'V', which is the 31st character.
  • the first electronic device 101 may sequentially convert '23', '28', '30', '17', and '19' into characters, thereby generating a first subcode of "VNSUHJ". can do.
  • the first electronic device 101 may apply an offset to the first OTP. Accordingly, the offset 18 is added to each number of the first OTP of ⁇ 3,8,2,9,0,1 ⁇ to generate the first OTP to which the offset of ⁇ 21,26,20,27,18 ⁇ is applied.
  • the first electronic device 101 may generate a second sub-code by mapping the offset-applied first OTP to a character set. That is, the first electronic device 101 may interpret each number of ⁇ 21, 26, 20, 27, 18 ⁇ of the first OTP to which the offset is applied as an index in the character set, and generate the second sub-code. For example, the first electronic device 101 may obtain 'L', which is the 21st character in the character set, based on '21', which is the first number of the first OTP to which the offset is applied. In the above-described manner, the first electronic device 101 may generate the second sub code of "LQKRIJ" from ⁇ 21,26,20,27,18 ⁇ of the first OTP to which the offset is applied.
  • the first electronic device 101 may generate a first code including a first sub code and a second sub code.
  • the first electronic device 101 may concatenate the first sub-code and the second sub-code to generate, for example, the first code of “D5ACY1LQKRIJ”.
  • “D5ACY1” which is the first sub-code of the first code, is set by adding the dynamic and randomly generated OTP and the unique code, and guarantees uniqueness by the unique code while dynamic and randomness is guaranteed. It can be.
  • the first electronic device 101 since a code having the same summation result may occur with a low probability, the first electronic device 101 according to various embodiments of the present disclosure may generate a first code, which is a unique code, by concatenating the second sub code.
  • the character set C given in the same way can be configured in various forms. Also, the elements of C can be shuffled within the same set.
  • a random 6-digit TOTP code would be ‘839023’, ‘659921’.
  • preId + C ( (d + x + offset) % S ); // Append to the character created in the previous step.
  • numOf(T) ⁇ 3, 8, 2, 9, 0, 1 ⁇ ,
  • numOf(T) ⁇ 3, 8, 2, 9, 0, 1 ⁇ ,
  • FIG. 12 is a flowchart illustrating an offset determination process according to various embodiments of the present disclosure.
  • the first electronic device 101 may obtain the same second seed for all users.
  • the second seed may be, for example, a seed value for generating a time-based one-time password, and may be different from the first seed.
  • the first electronic device 101 may generate a second OTP based on the second seed and the first time information, and may determine an offset using the second OTP in operation 1230.
  • the first electronic device 101 may set an offset generated using the second seed as a result value of a mode operation on the number of elements of a character set.
  • the second seed may be the same for all users registered in the system as well as the first user, and accordingly, the offset generated at the first time point may be the same for all users, so that the uniqueness of the generated code can be continuously guaranteed. there is.
  • FIG. 13 shows a flowchart of a character set determination method according to various embodiments of the present invention.
  • the first electronic device 101 may obtain the same second seed for all users.
  • the second seed may be, for example, a seed value for generating a time-based one-time password, and may be different from the first seed.
  • the first electronic device 101 may generate a second OTP using the second seed and the first time information.
  • the first electronic device 101 may determine a character set using the second OTP. For example, the first electronic device 101 may initially acquire a basic character set and determine a character set to be used for code generation by transforming the basic character set based on the second OTP.
  • FIG. 14 shows a flowchart of a character set determination method according to various embodiments of the present invention.
  • the first electronic device 101 may obtain a basic character set.
  • the first electronic device 101 ⁇ '0', '1', '2', . . . , '9' ⁇ .
  • the number of elements of the basic character set may be 10.
  • the first electronic device 101 may generate a second OTP using the second seed and the first time information.
  • the first electronic device 101 may generate the second OTP using the hOTP algorithm. For example, it is assumed that the first electronic device 101 has generated the second OTP of 123456.
  • the first electronic device 101 may obtain an operation result value by performing a mod operation on the second OTP and the size of the character set.
  • the first electronic device 101 may swap the positions of two characters in the basic character set by using the result of the operation. For example, the first electronic device 101 may obtain a mode operation result of 6 for 123456. The first electronic device 101 may interpret the operation result of 6 as an index of the character set and swap the 6th character of the character set with the 0th character.
  • the first electronic device 101 may obtain a character set obtained by shuffling the basic character set by sequentially performing swapping on all characters. For example, with respect to the first character of the character set, the first electronic device 101 interprets OPT generation, mode operation, and operation result values as an index, and swaps the first character with a character corresponding to the index, The above-described process may be performed for all of the second to ninth characters.
  • the first electronic device 101 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 uniqueness of the code generated as described above can be continuously guaranteed.
  • the obtained 6 means the index of C, and the number corresponding to C[6] is exchanged with the C[0]th character to be changed. i.e. swapping.
  • any such software may include, for example, a volatile or non-volatile storage device such as a ROM, whether removable or rewritable, or a memory device such as a RAM, a memory chip, device, or integrated circuit. , or optically or magnetically recordable and machine-readable storage media, such as CDs, DVDs, magnetic disks, or magnetic tapes.
  • the graphic screen updating method of the present invention can be implemented by a computer or portable terminal including a control unit and a memory, and the memory is a program including instructions for implementing the embodiments of the present invention or a machine suitable for storing the programs.
  • the present invention includes a program including code for implementing an apparatus or method described in any claim of this specification and a storage medium readable by a machine (such as a computer) storing such a program.
  • a program may be transmitted electronically through any medium, such as a communication signal transmitted through a wired or wireless connection, and the present invention appropriately includes equivalents thereto.
  • the device may receive and store the program from a program providing device connected by wire or wirelessly.
  • the program providing device includes a memory for storing a program including instructions for causing the graphic processing device to perform a preset content protection method, information necessary for the content protection method, and the like, and wired or wireless communication with the graphic processing device. It may include a communication unit for performing and a control unit for transmitting a corresponding program to the transmitting/receiving device at the request of the graphic processing device or automatically.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Optics & Photonics (AREA)
  • Electromagnetism (AREA)
  • Storage Device Security (AREA)

Abstract

According to various embodiments, a first electronic device comprises: a memory for storing a plurality of encryption packages each including an encryption algorithm and/or a decryption algorithm; a processor functionally connected to the memory; and a communication circuit functionally connected to the processor, wherein the processor may be configured to generate a first random number on the basis of a first counter, select a first encryption package from among the plurality of encryption packages on the basis of the first random number, generate first ciphertext on the basis of applying a first key and first plain text to an encryption algorithm of the first encryption package, and control the communication circuit to transmit information including the first ciphertext and the first counter to a second electronic device.

Description

포스트 양자 암호 환경을 위한 고 차원 다형성 암호화를 수행하는 전자 장치 및 그 동작 방법Electronic device performing high-dimensional polymorphic encryption for a post-quantum cryptographic environment and its operating method
다양한 실시예는 포스트 양자 암호 환경을 위한 고 차원 다형성 암호화를 수행하는 전자 장치 및 그 동작 방법에 관한 것으로, 더욱 상세하게는 동기화된 키 및/또는 암호 패키지를 이용하는 전자 장치 및 그 동작 방법에 관한 것이다.Various embodiments relate to an electronic device that performs high-dimensional polymorphic encryption for a post-quantum cryptography environment and an operating method thereof, and more particularly, to an electronic device using a synchronized key and/or cryptographic package and an operating method thereof. .
최근에 들어 양자 컴퓨팅에 대한 기술이 발전하고 있다. 양자 컴퓨팅은 중첩(superposition) 또는 얽힘(entanglement) 등의 양자역학적인 개념에 기반하여 계산을 수행하는 기술을 의미할 수 있다. 기존의 레거시 컴퓨팅이 비트 단위로 계산을 수행하는 것에 비하여, 양자 컴퓨팅은 큐비트(또는, 양자 비트(quantum bit))에 기반하여 계산을 수행할 수 있다. 레거시 컴퓨팅의 비트는 0과 1로 표현될 수 있으나, 큐비트는 0에 대응하는 상태(또는, 벡터, 또는 켓(ket)) 및 1에 대응하는 상태의 선형 조합으로 표현될 수 있다. 이에 따라, 하나의 큐비트에 대하여서도 2개의 상태를 초과하는 다양한 상태의 표현이 가능할 수 있다.In recent years, technology for quantum computing has been developing. Quantum computing may mean a technique of performing calculations based on quantum mechanical concepts such as superposition or entanglement. Compared to conventional legacy computing that performs calculations in units of bits, quantum computing can perform calculations based on qubits (or quantum bits). A bit in legacy computing can be represented by 0 and 1, but a qubit can be represented by a linear combination of a state (or vector, or ket) corresponding to 0 and a state corresponding to 1. Accordingly, even for one qubit, various states exceeding two states may be expressed.
이에 따라, 양자 컴퓨팅의 계산 속도는 레거시 컴퓨팅의 계산 속도와 비교하여 압도적으로 클 수 있으며, 기존의 암호와 알고리즘이 양자 컴퓨팅에 의하여 무력화될 우려가 있다. 이에 대응하여, 포스트 양자 암호 환경에서 적용 가능한 다양한 암호화 알고리즘(예를 들어, 다변수 기반 암호화 알고리즘, 코드 기반 암호화 알고리즘, 격자 기반 암호화 알고리즘, 아이소제니 기반 암호화 알고리즘, 해시 기반 암호화 알고리즘)이 공개되고 있다.Accordingly, the calculation speed of quantum computing may be overwhelmingly greater than that of legacy computing, and there is a concern that existing cryptography and algorithms may be incapacitated by quantum computing. In response to this, various encryption algorithms (e.g., multivariate-based encryption algorithms, code-based encryption algorithms, lattice-based encryption algorithms, isogeny-based encryption algorithms, and hash-based encryption algorithms) applicable in the post-quantum cryptography environment have been disclosed. .
포스트 양자 암호 환경에서 적용 가능한 다양한 암호화 알고리즘이 공개되고는 있으나, 대부분의 암호화 알고리즘은, 기존의 암호화 알고리즘을 개선하는 것에 초점을 두고 있으며, 이에 따라 기존 암호화 알고리즘의 성능을 획기적으로 증가시키고 있지는 못하다. 이에, 양자 컴퓨팅 환경에서도 안정성을 획기적으로 증가할 수 있는 전자 장치 및 그 동작 방법의 개발이 요청되고 있다.Although various encryption algorithms applicable in the post-quantum cryptography environment have been disclosed, most encryption algorithms focus on improving existing encryption algorithms, and thus, the performance of existing encryption algorithms has not been dramatically increased. Accordingly, there is a demand for the development of an electronic device and an operating method thereof capable of dramatically increasing stability even in a quantum computing environment.
다양한 실시예에 따른 전자 장치 및 그 동작 방법은, 동적으로 변경되는 키를 기반으로, 동적으로 변경되는 암호 패키지를 이용하여 평문(plain text)에 대한 암호화(encryption)를 수행할 수 있다. 다양한 실시예에 따른 전자 장치 및 그 동작 방법은, 동적으로 변경되는 키를 기반으로, 동적으로 변경되는 암호 패키지를 이용하여 암호문에 대한 복호화(decryption)를 수행할 수 있다.An electronic device and an operating method thereof according to various embodiments may perform encryption on plain text using a dynamically changing encryption package based on a dynamically changing key. An electronic device and an operating method thereof according to various embodiments may perform decryption of ciphertext using a dynamically changing encryption package based on a dynamically changing key.
다양한 실시예에 따라서, 제 1 전자 장치는, 각각이 암호화 알고리즘 및/또는 복호화 알고리즘을 포함하는 복수 개의 암호화 패키지들을 저장하는 메모리, 상기 메모리에 기능적으로 연결되는 프로세서, 및 상기 프로세서에 기능적으로 연결되는 통신 회로를 포함하고, 상기 프로세서는, 제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하고, 상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하고, 제 1 키 및 제 1 평문을 상기 제 1 암호화 패키지의 암호화 알고리즘에 적용함에 기반하여, 제 1 암호문을 생성하고, 상기 제 1 암호문 및 상기 제 1 카운터를 포함하는 정보를 제 2 전자 장치로 송신하도록 상기 통신 회로를 제어하도록 설정될 수 있다.According to various embodiments, a first electronic device may include a memory for storing a plurality of encryption packages each including an encryption algorithm and/or a decryption algorithm, a processor functionally connected to the memory, and a processor functionally connected to the processor. A communication circuit, wherein the processor generates a first random number based on a first counter, selects a first encryption package from among the plurality of encryption packages based on the first random number, and generates a first key and the communication circuitry to generate a first ciphertext based on applying the first plaintext to an encryption algorithm of the first encryption package, and transmit information including the first ciphertext and the first counter to a second electronic device. can be set to control
다양한 실시예에 따라서, 제 2 전자 장치는, 각각이 암호화 알고리즘 및/또는 복호화 알고리즘을 포함하는 복수 개의 암호화 패키지들을 저장하는 메모리, 상기 메모리에 기능적으로 연결되는 프로세서, 및 상기 프로세서에 기능적으로 연결되는 통신 회로를 포함하고, 상기 프로세서는, 상기 통신 회로를 통하여 제 1 카운터 및 제 1 암호문을 포함하는 정보를 수신하고, 상기 제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하고, 상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하고, 제 1 키 및 상기 제 1 암호문을 상기 제 1 암호화 패키지의 복호화 알고리즘에 적용함에 기반하여, 상기 제 1 암호문에 대응하는 제 1 평문을 생성하도록 설정될 수 있다.According to various embodiments, the second electronic device includes a memory for storing a plurality of encryption packages, each of which includes an encryption algorithm and/or a decryption algorithm, a processor functionally connected to the memory, and a processor functionally connected to the processor. and a communication circuit, wherein the processor receives information including a first counter and a first ciphertext through the communication circuit, generates a first random number based on the first counter, and generates a first random number based on the first counter. Based on selecting a first encryption package from among the plurality of encryption packages and applying a first key and the first ciphertext to a decryption algorithm of the first encryption package, a first encryption package corresponding to the first ciphertext Can be set to generate plaintext.
다양한 실시예에 따라서, 각각이 암호화 알고리즘 및/또는 복호화 알고리즘을 포함하는 복수 개의 암호화 패키지들을 저장하는 제 1 전자 장치의 동작 방법은, 제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하는 동작, 상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하는 동작, 제 1 키 및 제 1 평문을 상기 제 1 암호화 패키지의 암호화 알고리즘에 적용함에 기반하여, 제 1 암호문을 생성하는 동작, 및 상기 제 1 암호문 및 상기 제 1 카운터를 포함하는 정보를 제 2 전자 장치로 송신하는 동작을 포함할 수 있다.According to various embodiments, a method of operating a first electronic device storing a plurality of encryption packages, each of which includes an encryption algorithm and/or a decryption algorithm, includes generating a first random number based on a first counter; Selecting a first encryption package from among the plurality of encryption packages based on a first random number, and generating a first ciphertext based on applying a first key and a first plaintext to an encryption algorithm of the first encryption package. and transmitting information including the first cipher text and the first counter to a second electronic device.
다양한 실시예에 따라서, 각각이 암호화 알고리즘 및/또는 복호화 알고리즘을 포함하는 복수 개의 암호화 패키지들을 저장하는 제 2 전자 장치의 동작 방법은, 제 1 전자 장치로부터, 제 1 카운터 및 제 1 암호문을 포함하는 정보를 수신하는 동작, 상기 제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하는 동작, 상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하는 동작, 및 제 1 키 및 상기 제 1 암호문을 상기 제 1 암호화 패키지의 복호화 알고리즘에 적용함에 기반하여, 상기 제 1 암호문에 대응하는 제 1 평문을 생성하는 동작을 포함할 수 있다.According to various embodiments, a method of operating a second electronic device storing a plurality of encryption packages, each of which includes an encryption algorithm and/or a decryption algorithm, includes, from a first electronic device, a first counter and a first cipher text. Receiving information, generating a first random number based on the first counter, selecting a first encryption package among the plurality of encryption packages based on the first random number, and using a first key and generating a first plaintext corresponding to the first ciphertext based on applying the first ciphertext to a decryption algorithm of the first encryption package.
다양한 실시예에 따라서, 동적으로 변경되는 키를 기반으로, 동적으로 변경되는 암호 패키지를 이용하여 평문에 대한 암호화를 수행할 수 있는 전자 장치 및 그 동작 방법이 제공될 수 있다. 다양한 실시예에 따라서, 동적으로 변경되는 키를 기반으로, 동적으로 변경되는 암호 패키지를 이용하여 암호문에 대한 복호화를 수행할 수 있는 전자 장치 및 그 동작 방법이 제공될 수 있다.According to various embodiments, an electronic device capable of encrypting plaintext using a dynamically changed encryption package based on a dynamically changed key and an operating method thereof may be provided. According to various embodiments, an electronic device capable of decrypting ciphertext using a dynamically changed encryption package based on a dynamically changed key and an operating method thereof may be provided.
도 1은 다양한 실시예들과의 비교를 위한 비교예에 따른 암호화를 수행하는 제 1 전자 장치 및 복호화를 수행하는 제 2 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.1 is a flowchart illustrating an operating method of a first electronic device performing encryption and a second electronic device performing decryption according to a comparative example for comparison with various embodiments.
도 2는 다양한 실시예에 따른 암호문의 생성, 암호문의 송신, 암호문에 기반한 평문의 생성 과정을 설명하기 위한 도면이다.2 is a diagram for explaining processes of generating ciphertext, transmitting ciphertext, and generating plaintext based on ciphertext according to various embodiments.
도 3은 다양한 실시예에 따른 전자 장치들의 블록도를 도시한다.3 shows a block diagram of electronic devices according to various embodiments.
도 4는 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.4 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
도 5는 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.5 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
도 6은 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.6 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
도 7은 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.7 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
도 8은 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.8 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
도 9는 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.9 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
도 10은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.10 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
도 11은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.11 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
도 12는 본 발명의 다양한 실시예에 따른 오프셋 결정 과정을 설명하기 위한 흐름도를 도시한다.12 is a flowchart illustrating an offset determination process according to various embodiments of the present disclosure.
도 13은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.13 shows a flowchart of a character set determination method according to various embodiments of the present invention.
도 14는 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.14 shows a flowchart of a character set determination method according to various embodiments of the present invention.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 예시적 실시예를 상세하게 설명한다. 다만, 본 발명이 예시적 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 실질적으로 동일한 기능을 수행하는 부재를 나타낸다.Hereinafter, exemplary embodiments according to the present invention will be described in detail with reference to the contents described in the accompanying drawings. However, the present invention is not limited or limited by exemplary embodiments. The same reference numerals presented in each figure indicate members performing substantially the same function.
도 1은 다양한 실시예들과의 비교를 위한 비교예에 따른 암호화를 수행하는 제 1 전자 장치 및 복호화를 수행하는 제 2 전자 장치의 동작 방법을 설명하기 위한 흐름도이다. 한편, 비교예에 따른 제 1 전자 장치(101) 및/또는 제 2 전자 장치(102)에 의하여 수행되는 동작들 중 적어도 일부는, 다양한 실시예에 따른 전자 장치에 의하여서도 수행될 수도 있음을 당업자는 이해할 것이다. 도 1의 비교예에 따른 암호화를 동적 암호화(dynamic encryption)로 명명할 수도 있다.1 is a flowchart illustrating an operating method of a first electronic device performing encryption and a second electronic device performing decryption according to a comparative example for comparison with various embodiments. Meanwhile, those skilled in the art know that at least some of the operations performed by the first electronic device 101 and/or the second electronic device 102 according to the comparative example may also be performed by the electronic device according to various embodiments. will understand The encryption according to the comparative example of FIG. 1 may be referred to as dynamic encryption.
비교예를 따르면, 제 1 전자 장치(101)는, 평문에 대한 암호화를 수행함으로써 암호문을 생성할 수 있으며, 다른 말로 송신 측 장치로 명명될 수도 있다. 제 2 전자 장치(102)는, 암호문에 대한 복호화를 수행함으로써 평문을 생성할 수 있으며, 다른 말로 수신 측 장치로 명명될 수도 있다. 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 111 동작에서 비밀키 K를 공유할 수 있다. 제 1 전자 장치(101)는, 복수의 암호화 시스템들 중 하나인 암호화 함수 E 및 복호화 함수 D를 선택할 수 있다. 예를 들어, 제 1 전자 장치(101)는, 복수의 암호화 시스템들 중 어느 하나를 랜덤하게 선택할 수 있다. 제 1 전자 장치(101)는, 115 동작에서, 선택된 암호화 함수 E 및/또는 복호화 함수 D에 기반하여, 알고리즘 Ω를 구축할 수 있다. 제 1 전자 장치(101)는, 117 동작에서, 구축할 알고리즘 Ω를 컴파일하여 실행 가능한 코드 X를 획득할 수 있다. 제 1 전자 장치(101)는, 119 동작에서, 코드 X를 수신 측 장치인 제 2 전자 장치(102)로 송신할 수 있다.According to the comparative example, the first electronic device 101 may generate cipher text by performing encryption on plain text, and may be referred to as a transmitting device in other words. The second electronic device 102 may generate plain text by performing decryption on the cipher text, and may be referred to as a receiving side device in other words. The first electronic device 101 and the second electronic device 102 may share the secret key K in operation 111 . The first electronic device 101 may select an encryption function E and a decryption function D, which are one of a plurality of encryption systems. For example, the first electronic device 101 may randomly select one of a plurality of encryption systems. In operation 115, the first electronic device 101 may construct an algorithm Ω based on the selected encryption function E and/or decryption function D. In operation 117, the first electronic device 101 may obtain an executable code X by compiling an algorithm Ω to be built. In operation 119, the first electronic device 101 may transmit the code X to the second electronic device 102 as a receiving device.
121 동작에서, 제 1 전자 장치(101)는, 암호화 함수 E 및 비밀 키 K를 이용하여 평문 m을 암호화하여 암호문 c를 획득할 수 있다. 123 동작에서, 제 1 전자 장치(101)는 암호문 c를 제 2 전자 장치(102)로 송신할 수 있다. 제 2 전자 장치(102)는, 125 동작에서 코드 X를 실행할 수 있다. 제 2 전자 장치(102)는, 127 동작에서, 코드 X의 실행 키 및 비밀 키 K를 이용하여, 암호문 c를 복호화하여 평문 m을 획득할 수 있다. 제 2 전자 장치(102)는, 평문 m을 저장하고 코드 X를 삭제할 수 있다. 상술한 바와 같이, 비교예에 따른 동적 암호화 방법에 따르면, 119 동작에서의 코드 X의 송수신이 필수적이다. 이에 따라, 암호문 c의 송신(123 동작) 이외의 추가적인 전자 장치들(101,102) 사이의 데이터 송수신이 요구되는 문제점이 있다. 이는, 실시간 데이터 송수신이 어려운 문제로 귀결될 수도 있다. 뿐만 아니라, 코드 X의 탈취 가능성이 존재하며, 이에 따라 안전성이 담보되기 어려운 점이 있다.In operation 121, the first electronic device 101 may obtain ciphertext c by encrypting plaintext m using the encryption function E and the secret key K. In operation 123, the first electronic device 101 may transmit the encrypted text c to the second electronic device 102. The second electronic device 102 may execute code X in operation 125 . In operation 127, the second electronic device 102 may decrypt cipher text c using the execution key and secret key K of code X to obtain plain text m. The second electronic device 102 may store plain text m and delete code X. As described above, according to the dynamic encryption method according to the comparative example, transmission and reception of code X in operation 119 is essential. Accordingly, there is a problem in that transmission/reception of data between the electronic devices 101 and 102 other than the transmission of the ciphertext c (operation 123) is required. This may result in a difficult problem of real-time data transmission and reception. In addition, there is a possibility of stealing the code X, and thus it is difficult to ensure safety.
도 2는 다양한 실시예에 따른 암호문의 생성, 암호문의 송신, 암호문에 기반한 평문의 생성 과정을 설명하기 위한 도면이다.2 is a diagram for explaining processes of generating ciphertext, transmitting ciphertext, and generating plaintext based on ciphertext according to various embodiments.
다양한 실시예에 따라서, 제 1 전자 장치(101)는 평문을 이용하여 암호문을 생성하는 송신 측 장치일 수 있으며, 제 2 전자 장치(101)는 수신된 암호문을 이용하여 평문을 생성하는 수신 측 장치일 수 있다. 도 2에 도시된 점선을 기준으로 좌측은 제 1 전자 장치(101)에 의하여 수행되는 동작을 설명하며, 우측은 제 2 전자 장치(102)에 의하여 동작을 설명할 수 있다. 점선을 통과하는 화살표는 제 1 전자 장치(101)로부터 제 2 전자 장치(102)로의 암호문 전송을 의미할 수 있다. 아울러, 도 2의 제 1 라운드(라운드 #1) 및 제 2 라운드(라운드 #2)는, 하나의 암호문의 생성 및 송신 단위로 구분될 수 있으나 제한은 없다.According to various embodiments, the first electronic device 101 may be a transmitting device that generates cipher text using plain text, and the second electronic device 101 is a receiving device that generates plain text using received cipher text. can be Based on the dotted line shown in FIG. 2 , operations performed by the first electronic device 101 may be described on the left, and operations performed by the second electronic device 102 may be described on the right. An arrow passing through a dotted line may indicate transmission of encrypted text from the first electronic device 101 to the second electronic device 102 . In addition, the first round (Round #1) and the second round (Round #2) of FIG. 2 may be divided into units of generation and transmission of one cipher text, but there is no limitation.
다양한 실시예에 따라서, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 암호 패키지 셋트(200)을 미리 저장할 수 있다. 암호 패키지 셋트(200)에는, 복수의 암호 패키지들(201,202,203)이 포함될 수 있다. 예를 들어, 복수의 암호 패키지들(201,202,203) 중 적어도 일부 각각은, 암호화 알고리즘의 종류에 따라 구분될 수 있다. 예를 들어, 복수의 암호 패키지들(201,202,203)은, AES, DES, 3DES, LEA, RC2, RC5, RC6, Present, XTEA, TEA, mCrypton, Twofish, Idea, GOST, Katan, PRINTcipher, Blowfish, Khundra, Skipjack, Misty1, Prince, Sea, CLEFIA, LED, KLEIN, SEA, NOEKEON, RECTANGLE, Piccolo, SMON, SPECK 등의 다양한 암호화 알고리즘 중 적어도 일부일 수 있다. 예를 들어, 복수의 암호 패키지들(201,202,203) 중 적어도 일부 각각은, 키 사이즈에 따라 구분될 수 있다. 예를 들어, 제 1 암호 패키지(201)는 128 키 사이즈의 AES이며, 제 2 암호 패키지(202)는 192 키 사이즈의 AES로 구현될 수도 있다. 예를 들어, 복수의 암호 패키지들(201,202,203) 중 적어도 일부 각각은, 블록 사이즈에 따라 구분될 수 있다. 예를 들어, 제 1 암호 패키지(201)는 32 블록 사이즈의 RC5이며, 제 2 암호 패키지(202)는 64 블록 사이즈의 RC5로 구현될 수도 있다. 상술한 바와 같이, 다양한 실시예에 따라서 암호화 알고리즘만으로 암호 패키지들 각각이 구분될 뿐만 아니라, 동일한 암호화 알고리즘이더라도 키 사이즈 및/또는 블록 사이즈에 따라, 암호 패키지들이 구분될 수도 있다. 하나의 암호 패키지에는, 암호화 알고리즘 및/또는 복호화 알고리즘이 포함될 수 있다. 예를 들어, 암호 패키지의 개수가 증가할수록, 해킹의 가능성은 낮아질 수 있다. 현존하는 포스트 양자 암호 알고리즘뿐만 아니라, 추후 개발되는 보안성이 높은 양자 암호 알고리즘 또한 암호 패키지 셋트(200)에 포함(또는, 업데이트)될 수 있다.According to various embodiments, the first electronic device 101 and the second electronic device 102 may store the encryption package set 200 in advance. The encryption package set 200 may include a plurality of encryption packages 201 , 202 , and 203 . For example, at least some of the plurality of encryption packages 201 , 202 , and 203 may be classified according to the type of encryption algorithm. For example, the plurality of cryptographic packages 201, 202, and 203 include AES, DES, 3DES, LEA, RC2, RC5, RC6, Present, XTEA, TEA, mCrypton, Twofish, Idea, GOST, Katan, PRINTcipher, Blowfish, Khundra, It may be at least some of various encryption algorithms such as Skipjack, Misty1, Prince, Sea, CLEFIA, LED, KLEIN, SEA, NOEKEON, RECTANGLE, Piccolo, SMON, and SPECK. For example, each of at least some of the plurality of encryption packages 201, 202, and 203 may be classified according to a key size. For example, the first encryption package 201 is AES with a key size of 128, and the second encryption package 202 may be implemented with AES with a key size of 192. For example, each of at least some of the plurality of encryption packages 201, 202, and 203 may be classified according to a block size. For example, the first encryption package 201 is RC5 with a 32 block size, and the second encryption package 202 may be implemented with RC5 with a 64 block size. As described above, according to various embodiments, not only encryption packages are distinguished only by encryption algorithms, but also encryption packages may be classified according to key size and/or block size even if they are the same encryption algorithm. An encryption package may include an encryption algorithm and/or a decryption algorithm. For example, as the number of encryption packages increases, the possibility of hacking may decrease. In addition to existing post-quantum cryptographic algorithms, highly secure quantum cryptographic algorithms developed later may also be included (or updated) in the cryptographic package set 200.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 제 1 라운드(라운드 #1)에서, 제 1 평문(m1)을 이용하여 제 1 암호문(C1)을 생성할 수 있다. 우선, 제 1 전자 장치(101)는, 복수 개의 암호 패키지들(201,202,203) 중 제 2 암호 패키지(202)를 선택할 수 있다. 하나의 예에서, 제 1 전자 장치(101)는, 복수 개의 암호 패키지들(201,202,203) 중 제 2 암호 패키지(202)를 제 1 랜덤 넘버(R1)에 기반하여 생성할 수 있다. 제 1 전자 장치(101)는 제 1 카운터(t1)(예를 들어, 시간 정보)에 기반하여 제 1 랜덤 넘버(R1)을 출력하는 랜덤 넘버 생성 알고리즘(T)을 미리 저장할 수 있다. 하나의 예에서, 제 1 카운터(t1)는, 현재 시간의 시간 정보일 수 있고, 랜덤 넘버 생성 알고리즘(T)은 OTP(one time password) 알고리즘일 수 있고, 제 1 랜덤 넘버(R1)는 OTP일 수 있으나, 이는 예시적인 것으로 랜덤 넘버의 생성 방식에는 제한이 없음을 당업자는 이해할 것이다. 랜덤 넘버 생성 알고리즘(T)은, 예를 들어 제 1 전자 장치(101) 및 제 2 전자 장치(102) 사이에 공유된 씨드를 이용할 수 있다. 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 랜덤 넘버를 이용하여 암호 패키지들(201,202,203) 중 어느 하나를 선택하는 알고리즘(f)을 저장할 수 있다. 알고리즘(f)에 제 1 랜덤 넘버(R1)가 입력되면 제 1 출력값이 출력될 수 있다. 제 1 출력값은, 예를 들어 암호 패키지들(201,202,203) 중 어느 하나의 식별 정보일 수 있으나, 암호 패키지들(201,202,203) 중 어느 하나를 지칭(또는, 선택)할 수 있는 값이라면 제한이 없다. 상술한 과정에 따라서, 암호 패키지들(201,202,203) 중, 예를 들어 제 2 암호 패키지(202)가 랜덤하게 선택될 수 있다.According to various embodiments, the first electronic device 101 may generate a first cipher text C1 using the first plain text m1 in a first round (round #1). First of all, the first electronic device 101 may select a second encryption package 202 from among a plurality of encryption packages 201 , 202 , and 203 . In one example, the first electronic device 101 may generate the second encryption package 202 among the plurality of encryption packages 201 , 202 , and 203 based on the first random number R1 . The first electronic device 101 may store in advance a random number generation algorithm T that outputs the first random number R1 based on the first counter t1 (eg, time information). In one example, the first counter t1 may be time information of the current time, the random number generation algorithm T may be a one time password (OTP) algorithm, and the first random number R1 may be OTP However, those skilled in the art will understand that this is an example and there is no limitation on the method of generating the random number. The random number generation algorithm T may use, for example, a seed shared between the first electronic device 101 and the second electronic device 102 . The first electronic device 101 and the second electronic device 102 may store an algorithm (f) for selecting one of the encryption packages 201 , 202 , and 203 using a random number. When the first random number R1 is input to the algorithm (f), a first output value may be output. The first output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203. According to the process described above, among the encryption packages 201 , 202 , and 203 , for example, the second encryption package 202 may be randomly selected.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 제 2 암호 패키지(202)에 제 1 평문(m1)을 입력할 수 있다. 제 1 전자 장치(101)는, 제 2 암호 패키지(202)에 제 1 키(K1)를 입력할 수 있다. 제 1 키(K1)는, 예를 들어 대칭키일 수 있으나 제한은 없다. 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 제 1 랜덤 넘버(R1)를 이용하여 제 1 키(K1)를 생성하기 위한 알고리즘(g)을 저장할 수 있다. 예를 들어, 암호 패키지들(201,202,203)마다 요구하는 키의 형식 및/또는 사이즈가 상이할 수도 있으며, 키를 생성하기 위한 알고리즘(g)은, 선택된 암호 패키지에 따라 선택될 수도 있다. 예를 들어, 암호 패키지 및 키 생성을 위한 알고리즘은 쌍(pair)으로 관리될 수도 있다. 한편, 제 1 키(K1)가 알고리즘(g)에 기반하여 생성되는 것은 예시적인 것으로, 다른 실시예에서는 제 1 전자 장치(101)는 제 1 랜덤 넘버를 암호화를 위한 키로 이용할 수도 있다. 제 2 암호 패키지(202)에 제 1 평문(m1) 및 제 1 키(K1)가 입력됨에 따라서, 제 1 암호문(C1)이 출력될 수 있다. 예를 들어, 제 2 암호 패키지(202)에 포함된 암호화 알고리즘에 제 1 평문(m1) 및 제 1 키(K1)가 입력됨에 따라서, 제 1 암호문(C1)이 출력될 수 있다.According to various embodiments, the first electronic device 101 may input the first plain text m1 into the second encryption package 202 . The first electronic device 101 may input the first key K1 into the second encryption package 202 . The first key K1 may be, for example, a symmetric key, but is not limited thereto. The first electronic device 101 and the second electronic device 102 may store an algorithm g for generating the first key K1 using the first random number R1. For example, the format and/or size of a key required for each of the encryption packages 201, 202, and 203 may be different, and an algorithm (g) for generating a key may be selected according to the selected encryption package. For example, cryptographic packages and algorithms for key generation may be managed in pairs. Meanwhile, it is exemplary that the first key K1 is generated based on the algorithm g, and in another embodiment, the first electronic device 101 may use the first random number as a key for encryption. As the first plain text m1 and the first key K1 are input to the second encryption package 202, the first cipher text C1 can be output. For example, as the first plaintext m1 and the first key K1 are input to the encryption algorithm included in the second encryption package 202, the first ciphertext C1 may be output.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 생성된 제 1 암호문(C1)을 이용한 제 1 카운터(t1)와 함께, 수신 측 장치인 제 2 전자 장치(102)로 송신할 수 있다. 만약, 제 1 카운터(t1)가 시간 정보인 경우에는, 제 1 전자 장치(101)로부터 제 2 전자 장치(102)로 송신되는 패킷에는, 제 1 암호문(C1)의 데이터 영역 및 제 1 카운터(t1)에 대응하는 영역(예를 들어, 타임 스탬프)가 포함될 수도 있다. 제 2 전자 장치(102)는, 제 1 암호문(C1) 및 제 1 카운터(t1)를 수신할 수 있다.According to various embodiments, the first electronic device 101 may transmit the first counter t1 using the generated first encrypted text C1 to the second electronic device 102 as a receiving device. . If the first counter t1 is time information, the data area of the first cipher text C1 and the first counter ( An area (eg, a time stamp) corresponding to t1) may be included. The second electronic device 102 may receive the first ciphertext C1 and the first counter t1.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 복호화를 수행하기 위하여 암호 패키지들(201,202,203) 중 어느 하나의 암호 패키지를 선택할 수 있다. 제 2 전자 장치(102)는, 수신된 제 1 카운터(t1)를 이용하여 제 1 랜덤 넘버(R1)을 생성할 수 있다. 제 2 전자 장치(102) 및 제 1 전자 장치(101)는 동일한 랜덤 넘버 생성 알고리즘(T)을 공유하고 있으므로, 제 1 카운터(t1)에 기반하여 제 1 랜덤 넘버(R1)가 생성될 수 있다. 제 2 전자 장치(102)는, 제 1 랜덤 넘버(R1)을 이용하여 제 2 암호 패키지(202)를 선택할 수 있다. 예를 들어, 알고리즘(f)에 제 1 랜덤 넘버(R1)가 입력되면 제 1 출력값이 출력될 수 있다. 제 1 출력값은, 예를 들어 암호 패키지들(201,202,203) 중 어느 하나의 식별 정보일 수 있으나, 암호 패키지들(201,202,203) 중 어느 하나를 지칭(또는, 선택)할 수 있는 값이라면 제한이 없다. 상술한 과정에 따라서, 암호 패키지들(201,202,203) 중, 예를 들어 제 2 암호 패키지(202)가 랜덤하게 선택될 수 있다.According to various embodiments, the second electronic device 102 may select one of the encryption packages 201 , 202 , and 203 to perform decryption. The second electronic device 102 may generate a first random number R1 using the received first counter t1. Since the second electronic device 102 and the first electronic device 101 share the same random number generation algorithm T, the first random number R1 can be generated based on the first counter t1. . The second electronic device 102 may select the second encryption package 202 using the first random number R1. For example, when a first random number R1 is input to the algorithm f, a first output value may be output. The first output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203. According to the process described above, among the encryption packages 201 , 202 , and 203 , for example, the second encryption package 202 may be randomly selected.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 제 1 랜덤 넘버(R1)을 이용하여 제 1 키(K1)를 생성할 수 있다. 예를 들어, 제 2 전자 장치(102)는, 제 1 랜덤 넘버(R1)를 알고리즘(g)에 입력함에 기반하여, 제 1 키(K1)를 생성할 수 있다. 예를 들어, 암호 패키지들(201,202,203)마다 요구하는 키의 형식 및/또는 사이즈가 상이할 수도 있으며, 키를 생성하기 위한 알고리즘(g)은, 선택된 암호 패키지에 따라 선택될 수도 있다. 예를 들어, 암호 패키지 및 키 생성을 위한 알고리즘은 쌍(pair)으로 관리될 수도 있다. 한편, 제 1 키(K1)가 알고리즘(g)에 기반하여 생성되는 것은 예시적인 것으로, 다른 실시예에서는 제 1 전자 장치(101)는 제 1 랜덤 넘버를 암호화를 위한 키로 이용할 수도 있다.According to various embodiments, the second electronic device 102 may generate the first key K1 using the first random number R1. For example, the second electronic device 102 may generate the first key K1 based on inputting the first random number R1 to the algorithm g. For example, the format and/or size of a key required for each of the encryption packages 201, 202, and 203 may be different, and an algorithm (g) for generating a key may be selected according to the selected encryption package. For example, cryptographic packages and algorithms for key generation may be managed in pairs. Meanwhile, it is exemplary that the first key K1 is generated based on the algorithm g, and in another embodiment, the first electronic device 101 may use the first random number as a key for encryption.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 선택된 제 2 암호 패키지(202)에 제 1 키(K1) 및 제 1 암호문(C1)을 입력할 수 있다. 제 2 암호화 패키지(202)의 복호화 알고리즘에 제 1 키(K1) 및 제 1 암호문(C1)이 입력됨에 따라서, 제 1 평문(m1)이 출력될 수 있다. 이에 따라, 제 2 전자 장치(102)는, 제 1 평문(m1)을 획득할 수 있다. 상술한 바와 같이, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 복수 개의 암호 패키지들(201,202,203) 중 동일한 암호 패키지(예를 들어, 제 2 암호 패키지(202))를 선택할 수 있다. 이에 따라, 비교예에 따른 코드의 송신 과정이 요구되지 않음에 따라, 송수신되는 데이터의 양이 상대적으로 적을뿐만 아니라, 보안성 또한 증대될 수 있다.According to various embodiments, the second electronic device 102 may input the first key K1 and the first ciphertext C1 into the selected second encryption package 202 . As the first key K1 and the first cipher text C1 are input to the decryption algorithm of the second encryption package 202, the first plain text m1 can be output. Accordingly, the second electronic device 102 may obtain the first plain text m1. As described above, the first electronic device 101 and the second electronic device 102 may select the same encryption package (eg, the second encryption package 202) from among the plurality of encryption packages 201, 202, and 203. there is. Accordingly, since the transmission process of the code according to the comparative example is not required, not only the amount of transmitted and received data is relatively small, but also security can be increased.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 제 2 라운드(라운드 #2)에서, 제 2 평문(m2)을 이용하여 제 2 암호문(C2)을 생성할 수 있다. 우선, 제 1 전자 장치(101)는, 복수 개의 암호 패키지들(201,202,203) 중 제 N 암호 패키지(203)를 선택할 수 있다. 하나의 예에서, 제 1 전자 장치(101)는, 복수 개의 암호 패키지들(201,202,203) 중 제 N 암호 패키지(203)를 제 2 랜덤 넘버(R2)에 기반하여 생성할 수 있다. 제 1 전자 장치(101)는 제 2 카운터(t2)(예를 들어, 시간 정보)에 기반하여 제 2 랜덤 넘버(R2)을 출력하는 랜덤 넘버 생성 알고리즘(T)을 미리 저장할 수 있다. 하나의 예에서, 제 2 카운터(t2)는, 현재 시간의 시간 정보일 수 있고, 랜덤 넘버 생성 알고리즘(T)은 OTP 알고리즘일 수 있고, 제 2 랜덤 넘버(R2)는 OTP일 수 있으나, 이는 예시적인 것으로 랜덤 넘버의 생성 방식에는 제한이 없음을 당업자는 이해할 것이다. 알고리즘(f)에 제 2 랜덤 넘버(R2)가 입력되면 제 2 출력값이 출력될 수 있다. 제 2 출력값은, 예를 들어 암호 패키지들(201,202,203) 중 어느 하나의 식별 정보일 수 있으나, 암호 패키지들(201,202,203) 중 어느 하나를 지칭(또는, 선택)할 수 있는 값이라면 제한이 없다. 상술한 과정에 따라서, 암호 패키지들(201,202,203) 중, 예를 들어 제 N 암호 패키지(203)가 랜덤하게 선택될 수 있다.According to various embodiments, the first electronic device 101 may generate the second ciphertext C2 using the second plaintext m2 in the second round (round #2). First, the first electronic device 101 may select an Nth encryption package 203 from among a plurality of encryption packages 201 , 202 , and 203 . In one example, the first electronic device 101 may generate the Nth encryption package 203 among the plurality of encryption packages 201 , 202 , and 203 based on the second random number R2 . The first electronic device 101 may store in advance a random number generation algorithm T that outputs the second random number R2 based on the second counter t2 (eg, time information). In one example, the second counter t2 may be time information of the current time, the random number generation algorithm T may be an OTP algorithm, and the second random number R2 may be OTP, but this As an example, those skilled in the art will understand that there is no limitation on the method of generating the random number. When the second random number R2 is input to the algorithm (f), a second output value may be output. The second output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203. According to the above process, among the encryption packages 201 , 202 , and 203 , for example, the Nth encryption package 203 may be randomly selected.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 제 N 암호 패키지(203)에 제 2 평문(m2)을 입력할 수 있다. 제 1 전자 장치(101)는, 제 N 암호 패키지(203)에 제 2 키(K2)를 입력할 수 있다. 제 2 키(K2)는, 예를 들어 대칭키일 수 있으나 제한은 없다. 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 제 2 랜덤 넘버(R2)를 이용하여 제 1 키(K2)를 생성하기 위한 알고리즘(g)을 저장할 수 있다. 한편, 도 2에서는, 제 2 라운드(라운드 #2)에서 이용되는 알고리즘(g)이 제 1 라운드(라운드 #1)에서 이용되는 알고리즘(g)과 동일한 것과 같이 표시되어 있지만, 이는 예시적인 것으로, 상술한 바와 같이 키 생성 알고리즘(g)은, 선택된 암호 패키지에 따라 변경될 수도 있음을 당업자는 이해할 것이다. 한편, 제 2 키(K2)가 알고리즘(g)에 기반하여 생성되는 것은 예시적인 것으로, 다른 실시예에서는 제 1 전자 장치(101)는 제 2 랜덤 넘버를 암호화를 위한 키로 이용할 수도 있다. 제 N 암호 패키지(203)에 제 2 평문(m2) 및 제 2 키(K2)가 입력됨에 따라서, 제 2 암호문(C2)이 출력될 수 있다. 예를 들어, 제 N 암호 패키지(203)에 포함된 암호화 알고리즘에 제 2 평문(m2) 및 제 2 키(K2)가 입력됨에 따라서, 제 2 암호문(C2)이 출력될 수 있다.According to various embodiments, the first electronic device 101 may input the second plain text m2 into the Nth encryption package 203 . The first electronic device 101 may input the second key K2 into the Nth encryption package 203 . The second key K2 may be, for example, a symmetric key, but is not limited thereto. The first electronic device 101 and the second electronic device 102 may store an algorithm g for generating the first key K2 using the second random number R2. Meanwhile, in FIG. 2, the algorithm g used in the second round (round # 2) is shown as the same as the algorithm g used in the first round (round # 1), but this is exemplary, It will be understood by those skilled in the art that the key generation algorithm (g), as described above, may vary depending on the selected cryptographic package. Meanwhile, it is exemplary that the second key K2 is generated based on the algorithm (g), and in another embodiment, the first electronic device 101 may use the second random number as a key for encryption. As the second plain text m2 and the second key K2 are input to the Nth cryptographic package 203, the second cipher text C2 can be output. For example, as the second plaintext m2 and the second key K2 are input to the encryption algorithm included in the Nth encryption package 203, the second ciphertext C2 may be output.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 생성된 제 2 암호문(C2)을 이용한 제 2 카운터(t2)와 함께, 수신 측 장치인 제 2 전자 장치(102)로 송신할 수 있다. 만약, 제 2 카운터(t2)가 시간 정보인 경우에는, 제 1 전자 장치(101)로부터 제 2 전자 장치(102)로 송신되는 패킷에는, 제 2 암호문(C2)의 데이터 영역 및 제 2 카운터(t2)에 대응하는 영역(예를 들어, 타임 스탬프)가 포함될 수도 있다. 제 2 전자 장치(102)는, 제 2 암호문(C2) 및 제 2 카운터(t2)를 수신할 수 있다.According to various embodiments, the first electronic device 101 may transmit the generated second encrypted text C2 to the second electronic device 102, which is a receiving side device, together with the second counter t2 using the generated second password text C2. . If the second counter t2 is time information, the data area of the second cipher text C2 and the second counter ( An area (eg, a time stamp) corresponding to t2) may be included. The second electronic device 102 may receive the second ciphertext C2 and the second counter t2.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 복호화를 수행하기 위하여 암호 패키지들(201,202,203) 중 어느 하나의 암호 패키지를 선택할 수 있다. 제 2 전자 장치(102)는, 수신된 제 2 카운터(t2)를 이용하여 제 2 랜덤 넘버(R2)을 생성할 수 있다. 제 2 전자 장치(102) 및 제 1 전자 장치(101)는 동일한 랜덤 넘버 생성 알고리즘(T)을 공유하고 있으므로, 제 2 카운터(t2)에 기반하여 제 2 랜덤 넘버(R2)가 생성될 수 있다. 제 2 전자 장치(102)는, 제 2 랜덤 넘버(R2)을 이용하여 제 N 암호 패키지(203)를 선택할 수 있다. 예를 들어, 알고리즘(f)에 제 2 랜덤 넘버(R2)가 입력되면 제 2 출력값이 출력될 수 있다. 제 2 출력값은, 예를 들어 암호 패키지들(201,202,203) 중 어느 하나의 식별 정보일 수 있으나, 암호 패키지들(201,202,203) 중 어느 하나를 지칭(또는, 선택)할 수 있는 값이라면 제한이 없다. 상술한 과정에 따라서, 암호 패키지들(201,202,203) 중, 예를 들어 제 N 암호 패키지(203)가 랜덤하게 선택될 수 있다.According to various embodiments, the second electronic device 102 may select one of the encryption packages 201 , 202 , and 203 to perform decryption. The second electronic device 102 may generate the second random number R2 using the received second counter t2. Since the second electronic device 102 and the first electronic device 101 share the same random number generation algorithm T, the second random number R2 can be generated based on the second counter t2. . The second electronic device 102 may select the Nth encryption package 203 using the second random number R2. For example, when the second random number R2 is input to the algorithm (f), the second output value may be output. The second output value may be, for example, identification information of any one of the encryption packages 201, 202, and 203, but is not limited as long as it can indicate (or select) any one of the encryption packages 201, 202, and 203. According to the above process, among the encryption packages 201 , 202 , and 203 , for example, the Nth encryption package 203 may be randomly selected.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 제 2 랜덤 넘버(R2)을 이용하여 제 2 키(K2)를 생성할 수 있다. 예를 들어, 제 2 전자 장치(102)는, 제 2 랜덤 넘버(R2)를 알고리즘(g)에 입력함에 기반하여, 제 2 키(K2)를 생성할 수 있다. 제 2 전자 장치(102)는, 선택된 제 2 암호 패키지(202)에 제 2 키(K2) 및 제 2 암호문(C2)을 입력할 수 있다. 제 2 암호화 패키지(202)의 복호화 알고리즘에 제 2 키(K2) 및 제 2 암호문(C2)이 입력됨에 따라서, 제 2 평문(m2)이 출력될 수 있다. 이에 따라, 제 2 전자 장치(102)는, 제 2 평문(m2)을 획득할 수 있다.According to various embodiments, the second electronic device 102 may generate the second key K2 using the second random number R2. For example, the second electronic device 102 may generate the second key K2 based on inputting the second random number R2 to the algorithm g. The second electronic device 102 may input the second key K2 and the second ciphertext C2 into the selected second encryption package 202 . As the second key K2 and the second cipher text C2 are input to the decryption algorithm of the second encryption package 202, the second plain text m2 can be output. Accordingly, the second electronic device 102 may obtain the second plain text m2.
상술한 바와 같이, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 송신되는 평문마다 랜덤하게 암호 패키지가 선택될 수 있으며, 특히 도 1의 비교예에서의 코드 송신을 요구하지도 않는다. 랜덤하게 암호 패키지가 변경됨에 따라서, 상술한 암호화 및/또는 복호화를, 고 차원 다형성 암호화(high level polymorphic cryptography, HLPC)로 명명할 수 있다. 특히, 암호 패키지 셋트를, 포스트 양자 암호 환경을 위한 암호 패키지들로 구성함에 따라, 해킹에 강인할 수 있다.As described above, in the first electronic device 101 and the second electronic device 102, an encryption package can be randomly selected for each plain text to be transmitted, and in particular, code transmission in the comparative example of FIG. 1 is not required. . As the cryptographic package is randomly changed, the above-described encryption and/or decryption may be referred to as high level polymorphic cryptography (HLPC). In particular, as the cryptographic package set is composed of cryptographic packages for the post-quantum cryptography environment, it can be robust against hacking.
도 3은 다양한 실시예에 따른 전자 장치들의 블록도를 도시한다.3 shows a block diagram of electronic devices according to various embodiments.
다양한 실시예에 따르면, 제 1 전자 장치(101)는, 프로세서(301), 통신 회로(302), 또는 메모리(303) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에 따르면, 제 2 전자 장치(102)는, 프로세서(311), 통신 회로(312), 또는 메모리(313) 중 적어도 하나를 포함할 수 있다.According to various embodiments, the first electronic device 101 may include at least one of a processor 301 , a communication circuit 302 , and a memory 303 . According to various embodiments, the second electronic device 102 may include at least one of a processor 311 , a communication circuit 312 , and a memory 313 .
다양한 실시예에 따라서, 프로세서(301) 또는 프로세서(311) 중 적어도 하나는, CPU, 제어를 위한 제어프로그램이 저장된 롬(ROM) 및 외부로부터 입력되는 신호 또는 데이터를 기억하거나, 전자 장치(101)에서 수행되는 작업을 위한 기억영역으로 사용되는 램(RAM) 중 적어도 하나를 포함할 수 있다. CPU는 싱글 코어, 듀얼 코어, 트리플 코어, 또는 쿼드 코어를 포함할 수 있다. CPU, 롬 및 램은 내부버스(bus)를 통해 상호 연결될 수 있다. 다양한 실시예에 따른 제 1 전자 장치(101)에 의하여 수행되는 동작은, 예를 들어 프로세서(301)에 의하여 수행되거나, 또는 프로세서(301)의 제어에 따라 다른 하드웨어에 의하여 수행될 수 있다. 또는, 제 1 전자 장치(101)에 의하여 특정 동작이 수행됨은, 메모리(303)에 저장된 인스트럭션이 실행됨에 따라, 특정 동작이 수행됨을 의미할 수도 있다. 다양한 실시예에 따른 제 2 전자 장치(102)에 의하여 수행되는 동작은, 예를 들어 프로세서(311)에 의하여 수행되거나, 또는 프로세서(311)의 제어에 따라 다른 하드웨어에 의하여 수행될 수 있다. 또는, 제 2 전자 장치(102)에 의하여 특정 동작이 수행됨은, 메모리(313)에 저장된 인스트럭션이 실행됨에 따라, 특정 동작이 수행됨을 의미할 수도 있다.According to various embodiments, at least one of the processor 301 or the processor 311 stores a CPU, a ROM in which a control program for control is stored, and signals or data input from the outside, or the electronic device 101 It may include at least one of RAM (RAM) used as a storage area for work performed in . A CPU may include a single core, dual core, triple core, or quad core. The CPU, ROM and RAM may be interconnected through an internal bus. An operation performed by the first electronic device 101 according to various embodiments may be performed by, for example, the processor 301 or other hardware under the control of the processor 301 . Alternatively, performing a specific operation by the first electronic device 101 may mean that the specific operation is performed as an instruction stored in the memory 303 is executed. An operation performed by the second electronic device 102 according to various embodiments may be performed by, for example, the processor 311 or other hardware under the control of the processor 311 . Alternatively, performing a specific operation by the second electronic device 102 may mean that the specific operation is performed as an instruction stored in the memory 313 is executed.
다양한 실시예에 따라서, 메모리(303) 또는 메모리(313) 중 적어도 하나는 상기의 롬 및 램을 모두 포함할 수 있으며, 상술한 바와 같은, 카운터(예: t1, t2)의 생성을 위한 알고리즘(또는, 시간 정보를 제공하는 시계), 복수 개의 암호 패키지들(201,202,203), 랜덤 넘버를 생성하기 위한 알고리즘(T), 암호 패키지 선택을 위한 알고리즘(f), 또는 키 생성을 위한 알고리즘(g) 중 적어도 하나를 저장할 수 있다. 메모리(303) 또는 메모리(313) 중 적어도 하나는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 하나로 구현될 수 있으며, 그 구현 형태에는 제한이 없다.According to various embodiments, at least one of the memory 303 or the memory 313 may include both ROM and RAM, and as described above, an algorithm for generating counters (eg, t1 and t2) ( Or, a clock providing time information), a plurality of encryption packages (201, 202, 203), an algorithm (T) for generating a random number, an algorithm (f) for selecting an encryption package, or an algorithm (g) for generating a key. At least one can be stored. At least one of the memory 303 and the memory 313 may be implemented as at least one of a volatile memory and a non-volatile memory, and the implementation form is not limited.
다양한 실시예에 따라서, 통신 회로(302) 또는 통신 회로(312) 중 적어도 하나는 통신을 통하여 데이터를 송수신할 수 있다. 통신 회로(302) 또는 통신 회로(312)에서 수행되는 통신의 방식에는 제한이 없다. According to various embodiments, at least one of the communication circuit 302 or the communication circuit 312 may transmit and receive data through communication. There is no limitation on the manner of communication performed in the communication circuit 302 or the communication circuit 312 .
다양한 실시예에 따라서, 프로세서(301)는, 암호 패키지들(201,202,203) 중 랜덤하게 어느 하나를 선택할 수 있다. 프로세서(301)는, 선택된 암호 패키지를 이용하여, 평문에 기반하여 암호문을 생성할 수 있다. 예를 들어, 프로세서(301)는, 랜덤 넘버를 생성할 수 있으며, 랜덤 넘버에 기반하여 키를 생성할 수 있으나, 키 생성 방식에는 제한이 없다. 다양한 실시예에 따라서, 프로세서(301) 및/또는 프로세서(311)는, 통신 회로(302) 및/또는 통신 회로(312)를 통하여, 암호문(예를 들어, C1 또는 C2) 및 카운터(예를 들어, t1 또는 t2)를 송수신할 수 있다. 프로세서(311)는, 암호 패키지들(201,202,203) 중 랜덤하게 어느 하나를 선택할 수 있다. 프로세서(311)는, 예를 들어 수신된 카운터에 기반하여 암호 패키지를 선택함으로써, 제 1 전자 장치(101)가 이용한 암호 패키지와 동일한 암호 패키지를 선택할 수 있다. 프로세서(311)는, 선택된 암호 패키지를 이용하여, 암호문에 기반하여 평문을 생성할 수 있다. 예를 들어, 프로세서(301)는, 랜덤 넘버를 생성할 수 있으며, 랜덤 넘버에 기반하여 키를 생성할 수 있으나, 키 생성 방식에는 제한이 없다.According to various embodiments, the processor 301 may randomly select any one of the encryption packages 201 , 202 , and 203 . The processor 301 may generate ciphertext based on plaintext using the selected ciphertext package. For example, the processor 301 may generate a random number, and may generate a key based on the random number, but the key generation method is not limited. According to various embodiments, processor 301 and/or processor 311 may, via communication circuitry 302 and/or communication circuitry 312, ciphertext (eg, C1 or C2) and a counter (eg, For example, t1 or t2) can be transmitted and received. The processor 311 may randomly select one of the encryption packages 201 , 202 , and 203 . The processor 311 may select the same encryption package as the encryption package used by the first electronic device 101 by selecting an encryption package based on the received counter, for example. The processor 311 may generate plaintext based on the ciphertext using the selected encryption package. For example, the processor 301 may generate a random number, and may generate a key based on the random number, but the key generation method is not limited.
도 4는 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.4 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
다양한 실시예에 따라서, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 401 동작에서, 제 1 씨드를 공유할 수 있다. 제 1 씨드는, 예를 들어 ECDH(elliptic-curve Diffie-Hellman) 키 교환(key exchange) 알고리즘에 기반하여 제 1 전자 장치(101) 및 제 2 전자 장치(102)가 교환할 수 있으나, 그 교환 방식에는 제한이 없음을 당업자는 이해할 것이다.According to various embodiments, the first electronic device 101 and the second electronic device 102 may share a first seed in operation 401 . The first seed may be exchanged between the first electronic device 101 and the second electronic device 102 based on, for example, an elliptic-curve Diffie-Hellman (ECDH) key exchange algorithm. It will be appreciated by those skilled in the art that there are no limitations on the manner.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 403 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있다. 도 2를 참조하여 설명한 바와 같이, 제 1 전자 장치(101)는, 제 1 씨드 및 제 1 카운터를 입력값으로 하여, 제 1 랜덤 넘버를 출력값으로 하는 랜덤 넘버 생성 알고리즘을 저장할 수 있다. 랜덤 넘버 생성 알고리즘은, 제 2 전자 장치(102)와 미리 공유될 수 있다. 하나의 예에서, 제 1 카운터는 제 1 시간 정보(또는, 제 1 타임 스탬프)일 수 있으며, 제 1 랜덤 넘버는 OTP일 수 있으나 그 종류에는 제한이 없다. 제 1 전자 장치(101)는, 405 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 암호 패키지들 각각에는 식별 가능한 정보(또는, 인덱스)가 부여될 수 있으며, 제 1 랜덤 넘버에 대응하는 정보(또는, 인덱스)의 암호 패키지가 선택될 수도 있으나 제한은 없다.According to various embodiments, in operation 403, the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed. As described with reference to FIG. 2 , the first electronic device 101 may store a random number generation algorithm using the first seed and the first counter as input values and the first random number as an output value. The random number generation algorithm may be shared with the second electronic device 102 in advance. In one example, the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited. In operation 405, the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first random number may be selected, but is not limited thereto.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 407 동작에서, 제 1 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 1 전자 장치(101)는, 제 2 전자 장치(102)와 키 생성 알고리즘을 미리 공유할 수 있다. 제 1 전자 장치(101)는, 키 생성 알고리즘에 제 1 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 1 전자 장치(101)는, 409 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 평문을 암호화하여 암호문을 생성할 수 있다. 제 1 전자 장치(101)는, 제 1 암호 패키지의 암호화 알고리즘에, 제 1 키 및 평문을 입력함으로써, 암호문을 획득할 수 있다. 제 1 전자 장치(101)는, 411 동작에서, 생성된 암호문 및 제 1 카운터를 포함하는 정보를 제 2 전자 장치(102)로 송신할 수 있다.According to various embodiments, in operation 407, the first electronic device 101 may generate a first key using a first random number. The first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance. The first electronic device 101 may generate the first key by inputting the first random number into the key generation algorithm, but the generation method is not limited. In operation 409, the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key. The first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package. The first electronic device 101 may transmit information including the generated encrypted text and the first counter to the second electronic device 102 in operation 411 .
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 413 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있다. 제 2 전자 장치(102)는, 411 동작에서 수신된 제 1 카운터 및 미리 공유된 제 1 씨드를, 랜덤 넘버 생성 알고리즘에 입력함으로써, 제 1 랜덤 넘버를 획득할 수 있다. 하나의 예에서, 제 1 카운터는 제 1 시간 정보(또는, 제 1 타임 스탬프)일 수 있으며, 제 1 랜덤 넘버는 OTP일 수 있으나 그 종류에는 제한이 없다. 제 2 전자 장치(102)는, 415 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 암호 패키지들 각각에는 식별 가능한 정보(또는, 인덱스)가 부여될 수 있으며, 제 1 랜덤 넘버에 대응하는 정보(또는, 인덱스)의 암호 패키지가 선택될 수도 있으나 제한은 없다.According to various embodiments, in operation 413, the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed. The second electronic device 102 may obtain the first random number by inputting the first counter received in operation 411 and the first seed shared in advance to the random number generation algorithm. In one example, the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited. In operation 415, the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first random number may be selected, but is not limited thereto.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 417 동작에서, 제 1 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 2 전자 장치(102)는, 키 생성 알고리즘에 제 1 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 2 전자 장치(102)는, 419 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 암호문을 복호화하여 평문을 생성할 수 있다. 제 2 전자 장치(102)는, 제 1 암호 패키지의 복호화 알고리즘에, 제 1 키 및 암호문을 입력함으로써, 평문을 획득할 수 있다.According to various embodiments, in operation 417, the second electronic device 102 may generate a first key using the first random number. The second electronic device 102 may generate the first key by inputting the first random number into the key generation algorithm, but the generation method is not limited. In operation 419, the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext. The second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
도 5는 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.5 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
다양한 실시예에 따라서, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 501 동작에서, 제 1 씨드 및 제 2 씨드를 공유할 수 있다. 제 1 전자 장치(101)는, 503 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성하고, 제 2 씨드를 이용하여 제 1 카운터에 대응하는 제 2 랜덤 넘버를 생성할 수 있다. 상술한 바와 같이, 제 1 전자 장치(501)에 의하여 2개의 랜덤 넘버가 생성될 수 있다. 또는, 다른 예시에서, 제 1 전자 장치(101)는, 두 개의 상이한 랜덤 넘버 생성 알고리즘에 동일한 카운터를 입력함으로써, 상이한 2개의 랜덤 넘버를 생성할 수도 있음을 당업자는 이해할 것이다. 제 1 전자 장치(101)는, 505 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 다양한 실시예에 따라서, 제 1 전자 장치(101)는, 507 동작에서, 제 2 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 1 전자 장치(101)는, 제 2 전자 장치(102)와 키 생성 알고리즘을 미리 공유할 수 있다. 제 1 전자 장치(101)는, 키 생성 알고리즘에 제 2 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 1 전자 장치(101)는, 509 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 평문을 암호화하여 암호문을 생성할 수 있다. 제 1 전자 장치(101)는, 제 1 암호 패키지의 암호화 알고리즘에, 제 1 키 및 평문을 입력함으로써, 암호문을 획득할 수 있다. 제 1 전자 장치(101)는, 511 동작에서, 생성된 암호문 및 제 1 카운터를 포함하는 정보를 제 2 전자 장치(102)로 송신할 수 있다.According to various embodiments, the first electronic device 101 and the second electronic device 102 may share a first seed and a second seed in operation 501 . In operation 503, the first electronic device 101 generates a first random number corresponding to the first counter using the first seed, and generates a second random number corresponding to the first counter using the second seed. can create As described above, two random numbers may be generated by the first electronic device 501 . Alternatively, those skilled in the art will understand that, in another example, the first electronic device 101 may generate two different random numbers by inputting the same counter to two different random number generating algorithms. In operation 505, the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number. According to various embodiments, in operation 507, the first electronic device 101 may generate a first key using the second random number. The first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance. The first electronic device 101 may generate the first key by inputting the second random number to the key generation algorithm, but the generation method is not limited. In operation 509, the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key. The first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package. The first electronic device 101 may transmit information including the generated encrypted text and the first counter to the second electronic device 102 in operation 511 .
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 513 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있으며, 제 2 씨드를 이용하여 제 1 카운터에 대응하는 제 2 랜덤 넘버를 생성할 수 있다. 제 2 전자 장치(102)는, 511 동작에서 수신된 제 1 카운터 및 미리 공유된 제 1 씨드 및 제 2 씨드 각각을, 랜덤 넘버 생성 알고리즘에 입력함으로써, 제 1 랜덤 넘버 및 제 2 랜덤 넘버를 획득할 수 있다. 하나의 예에서, 제 1 카운터는 제 1 시간 정보(또는, 제 1 타임 스탬프)일 수 있으며, 제 1 랜덤 넘버 및 제 2 랜덤 넘버는 OTP일 수 있으나 그 종류에는 제한이 없다. 제 2 전자 장치(102)는, 415 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 제 2 전자 장치(102)는, 517 동작에서, 제 2 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 2 전자 장치(102)는, 키 생성 알고리즘에 제 2 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 2 전자 장치(102)는, 519 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 암호문을 복호화하여 평문을 생성할 수 있다. 제 2 전자 장치(102)는, 제 1 암호 패키지의 복호화 알고리즘에, 제 1 키 및 암호문을 입력함으로써, 평문을 획득할 수 있다.According to various embodiments, in operation 513, the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed, and generate the first random number corresponding to the first counter using the second seed. A second random number corresponding to may be generated. The second electronic device 102 acquires the first random number and the second random number by inputting the first counter received in operation 511 and the first and second seeds shared in advance to a random number generating algorithm, respectively. can do. In one example, the first counter may be first time information (or first time stamp), and the first random number and the second random number may be OTPs, but there is no limitation in their types. In operation 415, the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number. In operation 517, the second electronic device 102 may generate a first key using the second random number. The second electronic device 102 may generate the first key by inputting the second random number into the key generation algorithm, but the generation method is not limited. In operation 519, the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext. The second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
도 6은 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.6 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
다양한 실시예에 따라서, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 601 동작에서, 제 1 씨드를 공유할 수 있다. 다양한 실시예에 따라서, 제 1 전자 장치(101)는, 603 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있으며, 제 1 씨드를 이용하여 제 2 카운터에 대응하는 제 2 랜덤 넘버를 생성할 수 있다. 랜덤 넘버 생성 알고리즘은, 제 2 전자 장치(102)와 미리 공유될 수 있다. 하나의 예에서, 제 1 카운터는 제 1 시간 정보(또는, 제 1 타임 스탬프)일 수 있고, 제 2 카운터는 제 2 시간 정보(또는, 제 2 타임 스탬프)일 수 있으며, 제 1 랜덤 넘버 및 제 2 랜덤 넘버는 OTP일 수 있으나 그 종류에는 제한이 없다. 제 1 전자 장치(101)는, 605 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 다양한 실시예에 따라서, 제 1 전자 장치(101)는, 607 동작에서, 제 2 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 1 전자 장치(101)는, 제 2 전자 장치(102)와 키 생성 알고리즘을 미리 공유할 수 있다. 제 1 전자 장치(101)는, 키 생성 알고리즘에 제 2 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 1 전자 장치(101)는, 609 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 평문을 암호화하여 암호문을 생성할 수 있다. 제 1 전자 장치(101)는, 제 1 암호 패키지의 암호화 알고리즘에, 제 1 키 및 평문을 입력함으로써, 암호문을 획득할 수 있다. 제 1 전자 장치(101)는, 611 동작에서, 생성된 암호문 및 제 1 카운터 및 제 2 카운터를 포함하는 정보를 제 2 전자 장치(102)로 송신할 수 있다.According to various embodiments, the first electronic device 101 and the second electronic device 102 may share a first seed in operation 601 . According to various embodiments, in operation 603, the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed, and generate a second random number by using the first seed. A second random number corresponding to may be generated. The random number generation algorithm may be shared with the second electronic device 102 in advance. In one example, the first counter may be first time information (or a first time stamp), the second counter may be second time information (or a second time stamp), and a first random number and The second random number may be an OTP, but the type is not limited. In operation 605, the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number. According to various embodiments, in operation 607, the first electronic device 101 may generate a first key using the second random number. The first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance. The first electronic device 101 may generate the first key by inputting the second random number to the key generation algorithm, but the generation method is not limited. In operation 609, the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key. The first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package. In operation 611, the first electronic device 101 may transmit information including the generated encrypted text and the first counter and the second counter to the second electronic device 102.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 613 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성하고, 제 1 씨드를 이용하여 제 2 카운터에 대응하는 제 2 랜덤 넘버를 생성할 수 있다. 제 2 전자 장치(102)는, 611 동작에서 수신된 제 1 카운터 및 미리 공유된 제 1 씨드를, 랜덤 넘버 생성 알고리즘에 입력함으로써, 제 1 랜덤 넘버를 획득할 수 있다. 하나의 예에서, 제 1 카운터는 제 1 시간 정보(또는, 제 1 타임 스탬프)일 수 있으며, 제 1 랜덤 넘버는 OTP일 수 있으나 그 종류에는 제한이 없다. 제 2 전자 장치(102)는, 615 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다.According to various embodiments, in operation 613, the second electronic device 102 generates a first random number corresponding to the first counter using the first seed and corresponds to the second counter using the first seed. It is possible to generate a second random number that The second electronic device 102 may obtain the first random number by inputting the first counter received in operation 611 and the first seed shared in advance to the random number generation algorithm. In one example, the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited. In operation 615, the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number.
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 617 동작에서, 제 2 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 2 전자 장치(102)는, 키 생성 알고리즘에 제 2 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 2 전자 장치(102)는, 619 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 암호문을 복호화하여 평문을 생성할 수 있다. 제 2 전자 장치(102)는, 제 1 암호 패키지의 복호화 알고리즘에, 제 1 키 및 암호문을 입력함으로써, 평문을 획득할 수 있다.According to various embodiments, in operation 617, the second electronic device 102 may generate a first key using the second random number. The second electronic device 102 may generate the first key by inputting the second random number into the key generation algorithm, but the generation method is not limited. In operation 619, the second electronic device 102 may generate plaintext by decrypting the ciphertext using the first encryption package and the first key. The second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
도 7은 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.7 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
다양한 실시예에 따라서, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 701 동작에서, 제 1 씨드 및 제 2 씨드를 공유할 수 있다. 제 1 전자 장치(101)는, 703 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성하고, 제 2 씨드를 이용하여 제 2 카운터에 대응하는 제 2 랜덤 넘버를 생성할 수 있다. 제 1 전자 장치(101)는, 705 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 다양한 실시예에 따라서, 제 1 전자 장치(101)는, 707 동작에서, 제 2 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 1 전자 장치(101)는, 제 2 전자 장치(102)와 키 생성 알고리즘을 미리 공유할 수 있다. 제 1 전자 장치(101)는, 키 생성 알고리즘에 제 2 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 1 전자 장치(101)는, 709 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 평문을 암호화하여 암호문을 생성할 수 있다. 제 1 전자 장치(101)는, 제 1 암호 패키지의 암호화 알고리즘에, 제 1 키 및 평문을 입력함으로써, 암호문을 획득할 수 있다. 제 1 전자 장치(101)는, 711 동작에서, 생성된 암호문 및 제 1 카운터 및 제 2 카운터를 포함하는 정보를 제 2 전자 장치(102)로 송신할 수 있다.According to various embodiments, the first electronic device 101 and the second electronic device 102 may share a first seed and a second seed in operation 701 . In operation 703, the first electronic device 101 generates a first random number corresponding to the first counter using the first seed, and generates a second random number corresponding to the second counter using the second seed. can create In operation 705, the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number. According to various embodiments, in operation 707, the first electronic device 101 may generate a first key using the second random number. The first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance. The first electronic device 101 may generate the first key by inputting the second random number to the key generation algorithm, but the generation method is not limited. In operation 709, the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key. The first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package. In operation 711 , the first electronic device 101 may transmit information including the generated encrypted text and the first counter and the second counter to the second electronic device 102 .
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 713 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있으며, 제 2 씨드를 이용하여 제 2 카운터에 대응하는 제 2 랜덤 넘버를 생성할 수 있다. 제 2 전자 장치(102)는, 711 동작에서 수신된 제 1 카운터와 제 1 카운터를 랜덤 넘버 생성 알고리즘에 입력하고, 제 2 카운터 및 제 2 씨드를 랜덤 넘버 생성 알고리즘에 입력함으로써, 제 1 랜덤 넘버 및 제 2 랜덤 넘버를 획득할 수 있다. 하나의 예에서, 제 1 카운터 및 제 2 카운터는 제 1 시간 정보 및 제 2 시간 정보(또는, 제 1 타임 스탬프 및 제 2 타임 스탬프)일 수 있으며, 제 1 랜덤 넘버 및 제 2 랜덤 넘버는 OTP일 수 있으나 그 종류에는 제한이 없다. 제 2 전자 장치(102)는, 715 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 제 2 전자 장치(102)는, 717 동작에서, 제 2 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 2 전자 장치(102)는, 키 생성 알고리즘에 제 2 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 2 전자 장치(102)는, 719 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 암호문을 복호화하여 평문을 생성할 수 있다. 제 2 전자 장치(102)는, 제 1 암호 패키지의 복호화 알고리즘에, 제 1 키 및 암호문을 입력함으로써, 평문을 획득할 수 있다.According to various embodiments, in operation 713, the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed, and generate a second random number corresponding to the first counter using the second seed. A second random number corresponding to may be generated. The second electronic device 102 inputs the first counter and the first counter received in operation 711 to the random number generating algorithm, and inputs the second counter and the second seed to the random number generating algorithm, thereby generating the first random number. and a second random number may be obtained. In one example, the first counter and the second counter may be first time information and second time information (or first time stamp and second time stamp), and the first random number and the second random number may be OTP. It can be, but the type is not limited. In operation 715, the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number. In operation 717, the second electronic device 102 may generate a first key using the second random number. The second electronic device 102 may generate the first key by inputting the second random number into the key generation algorithm, but the generation method is not limited. In operation 719, the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext. The second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
도 8은 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.8 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
다양한 실시예에 따라서, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 801 동작에서, 제 1 씨드를 공유할 수 있다. 제 1 전자 장치(101)는, 803 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있다. 제 2 전자 장치(101)는, 805 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있다. 예를 들어, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 카운터-동기화(예를 들어, 시간 동기화)될 수 있으며, 이에 따라 동일한 제 1 카운터를 생성할 수 있다. 예를 들어, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 제 1 씨드 및 제 1 카운터를 입력값으로 하여, 제 1 랜덤 넘버를 출력값으로 하는 랜덤 넘버 생성 알고리즘을 저장할 수 있다. 랜덤 넘버 생성 알고리즘은, 제 2 전자 장치(102)와 미리 공유될 수 있다. 하나의 예에서, 제 1 카운터는 제 1 시간 정보(또는, 제 1 타임 스탬프)일 수 있으며, 제 1 랜덤 넘버는 OTP일 수 있으나 그 종류에는 제한이 없다. 제 1 전자 장치(101)는, 807 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 제 2 전자 장치(102)는, 809 동작에서, 제 1 랜덤 넘버를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다.According to various embodiments, the first electronic device 101 and the second electronic device 102 may share a first seed in operation 801 . In operation 803, the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed. In operation 805, the second electronic device 101 may generate a first random number corresponding to the first counter using the first seed. For example, the first electronic device 101 and the second electronic device 102 may be counter-synchronized (eg, time-synchronized), thereby generating the same first counter. For example, the first electronic device 101 and the second electronic device 102 may store a random number generation algorithm that uses the first seed and the first counter as input values and uses the first random number as an output value. . The random number generation algorithm may be shared with the second electronic device 102 in advance. In one example, the first counter may be first time information (or first time stamp), and the first random number may be OTP, but the type is not limited. In operation 807, the first electronic device 101 may select a first encryption package from among a plurality of encryption packages using a first random number. In operation 809, the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first random number.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 811 동작에서, 제 1 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 2 전자 장치(102)는, 813 동작에서, 제 1 랜덤 넘버를 이용하여 제 1 키를 생성할 수 있다. 제 1 전자 장치(101)는, 제 2 전자 장치(102)와 키 생성 알고리즘을 미리 공유할 수 있다. 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 키 생성 알고리즘에 제 1 랜덤 넘버를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 1 전자 장치(101)는, 815 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 평문을 암호화하여 암호문을 생성할 수 있다. 제 1 전자 장치(101)는, 제 1 암호 패키지의 암호화 알고리즘에, 제 1 키 및 평문을 입력함으로써, 암호문을 획득할 수 있다. 제 1 전자 장치(101)는, 817 동작에서, 생성된 암호문을 제 2 전자 장치(102)로 송신할 수 있다. 제 2 전자 장치(102)는, 819 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 암호문을 복호화하여 평문을 생성할 수 있다. 제 2 전자 장치(102)는, 제 1 암호 패키지의 복호화 알고리즘에, 제 1 키 및 암호문을 입력함으로써, 평문을 획득할 수 있다.According to various embodiments, in operation 811, the first electronic device 101 may generate a first key using a first random number. In operation 813, the second electronic device 102 may generate a first key using the first random number. The first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance. The first electronic device 101 and the second electronic device 102 may generate the first key by inputting the first random number into the key generation algorithm, but the generation method is not limited. In operation 815, the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key. The first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package. The first electronic device 101 may transmit the generated encrypted text to the second electronic device 102 in operation 817 . In operation 819, the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext. The second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
도 9는 다양한 실시예에 따른 전자 장치들의 동작 방법을 설명하기 위한 흐름도를 도시한다.9 is a flowchart illustrating a method of operating electronic devices according to various embodiments.
다양한 실시예에 따라서, 제 1 전자 장치(101) 및 제 2 전자 장치(102)는, 901 동작에서, 제 1 씨드 및 제 1 고유 코드를 공유할 수 있다. 제 1 고유 코드는, 예를 들어 암호화 시스템 내에서 유일하게 제 1 전자 장치(101)(또는, 그 사용자 계정)에 대하여 부여되는 코드일 수 있다. 제 1 씨드 및 제 1 고유 코드는, 예를 들어 ECDH 키 교환 알고리즘에 기반하여 제 1 전자 장치(101) 및 제 2 전자 장치(102)가 교환할 수 있으나, 그 교환 방식에는 제한이 없음을 당업자는 이해할 것이다.According to various embodiments, the first electronic device 101 and the second electronic device 102 may share a first seed and a first unique code in operation 901 . The first unique code may be, for example, a code uniquely assigned to the first electronic device 101 (or its user account) within the encryption system. The first seed and the first unique code may be exchanged between the first electronic device 101 and the second electronic device 102 based on, for example, an ECDH key exchange algorithm, but the exchange method is not limited. will understand
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 903 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있다. 제 1 전자 장치(101)는, 제 1 랜덤 넘버 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 제 1 코드의 생성 방식에 대하여서는 더욱 상세하게 후술하도록 한다. 제 1 전자 장치(101)는, 907 동작에서, 제 1 코드를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 암호 패키지들 각각에는 식별 가능한 정보(또는, 인덱스)가 부여될 수 있으며, 제 1 코드에 대응하는 정보(또는, 인덱스)의 암호 패키지가 선택될 수도 있으나 제한은 없다.According to various embodiments, in operation 903, the first electronic device 101 may generate a first random number corresponding to the first counter by using the first seed. The first electronic device 101 may generate a first code using the first random number and the first unique code. A method of generating the first code will be described later in more detail. In operation 907, the first electronic device 101 may select a first encryption package from among a plurality of encryption packages by using the first code. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first code may be selected, but is not limited thereto.
다양한 실시예에 따라서, 제 1 전자 장치(101)는, 909 동작에서, 제 1 코드를 이용하여 제 1 키를 생성할 수 있다. 제 1 전자 장치(101)는, 제 2 전자 장치(102)와 키 생성 알고리즘을 미리 공유할 수 있다. 제 1 전자 장치(101)는, 키 생성 알고리즘에 제 1 코드를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 1 전자 장치(101)는, 911 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 평문을 암호화하여 암호문을 생성할 수 있다. 제 1 전자 장치(101)는, 제 1 암호 패키지의 암호화 알고리즘에, 제 1 키 및 평문을 입력함으로써, 암호문을 획득할 수 있다. 제 1 전자 장치(101)는, 913 동작에서, 생성된 암호문 및 제 1 카운터를 포함하는 정보를 제 2 전자 장치(102)로 송신할 수 있다.According to various embodiments, in operation 909, the first electronic device 101 may generate a first key using the first code. The first electronic device 101 may share a key generation algorithm with the second electronic device 102 in advance. The first electronic device 101 may generate the first key by inputting the first code into the key generation algorithm, but the generation method is not limited. In operation 911, the first electronic device 101 may generate ciphertext by encrypting the plaintext using the first encryption package and the first key. The first electronic device 101 may obtain the ciphertext by inputting the first key and the plaintext into the encryption algorithm of the first encryption package. The first electronic device 101 may transmit information including the generated encrypted text and the first counter to the second electronic device 102 in operation 913 .
다양한 실시예에 따라서, 제 2 전자 장치(102)는, 915 동작에서, 제 1 씨드를 이용하여 제 1 카운터에 대응하는 제 1 랜덤 넘버를 생성할 수 있다. 제 2 전자 장치(102)는, 917 동작에서, 제 1 랜덤 넘버 및 제 1 고유 코드를 이용하여 제 1 코드를 생성할 수 있다. 제 2 전자 장치(102)는, 919 동작에서, 제 1 코드를 이용하여 복수의 암호 패키지들 중 제 1 암호 패키지를 선택할 수 있다. 암호 패키지들 각각에는 식별 가능한 정보(또는, 인덱스)가 부여될 수 있으며, 제 1 코드에 대응하는 정보(또는, 인덱스)의 암호 패키지가 선택될 수도 있으나 제한은 없다. 제 2 전자 장치(102)는, 921 동작에서, 제 1 코드를 이용하여 제 1 키를 생성할 수 있다. 제 2 전자 장치(102)는, 키 생성 알고리즘에 제 1 코드를 입력함으로써, 제 1 키를 생성할 수 있으나 그 생성 방식에는 제한이 없다. 제 2 전자 장치(102)는, 923 동작에서, 제 1 암호 패키지 및 제 1 키를 이용하여 암호문을 복호화하여 평문을 생성할 수 있다. 제 2 전자 장치(102)는, 제 1 암호 패키지의 복호화 알고리즘에, 제 1 키 및 암호문을 입력함으로써, 평문을 획득할 수 있다.According to various embodiments, in operation 915, the second electronic device 102 may generate a first random number corresponding to the first counter using the first seed. In operation 917, the second electronic device 102 may generate a first code using the first random number and the first unique code. In operation 919, the second electronic device 102 may select a first encryption package from among a plurality of encryption packages by using the first code. Identifiable information (or index) may be assigned to each of the encryption packages, and an encryption package of information (or index) corresponding to the first code may be selected, but is not limited thereto. In operation 921, the second electronic device 102 may generate a first key using the first code. The second electronic device 102 may generate the first key by inputting the first code into the key generation algorithm, but the generation method is not limited. In operation 923, the second electronic device 102 may decrypt the ciphertext using the first encryption package and the first key to generate plaintext. The second electronic device 102 may obtain plaintext by inputting the first key and the ciphertext to the decryption algorithm of the first encryption package.
한편, 다른 실시예에서, 제 1 전자 장치(101)는, 913 동작에서, 암호문 및 제 1 카운터뿐만 아니라 제 1 코드도 함께, 제 2 전자 장치(102)로 송신할 수도 있다. 제 2 전자 장치(101)는, 917 동작에서 생성된 제 1 코드를, 913 동작에서 수신된 제 1 코드와 비교할 수 있다. 만약, 917 동작에서 생성된 제 1 코드와 913 동작에서 수신된 제 1 코드가 동일한 경우에는, 제 2 전자 장치(102)는, 생성된 암호문이 유효한 것으로 확인할 수 있다. 또는, 917 동작에서 생성된 제 1 코드와 913 동작에서 수신된 제 1 코드가 동일하지 않은 경우에는, 제 2 전자 장치(102)는, 생성된 암호문이 유효하지 않은 것으로 확인할 수 있다.Meanwhile, in another embodiment, in operation 913, the first electronic device 101 may transmit not only the encrypted text and the first counter but also the first code to the second electronic device 102. The second electronic device 101 may compare the first code generated in operation 917 with the first code received in operation 913 . If the first code generated in operation 917 and the first code received in operation 913 are the same, the second electronic device 102 may confirm that the generated cipher text is valid. Alternatively, when the first code generated in operation 917 and the first code received in operation 913 are not identical, the second electronic device 102 may determine that the generated cipher text is invalid.
이하에서는, 상술한 코드를 생성하는 방식에 대하여 설명하도록 한다.Hereinafter, a method of generating the above code will be described.
도 10은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.10 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
1010 동작에서, 제 1 전자 장치(101)는 제 1 고유 코드 및 사용자마다 상이한 제 1 씨드를 획득할 수 있다. 제 1 씨드는 제 1 사용자에게 부여된 것일 수 있다. 한편, 제 1 고유 코드는 ASCII 코드에 기초한 문자열로, 알파벳과 숫자와 특수 문자의 조합일 수 있다. 제 1 고유 코드는 미리 설정된 문자 세트의 원소로부터 선택된 코드일 수 있다. 예를 들어, 외부 장치는 문자 세트로부터 유일한 코드를 생성하는 알고리즘을 이용하여 제 1 사용자를 위한 제 1 고유 코드를 생성하고, 이를 제 1 전자 장치(101)로 송신할 수 있다. 외부 장치는 다른 사용자를 위하여 고유 코드를 생성할 수도 있으며, 사용자들 각각에 부여된 고유 코드는 상이할 수 있다.In operation 1010, the first electronic device 101 may acquire a first unique code and a first seed that is different for each user. The first seed may be given to the first user. Meanwhile, 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. For example, the external device may generate a first unique code for the first user using an algorithm for generating a unique code from a character set and transmit the first unique code to the first electronic device 101 . The external device may generate a unique code for other users, and the unique code assigned to each user may be different.
1020 동작에서, 제 1 전자 장치(101)는 제 1 씨드 및 제 1 시간 정보를 이용하여 랜덤 넘버의 하나의 예시인 제 1 OTP를 생성할 수 있다. 제 1 OTP는 예를 들어 숫자로 구성될 수 있다.In operation 1020, the first electronic device 101 may generate a first OTP, which is an example of a random number, using the first seed and the first time information. The first OTP may be composed of numbers, for example.
1030 동작에서, 제 1 전자 장치(101)는 제 1 고유 코드를 미리 설정된 문자 세트에 매핑하여 제 1 고유 코드에 대응하는 숫자 코드를 생성할 수 있다.In operation 1030, the first electronic device 101 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a preset character set.
예를 들어, 제 1 전자 장치(101)는 미리 설정된 문자 세트로 { '0', '1', '2', …, '9', ,'A', 'B', …, 'Z' }를 이용하는 경우를 상정하도록 한다. 아울러, 제 1 전자 장치(101)는 제 1 고유 코드로 "AX83Z0"를 획득한 것을 상정하도록 한다. 하나의 실시예에서, 제 1 전자 장치(101)는 제 1 고유 코드의 각 자리 문자가 문자 세트에서 몇 번째 인덱스인지를 확인함으로써, 제 1 고유 코드의 각 자리 문자를 숫자 코드로 변환할 수 있다. 예를 들어, 제 1 전자 장치(101)는 제 1 코드의 첫번째 자리 문자인 "A"가 문자 세트에서 11번째 인덱스인 것을 확인함으로써 "A"의 고유 코드를 "10"의 숫자 코드로 변환할 수 있다. 이는, 숫자 코드의 시작점이 0인 것으로부터 기인할 수 있다. 동일한 방식으로, 제 1 전자 장치(101)는 "X"가 문자 세트에서 34번째 인덱스인 것을 확인함으로써 "X"의 고유 코드를 "33"으로 변환할 수 있다. 제 1 전자 장치(101)는 제 1 고유 코드인 "AX83Z0"을 {10,33,8,3,35,0}의 숫자 코드로 변환할 수 있다.For example, the first electronic device 101 sets {'0', '1', '2', . . . , '9', ,'A', 'B', … , 'Z' } is assumed. In addition, it is assumed that the first electronic device 101 acquires “AX83Z0” as the first unique code. In one embodiment, the first electronic device 101 may convert each digit of the first unique code into a numeric code by checking the index of each digit of the first unique code in the character set. . For example, the first electronic device 101 converts the unique code of "A" into a numeric code of "10" by confirming that "A", the first character of the first code, is the 11th index in the character set. can This may be due to the fact that the starting point of the numeric code is 0. In the same way, the first electronic device 101 can convert the unique code of "X" to "33" by confirming that "X" is the 34th index in the character set. The first electronic device 101 may convert the first unique code “AX83Z0” into a numeric code of {10,33,8,3,35,0}.
1040 동작에서, 제 1 전자 장치(101)는 제 1 OTP 및 숫자 코드를 합산할 수 있다. 예를 들어, 제 1 OTP가 "382901"인 경우에는, 제 1 OTP의 각 자리수를 변환된 숫자 코드의 각 자리수와 합산할 수 있다. 즉, 전자 장치(100)는 {10,33,8,3,35,0}의 숫자 코드를 {3,8,2,9,0,1}의 제 1 OTP와 합산할 수 있으며, {13,41,10,12,35,1}의 합산 결과를 획득할 수 있다. 한편, 합산 결과 중 문자 세트의 원소의 총 개수, 예를 들어 36개를 초과하는 경우에는, 제 1 전자 장치(101)는 해당 합산 결과를 문자 세트의 원소의 총 개수에 모드(mod) 연산을 한 결과로 치환할 수 있다. 이 경우에는, 제 1 전자 장치(101)는 "41"을 "41"에 36의 모드 연산을 수행한 결과인 "5"로 치환할 수 있다. 이에 따라, 제 1 전자 장치(101)는후술하도록 한다. {13,5,10,12,35,1}의 합산 결과를 획득할 수 있다. 본 발명의 다른 실시예에서는 합산 결과 생성시 오프셋을 적용할 수도 있다.In operation 1040, the first electronic device 101 may sum the first OTP and the numeric code. For example, when the first OTP is "382901", each digit of the first OTP may be added to each digit of the converted numeric code. That is, the electronic device 100 may sum the number codes of {10,33,8,3,35,0} with the first OTP of {3,8,2,9,0,1}, and {13 ,41,10,12,35,1} can be obtained. Meanwhile, if the total number of character set elements in the summation result exceeds 36, for example, the first electronic device 101 performs a mod operation on the summation result to the total number of character set elements. can be replaced by one result. In this case, the first electronic device 101 may replace "41" with "5" which is a result of performing a mode operation of 36 on "41". Accordingly, the first electronic device 101 will be described later. The summation result of {13,5,10,12,35,1} can be obtained. In another embodiment of the present invention, an offset may be applied when generating a summation result.
1050 동작에서, 제 1 전자 장치(101)는 합산 결과를 문자 세트에 매핑하여 제 1 서브 코드를 생성할 수 있다. 예를 들어, 제 1 전자 장치(101)는 {13,5,10,12,35,1}의 각 숫자를 인덱스로 해석하여 이에 대응하는 문자를 문자 세트로부터 획득할 수 있다. 즉, 제 1 전자 장치(101)는 '13'의 인덱스에 대응하는 "D"를 제 1 서브 코드의 첫 번째 문자로 획득할 수 있다. 전자 장치(100)는 '5'의 인덱스에 대응하는 "5"를 제 1 서브 코드의 두 번째 문자로 획득할 수 있다. 상술한 방식에 따라서, 제 1 전자 장치(101)는 "D5ACY1"의 제 1 서브 코드를 획득할 수 있다.In operation 1050, the first electronic device 101 may generate a first sub code by mapping the summation result to a character set. For example, the first electronic device 101 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 101 may acquire "D" corresponding to the index of '13' as the first character of the first sub code. The electronic device 100 may acquire "5" corresponding to the index of '5' as the second character of the first sub code. According to the above method, the first electronic device 101 may acquire the first sub code of "D5ACY1".
1060 동작에서, 제 1 전자 장치(101)는 제 1 OTP를 문자 세트에 매핑하여 제 2 서브 코드를 생성할 수 있다. 예를 들어, 제 1 전자 장치(101)는 {3,8,2,9,0,1}의 제 1 OTP의 각 자리 숫자가 인덱스인 것으로 해석하여, 각 자리 숫자에 대응하는 제 2 서브 코드의 문자의 각 자리를 생성할 수 있다. 예를 들어, 제 1 전자 장치(101)는 '3'의 숫자에 대응하여 '3'의 문자를 획득할 수 있으며, '8'의 숫자에 대응하여 '8'의 문자를 획득할 수 있다. 이에 따라 제 1 전자 장치(101)는 "382901"의 제 2 서브 코드를 획득할 수 있다. 본 발명의 다른 실시예에서는 숫자의 각 자리마다 오프셋을 적용한 결과를 문자 세트에 매핑하여 제 2 서브 코드를 획득할 수도 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다.In operation 1060, the first electronic device 101 may generate a second sub-code by mapping the first OTP to a character set. For example, the first electronic device 101 interprets each digit of the first OTP of {3,8,2,9,0,1} as an index, and generates a second subcode corresponding to each digit. Each digit of the character of can be generated. For example, the first electronic device 101 may acquire the character '3' corresponding to the number '3', and obtain the character '8' corresponding to the number '8'. Accordingly, the first electronic device 101 may acquire the second sub code of “382901”. In another embodiment of the present invention, the 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 in more detail later.
1070 동작에서, 제 1 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 포함하는 제 1 코드를 생성할 수 있다. 제 1 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 concatenate하여 예를 들어 "D5ACY1382901"의 제 1 코드를 생성할 수 있다. 상술한 바와 같이, 제 1 코드의 제 1 서브 코드인 "D5ACY1"은 동적이면서 랜덤하게 생성되는 OTP 및 고유 코드의 합산에 의하여 설정된 것으로, 동적이면서 랜덤성이 보장되면서, 고유 코드에 의한 유일성이 보장될 수 있다. 다만, 낮은 확률로 합산 결과가 동일한 코드가 발생할 수도 있으므로, 본 발명의 다양한 실시예에 따른 제 1 전자 장치(101)는 제 2 서브 코드를 concatenate함으로써 유일한 코드인 제 1 코드를 생성할 수 있다.In operation 1070, the first electronic device 101 may generate a first code including a first sub code and a second sub code. The first electronic device 101 may concatenate the first sub-code and the second sub-code to generate a first code of “D5ACY1382901”, for example. As described above, "D5ACY1", which is the first sub-code of the first code, is set by adding the dynamic and randomly generated OTP and the unique code, and guarantees uniqueness by the unique code while dynamic and randomness is guaranteed. It can be. However, since a code having the same summation result may occur with a low probability, the first electronic device 101 according to various embodiments of the present disclosure may generate a first code, which is a unique code, by concatenating the second sub code.
도 11은 본 발명의 다양한 실시예에 따른 코드 생성 방법을 설명하기 위한 흐름도를 도시한다.11 is a flowchart illustrating a code generation method according to various embodiments of the present disclosure.
1110 동작에서, 제 1 전자 장치(101)는 제 1 고유 코드 및 사용자마다 상이한 제 1 씨드를 획득할 수 있다. 상술한 바와 같이, 제 1 전자 장치(101)는 외부 장치로부터 제 1 고유 코드 및 제 1 씨드를 수신하거나 또는 다른 전자 장치에서 디스플레이되는 QR 코드를 촬영함으로써 제 1 고유 코드 및 제 1 씨드를 수신할 수 있다. 제 1 씨드는 서버가 제 1 사용자에게 부여한 OTP 생성을 위한 씨드일 수 있다.In operation 1110, the first electronic device 101 may acquire a first unique code and a first seed that is different for each user. As described above, the first electronic device 101 may receive the first unique code and the first seed by receiving the first unique code and the first seed from an external device or by capturing a QR code displayed on another electronic device. can The first seed may be a seed for OTP generation given to the first user by the server.
1120 동작에서, 제 1 전자 장치(101)는 제 1 씨드 및 제 1 시간 정보를 이용하여 제 1 OTP를 생성할 수 있다. 1130 동작에서, 제 1 전자 장치(101)는 제 1 고유 코드를 문자 세트에 매핑하여 제 1 고유 코드에 대응하는 숫자 코드를 생성할 수 있다. 예를 들어, 제 1 전자 장치(101)는 "AX83Z0"의 제 1 고유 코드를 획득할 수 있으며, 제 1 시점에 제 1 시점에 대응하는 제 1 시간 정보 및 제 1 씨드를 이용하여 "382901"의 제 1 OTP를 생성할 수 있다. 제 1 전자 장치(101)는 미리 설정된 { '0', '1', '2', …, '9', ,'A', 'B', …, 'Z' }의 문자 세트에 제 1 고유 코드를 매핑하여 제 1 고유 코드인 "AX83Z0"을 {10,33,8,3,35,0}의 숫자 코드로 변환할 수 있다.In operation 1120, the first electronic device 101 may generate a first OTP using the first seed and first time information. In operation 1130, the first electronic device 101 may generate a numeric code corresponding to the first unique code by mapping the first unique code to a character set. For example, the first electronic device 101 may acquire the first unique code of “AX83Z0” and obtain “382901” by using the first time information corresponding to the first time point and the first seed. A first OTP of can be generated. The first electronic device 101 sets preset { '0', '1', '2', ... , '9', ,'A', 'B', … , 'Z' } to convert the first unique code "AX83Z0" into a numeric code of {10,33,8,3,35,0}.
1140 동작에서, 제 1 전자 장치(101)는 제 1 OTP 및 숫자 코드를 합산할 수 있다. 예를 들어, 제 1 OTP가 "382901"인 경우에는, 제 1 OTP의 각 자리수를 변환된 숫자 코드의 각 자리수와 합산할 수 있다. 즉, 전자 장치(100)는 {10,33,8,3,35,0}의 숫자 코드를 {3,8,2,9,0,1}의 제 1 OTP와 합산할 수 있으며, {13,41,10,12,35,1}의 합산 결과를 획득할 수 있다. 1150 동작에서, 제 1 전자 장치(101)는 상기 합산 결과에 오프셋을 적용할 수 있다. 제 1 전자 장치(101)는 오프셋을 예를 들어 18로 설정할 수 있다. 제 1 전자 장치(101)는 합산 결과의 매 자리 수의 숫자에 오프셋인 18을 합산할 수 있다. 아울러, 도 3과 유사하게 제 1 전자 장치는 오프셋 적용된 합산 결과에 문자 세트의 크기를 모드 연산한 결과를 획득할 수 있다. 이에 따라, 제 1 전자 장치(101)는 오프셋 적용된 합산 결과인 {31,23,28,30,17,19}를 획득할 수 있다.In operation 1140, the first electronic device 101 may sum the first OTP and the numeric code. For example, when the first OTP is "382901", each digit of the first OTP may be added to each digit of the converted numeric code. That is, the electronic device 100 may sum the number codes of {10,33,8,3,35,0} with the first OTP of {3,8,2,9,0,1}, and {13 ,41,10,12,35,1} can be obtained. In operation 1150, the first electronic device 101 may apply an offset to the summation result. The first electronic device 101 may set the offset to 18, for example. The first electronic device 101 may add an offset of 18 to each digit of the summation result. In addition, similarly to FIG. 3 , the first electronic device may obtain a result of mode operation of the size of the character set on the offset-applied summation result. Accordingly, the first electronic device 101 may obtain {31, 23, 28, 30, 17, 19}, which is the summation result to which the offset is applied.
1160 동작에서, 제 1 전자 장치(101)는 오프셋 적용된 합산 결과를 문자 세트에 매핑하여 제 1 서브 코드를 생성할 수 있다. 제 1 전자 장치(101)는 오프셋 적용된 합산 결과인 '31'을 문자 세트에서의 인덱스로 해석하여, 31번째 문자인 'V'를 획득할 수 있다. 제 1 전자 장치(101)는, '23', '28', '30', '17', '19'을 순차적으로 문자로 변환할 수 있으며, 이에 따라 "VNSUHJ"의 제 1 서브 코드를 생성할 수 있다.In operation 1160, the first electronic device 101 may generate a first sub-code by mapping the offset-applied summation result to a character set. The first electronic device 101 interprets '31', which is the result of summing with the offset applied, as an index in the character set, and obtains 'V', which is the 31st character. The first electronic device 101 may sequentially convert '23', '28', '30', '17', and '19' into characters, thereby generating a first subcode of "VNSUHJ". can do.
1170 동작에서, 제 1 전자 장치(101)는 제 1 OTP에 오프셋을 적용할 수 있다. 이에 따라, {3,8,2,9,0,1}의 제 1 OTP의 각 숫자에 오프셋 18을 합산하여, {21,26,20,27,18}의 오프셋 적용된 제 1 OTP를 생성할 수 있다.In operation 1170, the first electronic device 101 may apply an offset to the first OTP. Accordingly, the offset 18 is added to each number of the first OTP of {3,8,2,9,0,1} to generate the first OTP to which the offset of {21,26,20,27,18} is applied. can
1180 동작에서, 제 1 전자 장치(101)는 오프셋 적용된 제 1 OTP를 문자 세트에 매핑하여 제 2 서브 코드를 생성할 수 있다. 즉, 제 1 전자 장치(101)는 오프셋 적용된 제 1 OTP의 {21,26,20,27,18}의 각 숫자를 문자 세트에서의 인덱스로 해석하여, 제 2 서브 코드를 생성할 수 있다. 예를 들어, 제 1 전자 장치(101)는 오프셋 적용된 제 1 OTP의 첫 번째 숫자인 '21'에 기초하여, 문자 세트에서의 21번째 문자인 'L'을 획득할 수 있다. 상술한 방식으로, 제 1 전자 장치(101)는 오프셋 적용된 제 1 OTP의 {21,26,20,27,18}으로부터 "LQKRIJ"의 제 2 서브 코드를 생성할 수 있다.In operation 1180, the first electronic device 101 may generate a second sub-code by mapping the offset-applied first OTP to a character set. That is, the first electronic device 101 may interpret each number of {21, 26, 20, 27, 18} of the first OTP to which the offset is applied as an index in the character set, and generate the second sub-code. For example, the first electronic device 101 may obtain 'L', which is the 21st character in the character set, based on '21', which is the first number of the first OTP to which the offset is applied. In the above-described manner, the first electronic device 101 may generate the second sub code of "LQKRIJ" from {21,26,20,27,18} of the first OTP to which the offset is applied.
1190 동작에서, 제 1 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 포함하는 제 1 코드를 생성할 수 있다. 제 1 전자 장치(101)는 제 1 서브 코드 및 제 2 서브 코드를 concatenate하여 예를 들어 "D5ACY1LQKRIJ"의 제 1 코드를 생성할 수 있다. 상술한 바와 같이, 제 1 코드의 제 1 서브 코드인 "D5ACY1"은 동적이면서 랜덤하게 생성되는 OTP 및 고유 코드의 합산에 의하여 설정된 것으로, 동적이면서 랜덤성이 보장되면서, 고유 코드에 의한 유일성이 보장될 수 있다. 다만, 낮은 확률로 합산 결과가 동일한 코드가 발생할 수도 있으므로, 본 발명의 다양한 실시예에 따른 제 1 전자 장치(101)는 제 2 서브 코드를 concatenate함으로써 유일한 코드인 제 1 코드를 생성할 수 있다.In operation 1190, the first electronic device 101 may generate a first code including a first sub code and a second sub code. The first electronic device 101 may concatenate the first sub-code and the second sub-code to generate, for example, the first code of “D5ACY1LQKRIJ”. As described above, "D5ACY1", which is the first sub-code of the first code, is set by adding the dynamic and randomly generated OTP and the unique code, and guarantees uniqueness by the unique code while dynamic and randomness is guaranteed. It can be. However, since a code having the same summation result may occur with a low probability, the first electronic device 101 according to various embodiments of the present disclosure may generate a first code, which is a unique code, by concatenating the second sub code.
하기에서는, 상술한 코드 생성 과정을 알고리즘을 통하여 설명하도록 한다.In the following, the above-described code generation process will be described through an algorithm.
- 정의- Justice
-C : ASCII 코드로 표현되는 서로 다른 문자를 원소로 하는 문자집합-C: Character set with different characters represented by ASCII code as elements
주어진 문자집합을 C 라고 하고, C 는 ASCII 코드로 표현되는 서로다른 문자(알파벳 대,소문자, 특수문자, 숫자)로 구성된다. 예를 들면, C 가 숫자만으로 구성되었다면 C = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ }가 되며, 같은 숫자가 중복되지 않는다. 또한 숫자와 영문대문자로 구성된다면, C = { ‘0’, … ,’9’, ‘A’, … ‘Z’ }가 된다. 동일한 방법으로 주어진 문자집합 C 는 여러가지 형태로 구성될 수 있다. 또한, C 의 원소를 동일 집합내에서 셔플링(shuffling) 될 수 있다. 예를 들면, 숫자만으로 구성된 문자집합 C = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ } 가 셔플링 된다면 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 와 같이 될 수 있다.The given character set is called C, and C consists of different characters (uppercase and lowercase letters, special characters, and numbers) represented by ASCII codes. For example, if C consists only of numbers, then C = { '0', '1', '2', '3', '4', '5', '6', '7', '8', ' 9' }, and the same number does not overlap. Also, if it consists of numbers and uppercase letters, C = { ‘0’, … ,’9’, ‘A’, … 'Z' }. The character set C given in the same way can be configured in various forms. Also, the elements of C can be shuffled within the same set. For example, the character set C = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ' } is shuffled, then C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' } and can be together
-S : 주어진 문자집합 C 의 원소개수-S: the number of elements in the given character set C
-C(n) : n 번째 C 의 원소 (0 <= n < C의 문자개)-C(n) : nth element of C (0 <= n < number of characters in 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’ 가 된다.The nth element of C is defined as C(n), where n is an integer such that 0 <= n < S. That is, n means the index of an element included in C. If there is a character set C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' } , 0 <= n < 10, and C(0) = '8' and C(9) = '5'.
-IndexOf(c) : 주어진 문자 c 의 C 내 인덱스-IndexOf(c) : the index in C of the given character c
주어진 문자집합 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 일때, IndexOf(‘8’) = 0, IndexOf(‘5’) = 9 가 된다.Given a set of characters C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' } IndexOf( '8') = 0, IndexOf('5') = 9.
-U : C 에 포함된 문자로 구성된 임의 생성된 사용자 고유아이디를 나타내는 문자열-U: A string representing a randomly generated unique user ID composed of characters included in C
주어진 문자집합 C = { ‘8’, ‘0’, ‘7’, ‘3’, ‘1’, ‘9’, ‘6’, ‘2’, ‘4’, ‘5’ } 일 때 U 는 ‘0382’, ‘7192’와 같이 표현된다. Given a set of characters C = { '8', '0', '7', '3', '1', '9', '6', '2', '4', '5' } then U is It is expressed as '0382', '7192'.
-U(n) : U 의 n 번째 문자 ( 0 <= n < U의 문자개수)-U(n): nth character of U (0 <= n < number of characters in U)
주어진 U = ‘0382’ 일 때, n은 0 <= n < 4 인 정수이며, U(2) = ‘8’, U(3) = ‘2’ 가 된다.Given U = ‘0382’, n is an integer such that 0 <= n < 4, and U(2) = ‘8’ and U(3) = ‘2’.
-T : TOTP 코드-T : TOTP code
예를 들면, 랜덤한 6자리 TOTP 코드는 ‘839023’, ‘659921’ 이 된다.For example, a random 6-digit TOTP code would be ‘839023’, ‘659921’.
-T(n) : TOTP 코드내 n 번째 위치한 숫자 (0 <= n < TOTP 자리수)-T(n): nth position number in TOTP code (0 <= n < number of TOTP digits)
예를 들면, 생성된 TOTP 코드가 ‘839023’ 일 때, T(0) = 8, T(5) = 3 이 된다.For example, when the generated TOTP code is ‘839023’, T(0) = 8 and T(5) = 3.
-N : 랜덤 코드의 길이 ( N >= 1 )-N : length of random code ( N >= 1 )
-R : 랜덤 코드-R : random code
-알고리즘-algorithm
프로그래밍언어 C++ 와 유사한 형태로 기술한다.It is described in a form similar to the programming language C++.
String generate_random_id ( C, U, N, T )String generate_random_id ( C, U, N, T )
{ {
string preId;string preId;
string postId; string postId;
int offset = 18; // 임의로 지정 int offset = 18; // randomly assigned
for (n = 0; n < N; n++)for (n = 0; n < N; n++)
{{
int d = numOf(T(n)); // T(n) ASCII 코드를 숫자로 변환, ‘3’ -> 3, ‘9’ -> 9 int d = numOf(T(n)); // T(n) Convert ASCII code to number, ‘3’ -> 3, ‘9’ -> 9
int x = IndexOf(U(n)); int x = IndexOf(U(n));
preId += C ( (d + x + offset) % S ); // 이전단계에 만들어진 문자에 append한다. preId += C ( (d + x + offset) % S ); // Append to the character created in the previous step.
postId += C ( T(n) + offset); postId += C ( T(n) + offset);
} }
return (preId + postId); // 만들어진 두개의 문자를 append해서 최종 R을 만든다. return (preId + postId); // Append the two created characters to create the final R.
}}
-시뮬레이션-simulation
만약,if,
N = 6,N = 6;
C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’} 이고,C = { '0', ... , ‘9’, ‘A’, … , 'Z'},
S = 10 + 26 = 36S = 10 + 26 = 36
U = ‘AX83Z0’ 이고U = ‘AX83Z0’ and
T = ‘382901’ 라고 하면,If T = ‘382901’,
0 <= n < 36, (0 ... 35)0 <= n < 36, (0 ... 35)
IndexOf(U) = { 10, 33, 8, 3, 35, 0 } 이 되고,IndexOf(U) = { 10, 33, 8, 3, 35, 0 },
numOf (T) = { 3, 8, 2, 9, 0, 1 } 이 되고,numOf(T) = { 3, 8, 2, 9, 0, 1 },
각 자리에 대해 연산을 수행하면,If you perform an operation for each digit,
preId[0] = C ( ( 3 + 10 + 18 ) % 36 ) = C ( 31 % 36 ) = C ( 31 ) = 'V'preId[0] = C ( ( 3 + 10 + 18 ) % 36 ) = C ( 31 % 36 ) = C ( 31 ) = 'V'
110preId[1] = C ( ( 8 + 33 + 18 ) % 36 ) = C ( 59 % 36 ) = C ( 23 ) = 'N'110preId[1] = C ( ( 8 + 33 + 18 ) % 36 ) = C ( 59 % 36 ) = C ( 23 ) = 'N'
preId[2] = C ( ( 2 + 8 + 18 ) % 36 ) = C ( 28 % 36 ) = C ( 28 ) = 'S'preId[2] = C ( ( 2 + 8 + 18 ) % 36 ) = C ( 28 % 36 ) = C ( 28 ) = 'S'
preId[3] = C ( ( 9 + 3 + 18 ) % 36 ) = C ( 30 % 36 ) = C ( 30 ) = 'U'preId[3] = C ( ( 9 + 3 + 18 ) % 36 ) = C ( 30 % 36 ) = C ( 30 ) = 'U'
preId[4] = C ( ( 0 + 35 + 18 ) % 36 ) = C ( 53 % 36 ) = C ( 17 ) = 'H'preId[4] = C ( ( 0 + 35 + 18 ) % 36 ) = C ( 53 % 36 ) = C ( 17 ) = 'H'
preId[5] = C ( 1 + 0 + 18 ) % 36 ) = C ( 19 % 36 ) = C ( 19 ) = 'J'preId[5] = C ( 1 + 0 + 18 ) % 36 ) = C ( 19 % 36 ) = C ( 19 ) = 'J'
이고,ego,
postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'
postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'
postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'
postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'
postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'
postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'
이 되어,become,
R = generate_random_id(C, U, N, T) 가 되고, R = ‘VNSUHJ LQKRIJ’ 가 나온다.R = generate_random_id(C, U, N, T), and R = ‘VNSUHJ LQKRIJ’ comes out.
-시뮬레이션2 - 같은 시점에 다른 아이디인 경우-Simulation 2 - In case of different IDs at the same time
위와 동일하게 N = 6, C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’}, S = 10 + 26 = 36 으로 설정한다.Same as above, N = 6, C = { ‘0’, … , ‘9’, ‘A’, … , ‘Z’}, set S = 10 + 26 = 36.
대신 U = ‘B05EFA’ 이고, Instead, U = ‘B05EFA’,
위와 같은 T = ‘382901’가 나왔다고 하면,If T = ‘382901’ as above,
0 <= n < 36, (0 ... 35)0 <= n < 36, (0 ... 35)
IndexOf(U) = { 11, 0, 6, 14, 15, 10 } 이 되고,IndexOf(U) = { 11, 0, 6, 14, 15, 10 },
numOf(T) = { 3, 8, 2, 9, 0, 1 } 이 되고,numOf(T) = { 3, 8, 2, 9, 0, 1 },
각 자리에 대해 연산을 수행하면,If you perform an operation for each digit,
preId[0] = C ( ( 3 + 11 + 18 ) % 36 ) = C ( 32 % 36 ) = C ( 31 ) = 'W'preId[0] = C ( ( 3 + 11 + 18 ) % 36 ) = C ( 32 % 36 ) = C ( 31 ) = 'W'
133preId[1] = C ( ( 8 + 0 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'133preId[1] = C ( ( 8 + 0 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'
preId[2] = C ( ( 2 + 6 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'preId[2] = C ( ( 2 + 6 + 18 ) % 36 ) = C ( 26 % 36 ) = C ( 26 ) = 'Q'
preId[3] = C ( ( 9 + 14 + 18 ) % 36 ) = C ( 41 % 36 ) = C ( 5 ) = '5'preId[3] = C ( ( 9 + 14 + 18 ) % 36 ) = C ( 41 % 36 ) = C ( 5 ) = '5'
preId[4] = C ( ( 0 + 15 + 18 ) % 36 ) = C ( 33 % 36 ) = C ( 33 ) = 'X'preId[4] = C ( ( 0 + 15 + 18 ) % 36 ) = C ( 33 % 36 ) = C ( 33 ) = 'X'
preId[5] = C ( 1 + 10 + 18 ) % 36 ) = C ( 29 % 36 ) = C ( 29 ) = 'T'preId[5] = C ( 1 + 10 + 18 ) % 36 ) = C ( 29 % 36 ) = C ( 29 ) = 'T'
이고,ego,
postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'postId[0] = C ( ( 3 + 18 ) % 36 ) = C ( 21 ) = 'L'
postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'postId[1] = C ( ( 8 + 18 ) % 36 ) = C ( 26 ) = 'Q'
postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'postId[2] = C ( ( 2 + 18 ) % 36 ) = C ( 20 ) = 'K'
postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'postId[3] = C ( ( 9 + 18 ) % 36 ) = C ( 27 ) = 'R'
postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'postId[4] = C ( ( 0 + 18 ) % 36 ) = C ( 18 ) = 'I'
postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'postId[5] = C ( ( 1 + 18 ) % 36 ) = C ( 19 ) = 'J'
이 되어,become,
R = generate_random_id(C, U, N, T) 가 되고, R = ‘WQQ5XT LQKRIJ’ 가 나온다.R = generate_random_id(C, U, N, T), and R = ‘WQQ5XT LQKRIJ’.
따라서 같은 시점에 같은 OTP가 나와도 마다 다른 랜덤 코드는 상이한 결과를 가진다.Therefore, even if the same OTP comes out at the same time, different random codes have different results.
도 12는 본 발명의 다양한 실시예에 따른 오프셋 결정 과정을 설명하기 위한 흐름도를 도시한다.12 is a flowchart illustrating an offset determination process according to various embodiments of the present disclosure.
1210 동작에서, 제 1 전자 장치(101)는 모든 사용자에게 동일한 제 2 씨드를 획득할 수 있다. 여기에서, 제 2 씨드는 예를 들어 시간 기반 일회용 암호를 생성하기 위한 씨드값일 수 있으며, 제 1 씨드와는 상이할 수 있다. 1220 동작에서, 제 1 전자 장치(101)는 제 2 씨드 및 제 1 시간 정보에 기초하여 제 2 OTP를 생성할 수 있으며, 1230 동작에서 상기 제 2 OTP를 이용하여 오프셋을 결정할 수 있다. 예를 들어, 제 1 전자 장치(101)는 제 2 씨드를 이용하여 생성한 오프셋에 문자 세트의 원소의 개수에 대한 모드 연산의 결과 값으로 오프셋을 설정할 수 있다. 제 2 씨드는 제 1 사용자뿐만 아니라 시스템에 가입된 사용자 모두에게 동일할 수 있으며, 이에 따라 제 1 시점에서 생성된 오프셋은 모든 사용자에게 동일할 수 있어, 생성된 코드의 유일성이 연속하여 보장될 수 있다.In operation 1210, the first electronic device 101 may obtain the same second seed for all users. Here, the second seed may be, for example, a seed value for generating a time-based one-time password, and may be different from the first seed. In operation 1220, the first electronic device 101 may generate a second OTP based on the second seed and the first time information, and may determine an offset using the second OTP in operation 1230. For example, the first electronic device 101 may set an offset generated using the second seed as a result value of a mode operation on the number of elements of a character set. The second seed may be the same for all users registered in the system as well as the first user, and accordingly, the offset generated at the first time point may be the same for all users, so that the uniqueness of the generated code can be continuously guaranteed. there is.
도 13은 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.13 shows a flowchart of a character set determination method according to various embodiments of the present invention.
1310 동작에서, 제 1 전자 장치(101)는 모든 사용자에게 동일한 제 2 씨드를 획득할 수 있다. 여기에서, 제 2 씨드는 예를 들어 시간 기반 일회용 암호를 생성하기 위한 씨드값일 수 있으며, 제 1 씨드와는 상이할 수 있다. In operation 1310, the first electronic device 101 may obtain the same second seed for all users. Here, the second seed may be, for example, a seed value for generating a time-based one-time password, and may be different from the first seed.
1320 동작에서, 제 1 전자 장치(101)는 제 2 씨드 및 제 1 시간 정보를 이용하여 제 2 OTP 생성할 수 있다. 1330 동작에서, 제 1 전자 장치(101)는 제 2 OTP를 이용하여 문자 세트를 결정할 수 있다. 예를 들어, 제 1 전자 장치(101)는 기본 문자 세트를 최초 획득할 수 있으며, 기본 문자 세트를 제 2 OTP에 기초하여 변형함으로써 코드 생성에 이용할 문자 세트를 결정할 수 있다.In operation 1320, the first electronic device 101 may generate a second OTP using the second seed and the first time information. In operation 1330, the first electronic device 101 may determine a character set using the second OTP. For example, the first electronic device 101 may initially acquire a basic character set and determine a character set to be used for code generation by transforming the basic character set based on the second OTP.
도 14는 본 발명의 다양한 실시예에 따른 문자 세트 결정 방법의 흐름도를 도시한다.14 shows a flowchart of a character set determination method according to various embodiments of the present invention.
1410 동작에서, 제 1 전자 장치(101)는 기본 문자 세트를 획득할 수 있다. 예를 들어, 제 1 전자 장치(101)는 { '0', '1', '2', …, '9' }의 기본 문자 세트를 획득할 수 있다. 기본 문자 세트의 원소의 개수는 10일 수 있다.In operation 1410, the first electronic device 101 may obtain a basic character set. For example, the first electronic device 101 {'0', '1', '2', . . . , '9' }. The number of elements of the basic character set may be 10.
1420 동작에서, 제 1 전자 장치(101) 제 2 씨드 및 제 1 시간 정보를 이용하여 제 2 OTP 생성할 수 있다. 본 발명의 다양한 실시예에서는, 제 1 전자 장치(101)는 hOTP 알고리즘으로 제 2 OTP를 생성할 수도 있다. 예를 들어, 제 1 전자 장치(101)는 123456의 제 2 OTP를 생성한 것을 상정하도록 한다.In operation 1420, the first electronic device 101 may generate a second OTP using the second seed and the first time information. In various embodiments of the present disclosure, the first electronic device 101 may generate the second OTP using the hOTP algorithm. For example, it is assumed that the first electronic device 101 has generated the second OTP of 123456.
1430 동작에서, 제 1 전자 장치(101)는 제 2 OTP 및 문자 세트의 크기를 모드(mod) 연산하여, 연산 결과값을 획득할 수 있다. 1840 동작에서, 제 1 전자 장치(101)는 연산 결과값을 이용하여 기본 문자 세트의 두 개의 문자의 위치를 스와핑할 수 있다. 예를 들어, 제 1 전자 장치(101)는 123456에 대한 모드 연산 결과인 6을 획득할 수 있다. 제 1 전자 장치(101)는 6의 연산 결과를 문자 세트의 인덱스로 해석하여, 문자 세트의 6번째 문자를 0번째 문자와 스와핑할 수 있다.In operation 1430, the first electronic device 101 may obtain an operation result value by performing a mod operation on the second OTP and the size of the character set. In operation 1840, the first electronic device 101 may swap the positions of two characters in the basic character set by using the result of the operation. For example, the first electronic device 101 may obtain a mode operation result of 6 for 123456. The first electronic device 101 may interpret the operation result of 6 as an index of the character set and swap the 6th character of the character set with the 0th character.
1450 동작에서, 제 1 전자 장치(101)는 모든 문자에 대하여 순차적으로 스와핑을 수행하여 기본 문자 세트를 셔플링한 문자 세트를 획득할 수 있다. 예를 들어, 제 1 전자 장치(101)는 문자 세트의 1번째 문자에 대하여, OPT 생성, 모드 연산, 연산 결과 값을 인덱스로 해석하여 1번째 문자와 인덱스에 대응하는 문자와 스와핑을 수행하고, 상술한 과정을 2번째 문자 내지 9번째 문자에 대하여 모두 수행할 수 있다.In operation 1450, the first electronic device 101 may obtain a character set obtained by shuffling the basic character set by sequentially performing swapping on all characters. For example, with respect to the first character of the character set, the first electronic device 101 interprets OPT generation, mode operation, and operation result values as an index, and swaps the first character with a character corresponding to the index, The above-described process may be performed for all of the second to ninth characters.
1460 동작에서, 제 1 전자 장치(101)는 셔플링한 문자 세트를 이용하여 제 1 코드를 생성할 수 있다.In operation 1460, the first electronic device 101 may generate a first code using the shuffled character set.
상술한 바에 따라, 문자 집합은 동적으로 변경될 수 있으며, 씨드만 공유된다면 모든 사용자에 대하여 동일한 문자 집합이 생성될 수 있어, 상술한 바에서 생성된 코드의 유일성이 연속되어 보장될 수 있다.As described above, the character set can be dynamically changed, and if only the seed is shared, the same character set can be generated for all users, so that uniqueness of the code generated as described above can be continuously guaranteed.
하기에서는, 상술한 문자 세트 셔플링 방법의 알고리즘을 설명하도록 한다.In the following, an algorithm of the above-described character set shuffling method will be described.
1. 기본 문자집합 C = {‘0’, ‘1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’} 이라한다.1. Let the basic character set C = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'} .
2. Global Key를 설정하고 이를 OTP의 seed로 이용한다.2. Set the global key and use it as the seed of OTP.
3. 문자집합의 크기 S만큼 다음을 반복하여 랜덤한 문자집합을 만든다.3. Create a random character set by repeating the following as many times as the size of the character set S.
1) C(n)의 자리를 변경하기 위해서, HOTP를 하나 만들고 집합크기로 Mod계산한다.1) To change the place of C(n), create one HOTP and calculate Mod with the set size.
2) HOTP는 123456이면, 문자집합 크기인 10으로 Mod계산하여 6을 얻어낸다.2) If HOTP is 123456, 6 is obtained by calculating Mod with 10, which is the size of the character set.
3) 얻어낸 6은 C의 인덱스를 의미하며 C[6]에 해당하는 숫자를 현재 바꾸려고 하는 C[0]번째 문자와 자리를 바꾼다. 즉 스와핑 한다.3) The obtained 6 means the index of C, and the number corresponding to C[6] is exchanged with the C[0]th character to be changed. i.e. swapping.
4) 1,2,3과정을 9번 더 반복하여 C[9]까지 수행한다.4) Repeat steps 1, 2, and 3 9 more times until C[9].
5) 위 계산이 완료되면 셔플링된 문자집합이 나오고, 이 집합을 이용하여 랜덤아이디를 생성할 수 있다.5) When the above calculation is completed, a set of shuffled characters comes out, and a random ID can be generated using this set.
시뮬레이션 - 문자집합 셔플링Simulation - character set shuffling
문자집합 C = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}이고, C의 크기S = 10, 0 <= n < 10이다. Character set C = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, size of C = 10, 0 <= n < 10.
각 단계에서 생성되는 HOTP를 S로 모듈러 한 값을 O라 하고 Let S be the HOTP generated at each step and O be the modular value.
O(0) = 1111 2222 % 10, O(0) = 1111 2222 % 10,
O(1) = 3333 4444 % 10, O(1) = 3333 4444 % 10,
O(2) = 5555 6666 % 10,O(2) = 5555 6666 % 10,
O(3) = 7777 8888 % 10,O(3) = 7777 8888 % 10,
O(4) = 9999 0000 % 10,O(4) = 9999 0000 % 10,
O(5) = 1111 2222 % 10,O(5) = 1111 2222 % 10,
O(6) = 3333 4444 % 10,O(6) = 3333 4444 % 10,
O(7) = 5555 6666 % 10,O(7) = 5555 6666 % 10,
O(8) = 7777 8888 % 10, O(8) = 7777 8888 % 10,
O(9) = 9999 0000 % 10 이라고 가정한다.Assume that O(9) = 9999 0000 % 10.
1) C[0] = 0 섞기1) C[0] = 0 shuffle
O[0] = 11112222 % 10 = 2 이므로, C[2]을 C[0]자리에 보내고 C[0]을 C[2]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 1, 0, 3, 4, 5, 6, 7, 8, 9} 가 된다.Since O[0] = 11112222 % 10 = 2, C[2] is sent to C[0] and C[0] is sent to C[2] to swap. Therefore, the character set is C = {2, 1, 0, 3, 4, 5, 6, 7, 8, 9}.
2) C[1] = 1 섞기2) Shuffle 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} 이 된다.Since O[1] = 33334444 % 10 = 4, we send C[4] to C[1] and send C[1] to C[4] to swap. So the character set is C = {2, 4, 0, 3, 1, 5, 6, 7, 8, 9}.
3) C[2] = 0 섞기3) C[2] = 0 shuffle
O[2] = 55556666 % 10 = 6 이므로, C[6]을 C[2]자리에 보내고 C[2]를 C[6]에 보내서 스와핑한다. 따라서 문자집합은 C = {2, 4, 6, 3, 1, 5, 0, 7, 8, 9}이 된다.Since O[2] = 55556666 % 10 = 6, we send C[6] to C[2] and send C[2] to C[6] to swap. So the character set is C = {2, 4, 6, 3, 1, 5, 0, 7, 8, 9}.
4) C[3] = 1 섞기4) Shuffle 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}이 된다.Since O[3] = 77778888 % 10 = 8, we send C[8] to C[3] and send C[3] to C[8] to swap. So the character set is C = {2, 4, 6, 8, 1, 5, 0, 7, 3, 9}.
5) C[4] = 4 섞기5) C[4] = 4 shuffle
O[4] = 99990000 % 10 = 0 이므로, C[0]을 C[4]자리에 보내고 C[4]를 C[0]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 6, 8, 2, 5, 0, 7, 3, 9}이 된다.Since O[4] = 99990000 % 10 = 0, we send C[0] to C[4] and send C[4] to C[0] to swap. So the character set is C = {1, 4, 6, 8, 2, 5, 0, 7, 3, 9}.
6) C[5] = 5 섞기6) C[5] = 5 shuffle
O[5] = 1111 2222 % 10 = 2 이므로, C[2]을 C[5]자리에 보내고 C[5]를 C[2]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 5, 8, 2, 6, 0, 7, 3, 9}이 된다.Since O[5] = 1111 2222 % 10 = 2, we send C[2] to C[5] and send C[5] to C[2] to swap. So the character set is C = {1, 4, 5, 8, 2, 6, 0, 7, 3, 9}.
7) C[6] = 0 섞기7) Shuffle 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}이 된다.Since O[6] = 3333 4444 % 10 = 4, we send C[4] to C[6] and send C[6] to C[4] to swap. So the character set is C = {1, 4, 5, 8, 0, 6, 2, 7, 3, 9}.
8) C[7] = 7 섞기8) C[7] = 7 shuffle
O[7] = 5555 6666% 10 = 6 이므로, C[6]을 C[7]자리에 보내고 C[7]를 C[6]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}이 된다.Since O[7] = 5555 6666% 10 = 6, we send C[6] to C[7] and send C[7] to C[6] to swap. Therefore, the character set is C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}.
9) C[8] = 3 섞기9) C[8] = 3 shuffle
O[8] = 7777 8888% 10 = 8 이므로, C[8]을 C[8]자리에 보내고 C[8]를 C[8]에 보내서 스와핑한다. 따라서 문자집합은 C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}이 된다.Since O[8] = 7777 8888% 10 = 8, we send C[8] to C[8] and send C[8] to C[8] to swap. Therefore, the character set is C = {1, 4, 5, 8, 0, 6, 7, 2, 3, 9}.
10) C[9] = 9 섞기10) C[9] = 9 shuffle
O[9] = 9999 0000 % 10 = 0 이므로, C[0]을 C[9]자리에 보내고 C[9]를 C[0]에 보내서 스와핑한다. 따라서 문자집합은 C = {9, 4, 5, 8, 0, 6, 7, 2, 3, 1}이 된다.Since O[9] = 9999 0000 % 10 = 0, we send C[0] to C[9] and send C[9] to C[0] to swap. Therefore, the character set is C = {9, 4, 5, 8, 0, 6, 7, 2, 3, 1}.
따라서 셔플링된 문자집합은 C = {‘9’, ‘4’, ‘5’, ‘8’, ‘0’, ‘6’, ‘7’, ‘2’, ‘3’, ‘1’}이 되며, 이 셔플링 문자집합을 이용하여 랜덤 코드를 한번 생성하게 된다.So the shuffled character set is C = {'9', '4', '5', '8', '0', '6', '7', '2', '3', '1'} , and a random code is generated once using this shuffling character set.
본 발명의 실시 예들은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 발명의 그래픽 화면 갱신 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의해 구현될 수 있고, 상기 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 따라서, 본 발명은 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.It will be appreciated that the embodiments of the present invention can be realized in the form of hardware, software, or a combination of hardware and software. Any such software may include, for example, a volatile or non-volatile storage device such as a ROM, whether removable or rewritable, or a memory device such as a RAM, a memory chip, device, or integrated circuit. , or optically or magnetically recordable and machine-readable storage media, such as CDs, DVDs, magnetic disks, or magnetic tapes. The graphic screen updating method of the present invention can be implemented by a computer or portable terminal including a control unit and a memory, and the memory is a program including instructions for implementing the embodiments of the present invention or a machine suitable for storing the programs. It will be appreciated that this is an example of a readable storage medium. Accordingly, the present invention includes a program including code for implementing an apparatus or method described in any claim of this specification and a storage medium readable by a machine (such as a computer) storing such a program. In addition, such a program may be transmitted electronically through any medium, such as a communication signal transmitted through a wired or wireless connection, and the present invention appropriately includes equivalents thereto.
또한, 상기 장치는 유선 또는 무선으로 연결되는 프로그램 제공 장치로부터 상기 프로그램을 수신하여 저장할 수 있다. 상기 프로그램 제공 장치는 상기 그래픽 처리 장치가 기설정된 컨텐츠 보호 방법을 수행하도록 하는 지시들을 포함하는 프로그램, 컨텐츠 보호 방법에 필요한 정보 등을 저장하기 위한 메모리와, 상기 그래픽 처리 장치와의 유선 또는 무선 통신을 수행하기 위한 통신부와, 상기 그래픽 처리 장치의 요청 또는 자동으로 해당 프로그램을 상기 송수신 장치로 전송하는 제어부를 포함할 수 있다.Also, the device may receive and store the program from a program providing device connected by wire or wirelessly. The program providing device includes a memory for storing a program including instructions for causing the graphic processing device to perform a preset content protection method, information necessary for the content protection method, and the like, and wired or wireless communication with the graphic processing device. It may include a communication unit for performing and a control unit for transmitting a corresponding program to the transmitting/receiving device at the request of the graphic processing device or automatically.

Claims (28)

  1. 제 1 전자 장치에 있어서,In the first electronic device,
    복수 개의 암호화 패키지들을 저장하는 메모리-상기 복수 개의 암호화 패키지들 각각은 암호화 알고리즘 및/또는 복호화 알고리즘을 포함함-;a memory for storing a plurality of encryption packages, each of the plurality of encryption packages including an encryption algorithm and/or a decryption algorithm;
    상기 메모리에 기능적으로 연결되는 프로세서; 및a processor operatively coupled to the memory; and
    상기 프로세서에 기능적으로 연결되는 통신 회로를 포함하고,communication circuitry operatively coupled to the processor;
    상기 프로세서는,the processor,
    제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하고,generating a first random number based on the first counter;
    상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하고,Selecting a first encryption package from among the plurality of encryption packages based on the first random number;
    제 1 키 및 제 1 평문을 상기 제 1 암호화 패키지의 암호화 알고리즘에 적용함에 기반하여, 제 1 암호문을 생성하고,Generating a first ciphertext based on applying a first key and a first plaintext to an encryption algorithm of the first encryption package;
    상기 제 1 암호문 및 상기 제 1 카운터를 포함하는 정보를 제 2 전자 장치로 송신하도록 상기 통신 회로를 제어하도록 설정된 제 1 전자 장치.A first electronic device configured to control the communication circuit to transmit information including the first encrypted text and the first counter to a second electronic device.
  2. 제 1 항에 있어서,According to claim 1,
    상기 프로세서는, 상기 제 1 카운터에 기반하여 상기 제 1 랜덤 넘버를 생성하는 동작의 적어도 일부로,The processor, as at least part of an operation of generating the first random number based on the first counter,
    상기 제 2 전자 장치와 미리 공유된 제 1 씨드 및 상기 제 1 카운터를 랜덤 넘버 생성 알고리즘에 적용함에 기반하여, 상기 제 1 랜덤 넘버를 생성하도록 설정된 제 1 전자 장치.The first electronic device configured to generate the first random number based on applying a first seed shared with the second electronic device in advance and the first counter to a random number generating algorithm.
  3. 제 2 항에 있어서,According to claim 2,
    상기 제 1 카운터는 제 1 시점이며, 상기 제 1 랜덤 넘버는 제 1 OTP인 제 1 전자 장치.The first counter is a first time point, and the first random number is a first OTP.
  4. 제 1 항에 있어서,According to claim 1,
    상기 프로세서는,the processor,
    상기 제 1 랜덤 넘버에 기반하여 상기 제 1 키를 생성하도록 더 설정된 제 1 전자 장치.The first electronic device further configured to generate the first key based on the first random number.
  5. 제 1 항에 있어서,According to claim 1,
    상기 프로세서는,the processor,
    상기 제 1 랜덤 넘버와 상이한 제 2 랜덤 넘버에 기반하여 상기 제 1 키를 생성하도록 더 설정된 제 1 전자 장치.The first electronic device further configured to generate the first key based on a second random number different from the first random number.
  6. 제 5 항에 있어서,According to claim 5,
    상기 프로세서는,the processor,
    상기 제 1 랜덤 넘버를 이용하는데 이용한 씨드와 상이한 씨드 및 상기 제 1 카운터를 이용하여 상기 제 2 랜덤 넘버를 생성하도록 더 설정된 제 1 전자 장치.The first electronic device further configured to generate the second random number using a seed different from a seed used to use the first random number and the first counter.
  7. 제 5 항에 있어서,According to claim 5,
    상기 프로세서는,the processor,
    상기 제 1 랜덤 넘버를 이용하는데 이용한 씨드 및 상기 제 1 카운터와 상이한 제 2 카운터를 이용하여 상기 제 2 랜덤 넘버를 생성하도록 더 설정되고,further configured to generate the second random number using a seed used to use the first random number and a second counter different from the first counter;
    상기 프로세서는, 상기 정보를 상기 제 2 전자 장치로 송신하도록 상기 통신 회로를 제어하는 동작의 적어도 일부로, 상기 제 1 암호문 및 상기 제 1 카운터와 함께 상기 제 2 카운터를 포함하는 정보를 송신하도록 상기 통신 회로를 제어하도록 설정된 제 1 전자 장치.The processor may, as at least part of the operation of controlling the communication circuitry to transmit the information to the second electronic device, transmit information comprising the second counter along with the first ciphertext and the first counter to the communication circuit. A first electronic device configured to control a circuit.
  8. 제 2 전자 장치에 있어서,In the second electronic device,
    복수 개의 암호화 패키지들을 저장하는 메모리-상기 복수 개의 암호화 패키지들 각각은 암호화 알고리즘 및/또는 복호화 알고리즘을 포함함-;a memory for storing a plurality of encryption packages, each of the plurality of encryption packages including an encryption algorithm and/or a decryption algorithm;
    상기 메모리에 기능적으로 연결되는 프로세서; 및a processor operatively coupled to the memory; and
    상기 프로세서에 기능적으로 연결되는 통신 회로를 포함하고,communication circuitry operatively coupled to the processor;
    상기 프로세서는,the processor,
    상기 통신 회로를 통하여, 제 1 전자 장치로부터, 제 1 카운터 및 제 1 암호문을 포함하는 정보를 수신하고,Receiving information including a first counter and a first ciphertext from a first electronic device through the communication circuit;
    상기 제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하고,generating a first random number based on the first counter;
    상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하고,Selecting a first encryption package from among the plurality of encryption packages based on the first random number;
    제 1 키 및 상기 제 1 암호문을 상기 제 1 암호화 패키지의 복호화 알고리즘에 적용함에 기반하여, 상기 제 1 암호문에 대응하는 제 1 평문을 생성하도록 설정된 제 2 전자 장치.A second electronic device configured to generate a first plaintext corresponding to the first ciphertext based on applying a first key and the first ciphertext to a decryption algorithm of the first encryption package.
  9. 제 8 항에 있어서,According to claim 8,
    상기 프로세서는, 상기 제 1 카운터에 기반하여 상기 제 1 랜덤 넘버를 생성하는 동작의 적어도 일부로,The processor, as at least part of an operation of generating the first random number based on the first counter,
    상기 제 1 전자 장치와 미리 공유된 제 1 씨드 및 상기 제 1 카운터를 랜덤 넘버 생성 알고리즘에 적용함에 기반하여, 상기 제 1 랜덤 넘버를 생성하도록 설정된 제 2 전자 장치.The second electronic device configured to generate the first random number based on applying a first seed shared with the first electronic device in advance and the first counter to a random number generating algorithm.
  10. 제 9 항에 있어서,According to claim 9,
    상기 제 1 카운터는 제 1 시점이며, 상기 제 1 랜덤 넘버는 제 1 OTP인 제 2 전자 장치.The first counter is a first time point, and the first random number is a first OTP.
  11. 제 8 항에 있어서,According to claim 8,
    상기 프로세서는,the processor,
    상기 제 1 랜덤 넘버에 기반하여 상기 제 1 키를 생성하도록 더 설정된 제 2 전자 장치.The second electronic device further configured to generate the first key based on the first random number.
  12. 제 8 항에 있어서,According to claim 8,
    상기 프로세서는,the processor,
    상기 제 1 랜덤 넘버와 상이한 제 2 랜덤 넘버에 기반하여 상기 제 1 키를 생성하도록 더 설정된 제 2 전자 장치.The second electronic device further configured to generate the first key based on a second random number different from the first random number.
  13. 제 12 항에 있어서,According to claim 12,
    상기 프로세서는,the processor,
    상기 제 1 랜덤 넘버를 생성하는데 이용한 씨드와 상이한 씨드 및 상기 제 1 카운터를 이용하여 상기 제 2 랜덤 넘버를 생성하도록 더 설정된 제 2 전자 장치.The second electronic device further configured to generate the second random number using a seed different from the seed used to generate the first random number and the first counter.
  14. 제 12 항에 있어서,According to claim 12,
    상기 프로세서는,the processor,
    상기 통신 회로를 통하여 상기 제 1 카운터와 상이한 제 2 카운터를 수신하고,Receiving a second counter different from the first counter through the communication circuit;
    상기 제 1 랜덤 넘버를 생성하는데 이용한 씨드와 상기 제 2 카운터에 기반하여 상기 제 2 랜덤 넘버를 생성하도록 더 설정된 제 2 전자 장치.The second electronic device further configured to generate the second random number based on the seed used to generate the first random number and the second counter.
  15. 복수 개의 암호화 패키지들을 저장하는 제 1 전자 장치의 동작 방법에 있어서, 상기 복수 개의 암호화 패키지들 각각은 암호화 알고리즘 및/또는 복호화 알고리즘을 포함하고,A method of operating a first electronic device that stores a plurality of encryption packages, wherein each of the plurality of encryption packages includes an encryption algorithm and/or a decryption algorithm,
    제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하는 동작;generating a first random number based on the first counter;
    상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하는 동작;selecting a first encryption package from among the plurality of encryption packages based on the first random number;
    제 1 키 및 제 1 평문을 상기 제 1 암호화 패키지의 암호화 알고리즘에 적용함에 기반하여, 제 1 암호문을 생성하는 동작; 및generating a first ciphertext based on applying a first key and a first plaintext to an encryption algorithm of the first encryption package; and
    상기 제 1 암호문 및 상기 제 1 카운터를 포함하는 정보를 제 2 전자 장치로 송신하는 동작Transmitting information including the first ciphertext and the first counter to a second electronic device
    을 포함하는 제 1 전자 장치의 동작 방법.A method of operating a first electronic device comprising a.
  16. 제 15항에 있어서,According to claim 15,
    상기 제 1 카운터에 기반하여 상기 제 1 랜덤 넘버를 생성하는 동작은,The operation of generating the first random number based on the first counter,
    상기 제 2 전자 장치와 미리 공유된 제 1 씨드 및 상기 제 1 카운터를 랜덤 넘버 생성 알고리즘에 적용함에 기반하여, 상기 제 1 랜덤 넘버를 생성하는 제 1 전자 장치의 동작 방법.The operating method of the first electronic device generating the first random number based on applying the first seed and the first counter previously shared with the second electronic device to a random number generation algorithm.
  17. 제 16 항에 있어서,17. The method of claim 16,
    상기 제 1 카운터는 제 1 시점이며, 상기 제 1 랜덤 넘버는 제 1 OTP인 제 1 전자 장치의 동작 방법.The first counter is a first time point, and the first random number is a first OTP.
  18. 제 15 항에 있어서,According to claim 15,
    상기 제 1 랜덤 넘버에 기반하여 상기 제 1 키를 생성하는 동작Generating the first key based on the first random number
    을 더 포함하는 제 1 전자 장치의 동작 방법.A method of operating a first electronic device further comprising a.
  19. 제 15 항에 있어서,According to claim 15,
    상기 제 1 랜덤 넘버와 상이한 제 2 랜덤 넘버에 기반하여 상기 제 1 키를 생성하는 동작Generating the first key based on a second random number different from the first random number
    을 더 포함하는 제 1 전자 장치의 동작 방법.A method of operating a first electronic device further comprising a.
  20. 제 19 항에 있어서,According to claim 19,
    상기 제 1 랜덤 넘버를 이용하는데 이용한 씨드와 상이한 씨드 및 상기 제 1 카운터를 이용하여 상기 제 2 랜덤 넘버를 생성하는 동작An operation of generating the second random number using a seed different from the seed used to use the first random number and the first counter
    을 더 포함하는 제 1 전자 장치의 동작 방법.A method of operating a first electronic device further comprising a.
  21. 제 19 항에 있어서,According to claim 19,
    상기 제 1 전자 장치의 동작 방법은,The operation method of the first electronic device,
    상기 제 1 랜덤 넘버를 이용하는데 이용한 씨드 및 상기 제 1 카운터와 상이한 제 2 카운터를 이용하여 상기 제 2 랜덤 넘버를 생성하는 동작을 더 포함하고,Generating the second random number using a seed used for using the first random number and a second counter different from the first counter,
    상기 정보를 상기 제 2 전자 장치로 송신하는 동작은, 상기 제 1 암호문 및 상기 제 1 카운터와 함께 상기 제 2 카운터를 포함하는 정보를 송신하는 제 1 전자 장치의 동작 방법.The operation of transmitting the information to the second electronic device may include transmitting information including the second counter together with the first encrypted text and the first counter.
  22. 복수 개의 암호화 패키지들을 저장하는 제 2 전자 장치의 동작 방법에 있어서,A method of operating a second electronic device for storing a plurality of encryption packages,
    제 1 전자 장치로부터, 제 1 카운터 및 제 1 암호문을 포함하는 정보를 수신하는 동작;receiving information including a first counter and a first ciphertext from the first electronic device;
    상기 제 1 카운터에 기반하여 제 1 랜덤 넘버를 생성하는 동작;generating a first random number based on the first counter;
    상기 제 1 랜덤 넘버에 기반하여 상기 복수 개의 암호화 패키지들 중 제 1 암호화 패키지를 선택하는 동작; 및selecting a first encryption package from among the plurality of encryption packages based on the first random number; and
    제 1 키 및 상기 제 1 암호문을 상기 제 1 암호화 패키지의 복호화 알고리즘에 적용함에 기반하여, 상기 제 1 암호문에 대응하는 제 1 평문을 생성하는 동작An operation of generating a first plaintext corresponding to the first ciphertext based on applying a first key and the first ciphertext to a decryption algorithm of the first encryption package.
    을 포함하는 제 2 전자 장치의 동작 방법.A method of operating a second electronic device comprising a.
  23. 제 22 항에 있어서,23. The method of claim 22,
    상기 제 1 카운터에 기반하여 상기 제 1 랜덤 넘버를 생성하는 동작은,The operation of generating the first random number based on the first counter,
    상기 제 1 전자 장치와 미리 공유된 제 1 씨드 및 상기 제 1 카운터를 랜덤 넘버 생성 알고리즘에 적용함에 기반하여, 상기 제 1 랜덤 넘버를 생성하는 제 2 전자 장치의 동작 방법.A method of operating a second electronic device that generates the first random number based on applying a first seed previously shared with the first electronic device and the first counter to a random number generation algorithm.
  24. 제 23 항에 있어서,24. The method of claim 23,
    상기 제 1 카운터는 제 1 시점이며, 상기 제 1 랜덤 넘버는 제 1 OTP인 제 2 전자 장치의 동작 방법.The first counter is a first time point, and the first random number is a first OTP.
  25. 제 22 항에 있어서,23. The method of claim 22,
    상기 제 1 랜덤 넘버에 기반하여 상기 제 1 키를 생성하는 동작Generating the first key based on the first random number
    을 더 포함하는 제 2 전자 장치의 동작 방법.A method of operating a second electronic device further comprising a.
  26. 제 22 항에 있어서,23. The method of claim 22,
    상기 제 1 랜덤 넘버와 상이한 제 2 랜덤 넘버에 기반하여 상기 제 1 키를 생성하는 동작Generating the first key based on a second random number different from the first random number
    을 더 포함하는 제 2 전자 장치의 동작 방법.A method of operating a second electronic device further comprising a.
  27. 제 26 항에 있어서,27. The method of claim 26,
    상기 제 1 랜덤 넘버를 생성하는데 이용한 씨드와 상이한 씨드 및 상기 제 1 카운터를 이용하여 상기 제 2 랜덤 넘버를 생성하는 동작Generating the second random number using a seed different from the seed used to generate the first random number and the first counter
    을 더 포함하는 제 2 전자 장치의 동작 방법.A method of operating a second electronic device further comprising a.
  28. 제 26 항에 있어서,27. The method of claim 26,
    상기 제 1 전자 장치로부터, 상기 제 1 카운터 및 상기 제 1 암호문을 포함하는 상기 정보를 수신하는 동작은, 상기 제 1 카운터와 상이한 제 2 카운터를 더 수신하고,The operation of receiving the information including the first counter and the first password text from the first electronic device further includes receiving a second counter different from the first counter;
    상기 제 2 전자 장치의 동작 방법은,The operation method of the second electronic device,
    상기 제 1 랜덤 넘버를 생성하는데 이용한 씨드와 상기 제 2 카운터에 기반하여 상기 제 2 랜덤 넘버를 생성하는 동작Generating the second random number based on the seed used to generate the first random number and the second counter
    을 더 포함하는 제 2 전자 장치의 동작 방법.A method of operating a second electronic device further comprising a.
PCT/KR2023/001519 2022-02-09 2023-02-02 Electronic device for performing high-dimensional polymorphic encryption for post-quantum encryption environment, and operating method thereof WO2023153717A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0016737 2022-02-09
KR1020220016737A KR20230120309A (en) 2022-02-09 2022-02-09 Electronic device performing high level polymorphic cryptography for environment of post quantum cryptography and method for operating thereof

Publications (1)

Publication Number Publication Date
WO2023153717A1 true WO2023153717A1 (en) 2023-08-17

Family

ID=87564693

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/001519 WO2023153717A1 (en) 2022-02-09 2023-02-02 Electronic device for performing high-dimensional polymorphic encryption for post-quantum encryption environment, and operating method thereof

Country Status (2)

Country Link
KR (1) KR20230120309A (en)
WO (1) WO2023153717A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100067687A1 (en) * 2004-12-06 2010-03-18 The Trustees Of The Stevens Institute Of Technology Method and apparatus for maintaining data integrity for block-encryption algorithms
US20110182419A1 (en) * 2007-03-30 2011-07-28 Verizon Data Services Inc. Encryption algorithm with randomized buffer
KR101572111B1 (en) * 2015-07-01 2015-11-27 주식회사 이노스코리아 Electronic device and method for generating random and unique code
KR20180046721A (en) * 2016-10-28 2018-05-09 삼성에스디에스 주식회사 Apparatus and method for encryption
KR20180067214A (en) * 2016-12-12 2018-06-20 에스케이이엔에스 주식회사 Terminal, system and method for distribution of share key using one time password

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100067687A1 (en) * 2004-12-06 2010-03-18 The Trustees Of The Stevens Institute Of Technology Method and apparatus for maintaining data integrity for block-encryption algorithms
US20110182419A1 (en) * 2007-03-30 2011-07-28 Verizon Data Services Inc. Encryption algorithm with randomized buffer
KR101572111B1 (en) * 2015-07-01 2015-11-27 주식회사 이노스코리아 Electronic device and method for generating random and unique code
KR20180046721A (en) * 2016-10-28 2018-05-09 삼성에스디에스 주식회사 Apparatus and method for encryption
KR20180067214A (en) * 2016-12-12 2018-06-20 에스케이이엔에스 주식회사 Terminal, system and method for distribution of share key using one time password

Also Published As

Publication number Publication date
KR20230120309A (en) 2023-08-17

Similar Documents

Publication Publication Date Title
WO2017003051A1 (en) Electronic device and method for generating random and unique code
WO2020145503A1 (en) Apparatus for processing approximately encrypted messages and methods thereof
WO2020235797A1 (en) Apparatus for processing modular multiply operation and methods thereof
WO2020166879A1 (en) Apparatus for performing threshold design on secret key and method thereof
WO2010123185A1 (en) Semiconductor chip and method for generating digital value using process variation
WO2015158038A1 (en) Encryption device and method of defending against differential power analysis attack
WO2018082142A1 (en) Screen recording method and device
WO2021261728A1 (en) Secure communication device for providing multi-functional secure connection, and operation method thereof
EP3909193A1 (en) Apparatus for processing approximately encrypted messages and methods thereof
WO2018034491A1 (en) A primary device, an accessory device, and methods for processing operations on the primary device and the accessory device
WO2022060149A1 (en) Electronic device for managing right by using decentralized network, and operation method thereof
WO2010087567A1 (en) Method for installing rights object for content in memory card
WO2020117015A1 (en) Operating device and method using multivariate packing
WO2016036048A1 (en) Method and device for data encrypting
WO2015115798A1 (en) User terminal device and secured communication method thereof
WO2018093203A1 (en) Calculation device for encryption using public key and encryption method thereof
WO2023153717A1 (en) Electronic device for performing high-dimensional polymorphic encryption for post-quantum encryption environment, and operating method thereof
WO2020246848A1 (en) Device and method for sorting approximately encrypted ciphertext
WO2017188497A1 (en) User authentication method having strengthened integrity and security
WO2019139421A1 (en) User terminal device, electronic device, system comprising the same and control method thereof
WO2020218708A1 (en) Method for encrypting and decrypting prescription information for providing home rehabilitation service, and doctor terminal
WO2021054619A1 (en) System for issuing plurality of implicit certificates using extension function, and method for issuing same
WO2023054857A1 (en) Device inside network
WO2021107515A1 (en) Identity-based encryption method based on lattices
WO2021256843A1 (en) Device and method for performing statistical calculation on homomorphic ciphertext

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: 23753068

Country of ref document: EP

Kind code of ref document: A1