WO2016186241A1 - 데이터 암호화 장치 및 방법과 및 데이터 복호화 장치 및 방법 - Google Patents

데이터 암호화 장치 및 방법과 및 데이터 복호화 장치 및 방법 Download PDF

Info

Publication number
WO2016186241A1
WO2016186241A1 PCT/KR2015/006730 KR2015006730W WO2016186241A1 WO 2016186241 A1 WO2016186241 A1 WO 2016186241A1 KR 2015006730 W KR2015006730 W KR 2015006730W WO 2016186241 A1 WO2016186241 A1 WO 2016186241A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
encryption
blocks
data
plaintext
Prior art date
Application number
PCT/KR2015/006730
Other languages
English (en)
French (fr)
Inventor
최규영
문덕재
조지훈
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to JP2017560305A priority Critical patent/JP6665204B2/ja
Priority to CN201580080180.1A priority patent/CN107637010B/zh
Priority to US15/575,533 priority patent/US20180139041A1/en
Priority to EP15892654.3A priority patent/EP3300294B1/en
Publication of WO2016186241A1 publication Critical patent/WO2016186241A1/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/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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/16Obfuscation or hiding, e.g. involving white box

Definitions

  • the disclosed embodiments relate to data encryption and decryption techniques.
  • Data encryption using the existing block cipher algorithm is a very important problem because the encryption key is exposed to the attacker so that the encrypted data can be decrypted and the data is exposed.
  • data encryption using block ciphers is a factor that affects the security of cipher key length, cipher block size, and number of rounds.
  • the mode of operation when the message is divided into convex units and encrypted is also important.
  • the block encryption algorithm using the operation mode encrypts block by block and encrypts all blocks with the same encryption key.
  • the disclosed embodiments provide a new technique for performing data encryption using a block encryption scheme and an encoding scheme and thus decrypting a cipher text.
  • a data encryption device uses a partitioning unit for dividing data into a plurality of plain text blocks, and a block encryption method based on an encryption key to encrypt some blocks and the data of the plurality of plain text blocks.
  • the block encryption method may include an encryption method using a symmetric key or an asymmetric key.
  • the block encryption method may include a white box-based encryption method.
  • the encoding scheme may include an encoding scheme using at least one of a logical operation, a one-way function, a one-way permutaion, and a logic function.
  • the initial value may include an initialization vector or a counter value.
  • the encryption unit may encrypt the partial block by using the initialization vector or the counter value.
  • the encoder may encode the remaining block by using the initialization vector or the counter value.
  • the encoding unit may sequentially encode each of the remaining blocks, but may encode the previously generated ciphertext block.
  • the encoding unit may sequentially encode each of the remaining blocks, but may encode the previously generated ciphertext block and a plaintext block used for generating the previously generated ciphertext block.
  • the data decryption apparatus uses a decryption unit that decrypts some blocks of encrypted data using an encryption key based block decryption method, and a decryption method based on a non-encryption key. It includes a decoding unit for decoding the remaining blocks except for some of the blocks.
  • the block decryption method may include a decryption method using a symmetric key or an asymmetric key.
  • the block decoding method may include a white box based decoding method.
  • the decoding method may include a decoding method using at least one of a logic operation, a one-way function, a one-way permutaion, and a logic function.
  • the decoding unit may decode the remaining block by using an initialization vector or a counter value used for generating the encrypted data.
  • the decoding unit sequentially decodes each of the remaining blocks, and may decode the ciphertext block used to generate the plaintext block previously generated.
  • the decoding unit may sequentially decode each of the remaining blocks, and may decode each other by using a previously generated plaintext block and a ciphertext block used to generate the previously generated plaintext block.
  • the data encryption method comprises the steps of dividing the data into a plurality of plain text blocks, an encryption key-based block encryption scheme, the initial block for encrypting some of the plurality of plain text blocks and the data Encrypting at least one of the values and encoding the remaining blocks except for the partial blocks of the plurality of plaintext blocks using a non-encryption key based encoding scheme.
  • the block encryption method may include an encryption method using a symmetric key or an asymmetric key.
  • the block encryption method may include a white box-based encryption method.
  • the encoding scheme may include an encoding scheme using at least one of a logical operation, a one-way function, a one-way permutaion, and a logic function.
  • the initial value may include an initialization vector or a counter value.
  • the ciphertext block for the partial block may be generated using the initialization vector or the counter value.
  • the encoding may include encoding the remaining block using the initialization vector or the counter value.
  • the encoding may sequentially encode each of the remaining blocks, but may encode the previously generated ciphertext block.
  • the encoding may be performed by sequentially encoding each of the remaining blocks, using a previously generated ciphertext block and a plaintext block used to generate the previously generated ciphertext block.
  • the data decryption method uses a decryption method based on an encryption key to decrypt some blocks of the encrypted data, and uses a decryption method based on a non-encryption key, among the encrypted data. Decoding the remaining blocks except for the some blocks.
  • the block decryption method may include a decryption method using a symmetric key or an asymmetric key.
  • the block decoding method may include a white box based decoding method.
  • the decoding method may include a decoding method using at least one of a logic operation, a one-way function, a one-way permutaion, and a logic function.
  • the plaintext block for the remaining blocks may be generated using an initialization vector or a counter value used for generating the encrypted data.
  • each of the remaining blocks may be sequentially decoded, but may be decoded using a ciphertext block used for generating a plaintext block previously generated.
  • the decoding may sequentially decode each of the remaining blocks, using a previously generated plaintext block and a ciphertext block used to generate the previously generated plaintext block.
  • a computer program stored in a recording medium is combined with hardware to divide data into a plurality of plain text blocks, and some blocks of the plurality of plain text blocks using an encryption key based block encryption scheme. And encrypting at least one of an initial value for encrypting the data and encoding a remaining block except for the partial block among the plurality of plaintext blocks by using an encryption method based on a non-encryption key.
  • a computer program stored in a recording medium is combined with hardware, using a decryption key-based block decryption method, to decrypt some blocks of the encrypted data using a decryption step and a non-encryption key-based decoding method. And decoding the remaining blocks except for the some blocks of the encrypted data.
  • some ciphertext blocks are generated by using a block cipher method for generating encrypted data, and the remaining ciphertext blocks are processed by an encoding method to reduce the amount of computation for data encryption, so that even in a large amount of encryption You can enable fast encryption.
  • FIG. 1 is a block diagram of a data encryption apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of a data decoding apparatus according to an embodiment of the present invention.
  • 3A and 3B illustrate an ECB mode according to an embodiment of the present invention.
  • 4A and 4B are diagrams for describing a cipher block chaining (CBC) mode according to an embodiment of the present invention.
  • 5A and 5B illustrate a CBC mode according to another embodiment of the present invention.
  • 6A and 6B are diagrams for describing a CBC mode according to another embodiment of the present invention.
  • FIGS. 7A and 7B are diagrams for describing a propagating cipher block chaining (PCBC) mode according to an embodiment of the present invention.
  • PCBC propagating cipher block chaining
  • FIG. 8A and 8B illustrate a propagating cipher block chaining (PCBC) mode according to another embodiment of the present invention.
  • PCBC propagating cipher block chaining
  • FIGS. 9A and 9B illustrate a propagating cipher block chaining (PCBC) mode according to another embodiment of the present invention.
  • PCBC propagating cipher block chaining
  • 10A and 10B are diagrams for describing a cipher feedback (CFB) mode according to an embodiment of the present invention.
  • FIGS. 11A and 11B are diagrams for describing a cipher feedback (CFB) mode according to another embodiment of the present invention.
  • FIGS. 12A and 12B are diagrams for describing a cipher feedback (CFB) mode according to another embodiment of the present invention.
  • FIG. 13A and 13B illustrate an output feedback (OFB) mode according to an embodiment of the present invention.
  • FIG. 14A and 14B illustrate an output feedback (OFB) mode according to another embodiment of the present invention.
  • 15A and 15B are diagrams for describing a CTR (Counter) mode according to an embodiment of the present invention.
  • FIG. 16A and 16B illustrate a counter mode (CTR) according to another embodiment of the present invention.
  • 17A and 17B are diagrams for describing a CTR mode according to another embodiment of the present invention.
  • 19 is a flowchart of a data decoding method according to an embodiment of the present invention.
  • example data encryption device 100 and example data decryption device 200 may each be implemented or included within a separate computing device.
  • Each computing device may include one or more processors and computer readable storage media such as memory accessible by the processor.
  • the computer readable storage medium may be disposed inside or outside the processor and may be connected with the processor by various well-known means.
  • the computer executable instructions may be stored in the computer readable storage medium.
  • the processor may execute instructions stored in the computer readable storage medium. Such instructions, when executed by a processor, may cause the computing device to perform operations in accordance with the exemplary embodiment.
  • FIG. 1 is a block diagram of a data encryption apparatus 100 according to an embodiment of the present invention.
  • the data encryption apparatus 100 includes a partition unit 110, an encryption unit 130, and an encoding unit 150.
  • the data encryption apparatus 100 is configured to encrypt plain text data (eg, digitized plain text) to generate encrypted data (eg, digitized cipher text).
  • plain text data eg, digitized plain text
  • encrypted data eg, digitized cipher text
  • the dividing unit 110 divides the plain text data to be encrypted into a plurality of plain text blocks.
  • the division unit 110 may generate a plurality of plain text blocks by dividing the plain text data into block units having a predetermined size.
  • a padding process of filling a predetermined value in the last block may be performed to match the size of the divided blocks.
  • the encryption unit 130 encrypts at least one of some blocks of the plurality of plaintext blocks and initial values for encryption by using an encryption key based block encryption scheme.
  • the encryption key-based block encryption method may include various types of encryption methods for encrypting data in units of blocks using a symmetric key or an asymmetric key.
  • the encryption unit 130 may include Advanced Encryption Standard (AES), Data Encryption Standard (DES), 3DES, Blowfish, International Data Encryption Algorithm (IDEA), RC2, RC5, RC6, SEED, ARIA, and RSA (Rivest Shamir).
  • a ciphertext block can be generated using a known block encryption algorithm using a symmetric key or an asymmetric key such as Adleman (DSA), Digital Signature Standard (DSA), Elliptic Curve Cryptosystem (ECC), Elgamal, or white box-based encryption algorithm.
  • DSA Adleman
  • DSA Digital Signature Standard
  • ECC Elliptic Curve Cryptosystem
  • Elgamal or white box-based encryption algorithm.
  • the initial value may include, for example, an initialization vector (IV) or a counter value that is incremented by one each time a plaintext block is encrypted.
  • the encryption unit 130 generates an encrypted text block by encrypting an initial value (initialization vector or an initial counter value) according to an encryption key based block encryption method according to an operation mode to be described later, or an initial value (for example, initialization).
  • a ciphertext block may be generated by encrypting some blocks of the plaintext block according to an encryption key based block encryption method using a vector or an initial counter value).
  • the encoding unit 150 encodes the remaining blocks that are not encrypted by the encryption unit 130 among the plurality of plain text blocks by using an encryption method based on a non-encryption key.
  • the non-encryption key based encoding scheme may include various types of encoding schemes capable of hiding data without using an encryption key.
  • a non-encryption key based encoding method includes an encoding method using at least one of a logical function consisting of a logical operation, a one-way function, a one-way permutaion, and a plurality of logical operations. can do.
  • the encoding unit 150 is a plain text block that is not encrypted by the encryption unit 130 using an initial value (for example, an initialization vector or a counter value) according to an operation mode to be described later. You can generate a ciphertext block by encoding
  • the encoding unit 150 generates a ciphertext block by sequentially encoding a plaintext block that is not encrypted by the encryption unit 130 according to an operation mode to be described later, in the previous step
  • the ciphertext block may be generated by using the generated ciphertext block or by using the ciphertext block generated in the previous step and the plaintext block used for generating the ciphertext block.
  • the encryption unit 130 and the encoding unit 150 may encrypt the plain text data in a manner similar to the conventional encryption operation mode used for block encryption.
  • the encryption unit 130 and the encoding unit 150 may include an Electronic Code Blook (ECB) mode, a Cipher Block Chanining (CBC) mode, a Propagating Cipher Block Chaining (PCBC) mode, a Cipher FeedBack (CFB) mode, and an OFB ( Plain text data can be encrypted in one of two modes: Output FeedBack (CTR) and Counter (CTR).
  • ECBC Electronic Code Blook
  • CBC Cipher Block Chanining
  • PCBC Propagating Cipher Block Chaining
  • CFB Cipher FeedBack
  • OFB Plain text data can be encrypted in one of two modes: Output FeedBack (CTR) and Counter (CTR).
  • CTR Output FeedBack
  • CTR Counter
  • one encryption algorithm is applied to encrypt plain text data.
  • the operation mode used in the embodiment of the present invention uses a block encryption method and an encoding method for encryption of plain text data. The difference is that it applies. That is, the data encrypted according to the embodiment of the present invention includes a ciphertext block generated by an encryption key based block encryption scheme and a ciphertext block generated by a non-encryption key based encoding scheme. A detailed description of the specific operation using the operation mode will be described later.
  • the data encryption apparatus 100 when the data encryption apparatus 100 generates encrypted data according to an operation mode using an initial value (for example, an initialization vector or a counter value), the data encryption apparatus 100 generates an initial value. It may further include an initial value generation unit 170 for.
  • an initial value generation unit 170 for example, an initial value generation unit 170 for.
  • the division unit 110, the encryption unit 130, the encoding unit 150, and the initial value generation unit 170 are classified according to functions performed in the data encryption apparatus 100, and are illustrated in FIG. 1.
  • the division unit 110, the encryption unit 130, the encoding unit 150 and the initial value generating unit 170 is shown in a separate configuration, but is not necessarily limited to this, it will not be clearly distinguished in the specific operation. Can be.
  • the encryption unit 130 is illustrated as performing encryption using a specific known encryption algorithm, but is not necessarily limited thereto.
  • the encryption unit 130 and the encoding unit 150 encrypts a portion of the plain text data using a symmetric key or an asymmetric key based on a predetermined operating mode, and encrypts a portion of the plain text data using the block encryption method.
  • the plain text data may be encrypted using an encryption algorithm designed to encode the data according to a predetermined encoding method using no encryption key.
  • the divider 110, the encryptor 130, the encoder 150, and the initial value generator 170 may include one or more processors and a computer readable recording medium connected to the processors. It can be implemented on the device.
  • the computer readable recording medium may be inside or outside the processor and may be connected with the processor by various well-known means.
  • a processor within the computing device may cause each computing device to operate according to the example embodiments described herein.
  • a processor may execute instructions stored on a computer readable recording medium, and the instructions stored on the computer readable recording medium cause the computing device to operate in accordance with the exemplary embodiment described herein when executed by the processor. It can be configured to perform these.
  • FIG. 2 is a block diagram of a data decoding apparatus 200 according to an embodiment of the present invention.
  • the data decryption apparatus 200 shown in FIG. 2 is for generating plain text data by decrypting data encrypted by the data encryption apparatus 100 shown in FIG. 1.
  • the data decoding apparatus 200 includes a decoder 210 and a decoder 230.
  • the decryption unit 210 may decrypt some blocks of the encrypted data by using an encryption key-based block decryption method.
  • the data encrypted by the data encryption apparatus 100 may be a ciphertext block encrypted using an encryption key based block encryption scheme and a ciphertext block encoded by a non-encryption key based encoding scheme. It may include.
  • the decryption unit 210 may decrypt the ciphertext block encrypted using the encryption key based block encryption method among the encrypted data using the encryption key based block decryption method. Can be.
  • the encryption key-based block decryption method may include various types of decryption methods for decrypting data in units of blocks using a symmetric key or an asymmetric key.
  • the decryption unit 210 may include an Advanced Encryption Standard (AES), a Data Encryption Standard (DES), 3DES, Blowfish, an International Data Encryption Algorithm (IDEA), RC2, RC5, RC6, SEED, ARIA, and RSA (Rivest Shamir).
  • AES Advanced Encryption Standard
  • DES Data Encryption Standard
  • 3DES 3DES
  • Blowfish an International Data Encryption Algorithm
  • RC2, RC5, RC6, SEED ARIA
  • RSA Rastere Shamir
  • Some blocks of a ciphertext block using known block encryption algorithms that use symmetric or asymmetric keys such as Adleman (DSA), Digital Signature Standard (DSA), Elliptic Curve Cryptosystem (ECC), ELGmal, and Whitebox-based encryption algorithms. Can be decoded.
  • DSA Adleman
  • DSA Digital Signature Standard
  • ECC Elliptic Curve Cryptosystem
  • ELGmal Whitebox-based encryption algorithms. Can be decoded.
  • the decoder 230 may decode a ciphertext block that is not decrypted by the decryption unit 210 of the encrypted data by using a non-encryption key based decoding scheme.
  • the non-encryption key-based decoding method may include a decoding method using at least one of a logical operation, a one-way function, a one-way substitution, and a logical function.
  • the decoding unit 230 decodes an unencrypted ciphertext block by the decryption unit 210 using an initial value or a counter value according to an operation mode for decrypting encrypted data. You can create a plaintext block.
  • the decoding unit 230 generates a plain text block by sequentially decoding the ciphertext block not decrypted by the decryption unit 230 according to an operation mode for decrypting the encrypted data.
  • the plaintext block may be generated using the ciphertext block used for generating the plaintext block generated in the previous step or by using the plaintext block generated in the previous step and the ciphertext block used for generating the corresponding plaintext block.
  • the decryption unit 210 and the decoding unit 230 are encrypted using the same operation mode as the operation mode used by the data encryption apparatus 100 for generating encrypted data.
  • the data can be decrypted.
  • the decoder 210 and the decoder 230 may include an Electronic Code Blook (ECB) mode, a Cipher Block Chanining (CBC) mode, a Propagating Cipher Block Chaining (PCBC) mode, a Cipher FeedBack (CFB) mode, and an OFB ( Encrypted data can be decrypted in one of the operation modes, Output FeedBack (CTR) mode and Counter (CTR) mode. Detailed description thereof will be described later.
  • ECBC Electronic Code Blook
  • CBC Cipher Block Chanining
  • PCBC Propagating Cipher Block Chaining
  • CFB Cipher FeedBack
  • OFB Encrypted data can be decrypted in one of the operation modes, Output FeedBack (CTR) mode and Counter (CTR) mode
  • the data decoding apparatus 200 generates an initial value when generating the plain text data according to an operation mode using an initial value (for example, an initialization vector or a counter value).
  • the apparatus may further include an initial value generator 250.
  • the decoder 210, the decoder 230, and the initial value generator 250 are classified according to a function performed in the data decoding apparatus 200.
  • the decoder 210 is described.
  • the decoder 230 and the initial value generator 250 are illustrated in separate configurations, the decoding unit 230 and the initial value generator 250 are not necessarily limited thereto and may not be clearly distinguished in a specific operation.
  • the decryption unit 210 is illustrated as performing encryption using a specific known encryption algorithm, but is not necessarily limited thereto.
  • the decryption unit 210 and the decoding unit 230 decrypt a portion of the encrypted data by a block decryption method using a symmetric key or an asymmetric key based on a predetermined operation mode, and among the encrypted data.
  • Plaintext data can be generated from the encrypted data using a decryption algorithm designed to decode the remaining part according to a predetermined decoding method using no encryption key.
  • the decoder 210, the encoder 230, and the initial value generator 250 may be implemented on a computing device including one or more processors and a computer readable recording medium connected to the processors. .
  • the computer readable recording medium may be inside or outside the processor and may be connected with the processor by various well-known means.
  • a processor within the computing device may cause each computing device to operate according to the example embodiments described herein.
  • a processor may execute instructions stored on a computer readable recording medium, and the instructions stored on the computer readable recording medium cause the computing device to operate in accordance with the exemplary embodiment described herein when executed by the processor. It can be configured to perform these.
  • the AES algorithm is used as a block encryption method for convenience of description, and the encoding method is illustrated as using an XOR operation or an XOR operation and a logical function, but it is not necessarily limited thereto. do.
  • the block cipher method is used to generate the first cipher text, but the present invention is not limited thereto, and the two or more plaintext blocks are encrypted using the block cipher method in consideration of the encryption speed. Note that it is also possible.
  • the data encryption apparatus 100 may encrypt data using the ECB mode as shown in FIG. 3A.
  • the encryption unit 130 generates a ciphertext block 1 by applying a block cipher algorithm to the plaintext block 1 which is the first plaintext block among the plurality of plaintext blocks. Thereafter, the encoding unit 150 may generate a ciphertext block 2, a ciphertext block 3, and a ciphertext block 4 by applying a logic function to each of the plaintext block 2, the plaintext block 3, and the plaintext block 4.
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 3A, as shown in the example illustrated in FIG. 3B.
  • the decryption unit 210 generates a plaintext block 1 by applying a block cipher algorithm to a ciphertext block 1 that is a first ciphertext block among a plurality of ciphertext blocks. Thereafter, the decoder 230 may generate a plain text block 2, a plain text block 3, and a plain text block 4 by applying a logic function to each of the ciphertext block 2, the ciphertext block 3, and the ciphertext block 4, respectively.
  • the data encryption device 100 may encrypt data using the CBC mode as shown in FIG. 4A.
  • the encryption unit 130 performs an exclusive OR with an initialization vector on the first plaintext block (plaintext block 1) and applies the AES algorithm to the first ciphertext block (ciphertext block 1). can do.
  • the encoding unit 150 may generate the ciphertext block 2 to the ciphertext block 4 by XORing each of the plaintext blocks 2 to 4 with the ciphertext block generated immediately before.
  • Equation 1 the encryption operation illustrated in FIG. 4A may be expressed as Equation 1 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 4A, as shown in the example illustrated in FIG. 4B.
  • the decryption unit 210 decrypts the first block (encryption block 1) of the encrypted data using an AES algorithm and then XORs the initialization vector to generate the first plaintext block (plain block 1). Can be.
  • the decoding unit 230 may generate the plaintext blocks 2 to 4 from each other by XORing each ciphertext block 2 to the ciphertext block 4 to the previous ciphertext block.
  • Equation 2 the decoding operation illustrated in FIG. 4B may be expressed by Equation 2 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data encryption apparatus 100 may encrypt data using the CBC mode as shown in FIG. 5A.
  • the encryption unit 130 performs an exclusive OR with an initialization vector on the first plaintext block (plaintext block 1) and applies the AES algorithm to the first ciphertext block (ciphertext block 1). can do.
  • the encoding unit 150 may XOR each of the plaintext blocks 2 through 4 to the ciphertext block generated immediately before, and then generate a ciphertext block 2 through ciphertext block 4 by applying a logic function thereto.
  • Equation 3 the encryption operation illustrated in FIG. 5A may be expressed as Equation 3 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 5A, as illustrated in FIG. 5B.
  • the decryption unit 210 decrypts the first block (encryption block 1) of the encrypted data by using the AES algorithm and then XORs the initialization vector to generate the first plaintext block (plain block 1). Can be.
  • the decoder 230 may generate a plaintext block 2 to a plaintext block 4 by applying a logic function to each of the ciphertext blocks 2 to 4 and then encrypting the ciphertext block with the previous ciphertext block.
  • Equation 4 the decoding operation illustrated in FIG. 5B may be expressed by Equation 4 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data encryption apparatus 100 may encrypt data using the CBC mode as shown in FIG. 6A.
  • the encryption unit 130 may generate the first ciphertext block (ciphertext block 0) by applying the AES algorithm to the initialization vector IV.
  • the encoder 150 may generate a ciphertext block 1 by applying a logic function after XORing the plaintext block 1 and the initialization vector IV.
  • the encoding unit 150 may XOR each of the plaintext blocks 2 to 4 to the ciphertext block previously generated, and then generate a ciphertext block 2 to ciphertext block 4 by applying a logic function thereto.
  • Equation 5 the encryption operation illustrated in FIG. 6A may be expressed by Equation 5 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 6A, as illustrated in FIG. 6B.
  • the decryption unit 210 may generate an initialization vector IV by decrypting the first block of the encrypted data (the ciphertext block 0) using the AES algorithm.
  • the decoder 230 may generate a plaintext block 1 by applying a logic function to the ciphertext block 1 and then XORing the initialization vector.
  • the decoder 230 may generate a plaintext block 2 to a plaintext block 4 by applying a logic function to each of the ciphertext blocks 2 to 4 and then encrypting the ciphertext block with the previous ciphertext block.
  • Equation 6 the decoding operation illustrated in FIG. 6B may be expressed by Equation 6 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data encryption device 100 may encrypt data using the PCBC mode as shown in FIG. 7A.
  • the encryption unit 130 performs an exclusive OR (XOR) on the first plaintext block (plaintext block 1) of data with an initialization vector (IV) and applies the AES algorithm to the first ciphertext block (ciphertext). Block 1).
  • XOR exclusive OR
  • IV initialization vector
  • the encoding unit 150 may generate the ciphertext block 2 to the ciphertext block 4 by XORing each of the plaintext blocks 2 to 4 with the ciphertext block immediately generated and the previous plaintext block.
  • Equation 7 the encryption operation illustrated in FIG. 7A may be expressed by Equation 7 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 7A as shown in the example illustrated in FIG. 7B.
  • the decryption unit 210 decrypts the first block (encryption block 1) of the encrypted data by using the AES algorithm and then XORs the initialization vector (IV) to the first plaintext block (plain block 1). Can be generated.
  • the decoding unit 230 may generate the plain text blocks 2 to 4 by performing an XOR on each of the ciphertext blocks 2 to 4 and the ciphertext block 4.
  • Equation 8 the decoding operation illustrated in FIG. 7B may be expressed by Equation 8 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data encryption apparatus 100 may encrypt data using the PCBC mode as shown in FIG. 8A.
  • the encryption unit 130 performs an exclusive OR (XOR) on the first plaintext block (plaintext block 1) of data with an initialization vector (IV) and applies the AES algorithm to the first ciphertext block (ciphertext).
  • XOR exclusive OR
  • IV initialization vector
  • the encoding unit 150 may generate the ciphertext block 2 to the ciphertext block 4 by XORing each of the plaintext block 2 to the plaintext block 4 with the ciphertext block immediately generated and the previous plaintext block, and then applying a logic function thereto. have.
  • Equation 9 the encryption operation illustrated in FIG. 8A may be expressed by Equation 9 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 9A as shown in the example illustrated in FIG. 8B.
  • the decryption unit 210 decrypts the first block (encryption block 1) of the encrypted data by using the AES algorithm and then XORs the initialization vector (IV) to the first plaintext block (plain block 1). Can be generated.
  • the decoder 230 may generate the plaintext blocks 2 to 4 after applying the logic function to each of the ciphertext blocks 2 to 4 and encrypting the ciphertext block.
  • Equation 10 the decoding operation illustrated in FIG. 8B may be expressed by Equation 10 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data encryption apparatus 100 may encrypt data using the PCBC mode as shown in FIG. 9A.
  • the encryption unit 130 performs an exclusive OR (XOR) on the first plaintext block (plaintext block 1) of data with an initialization vector (IV) and applies the AES algorithm to the first ciphertext block (ciphertext). Block 0).
  • XOR exclusive OR
  • the encoder 150 may generate a ciphertext block 1 by applying a logic function after XORing the plaintext block 1 and the initialization vector IV.
  • the encoding unit 150 may generate the ciphertext block 2 to the ciphertext block 4 by XORing each of the plaintext block 2 to the plaintext block 4 with the ciphertext block immediately generated and the previous plaintext block, and then applying a logic function thereto. have.
  • Equation 11 the encryption operation illustrated in FIG. 9A may be expressed as in Equation 11 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 9A as shown in the example illustrated in FIG. 9B.
  • the decryption unit 210 may generate an initialization vector IV by decrypting the first block (encryption block 0) of the encrypted data by using the AES algorithm.
  • the decoder 230 may apply a logic function to the ciphertext block 1 and then generate an first plaintext block (plaintext block 1) by XORing the initialization vector IV.
  • the decoder 230 may generate the plaintext blocks 2 to 4 after applying the logic function to each of the ciphertext blocks 2 to 4 and encrypting the ciphertext block.
  • Equation 12 the decoding operation illustrated in FIG. 9B may be expressed by Equation 12 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data encryption apparatus 100 may encrypt data using the CFB mode as shown in FIG. 10A.
  • the encryption unit 130 may generate the first ciphertext block (ciphertext block 1) by XORing the first plaintext block (plaintext block 1).
  • the encoding unit 150 may generate the ciphertext block 2 to the ciphertext block 4 by XORing each of the plaintext blocks 2 to 4 with the ciphertext block generated immediately before.
  • Equation 13 the encryption operation illustrated in FIG. 10A may be expressed by Equation 13 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 10A as shown in the example illustrated in FIG. 10B.
  • the decoder 210 may apply the AES algorithm to the initialization vector IV and then XOR the first ciphertext block (ciphertext block 1) to generate the first plaintext block (plaintext block 1).
  • the decoding unit 230 may generate the plain text blocks 2 to 4 by encrypting the ciphertext blocks 2 to 4 with the previous ciphertext block.
  • Equation 14 the decoding operation illustrated in FIG. 10B may be expressed by Equation 14 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data encryption apparatus 100 may encrypt data using the CFB mode as shown in FIG. 11A.
  • the encryption unit 130 may generate the first ciphertext block (ciphertext block 1) by performing an XOR with the first plaintext block (plaintext block 1) after applying the AES algorithm to the initialization vector.
  • the encoder 150 may generate a ciphertext block 2 to a ciphertext block 4 by XORing each of the plaintext blocks 2 through 4 after applying the logic function to the ciphertext block generated immediately before.
  • Equation 15 the encryption operation illustrated in FIG. 11A may be expressed as in Equation 15 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 11A as shown in the example illustrated in FIG. 11B.
  • the decoder 210 may apply the AES algorithm to the initialization vector IV and then XOR the first ciphertext block (ciphertext block 1) to generate the first plaintext block (plaintext block 1).
  • the decoder 230 may generate a plaintext block 2 to a plaintext block 4 by XORing each of the blocks 2 to the ciphertext block 4 after applying the logic function to the previous ciphertext block.
  • Equation 16 the decoding operation illustrated in FIG. 11B may be expressed by Equation 16 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • XOR is an inter-block XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence). ).
  • the data encryption apparatus 100 may encrypt data using the CFB mode as shown in FIG. 12A.
  • the encryption unit 130 may generate the first ciphertext block (ciphertext block 0) by applying the AES algorithm to the initialization vector IV.
  • the encoder 150 may generate the first ciphertext block (ciphertext block 1) by XORing the initialization vector IV with the first plaintext block (plaintext block 1).
  • the encoder 150 may generate a ciphertext block 2 to a ciphertext block 4 by XORing each of the plaintext blocks 2 through 4 after applying the logic function to the ciphertext block generated immediately before.
  • Equation 17 the encryption operation illustrated in FIG. 12A may be expressed by Equation 17 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is an initialization vector
  • E BLOCK is a block encryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 12A as shown in the example illustrated in FIG. 12B.
  • the decryption unit 210 may generate an initialization vector IV by applying an AES algorithm to the first ciphertext block (ciphertext block 0).
  • the decoding block 230 may generate the first plaintext block (plaintext block 1) by XORing the initialization vector IV and the ciphertext block 1.
  • the decoder 230 may generate a plaintext block 2 to a plaintext block 4 by XORing each of the blocks 2 to the ciphertext block 4 after applying the logic function to the previous ciphertext block.
  • Equation 18 the decoding operation illustrated in FIG. 12B may be expressed by Equation 18 below.
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • D BLOCK is a block decryption algorithm
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence Bitwise XOR operation).
  • the data encryption apparatus 100 may encrypt data using the OFB mode as shown in FIG. 13A.
  • the encryption unit 130 may generate the first ciphertext block (ciphertext block 1) by applying an AES algorithm to the initialization vector IV and XORing with the first plaintext block (plaintext block 1).
  • the encoding unit 150 repeatedly applies a logic function to a block generated by applying the AES algorithm to the initialization vector IV, and then generates an ciphertext block 2 to ciphertext block 4 by XORing each of the plaintext blocks 2 to 4. can do.
  • Equation 19 the encryption operation illustrated in FIG. 13A may be expressed by Equation 19 below.
  • E BLOCK is a block encryption algorithm
  • IV is an initialization vector
  • O 1 is a block generated by applying a block encryption algorithm to the initialization vector
  • C i is the i-th ciphertext block
  • O i is a logic function in the initialization vector in O 1
  • P i represents the i-th plaintext block
  • F represents a logic function
  • XOR represents an inter-block XOR operation (eg, a bitwise XOR operation when each block is a bit sequence).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 13A as shown in the example illustrated in FIG. 13B.
  • the decoder 210 may generate the first plaintext block (plaintext block 1) by XORing the first ciphertext block (ciphertext block 1) after applying the AES algorithm to the initialization vector IV.
  • the decoder 230 repeatedly applies a logic function to a block generated by applying the AES algorithm to the initialization vector IV, and then generates a plaintext block 2 to a plaintext block 4 by XORing each of the ciphertext block 2 to the ciphertext block 4. can do.
  • Equation 20 the decoding operation illustrated in FIG. 13B may be expressed by Equation 20 below.
  • E BLOCK is a block encryption algorithm
  • IV is an initialization vector
  • O 1 is a block generated by applying a block encryption algorithm to the initialization vector
  • C i is the i-th ciphertext block
  • O i is a logic function in the initialization vector in O 1
  • P i represents the i-th plaintext block
  • F represents a logic function
  • XOR represents an inter-block XOR operation (eg, a bitwise XOR operation when each block is a bit sequence).
  • the data encryption apparatus 100 may encrypt data using the OFB mode as shown in FIG. 14A.
  • the encryption unit 130 may generate the first ciphertext block (ciphertext block 0) by applying the AES algorithm to the initialization vector IV.
  • the encoder 150 may repeatedly apply a logic function to the initialization vector IV, and then generate an ciphertext block 1 to ciphertext block 4 by XORing each of the plaintext blocks 1 to 4.
  • Equation 21 the encryption operation illustrated in FIG. 14A may be expressed as Equation 21 below.
  • C i is the i-th ciphertext block
  • O i is a block generated by applying the logic function to the initialization vector i
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • E BLOCK is a block encryption algorithm
  • F is logic.
  • the function, XOR represents an interblock XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example shown in FIG. 14A as shown in the example shown in FIG. 14B.
  • the decryption unit 210 may generate an initialization vector IV by applying an AES algorithm to a first ciphertext block (ciphertext block 0).
  • the decoder 230 may repeatedly apply a logical function to the generated initialization vector, and then generate the plaintext blocks 1 to 4 in a plaintext block 4 by XORing each of the ciphertext blocks 1 to 4.
  • Equation 22 the decoding operation illustrated in FIG. 14B may be expressed by Equation 22 below.
  • C i is the i-th ciphertext block
  • O i is a block generated by applying the logic function to the initialization vector i
  • P i is the i-th plaintext block
  • IV is the initialization vector
  • E BLOCK is a block encryption algorithm
  • F is logic.
  • the function, XOR represents an interblock XOR operation (e.g., a bitwise XOR operation if each block is a bit sequence).
  • the data encryption apparatus 100 may encrypt data using a counter mode as shown in FIG. 15A.
  • the encryption unit 130 may generate the ciphertext block 0 by applying the AES algorithm to the initial counter value CTR.
  • the encoding unit 150 may generate the ciphertext block 1 by XORing the initial counter value CTR with the plaintext block 1.
  • the encoding unit 150 may generate an i-th ciphertext block by XORing the i-th plaintext block with the i-th counter value (eg, CTR + i-1, as shown in FIG. 15A). In this case, the encoding unit 150 may generate each ciphertext block in parallel.
  • the i-th counter value eg, CTR + i-1, as shown in FIG. 15A.
  • Equation 23 the encryption operation illustrated in FIG. 15A may be expressed by Equation 23 below.
  • E BLOCK is the block encryption algorithm
  • CTR is the initial counter value
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • XOR is an inter-block XOR operation (e.g., bit-by-bit XOR if each block is a bit sequence). Operation).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 15A, as shown in the example illustrated in FIG. 15B.
  • the decryption unit 210 may generate an initial counter value by applying an AES algorithm to ciphertext block 0.
  • the encoding unit 150 may generate a plaintext block 1 by XORing the initial counter value CTR with the ciphertext block 1.
  • the encoding unit 150 may generate an i-th plaintext block by XORing the i-th ciphertext block with the i-th counter value (eg, CTR + i-1, as shown in FIG. 15B). In this case, the encoding unit 150 may generate each plaintext block in parallel.
  • the i-th counter value eg, CTR + i-1, as shown in FIG. 15B.
  • Equation 24 the decoding operation illustrated in FIG. 15B may be expressed by Equation 24 below.
  • E BLOCK is the block encryption algorithm
  • CTR is the initial counter value
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • XOR is an inter-block XOR operation (e.g., bit-by-bit XOR if each block is a bit sequence). Operation).
  • the data encryption apparatus 100 may encrypt data using the counter mode as shown in FIG. 16A.
  • the encryption unit 130 may generate the ciphertext block 0 by applying the AES algorithm to the initial counter value CTR.
  • the encoder 150 may generate a ciphertext block 1 by XORing the plaintext block 1 after applying the logic function to the initial counter value CTR.
  • the encoding unit 150 may generate an i-th ciphertext block by applying the logic function to the i-th counter value (for example, CTR + i-1, as shown in FIG. 16A) and XORing the i-th plaintext block. have. In this case, the encoding unit 150 may generate each ciphertext block in parallel.
  • the logic function for example, CTR + i-1, as shown in FIG. 16A
  • the encoding unit 150 may generate each ciphertext block in parallel.
  • Equation 25 the encryption operation illustrated in FIG. 16A may be expressed by Equation 25 below.
  • E BLOCK is the block encryption algorithm
  • CTR is the initial counter value
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence , Bit by bit XOR).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 16A as shown in the example illustrated in FIG. 16B.
  • the decryption unit 210 may generate an initial counter value CTR by applying an AES algorithm to the first ciphertext block (ciphertext block 0).
  • the encoding unit 150 may generate a plaintext block 1 by applying a logic function to the initial counter value CTR and XORing the ciphertext block 1.
  • the encoding unit 150 may generate the i-th plaintext block by applying the logic function to the i-th counter value (eg, CTR + i-1, as shown in FIG. have. In this case, the encoding unit 150 may generate each plaintext block in parallel.
  • the logic function eg, CTR + i-1, as shown in FIG. have.
  • the encoding unit 150 may generate each plaintext block in parallel.
  • Equation 26 the decoding operation illustrated in FIG. 16B may be expressed by Equation 26 below.
  • E BLOCK is the block encryption algorithm
  • CTR is the initial counter value
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence , Bit by bit XOR).
  • the data encryption apparatus 100 may encrypt data using the counter mode as shown in FIG. 17A.
  • the encryption unit 130 may apply the AES algorithm to the initial counter value CTR, and then generate the ciphertext block 1 by XORing the plaintext block 1.
  • the encoding unit 150 may generate an i-th ciphertext block by XORing the i-th plaintext block after applying a logic function to the i-th counter value (for example, CTR + i-1, as shown in FIG. 17A). have. In this case, the encoding unit 150 may generate each ciphertext block in parallel.
  • a logic function for example, CTR + i-1, as shown in FIG. 17A.
  • Equation 27 the encryption operation illustrated in FIG. 17A may be expressed by Equation 27 below.
  • E BLOCK is the block encryption algorithm
  • CTR is the initial counter value
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence , Bit by bit XOR).
  • the data decryption apparatus 200 may perform a decryption operation on the data encrypted by the example illustrated in FIG. 17A, as shown in the example illustrated in FIG. 17B.
  • the decryption unit 210 may generate a plaintext block 1 by applying an AES algorithm to the ciphertext block 1 and XORing the ciphertext block 1.
  • the encoding unit 150 may generate an i-th plaintext block by XORing the i-th ciphertext block after applying a logic function to an i-th counter value (for example, CTR + i-1, as shown in FIG. 17B). have. In this case, the encoding unit 150 may generate each plaintext block in parallel.
  • a logic function for example, CTR + i-1, as shown in FIG. 17B.
  • Equation 28 the decoding operation illustrated in FIG. 17B may be expressed by Equation 28 below.
  • E BLOCK is the block encryption algorithm
  • CTR is the initial counter value
  • C i is the i-th ciphertext block
  • P i is the i-th plaintext block
  • F is a logic function
  • XOR is an inter-block XOR operation (e.g., each block is a bit sequence , Bit by bit XOR).
  • the method illustrated in FIG. 18 may be performed by the data encryption apparatus 100 illustrated in FIG. 1, for example.
  • the data encryption apparatus 100 divides plain text data to be encrypted into a plurality of plain text blocks (1810).
  • the data encryption apparatus 100 encrypts at least one of some blocks and initial values of the plurality of divided plaintext blocks using an encryption key based block encryption scheme (1820).
  • the data encryption apparatus 100 encodes the remaining blocks that are not encrypted by the block encryption scheme among the divided plurality of plaintext blocks using the non-encryption key based encoding scheme (1830).
  • 19 is a flowchart of a data decoding method according to an embodiment of the present invention.
  • the method illustrated in FIG. 19 may be performed by, for example, the data decoding apparatus 200 illustrated in FIG. 2.
  • the data decryption apparatus 200 decrypts at least one of some blocks and initial values of encrypted data by using an encryption key based block decryption method (1910).
  • the data decryption apparatus 200 decodes the remaining blocks that are not decrypted by the block decryption method among the encrypted data by using a non-encryption key based decoding method (1920).
  • certain embodiments may include a computer readable storage medium containing a program for performing the processes described herein on a computer.
  • Such computer-readable storage media may include, alone or in combination with the program instructions, local data files, local data structures, and the like.
  • the computer readable storage medium may be those specially designed and configured for the present invention.
  • Examples of computer-readable storage media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, magnetic-optical media such as floppy disks, and ROM, RAM, flash memory, and the like.
  • Hardware devices specifically configured to store and execute the same program instructions are included.
  • Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 데이터 암호화 장치는 데이터를 복수의 평문 블록으로 분할하는 분할부, 암호키 기반의 블록 암호화 방식을 이용하여, 상기 복수의 평문 블록 중 일부 블록 및 상기 데이터의 암호화를 위한 초기값 중 적어도 하나를 암호화하는 암호화부 및 비 암호키 기반의 인코딩 방식을 이용하여, 상기 복수의 평문 블록 중 상기 소정의블록 암호화 방식에 의해 암호화 되지 않은 나머지 블록을 인코딩하는 인코딩부를 포함한다.

