WO2014204231A1 - 작은 메모리 구현 환경에 적합한 암호 인증 및 복호 검증 방법 및 전자 장치 - Google Patents

작은 메모리 구현 환경에 적합한 암호 인증 및 복호 검증 방법 및 전자 장치 Download PDF

Info

Publication number
WO2014204231A1
WO2014204231A1 PCT/KR2014/005417 KR2014005417W WO2014204231A1 WO 2014204231 A1 WO2014204231 A1 WO 2014204231A1 KR 2014005417 W KR2014005417 W KR 2014005417W WO 2014204231 A1 WO2014204231 A1 WO 2014204231A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
value
authentication
module
decryption
Prior art date
Application number
PCT/KR2014/005417
Other languages
English (en)
French (fr)
Inventor
장동훈
홍석희
Original Assignee
Chang Dong Hoon
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 Chang Dong Hoon filed Critical Chang Dong Hoon
Priority to EP14814588.1A priority Critical patent/EP3012772A4/en
Priority to US14/900,237 priority patent/US20160156459A1/en
Publication of WO2014204231A1 publication Critical patent/WO2014204231A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Definitions

  • the present invention relates to a password authentication and decryption verification method in an environment in which memory usage is restricted, and to an electronic device including the same.
  • the crypto module contains secret information such as secret key value or temporary secret key or secret nonce or password and cryptographic function to perform secret operations in the module securely from external attackers. Safe use of information to safely perform the desired operation.
  • Crypto modules must be designed to be safe against various attacks, such as side channel attacks and error injection attacks.
  • public information For example, some information in plaintext that you want to protect should not be exposed, except for Assoicate Data or public nonnce.
  • the cryptographic authentication refers to a process of generating a ciphertext and an authentication code from a plain text (in this case, public information such as additional information and public nonce) can be given using secret information, and decryption verification is given using secret information.
  • a cryptographic authentication and decryption verification method of an electronic device having a crypto module and a decryption module comprising: performing a first cryptographic operation by a first function using secret information; Performing a second cryptographic operation by a second function using the result of the first cryptographic operation without the secret information; And performing a third cryptographic operation by a third function using the result value of the first cryptographic operation or the result value of the second cryptographic operation and the secret information.
  • Decryption verification includes determining whether to output to the decryption module a value associated with all or part of the result of the first cryptographic operation according to the result of the third cryptographic operation.
  • the secret information is a secret key or secret nonce or temporary secret information.
  • the secret information is generated inside the crypto module.
  • the first function receives associative data from outside of the crypto module.
  • the result value of the first function may include at least one first output value or at least one second output value, and the at least one first output value is input to the second function.
  • the second function encrypts the plain text into a cipher text during password authentication.
  • the third function may receive at least one second output value of the first function or an output value of the second function and generate an authentication code during the password authentication.
  • the third function may determine whether the authentication code is valid by comparing the generated authentication code with the input authentication code during decryption verification.
  • the decoding operation is terminated without outputting a value associated with all or part of the at least one output value of the first function to the decoding module.
  • the method may further include outputting a value associated with all or part of the at least one output value of the first function to the decoding module.
  • the decoding module may further include decoding the plain text using a value associated with all or part of the at least one output value.
  • the method may further include temporarily storing the first at least one output value or the second at least one output value in an internal memory of the crypto module.
  • An electronic device may perform cryptographic authentication using a first function, a second function, and a third function, and perform decryption verification using the first function and the third function.
  • module configured to receive a result value of the first function according to a result value of the third function and to decode the plain text by using a value associated with the result value of the first function.
  • each of the first function, the second function, and the third function is a substitution function based function.
  • each of the first function and the third function performs the cryptographic authentication using a shared secret key or nonce or temporary secret information.
  • each of the first function and the third function performs the cryptographic authentication using temporary secret information.
  • each of the first function, the second function, and the third function is a block cipher based function.
  • a cryptographic authentication and a decryption verification method of an electronic device having a crypto module and a decryption module may include: a first cryptographic operation step of generating a first output value using an authentication code and secret information in a first function; ; A second cryptographic operation step of outputting a cipher text using a plain text and a first output value of the first cryptographic operation without the secret information in a second function; And generating the authentication code using the secret information and the plain text in a third function.
  • the decryption verification includes determining whether to output to the decryption module a value associated with all or part of the result of the first cryptographic operation according to the result of the third cryptographic operation.
  • the first function and the third function perform the cryptographic authentication using a secret key shared between the crypto modules without using a nonce value or a counter value.
  • the first function generates an encryption key to be used in the second function by using the shared secret key and the authentication code.
  • the secret information can be secured by safely implementing the cryptographic authentication technique and the decryption verification using the crypto module and the decryption module by using a logical operation according to the present invention.
  • FIG. 1 is a block diagram illustrating an electronic device according to an embodiment of the present disclosure.
  • FIG. 2 is a diagram illustrating a first embodiment of a password authentication scheme according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a password authentication method according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an electronic device according to another embodiment of the present disclosure.
  • FIG. 5 is a diagram illustrating an example of a substitution function-based password authentication scheme.
  • FIG. 6 is a diagram illustrating a decryption verification process corresponding to the substitution function-based encryption authentication method illustrated in FIG. 5.
  • FIG. 7 is a diagram illustrating an example of a substitution function-based password authentication method for the case of using a secret nonce.
  • FIG. 8 is a diagram illustrating a decryption verification process corresponding to the substitution function-based encryption authentication method illustrated in FIG. 7.
  • FIG. 9 is a diagram illustrating an example of a substitution function-based cryptographic authentication method using a temporary secret key pair (N, N ').
  • FIG. 10 is a diagram illustrating a decryption verification process corresponding to the substitution function-based encryption authentication method illustrated in FIG. 9.
  • FIG. 11 is a diagram illustrating an example of a block cipher based cipher authentication scheme.
  • FIG. 12 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 11.
  • FIG. 13 is a diagram illustrating an example of a block cipher-based cipher authentication method in which a checksum generation method and a padding method are changed.
  • FIG. 14 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 13.
  • 15 is a diagram illustrating an example of a block cipher-based cipher authentication method using a temporary secret information nonce.
  • FIG. 16 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 15.
  • 17 is a diagram illustrating an example of a block cipher-based cipher authentication method that does not use a nonce or a counter value.
  • FIG. 18 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 17.
  • FIG. 1 shows the best mode for carrying out the invention.
  • the decryption verification process checks the authentication code value to detect forgery or tampering with ciphertext. For this reason, in most cases, the ciphertext or plaintext is stored in the cryptographic module until the authentication code value is checked, or the cryptographic module has a double burden of encrypting and passing the plaintext again to the outside to hide the plaintext.
  • the way that encryption must be performed again for decryption verification not only impairs the efficiency of the implementation, but also increases the cost of the implementation and, above all, increases the amount of communication between the crypto module and the external device.
  • the present invention proposes a design logic capable of decryption verification by storing only a small internal state value without storing a cipher text or a message (or plain text) in a crypto module.
  • the cryptographic authentication process and the decryption verification process are based on similar cryptographic operations, the implementation efficiency can be improved and the implementation cost can be low.
  • another advantage of the present invention is that it is not necessary to transmit any internal state information to the outside until only a specific internal state value is transmitted to the outside. This maximizes the benefits of reducing the load on communication between external devices and crypto modules.
  • a secure cryptographic operation method of an encryption system is a cryptographic authentication and decryption verification method of an electronic device having a cryptographic module and a decryption module, wherein the cryptographic authentication is performed by a first function using a secret function. Performing a cryptographic operation; Performing a second cryptographic operation by a second function using the result of the first cryptographic operation without the secret information; And performing a third cryptographic operation by a third function using the result value of the first cryptographic operation or the result value of the second cryptographic operation and the secret information.
  • Decryption verification includes determining whether to output to the decryption module a value associated with all or part of the result of the first cryptographic operation according to the result of the third cryptographic operation.
  • the electronic device 100 includes a crypto module 120 and a decoding module 140.
  • the electronic device 100 may be any device that requires a password, for example, a computer, a tablet PC, a smart phone, a mobile phone, a smart card, a memory card, a sensor, an RFID, an IoT, and the like.
  • the cryptographic module 120 includes cryptographic functions and secret information such as a secret key or a temporary secret nonce or a password therein, so that the cryptographic module 120 can safely perform cryptographic operations in the module from external attackers.
  • the crypto module 120 may be designed to be safe against various attacks such as side channel attacks and error injection attacks. The larger the area of the crypto module 120, the greater the design and implementation cost, and thus, the size of the memory available within the module is limited. The configuration and operation principle of the crypto module 120 will be described below.
  • the crypto module 120 may implement the first function 121, the second function 122, and the third function 123 for cryptographic authentication therein.
  • the first function 121 receives the additional information A and the nonce N and the secret key K internally from the outside, and includes at least one first output value OUT1 or a "result value” or at least one. Generate a second output value OUT2, or " result value ".
  • the additional information A may be head information of the message.
  • the first function may not use additional information.
  • the second output value OUT2 may be absent. If the nonce N is a public value, the nonce N may be input from the outside. It may be a public counter value instead of a nonce value. Instead of the secret key, you can also receive temporary secret information such as a temporary secret nonce generated from the secret key.
  • the second function 122 receives the first output value OUT1 from the plain text M and the first function 121 from the outside, the ciphertext C, the ciphertext, and the at least one third output value OUT3, or "Result").
  • the plain text M in a block unit may be input and the ciphertext C in a block unit may be output during the encryption operation. If there is room in memory in the crypto module, cryptographic operations can be performed in blocks instead of blocks.
  • the second function may receive, as an input, additional information, a public nonce value, or a counter value that is public information other than the first output value and the plain text.
  • the third function 123 is provided with additional information (A) from the outside, internally a nonce (N) and a secret key (K), a second output value (OUT2) from the first function (121) or a second from the second function (122). 3
  • the output value OUT3 is inputted, and an authentication code T is generated. At this time, the third output value OUT3 must be input.
  • the third function 123 may use only some of the additional information A, the nonce N, the second output value OUT2, or the secret key value during the actual operation.
  • the third function 123 may determine whether the authentication code T input from the outside during the decryption verification operation is valid.
  • public information such as additional information or public nonce may not be used. Temporary secret information generated from the secret key instead of the nonce or secret key may be used as an input value of the third function 123.
  • all functions 121, 122, 123 are used in the cryptographic authentication operation in the crypto module 120, and some functions 121, 123 and functions in the decryption verifying operation in the crypto module 12.
  • An inverse transform process of 122 can be used.
  • the decoding module 140 located outside the crypto module may be implemented with a decoding function 142 that is the same as or similar to the second function 122 of the crypto module 120.
  • the decryption function 142 receives the output value OUT1 of the first function 121 of the cryptographic module 120 or its modified value OUT1 ', and the ciphertext C without information on the secret key K. It is possible to decrypt the plain text M from. In this case, additional information disclosed in the decoding function may be additionally used. Whether to transmit (or related) the value OUT1 'associated with all or part of the output value OUT1 of the first function 121 to the decryption module 140 depends on whether the input authentication code T is valid or not. Can be determined.
  • the associated value is not an independent value of each other, but refers to a case where one value affects another value.
  • the associated value means that a part of information about another value is exposed through one value.
  • an associated value is meant to have an association as two values themselves.
  • the value transmitted to the external decoding module 140 becomes OUT1 'associated with OUT1.
  • the required condition is that the external decoding module should be able to obtain the minimum information for decrypting the cipher text among the OUT1 'from T1'.
  • the crypto module transfers the value associated with its internal state value to the external decoding module.
  • the invention is also designed to maximize efficiency by delivering OUT1 'to the decoding module only once, not several times.
  • the authentication code T is valid, a value associated with part or all of its output value OUT1 of the first function 121 is transmitted to the decoding module 140.
  • the first function 121, the second function 122, and the third function 123 are used in almost the same manner, implementation costs can be minimized.
  • the password authentication process When the password authentication process is performed through the crypto module 120, external information A and plain text M are received as an input.
  • A can be an empty string or no A value.
  • the nonce value N may be a public value or a secret value. You may or may not receive nonce values from the outside.
  • the nonce value can be a random value, it can be a counter value, or it can be generated with a certain pattern.
  • A, N, and K are input to the first function in the crypto module 140 (in this case, if N is temporary secret information, the secret key K may not be needed).
  • the second output value may be absent, whereas the first output value is necessary.), In which some or all of the first output value is important to the decoding module 140 later. However, it is not necessary to store the above 1 output value during the password authentication process.
  • the second function receives the plain text M in block units using the first output information, generates a cipher text block, outputs the cipher text block to an external device, and outputs a final third output value.
  • the cipher operation may be performed by combining several blocks without processing plain text or cipher text in units of blocks.
  • the public information such as additional information or public nonce may be used in the second function.
  • the third output value is received as an input using a third function (in this case, the second output value may be absent or may not be used).
  • the final authentication code T is generated and transmitted to the external device.
  • the third function may use public information in addition to secret information.
  • the crypto module receives the additional information A, the cipher text C, and the authentication code T from the outside.
  • N may be input from the outside.
  • public information such as counters can be received as input.
  • the first output value is generated using the first function (in this case, the second output value information may or may not be necessary). In this case, a value associated with some or all of the first output value may be obtained. In memory). Subsequently, an inverse operation of the second function is performed.
  • the input value of the inverse operation of the second function becomes the ciphertext with the first output value.
  • This ciphertext may not be the entire ciphertext.
  • the ciphertext may be applied as an input value of the second function except C0 generated using secret information.
  • the plaintext may not be transmitted to an external device.
  • a value corresponding to the third output information is calculated.
  • public information such as additional information or public nonce may be used together.
  • the third function in the crypto module 120 generates an authentication code value T 'using the third output value (at which time, the second output value may not be needed), and generates the authentication code value T', If T 'is compared and corrected, the crypto module modulates the value OUT1' associated with the first output value OUT1 securely stored in the memory in the crypto module, where OUT1 and OUT1 'may be the same or different. ' May be some information of OUT1, except that OUT1 may be used to obtain all or part of information about OUT1 necessary for decoding.) It is transmitted to the external decoding module 140.
  • the external device including the crypto module and the decryption module may decrypt the final plain text from the cipher text using the second function '142 in the decryption module 140.
  • public information such as additional information or public nonce may be used for decryption.
  • the operation is performed in the order of the first function-> the second function-> the third function, and during the decryption verification, the first function-> the first output value association information->
  • the second function is inverse transform-> third function-> second function '.
  • the crypto module 120 uses the first, second, and third functions 121, 122, and 123 to generate a secret key K, a nonce, and additional information ( A, Associate Data), plain text (M, Plaintext) input is received, ciphertext (C, Ciphertext) and authentication code (T) is output.
  • A Associate Data
  • plain text M, Plaintext
  • C Ciphertext
  • T authentication code
  • the first function 121 receives a secret key K, a nonce N, and additional information A, and outputs a first output value OUT1 and a second output value OUT2. At this time, only some of the secret key, nonce, additional information may be used. In this case, in some cases, the second output value OUT2 may not exist.
  • the second function 122 receives the first output value OUT1 and the plain text M, and outputs the ciphertext C and the third output value OUT3. At this time, when cipher text is generated, public information such as additional information or public nonce may be used together.
  • the third function 123 receives the secret key K, the nonce N, the additional information A, the second output value OUT2 and the third output value OUT3, and outputs an authentication code T.
  • the secret key K is a secret key value
  • the nonce N is a random nonce value or a counter value
  • the additional information A is the public additional information.
  • only a part of the secret key, the nonce, the additional information, and the second output value may be used in the third function.
  • the crypto module 120 receives the additional information A, the cipher text C, the authentication code T, and the nonce N from the electronic device 100.
  • the nonce N may be input from the outside of the crypto module 120 or may be generated inside the crypto module 120.
  • the values input from the electronic device 100 are not transmitted to the crypto module 120 at a time, but are transmitted one block to a small memory inside the crypto module 120 (in this case, if the memory is free, several blocks are transmitted.
  • the third function 123 of the crypto module 120 calculates the authentication code T.
  • the first function 121 of the crypto module 120 calculates and stores the first output value OUT 1 using the input secret key K.
  • FIG. The third function 123 verifies whether the final authentication code T value is correct. If the calculated authentication code T and the input authentication code T value do not match, the input ciphertext C is treated as modulated. Therefore, no part of any plain text is output.
  • the crypto module 120 In the third step, if the calculated authentication code T and the input authentication code T value coincide, the crypto module 120 all or part of the first output value OUT1 of the first function 121.
  • the value OUT1 'associated with the output is output to the decoding module 140 external to the crypto module 120.
  • the decoding module 140 receives the OUT1 'output to the outside of the crypto module 120 using the decoding function 142, and decodes the cipher text C into the final plain text M.
  • public information such as additional information or public nonce may be used together.
  • a password authentication method is as follows.
  • a first cryptographic operation is performed by the first function 121 (see FIG. 1) using secret information (eg, K, N) (S110).
  • a second cryptographic operation is performed by the second function 122 (see FIG. 1) using the result of the first cryptographic operation without secret information (S120).
  • the third cryptographic operation is performed by the third function 123 (see FIG. 1) by using the secret information, the result of the first cryptographic operation, and the result of the second cryptographic operation (S130). According to the result value of the third cryptographic operation, it is determined whether the result value of the first cryptographic operation or part thereof is transmitted to the external decryption module 140.
  • the decryption module 140 when the authentication code T 'calculated in the third function 123 matches the input authentication code T, the result value OUT1 of the first cryptographic operation is transmitted to the decryption module 140.
  • the decryption operation on the ciphertext C is performed.
  • the value passed to the decryption module 140 may be a result value of the first cryptographic operation itself, or a value thereof, or some information related thereto. For example, if a value obtained by applying an arbitrary open substitution function (in this case, the inverse operation must be efficient) to OUT1 is OUT1 ', the decoding module can efficiently calculate OUT1 from OUT1'.
  • the electronic device 100 of the present invention can minimize the use of the memory inside the cryptographic module 120 during the decryption operation, as compared with the related art.
  • the crypto module 120a is composed of a first function 121a, a second function 122a, and a third function 123a.
  • the cryptographic module 120a shown in FIG. 4 differs from the cipher authentication and decryption verification order unlike that shown in FIG. 2.
  • the password verification process it goes through the third function-> first function-> second function process, and during the decryption verification process, the first function-> the value associated with the first result value-> the inverse transformation of the second function-> the third function -> Second function.
  • the second function ' refers to a function similar or identical to the second function in the external decoding module as described with reference to FIG. 1.
  • the similarity means that if a decoding module receives a value related to the first result value received, a process of extracting a value required for decoding from the original first result value is added therefrom.
  • the reason for the difference in the operation order of FIG. 4 from FIG. 1 is that in the case of the password authentication process in the crypto module 120a, the authentication code T cannot be calculated without the calculation of the third function 123a, and the authentication code T is different from the first function. Affects the second function.
  • the crypto module 120a receives the additional information A and the plain text M from the outside in units of blocks, generates an authentication code T in the third function 123a, and passes the T value to the first function.
  • public information such as a public nonce or a counter value may be input from the outside.
  • the first function 121a outputs OUT1 using the secret key K and the authentication code T or the additional information A.
  • the second function receives the plaintext M as a block unit from the OUT1 and the outside (in this case, public information such as additional information or a public nonce can be input together).
  • the code T and the ciphertext block are delivered to the external device in block units. If there is room in the size of the memory of the cryptographic module, several blocks may be generated and processed together instead of being processed in units of blocks.
  • the cryptographic module 120a receives the additional information A, the authentication code T, and the ciphertext C from the outside in units of blocks. To generate OUT 1 In this case, the nonce N value may be input from the outside in some cases. In some cases, there may be no additional information.
  • the cryptographic module transfers the plaintext M to the third function 123a in units of blocks (or in units of blocks) through the inverse transformation of the second function 122a by using OUT1, so that the third function is T '. Helps raise it.
  • the crypto module transmits OUT1 related to all or part of OUT1 to the decoding module of the external device to the decoding module located outside the crypto module. If T and T 'do not match, an error occurs.
  • the external decoding module calculates a value required for decryption among OUT1 to OUT1 through a function that is the same as or similar to that of the second function 122a, and then decrypts the ciphertext C to plaintext M You get In this case, the decoding module may use additional information or public information such as a published nonce as an input.
  • IV1 and IV2 are initial values that are arbitrary fixed constants, K is a secret key, N is a public nonce value or a counter value, and A is additional information.
  • K is a secret key
  • N is a public nonce value or a counter value
  • A is additional information.
  • K, N, and A are padded, it is assumed that each of r (r is a natural number) bit data. In this case, padding may be any efficient reversible padding.
  • FIG. 6 is a diagram illustrating a decryption verification process corresponding to the substitution function-based password authentication method illustrated in FIG. 5.
  • a cryptographic module based decoding verification process having a limitation on a memory size is as follows.
  • the first function 121 of the cryptographic module 120 which knows the secret key K, first receives a nonce N and additional information A from the outside for the decoding verification process, and then outputs the first output value pair OUT1_1. , OUT1_2).
  • the generated first output value pairs OUT1_1 and OUT1_2 are temporarily stored in the internal memory of the crypto module 120.
  • the ciphertext C is sequentially input from the outside in block units.
  • the first output value pair is defined as an internal state value after processing a secret key, a nonce, and additional information.
  • the first output value pair is defined as an internal state value after applying a secret key or an internal state value after applying a nonce. Can also be defined.
  • the second function 122 does not transmit the plaintext block value to the outside and processes the ciphertext block information in real time without generating the third output value pair OUT3_1 and OUT3_2.
  • the third function 123 finally receives the authentication code T value from the outside, and checks whether the calculated authentication code T and the input authentication code T are the same. At this time, if the value of the authentication code T is correct, the first function 121 transmits the first output value pair OUT1_1 and OUT1_2 of the first function 121 to the outside. On the other hand, if the value of the authentication code (T) is incorrect, the decryption verification process is stopped, and an error message is transmitted to the outside.
  • the external decoding module 140 may decrypt the plain text M for the cipher text C using the output first output pairs OUT1_1 and OUT1_2. The decoding module may use the additional information and the open information such as the open nonce together as inputs when decoding.
  • FIG. 7 is a diagram illustrating an example of a substitution function-based password authentication method for the case of using a secret nonce.
  • the cryptographic authentication method is a case where the nonce N is closed in comparison with that shown in FIG. 5.
  • a nonce N can be generated from C0 only if the secret key K is known.
  • the password authentication process is as follows.
  • the crypto module 120 first receives additional information A from the outside, randomly generates a secret nonce (N) internally, and externally generates C0 generated from the secret nonce using the input secret key (K). To send.
  • Each of the message blocks is input from the outside, and processing one by one from M1, ciphertext blocks are generated in real time, and transmitted to the outside.
  • an authentication code (T) is generated using a secret nonce (N) and transmitted to the outside. do.
  • FIG. 8 is a diagram illustrating a decryption verification process corresponding to the substitution function-based encryption authentication method illustrated in FIG. 7.
  • the decoding verification process is as follows.
  • the first function 121 receives the additional information A and C0 from the outside, the first function 121 calculates the nonce N, calculates the first output value pair OUT1_1 and OUT1_2, and calculates the calculated first output value pair OUT1_1, OUT1_2 is safely stored in the crypto module 120.
  • the first output value pair is defined as an internal state value after processing a secret key, secret nonce, and additional information.
  • the first output value pair may also be defined as an internal state value after applying secret nonce.
  • the second function 122 receives the ciphertext blocks one by one and calculates third output values OUT3_1 and OUT3_2.
  • the third function 123 verifies whether the authentication code T input from the outside is a correct value using the secret nonce N.
  • the first output value pair OUT1_1 and OUT1_2 are transmitted to the external decryption module 140, and the decryption module 140 performs a decryption operation on the directly input cipher text.
  • public information such as additional information may be used during the decoding process.
  • a value obtained by applying the first output pair to a public substitution function may be transmitted to a decoding module.
  • the authentication code T is not correct, an error message is transmitted to the outside, and the decryption verification process ends.
  • FIG. 9 is a diagram illustrating an example of a substitution function-based cryptographic authentication method using a temporary secret key pair (N, N ').
  • the encryption authentication method is a case where a temporary secret key pair N, N 'is used instead of a shared secret key K.
  • the temporary secret key pair (N, N ') is a value that changes each time, and is a value shared by two crypto modules in advance using a shared secret key (K).
  • K shared secret key
  • a C0 value generated by hashing N using the hash function H is generated, and the C0 value is transmitted to the counterpart crypto module.
  • the cryptographic module can easily obtain the N 'value corresponding to N from N.
  • a partner crypto module that knows the shared secret key (K) can get the temporary secret key pair (N, N ') used from C0.
  • an index corresponding to the temporary secret key pair N, N' may be transmitted together.
  • the index refers to the index used when generating a temporary secret key pair with a shared key (K).
  • the crypto module receives additional information (A) and plain text blocks one by one from the outside, generates a cipher text block in real time, and transmits it to the outside.
  • the padding method for the message may be any efficient reversible method.
  • FIG. 10 is a diagram illustrating a decryption verification process corresponding to the substitution function-based encryption authentication method illustrated in FIG. 9.
  • the crypto module 120 receives additional information A, ciphertext blocks, and the last authentication code T from the outside in real time one by one.
  • the Crypto module which knows the shared secret key (K)
  • the check method can store the available secret key pair and its hash value in a table in the crypto module, and verify that C0 is generated from a valid temporary secret key pair.
  • an index value may be additionally input to C0 to shorten the search time.
  • the decryption module 140 may be transmitted to the external decryption module 140, and the decryption module 140 may decrypt the cipher text using the input first output value pair OUT1_1 and OUT1_2.
  • Const1, Const2, and Const3 are different constant values, and K is a shared secret key.
  • the crypto module 120 randomly generates a nonce (N) therein to generate C0, and then receives additional information (A) and plain text block information from outside in real time and generates a cipher text to generate C0 in real time to an external device.
  • the padding method for the additional information A may be any efficient reversible.
  • FIG. 12 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 11.
  • the crypto module 120 that knows the shared secret key K obtains a random nonce N from C0, receives additional information A and ciphertext blocks from outside in real time, and receives a final authentication code ( Calculate T). And finally, if the authentication code (T) is the correct value, the crypto module 120 transmits the first output value pair (OUT1_1, OUT1_2) to the outside. Then, the external decryption module 140 may decrypt the cipher text using the first output value pair OUT1_1 and OUT1_2.
  • FIG. 13 is a diagram illustrating an example of a block cipher-based cipher authentication method in which a checksum generation method and a padding method are changed.
  • the block cipher-based cipher authentication scheme has three differences as compared to that shown in FIG. 11. The first is that for every n-bit block cipher operation, xor operation is performed on the input value of the block cipher after cyclically shifting the used block key to the left by n / 2 bits. Secondly, when the checksum is generated, the plain text block is not used, and as shown in FIG. 13, a1, ..., at values are used. Third, a message padding method is required when a message block occurs.
  • FIG. 14 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 13. Since the decoding verification process shown in FIG. 14 is similar to that shown in FIG. 12, description thereof will be omitted.
  • FIG. 15 is a diagram illustrating an example of a block cipher based cryptographic authentication method using temporary secret information such as a temporary secret key.
  • the block cipher-based cipher authentication method is the same as in FIG. 13, except that the process of generating C0 is the same.
  • C0 is generated using the hash function H. This is the method used when the temporary secret key value available from the shared secret key (K) is synchronized between the two crypto modules.
  • FIG. 16 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 15. Referring to FIG. 16, if C0 is a valid value, decoding verification is performed. If C0 is not valid, decoding verification is stopped.
  • the crypto module 120a uses a message authentication code (MAC) function (e.g., can be HMAC) with pseudorandom number properties, and a key (K) as its input value. ),
  • MAC message authentication code
  • K key
  • the additional information A and the plain text M are received as inputs, and an authentication code T is generated.
  • additional information may not be received as an input.
  • temporary secret information may be used instead of secret key K.
  • C0 may be used to validate the temporary secret information.
  • the MAC function should be one that can be processed sequentially in a block unit or a small number of blocks. It receives plain text blocks or plain text blocks in blocks or a small number of blocks when decrypting using CTR (counter) mode for decoding verification, and immediately transmits the plain text blocks or plain text blocks as inputs to the MAC function, thereby providing an authentication code in real time. This is because (T) may occur.
  • the cryptographic module 120a encrypts the authentication code T during the password authentication process using the shared key K between the crypto modules to generate K *, and finally, the authentication code T is converted into a CTR (counter).
  • the encryption mode As a counter of the encryption mode, it generates a cipher text for the plain text M inputted with the K * value as the secret key K of the CTR mode.
  • the K * value is used as a one-time encryption key.
  • the cipher text can be generated by applying to not only the CTR mode shown in FIG. 17 but also various encryption modes.
  • FIG. 18 is a diagram illustrating a decryption verification process corresponding to the block cipher-based cipher authentication method illustrated in FIG. 17.
  • the decoding verification process is as follows.
  • the MAC function calculation process corresponds to the third function 123 shown in FIG. 4, the process of generating a K * value corresponds to the first function 121 shown in FIG. 4, and the final CTR encryption is applied to the third.
  • the first output value OUT1_1 becomes the authentication code T, and the first output value OUT1_2 corresponds to K *.
  • the crypto module 120a first receives the nonce (N), the additional information (A), and the cipher text (C) for decryption verification, performs the CTR decryption, and verifies the MAC value using a message block obtained in real time. Verify the authentication code (T). If the authentication code T is not correct, decryption verification is stopped. On the other hand, if the authentication code (T) is correct, the crypto module 120 calculates the cipher text K * value corresponding to the authentication code (T) using the shared secret key (K) and transmits it to the external device. Finally, the external device decrypts the cipher text using the authentication tag T and K *.
  • the present invention is applicable to any device that performs cryptographic operations.

Abstract

본 발명에 따른 암호 인증은 비밀 정보를 이용하여 제 1 함수에 의해 제 1 암호 연산을 수행하는 단계; 상기 비밀 정보 없이 상기 제 1 암호 연산의 결과값을 이용하여 제 2 함수에 의해 제 2 암호 연산을 수행하는 단계; 및 상기 제 1 암호 연산의 결과값 혹은 상기 제 2 암호 연산의 결과값 및 상기 비밀 정보를 이용하여 제 3 함수에 의해 제 3 암호 연산을 수행하는 단계를 포함한다. 또한 본 발명에 다른 복호 검증은 상기 제 3 암호 연산의 결과값에 따라 상기 제 1 암호 연산의 결과값의 전체 혹은 일부 값과 연관된 값을 상기 복호 모듈로 출력할 지를 결정하는 단계를 포함한다.

Description

작은 메모리 구현 환경에 적합한 암호 인증 및 복호 검증 방법 및 전자 장치
본 발명은 메모리 사용에 제약이 있는 환경에서의 암호 인증 및 복호 검증 방법 및 그것을 포함하는 전자 장치에 관한 것이다.
해킹 및 다양한 공격 기술의 발달로 인하여, 크립토 모듈(Cryptographic Module)에 기반한 암호 연산의 필요성이 대두됨에 따라 크립토 모듈에 기반한 암호연산 기법에 대한 연구가 중요시되고 있다. 크립토 모듈은 크립토 모듈 안에 비밀키 값 혹은 임시 비밀 키 혹은 비밀 난스 혹은 패스워드와 같은 비밀 정보(Secret Information)와 암호 함수가 있어서 외부의 공격자로부터 안전하게 모듈 내에서 연산을 수행함으로, 비밀 정보를 보호하고 비밀 정보를 안전하게 사용하여 원하는 연산을 안전하게 수행하는 데에 있다.
크립토 모듈은 부 채널 공격, 오류 주입 공격 등의 다양한 공격에 안전하도록 설계되어야 하고, 크립토 모듈의 면적이 크면 클수록 설계 및 구현 비용이 증가하므로 크립토 모듈 안에는 사용 가능한 메모리 크기에 제약이 따른다.
메시지 해싱이나 인증의 경우에는 일반적으로 작은 메모리만으로 구현이 가능한 반면, 메시지 암호화와 인증 및 검증을 동시에 요구하는 암호 인증 및 복호 검증의 경우에는 인증 코드를 검증하기 이전에는 이미 공개된 정보 (Public Information, 가령, 부가 정보 Assoicate Data, 혹은 공개된 난스 Public Nonce)를 제외한 보호하기를 원하는 평문의 일부 정보도 노출되어서는 안 된다. 여기서 암호 인증은 비밀 정보를 이용하여 주어진 평문(이때, 부가정보, 공개 난스 등의 공개 정보들이 함께 주어질 수 있음)으로부터 암호문과 인증 코드를 발생하는 과정을 말하고, 복호 검증이란 비밀 정보를 이용하여 주어진 암호문과 인증 코드(이때, 부가정보, 공개 난스 등의 공개 정보들이 함께 주어질 수 있음)로부터 인증 코드가 올바른지를 체크하고, 인증 코드가 올바른 경우에만 암호문에 대한 올바른 평문(혹은 메시지)를 복구하게 된다.
일반적인 대부분의 복호 검증 기법들의 경우 암호문의 크기가 증가할수록 요구되는 메모리 크기 또한 증가한다. 따라서, 기존의 대부분의 복호 검증 기법들의 경우 메모리 사용이 제약된 크립토 모듈에서는 빅데이터에 대한 복호 검증 구현이 불가능하다.
기존의 대부분의 암호 인증, 복호 검증 기법은 암호문의 변조 유무를 파악하기 위한 메모리 사용 요구량에 대한 기준 없이 개발되어 사용되어 왔다. 혹은 암호 인증 과정과 복호 검증 과정이 상이하게 달라, 구현 효율성 및 구현 비용 측면에서 단점을 지니고 있다. 이는 암호 인증 과정과 복호 검증 과정을 독립적으로 구현해야 하는 부담이 있기 때문이다. 또한 해킹 등 다양한 공격 기법의 발달로 인하여 크립토 모듈에 대한 필요성이 대두됨에 따라 크립토 모듈에 기반한 암호 인증 및 복호 검증 기법이 중요하게 되었다. 하지만, 현존하는 대부분의 암호 인증, 복호 검증 기법은 암호문 변조 검증 시 메모리 사용에 대한 언급이 없으며, 무엇보다 이들 대부분의 암호 인증, 복호 검증 기법은 대상이 되는 암호문의 크기가 길어짐에 따라 요구되는 메모리 크기 양도 증가한다. 따라서 크립토 모듈 내에서 효율적으로, 동시에 적은 메모리 사용량으로 암호문 변조를 검증하고 안전하게 평문을 출력하는 기법에 대한 개발이 요구된다. 또한, 암호 인증 과정과 복호 검증 과정을 최대한 유사하게 설계함으로 중복되는 부분을 최소화시키면서 구현 효율성을 높이고, 구현 비용을 절감할 수 있다.
크립토 모듈과 복호 모듈을 갖는 전자 장치의 암호 인증 및 복호 검증 방법에 있어서: 암호 인증은 비밀 정보를 이용하여 제 1 함수에 의해 제 1 암호 연산을 수행하는 단계; 상기 비밀 정보 없이 상기 제 1 암호 연산의 결과값을 이용하여 제 2 함수에 의해 제 2 암호 연산을 수행하는 단계; 및 상기 제 1 암호 연산의 결과값 혹은 상기 제 2 암호 연산의 결과값 및 상기 비밀 정보를 이용하여 제 3 함수에 의해 제 3 암호 연산을 수행하는 단계를 포함한다. 복호 검증은 상기 제 3 암호 연산의 결과값에 따라 상기 제 1 암호 연산의 결과값의 전체 혹은 일부 값과 연관된 값을 상기 복호 모듈로 출력할 지를 결정하는 단계를 포함한다.
실시 예에 있어서, 상기 비밀 정보는 비밀 키 혹은 비밀 난스 혹은 임시 비밀 정보이다.
실시 예에 있어서, 상기 비밀 정보는 상기 크립토 모듈 내부에서 발생된다.
실시 예에 있어서, 상기 제 1 함수는 부가 정보(Associate Data)를 상기 크립토 모듈의 외부로부터 입력 받는다.
실시 예에 있어서, 상기 제 1 함수의 결과값은 적어도 하나의 제 1 출력값 혹은 적어도 하나의 제 2 출력값을 포함하고, 상기 적어도 하나의 제 1 출력값은 상기 제 2 함수에 입력된다.
실시 예에 있어서, 상기 제 2 함수는 암호 인증시 평문을 암호문으로 암호화한다.
실시 예에 있어서, 상기 제 3 함수는 상기 암호 인증시 상기 제 1 함수의 적어도 하나의 제 2 출력값 혹은 상기 제 2 함수의 출력값을 입력받고, 인증 코드를 발생한다.
실시 예에 있어서, 상기 제 3 함수는 복호 검증시 상기 발생된 인증 코드와 입력된 인증 코드를 비교함으로써 상기 인증 코드가 유효한 지를 판별한다.
실시 예에 있어서, 상기 인증 코드가 유효하지 않다면, 상기 제 1 함수의 상기 적어도 하나의 출력값의 전체 혹은 일부와 연관된 값을 상기 복호 모듈에 출력하지 않고, 복호 동작이 종료된다.
실시 예에 있어서, 상기 인증 코드가 유효하다면, 상기 제 1 함수의 상기 적어도 하나의 출력값의 전체 혹은 일부와 연관된 값을 상기 복호 모듈로 출력하는 단계를 더 포함한다.
실시 예에 있어서, 상기 복호 모듈에서 상기 적어도 하나의 출력값의 전체 혹은 일부와 연관된 값을 이용하여 평문을 복호화시키는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 적어도 하나의 출력값 혹은 상기 제 2 적어도 하나의 출력값을 상기 크립토 모듈의 내부 메모리에 임시로 저장하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 전자 장치는, 제 1 함수, 제 2 함수, 및 제 3 함수를 이용하여 암호 인증을 수행하고, 상기 제 1 함수 및 상기 제 3 함수를 이용하여 복호 검증을 수행하는 크립토 모듈; 및 상기 복호 검증시 상기 제 3 함수의 결과값에 따라 상기 제 1 함수의 결과값을 입력 받고, 상기 제 1 함수의 결과값과 연관된 값을 이용하여 평문을 복호화시키는 복호 모듈을 포함한다.
실시 예에 있어서, 상기 제 1 함수, 상기 제 2 함수, 및 상기 제 3 함수 각각은 치환 함수 기반 함수이다.
실시 예에 있어서, 상기 제 1 함수 및 상기 제 3 함수 각각은 공유된 비밀키 혹은 난스 혹은 임시 비밀 정보를 이용하여 상기 암호 인증을 수행한다.
실시 예에 있어서, 상기 제 1 함수 및 상기 제 3 함수 각각은 임시 비밀 정보를 이용하여 상기 암호 인증을 수행한다.
실시 예에 있어서, 상기 제 1 함수, 상기 제 2 함수, 및 상기 제 3 함수 각각은 블록 암호 기반 함수이다.
실시 예에 있어서, 크립토 모듈과 복호 모듈을 갖는 전자 장치의 암호 인증 및 복호 검증 방법에 있어서: 암호 인증은 제 1 함수에서 인증 코드와 비밀 정보를 이용하여 제 1 출력값을 발생하는 제 1 암호 연산 단계; 제 2 함수에서 상기 비밀 정보 없이 상기 제 1 암호 연산의 제 1 출력값과 평문을 이용하여 암호문을 출력하는 제 2 암호 연산 단계; 및 제 3 함수에서 상기 비밀 정보와 상기 평문을 이용하여 상기 인증 코드를 발생하는 단계를 포함한다. 그리고 복호 검증은 상기 제 3 암호 연산의 결과값에 따라 상기 제 1 암호 연산의 결과값의 전체 혹은 일부 값과 연관된 값을 상기 복호 모듈로 출력할 지를 결정하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 함수 및 상기 제 3 함수는 난스 값 혹은 카운터 값을 이용하지 않고 크립토 모듈들 사이에 공유된 비밀 키를 이용하여 상기 암호 인증을 수행한다.
실시 예에 있어서, 상기 제 1 함수는 상기 공유된 비밀 키와 상기 인증 코드를 이용하여 상기 제 2 함수에서 사용될 암호 키를 발생한다.
상술한 바와 같이 본 발명에 따른 논리 연산을 이용하여 작은 메모리로 암호 인증 기법, 복호 검증을 크립토 모듈과 복호 모듈을 이용하여 안전하게 구현함으로 비밀 정보를 안전하게 보호할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 암호 인증 기법에 대한 제 1 실시 예를 보여주는 도면이다.
도 3은 본 발명의 실시 예에 암호 인증 방법을 예시적으로 보여주는 흐름도이다.
도 4는 본 발명의 다른 실시 예에 따른 전자 장치를 예시적으로 보여주는 도면이다.
도 5는 치환 함수 기반 암호 인증 방식의 예를 보여주는 도면이다.
도 6는 도 5에 도시된 치환 함수 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다.
도 7은 비밀 난스를 사용한 경우에 대한 치환 함수 기반 암호 인증 방식의 예를 보여주는 도면이다.
도 8은 도 7에 도시된 치환 함수 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다.
도 9는 임시 비밀 키 쌍 (N, N’)을 이용한 치환 함수 기반 암호 인증 방식의 예를 보여주는 도면이다.
도 10은 도 9에 도시된 치환 함수 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다.
도 11은 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다.
도 12는 도 11에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다.
도 13은 체크썸 발생 방식, 패딩 방식을 변경한 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다.
도 14는 도 13에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다.
도 15는 임시 비밀 정보 난스를 이용한 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다.
도 16은 도 15에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다.
도 17은 난스 혹은 카운터 값을 사용하지 않는 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다.
도 18은 도 17에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다.
본 발명의 실시를 위한 최선의 형태를 보여주는 도면은 도 1이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
일반적인 대부분의 암호 인증, 복호 검증 방법은 암호 인증 시의 효율성이 강조되어 설계되었을 뿐, 암호문의 변조 유무를 파악하기 위한 메모리 사용 요구량에 대한 기준 없이 개발되어 사용되어 왔다. 해킹 등 다양한 공격 방법의 발달로 인하여 크립토 모듈에 대한 필요성이 대두됨에 따라 크립토 모듈에 기반한 암호 인증 방법이 중요하게 되었다. 하지만, 현존하는 대부분의 암호 인증 방법은 암호문 변조 검증 시 메모리 사용에 대한 언급이 없으며, 무엇보다 이들 대부분의 암호 인증 방법은 대상이 되는 암호문의 크기가 길어짐에 따라 요구되는 메모리 크기 양도 증가한다. 따라서 효율적으로 동시에 적은 메모리 사용량으로 암호문 변조를 검증하고 안전하게 평문을 출력하는 방법에 대한 개발이 요구된다. 또한, 구현 효율성을 높이고 구현 비용을 절감하기 위해서, 암호 인증 기법과 복호 검증 기법이 유사하도록 설계해야 한다.
일반적으로 복호 검증 과정에서는 암호문에 대한 위조 혹은 변조를 파악하기 위해 인증 코드 값을 체크한다. 이로 인해, 대부분의 방식들의 경우에 인증 코드 값을 체크하기 전까지 암호문 혹은 평문을 크립토 모듈 내에 저정하거나 크립토 모듈은 평문을 숨기기 위하여 평문을 또다시 암호화해서 외부로 전달해야 하는 이중 부담을 안고 있다. 복호 검증을 위해서 또다시 암호화를 수행해야 하는 방식은 구현의 효율성을 저해할 뿐 아니라, 구현의 비용을 증가시키며, 무엇보다 크립토 모듈과 외부 기기 간의 통신 량의 증가를 가져오게 된다. 본 발명에서는 암호문 혹은 메시지 (혹은 평문)를 크립토 모듈 내에 저장하지 않고, 크기가 작은 일부 내부 상태 값만을 저장함으로 복호 검증이 가능한 설계 논리를 제시한다. 또한 암호 인증 과정과 복호 검증 과정이 유사한 암호 연산에 기반함으로 구현 효율성을 높이고 구현 비용을 낮을 수 있다. 또한 본 발명의 또다른 장점은 특정 내부 상태 값만을 외부에 전달하기 전까지 그 어떤 내부 상태 정보를 외부에 전달하지 않아도 된다는 점이다. 이는 외부 기기와 크립토 모듈 간의 통신의 부하를 줄이는 장점을 극대화할 수 있게 된다.
본 발명의 실시 예에 따른 암호화 시스템의 안전한 암호 연산 방법은, 크립토 모듈과 복호 모듈을 갖는 전자 장치의 암호 인증 및 복호 검증 방법에 있어서: 암호 인증은 비밀 정보를 이용하여 제 1 함수에 의해 제 1 암호 연산을 수행하는 단계; 상기 비밀 정보 없이 상기 제 1 암호 연산의 결과값을 이용하여 제 2 함수에 의해 제 2 암호 연산을 수행하는 단계; 및 상기 제 1 암호 연산의 결과값 혹은 상기 제 2 암호 연산의 결과값 및 상기 비밀 정보를 이용하여 제 3 함수에 의해 제 3 암호 연산을 수행하는 단계를 포함한다. 복호 검증은 상기 제 3 암호 연산의 결과값에 따라 상기 제 1 암호 연산의 결과값의 전체 혹은 일부 값과 연관된 값을 상기 복호 모듈로 출력할 지를 결정하는 단계를 포함한다.
도 1은 본 발명의 실시 예에 따른 크립토 모듈을 설명하기 위한 전자 장치(100)를 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 전자 장치(100)는 크립토 모듈(120) 및 복호 모듈(140)을 포함한다. 여기서 전자 장치(100)는 암호를 필요로 하는 모든 장치, 예를 들면, 컴퓨터, 태블릿 PC, 스마트 폰, 모바일 폰, 스마트 카드, 메모리 카드, 센서, RFID, 사물 인터넷 등이 될 수 있다.
크립토 모듈(120)은 그 내부에 비밀 키 혹은 임시 비밀 난스 혹은 패스워드 등과 같은 비밀 정보와 암호 함수를 구비함으로써, 외부의 공격자로부터 안전하게 모듈 내에서 암호 연산을 수행할 수 있다. 크립토 모듈(120)은 부 채널 공격, 오류 주입 공격 등의 다양한 공격에 안전하도록 설계될 수 있다. 크립토 모듈(120)은 면적이 크면 클수록 설계 및 구현 비용이 증가하므로, 모듈 내에서 사용 가능한 메모리 크기에 제약이 따른다. 크립토 모듈(120)의 구성 및 동작 원리는 아래에서 설명하도록 하겠다.
크립토 모듈(120)은 자신의 내부에 암호 인증을 위하여 제 1 함수(121), 제 2 함수(122) 및 제 3 함수(123)를 구현할 수 있다.
제 1 함수(121)는 외부로부터 부가 정보(A)와 내부적으로 난스(N) 및 비밀키(K)를 입력 받고, 적어도 하나의 제 1 출력값(OUT1, 혹은 "결과값") 혹은 적어도 하나의 제 2 출력값(OUT2, 혹은 "결과값")을 발생한다. 여기서 부가 정보(A)는 메시지의 헤드 정보일 수 있다. 상기 제 1 함수는 부가 정보를 이용하지 않을 수도 있다. 실시 예에 있어서, 제 2 출력값(OUT2)이 없을 수도 있다. 만약 난스 N이 공개된 값인 경우, 외부로부터 난스 N의 값을 입력 받을 수도 있다. 난스 값 대신 공개된 카운터 값이 될 수도 있다. 비밀 키 대신 비밀 키로부터 발생된 임시 비밀 난스와 같은 임시 비밀 정보를 입력으로 받을 수도 있다.
제 2 함수(122)는 외부로부터 평문(M, plaintext)과 제 1 함수(121)로부터 제 1 출력값(OUT1)를 입력 받고, 암호문(C, ciphertext)과 적어도 하나의 제 3 출력값(OUT3, 혹은 "결과값")을 발생한다. 실시 예에 있어서, 암호화 동작시 블럭 단위의 평문(M)이 입력되고, 블럭 단위의 암호문(C)이 출력될 수 있다. 크립토 모듈 내에 메모리의 크기에 여유가 있다면, 블록 단위 대신 여러 블록 단위로 암호 연산을 수행할 수 있다. 상기 제 2 함수에는 상기 제 1 출력값과 평문 외에 공개된 정보인 부가 정보 혹은 공개 난스 값 혹은 카운터 값을 입력으로 받을 수 있다.
제 3 함수(123)는 외부로부터 부가 정보(A), 내부적으로 난스(N) 및 비밀키(K), 제 1 함수(121)로부터 제 2 출력값(OUT2) 혹은 제 2 함수(122)로부터 제 3 출력값(OUT3)을 입력 받고, 인증 코드(T)를 발생한다. 이때, 제 3 출력값(OUT3)은 반드시 입력되어야 한다. 이때, 제 3 함수(123)는 부가 정보(A), 난스(N), 제 2 출력값(OUT2) 혹은 비밀 키 값 중 일부만 실제 연산 시 사용할 수 있다. 또한, 제 3 함수(123)는 복호 검증 동작시 외부로부터 입력된 인증 코드(T)가 유효한 지를 판별할 수 있다. 제 3 함수에서는 부가 정보 혹은 공개 난스와 같은 공개 정보가 사용되지 않을 수도 있다. 난스 혹은 비밀 키 대신 비밀 키로부터 발생된 임시 비밀 정보가 제 3 함수(123)의 입력 값으로 사용될 수도 있다.
실시 예에 있어서, 크립토 모듈(120) 내에서 암호 인증 동작시 전체 함수들(121, 122, 123)이 사용되고, 크립토 모듈(12) 내에서 복호 검증 동작시 일부 함수들(121, 123)과 함수(122)의 역변환 과정이 사용될 수 있다.
크립토 모듈 외부에 위치한 복호 모듈(140)은 크립토 모듈(120)의 제 2 함수(122)와 동일하거나 유사한 복호 함수(142)로 구현될 수 있다. 복호 함수(142)는 크립토 모듈(120)의 제 1 함수(121)의 출력값(OUT1) 혹은 그것의 변형된 값(OUT1')을 입력 받고, 비밀키(K)에 대한 정보 없이 암호문(C)으로부터 평문(M)을 복호화시킬 수 있다. 이때, 상기 복호 함수에 공개된 부가 정보가 추가적으로 사용될 수 있다. 제 1 함수(121)의 출력값(OUT1)의 전체 혹은 일부와 연관된 (혹은 관련된) 값(OUT1')의 복호 모듈(140)으로의 전송 여부는 입력된 인증 코드(T)가 유효한지 여부에 따라 결정될 수 있다.
실시 예에 있어서, 연관된 값은, 서로 임의의 독립된 값이 아니라, 하나의 값이 다른 하나의 값에 영향을 주는 경우를 말한다. 다른 실시 예에 있어서, 연관된 값은, 하나의 값을 통해 다른 하나의 값에 대한 정보의 일부가 노출됨을 뜻한다. 또 다른 실시 예에 있어서, 연관된 값은, 두 값 자체로서 연관성을 가짐을 뜻한다. 반대로 두 개의 값 a,b가 있을 때, a와 b가 a=b xor r (여기서 r은 랜덤 비밀 값)의 관계로 정의된 경우, a 값으로부터 b 값을 전혀 유추할 수 없기 때문에, 이때 a와 b는 연관성이 없다고 말한다. 즉, a와 b가 연관성이 있다고 말하려면, 비밀 정보를 포함하지 않은 어떤 함수 f에 의해 a=f(b)의 관계가 성립할 경우, 우리는 본 발명에서 a와 b는 함수 f로 연관성이 있다고 말한다.
이처럼, 외부 복호 모듈(140)에 전달되는 값은 OUT1과 연관이 있는 OUT1'이 된다. 이때, 요구되는 조건은 외부 복호 모듈이 T1'으로부터 OUT1' 중 암호문을 복호화하기 위한 최소한의 정보를 얻을 수 있어야 한다. 이처럼, 크립토 모듈은 자신의 내부 상태 값과 연관된 값을 외부 복호 모듈에 전달하는 것이 본 발명의 특징이다. 본 발명은 또한 여러번이 아닌, 단 한번만 복호 모듈에 OUT1'을 전달함으로 효율성을 극대화하도록 설계된다. 인증 코드(T)가 유효할 때, 제 1 함수(121)의 출력값(OUT1)의 일부 혹은 그것의 전체 값과 관련된 값이 복호 모듈(140)로 전송된다. 또한 제 1 함수(121), 제 2 함수(122), 제 3 함수(123)을 거의 그대로 유사하게 사용하기 때문에 구현 비용을 최소화할 수 있다.
구체적으로 크립토 모듈(120)와 복호 모듈(140)을 이용한 암호 인증 및 복호 검증 과정을 상세하게 설명하면 다음과 같다.
먼저, 아래에서는 암호 인증 과정을 설명하겠다. 크립토 모듈(120)을 통해 암호 인증 과정을 수행하는 경우, 외부에서 부가정보 A와 평문 M을 입력으로 받는다. 여기서 A는 빈 스트링이 될 수도 있고, A 값이 없을 수도 있다. 그리고 난스 값 N은 공개 값이거나 비밀 값일 수도 있다. 난스 값을 외부로부터 받을 수도 있고 그렇지 않을 수도 있다. 난스 값이 랜덤 값이 될 수 있고 혹은 카운터 값이 될 수 있고 혹은 일정한 패턴을 가지고 발생될 수도 있다.
그러면 크립토 모듈(140) 내에서 제 1 함수에 A, N, K를 입력으로 받아 (이때, N이 임시 비밀 정보일 경우, 비밀 키 K가 필요 없을 수도 있다.) 제 1 출력값 혹은 제 2 출력값 (이때, 제 2 출력값이 없을 수도 있다. 반면 상기 제 1 출력값은 반드시 필요하다.)을 출력하게 되는데, 이때 제 1 출력값 일부 혹은 전체 정보는 나중에 복호 모듈(140)에 중요하게 쓰이게 된다. 그러나, 암호 인증 과정 중에서는 상기 1 출력값을 저장해 놓지 않아도 된다.
이어서, 제 2 함수에서 상기 제 1 출력 정보를 이용하여 평문 M을 블록 단위로 입력 받아 암호문 블록를 발생하여 외부 기기로 출력하고, 최종 제 3 출력값을 출력한다. 이때 평문 혹은 암호문을 블록 단위로 처리하지 않고, 여러 블록을 합친 단위로 암호 연산을 수행할 수도 있다. 이때, 제 2 함수에서 부가 정보 혹은 공개 난스와 같은 공개 정보가 사용될 수 있다.
끝으로, 제 3 함수를 이용하여 상기 제 3 출력값을 입력으로 받아 (이때, 상기 제 2 출력값이 없을 수도 있고, 사용하지 않을 수도 있다.) 최종 인증코드 T를 발생하여 외부 기기에 전달한다. 상기 제 3 함수는 비밀 정보 외에 공개 정보를 함께 이용할 수도 있다.
이번엔 크립토 모듈(120)과 외부 복호 모듈(140)을 이용한 복호 검증 과정을 설명한다. 복호 검증을 수행하는 경우, 크립토 모듈은 외부로부터 부가정보 A와 암호문 C, 인증코드 T를 입력으로 받는다. 경우에 따라 N이 공개된 값을 경우, N을 외부로부터 입력 받을 수도 있다. 경우에 따라 부가 정보가 없을 수도 있다. 경우에 따라 카운터와 같은 공개 정보를 입력으로 받을 수 있다. 그러면 상기 제 1 함수를 이용하여 상기 제 1 출력값을 발생하여 (이때, 상기 제 2 출력값 정보가 없을 수도 필요 없을 수도 있다.) 이때, 상기 제 1 출력값 일부 혹은 전체 정보와 연관된 값을 크립토 모듈(120) 내의 메모리에 저장한다. 이어서 상기 제 2 함수의 역연산 과정을 수행한다. 이때 제 2 함수의 역연산 과정의 입력 값은 상기 제 1 출력값과 암호문이 된다. (이때 말하는 암호문은 암호문 전체가 아닐 수도 있다. 예를 들어 비밀 정보를 이용하여 발생된 C0를 제외한 나머지 암호문이 상기 제 2 함수의 입력값으로 적용될 수 있다.) 그리고 평문을 외부 기기에 전달하지 않을 상태에서 제 3 출력 정보에 해당하는 값을 계산한다. 여기서 역연산 과정을 수행하기 위하여 부가 정보 혹은 공개 난스와 같은 공개 정보가 함께 사용될 수 있다.
끝으로, 크립토 모듈(120) 내의 상기 제 3 함수는 상기 제 3 출력값을 (이때, 상기 제 2 출력값이 필요 없을 수도 있다.) 이용하여 인증 코드 값 T ' 을 발생하고, 외부 기기로부터 주어진 T와 T ' 을 비교하여 맞으면, 크립토 모듈은 상기 크립토 모듈 내의 메모리에 안전하게 저장된 상기 제 1 출력값 (OUT1)과 관련된 값 (OUT1’)을 (이때, OUT1과 OUT1’이 같을 수도 있고, 다를 수도 있다. OUT1'은 OUT1의 일부 정보일 수도 있다. 단, OUT1’를 이용하여 복호화에 필요한 OUT1에 대한 전체 혹은 일부 정보를 얻을 수 있어야 한다.) 외부 복호 모듈(140)에 전달한다. 최종적으로, 크립토 모듈과 복호 모듈을 포함하는 외부 장치는 복호 모듈(140) 내의 제 2 함수 ’(142)을 이용하여 암호문으로부터 최종 평문을 복호화할 수가 있다. 이때 복호화를 위하여 부가 정보 혹은 공개 난스 등과 같은 공개 정보가 이용될 수 있다.
요약하여 설명하면, 도 1에 따른 암호 인증 시에는 제 1 함수 -> 제 2 함수-> 제 3 함수 순서로 연산을 수행하고, 복호 검증 시에는 제 1 함수-> 제 1 출력값 연관 정보 저장 -> 제 2 함수 역변환 -> 제 3 함수 -> 제 2 함수 ' 으로 연산을 진행하게 된다.
도 2는 본 발명의 실시 예에 따른 암호 인증 기법에 대한 제 1 실시 예를 보여주는 도면이다. 도 2를 참조하면, 크립토 모듈(120)은 제 1, 제 2 및 제 3 함수들(121, 122, 123)을 이용하여 비밀키(K, Key), 난스(N, Nonce), 부가 정보( A, Associate Data), 평문(M, Plaintext) 입력 받고, 암호문(C, Ciphertext) 및 인증 코드(T)를 출력한다.
제 1 함수(121)는 비밀키(K), 난스(N), 부가 정보(A)를 입력 받고, 제 1 출력값(OUT1) 및 제 2 출력값(OUT2)을 출력한다. 이때, 비밀 키, 난스, 부가 정보 중 일부 만 사용될 수도 있다. 이때, 경우에 따라, 제 2 출력값(OUT2)가 없을 수도 있다. 제 2 함수(122)는 제 1 출력값(OUT1)과 평문(M)을 입력 받고, 암호문(C)와 제 3 출력값(OUT3)을 출력한다. 이때, 암호문 발생시, 부가 정보 혹은 공개 난스와 같은 공개 정보가 함께 사용될 수 있다. 제 3 함수(123)는 비밀키(K), 난스(N), 부가 정보(A), 제 2 출력값(OUT2) 및 제 3 출력값(OUT3)을 입력받고, 인증 코드(T)를 출력한다. 여기서, 비밀키(K)는 비밀키 값이고, 난스(N)는 랜덤한 난스 값 혹은 카운터 값이고, 부가 정보(A)는 공개된 부가 정보이다. 이때, 제 3 함수에서 비밀 키, 난스, 부가 정보, 제 2 출력값 중 일부만 사용될 수 있다.
한편, 도 2에 도시된 암호 인증 기법에 따른 변조 검증 및 최종 평문 출력 과정은 다음과 같다. 암호문(C)과 인증 코드(T)에 대한 변조 유무를 검증하고, 최종 평문(M)을 출력하기 위하여 다음과 같은 과정을 거친다.
제 1 단계에서는, 크립토 모듈(120)은 전자 장치(100)로부터 부가 정보(A), 암호문(C), 인증 코드(T), 난스(N)를 입력 받는다. 여기서 난스(N)는 크립토 모듈(120) 외부에서 입력될 수도 있고, 크립토 모듈(120) 내부에서 발생될 수도 있다. 여기서, 전자 장치(100)로부터 입력된 값들은 크립토 모듈(120)에 한번에 전송되지 않고, 크립토 모듈(120) 내부의 작은 메모리에 한 블록씩 전송되고 (이때 메모리가 여유가 있다면, 여러 블록씩 전송될 수도 있다.), 크립토 모듈(120)의 제 3 함수(123)는 인증 코드(T)를 계산한다.
제 2 단계에서는, 크립토 모듈(120)의 제 1 함수(121)는 입력된 비밀키(K)를 이용하여 제 1 출력값(OUT 1)을 계산 및 저장한다. 그리고, 제 3 함수(123)는 최종 인증 코드(T) 값이 맞는지 검증한다. 계산된 인증 코드(T)와 입력된 인증 코드(T) 값이 일치하지 않으면, 입력된 암호문(C)은 변조된 것으로 처리된다. 따라서, 그 어떤 평문의 일부도 출력되지 않는다.
제 3 단계에서는, 계산된 인증 코드(T)와 입력된 인증 코드(T) 값이 일치하면, 크립토 모듈(120)은 제 1 함수(121)의 제 1 출력값(OUT1)의 전체 혹은 그것의 일부와 연관된 값(OUT1')을 크립토 모듈(120)의 외부의 복호 모듈(140)으로 출력한다.
제 4 단계에서는, 복호 모듈(140)은 복호 함수(142)를 이용하여 크립토 모듈(120)의 외부로 출력된 OUT1'을 입력 받고, 암호문(C)을 최종 평문(M)으로 복호화한다. 이때, 복호화하는 과정에서 부가 정보 혹은 공개 난스와 같은 공개 정보가 함께 사용될 수도 있다.
도 3은 본 발명의 실시 예에 따른 암호 인증 방법을 보여주는 흐름도이다. 도 1 내지 도 3을 참조하면, 암호 인증 방법은 다음과 같다.
비밀 정보(예를 들어, K, N)를 이용하여 제 1 함수(121, 도 1 참조)에 의해 제 1 암호 연산이 수행된다(S110). 비밀 정보 없이 제 1 암호 연산의 결과를 이용하여 제 2 함수(122, 도 1 참조)에 의해 제 2 암호 연산이 수행된다(S120). 비밀 정보 및 제 1 암호 연산의 결과값과 제 2 암호 연산의 결과값을 이용하여 제 3 함수(123, 도 1 참조)에 의해 제 3 암호 연산이 수행된다(S130). 제 3 암호 연산의 결과값에 따라 외부의 복호 모듈(140)에 제 1 암호 연산의 결과값 혹은 그것의 일부를 전송할 지가 결정된다. 예를 들어, 제 3 함수(123)에서 계산된 인증 코드(T')가 입력된 인증 코드(T)와 일치할 때, 제 1 암호 연산의 결과값(OUT1)이 복호 모듈(140)에 전송되고, 암호문(C)에 대한 복호화 동작이 수행된다(S140). 경우에 따라 복호 모듈(140)에 전달되는 값은 상기 제 1 암호 연산의 결과값 자체가 될 수도 있고, 아니면 그것의 일부 값, 혹은 그것과 관련된 어떤 정보가 될 수도 있다. 가령, OUT1에 임의의 공개 치환 함수(이때, 역연산이 효율적이어야 함.)를 적용한 값이 OUT1'이라고 한다면, 상기 복호 모듈은 OUT1'으로부터 OUT1을 효율적으로 계산을 할 수 있게 된다.
본 발명의 실시 예에 따른 암호 인증 방법은, 크립토 모듈(120)에서 인증 코드 검증할 때 비밀 정보를 이용하고, 크립토 모듈(120) 외부의 복호 모듈(140)에서 암호문(C)에 대한 복호화 동작을 비밀 정보를 이용하지 않고 수행한다. 이로써, 본 발명의 전자 장치(100)는 종래의 그것과 비교하여 복호화 동작시 크립토 모듈(120) 내부의 메모리 사용을 최소화시킬 수 있다.
도 4는 본 발명의 다른 실시 예에 따른 전자 장치(100a)를 예시적으로 보여주는 도면이다. 도 4를 참조하면, 암호 인증 기법은 도 1에 도시된 그것과 비교하여 난스(N)를 입력 받지 않는 것을 특징으로 한다. 크립토 모듈(120a)은 제 1 함수(121a), 제 2 함수(122a) 및 제 3 함수(123a)로 구성된다.
도 4에 도시된 크립토 모듈(120a)은 도 2에 도시된 그것과 달리 암호 인증 및 복호 검증 순서가 틀리다. 암호 검증 과정에서는 제 3 함수 -> 제 1 함수 -> 제 2 함수 과정을 거치고, 복호 검증 과정시 제 1 함수 -> 제 1 결과값에 연관된 값 저장 -> 제 2 함수의 역변환 -> 제 3 함수 -> 제 2 함수'의 과정을 거치게 된다. 여기서 제 2 함수' 은 도 1과 관련하여 설명한 것처럼 외부 복호 모듈 내에 있는 제 2 함수와 유사하거나 동일한 함수를 뜻한다. 여기서 유사하다는 의미는 복호 모듈이 받은 상기 제 1 결과값에 연관된 값을 받았으면, 이로부터 원래의 상기 1 결과값 중 복호화에 필요한 값을 축출하여 얻는 과정이 추가되기 때문이다.
도 4와 도 1의 연산 순서가 다른 이유는 크립토 모듈 (120a) 내에서의 암호 인증 과정의 경우, 제 3 함수 (123a)의 계산 없이는 인증 코드 T를 계산할 수 없고, 인증 코드 T는 제 1 함수과 제 2 함수에 영향을 준다. 크립토 모듈(120a)는 외부로부터 부가 정보(A)와 평문(M)를 블록 단위로 받아 상기 제 3 함수(123a)에서 인증 코드 T를 발생하고, 제 1 함수에게 T 값을 넘겨준다. 이때, 부가 정보 외에 공개 난스 혹은 카운터 값과 같은 공개 정보들이 외부로부터 입력될 수 있다. 제 1 함수 (121a)에서는 비밀 키 (K) 및 인증 코드(T) 혹은 부가 정보 (A)를 이용하여 OUT1를 출력한다. 이때, 비밀 키 대신 임시 비밀 난스와 같은 임시 비밀 정보가 사용될 수 있다. 최종적으로 제 2 함수는 OUT1과 외부로부터 평문 M을 블록 단위로 입력으로 받아 (이때, 부가 정보 혹은 공개 난스와 같은 공개 정보들을 함께 입력될 수 있다.) 최종 암호문을 블록 단위로 발생하여 외부에 인증 코드 T와 암호문 블록을 블록 단위로 외부 기기로 전달한다. 암호 모듈의 메모리의 크기에 여유가 있다면, 블록 단위로 처리하지 않고 여러 블록을 함께 발생하여 처리할 수도 있다.
도 4에서 크립토 모듈 (120a) 내에서의 복호 검증 과정의 경우에는, 상기 크립토 모듈 (120a)는 외부로부터 부가 정보 A, 인증 코드 T와 암호문 C를 블록 단위로 입력 받아 먼저 제 1 함수 (121a)을 수행하여 OUT 1을 발생한다. 이때, 경우에 따라 난스 N 값을 외부로부터 입력 받을 수 있다. 경우에 따라 부가 정보가 없을 수도 있다. 그리고 상기 크립토 모듈은 OUT1을 이용하여 제 2 함수 (122a)의 역변환을 과정을 통해 평문 (M)를 블록 단위로 (혹은 여러 블록 단위로) 제 3 함수 (123a)에 전달하여 제 3 함수이 T '을 발생하도록 돕는다. 이때 T와 T ' 이 동일하면 인증 코드가 올바르면 상기 크립토 모듈은 외부 기기의 복호 모듈에 OUT1의 전체 혹은 일부와 관련된 OUT1’를 크립토 모듈 외부에 위치한 복호 모듈에게 전달한다. 만약 T와 T’이 일치하지 않으면 에러를 발생시킨다. 최종적으로 도 1에서 설명한 마찬가지 방식으로, 외부의 복호 모듈은 상기 제 2 함수 (122a)와 동일하거나 유사한 함수를 통해 OUT1'으로부터 OUT1 중 복호화에 필요한 값을 계산한 후, 암호문 C를 복호하여 평문 M을 얻게 된다. 이때, 복호 모듈은 부가 정보 혹은 공개된 난스와 같은 공개 정보를 입력으로 사용할 수 있다.
아래에서는 본 발명의 실시 예에 따른 암호 인증 및 복호 검증에 대한 구체적인 실시 예들을 설명하도록 하겠다.
도 5는 치환 함수 기반 암호 인증 방식의 예를 보여주는 도면이다. 도 5를 참조하면, IV1, IV2는 임의의 고정된 상수인 초기값, K는 비밀키, N은 공개된 난스 값 혹은 카운터 값, A는 부가 정보다. 여기서, K, N, A는 패딩된 이후에, 각각이 r (r은 자연수) 비트 데이터라고 가정하겠다. 이때 패딩은 임의의 효율적인 리버서블(reversible) 패딩이 사용될 수 있다.
크립토 모듈(120)은 외부에서 r 비트 블록 단위로 제 1 평문 블록(M1)부터 한 블록씩 입력 받는다. 도 5에서 도시된 바와 같이, 크립토 모듈(120)은 첫 번째 암호문 r 비트 블록(C1)을 발생하여 크립토 모듈(120) 밖으로 전송한다. 마찬가지로, 블록 단위로 한 번씩 암호문 블록을 발생하여 온라인(실시간)으로 처리한다. 이때 평문 블록들은 임의의 리버서블 패딩 방법을 이용함으로써 pad(Mt)=M1…Mt처럼 패딩 이후의 평문 블록 값들이다. 크립토 모듈(120)은 마지막 평문 블록(Mt)을 입력 받고, 마지막 암호문 블록(Ct)을 발생하여 외부로 전송한다. 마지막으로 크립토 모듈(120)은 K, N, A를 이용하여 도 5에서 도시된 바와 같이 인증 코드(T)를 발생한다.
도 6은 도 5에 도시된 치환 함수 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다. 도 6을 참조하면, 메모리의 크기에 제약이 있는 크립토 모듈 기반 복호 검증 과정은 다음과 같다. 비밀키(K)를 알고 있는 크립토 모듈(120)의 제 1 함수(121)는 먼저 복호 검증 과정을 위해 외부로부터 난스(N), 및 부가 정보(A)를 입력 받고, 제 1 출력값 쌍 (OUT1_1,OUT1_2)을 발생한다. 발생된 제 1 출력값 쌍 (OUT1_1,OUT1_2)은 크립토 모듈(120)의 내부 메모리에 임시적으로 저장된다. 그리고, 차례차례 암호문(C)를 블록 단위로 외부로부터 입력 받는다. 여기서 상기 제 1 출력값 쌍은 비밀 키, 난스, 부가 정보를 처리한 이후의 내부 상태 값으로 정의하고 있는데, 상기 제 1 출력값 쌍을 비밀 키 적용 이후의 내부 상태 값 혹은 난스 적용 이후의 내부 상태 값으로도 정의할 수 있다.
이때, 제 2 함수(122)는 절대로 평문 블록 값을 외부에 전송하지 않고 암호문 블록 정보를 저장하지 않은 채 실시간으로 처리하여 제 3 출력값 쌍(OUT3_1, OUT3_2)를 발생한다.
제 3 함수(123)는 최종적으로 인증 코드(T)값을 외부로부터 입력 받고, 계산된 인증 코드(T)와 입력된 인증 코드(T)이 동일한 지를 체크한다. 이때, 인증 코드(T) 값이 올바르면, 제 1 함수(121)는 외부로 제 1 함수(121)의 제 1 출력값 쌍(OUT1_1, OUT1_2)를 전송한다. 반면에, 인증 코드(T) 값이 올바르지 않으면, 복호 검증 과정이 중단되고, 에러 메시지가 외부로 전송된다. 외부의 복호 모듈(140)에서는 출력된 제 1 출력값 쌍(OUT1_1, OUT1_2)을 이용하여 암호문(C)에 대한 평문(M)을 복호화할 수 있다. 상기 복호 모듈은 복호화시 부가 정보 및 공개 난스와 같은 공개 정보를 함께 입력으로 사용할 수 있다.
도 7은 비밀 난스를 사용한 경우에 대한 치환 함수 기반 암호 인증 방식의 예를 보여주는 도면이다. 도 7을 참조하면, 암호 인증 방식은, 도 5에 도시된 그것과 비교하여 난스(N)가 비공개된 경우이다. 오직 비밀키(K)를 아는 경우에만 C0로부터 난스(N)값이 발생될 수 있다.
암호 인증 과정은 다음과 같다. 크립토 모듈(120)은 외부로부터 부가 정보(A)를 먼저 입력 받고, 내부적으로 비밀 난스(N)을 랜덤하게 발생하고, 입력된 비밀키(K)를 이용하여 상기 비밀 난스로부터 발생된 C0를 외부로 전송한다. 메시지 블록들 각각은 외부로부터 입력 되고, M1부터 하나씩 처리하여 암호문 블록들이 실시간으로 발생되고, 외부로 전송된다 끝으로 비밀 난스(N)을 이용하여 인증 코드(T)가 발생되고, 이를 외부로 전송한다.
도 8은 도 7에 도시된 치환 함수 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다. 도 8을 참조하면, 복호 검증 과정은 다음과 같다. 제 1 함수(121)는 부가 정보(A)와 C0을 외부로부터 입력 받으면, 난스( N)을 계산하고, 제 1 출력값 쌍(OUT1_1, OUT1_2)을 계산하고, 계산된 제 1 출력값 쌍(OUT1_1, OUT1_2)을 크립토 모듈(120) 내에 안전하게 저장해 놓는다. 여기서 상기 제 1 출력값 쌍은 비밀 키, 비밀 난스, 부가 정보를 처리한 이후의 내부 상태 값으로 정의하고 있는데, 상기 제 1 출력값 쌍을 비밀 난스 적용 이후의 내부 상태 값으로도 정의할 수 있다.
제 2 함수(122)는 암호문 블록을 하나씩 받아서 제 3 출력값들(OUT3_1, OUT3_2)를 계산한다. 제 3 함수(123)는 비밀 난스(N)를 이용하여 외부로부터 입력된 인증 코드(T)가 올바른 값인지를 검증한다.
만일, 인증 코드(T)가 올바르다면, 외부의 복호 모듈(140)로 제 1 출력값 쌍(OUT1_1, OUT1_2)이 전송되고, 복호 모듈(140)은 직접 입력된 암호문에 대한 복호화 동작을 수행한다. 이때, 복호화 과정 동안 부가 정보와 같은 공개 정보가 사용될 수 있다. 그리고, 상기 제 1 출력값 쌍을 바로 전송하는 대신, 공개 치환 함수에 상기 제 1 출력값 쌍을 적용한 값을 복호 모듈에 전송할 수도 있다. 반면에, 인증 코드(T)가 올바르지 않으면, 에러 메시지가 외부로 전송되고, 복호 검증 과정이 종료된다.
도 9는 임시 비밀 키 쌍 (N, N’)을 이용한 치환 함수 기반 암호 인증 방식의 예를 보여주는 도면이다. 도 9를 참조하면, 암호 인증 방식은 공유 비밀키(K)를 이용하지 않고, 임시 비밀 키 쌍(N, N’)를 이용한 경우이다. 임시 비밀 키 쌍(N,N’)은 매번 바뀌는 값이고, 공유 비밀키(K)를 이용하여 두 크립토 모듈이 사전에 공유한 값들이다. 임시 비밀 값 쌍들(N, N’)을 보호하기 위하여 N을 해쉬 함수 H를 이용하여 해쉬한 C0값이 발생되고, 상대 크립토 모듈에게 C0값이 전송된다. 이때, 암호 모듈은 N에 대응되는 N' 값을 쉽게 N으로부터 얻을 수 있다고 가정한다. 예를 들어, 비밀 키 K와 해쉬 함수 H를 이용하여 N'=(K||N)와 같이 정의할 수 있다.
공유 비밀 키(K)를 알고 있는 상대 크립토 모듈은 C0로부터 사용된 임시 비밀 키 쌍(N,N’)를 얻을 수 있다. 이때 C0값에 대응되는 임시 비밀 정보인 임시 비밀 키 쌍(N,N’)이 유효한지를 효율적으로 검증하기 위하여, 임시 비밀 키 쌍 (N,N’)에 대응되는 인덱스가 함께 전송될 수 있다. 여기서 인덱스는 공유키(K)를 가지고 임시 비밀 키 쌍 발생 시에 사용된 인덱스를 가리킨다. 암호 인증 시 크립토 모듈은 외부로부터 부가 정보(A)와 평문 블록을 하나씩 입력 받고, 실시간으로 암호문 블록을 발생하여 외부로 전송한다. 이때 메시지를 위한 패딩 방법은 임의의 효율적인 리버서블(reversible) 방법일 수 있다. 그리고 마지막으로 임시 비밀 키 쌍을 이용하여 인증 코드(T)를 발생하여 외부로 전송하므로, 암호 인증 과정은 종료된다.
도 10은 도 9에 도시된 치환 함수 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다. 도 10을 참조하면, 복호 검증 시 크립토 모듈(120)은 부가 정보(A), 암호문 블록들, 그리고 마지막 인증 코드(T)까지 실시간으로 하나씩 외부로부터 입력 받는다. 먼저 공유 비밀 키(K)를 알고 있는 크립토 모듈은 C0로부터 사용된 임시 비밀 키 쌍(N,N’)이 사용해도 되는 값들인지를 먼저 체크한다. 여기서 체크 방법은 사용 가능한 비밀 키 쌍과 그것의 해쉬 값을 크립토 모듈 내 테이블에 저장해 놓고, C0가 유효한 임시 비밀 키 쌍으로 발생된 값인지를 검증할 수 있다. 이때, 검색 시간을 단축시키기 위하여 C0에 인덱스 값이 추가적으로 입력될 수 있다.
만일, C0가 유효한 값이 아니면, 복호 검증 과정이 중단된다. 반면에, C0가 유효한 값이면, 대응하는 임시 비밀 키 쌍 (N,N’)을 이용하여 복호화 동작이 수행되고, 최종적으로 인증 코드(T)가 올바른 경우, 제 1 출력값 쌍(OUT1_1,OUT1_2)이 외부의 복호 모듈(140)로 전송되고, 복호 모듈(140)은 입력된 제 1 출력값 쌍(OUT1_1, OUT1_2)을 이용하여 암호문을 복호할 수 있다.
도 11은 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다. 도 11을 참조하면, Const1과Const2, Const3는 서로 다른 상수 값들이고, K는 공유 비밀 키이다. 크립토 모듈(120)은 내부에서 랜덤하게 난스(N)를 발생하여 C0를 발생하고, 이어서 외부로부터 부가 정보(A)와 평문 블록 정보를 실시간으로 전송받고 암호문을 발생하여 외부 기기로 실시간으로 C0를 포함한 암호문 블록을 전송한다. 이때 부가 정보(A)를 위한 패딩 방법은 임의의 효율적인 리버서블일 수 있다. 그리고, 메시지에 대한 패딩 방법은 요구되지 않는다. 최종적으로 크립토 모듈(120)은 Checksum=α1 xor...xor αj xor M1 xor M2 xor ...xor (Mt||0*)을 정의하여 최종 인증 코드(T)을 발생하여 외부로 인증 코드(T)를 전송함으로 암호 인증 과정을 종료한다.
도 12는 도 11에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다. 도 12을 참조하면, 공유 비밀 키(K)를 알고 있는 크립토 모듈(120)은 C0로부터 랜덤 난스(N)을 얻어 내고, 부가 정보(A) 및 암호문 블록들을 실시간 외부로부터 전송받아 최종 인증 코드(T)를 계산한다. 그리고 최종적으로 인증 코드(T)가 올바른 값이면, 크립토 모듈(120)은 제 1 출력값 쌍(OUT1_1, OUT1_2)를 외부로 전송한다. 그러면 외부의 복호 모듈(140)은 제 1 출력값 쌍(OUT1_1, OUT1_2)을 이용하여 암호문을 복호할 수 있다.
도 13은 체크썸(Checksum) 발생 방식, 패딩 방식을 변경한 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다. 도 13을 참조하면, 블록 암호 기반 암호 인증 방식은, 도 11에 도시된 그것과 비교하여 아래의 세 가지 차이점들을 갖는다. 첫째는 매 번 n 비트 블록 암호 연산 시, 사용된 블록 키를 n/2비트만큼 왼쪽으로 순환 이동시킨 이후의 값을 블록 암호의 입력 값에 xor 연산을 수행한다는 점이다. 둘째는, Checksum 발생 시 평문 블록을 이용하지 않고, 도 13에 도시된 바와 같이 a1,...,at 값들을 이용한다는 점이다. 셋째는 메시지 블록 발생 시 메시지 패딩 방법이 요구된다.
도 14는 도 13에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다. 도 14에 도시된 복호 검증 과정은, 도 12에 도시된 그것과 유사하기에 여기서는 설명을 생략하겠다.
도 15는 임시 비밀 키와 같은 임시 비밀 정보를 이용한 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다. 도 15를 참조하면, 블록 암호 기반 암호 인증 방식은, 도 13에 도시된 그것과 비교하여, C0를 발생하는 방법을 제외하고 모든 과정이 동일하다. 도 15에서는 해쉬 함수(H)를 이용하여 C0가 발생된다. 이는 두 크립토 모듈 사이에 공유 비밀 키(K)로부터 사용 가능한 임시 비밀 키 값을 동기화한 경우에 사용하는 방법이다.
도 16은 도 15에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다. 도 16을 참조하면, C0가 유효한 값이면, 복호 검증이 수행되고, C0가 유효하지 않으면 복호 검증 과정이 중단된다.
한편, 아래의 도 17 및 도 18에서는 도 4에서 설명된 암호 인증 및 복호 검증 방식에 따른 구체적인 실시 예들을 설명하도록 하겠다.
도 17은 난스 혹은 카운터 값을 사용하지 않는 블록 암호 기반 암호 인증 방식의 예를 보여주는 도면이다. 도 17에 도시된 바와 같이, 크립토 모듈(120a)은 의사 난수 성질을 갖는 MAC(message authentication code) 함수(예를 들어, HMAC이 될 수 있음.)를 이용하여, 이것의 입력 값으로 키(K), 부가 정보(A), 평문(M)을 입력으로 받고 인증 코드(T)를 발생한다. 경우에 따라 부가 정보가 입력으로 받지 않을 수 있다. 경우에 따라, 비밀 키 K 대신 임시 비밀 정보가 사용될 수 있다. 이 경우, 도 15에서 보인 것처럼 C0를 사용하여 임시 비밀 정보의 유효성을 검증할 수 있다.
이때 MAC 함수는 블록단위 혹은 적은 수의 블록들 단위로 순차 처리가 가능한 것을 사용해야 한다. 이는 복호 검증 시 CTR(counter) 모드를 이용한 복호화시 블록 단위 혹은 적은 수의 블록들의 단위로 평문 블록 혹은 평문 블록들을 받게 되고, 바로 평문 블록 혹은 평문 블록들을 MAC 함수에 입력으로 전달함으로 실시간으로 인증 코드(T)를 발생할 수 있기 때문이다. 그리고 크립토 모듈(120a)은 크립토 모듈 사이에 공유된 키(K)를 이용하여 암호 인증 과정 시 인증 코드(T)를 암호화하여 K*를 발생하고, 끝으로 인증 코드(T)를 CTR(counter) 암호화 모드의 카운터로, K* 값을 CTR 모드의 비밀 키(K)으로 입력된 평문(M)에 대한 암호문을 발생한다. 이때 K* 값은 일회용 암호 키로 사용된 경우인데, 이처럼 발생된 일회용 암호 키를 이용하여 도 17에서 보인 CTR 모드 뿐 아니라 다양한 암호 모드에 대해 적용하여 암호문을 발생할 수 있다.
도 18은 도 17에 도시된 블록 암호 기반 암호 인증 방식에 대응하는 복호 검증 과정을 보여주는 도면이다. 도 18을 참조하면, 복호 검증 과정은 다음과 같다. MAC 함수 연산 과정은 도 4에 도시된 제 3 함수(123)에 대응되고, K* 값을 발생하는 과정은 도 4에 도시된 제 1 함수(121)에 대응되고, 최종 CTR 암호화는 제 3에 도시된 제 2 함수(122)에 대응한다. 도 18에 도시된 바와 같이, 제 1 출력값(OUT1_1)는 인증 코드(T)가 되고, 제 1 출력값(OUT1_2)은 K*에 대응된다.
크립토 모듈(120a)은 복호 검증을 위하여 먼저 난스(N), 부가 정보(A), 및 암호문(C)를 입력 받고, CTR 복호화를 수행하는 동시에 실시간으로 얻어진 메시지 블록을 이용하여 MAC 값 검증하고, 인증 코드(T)를 검증한다. 만일, 인증 코드(T)가 올바르지 않을 경우, 복호 검증이 중단된다. 반면에, 인증 코드(T)가 올바를 경우, 크립토 모듈(120)은 공유 비밀 키(K)를 이용하여 인증 코드(T)에 대응되는 암호문 K* 값을 계산하여 외부 기기에 전송한다. 최종적으로 외부 기기는 인증 태그(T)와 K*를 이용하여 암호문에 대한 복호화 동작을 수행한다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
본 발명은 암호연산을 수행하는 모든 장치에 이용 가능하다.

Claims (20)

  1. 크립토 모듈과 복호 모듈을 갖는 전자 장치의 암호 인증 및 복호 검증 방법에 있어서:
    비밀 정보를 이용하여 제 1 함수에 의해 제 1 암호 연산을 수행하고, 상기 비밀 정보 없이 상기 제 1 암호 연산의 결과값을 이용하여 제 2 함수에 의해 제 2 암호 연산을 수행하고, 및 상기 제 1 및 제 2 암호 연산의 결과값들 및 상기 비밀 정보를 이용하거나 상기 제 2 암호 연산의 결과값 및 상기 비밀 정보를 이용하여 제 3 함수에 의해 제 3 암호 연산을 수행함으로써, 암호 인증을 수행하는 단계; 및
    상기 제 3 암호 연산의 결과값에 따라 상기 제 1 암호 연산의 결과값의 전체 혹은 일부 값과 연관된 값을 상기 복호 모듈로 출력할 지를 결정함으로써, 복호 검증을 수행하는 단계를 포함하는 암호 인증 및 복호 검증 방법.
  2. 제 1 항에 있어서,
    상기 비밀 정보는 비밀키, 임시 비밀 정보 혹은 비밀 난스인 암호 인증 및 복호 검증 방법.
  3. 제 2 항에 있어서,
    상기 비밀 정보는 상기 크립토 모듈 내부에서 발생되는 암호 인증 및 복호 검증 방법.
  4. 제 2 항에 있어서,
    상기 제 1 함수는 부가 정보를 상기 크립토 모듈의 외부로부터 입력 받는 암호 인증 및 복호 검증 방법.
  5. 제 2 항에 있어서,
    상기 제 1 함수의 결과값은 적어도 하나의 제 1 출력값 혹은 적어도 하나의 제 2 출력값을 포함하고,
    상기 적어도 하나의 제 1 출력값은 상기 제 2 함수에 입력되는 암호 인증 및 복호 검증 방법.
  6. 제 5 항에 있어서,
    상기 제 2 함수는 상기 암호 인증시 평문을 암호문으로 암호화하는 암호 인증 및 복호 검증 방법.
  7. 제 5 항에 있어서,
    상기 제 3 함수는 상기 암호 인증시 상기 제 1 함수의 적어도 하나의 제 2 출력값 혹은 상기 제 2 함수의 출력값을 입력받고, 인증 코드를 발생하는 암호 인증 및 복호 검증 방법.
  8. 제 1 항에 있어서,
    상기 제 3 함수는 상기 복호 검증시 상기 발생된 인증 코드와 입력된 인증 코드를 비교함으로써 상기 인증 코드가 유효한 지를 판별하는 암호 인증 및 복호 검증 방법.
  9. 제 8 항에 있어서,
    상기 제 1 함수의 상기 적어도 하나의 출력값의 전체 혹은 일부와 연관된 값을 상기 복호 모듈에 출력하지 않고, 복호 동작이 종료되는 암호 인증 및 복호 검증 방법.
  10. 제 8 항에 있어서,
    상기 인증 코드가 유효하다면, 상기 제 1 함수의 상기 적어도 하나의 출력값의 전체 혹은 일부와 연관된 값이 상기 복호 모듈로 출력되는 암호 인증 및 복호 검증 방법.
  11. 제 10 항에 있어서,
    상기 복호 모듈에서 상기 적어도 하나의 출력값의 전체 혹은 일부와 연관된 값을 이용하여 평문이 복호화되는 암호 인증 및 복호 검증 방법.
  12. 제 10 항에 있어서,
    상기 제 1 적어도 하나의 출력값 혹은 상기 제 2 적어도 하나의 출력값이 상기 크립토 모듈의 내부 메모리에 임시로 저장되는 암호 인증 및 복호 검증 방법.
  13. 비밀 정보를 이용하는 제 1 함수, 상기 비밀 정보를 이용하지 않는 제 2 함수, 및 상기 비밀 정보를 이용하는 제 3 함수에 의하여 암호 인증을 수행하거나, 상기 제 1 함수 및 상기 제 3 함수에 의하여 복호 검증을 수행하는 크립토 모듈; 및
    상기 복호 검증시 상기 제 3 함수의 결과값에 따라 상기 제 1 함수의 결과값을 입력 받고, 상기 제 1 함수의 결과값과 연관된 값을 이용하여 평문을 복호화시키는 복호 모듈을 포함하는 전자 장치.
  14. 제 13 항에 있어서,
    상기 제 1 함수, 상기 제 2 함수, 및 상기 제 3 함수 각각은 치환 함수 기반 함수인 전자 장치.
  15. 제 14 항에 있어서,
    상기 제 1 함수 및 상기 제 3 함수 각각은 공유된 비밀 키 및 난스를 이용하여 상기 암호 인증을 수행하는 전자 장치.
  16. 제 14 항에 있어서,
    상기 제 1 함수 및 상기 제 3 함수 각각은 임시 비밀 정보를 이용하여 상기 암호 인증을 수행하는 전자 장치.
  17. 제 13 항에 있어서,
    상기 제 1 함수, 상기 제 2 함수 및 상기 제 3 함수 각각은 블록 암호 기반 함수인 전자 장치.
  18. 크립토 모듈과 복호 모듈을 갖는 전자 장치의 암호 인증 및 복호 검증 방법에 있어서:
    제 1 함수에서 인증 코드와 비밀 정보를 이용하여 제 1 출력값을 발생하는 제 1 암호 연산을 수행하고, 제 2 함수에서 상기 비밀 정보 없이 상기 제 1 암호 연산의 제 1 출력값과 평문을 이용하여 암호문을 출력하는 제 2 암호 연산을 수행하고, 제 3 함수에서 상기 비밀 정보와 상기 평문을 이용하여 상기 인증 코드를 발생함으로서 암호 인증을 수행하는 단계; 및
    상기 제 3 암호 연산의 결과값에 따라 상기 제 1 암호 연산의 결과값의 전체 혹은 일부 값과 연관된 값을 상기 복호 모듈로 출력할 지를 결정함으로써 복호 검증을 수행하는 단계를 포함하는 암호 인증 및 복호 검증 방법.
  19. 제 18 항에 있어서,
    상기 제 1 함수 및 상기 제 3 함수는 난스 값 혹은 카운터 값을 이용하지 않고 크립토 모듈들 사이에 공유된 비밀 키를 이용하여 상기 암호 인증을 수행하는 암호 인증 및 복호 검증 방법.
  20. 제 18 항에 있어서,
    상기 제 1 함수는 상기 공유된 비밀 키와 상기 인증 코드를 이용하여 상기 제 2 함수에서 사용될 암호 키를 발생하는 암호 인증 및 복호 검증 방법.
PCT/KR2014/005417 2013-06-20 2014-06-19 작은 메모리 구현 환경에 적합한 암호 인증 및 복호 검증 방법 및 전자 장치 WO2014204231A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14814588.1A EP3012772A4 (en) 2013-06-20 2014-06-19 Method for encryption verification and decryption verification and electronic apparatus suitable for small memory implementation environment
US14/900,237 US20160156459A1 (en) 2013-06-20 2014-06-19 Method for encryption authentication and decryption verification and electronic apparatus suitable for small memory implementation environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130070677 2013-06-20
KR10-2013-0070677 2013-06-20

Publications (1)

Publication Number Publication Date
WO2014204231A1 true WO2014204231A1 (ko) 2014-12-24

Family

ID=52104887

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/005417 WO2014204231A1 (ko) 2013-06-20 2014-06-19 작은 메모리 구현 환경에 적합한 암호 인증 및 복호 검증 방법 및 전자 장치

Country Status (3)

Country Link
US (1) US20160156459A1 (ko)
EP (1) EP3012772A4 (ko)
WO (1) WO2014204231A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010008223A2 (ko) * 2008-07-16 2010-01-21 삼성전자 주식회사 사용자 인터페이스에서 보안 서비스를 제공하는 장치 및 방법
WO2011139134A2 (ko) * 2010-05-07 2011-11-10 삼성전자 주식회사 저장 장치의 인증 방법, 기계로 읽을 수 있는 저장 매체 및 호스트 장치
WO2012020291A2 (en) * 2010-08-11 2012-02-16 Roberto Pittia System for checking the authenticity of articles
WO2012060654A2 (ko) * 2010-11-04 2012-05-10 비씨카드 주식회사 이동 단말기 및 이동 단말기를 이용한 결제 방법
WO2013066016A1 (ko) * 2011-11-04 2013-05-10 주식회사 케이티 신뢰관계 형성 방법 및 이를 위한 내장 uⅰcc

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL129862A (en) * 1996-11-12 2002-11-10 California Inst Of Techn Semiconductor imaging sensor with on-chip encryption
KR101520617B1 (ko) * 2007-04-17 2015-05-15 삼성전자주식회사 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치
US8358781B2 (en) * 2008-11-30 2013-01-22 Red Hat, Inc. Nonlinear feedback mode for block ciphers
US8693681B2 (en) * 2008-12-10 2014-04-08 Texas Instruments Incorporated Kasumi cipher executable instructions and circuitry

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010008223A2 (ko) * 2008-07-16 2010-01-21 삼성전자 주식회사 사용자 인터페이스에서 보안 서비스를 제공하는 장치 및 방법
WO2011139134A2 (ko) * 2010-05-07 2011-11-10 삼성전자 주식회사 저장 장치의 인증 방법, 기계로 읽을 수 있는 저장 매체 및 호스트 장치
WO2012020291A2 (en) * 2010-08-11 2012-02-16 Roberto Pittia System for checking the authenticity of articles
WO2012060654A2 (ko) * 2010-11-04 2012-05-10 비씨카드 주식회사 이동 단말기 및 이동 단말기를 이용한 결제 방법
WO2013066016A1 (ko) * 2011-11-04 2013-05-10 주식회사 케이티 신뢰관계 형성 방법 및 이를 위한 내장 uⅰcc

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3012772A4 *

Also Published As

Publication number Publication date
EP3012772A4 (en) 2017-02-22
EP3012772A1 (en) 2016-04-27
US20160156459A1 (en) 2016-06-02

Similar Documents

Publication Publication Date Title
CN101291224B (zh) 在通信系统中处理数据的方法和系统
US11308241B2 (en) Security data generation based upon software unreadable registers
WO2014069778A1 (ko) 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치
CN103546289B (zh) 一种基于USBKey的安全传输数据的方法及系统
CN108475237A (zh) 存储器操作加密
CN110891061B (zh) 数据的加解密方法、装置、存储介质及加密文件
WO2015037887A1 (ko) 스마트 칩 인증 서버 및 그 방법
CN111614621B (zh) 物联网通信方法和系统
TW202121866A (zh) 資料的加解密方法、裝置、系統及存儲介質
WO2014003497A1 (ko) 특정 포맷을 가지는 대체 데이터의 생성 및 검증
CN101588236A (zh) 内容安全传输保护设备、系统以及内容安全传输方法
CN112653719A (zh) 汽车信息安全存储方法、装置、电子设备和存储介质
US7979628B2 (en) Re-flash protection for flash memory
WO2018186543A1 (ko) 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
WO2023191216A1 (ko) 데이터 암호화 및 복호화 시스템, 방법
WO2014084606A1 (ko) 전자지갑 서비스를 위해 이중 인증하는 전자지갑 시스템 및 방법
WO2011111981A2 (ko) 데이터 자동 암복호화 방법 및 장치
WO2014204231A1 (ko) 작은 메모리 구현 환경에 적합한 암호 인증 및 복호 검증 방법 및 전자 장치
WO2021060720A1 (ko) 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
CN114448607A (zh) 一种基于puf技术的离线设备安全认证系统及实现方法
WO2023113573A1 (ko) 전자 장치 및 암호화 방법
CN109688584A (zh) 适用于资源受限网络节点的数据安全存储系统及方法
WO2016159538A1 (ko) Pin 인증 시스템 및 방법
WO2017183799A1 (ko) 데이터 확인 장치 및 이를 이용하여 데이터를 확인하는 방법
WO2015037886A1 (ko) 스마트 칩 인증 장치 및 그 방법

Legal Events

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

Ref document number: 14814588

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14900237

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2014814588

Country of ref document: EP