Description

데이터 암호화 장치 및 방법과 및 데이터 복호화 장치 및 방법
개시되는 실시예들은 데이터 암호화 및 복호화 기술과 관련된다.
기존의 블록암호 알고리즘을 이용한 데이터 암호화는 암호키가 공격자에게 노출되면 암호화된 데이터를 복호화 가능하여 데이터가 노출되기 때문에 암호키 보호/관리가 매우 중요한 문제였다.
일반적으로 블록암호를 이용한 데이터 암호화는 암호키 길이, 암호 블록 크기, 라운드 수가 보안성에 영향을 주는 요소이다. 이 중에서 메시지를 볼록 단위로 나누어 암호화 처리할 때의 운용 모드(mode of operation)도 중요한 역할을 한다. 운영모드를 사용한 블록 암호 알고리즘은 블록 단위로 암호화하며 모든 블록에 동일한 암호키로 암호화한다.
그러나, 기존 블록 암호 알고리즘을 이용한 데이터 암호화는 데이터 암호화 길이가 길면 길수록 데이터 암호화 블록이 늘어나게 되어 그 수만큼 암호 알고리즘을 사용하여 암호화를 진행하였다. 따라서, 데이터가 늘어날수록 데이터 암호화 속도도 느려지게 되어 대용량 암호화와 같은 암호화 속도가 중요한 곳에서 사용하기 무거운 문제점이 있다.
개시되는 실시예들은 블록 암호화 방식 및 인코딩 방식을 이용하여 데이터 암호화를 수행하고 이에 따라 암호문을 복호화하는 새로운 기법을 제공한다.
본 발명의 일 실시예에 따른 데이터 암호화 장치는 데이터를 복수의 평문 블록으로 분할하는 분할부, 암호키 기반의 블록 암호화 방식을 이용하여, 상기 복수의 평문 블록 중 일부 블록 및 상기 데이터의 암호화를 위한 초기값 중 적어도 하나를 암호화하는 암호화부 및 비 암호키 기반의 인코딩 방식을 이용하여, 상기 복수의 평문 블록 중 상기 소정의블록 암호화 방식에 의해 암호화 되지 않은 나머지 블록을 인코딩하는 인코딩부를 포함한다.
상기 블록 암호화 방식은, 대칭키 또는 비대칭키를 이용한 암호화 방식을 포함할 수 있다.
상기 블록 암호화 방식은, 화이트박스 기반 암호화 방식을 포함할 수 있다.
상기 인코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 인코딩 방식을 포함할 수 있다.
상기 초기값은 초기화 벡터 또는 카운터 값을 포함할 수 있다.
상기 암호화부는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 일부 블록을 암호화할 수 있다.
상기 인코딩부는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 나머지 블록을 인코딩할 수 있다.
상기 인코딩부는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록을 이용하여 인코딩할 수 있다.
상기 인코딩부는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록 및 상기 이전에 생성된 암호문 블록 생성에 이용된 평문 블록을 이용하여 인코딩할 수 있다
본 발명의 일 실시예에 따른 데이터 복호화 장치는 암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록을 복호화하는 복호화부 및 비 암호키 기반의 디코딩 방식을 이용하여, 상기 암호화된 데이터 중 상기 일부 블록을 제외한 나머지 블록을 디코딩하는 디코딩부를 포함한다.
상기 블록 복호화 방식은, 대칭키 또는 비대칭키를 이용한 복호화 방식을 포함할 수 있다.
상기 블록 복호화 방식은, 화이트박스 기반 복호화 방식을 포함할 수 있다.
상기 디코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 디코딩 방식을 포함할 수 있다.
상기 디코딩부는, 상기 암호화된 데이터 생성에 사용된 초기화 벡터 또는 카운터 값을 이용하여, 상기 나머지 블록을 디코딩할 수 있다.
상기 디코딩부는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩할 수 있다.
상기 디코딩부는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 및 상기 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩할 수 있다.
본 발명의 일 실시예에 따른 데이터 암호화 방법은 데이터를 복수의 평문 블록으로 분할하는 단계, 암호키 기반의 블록 암호화 방식을 이용하여, 상기 복수의 평문 블록 중 일부 블록 및 상기 데이터의 암호화를 위한 초기값 중 적어도 하나를 암호화하는 단계 및 비 암호키 기반의 인코딩 방식을 이용하여, 상기 복수의 평문 블록 중 상기 일부 블록을 제외한 나머지 블록을 인코딩하는 단계를 포함한다.
상기 블록 암호화 방식은, 대칭키 또는 비대칭키를 이용한 암호화 방식을 포함할 수 있다.
상기 블록 암호화 방식은, 화이트박스 기반 암호화 방식을 포함할 수 있다.
상기 인코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 인코딩 방식을 포함할 수 있다.
상기 초기값은 초기화 벡터 또는 카운터 값을 포함할 수 있다.
상기 암호화하는 단계는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 일부 블록에 대한 암호문 블록을 생성할 수 있다.
상기 인코딩하는 단계는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 나머지 블록을 인코딩할 수 있다.
상기 인코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록을 이용하여 인코딩할 수 있다.
상기 인코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록 및 상기 이전에 생성된 암호문 블록 생성에 이용된 평문 블록을 이용하여 인코딩할 수 있다.
본 발명의 일 실시예에 따른 데이터 복호화 방법은 암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록을 복호화 단계 및 비 암호키 기반의 디코딩 방식을 이용하여, 상기 암호화된 데이터 중 중 상기 일부 블록을 제외한 나머지 블록을 디코딩하는 단계를 포함한다.
상기 블록 복호화 방식은, 대칭키 또는 비대칭키를 이용한 복호화 방식을 포함할 수 있다.
상기 블록 복호화 방식은, 화이트박스 기반 복호화 방식을 포함할 수 있다.
상기 디코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 디코딩 방식을 포함할 수 있다.
상기 디코딩하는 단계는, 상기 암호화된 데이터 생성에 사용된 초기화 벡터 또는 카운터 값을 이용하여, 상기 나머지 블록에 대한 평문 블록을 생성할 수 있다.
상기 디코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩할 수 있다.
상기 디코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 및 상기 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩할 수 있다.
본 발명의 일 실시예에 따른 기록매체에 저장된 컴퓨터 프로그램은 하드웨어와 결합되어, 데이터를 복수의 평문 블록으로 분할하는 단계, 암호키 기반의 블록 암호화 방식을 이용하여, 상기 복수의 평문 블록 중 일부 블록 및 상기 데이터의 암호화를 위한 초기값 중 적어도 하나를 암호화하는 단계 및 비 암호키 기반의 인코딩 방식을 이용하여, 상기 복수의 평문 블록 중 상기 일부 블록을 제외한 나머지 블록을 인코딩하는 단계를 실행시킨다.
본 발명의 일 실시예에 따른 기록매체에 저장된 컴퓨터 프로그램은 하드웨어와 결합되어, 암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록을 복호화 단계 및 비 암호키 기반의 디코딩 방식을 이용하여, 상기 암호화된 데이터 중 중 상기 일부 블록을 제외한 나머지 블록을 디코딩하는 단계를 실행시킨다.
본 발명의 실시예들에 따르면, 암호화된 데이터 생성을 위해 블록 암호화 방식을 이용하여 일부 암호문 블록을 생성하고, 나머지 암호문 블록은 인코딩 방식으로 처리하여 데이터 암호화를 위한 연산량을 감소시킴으로써, 대용량 암호화 시에도 신속한 암호화가 가능토록 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 암호화 장치의 블록도
도 2는 본 발명의 일 실시예에 따른 데이터 복호화 장치의 블록도
도 3a 및 도 3b는 본 발명의 일 실시예에 따른 ECB(Electronic Code Book) 모드를 설명하기 위한 도면
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 CBC(Cipher Block Chaining) 모드를 설명하기 위한 도면
도 5a 및 도 5b는 본 발명의 다른 실시예에 따른 CBC 모드를 설명하기 위한 도면
도 6a 및 도 6b는 본 발명의 또 다른 실시예에 따른 CBC 모드를 설명하기 위한 도면
도 7a 및 도 7b는 본 발명의 일 실시예에 따른 PCBC(Propagating Cipher Block Chaining) 모드를 설명하기 위한 도면
도 8a 및 도 8b는 본 발명의 다른 실시예에 따른 PCBC(Propagating Cipher Block Chaining) 모드를 설명하기 위한 도면
도 9a 및 도 9b는 본 발명의 또 다른 실시예에 따른 PCBC(Propagating Cipher Block Chaining) 모드를 설명하기 위한 도면
도 10a 및 도 10b는 본 발명의 일 실시예에 따른 CFB(Cipher FeedBack) 모드를 설명하기 위한 도면
도 11a 및 도 11b는 본 발명의 다른 실시예에 따른 CFB(Cipher FeedBack) 모드를 설명하기 위한 도면
도 12a 및 도 12b는 본 발명의 또 다른 실시예에 따른 CFB(Cipher FeedBack) 모드를 설명하기 위한 도면
도 13a 및 도 13b는 본 발명의 일 실시예에 따른 OFB(Output FeedBack) 모드를 설명하기 위한 도면
도 14a 및 도 14b는 본 발명의 다른 실시예에 따른 OFB(Output FeedBack) 모드를 설명하기 위한 도면
도 15a 및 도 15b는 본 발명의 일 실시예에 따른 CTR(Counter) 모드를 설명하기 위한 도면
도 16a 및 도 16b는 본 발명의 다른 실시예에 따른 CTR(Counter) 모드를 설명하기 위한 도면
도 17a 및 도 17b는 본 발명의 또 다른 실시예에 따른 CTR(Counter) 모드를 설명하기 위한 도면
도 18은 본 발명의 일 실시예에 따른 데이터 암호화 방법의 순서도
도 19는 본 발명의 일 실시예에 따른 데이터 복호화 방법의 순서도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 예시적인 실시예에 따른 데이터 암호화 장치를 도시한 도면이고,도 2는 예시적인 실시예에 따른 데이터 복호화 장치를 도시한 도면이다. 몇몇 실시예들에서, 예시적인 데이터 암호화 장치(100) 및 예시적인 데이터 복호화 장치(200)는 각각 별개의 컴퓨팅 장치 내에 구현되거나 포함될 수 있다. 각각의 컴퓨팅 장치는 하나 이상의 프로세서 및 그 프로세서에 의해 액세스 가능한 메모리와 같은 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 프로세서의 내부 또는 외부에 배치될 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨터 판독 가능 저장 매체에는 컴퓨터 실행 가능 명령어가 저장되어 있을 수 있다. 프로세서는 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 실행할 수 있다. 그러한 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 예시적인 실시예에 따른 동작을 수행하게 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 암호화 장치(100)의 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 암호화 장치(100)는 분할부(110), 암호화부(130) 및 인코딩부(150)를 포함한다.
데이터 암호화 장치(100)는 평문 데이터 (예컨대, 디지털화된 평문)를 암호화하여 암호화된 데이터 (예컨대, 디지털화된 암호문)를 생성하도록 구성된다.
분할부(110)는 암호화 대상인 평문 데이터를 복수의 평문 블록으로 분할한다. 예를 들어, 분할부(110)는 평문 데이터를 일정한 크기의 블록 단위로 분할하여 복수의 평문 블록을 생성할 수 있다. 이때, 예를 들어, 분할된 블록들의 크기를 맞추기 위하여 마지막 블록에 미리 정의된 값을 채워 넣는 패딩(Padding)과정이 수행될 수 있다.
암호화부(130)는 암호키 기반의 블록 암호화 방식을 이용하여, 복수의 평문 블록 중 일부 블록 및 암호화를 위한 초기값 중 적어도 하나를 암호화한다.
이때, 암호키 기반의 블록 암호화 방식은 대칭키 또는 비대칭키를 이용하여 데이터를 블록 단위로 암호화 하는 다양한 형태의 암호화 방식을 포함할 수 있다. 예를 들어, 암호화부(130)는 AES(Advanced Encryption Standard), DES(Data Encryption Standard), 3DES, Blowfish, IDEA(International Data Encryption Algorithm), RC2, RC5, RC6, SEED, ARIA, RSA(Rivest Shamir Adleman), DSA(Digital Signature Standard), ECC(Elliptic Curve Cryptosystem), Elgamal, 화이트 박스 기반 암호화 알고리즘 등 대칭키 또는 비 대칭키를 사용하는 공지된 블록 암호화 알고리즘을 이용하여 암호문 블록을 생성할 수 있다.
한편, 초기값은 예를 들어, 임의의 비트열인 초기화 벡터(Initialization Vector: IV) 또는 평문 블록을 암호화 할 때마다 1씩 증가되는 카운터 값을 포함할 수 있다. 이때, 암호화부(130)는 후술할 운영 모드에 따라 초기값(초기화 벡터 또는 초기 카운터 값)을 암호키 기반의 블록 암호화 방식에 따라 암호화하여 암호문 블록을 생성하거나, 초기값(예를 들어, 초기화 벡터 또는 초기 카운터 값)을 이용하여 평문 블록 중 일부 블록을 암호키 기반의 블록 암호화 방식에 따라 암호화하여 암호문 블록을 생성할 수 있다.
한편, 인코딩부(150)는 비 암호키 기반의 인코딩 방식을 이용하여, 복수의 평문 블록 중 암호화부(130)에 의해 암호화되지 않은 나머지 블록을 인코딩한다.
이때, 일 실시예에 따르면, 비 암호키 기반의 인코딩 방식은 암호키를 이용하지 않고 데이터를 숨길 수 있는 다양한 형태의 인코딩 방식을 포함할 수 있다. 예를 들어, 비 암호키 기반의 인코딩 방식은 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 복수의 논리 연산으로 구성된 논리함수 중 적어도 하나를 이용한 인코딩 방식을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 인코딩부(150)는 후술할 운영 모드에 따라, 초기값(예를 들어, 초기화 벡터 또는 카운터 값)을 이용하여 암호화부(130)에 의해 암호화되지 않은 평문 블록을 인코딩하여 암호문 블록을 생성할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 인코딩부(150)는 후술할 운영 모드에 따라, 암호화부(130)에 의해 암호화되지 않은 평문 블록을 순차적으로 인코딩하여 암호문 블록을 생성하되, 이전 단계에서 생성된 암호문 블록을 이용하거나, 이전 단계에서 생성된 암호문 블록 및 해당 암호문 블록 생성을 위해 사용된 평문 블록을 이용하여 암호문 블록을 생성할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 암호화부(130) 및 인코딩부(150)는 블록 암호화에 이용되는 종래 암호화 운영 모드와 유사한 방식으로 평문 데이터를 암호화할 수 있다. 예를 들어, 암호화부(130) 및 인코딩부(150)는 ECB(Electronic Code Blook) 모드, CBC(Cipher Block Chanining) 모드, PCBC(Propagating Cipher Block Chaining) 모드, CFB(cipher FeedBack) 모드, OFB(Output FeedBack) 모드 및 CTR(Counter) 모드 중 하나의 운영 모드로 평문 데이터를 암호화할 수 있다. 다만, 종래 블록 암호화에 이용되는 암호화 운영 모드는 평문 데이터의 암호화를 위해 하나의 암호화 알고리즘이 적용되나, 본 발명의 실시예에서 이용되는 운영 모드는 평문 데이터의 암호화를 위해 블록 암호화 방식과 인코딩 방식이 적용된다는 점에서 차이가 있다. 즉, 본 발명의 실시예에 의해 암호화된 데이터는 암호키 기반의 블록 암호화 방식에 의해 생성된 암호문 블록과 비 암호키 기반의 인코딩 방식에 의해 생성된 암호문 블록을 포함하게 된다. 운용 모드를 이용한 구체적인 동작에 대한 상세한 설명은 후술하기로 한다.
한편, 본 발명의 일 실시예에 따르면, 데이터 암호화 장치(100)는 초기값(예를 들어, 초기화 벡터 또는 카운터 값)을 이용하는 운용모드에 따라 암호화된 데이터를 생성하는 경우, 초기값을 생성하기 위한 초기값 생성부(170)을 더 포함할 수 있다.
한편, 분할부(110), 암호화부(130), 인코딩부(150) 및 초기값 생성부(170)는 데이터 암호화 장치(100) 내에서 수행하는 기능에 따라 분류한 것으로, 도 1에 도시된 예에서 분할부(110), 암호화부(130), 인코딩부(150) 및 초기값 생성부(170)를 분리된 구성으로 도시하였으나, 반드시 이에 한정되는 것은 아니며, 구체적 동작에 있어서 명확히 구분되지 않을 수 있다.
또한, 상술한 예에서, 암호화부(130)가 공지된 특정 암호화 알고리즘을 이용하여 암호화를 수행하는 것으로 예시하였으나, 반드시 이에 한정되는 것은 아니다. 예를 들어, 암호화부(130) 및 인코딩부(150)는 소정의 운영모드에 기초하여, 평문 데이터 중 일부를 대칭키 또는 비 대칭키를 이용하여 블록 암호화 방식으로 암호화하고, 평문 데이터 중 나머지 일부를 암호키를 사용하지 않는 소정의 인코딩 방식에 따라 인코딩하도록 설계된 암호화 알고리즘을 이용하여 평문 데이터를 암호화할 수 있다.
한편, 일 실시예에서, 분할부(110), 암호화부(130), 인코딩부(150)및 초기값 생성부(170)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 2는 본 발명의 일 실시예에 따른 데이터 복호화 장치(200)의 블록도이다.
복호화부(210)도 2에 도시된 데이터 복호화 장치(200)는 도 1에 도시된 데이터 암호화 장치(100)에 의해 암호화된 데이터를 복호화하여 평문 데이터를 생성하기 위한 것이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터 복호화 장치(200)는 복호화부(210) 및 디코딩부(230)를 포함한다.
복호화부(210)는 암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록을 복호화할 수 있다. 예를 들어, 도 1에서 설명한 바와 같이 데이터 암호화 장치(100)에 의해 암호화된 데이터는 암호키 기반의 블록 암호화 방식을 이용하여 암호화된 암호문 블록과 비 암호키 기반의 인코딩 방식에 의해 인코딩된 암호문 블록을 포함할 수 있다. 이에 따라, 본 발명의 일 실시예에 따르면, 복호화부(210)는 암호화된 데이터 중, 암호키 기반의 블록 암호화 방식을 이용하여 암호화된 암호문 블록을 암호키 기반의 블록 복호화 방식을 이용하여 복호화할 수 있다.
이때, 암호키 기반의 블록 복호화 방식은 대칭키 또는 비대칭키를 이용하여 데이터를 블록 단위로 복호화하는 다양한 형태의 복호화 방식을 포함할 수 있다. 예를 들어, 복호화부(210)는 AES(Advanced Encryption Standard), DES(Data Encryption Standard), 3DES, Blowfish, IDEA(International Data Encryption Algorithm), RC2, RC5, RC6, SEED, ARIA, RSA(Rivest Shamir Adleman), DSA(Digital Signature Standard), ECC(Elliptic Curve Cryptosystem), ELGmal, 화이트박스(Whitebox) 기반 암호화 알고리즘 등 대칭키 또는 비 대칭키를 사용하는 공지된 블록 암호화 알고리즘을 이용하여 암호문 블록 중 일부 블록을 복호화할 수 있다.
한편, 디코딩부(230)는 비 암호키 기반의 디코딩 방식을 이용하여, 암호화된 데이터 중 복호화부(210)에 의해 복호화되지 않은 암호문 블록을 디코딩할 수 있다. 이때, 비 암호키 기반의 디코딩 방식은 논리 연산, 일방향 함수, 일방향 치환 및 논리 함수 중 적어도 하나를 이용한 디코딩 방식을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 디코딩부(230)는 암호화된 데이터를 복호화하기 위한 운영 모드에 따라, 초기값 또는 카운터 값을 이용하여 복호화부(210)에 의해 복호화되지 않은 암호문 블록을 디코딩하여 평문 블록을 생성할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 디코딩부(230)는 암호화된 데이터를 복호화하기 위한 운영 모드에 따라, 복호화부(230)에 의해 복호화되지 않은 암호문 블록을 순차적으로 디코딩하여 평문 블록을 생성하되 이전 단계에서 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하거나, 이전 단계에서 생성된 평문 블록 및 해당 평문 블록 생성을 위해 사용된 암호문 블록을 이용하여 평문 블록을 생성할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 복호화부(210) 및 디코딩부(230)는 암호화된 데이터 생성을 위해 데이터 암호화 장치(100)에 의해 사용된 운영모드와 동일한 운영모드를 이용하여 암호화된 데이터를 복호화할 수 있다. 예를 들어, 복호화부(210) 및 디코딩부(230)는 ECB(Electronic Code Blook) 모드, CBC(Cipher Block Chanining) 모드, PCBC(Propagating Cipher Block Chaining) 모드, CFB(cipher FeedBack) 모드, OFB(Output FeedBack) 모드 및 CTR(Counter) 모드 중 하나의 운영 모드로 암호화된 데이터를 복호화할 수 있다. 이에 대한 상세한 설명은 후술하기로 한다.
한편, 본 발명의 일 실시예에 따르면, 데이터 복호화 장치(200)는 초기값(예를 들어, 초기화 벡터 또는 카운터 값)을 이용하는 운용모드에 따라 평문 데이터를 생성하는 경우, 초기값을 생성하기 위한 초기값 생성부(250)을 더 포함할 수 있다.
한편, 복호화부(210), 디코딩부(230) 및 초기값 생성부(250)는 데이터 복호화 장치(200) 내에서 수행하는 기능에 따라 분류한 것으로, 도 2에 도시된 예에서 복호화부(210), 디코딩부(230) 및 초기값 생성부(250)를 분리된 구성으로 도시하였으나, 반드시 이에 한정되는 것은 아니며, 구체적 동작에 있어서 명확히 구분되지 않을 수 있다.
또한, 상술한 예에서, 복호화부(210)가 공지된 특정 암호화 알고리즘을 이용하여 암호화를 수행하는 것으로 예시하였으나, 반드시 이에 한정되는 것은 아니다. 예를 들어, 복호화부(210) 및 디코딩부(230)는 소정의 운영모드에 기초하여, 암호화된 데이터 중 일부를 대칭키 또는 비 대칭키를 이용하여 블록 복호화 방식으로 복호화하고, 암호화된 데이터 중 나머지 일부를 암호키를 사용하지 않는 소정의 디코딩 방식에 따라 디코딩하도록 설계된 복호화 알고리즘을 이용하여 암호화된 데이터로부터 평문 데이터를 생성할 수 있다.
한편, 일 실시예에서, 복호화부(210), 인코딩부(230) 및 초기값 생성부(250)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
이하에서 각 운영 모드에 따른 데이터 암호화 장치(100) 및 데이터 복호화 장치(200)의 예시적인 동작들을 더욱 상세히 설명한다. 이하에서 설명되는 실시예들에서는 설명의 편의를 위해 블록 암호화 방식으로 AES 알고리즘을 이용하며, 인코딩 방식으로, XOR 연산 또는 XOR 연산 및 논리 함수를 이용하는 것으로 예시하나, 반드시 이에 한정되는 것이 아님을 유의하여야 한다.
또한, 이하에서 설명되는 실시예들에서는 첫 번째 암호문 생성을 위해 블록 암호화 방식이 사용되는 것으로 설명하나, 반드시 이에 한정되는 것은 아니며, 암호화 속도 등을 고려하여 2 이상의 평문 블록을 블록 암호화 방식으로 암호화하는 것도 가능함을 유의하여야 한다.
1. ECB 모드를 이용한 실시예
본 발명의 일 실시예에 따르면, 데이터 암호화 장치(100)는 도 3a에 도시된 예와 같이 ECB 모드를 이용하여 데이터를 암호화할 수 있다.
도 3a에 도시된 바와 같이, 암호화부(130)는 복수의 평문 블록 중 첫 번째 평문 블록인 평문 블록 1에 블록 암호 알고리즘을 적용하여 암호문 블록 1을 생성한다. 이후, 인코딩부(150)는 평문 블록 2, 평문 블록 3 및 평문 블록 4 각각에 대해 논리함수를 적용하여 암호문 블록 2, 암호문 블록 3 및 암호문 블록 4를 생성할 수 있다.
데이터 복호화 장치(200)는 도 3a에 도시된 예에 의해 암호화된 데이터에대하여, 도 3b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 3b를 참조하면, 복호화부(210)는 복수의 암호문 블록 중 첫 번째 암호문 블록인 암호문 블록 1에 블록 암호 알고리즘을 적용하여 평문 블록 1을 생성한다. 이후, 디코딩부(230)는 암호문 블록 2, 암호문 블록 3 및 암호문 블록 4 각각에 대해 논리함수를 적용하여 평문 블록 2, 평문 블록 3 및 평문 블록 4를 생성할 수 있다.
2. CBC 모드를 이용한 실시예
본 발명의 일 실시예에 따르면, 데이터 암호화 장치(100)는 도 4a에 도시된 예와 같이 CBC 모드를 이용하여 데이터를 암호화할 수 있다.
도 4a를 참조하면, 암호화부(130)는 첫 번째 평문 블록(평문 블록 1)을 초기화 벡터와 배타적 논리합(XOR)을 하고 이에 대해 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 2 내지 평문 블록 4 각각을 직전에 생성된 암호문 블록과 XOR하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 4a에 도시된 암호화 동작은 다음의 수학식 1과 같이 표현될 수 있다.
[수학식 1]
C1 = EBLOCK(P1 XOR IV)
Ci = Pi XOR Ci-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
데이터 복호화 장치(200)는 도 4a에 도시된 예에 의해 암호화된 데이터에대하여, 도 4b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 4b를 참조하면, 복호화부(210)는 암호화된 데이터의 첫 번째 블록(암호문 블록 1)에 AES 알고리즘을 이용하여 복호화한 후 초기화 벡터와 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 2 내지 암호문 블록 4 각각에 대하여 직전의 암호문 블록과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 4b에 도시된 복호화 동작은 다음의 수학식 2와 같이 표현될 수 있다.
[수학식 2]
P1 = DBLOCK(C1) XOR IV
Pi = Ci XOR Ci-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 본 발명의 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 5a에 도시된 예와 같이 CBC 모드를 이용하여 데이터를 암호화할 수 있다.
도 5a를 참조하면, 암호화부(130)는 첫 번째 평문 블록(평문 블록 1)을 초기화 벡터와 배타적 논리합(XOR)을 하고 이에 대해 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 2 내지 평문 블록 4 각각을 직전에 생성된 암호문 블록과 XOR한 후 이에 대해 논리함수를 적용하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 5a에 도시된 암호화 동작은 다음의 수학식 3과 같이 표현될 수 있다.
[수학식 3]
C1 = EBLOCK(P1 XOR IV)
Ci = F(Pi XOR Ci-1) (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 5a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 5b에 도시된 바와 같이 복호화 동작을 수행할 수 있다.
도 5b를 참조하면, 복호화부(210)는 암호화된 데이터의 첫 번째 블록(암호문 블록 1)에 AES 알고리즘을 이용하여 복호화한 후 초기화 벡터와 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 2 내지 암호문 블록 4 각각에 대해 논리함수를 적용한 후 직전의 암호문 블록과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 5b에 도시된 복호화 동작은 다음의 수학식 4와 같이 표현될 수 있다.
[수학식 4]
P1 = DBLOCK(C1) XOR IV
Pi = F(Ci) XOR Ci-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 본 발명의 또 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 6a에 도시된 예와 같이 CBC 모드를 이용하여 데이터를 암호화할 수 있다.
도 6a를 참조하면, 암호화부(130)는 초기화 벡터(IV)에 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 0)을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 1과 초기화 벡터(IV)를 XOR한 후 논리함수를 적용하여 암호문 블록 1을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 2 내지 평문 블록 4 각각을 이전에 생성된 암호문 블록과 XOR한 후 이에 대해 논리함수를 적용하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 6a에 도시된 암호화 동작은 다음의 수학식 5과 같이 표현될 수 있다.
[수학식 5]
C0 = EBLOCK(IV)
C1 = F(P1 XOR IV)
Ci = F(Pi XOR Ci-1) (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 6a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 6b에 도시된 바와 같이 복호화 동작을 수행할 수 있다.
도 6b를 참조하면, 복호화부(210)는 암호화된 데이터의 첫 번째 블록(암호문 블록 0)에 AES 알고리즘을 이용하여 복호화하여 초기화 벡터(IV)를 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 1에 대해 논리함수를 적용한 후 초기화 벡터와 XOR하여 평문 블록 1을 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 2 내지 암호문 블록 4 각각에 대해 논리함수를 적용한 후 직전의 암호문 블록과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 6b에 도시된 복호화 동작은 다음의 수학식 6과 같이 표현될 수 있다.
[수학식 6]
IV= DBLOCK(C0)
P1 = F(C1) XOR IV
Pi = F(Ci) XOR Ci-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
3. PCBC 모드를 이용한 실시예
한편, 본 발명의 일 실시예에 따르면, 데이터 암호화 장치(100)는 도 7a에 도시된 예와 같이 PCBC 모드를 이용하여 데이터를 암호화할 수 있다.
도 7a를 참조하면, 암호화부(130)는 데이터의 첫 번째 평문 블록(평문 블록 1)을 초기화 벡터(IV)와 배타적 논리합(XOR)을 하고 이에 대해 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 2 내지 평문 블록 4 각각을 직전에 생성된 암호문 블록 및 직전의 평문 블록과 XOR하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 7a에 도시된 암호화 동작은 다음의 수학식 7과 같이 표현될 수 있다.
[수학식 7]
C1 = EBLOCK(P1 XOR IV)
Ci = Pi XOR Pi-1 XOR Ci-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 7a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 7b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 7b를 참조하면, 복호화부(210)는 암호화된 데이터의 첫 번째 블록(암호문 블록 1)에 AES 알고리즘을 이용하여 복호화한 후 초기화 벡터(IV)와 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 2 내지 암호문 블록 4 각각을 직전에 생성된 평문 블록 및 직전의 암호문 블록과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 7b에 도시된 복호화 동작은 다음의 수학식 8과 같이 표현될 수 있다.
[수학식 8]
P1 = DBLOCK(C1) XOR IV
Pi = Ci XOR Ci-1 XOR Pi-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 본 발명의 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 8a에 도시된 예와 같이 PCBC 모드를 이용하여 데이터를 암호화할 수 있다.
도 8a를 참조하면, 암호화부(130)는 데이터의 첫 번째 평문 블록(평문 블록 1)을 초기화 벡터(IV)와 배타적 논리합(XOR)을 하고 이에 대해 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 2 내지 평문 블록 4 각각을 직전에 생성된 암호문 블록 및 직전의 평문 블록과 XOR한 후 이에 대해 논리함수를 적용하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 8a에 도시된 암호화 동작은 다음의 수학식 9와 같이 표현될 수 있다.
[수학식 9]
C1 = EBLOCK(P1 XOR IV)
Ci = F(Pi XOR Pi-1 XOR Ci-1) (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 9a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 8b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 8b를 참조하면, 복호화부(210)는 암호화된 데이터의 첫 번째 블록(암호문 블록 1)에 AES 알고리즘을 이용하여 복호화한 후 초기화 벡터(IV)와 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 2 내지 암호문 블록 4 각각에 대해 논리함수를 적용한 후 직전에 생성된 평문 블록 및 직전의 암호문 블록과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 8b에 도시된 복호화 동작은 다음의 수학식 10과 같이 표현될 수 있다.
[수학식 10]
P1 = DBLOCK(C1) XOR IV
Pi = F(Ci) XOR Ci-1 XOR Pi-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 본 발명의 또 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 9a에 도시된 예와 같이 PCBC 모드를 이용하여 데이터를 암호화할 수 있다.
도 9a를 참조하면, 암호화부(130)는 데이터의 첫 번째 평문 블록(평문 블록 1)을 초기화 벡터(IV)와 배타적 논리합(XOR)을 하고 이에 대해 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 0)을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 1과 초기화 벡터(IV)를 XOR한 후 논리함수를 적용하여 암호문 블록 1을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 2 내지 평문 블록 4 각각을 직전에 생성된 암호문 블록 및 직전의 평문 블록과 XOR한 후 이에 대해 논리함수를 적용하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 9a에 도시된 암호화 동작은 다음의 수학식 11과 같이 표현될 수 있다.
[수학식 11]
C0 = EBLOCK(IV)
C1= F(P1 XOR IV)
Ci = F(Pi XOR Pi-1 XOR Ci-1) (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 9a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 9b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 9b를 참조하면, 복호화부(210)는 암호화된 데이터의 첫 번째 블록(암호문 블록 0)에 AES 알고리즘을 이용하여 복호화하여 초기화 벡터(IV)를 생성할 수 있다.
디코딩부(230)는 암호문 블록 1에 논리함수를 적용한 후 초기화 벡터(IV)와 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 2 내지 암호문 블록 4 각각에 대해 논리함수를 적용한 후 직전에 생성된 평문 블록 및 직전의 암호문 블록과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 9b에 도시된 복호화 동작은 다음의 수학식 12와 같이 표현될 수 있다.
[수학식 12]
IV = DBLOCK(C0)
P1 = F(C1) XOR IV
Pi = F(Ci) XOR Ci-1 XOR Pi-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
4. CFB 모드를 이용한 실시예
본 발명의 일 실시예에 따르면, 데이터 암호화 장치(100)는 도 10a에 도시된 예와 같이 CFB 모드를 이용하여 데이터를 암호화할 수 있다.
도 10a를 참조하면, 암호화부(130)는 초기화 벡터에 AES 알고리즘 적용 후 첫 번째 평문 블록(평문 블록 1)과 XOR하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 평문 블록 2 내지 평문 블록 4 각각을 직전에 생성된 암호문 블록과 XOR하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 10a에 도시된 암호화 동작은 다음의 수학식 13과 같이 표현될 수 있다.
[수학식 13]
C1 = EBLOCK(IV) XOR P1
Ci = Pi XOR Ci-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 10a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 10b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 10b를 참조하면, 복호화부(210)는 초기화 벡터(IV)에 AES 알고리즘을 적용 후 첫 번째 암호문 블록(암호문 블록 1)과 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 암호문 블록 2 내지 암호문 블록 4 각각을 직전의 암호문 블록과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 10b에 도시된 복호화 동작은 다음의 수학식 14와 같이 표현될 수 있다.
[수학식 14]
P1 = DBLOCK(IV) XOR C1
Pi = Ci XOR Ci-1 (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
본 발명의 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 11a에 도시된 예와 같이 CFB 모드를 이용하여 데이터를 암호화할 수 있다.
도 11a를 참조하면, 암호화부(130)는 초기화 벡터에 AES 알고리즘 적용 후 첫 번째 평문 블록(평문 블록 1)과 XOR하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 직전에 생성된 암호문 블록에 논리함수를 적용 후 평문 블록 2 내지 평문 블록 4 각각과 XOR하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 11a에 도시된 암호화 동작은 다음의 수학식 15와 같이 표현될 수 있다.
[수학식 15]
C1 = EBLOCK(IV) XOR P1
Ci = F(Ci-1) XOR Pi (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 11a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 11b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 10b를 참조하면, 복호화부(210)는 초기화 벡터(IV)에 AES 알고리즘을 적용 후 첫 번째 암호문 블록(암호문 블록 1)과 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 이전 암호문 블록에 논리함수를 적용 후 블록 2 내지 암호문 블록 4 각각과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 11b에 도시된 복호화 동작은 다음의 수학식 16과 같이 표현될 수 있다.
[수학식 16]
P1 = DBLOCK(IV) XOR C1
Pi = F(Ci-1) XOR Ci (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
본 발명의 또 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 12a에 도시된 예와 같이 CFB 모드를 이용하여 데이터를 암호화할 수 있다.
도 12a를 참조하면, 암호화부(130)는 초기화 벡터(IV)에 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 0)을 생성할 수 있다.
이후, 인코딩부(150)는 초기화 벡터(IV)를 첫 번째 평문 블록(평문 블록1)과 XOR하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 직전에 생성된 암호문 블록에 논리함수를 적용 후 평문 블록 2 내지 평문 블록 4 각각과 XOR하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 12a에 도시된 암호화 동작은 다음의 수학식 17과 같이 표현될 수 있다.
[수학식 17]
C0 = EBLOCK(IV)
C1 = IV XOR P1
Ci = F(Ci-1) XOR Pi (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 12a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 12b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 12b를 참조하면, 복호화부(210)는 첫 번째 암호문 블록(암호문 블록 0)에 AES 알고리즘을 적용하여 초기화 벡터(IV)를 생성할 수 있다.
이후, 디코딩쿠(230)는 초기화 벡터(IV)와 암호문 블록 1을 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 이전 암호문 블록에 논리함수를 적용 후 블록 2 내지 암호문 블록 4 각각과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 12b에 도시된 복호화 동작은 다음의 수학식 18과 같이 표현될 수 있다.
[수학식 18]
IV = DBLOCK(C0)
P1 = IV XOR C1
Pi = F(Ci-1) XOR Ci (i≥2)
여기서, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, DBLOCK는 블록 복호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
5. OFB 모드를 이용한 실시예
본 발명의 일 실시예에 따르면, 데이터 암호화 장치(100)는 도 13a에 도시된 예와 같이 OFB 모드를 이용하여 데이터를 암호화할 수 있다.
도 13a를 참조하면, 암호화부(130)는 초기화 벡터(IV)에 AES 알고리즘을 적용한 후 첫 번째 평문 블록(평문 블록 1)과 XOR하여 첫 번째 암호문 블록(암호문 블록 1)을 생성할 수 있다.
이후, 인코딩부(150)는 초기화 벡터(IV)에 AES 알고리즘을 적용하여 생성된 블록에 논리 함수를 반복적으로 적용한 후 평문 블록 2 내지 평문 블록 4 각각과 XOR하여 암호문 블록 2 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 13a에 도시된 암호화 동작은 다음의 수학식 19와 같이 표현될 수 있다.
[수학식 19]
O1= EBLOCK(IV)
C1 = O1 XOR P1
Oi= F(Oi-1) (i≥2)
Ci = Pi XOR Oi (i≥2)
여기서, EBLOCK는 블록 암호화 알고리즘, IV는 초기화 벡터, O1은 초기화 벡터에 블록 암호화 알고리즘을 적용하여 생성된 블록, Ci는 i 번째 암호문 블록, Oi는 O1에 초기화 벡터에 논리함수를 i번 적용하여 생성된 블록, Pi는 i 번째 평문 블록, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 13a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 13b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 13b를 참조하면, 복호화부(210)는 초기화 벡터(IV)에 AES 알고리즘을 적용 후 첫 번째 암호문 블록(암호문 블록 1)과 XOR하여 첫 번째 평문 블록(평문 블록 1)을 생성할 수 있다.
이후, 디코딩부(230)는 초기화 벡터(IV)에 AES 알고리즘을 적용하여 생성된 블록에 논리 함수를 반복적으로 적용한 후 암호문 블록 2 내지 암호문 블록 4 각각과 XOR하여 평문 블록 2 내지 평문 블록 4를 생성할 수 있다.
구체적으로, 도 13b에 도시된 복호화 동작은 다음의 수학식 20과 같이 표현될 수 있다.
[수학식 20]
O1= EBLOCK(IV)
P1 = O1 XOR C1
Oi= F(Oi-1) (i≥2)
Pi = Ci XOR Oi (i≥2)
여기서, EBLOCK는 블록 암호화 알고리즘, IV는 초기화 벡터, O1은 초기화 벡터에 블록 암호화 알고리즘을 적용하여 생성된 블록, Ci는 i 번째 암호문 블록, Oi는 O1에 초기화 벡터에 논리함수를 i번 적용하여 생성된 블록, Pi는 i 번째 평문 블록, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
본 발명의 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 14a에 도시된 예와 같이 OFB 모드를 이용하여 데이터를 암호화할 수 있다.
도 14a를 참조하면, 암호화부(130)는 초기화 벡터(IV)에 AES 알고리즘을 적용하여 첫 번째 암호문 블록(암호문 블록 0)을 생성할 수 있다.
이후, 인코딩부(150)는 초기화 벡터(IV)에 논리 함수를 반복적으로 적용한 후 평문 블록 1 내지 평문 블록 4 각각과 XOR하여 암호문 블록 1 내지 암호문 블록 4를 생성할 수 있다.
구체적으로, 도 14a에 도시된 암호화 동작은 다음의 수학식 21과 같이 표현될 수 있다.
[수학식 21]
C0 = EBLOCK(IV)
O1= F(IV)
Oi= F(Oi-1) (i≥2)
Ci = Pi XOR Oi (i≥1)
여기서, Ci는 i 번째 암호문 블록, Oi는 초기화 벡터에 논리함수를 i번 적용하여 생성된 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 14a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 14b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 14b를 참조하면, 복호화부(210)는 첫 번째 암호문 블록(암호문 블록 0)에 AES 알고리즘을 적용하여 초기화 벡터(IV)를 생성할 수 있다.
이후, 디코딩부(230)는 생성된 초기화 벡터에 논리 함수를 반복적으로 적용한 후 암호문 블록 1 내지 암호문 블록 4 각각과 XOR하여 평문문 블록 1 내지 평문문 블록 4를 생성할 수 있다.
구체적으로, 도 14b에 도시된 복호화 동작은 다음의 수학식 22와 같이 표현될 수 있다.
[수학식 22]
IV= EBLOCK(C0)
O1= F(IV)
Oi= F(Oi-1) (i≥2)
Pi = Ci XOR Oi (i≥1)
여기서, Ci는 i 번째 암호문 블록, Oi는 초기화 벡터에 논리함수를 i번 적용하여 생성된 블록, Pi는 i 번째 평문 블록, IV는 초기화 벡터, EBLOCK는 블록 암호화 알고리즘, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
6. 카운터(CTR) 모드를 이용한 실시예
본 발명의 일 실시예에 따르면, 데이터 암호화 장치(100)는 도 15a에 도시된 예와 같이 카운터 모드를 이용하여 데이터를 암호화할 수 있다.
도 15a를 참조하면, 암호화부(130)는 초기 카운터 값(CTR)에 AES 알고리즘을 적용하여 암호문 블록 0을 생성할 수 있다.
이후, 인코딩부(150)는 초기 카운터 값(CTR)을 평문 블록 1과 XOR하여 암호문 블록 1을 생성할 수 있다.
마찬가지로, 인코딩부(150)는 i번째 평문 블록을 i번째 카운터 값(예컨대, 도 15a에 도시된 바와 같이, CTR+i-1)과 XOR하여 i번째 암호문 블록을 생성할 수 있다. 이때, 인코딩부(150)는 각 암호문 블록을 병렬적으로 생성할 수 있다.
구체적으로, 도 15a에 도시된 암호화 동작은 다음의 수학식 23과 같이 표현될 수 있다.
[수학식 23]
C0 = EBLOCK(CTR)
Ci = (CTR+i-1) XOR Pi (i≥1)
여기서, EBLOCK는 블록 암호화 알고리즘, CTR은 초기 카운터 값, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 15a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 15b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 15b를 참조하면, 복호화부(210)는 암호문 블록 0에 AES 알고리즘을 적용하여 초기 카운터 값을 생성할 수 있다.
이후, 인코딩부(150)는 초기 카운터 값(CTR)을 암호문 블록 1과 XOR하여 평문 블록 1을 생성할 수 있다.
마찬가지로, 인코딩부(150)는 i번째 암호문 블록을 i번째 카운터 값(예컨대, 도 15b에 도시된 바와 같이, CTR+i-1)과 XOR하여 i번째 평문 블록을 생성할 수 있다. 이때, 인코딩부(150)는 각 평문 블록을 병렬적으로 생성할 수 있다.
구체적으로, 도 15b에 도시된 복호화 동작은 다음의 수학식 24와 같이 표현될 수 있다.
[수학식 24]
CTR = EBLOCK(C0)
Pi = (CTR+i-1) XOR Ci (i≥1)
여기서, EBLOCK는 블록 암호화 알고리즘, CTR은 초기 카운터 값, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 본 발명의 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 16a에 도시된 예와 같이 카운터 모드를 이용하여 데이터를 암호화할 수 있다.
도 16a를 참조하면, 암호화부(130)는 초기 카운터 값(CTR)에 AES 알고리즘을 적용하여 암호문 블록 0을 생성할 수 있다.
이후, 인코딩부(150)는 초기 카운터 값(CTR)에 논리함수를 적용 후 평문 블록 1과 XOR하여 암호문 블록 1을 생성할 수 있다.
마찬가지로, 인코딩부(150)는 i번째 카운터 값(예컨대, 도 16a에 도시된 바와 같이, CTR+i-1)에 논리함수를 적용 후 i번째 평문 블록과 XOR하여 i번째 암호문 블록을 생성할 수 있다. 이때, 인코딩부(150)는 각 암호문 블록을 병렬적으로 생성할 수 있다.
구체적으로, 도 16a에 도시된 암호화 동작은 다음의 수학식 25와 같이 표현될 수 있다.
[수학식 25]
C0 = EBLOCK(CTR)
Ci = F(CTR+i-1) XOR Pi (i≥1)
여기서, EBLOCK는 블록 암호화 알고리즘, CTR은 초기 카운터 값, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 16a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 16b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 16b를 참조하면, 복호화부(210)는 첫 번째 암호문 블록(암호문 블록 0)에 AES 알고리즘을 적용하여 초기 카운터 값(CTR)을 생성할 수 있다.
이후, 인코딩부(150)는 초기 카운터 값(CTR)에 논리함수를 적용 후 암호문 블록 1과 XOR하여 평문 블록 1을 생성할 수 있다.
마찬가지로, 인코딩부(150)는 i번째 카운터 값(예컨대, 도 16b에 도시된 바와 같이, CTR+i-1)에 논리함수를 적용 후 i번째 암호문 블록과 XOR하여 i번째 평문 블록을 생성할 수 있다. 이때, 인코딩부(150)는 각 평문 블록을 병렬적으로 생성할 수 있다.
구체적으로, 도 16b에 도시된 복호화 동작은 다음의 수학식 26과 같이 표현될 수 있다.
[수학식 26]
CTR = EBLOCK(C0)
Pi = F(CTR+i-1) XOR Ci (i≥1)
여기서, EBLOCK는 블록 암호화 알고리즘, CTR은 초기 카운터 값, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 본 발명의 다른 실시예에 따르면, 데이터 암호화 장치(100)는 도 17a에 도시된 예와 같이 카운터 모드를 이용하여 데이터를 암호화할 수 있다.
도 17a를 참조하면, 암호화부(130)는 초기 카운터 값(CTR)에 AES 알고리즘을 적용한 후, 평문 블록 1과 XOR하여 암호문 블록 1을 생성할 수 있다.
이후, 인코딩부(150)는 i번째 카운터 값(예컨대, 도 17a에 도시된 바와 같이, CTR+i-1)에 논리함수를 적용 후 i번째 평문 블록과 XOR하여 i번째 암호문 블록을 생성할 수 있다. 이때, 인코딩부(150)는 각 암호문 블록을 병렬적으로 생성할 수 있다.
구체적으로, 도 17a에 도시된 암호화 동작은 다음의 수학식 27과 같이 표현될 수 있다.
[수학식 27]
C1 = EBLOCK(CTR) XOR P1
Ci = F(CTR+i-1) XOR Pi (i≥2)
여기서, EBLOCK는 블록 암호화 알고리즘, CTR은 초기 카운터 값, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
한편, 데이터 복호화 장치(200)는 도 17a에 도시된 예에 의해 암호화된 데이터에 대하여, 도 17b에 도시된 예와 같이 복호화 동작을 수행할 수 있다.
도 17b를 참조하면, 복호화부(210)는 암호문 블록 1에 AES 알고리즘을 적용 후 암호문 블록 1과 XOR하여 평문 블록 1을 생성할 수 있다.
이후, 인코딩부(150)는 i번째 카운터 값(예컨대, 도 17b에 도시된 바와 같이, CTR+i-1)에 논리함수를 적용 후 i번째 암호문 블록과 XOR하여 i번째 평문 블록을 생성할 수 있다. 이때, 인코딩부(150)는 각 평문 블록을 병렬적으로 생성할 수 있다.
구체적으로, 도 17b에 도시된 복호화 동작은 다음의 수학식 28과 같이 표현될 수 있다.
[수학식 28]
P1 = EBLOCK(CTR) XOR C1
Pi = F(CTR+i-1) XOR Ci (i≥2)
여기서, EBLOCK는 블록 암호화 알고리즘, CTR은 초기 카운터 값, Ci는 i 번째 암호문 블록, Pi는 i 번째 평문 블록, F는 논리함수, XOR는 블록간 XOR 연산(예컨대, 각 블록이 비트 시퀀스인 경우 비트별 XOR 연산)을 나타낸다.
도 18은 본 발명의 일 실시예에 따른 데이터 암호화 방법의 순서도이다.
도 18에 도시된 방법은 예를 들어, 도 1에 도시된 데이터 암호화 장치(100)에 의해 수행될 수 있다.
도 18을 참조하면, 데이터 암호화 장치(100)는 암호화 대상인 평문 데이터를 복수의 평문 블록으로 분할한다(1810).
이후, 데이터 암호화 장치(100)는 암호키 기반의 블록 암호화 방식을 이용하여, 분할된 복수의 평문 블록 중 일부 블록 및 초기값 중 적어도 하나를 암호화한다(1820).
이후, 데이터 암호화 장치(100)는 비 암호키 기반의 인코딩 방식을 이용하여, 분할된 복수의 평문 블록 중 블록 암호화 방식에 의해 암호화되지 않은 나머지 블록을 인코딩한다(1830).
도 19는 본 발명의 일 실시예에 따른 데이터 복호화 방법의 순서도이다.
도 19에 도시된 방법은 예를 들어, 도 2에 도시된 데이터 복호화 장치(200)에 의해 수행될 수 있다.
도 19를 참조하면, 데이터 복호화 장치(200)는 암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록 및 초기값 중 적어도 하나를 복호화한다(1910).
이후, 데이터 복호화 장치(200)는 비 암호키 기반의 디코딩 방식을 이용하여, 암호화된 데이터 중 블록 복호화 방식에 의해 복호화되지 않은 나머지 블록을 디코딩한다(1920).
한편, 소정의 실시예는 본 명세서에서 기술한 과정을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 이러한 컴퓨터 판독 가능 저장 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 그 컴퓨터 판독 가능 저장 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들일 수 있다. 컴퓨터 판독 가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
[부호의 설명]
100: 데이터 암호화 장치
110: 분할부
130: 암호화부
150: 인코딩부
170: 초기값 생성부
200: 데이터 복호화 장치
210: 복호화부
230: 디코딩부
250: 초기값 생성부

Claims (34)

  1. 데이터를 복수의 평문 블록으로 분할하는 분할부;
    암호키 기반의 블록 암호화 방식을 이용하여, 상기 복수의 평문 블록 중 일부 블록 및 상기 데이터의 암호화를 위한 초기값 중 적어도 하나를 암호화하는 암호화부; 및
    비 암호키 기반의 인코딩 방식을 이용하여, 상기 복수의 평문 블록 중 상기 소정의블록 암호화 방식에 의해 암호화 되지 않은 나머지 블록을 인코딩하는 인코딩부를 포함하는 데이터 암호화 장치.
  2. 청구항 1에 있어서,
    상기 블록 암호화 방식은, 대칭키 또는 비대칭키를 이용한 암호화 방식을 포함하는 데이터 암호화 장치.
  3. 청구항 1에 있어서,
    상기 블록 암호화 방식은, 화이트박스 기반 암호화 방식을 포함하는 데이터 암호화 장치.
  4. 청구항 1에 있어서,
    상기 인코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 인코딩 방식을 포함하는 데이터 암호화 장치.
  5. 청구항 1에 있어서,
    상기 초기값은 초기화 벡터 또는 카운터 값을 포함하는 데이터 암호화 장치.
  6. 청구항 5에 있어서,
    상기 암호화부는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 일부 블록을 암호화하는 데이터 암호화 장치.
  7. 청구항 5에 있어서,
    상기 인코딩부는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 나머지 블록을 인코딩하는 데이터 암호화 장치.
  8. 청구항 1에 있어서,
    상기 인코딩부는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록을 이용하여 인코딩하는 데이터 암호화 장치.
  9. 청구항 1에 있어서,
    상기 인코딩부는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록 및 상기 이전에 생성된 암호문 블록 생성에 이용된 평문 블록을 이용하여 인코딩하는 데이터 암호화 장치.
  10. 암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록을 복호화하는 복호화부; 및
    비 암호키 기반의 디코딩 방식을 이용하여, 상기 암호화된 데이터 중 상기 일부 블록을 제외한 나머지 블록을 디코딩하는 디코딩부를 포함하는 데이터 복호화 장치.
  11. 청구항 10에 있어서,
    상기 블록 복호화 방식은, 대칭키 또는 비대칭키를 이용한 복호화 방식을 포함하는 데이터 복호화 장치.
  12. 청구항 10에 있어서,
    상기 블록 복호화 방식은, 화이트박스 기반 복호화 방식을 포함하는 데이터 복호화 장치.
  13. 청구항 10에 있어서,
    상기 디코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 디코딩 방식을 포함하는 데이터 복호화 장치.
  14. 청구항 10에 있어서,
    상기 디코딩부는, 상기 암호화된 데이터 생성에 사용된 초기화 벡터 또는 카운터 값을 이용하여, 상기 나머지 블록을 디코딩하는 데이터 복호화 장치.
  15. 청구항 10에 있어서,
    상기 디코딩부는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩하는 데이터 복호화 장치.
  16. 청구항 10에 있어서,
    상기 디코딩부는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 및 상기 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩하는 데이터 복호화 장치.
  17. 데이터를 복수의 평문 블록으로 분할하는 단계;
    암호키 기반의 블록 암호화 방식을 이용하여, 상기 복수의 평문 블록 중 일부 블록 및 상기 데이터의 암호화를 위한 초기값 중 적어도 하나를 암호화하는 단계; 및
    비 암호키 기반의 인코딩 방식을 이용하여, 상기 복수의 평문 블록 중 상기 일부 블록을 제외한 나머지 블록을 인코딩하는 단계를 포함하는 데이터 암호화 방법.
  18. 청구항 17에 있어서,
    상기 블록 암호화 방식은, 대칭키 또는 비대칭키를 이용한 암호화 방식을 포함하는 데이터 암호화 방법.
  19. 청구항 17에 있어서,
    상기 블록 암호화 방식은, 화이트박스 기반 암호화 방식을 포함하는 데이터 암호화 방법.
  20. 청구항 17에 있어서,
    상기 인코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 인코딩 방식을 포함하는 데이터 암호화 방법.
  21. 청구항 17에 있어서,
    상기 초기값은 초기화 벡터 또는 카운터 값을 포함하는 데이터 암호화 방법.
  22. 청구항 21에 있어서,
    상기 암호화하는 단계는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 일부 블록을 암호화하는 데이터 암호화 방법.
  23. 청구항 21에 있어서,
    상기 인코딩하는 단계는, 상기 초기화 벡터 또는 상기 카운터 값을 이용하여 상기 나머지 블록을 인코딩하는 데이터 암호화 방법.
  24. 청구항 17에 있어서,
    상기 인코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록을 이용하여 인코딩하는 데이터 암호화 방법.
  25. 청구항 17에 있어서,
    상기 인코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 인코딩하되, 이전에 생성된 암호문 블록 및 상기 이전에 생성된 암호문 블록 생성에 이용된 평문 블록을 이용하여 인코딩하는 데이터 암호화 방법.
  26. 암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록을 복호화 단계; 및
    비 암호키 기반의 디코딩 방식을 이용하여, 상기 암호화된 데이터 중 중 상기 일부 블록을 제외한 나머지 블록을 디코딩하는 단계를 포함하는 데이터 복호화 방법.
  27. 청구항 26에 있어서,
    상기 블록 복호화 방식은, 대칭키 또는 비대칭키를 이용한 복호화 방식을 포함하는 데이터 복호화 방법.
  28. 청구항 26에 있어서,
    상기 블록 복호화 방식은, 화이트박스 기반 복호화 방식을 포함하는 데이터 복호화 방법.
  29. 청구항 26에 있어서,
    상기 디코딩 방식은, 논리 연산, 일방향 함수(one-way function), 일방향 치환(one-way permutaion) 및 논리함수 중 적어도 하나를 이용한 디코딩 방식을 포함하는 데이터 복호화 방법.
  30. 청구항 26에 있어서,
    상기 디코딩하는 단계는, 상기 암호화된 데이터 생성에 사용된 초기화 벡터 또는 카운터 값을 이용하여, 상기 나머지 블록을 디코딩하는 데이터 복호화 방법.
  31. 청구항 26에 있어서,
    상기 디코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩하는 데이터 복호화 방법.
  32. 청구항 26에 있어서,
    상기 디코딩하는 단계는, 상기 나머지 블록 각각을 순차적으로 디코딩하되, 이전에 생성된 평문 블록 및 상기 이전에 생성된 평문 블록 생성에 이용된 암호문 블록을 이용하여 디코딩하는 데이터 복호화 방법.
  33. 하드웨어와 결합되어,
    데이터를 복수의 평문 블록으로 분할하는 단계;
    암호키 기반의 블록 암호화 방식을 이용하여, 상기 복수의 평문 블록 중 일부 블록 및 상기 데이터의 암호화를 위한 초기값 중 적어도 하나를 암호화하는 단계; 및
    비 암호키 기반의 인코딩 방식을 이용하여, 상기 복수의 평문 블록 중 상기 일부 블록을 제외한 나머지 블록을 인코딩하는 단계를 실행시키기 위하여 기록매체에 저장된 컴퓨터 프로그램.
  34. 하드웨어와 결합되어,
    암호키 기반의 블록 복호화 방식을 이용하여, 암호화된 데이터 중 일부 블록을 복호화 단계; 및
    비 암호키 기반의 디코딩 방식을 이용하여, 상기 암호화된 데이터 중 중 상기 일부 블록을 제외한 나머지 블록을 디코딩하는 단계를 실행시키기 위하여 기록매체에 저장된 컴퓨터 프로그램.
PCT/KR2015/006730 2015-05-19 2015-06-30 데이터 암호화 장치 및 방법과 및 데이터 복호화 장치 및 방법 WO2016186241A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017560305A JP6665204B2 (ja) 2015-05-19 2015-06-30 データ暗号化装置及び方法、並びにデータ復号化装置及び方法
CN201580080180.1A CN107637010B (zh) 2015-05-19 2015-06-30 数据加密装置及方法和数据解密装置及方法
US15/575,533 US20180139041A1 (en) 2015-05-19 2015-06-30 Data encryption apparatus and method, and data decryption apparatus and method
EP15892654.3A EP3300294B1 (en) 2015-05-19 2015-06-30 Data encryption apparatus and method, and data decryption apparatus and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150069666A KR101847492B1 (ko) 2015-05-19 2015-05-19 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법
KR10-2015-0069666 2015-05-19

Publications (1)

Publication Number Publication Date
WO2016186241A1 true WO2016186241A1 (ko) 2016-11-24

Family

ID=57320448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/006730 WO2016186241A1 (ko) 2015-05-19 2015-06-30 데이터 암호화 장치 및 방법과 및 데이터 복호화 장치 및 방법

Country Status (6)

Country Link
US (1) US20180139041A1 (ko)
EP (1) EP3300294B1 (ko)
JP (1) JP6665204B2 (ko)
KR (1) KR101847492B1 (ko)
CN (1) CN107637010B (ko)
WO (1) WO2016186241A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200046406A (ko) * 2018-10-24 2020-05-07 동서대학교 산학협력단 차량용 블랙박스 실시간 영상 위변조 방지방법
US11196447B2 (en) 2018-11-16 2021-12-07 Siemens Aktiengesellschaft Computer-implemented method for error-correction-encoding and encrypting of a file

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10492184B2 (en) * 2016-12-09 2019-11-26 Samsung Electronics Co., Ltd. Multiplexing control information in a physical uplink data channel
KR101949579B1 (ko) * 2017-02-22 2019-02-19 인하대학교 산학협력단 바이오매트릭스를 이용하여 키를 생성하는 방법 및 시스템
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata
CN108616351B (zh) * 2018-03-26 2020-09-18 山东大学 一种全动态加密解密方法及加密解密装置
CN110401527B (zh) * 2018-04-25 2022-03-08 腾讯科技(深圳)有限公司 数据加密、解密方法、装置以及存储介质
CN108848073B (zh) * 2018-05-31 2021-04-13 唐山智能电子有限公司 对实时数据采集系统的数据进行加密解密的方法以及系统
CN110289949A (zh) * 2019-05-23 2019-09-27 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 密钥管理方法及装置
CN110162989A (zh) * 2019-05-28 2019-08-23 上海海洋大学 基于cbc模式的多类型文件加密共享与访问控制方法
CN110601814B (zh) * 2019-09-24 2021-08-27 深圳前海微众银行股份有限公司 联邦学习数据加密方法、装置、设备及可读存储介质
KR102631694B1 (ko) * 2020-01-02 2024-01-31 재단법인 대구경북과학기술원 데이터에 대한 암/복호화 및 채널코딩을 수행하는 방법 및 시스템
CN111339547B (zh) * 2020-03-27 2024-03-19 苏州链原信息科技有限公司 用于生成数据标签的方法、电子设备及计算机存储介质
CN113079155B (zh) * 2021-03-29 2022-12-06 重庆富民银行股份有限公司 基于混合密码的文件加密处理方法
CN113014604A (zh) * 2021-04-12 2021-06-22 北京字节跳动网络技术有限公司 一种数据处理方法、装置、设备及介质、程序产品
CN113660620B (zh) * 2021-10-20 2022-01-21 北京卓建智菡科技有限公司 一种数据防伪加密方法、装置、计算机设备及存储介质
CN117527409A (zh) * 2023-12-04 2024-02-06 北京弗莱特智能软件开发有限公司 数据加密的方法、个人网关设备端及数据加密系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080085003A1 (en) * 2006-10-05 2008-04-10 Nds Limited Key production system
US20120002807A1 (en) * 2009-03-10 2012-01-05 Irdeto Coporate B.V. White-box cryptographic system with input dependent encodings
US20120201374A1 (en) * 2008-09-02 2012-08-09 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems
US20120281832A1 (en) * 2010-04-01 2012-11-08 University Of Mississippi Secure wireless communication transceiver
US20150124961A1 (en) * 2013-11-06 2015-05-07 Certicom Corp. Public Key Encryption Algorithms for Hard Lock File Encryption

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63287882A (ja) * 1987-05-20 1988-11-24 株式会社日立製作所 暗号装置
JPH0488736A (ja) * 1990-07-31 1992-03-23 Matsushita Electric Ind Co Ltd データ伝送方式
JPH10303879A (ja) * 1997-04-24 1998-11-13 Fuji Xerox Co Ltd 暗号化方法
JP2000252974A (ja) * 1999-03-03 2000-09-14 Kobe Steel Ltd ディジタル情報暗号化装置,及びディジタル情報再生装置
US7167560B2 (en) * 2002-08-08 2007-01-23 Matsushita Electric Industrial Co., Ltd. Partial encryption of stream-formatted media
JP2007158967A (ja) * 2005-12-07 2007-06-21 Ntt Data Corp 情報処理装置、耐タンパーデバイス、暗号処理方法及びコンピュータプログラム
US8121284B2 (en) * 2006-03-14 2012-02-21 Nec Corporation Information processing system, information processing method, and information processing program
EP2092684A2 (en) * 2006-11-17 2009-08-26 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
CN101578813A (zh) * 2007-01-11 2009-11-11 皇家飞利浦电子股份有限公司 跟踪实现的拷贝
KR101527329B1 (ko) 2014-09-12 2015-06-09 삼성에스디에스 주식회사 데이터 암호화 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080085003A1 (en) * 2006-10-05 2008-04-10 Nds Limited Key production system
US20120201374A1 (en) * 2008-09-02 2012-08-09 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems
US20120002807A1 (en) * 2009-03-10 2012-01-05 Irdeto Coporate B.V. White-box cryptographic system with input dependent encodings
US20120281832A1 (en) * 2010-04-01 2012-11-08 University Of Mississippi Secure wireless communication transceiver
US20150124961A1 (en) * 2013-11-06 2015-05-07 Certicom Corp. Public Key Encryption Algorithms for Hard Lock File Encryption

Non-Patent Citations (1)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200046406A (ko) * 2018-10-24 2020-05-07 동서대학교 산학협력단 차량용 블랙박스 실시간 영상 위변조 방지방법
KR102168488B1 (ko) 2018-10-24 2020-10-21 동서대학교 산학협력단 차량용 블랙박스 실시간 영상 위변조 방지방법
US11196447B2 (en) 2018-11-16 2021-12-07 Siemens Aktiengesellschaft Computer-implemented method for error-correction-encoding and encrypting of a file

Also Published As

Publication number Publication date
JP6665204B2 (ja) 2020-03-13
CN107637010B (zh) 2021-05-18
EP3300294A1 (en) 2018-03-28
KR101847492B1 (ko) 2018-04-10
CN107637010A (zh) 2018-01-26
KR20160136023A (ko) 2016-11-29
EP3300294A4 (en) 2018-06-20
JP2018515815A (ja) 2018-06-14
EP3300294B1 (en) 2023-06-07
US20180139041A1 (en) 2018-05-17

Similar Documents

Publication Publication Date Title
WO2016186241A1 (ko) 데이터 암호화 장치 및 방법과 및 데이터 복호화 장치 및 방법
WO2014035146A2 (ko) 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
WO2019117694A1 (ko) 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
WO2015061941A1 (zh) 一种密钥配置方法和装置
CN105723648A (zh) 一种密钥配置方法、系统和装置
WO2011079753A1 (zh) 认证方法、认证交易系统和认证装置
WO2017035695A1 (zh) 信息传输方法及移动设备
CN107113161A (zh) 飞行数据交互、传送、接收方法、系统及存储器、飞行器
WO2016089009A1 (en) Method and cloud server for managing device
WO2018028135A1 (zh) 一种下行数据的信息反馈方法及相关设备
WO2015027485A1 (zh) 远程变更签约方法及其装置
WO2016017970A1 (en) Method and device for encrypting or decrypting content
WO2015139232A1 (zh) 一种应用的推荐方法、系统及服务器
WO2011147116A1 (zh) 一种复合型usub设备及其实现方法
WO2013070022A1 (en) Apparatus and method for transmitting and receiving a quasi-cyclic low density parity check code in a multimedia communication system
WO2018199443A1 (en) Apparatus and method for performing operation being secure against side channel attack
WO2015009105A1 (en) Apparatus and method for sending/receiving packet in multimedia communication system
WO2013077670A1 (ko) 스케일러빌리티 및 뷰 정보를 제공하는 스트리밍 서비스를 위한 방법 및 장치
WO2019083258A1 (en) DATA ENCRYPTION METHOD AND ELECTRONIC APPARATUS EXECUTING A DATA ENCRYPTION METHOD
WO2019216739A1 (en) Security protection method and apparatus in wireless communication system
WO2013110826A1 (es) Encriptación de datos mediante algoritmo de encriptación de parámetros externos (external arguments encriptation algorythm)
WO2017096596A1 (zh) 无人机认证方法,安全通信方法及对应系统
WO2022158686A1 (ko) 암호화된 정보에 기초하여, 인공지능 모델을 이용한 추론을 수행하는 전자 장치 및 그 동작 방법
WO2020105892A1 (ko) 디바이스가 디지털 키를 공유하는 방법
WO2017080409A1 (zh) 一种数字媒体内容播放转移的方法以及相关设备

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017560305

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15575533

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2015892654

Country of ref document: EP