KR20080044150A - Apparatus and method for mapping out compressed function of a hash mode of operation for block cipher - Google Patents

Apparatus and method for mapping out compressed function of a hash mode of operation for block cipher Download PDF

Info

Publication number
KR20080044150A
KR20080044150A KR1020070081302A KR20070081302A KR20080044150A KR 20080044150 A KR20080044150 A KR 20080044150A KR 1020070081302 A KR1020070081302 A KR 1020070081302A KR 20070081302 A KR20070081302 A KR 20070081302A KR 20080044150 A KR20080044150 A KR 20080044150A
Authority
KR
South Korea
Prior art keywords
block
bits
bit
length
key
Prior art date
Application number
KR1020070081302A
Other languages
Korean (ko)
Inventor
한대완
권대성
염용진
이주영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20080044150A publication Critical patent/KR20080044150A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

An apparatus and a method for mapping out a compression function of a hash mode of operation for a block cipher are provided to be used in a light weight hash function in case that secrecy and integrity are concurrently necessary in a light weight environment like RFID. An apparatus for mapping out a compression function of a hash mode of operation for a block cipher(10) includes the first block ciphering unit, the second block ciphering unit, the first replacement unit, the third block ciphering unit, the fourth block ciphering unit and the second replacement unit. The first block ciphering unit performs block ciphering for an upper bit Hi-1 of Mi and an arbitrary n bit constant c by a key having a 2n length wherein the Mi is the i-th plain text message resulted from division of 2n bit plain text message by n bit. The second block ciphering unit performs block ciphering for Gi-1 by a key having a 2n length wherein the Gi-1 is one among remaining plain text messages resulted from division of Mi by n bit. The first replacement unit replaces a result value having n length, outputted by the first block ciphering unit, with an upper n/2 bit and a lower n/2 bit of the result value, outputted by the second block ciphering unit, and obtains two n bit values. The third block ciphering unit ciphers one n bit value, replaced by the first replacement unit, by a key having a 2n length. The fourth block ciphering unit performs block ciphering for the other n bit value, replaced by the first replacement unit, by a key having a 2n length. The second replacement unit replaces a result value, outputted by the third block ciphering unit, with a result value, outputted by the fourth block ciphering unit.

Description

블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법{Apparatus and method for mapping out compressed function of a hash mode of operation for block cipher}Apparatus and method for mapping out compressed function of a hash mode of operation for block cipher}

본 발명은 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법에 관한 것으로서, 특히, RFID(Radio Frequency IDentification) 등의 경량 환경에서 동작 가능한 해쉬함수 알고리즘의 제작에 관한 것으로, 더 자세히는 블록암호를 기반으로 하는 해쉬 운영모드(hash mode of operation ; NHM)의 압축함수 설계 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for designing a compression function in a block cipher hash operating mode. More particularly, the present invention relates to the fabrication of a hash function algorithm that can operate in a lightweight environment such as RFID (Radio Frequency IDentification). An apparatus and method for designing a compression function of a hash mode of operation (NHM) are described.

일반적으로 해쉬함수란 임의의 길이를 가지는 메시지를 고정된 길이 n을 가지는 값으로 축약하는 함수 H: {0, 1}* → {0, 1}n을 말하며, 암호학에서 사용되는 해쉬함수는 다음의 1 내지 3의 1차 역상 회피성, 2차 역상 회피성 및 충돌 회피성의 성질을 만족해야 하며, 각각의 성질은 다음과 같이 요약된다. In general, a hash function is a function that abbreviates a message of arbitrary length to a value of fixed length n: {0, 1} * → {0, 1} n . The hash function used in cryptography is The properties of 1 to 3 primary reversed phase avoidance, secondary reversed phase avoidance and collision avoidance must be satisfied, each of which is summarized as follows.

1. 1차 역상 회피성: 주어진 해쉬값으로 축약되는 임의의 메시지를 찾는 것이 계산적으로 불가능해야 한다. 즉, 주어진 y에 대하여 H(m) = y가 되는 m을 찾는 복잡도가 주어진 안전성 이상이어야 한다.First order inverse avoidance: It must be computationally impossible to find any message abbreviated to a given hash value. That is, the complexity of finding m such that H (m) = y for a given y must be greater than or equal to the given safety.

2. 2차 역상 회피성: 특정한 메시지의 해쉬값과 같은 값으로 축약되는 다른 메시지를 찾는 것이 계산적으로 불가능해야 한다. 즉, 주어진 m과 H(m)에 대하여 m≠m'이고 H(m)=H(m')이 되는 m'을 찾는 복잡도가 주어진 안전성 이상이어야 한다.2. Secondary reverse phase avoidance: It must be computationally impossible to find another message that is abbreviated to the same value as the hash value of a particular message. That is, for a given m and H (m), the complexity of finding m 'where m ≠ m' and H (m) = H (m ') must be greater than or equal to the given safety.

3. 충돌 회피성: 해쉬값이 같은 임의의 서로 다른 두 메시지 m, m'을 찾는 것이 계산적으로 불가능해야 한다. 즉, H(m)=H(m')이 되는 임의의 메시지 쌍 m, m'(m≠m')을 찾는 복잡도가 주어진 안전성 이상이어야 한다.3. Collision avoidance: It must be computationally impossible to find any two different messages m, m 'with the same hash value. That is, the complexity of finding any message pair m, m '(m ≠ m') where H (m) = H (m ') must be greater than or equal to the given safety.

상기한 조건들은 해쉬함수의 초기값이 사전에 모두 고정되었다는 전제하에 만족해야 하는 성질들이다. 이보다 더 강한 조건으로 각각의 해쉬함수의 초기값도 공격자가 선택할 수 있다는 가정(Free-start)을 할 수도 있는데, 이 경우 해쉬함수가 만족해야 하는 성질들은 다음과 같다. 여기서, H(h,m)은 h를 초기값으로 하는 해쉬함수 H의 m에 대한 해쉬값을 의미한다. The above conditions are properties that must be satisfied on the assumption that the initial value of the hash function is fixed beforehand. Under stronger conditions, the initial value of each hash function can be assumed to be free-started by the attacker. In this case, the properties that the hash function must satisfy are as follows. Here, H (h, m) means a hash value for m of the hash function H having h as an initial value.

1. Free-start 1차 역상 회피성: 주어진 y에 대하여 H(h,m) = y가 되는 초기값 h와 m을 찾는 복잡도가 주어진 안전성 이상이어야 한다.Free-start first order reversed-phase avoidance: The complexity of finding the initial values h and m where H (h, m) = y for a given y must be greater than or equal to the given safety.

2. Free-start 2차 역상 회피성: 주어진 m과 H(h,m)에 대하여 m≠m'이고 H(h,m)=H(h',m')이 되는 초기값 h'과 m'을 찾는 복잡도가 주어진 안전성 이상이어야 한다.2. Free-start 2nd order reverse phase avoidance: Initial values h 'and m where m ≠ m' and H (h, m) = H (h ', m') for a given m and H (h, m) The complexity of finding 'should be more than a given safety.

3. Free-start 충돌 회피성: H(h, m)=H(h', m')이 되는 임의의 초기값 h, h'와 메시지 m, m'(m≠m')을 찾는 복잡도가 주어진 안전성 이상이어야 한다.Free-start collision avoidance: The complexity of finding any initial values h, h 'and messages m, m' (m ≠ m ') where H (h, m) = H (h', m '). It must be above the safety given.

일반적으로 해쉬함수는 머클(Merkle)과 담가드(Damgard)에 의하여 제안된 MD(Merkle-Damgard) 구성 방법을 사용하여 설계되며, 이를 위해서는 다음의 1 내지 3과 같이 각각 사전에 압축함수와 메시지 분할 및 초기값이 필요하다. In general, hash functions are designed using the Merkle-Damgard (MD) method proposed by Merkle and Damgard. And an initial value are required.

1. 압축함수: n'비트 메시지를 n비트로 변환하여 주는 함수 1. Compression Function: A function that converts n'bit messages into nbits.

f:{0, 1}n× {0, 1}n'→{0, 1}n f: {0, 1} n × {0, 1} n ' → {0, 1} n

2. 메시지 분할 : 입력 메시지를 n' 길이를 갖는 부분 메시지로 나누는 과정. 즉, M = M1∥ㆍㆍㆍㆍㆍㆍ∥Mk, Mi ∈ {0,1}n'.2. Message segmentation: The process of dividing an input message into partial messages of length n '. That is, M = M 1 ∥ ····· ∥M k , M i ∈ {0,1} n ' .

3. 초기값: n 길이를 갖는 고정된 값 h0 ∈ {0, 1}n.3. Initial value: Fixed value h 0 ∈ {0, 1} n with length n .

이와 같은 사전 설정 후 실제 해쉬값(hi) 및 해쉬함수(H(m))는 다음과 같이 계산되며 이는 다음의 수학식 1과 같다. After such a preset, the actual hash value h i and the hash function H (m) are calculated as follows.

hi = f(hi -1, mi) for i = 1,ㆍㆍㆍㆍㆍㆍ,k.h i = f (h i -1 , m i ) for i = 1, ...

H(m) = hk.H (m) = h k .

해쉬함수는 압축함수의 설계 방법에 따라 전용 해쉬함수와 블록암호 기반 해쉬함수로 나뉜다. The hash function is divided into a dedicated hash function and a block cipher based hash function according to the design method of the compression function.

전용 해쉬함수는 90년대 초반에 당시 사용되던 블록암호들이 소프트웨어 상에서 효율적이지 않은 관계로 소프트웨어 상에서 효율적인 해쉬함수의 필요성에 따라 개발되기 시작하였다. Dedicated hash functions began to be developed in the early 90's due to the necessity of efficient hash functions in software since the block ciphers used at that time were not efficient in software.

블록암호 기반 해쉬함수는 해쉬함수의 압축함수로 기존에 설계된 블록암호를 사용하는 방식을 말하는데, 최근 전용 해쉬함수들의 안전성에 잇따라 결함이 발견되는 한편 블록암호의 소프트웨어 효율성이 예전보다 향상됨에 따라 주목을 받고 있는 추세이다. The block cipher-based hash function refers to a method of using a previously designed block cipher as a compression function of the hash function. As a result, defects are found in accordance with the safety of the dedicated hash functions recently, and the software efficiency of the block cipher is more noticeable than before. The trend is getting.

안전성과 별개로 블록암호 기반 해쉬함수의 설계 방식은 정보보호 제품들의 하드웨어 구현시, 블록암호가 이미 탑재되어 있는 경우 추가적인 자원을 최소로 하면서 해쉬함수를 구현할 수 있다는 장점을 가지고 있다. 이러한 장점은 RFID를 비롯한 경량 환경에서 블록암호와 해쉬함수를 동시에 운영해야 하는 환경에서 더욱 두드러질 수 있다. Apart from safety, the design method of block cipher-based hash function has the advantage of implementing the hash function with minimum additional resources when the block cipher is already installed in hardware implementation of information security products. This advantage is more prominent in environments where block ciphers and hash functions must be operated simultaneously in lightweight environments such as RFID.

블록암호 기반 해쉬함수의 설계는, 이전 메시지 블록의 압축함수 결과값과 현재 메시지 블록을 블록암호에 적절한 방식으로 입력하여 새로운 압축함수의 출력값을 얻어내는 방식의 설계를 의미한다. 이는 블록암호의 특정한 운영모드를 설계하는 것으로 볼 수 있으며, 따라서, 이후로는 블록암호 기반 해쉬함수를 해쉬 운영모드와 동일한 개념으로 간주하여 설명하고자 한다. The design of a block cipher-based hash function means a design of a method of obtaining the output value of a new compression function by inputting a compression function result value of a previous message block and a current message block in an appropriate manner in a block password. This can be regarded as designing a specific operation mode of the block cipher, and therefore, the following description will be made by considering the block cipher based hash function as the same concept as the hash operation mode.

해쉬 운영모드는 해쉬함수의 출력 길이에 따라 블록암호의 출력 길이와 동일한 출력 길이를 가지는 단일 블록 길이(SBL : single block length) 운영모드와, 블록암호 출력 길이의 두 배의 출력 길이를 가지는 이중 블록 길이(DBL : double block length) 운영모드로 나뉜다. 블록암호의 출력 길이가 n이라 할 때 각 모드의 기본적인 안전성은 다음의 표 1과 같은 수치 이하가 된다.The hash operation mode is a single block length (SBL) operation mode having an output length equal to the output length of the block cipher according to the output length of the hash function, and a double block having an output length twice the output length of the block cipher. DBL (double block length) is divided into operation mode. When the output length of the block cipher is n, the basic safety of each mode is equal to or less than the value shown in Table 1 below.

모드 종류 Mode type 1차 역상 공격1st reverse attack 1차 역상 공격1st reverse attack 충돌쌍 공격Crash Pair Attack SBLSBL 2n 2 n 2n 2 n 2n/2 2 n / 2 DBLDBL 22n 2 2n 22n 2 2n 2n 2 n

한편, 해쉬 운영모드의 효율성을 가늠하는 잣대로 해쉬율(Hash Rate)라는 개념이 있다. 이를 직관적으로 설명하면, 블록암호 입력 길이와 동일한 길이를 가지는 메시지를 해쉬함수로 압축하는데 필요한 블록암호 연산의 횟수를 의미하는데, 블록암호의 입출력 길이를 m, 해쉬함수의 압축함수에 입력되는 한 블록 메시지의 길이를 n, 압축함수에 사용되는 블록암호의 개수를 k라고 하면 HR은 n/mk가 된다.Meanwhile, there is a concept of hash rate as a measure of efficiency of hash operation mode. Intuitively, this means the number of block cipher operations required to compress a message having the same length as the block cipher input length into a hash function. The length of the input / output length of the block cipher is m and a block inputted into the hash function compression function. If the length of the message is n and the number of block ciphers used in the compression function is k, HR is n / mk.

해쉬 운영모드는 압축함수로 사용될 블록암호의 키와 입출력 크기에 따라 설계 방향성이 크게 달라진다. 입출력 크기가 n, 키 크기가 k인 블록암호를 (n, k) 블록암호라 부를 때, 기존에 제안되었던 DBL 운영모드들은 대부분 (n, n) 또는 (n, 2n) 블록암호에 기반하여 설계되었다. The hash operation mode varies greatly in design direction depending on the key and I / O size of the block cipher to be used as the compression function. When a block cipher with an input / output size of n and a key size of k is called a (n, k) block cipher, most of the proposed DBL operating modes are designed based on (n, n) or (n, 2n) block ciphers. It became.

그러나, 상기한 바와 같이 RFID 등과 같은 경량 환경에서 기밀성과 무결성이 동시에 필요한 경우 암호화 함수와 해쉬함수를 독립적으로 구현하는 것은 하드웨어 자원의 한계상 어려운 점이 많은 문제점이 있다. However, as described above, when confidentiality and integrity are simultaneously required in a lightweight environment such as RFID, it is difficult to independently implement an encryption function and a hash function due to limitations of hardware resources.

이러한 경우 해쉬함수를 독립적으로 구현하지 않고 기밀성 확보를 위해 구현되는 블록암호를 이용하여 설계된 해쉬 운영모드를 해쉬함수처럼 사용할 필요성이 있다. In this case, it is necessary to use the hash operation mode designed as a hash function using a block cipher implemented to secure confidentiality without implementing the hash function independently.

이와 같은 문제점을 극복하고 그 필요성을 충족시키기 위하여 S.Hirose의 논문인 "Provably secure double-block-length hash functions in a black-box model"(LNCS, Vol.,No. 3506, 330-342PP., 2006)에 그 문제점 해결방법에 대하여 개시하고 있다. In order to overcome this problem and meet the need, S. Hirose's paper, "Provably secure double-block-length hash functions in a black-box model" (LNCS, Vol., No. 3506, 330-342PP., 2006) discloses a solution to the problem.

상기 논문에서는 효율성이 좋은 DBL 해쉬함수를 새롭게 제안하고, 그 안전성을 블랙 박스 모델 하에서 증명하는 과정에 대하여 개시하고 있다.In this paper, a new efficient DBL hash function is proposed and the process of proving its safety under the black box model is disclosed.

상기한 바와 같이 해쉬 운영모드는 블록암호의 종류와 구성 방법에 따라 다양한 설계가 가능하다. 그런데, RFID 등과 같은 열악한 환경에서는 64비트 블록암호가 사용될 가능성이 많다. 이러한 블록암호를 압축함수로 사용하는 SBL 운영모드의 경우 충돌쌍 공격에 대한 안전성이 232이 되어 안전성에 문제가 된다. 따라서, 본 발명은 DBL 해쉬 운영모드로 설계가 되었다. 또한, 64비트 입출력을 갖는 블록암호의 키 크기가 64비트라면 전수 조사 공격에 의하여 안전하지 않으므로 키 크기는 128비트가 되는 것이 적절하다. 따라서, RFID용 해쉬 운영모드는 (n,2n) 블록암호에 기반한 운영모드로 설계가 되는 것이 적절하다. As described above, the hash operation mode may be variously designed according to the type and configuration method of the block cipher. However, 64-bit block ciphers are likely to be used in harsh environments such as RFID. In the case of the SBL operation mode using the block cipher as a compression function, the safety against collision pair attack becomes 2 32, which is a safety problem. Therefore, the present invention is designed in the DBL hash operation mode. In addition, if the key size of a block cipher having a 64-bit input / output is 64 bits, it is appropriate that the key size is 128 bits because it is not secured by a full investigation attack. Therefore, the hash operation mode for RFID is appropriately designed to be an operation mode based on the (n, 2n) block cipher.

기존에도 (n,2n) 블록암호에 기반한 DBL 해쉬 운영모드들이 제안된 바 있다. 그러나, 앞서 제안된 방식들은 해쉬함수가 만족해야 될 조건들 중 Free-start 조건을 고려하지 않은 채 설계되었다. Free-start 조건들은 해쉬함수의 운용 환경에 따라 안전성 분석에서 고려해야 되는 경우도 있고 그렇지 않은 경우들도 있게 된다. 그런데, 해쉬함수의 안전성을 증명하는 경우 free-start 경우들의 안전성을 증명하면 자연스럽게 고정된 초기값을 가진 경우들의 안전성이 증명되는 경우가 많아 이론적인 측면에서는 의미가 있는 개념들이다. 또한, RFID에 사용되는 해쉬함수의 경우 해쉬함수가 활용되는 프로토콜에 따라 초기값이 다양하게 선택되는 상황들이 발생하게 된다. 이 경우 free-start 공격에 대한 안전성을 고려하는 것이 고정된 초기값을 가정한 경우보다 더 타당하게 된다. 따라서, NHM은 Free-start 안전성 조건을 만족하게 설계되었다. Previously, DBL hash operation modes based on (n, 2n) block ciphers have been proposed. However, the proposed schemes are designed without considering the free-start condition among the conditions to be satisfied by the hash function. Free-start conditions may or may not be considered in the safety analysis depending on the hash function operating environment. However, in the case of proving the safety of the hash function, if the safety of the free-start cases is proved, the safety of the cases with naturally fixed initial values is often proved. In addition, in the case of the hash function used for RFID, situations in which the initial value is variously selected according to the protocol in which the hash function is utilized occur. In this case, it is more reasonable to consider the safety against free-start attacks than to assume a fixed initial value. Therefore, NHM is designed to meet free-start safety conditions.

그러나, 상기 논문의 블록암호에 기반한 DBL 해쉬함수는 Free stasrt 충돌쌍 공격에 대한 안전성 여부를 확보할 수 없는 문제점이 있다. However, the DBL hash function based on the block cipher of the paper has a problem that it is not possible to secure the safety against free stasrt collision pair attack.

본 발명은 전술한 문제점을 해결하고 전술한 필요성을 충족시키기 위하여 제안된 것으로서 그 목적은 free-start 충돌쌍 공격에 2n의 안전성을 갖는 (n, 2n) 블록암호 기반의 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법을 제공하는 데에 있는 것이다. The present invention has been proposed to solve the above-mentioned problems and to meet the above-mentioned necessity. The object of the present invention is to provide a (n, 2n) block cipher based block cipher hash operation mode with 2 n safety against free-start collision pair attack. It is to provide a compression function design apparatus and method.

본 발명의 블록암호 해쉬 운영모드의 압축함수 설계 장치는, 평문 메시지 M의 메시지 길이를 2n비트의 배수로 패딩한 후 이를 M'이라 놓고, M'의 길이를 이를 아래와 같이 k개의 2n비트 블록 M1,..., Mk로 나누어 블록암호화하는 해쉬 운영모드의 압축함수 설계 장치로서, 2n 비트의 평문 메시지를 n비트씩 나눈 각각의 평문 메시지의 i번 째 평문 메시지인 Mi의 상위 비트인 Hi -1과 n비트의 임의의 상수인 c를 2n 길이의 키로 블록암호화하는 제1 블록암호화수단과, Mi를 n비트씩 나눈 각각의 평문 중 나머지 하나인 Gi -1을 입력으로 받아 2n 길이의 키로 블록암호화하는 제2 블록암호화수단과, 제1 블록암호화수단에 의해 출력된 n 길이의 결과값과 제2 블록암호화수단에 의해 출력된 n 길이의 결과값의 상위 n/2비트와 하위 n/2비트를 각각 치환하여 2개의 n 비트의 값을 획득하는 제1 치환수단과, 제1 치환수단에 의해 치 환된 어느 하나의 n 비트 값을 2n길이의 키로 암호화하는 제3 블록암호화수단과, 제1 치환수단에 의해 획득한 n 비트의 2개의 값 중 다른 하나를 2n 길이의 키로 블록암호화하는 제4 블록암호화수단과, 제3 블록암호화수단으로부터의 결과값과 제4 블록암호화수단의 결과값을 상호 치환하는 제2 치환수단으로구성되는 것을 특징으로 한다. In the apparatus for designing a compression function of a block cipher hash operation mode of the present invention, the message length of the plaintext message M is padded in multiples of 2n bits, and then, this is set as M ', and the length of M' is expressed as k 2n bit blocks M 1 as follows. Compression function design device of hash operation mode that blocks encryption by dividing by ..., M k , H, which is the upper bit of M i , the i th plaintext message of each plaintext message divided by 2 bits first block encrypting means for block ciphering i -1 and an arbitrary constant c of n bits with a key of length 2n, and G i -1 , which is the other of each plaintext obtained by dividing M i by n bits, 2n The upper n / 2 bits and the lower of the second block encryption means for block encryption with a key of length, the n-length result value output by the first block encryption means and the n-length result value output by the second block encryption means. Two n bits by replacing n / 2 bits each A first substitution means for obtaining a value of, a third block encryption means for encrypting any n-bit value substituted by the first substitution means with a key of 2n length, and an n-bit value obtained by the first substitution means. A fourth block encrypting means for block ciphering the other one of the two values with a key having a length of 2n, and second replacing means for mutually replacing the result from the third block encrypting means and the result of the fourth block encrypting means. It is characterized by.

또한, 본 발명의 블록암호 해쉬 운영모드의 압축함수 설계 방법은, 평문 메시지 M의 메시지 길이를 2n비트의 배수로 패딩한 후 이를 M'라하고, M'의 길이를 k개의 2n비트 블록 M1,..., Mk로 나누어 블록암호화하는 해쉬 운영모드의 압축함수 설계 방법으로서, 평문 메시지인 Mi의 상위 비트를 Hi -1 라고 하고, 하위 비트를 Gi -1 라고 하면, Hi - 1를 입력받아 암호화된 α를 출력하는 제1 블록암호화단계와, Gi -1을 입력받아 암호화된 β를 출력하는 제2 블록암호화단계와, 제1 블록암호화단계에서의 α와, 제2 블록암호화단계에서의 β의 각각의 상위 n/2 비트와 하위 n/2 비트를 치환하는 제1 치환단계와, 제1 치환단계에서 획득한 2개의 값 중 어느 하나를 입력으로 하여 암호화된 α'를 획득하는 제3 블록암호화단계와, 제1 치환단계에서 획득한 2개의 값 중 다른 하나를 입력으로 하여 암호화된 β'를 획득하는 제4 블록암호화단계와, 제3 블록암호화단계에서의 α'와 제4 블록암호화단계에서의 β'의 각각의 상위 n/2 비트 및 하위 n/2 비트를 치환하여 암호문을 획득하는 제2 치환단계로 구성되는 것을 특징으로 한다. In addition, the method of designing a compression function of the block cipher hash operation mode of the present invention, after padding the message length of the plain text message M in multiples of 2n bits, is called M ', and the length of M' is k 2n bit blocks M 1 , ..., assuming that a compression function design of the hash operation mode method for dividing a block encrypted with k M, plain-text message of the higher-order bits M i H i -1 is called, and the lower bits of the G i -1, H i - A first block encryption step of receiving 1 and outputting encrypted α, a second block encryption step of receiving G i- 1 and outputting encrypted β, α in the first block encryption step, and a second block Encrypted α 'is input by inputting either the first substitution step for substituting each of the upper n / 2 bits and the lower n / 2 bits of β in the encryption step, and the two values obtained in the first substitution step. The third block encryption step of obtaining and the other of the two values obtained in the first substitution step A fourth block encryption step of acquiring the encrypted β 'by inputting me, and an upper n / 2 bit and a lower n / 2 respectively of α' in the third block encryption step and β 'in the fourth block encryption step And a second permutation step of acquiring the ciphertext by substituting the bits.

NHM의 구현에 있어 블록암호 외에 필요한 추가 자원은 다음과 같다.In addition to the block cipher, additional resources required for the implementation of the NHM are as follows.

1. 연결 변수 저장에 필요한 2n비트 레지스터1. 2n bit registers required to store connection variables

2. 메시지의 한 블록을 저장할 추가적인 n비트 레지스터2. Additional n-bit register to store a block of messages

3. 초기 연결 변수 2n비트와 내부 상수 n비트3. Initial connection variable 2n bits and internal constant n bits

4. 블록암호를 4블록 연결 구현을 위한 선택 논리4. Selection logic for implementing block ciphers with 4-block concatenation

실제 NHM이 활용될 것으로 예상되는 환경에서와 같이 n을 64로 가정하였을 경우 이상의 자원을 하드웨어로 구현하는 데는 약 2,000게이트 정도가 소요된다. 한편, 동작 효율성 관점에서 살펴보면, 구현 방법에 따라 다르나 블록암호를 1개만 구현하였을 경우, 블록암호 속도의 약 50% 정도의 속도를 보일 것으로 예상되는 효과가 있다. If n is assumed to be 64, as in an environment where NHM is expected to be utilized, it takes about 2,000 gates to implement more resources in hardware. On the other hand, from the operation efficiency point of view, depending on the implementation method, if only one block password is implemented, there is an effect that is expected to show about 50% of the block password speed.

상기한 바와 같이 NHM은 적은 추가 자원만으로도 구현이 가능하다. 따라서, NHM은 RFID 등의 경량 환경에서 기밀성과 무결성이 동시에 요구될 경우, 이미 구현된 블록암호 외에 소량의 추가적인 자원만을 사용하여 해쉬함수를 구현할 수 있다는 장점이 있다. 또한, 기존에 제안된 운영모드와 다르게 free-start 조건 하에서도 안전성을 유지할 수 있도록 설계되어 RFID 등의 정보보호 프로토콜에 더 높은 안전성을 제공할 수 있는 효과가 있다.As mentioned above, NHM can be implemented with only a few additional resources. Therefore, when the confidentiality and integrity are required at the same time in a lightweight environment such as RFID, NHM has the advantage that it is possible to implement the hash function using only a small amount of additional resources in addition to the already implemented block password. In addition, unlike the existing operation mode, it is designed to maintain safety even under free-start conditions, thereby providing higher safety to information protection protocols such as RFID.

첨부된 도면을 참조하여 본 발명의 구성에 대하여 보다 상세하게 설명하기로 한다. With reference to the accompanying drawings will be described in more detail with respect to the configuration of the present invention.

도 1은 본 발명의 일실시예에 따른 해쉬 모드 동작의 압축함수 동작 과정 및 연결 상태를 나타낸 블록 구성도이며, 도 2는 본 발명의 도 1에 따른 블록암호부의 구성을 보다 상세하게 나타낸 상태도이다. 1 is a block diagram showing a compression function operation process and a connection state of a hash mode operation according to an embodiment of the present invention, Figure 2 is a state diagram showing the configuration of a block cipher in accordance with Figure 1 of the present invention in more detail. .

도 1 및 도 2를 참조하여 보면, 도 1은 압축함수 f의 동작 과정을 나타낸다. Referring to FIGS. 1 and 2, FIG. 1 illustrates an operation of the compression function f.

상기한 목적을 달성하면서 구현 효율성을 극대화하기 위하여 NHM은 다음과 같은 고려사항을 반영하여 설계하였다. In order to maximize the implementation efficiency while achieving the above objectives, NHM was designed with the following considerations in mind.

1. 두 블록만을 사용하는 경우 free-start 공격에 안전하지 않음이 알려져 있다. 따라서, 네 블록을 사용하여 설계하여 목표 안전성을 제공하고자 하였다. 1. It is known that using only two blocks is not safe for free-start attacks. Therefore, four blocks were designed to provide target safety.

2. 구현 효율성을 고려하여 해쉬율(Hash Rate)이 1/2이 되도록 메시지 입력 크기를 2n비트로 설정하였다.2. Considering the implementation efficiency, the message input size is set to 2n bits so that the hash rate is 1/2.

3. 입력 메시지를 블록암호의 키에 모두 입력하는 경우 안전성에 문제가 있음을 검토하였고, 이를 바탕으로 입력의 부분 정보를 블록암호의 키에 입력하도록 하였다. 3. When all the input messages are entered in the key of the block cipher, it is considered that there is a problem of safety.

4. 주어진 네 블록의 연산 결과가 서로 영향을 주지 않는 경우, 블록암호 각각의 안전성 분석 결과의 4배로 분석이 가능하므로, 모든 블록들이 서로 영향을 주고 받을 수 있도록 하였다. 4. If the operation results of four given blocks do not affect each other, it is possible to analyze four times the safety analysis results of each block cipher, so that all blocks can influence each other.

5. 입력 메시지가 앞쪽의 두 블록 단계와 나머지 두 블록 단계에 동일하게 입력될 경우는 두 블록 단계에 대한 분석 결과를 이용하여 분석이 가능할 것으로 판단되어 앞뒤의 두 블록에 서로 영향을 주며 입력되도록 하였다.5. If the input message is input in the same two block steps and the other two block steps, it can be analyzed using the analysis results of the two block steps. .

6. 구현시 추가 자원 발생 요인을 최소화하기 위하여 메시지 및 연결 변수의 입출력 위치를 조정하였다.6. In order to minimize additional resource generation factors in the implementation, I / O positions of messages and connection variables are adjusted.

7. 매 블록별 평문 및 키 입력의 값이 같지 않게 하기 위해 부분적으로 상수를 사용하였다.7. Constants are used in part to ensure that the values of plaintext and keystrokes are not equal for each block.

이하, 해쉬 운영모드의 상세한 알고리즘에 대하여 설명하고자 한다. Hereinafter, a detailed algorithm of the hash operation mode will be described.

4개의 블록을 사용하여 동일한 블록암호를 4번 사용한다. 키는 (2n비트) 부분을 두 영역으로 나누었는데 왼쪽이 상위 n비트, 오른쪽이 하위 n비트로 구분된다. The same block password is used four times using four blocks. The key is divided into two areas (2n bits), with the upper n bits on the left and the lower n bits on the right.

즉, 블록암호의 입력과 출력의 길이가 n이고, 키의 길기가 2n, 메시지 M = m1∥m2∥m3∥m4의 길이가 2n이고, 각 mi의 길이는 n/2이다. 예컨대, 네 개의 블록암호 중 상단 왼쪽 블록암호에서 블록암호의 입력은 Hi-1

Figure pat00001
c가 되고, 블록암호에 사용될 키가 m1∥m2∥Gi-1이 된다. 여기서, m1∥m2∥Gi-1은 비트열 m1, m2 및 Gi-1의 연접을 의미한다. That is, the length of the input and output of the block cipher is n, the length of the key is 2n, the message M = m 1 ∥ m 2 ∥ m 3 ∥ m 4 is 2n, and the length of each m i is n / 2. . For example, in the upper left block cipher of four block ciphers, the input of the block cipher is H i-1
Figure pat00001
c becomes the key to be used for the block cipher, m 1 ∥m 2 ∥G i-1 . Here, m 1 ∥m 2 ∥G i-1 means a concatenation of the bit strings m 1 , m 2 and G i-1 .

다음으로, NHM의 패딩 방식을 설명한다.Next, the padding method of NHM is demonstrated.

해쉬함수는 고정된 크기를 가지는 메시지 블록 단위로 동작하게 된다. 따라서, 임의의 길이를 가지는 메시지를 축약하기 위해서는 적절한 비트열을 추가로 패딩하여 패딩된 메시지의 길이가 해쉬함수의 입력 메시지 블록 크기의 배수가 되도록 맞추어야 한다. NHM의 패딩 방식은 사용 환경에 따라 다음과 같이 세가지 방식을 사용한다.The hash function operates in units of message blocks with a fixed size. Therefore, in order to abbreviate a message having an arbitrary length, it is necessary to additionally pad an appropriate bit string so that the length of the padded message is a multiple of the input message block size of the hash function. NHM padding method uses three methods according to the usage environment as follows.

패딩 방식 1: 입력 메시지 M의 길이가 고정적이지 않은 경우Padding scheme 1: the length of the input message M is not fixed

- M의 끝에 `1'을 추가한다.Append `1 'to the end of M

- M' = M∥100ㆍㆍㆍ0의 길이가 2n× k-n이 되도록 `1' 뒤에 `0'을 연속적으로 추가한다.-'0' is continuously added after `1 'so that M' = M∥100... 0 is 2n × k-n.

- M의 비트 길이를 n비트로 표기하여 M' 뒤에 추가한다.-Write the bit length of M as n bits and add it after M '.

- 최종적으로 패딩된 메시지의 길이는 2n의 배수가 된다.Finally, the length of the padded message is a multiple of 2n.

패딩 방식 2: M의 길이가 항상 2n-1비트 이하인 경우Padding scheme 2: The length of M is always 2n-1 bits or less

- M의 끝에 `1'을 추가한다.Append `1 'to the end of M

- M∥100ㆍㆍㆍ0의 길이가 2n이 되도록 '0'을 연속적으로 추가한다.(M의 길이가 (2n-1)인 경우에는 '1'만 추가하면 된다.)-'0' is added continuously so that the length of M∥100..0 is 2n. (If M is (2n-1), only '1' needs to be added.)

패딩 방식 3: M의 길이가 항상 2n 비트인 경우Padding scheme 3: M is always 2n bits long

- 이 경우에는 패딩을 하지 않는다.In this case, no padding is done.

일반적인 해쉬함수의 패딩 방식은 패딩 방식 1만을 사용하는 것이 보편적이다. 그러나, NHM은 RFID와 같은 경량 환경에서 사용될 목적으로 개발되었으며, 이러한 환경에서는 해쉬함수의 입력 메시지가 1블록 이내 또는 고정된 길이를 가지는 경우가 많을 것으로 예상된다. 이렇게 1블록 이내의 메시지만 입력을 받아들이는 경우에도 패딩 방식 1을 적용하는 것은 안전성에 전혀 영향이 없으면서도 효율성이1/2로 저하되는 문제가 발생한다. 따라서, NHM의 패딩 방식은 사용 환경에 따라 패딩 방식 2 및 패딩 방식 3도 선택적으로 사용할 수 있다. As a general hash function, padding method 1 is generally used. However, NHM was developed for the purpose of being used in a lightweight environment such as RFID, and it is expected that the input message of the hash function is often within 1 block or has a fixed length. Even in the case where only messages within 1 block are accepted, the application of the padding scheme 1 has a problem that the efficiency is reduced to 1/2 without any impact on safety. Therefore, the padding scheme of NHM may selectively use padding scheme 2 and padding scheme 3 according to the use environment.

다음으로, NHM의 알고리즘 동작 방식을 설명한다.Next, the algorithm operation method of NHM is demonstrated.

NHM을 이용하여 메시지 M의 해쉬값을 계산하는 과정은 다음과 같다.The process of calculating the hash value of the message M using the NHM is as follows.

1. M에 앞서 설명한 패딩 방식들 중 적절한 방식을 선택하여 메시지 길이를 2n비트의 배수로 맞춘 후 이를 M'이라 놓는다.1. Select an appropriate one of the padding schemes described above to adjust the message length to a multiple of 2n bits, and call it M '.

2. M'의 길이를 2n×k(k≥1)라 할 때, 이를 아래와 같이 k개의 2n비트 블록 M1,ㆍㆍㆍ,Mk로 나눈다.2. When the length of M 'is 2n × k (k ≧ 1), it is divided into k 2n bit blocks M 1 ,..., M k as follows.

M' = M1∥M2∥ㆍㆍㆍ∥Mk.M '= M 1 ∥ M 2 ∥ ・ ・ ∥ M k .

3. i를 1부터 k까지 증가시키면서 다음 과정을 수행한다.3. Carry out the following procedure increasing i from 1 to k:

- Mi를 4개의 n/2비트 블록 m1,m2,m3,m4로 나눈다.Divide M i into four n / 2-bit blocks m 1 , m 2 , m 3 , m 4 .

Mi = m1∥m2∥m3∥m4.M i = m 1 ∥m 2 ∥m 3 ∥m 4 .

- 아래 과정과 같이 동작하는 압축함수 f를 통하여 Hi-1,Gi-1을 Hi,Gi로 갱신한다. 먼저, Hi-1이 입력되어 제1 블록암호부(10)를 통과하면, α(12)가 출력되며, α(12)는 α ← B((m1∥m2)∥Gi-1,Hi-1

Figure pat00002
c)
Figure pat00003
Hi-1로 표시할 수 있다. 여기서, α(12)는 임의로 설정된 임시 변수이며, c는 운영모드의 수행 과정에 XOR되는 n비트 상수이고, B(k,M)는 2n비트 k를 키로 사용하여 n비트 메시지 M을 블록암호로 암호화한 암호문을 의미한다. 한편,
Figure pat00004
는 배타적 논리합(XOR)을 나타낸다. -Update H i-1 , G i-1 to H i , G i through the compression function f which operates as follows. First, when H i-1 is input and passes through the first block cipher 10, α (12) is output, and α (12) is α ← B ((m 1 ∥m 2 ) ∥G i-1 , H i-1
Figure pat00002
c)
Figure pat00003
It can be displayed as Hi-1 . Here, α (12) is a random variable that is arbitrarily set, c is an n-bit constant that is XORed during the execution of the operation mode, and B (k, M) is an n-bit message M as a block code using 2n-bit k as a key. It means encrypted cipher text. Meanwhile,
Figure pat00004
Denotes an exclusive OR.

한편, 도 2에서는 입력값으로 Hi-1 및 Gi-1을 사용하였지만, n비트 상수인 운영모드의 초기값은 H0, G0로 표시할 수 있다. In FIG. 2, although Hi-1 and Gi -1 are used as input values, an initial value of an operating mode, which is an n-bit constant, may be represented by H 0 and G 0 .

한편, Gi-1이 제2 블록암호부(20)를 통과하면, β(22)가 출력되며, β(22)는 β ← B((m3∥m4)∥Hi-1,Hi-1)

Figure pat00005
Gi-1로 표시할 수 있다. 여기서, β(14)도 임의로 설정된 임시 변수이다. On the other hand, when G i-1 passes through the second block cipher 20, β (22) is output, and β (22) is β ← B ((m 3 ∥m 4 ) ∥H i-1 , H i-1 )
Figure pat00005
It can be displayed as G i-1 . Here, β (14) is also a temporary variable arbitrarily set.

그리고, γ(14)는 γ ← αu∥βl이 출력된다. γ(14)도 임시 변수이다. 여기서, αu는 α의 2n비트 중 α의 상위 n비트 값을 나타낸다. 그리고, βl은 β의 2n비트 중 β의 하위 n비트 값을 나타낸다. Γ 14 outputs γ ← α u ∥ β l . γ (14) is also a temporary variable. Here, α u represents the upper n-bit value of α of 2n bits of α. Β 1 represents the lower n-bit value of β of 2n bits of β.

마찬가지로, δ(24)는 δ ← βu∥αl이 출력된다. δ도 임의로 설정된 임시 변수이다. Similarly, δ (24) outputs δ ← β u ∥ α l . δ is also a temporary variable set arbitrarily.

한편, γ(14)와 δ(24)가 제3 및 제4 블록암호부(30, 40)을 통과한다. γ(14)가 제3 블록암호부(30)를 통과하면, 그 결과값으로 α'(32)가 출력되며, α' (32)는 α' ← B((m3∥m1)∥δ,γ

Figure pat00006
c)
Figure pat00007
γ로 나타내어 진다. 마찬가지로, α'(32)도 암호화 과정을 설명하기 위해 임의로 설정된 임시 변수이다. On the other hand, γ 14 and δ 24 pass through the third and fourth block ciphers 30 and 40. When γ 14 passes through the third block cipher 30, α '32 is output as a result value, and α' 32 is α '← B ((m 3 ∥ m 1 ) ∥δ , γ
Figure pat00006
c)
Figure pat00007
It is represented by γ. Likewise, α '32 is a temporary variable set arbitrarily to explain the encryption process.

δ(24)가 제4 블록암호부(40)를 통과하면, 그 결과값으로 β'(42)가 출력되며 β'(42)는 β' ← B((m4∥m2)∥γ,δ)

Figure pat00008
δ로 나타내어 진다. 마찬가지로, β'(42)도 암호화 과정을 설명하기 위해 임의로 설정된 임시 변수이다. When δ 24 passes through the fourth block cipher 40, β '42 is output as a result value, and β' 42 is β '← B ((m 4 ∥ m 2 ) ∥γ, δ)
Figure pat00008
It is represented by δ. Similarly, β '42 is a temporary variable arbitrarily set to explain the encryption process.

한편, 그 결과값으로 출력되는 Hi(34)는 Hi ← α'u∥β'l의 식에 의해 그 값 이 출력된다. 그리고, 그 결과값으로 출력되는 또 다른 하나의 결과값인 Gi(44)는 Gi ← β'u∥α'l의 식에 의해 치환되어 출력된다. 여기서, α'u는 α'의 2n비트 중 α'의 상위 n비트 값을 나타낸다. 그리고, β'l은 β'의 2n비트 중 β'의 하위 n비트 값을 나타낸다. On the other hand, H i (34) output as the result value is outputted by the formula of H i ← α ' u ∥ β' l . Then, G i 44, which is another result value output as the result value, is substituted and outputted by the formula G i ← β ' u ∥ α' l . Here, α ' u represents the upper n-bit value of α' among 2n bits of α '. Β ' 1 represents a lower n-bit value of β' in 2n bits of β '.

3과정과 같은 라운드 동작 과정을 k회 수행한다. 즉, 원래 메시지 M을 패딩을 거쳐 k개의 2n비트 M' = M1∥M2∥ㆍㆍㆍ∥Mk로 나누었을 때, 임의의 평문 Mi 블록을 처리하는 1 라운드의 과정을 수행한다(1≤i≤k). 결과적으로 입력값은 평문인 Hi-1∥Gi -1이고, 3과정(라운드 압축 함수)을 거쳐셔 출력값은 암호문인 Hi∥Gi가 출력된다. Perform the same round operation process as k three times. That is, when the original message M through the padding is divided into k number of bits 2n M '= M 1 ∥M 2 ∥ and and and ∥M k, it performs a process in the first round to handle any of the plaintext block M i ( 1 ≦ i ≦ k). As a result, the input value is H i-1 ∥G i -1 , which is plain text, and the output value is output as H i ∥G i , which is a ciphertext after 3 steps (round compression function).

4. 메시지 M에 대한 해쉬값 H(M)으로 Hk∥Gk를 출력한다. i번째 라운드의 입력값은 Hi-1∥Gi-1이 되고, 3과정(라운드 압축 함수)을 거쳐셔 출력값은 Hi∥Gi가 되며, 마지막 k라운드를 거쳐 출력된 Hk∥Gk값이 해쉬함수의 최종 출력이 된다. 4. Print H k ∥G k as the hash value H (M) for message M. The input value of the i- th round is H i-1 ∥G i-1 , and after 3 steps (round compression function), the output value is H i ∥G i , and the output value H k ∥G is output through the last k rounds. The value k is the final output of the hash function.

여기서, 해쉬함수의 출력이 m비트이면 확률적으로 2m/2개의 메시지가 있으면 충돌쌍이 발견된다. 즉, 본원 발명에서 제시하는 해쉬함수가 충돌쌍공격에 안전하다고 하는 것은 해쉬 출력 길이가 m일 때 2-m/2보다 큰 확률, 다시 이야기하면, 2m/2의 해쉬 계산보다 작은 공격량으로 충돌쌍을 발견할 수 있는 공격 방법이 없음을 의미한다. 따라서, 본 발명에서 구현된 NHM의 경우 메시지 해쉬 출력값이 2n비트 이고 블록암호가 안전하다는 가정 하에서는 2n 이하의 계산량으로 충돌쌍을 발견하기 어려운 구조이므로, 충돌쌍 공격에 안전하다고 할 수 있다. Here, if the output of the hash function is m bits, a collision pair is found if there are 2 m / 2 messages. In other words, the hash function proposed in the present invention is safe for collision pair attack with a probability greater than 2 -m / 2 when the hash output length is m, that is, an attack amount smaller than the hash calculation of 2 m / 2 . This means that there is no attack method that can detect collision pairs. Therefore, the NHM implemented in the present invention is a structure that is hard to find a collision pair with a calculation amount of 2 n or less under the assumption that the message hash output value is 2n bits and the block cipher is safe.

도 1은 본 발명의 일실시예에 따른 블록암호 해쉬 운영모드의 압축함수 설계 장치의 블록 구성도.1 is a block diagram of a compression function design apparatus of a block cipher hash operating mode according to an embodiment of the present invention.

도 2는 본 발명의 도 1에 따른 블록암호부의 구성을 보다 상세하게 나타낸 상태도이다. Figure 2 is a state diagram showing in more detail the configuration of the block cipher according to Figure 1 of the present invention.

<도면의 주요부분에 대한 부호의 간단한 설명><Brief description of symbols for the main parts of the drawings>

10, 20, 30, 40 : 블록암호부 10, 20, 30, 40: block cipher

Claims (15)

평문 메시지 M의 메시지 길이를 2n비트의 배수로 패딩한 후 이를 M'이라 놓고, 상기 M'의 길이를 이를 아래와 같이 k개의 2n비트 블록 M1,..., Mk로 나누어 블록암호화하는 해쉬 운영모드의 압축함수 설계 장치로서, After hashing the message length of the plaintext message M in multiples of 2n bits, setting this as M ', and hashing the block by dividing the length of M' into k 2n-bit blocks M 1 , ..., M k as shown below. Compression function design device of the mode, 상기 2n 비트의 평문 메시지를 n비트씩 나눈 각각의 평문 메시지의 i번 째 평문 메시지인 Mi의 상위 비트인 Hi -1과 n비트의 임의의 상수인 c를 2n 길이의 키로 블록암호화하는 제1 블록암호화수단과;The key for encrypting the block of the upper bits of H i -1 and n c is an arbitrary constant of 2n-bit length of the plain text message of the 2n n-bit of each of the plain-text message bits divided by the number i M i th plaintext message 1 block encryption means; 상기 Mi를 n비트씩 나눈 각각의 평문 중 나머지 하나인 Gi -1을 입력으로 받아 2n 길이의 키로 블록암호화하는 제2 블록암호화수단과;Second block encryption means for receiving an input of G i -1 , which is the other one of the plain text obtained by dividing M i by n bits, and encrypting the block with a 2n long key; 상기 제1 블록암호화수단에 의해 출력된 n 길이의 결과값과 상기 제2 블록암호화수단에 의해 출력된 n 길이의 결과값의 상위 n/2비트와 하위 n/2비트를 각각 치환하여 2개의 n 비트의 값을 획득하는 제1 치환수단과; Two n by replacing the upper n / 2 bits and the lower n / 2 bits of the n length result value output by the first block encryption means and the n length result value output by the second block encryption means. First substitution means for obtaining a value of a bit; 상기 제1 치환수단에 의해 치환된 어느 하나의 n 비트 값을 2n길이의 키로 암호화하는 제3 블록암호화수단과; Third block encryption means for encrypting any one n-bit value substituted by said first substitution means with a 2n length key; 상기 제1 치환수단에 의해 획득한 n 비트의 2개의 값 중 다른 하나를 2n 길이의 키로 블록암호화하는 제4 블록암호화수단과; Fourth block encrypting means for block encrypting the other of the two values of n bits obtained by said first replacing means with a key of length 2n; 상기 제3 블록암호화수단으로부터의 결과값과 상기 제4 블록암호화수단의 결과값을 상호 치환하는 제2 치환수단을 포함하여 이루어지는 것을 특징으로 하는 블 록암호 해쉬 운영모드의 압축함수 설계 장치. And second substitution means for mutually replacing a result value from the third block encryption means and a result value of the fourth block encryption means. 제1 블록암호화수단의 이전단에서 상기 Hi -1을 입력으로 받아 n비트의 상수인 c와 배타적 논리합하는 제1 배타적논리합수단과; First exclusive logic means for receiving the H i -1 as an input at the previous stage of the first block encryption means and performing an exclusive OR with c, which is a constant of n bits; 상기 제1 블록암호화수단의 이후단에서 상기 제1 블록암호화수단에 의해 블록암호화된 값과 상기 Hi -1을 배타적 논리합 연산하는 제2 배타적논리합수단과;In the first block after the end of the encryption means and a second exclusive OR means for exclusive-OR operation to block the encrypted value and the H i -1 by the first block cipher device; 상기 제2 블록암호화수단의 이후단에서 제2 블록암호화수단에 의해 블록암호화된 값과 상기 Gi -1을 배타적 논리합 연산하는 제3 배타적논리합수단과;Third exclusive logic means for performing an exclusive OR operation on the block encrypted value by the second block encryption means and the G i -1 at a subsequent stage of the second block encryption means; 상기 제1 치환수단 이후단에서 상기 제1 치환수단에 의해 획득한 n 비트의 2개의 값 중 어느 하나를 상기 c와 배타적논리합 연산하는 제4 배타적논리합수단과; Fourth exclusive logical sum means for performing an exclusive logical sum operation with c on any one of two values of n bits obtained by the first substitution means after the first substitution means; 상기 제3 블록암호화수단의 이후단에서 상기 제3 블록암호화수단으로부터 출력된 n 비트 길이의 값을 상기 제1 치환수단에 의해 획득한 n 비트의 2개의 값 중 어느 하나와 배타적논리합 연산하는 제5 배타적논리합수단과; A fifth logical exclusive operation of the value of the n-bit length output from the third block encryption means after the third block encryption means with any one of two values of n bits obtained by the first substitution means. Exclusive logic means; 상기 제4 블록암호화수단의 이후단에서 상기 제4 블록암호화수단으로부터 출력된 n 비트 길이의 값을 상기 제1 치환수단에 의해 획득한 n 비트의 2개의 값 중 다른 하나와 배타적논리합 연산하는 제6 배타적논리합수단을 더 포함하는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 장치. A sixth logical exclusive operation of the value of the n-bit length output from the fourth block encryption means at the subsequent stage of the fourth block encryption means with the other one of two values of n bits obtained by the first substitution means; Compression function design apparatus of a block cipher hash operating mode, characterized in that it further comprises an exclusive logic means. 제1항 또는 제2항에 있어서, The method according to claim 1 or 2, 상기 제1 블록암호화수단에서 사용하는 상기 2n 길이의 키는 상기 Mi를 4개의 n/2비트 블록 m1,m2,m3,m4로 나누고 그 나눈 값 중 m1∥m2∥Gi -1을 암호키로 사용하며, 여기서, ∥는 연접을 의미하는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 장치. The 2n-length key used in the first block encryption means divides M i into four n / 2-bit blocks m 1 , m 2 , m 3 , m 4, and m 1 ∥m 2 ∥G i- 1 is used as an encryption key, where ∥ means concatenation. Compression function designing apparatus of block cipher hash operation mode. 제1항 또는 제2항에 있어서, The method according to claim 1 or 2, 상기 제2 블록암호화수단에서 사용하는 상기 2n 길이의 키는 상기 Mi를 4개의 n/2비트 블록 m1,m2,m3,m4로 나누고 그 나눈 값 중 m3∥m4∥Hi -1을 암호키로 사용하며, 여기서, ∥는 연접을 의미하는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 장치. The 2n-length key used in the second block encryption means divides M i into four n / 2-bit blocks m 1 , m 2 , m 3 , m 4, and m 3 ∥m 4 ∥H i- 1 is used as an encryption key, where ∥ means concatenation. Compression function designing apparatus of block cipher hash operation mode. 제1항 또는 제2항에 있어서, The method according to claim 1 or 2, 상기 제3 블록암호화수단에서 사용하는 상기 2n 길이의 키는 상기 Mi를 4개의 n/2비트 블록 m1,m2,m3,m4로 나누고 그 나눈 값 중 m3∥m1과 상기 제1 치환수단에 의해 획득한 n 비트의 2개의 값 중 어떤 하나를 연접하여 암호키로 사용하며, 여기서, ∥는 연접을 의미하는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 장치. The 2n length key used in the third block encryption means divides M i into four n / 2 bit blocks m 1 , m 2 , m 3 , m 4 , and m 3 ∥m 1 and Any one of two values of n bits obtained by the first substitution means is concatenated and used as an encryption key, where ∥ means concatenation. Compression function designing apparatus for block cipher hash operation mode. 제5항에 있어서, The method of claim 5, 상기 제4 블록암호화수단에서 사용하는 상기 2n 길이의 키는 상기 Mi를 4개의 n/2비트 블록 m1,m2,m3,m4로 나누고 그 나눈 값 중 m3∥m1과 상기 제1 치환수단에 의해 획득한 n 비트의 2개의 값 중 다른 하나를 연접하여 암호키로 사용하며, 여기서, ∥는 연접을 의미하는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 장치. The 2n-length key used in the fourth block encryption means divides M i into four n / 2-bit blocks m 1 , m 2 , m 3 , m 4 , and m 3 ∥m 1 and the divided value. Combination function design apparatus of a block cipher hash operating mode, characterized in that the other one of the two values of the n-bit obtained by the first substitution means are concatenated and used as an encryption key. 평문 메시지 M의 메시지 길이를 2n비트의 배수로 패딩한 후 이를 M'라하고, 상기 M'의 길이를 k개의 2n비트 블록 M1,..., Mk로 나누어 블록암호화하는 해쉬 운영모드의 압축함수 설계 방법으로서, Compression of hash operation mode in which the message length of the plaintext message M is padded in multiples of 2n bits, and this is called M ', and the length of M' is divided into k 2n bit blocks M 1 ,. As a function design method, 평문 메시지인 Mi의 상위 비트를 Hi -1 라고 하고, 하위 비트를 Gi -1 라고 하면, 상기 Hi - 1를 입력받아 암호화된 α를 출력하는 제1 블록암호화단계와; The upper bits of the plaintext message is called M i H i -1, and when the lower bit is called G i -1, the H i - first block encryption step of outputting the encrypted receives the α 1; 상기 Gi -1을 입력받아 암호화된 β를 출력하는 제2 블록암호화단계와; A second block encryption step of receiving the G i -1 and outputting encrypted?; 상기 제1 블록암호화단계에서의 α와, 제2 블록암호화단계에서의 β의 각각의 상위 n/2 비트와 하위 n/2 비트를 치환하는 제1 치환단계와; A first substitution step of replacing each of the upper n / 2 bits and the lower n / 2 bits of α in the first block encryption step and β in the second block encryption step; 상기 제1 치환단계에서 획득한 2개의 값 중 어느 하나를 입력으로 하여 암호 화된 α'를 획득하는 제3 블록암호화단계와; A third block encryption step of obtaining an encrypted α 'by inputting any one of two values obtained in the first substitution step; 상기 제1 치환단계에서 획득한 2개의 값 중 다른 하나를 입력으로 하여 암호화된 β'를 획득하는 제4 블록암호화단계와; A fourth block encryption step of obtaining an encrypted β 'by inputting another one of two values obtained in the first substitution step; 상기 제3 블록암호화단계에서의 α'와 상기 제4 블록암호화단계에서의 β'의 각각의 상위 n/2 비트 및 하위 n/2 비트를 치환하여 암호문을 획득하는 제2 치환단계를 포함하여 이루어지는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법. And a second substitution step of acquiring a ciphertext by substituting each of the upper n / 2 bits and the lower n / 2 bits of α 'in the third block encryption step and β' in the fourth block encryption step. Compression function design method of the block cipher hash operating mode, characterized in that. 제7항에 있어서, The method of claim 7, wherein 상기 제1 블록암호화단계에서 형성하는 α은 다음의 수학식에 의해 구하고, Α formed in the first block encryption step is obtained by the following equation, α ← B((m1∥m2)∥Gi -1,Hi -1
Figure pat00009
c)
Figure pat00010
Hi -1
α ← B ((m 1 ∥m 2 ) ∥G i -1 , H i -1
Figure pat00009
c)
Figure pat00010
H i -1
여기서, B(k,M)는 2n비트 k를 키로 사용하여 n비트 메시지 M을 블록암호로 암호화한 암호문을 나타내며, ∥는 연접을 나타내고,
Figure pat00011
는 배타적 논리합을 나타내며, c는 n비트의 임의의 상수를 나타내는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법.
Where B (k, M) denotes a ciphertext encrypted with a block cipher of n-bit message M using 2n-bit k as a key, ∥ denotes concatenation,
Figure pat00011
Is an exclusive OR, and c is an arbitrary constant of n bits, and the compression function design method of the block cipher hash operating mode.
제7항에 있어서, The method of claim 7, wherein 상기 제2 블록암호화단계에서 형성하는 β는 다음의 수학식에 의해 구하고, Β formed in the second block encryption step is obtained by the following equation, β ← B((m3∥m4)∥Hi -1,Hi -1)
Figure pat00012
Gi -1
β ← B ((m 3 ∥m 4 ) ∥H i -1 , H i -1 )
Figure pat00012
G i -1
여기서, B(k,M)는 2n비트 k를 키로 사용하여 n비트 메시지 M을 블록암호로 암호화한 암호문을 나타내며, ∥는 연접을 나타내고,
Figure pat00013
는 배타적 논리합을 나타내며, c는 n비트의 임의의 상수인 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법.
Where B (k, M) denotes a ciphertext encrypted with a block cipher of n-bit message M using 2n-bit k as a key, ∥ denotes concatenation,
Figure pat00013
Is an exclusive OR, and c is an arbitrary constant of n bits, wherein the compression function design method of the block cipher hash operating mode.
제7항에 있어서, The method of claim 7, wherein 상기 제1 치환단계에서 획득하는 2개의 값 중 어느 하나는 Any one of the two values obtained in the first substitution step γ ← αu∥βl의 방법으로 구하고, obtained by the method of γ ← α u ∥β l , 다른 하나는 The other one δ ← dsβu∥αl의 방법으로 치환하여 구하며, 여기서, αu는 α의 2n비트 중 α의 상위 n비트 값을 나타내고, βl은 β의 2n비트 중 β의 하위 n비트 값을 나타내며, βu는 β의 2n비트 중 β의 상위 n비트 값을 나타내고, αl은 α의 2n비트 중 α의 하위 n비트 값을 나타내는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법. obtained by substituting δ ← dsβ u ∥α l , where α u represents the upper n-bit value of α in 2n bits of α, β l represents the lower n-bit value of β in 2n bits of β, β u represents the upper n-bit value of β of 2n bits of β, and α l represents the lower n-bit value of α of 2n bits of α. 제10항에 있어서, The method of claim 10, 상기 제3 블록암호화단계에서 형성하는 α'는 다음의 수학식에 의해 구하고, Α 'formed in the third block encryption step is obtained by the following equation, α' ← B((m3∥m1)∥δ,γ
Figure pat00014
c)
Figure pat00015
γ
α '← B ((m 3 ∥m 1 ) ∥δ, γ
Figure pat00014
c)
Figure pat00015
γ
여기서, B(k,M)는 2n비트 k를 키로 사용하여 n비트 메시지 M을 블록암호로 암호화한 암호문을 나타내며, ∥는 연접을 나타내고,
Figure pat00016
는 배타적 논리합을 나타내며, c는 n비트의 임의의 상수인 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법.
Where B (k, M) denotes a ciphertext encrypted with a block cipher of n-bit message M using 2n-bit k as a key, ∥ denotes concatenation,
Figure pat00016
Is an exclusive OR, and c is an arbitrary constant of n bits, wherein the compression function design method of the block cipher hash operating mode.
제10항에 있어서, The method of claim 10, 상기 제4 블록암호화단계에서 형성하는 β'는 다음의 수학식에 의해 구하고, Β 'formed in the fourth block encryption step is obtained by the following equation, β' ← B((m4∥m2)∥γ,δ)
Figure pat00017
δ
β '← B ((m 4 ∥m 2 ) ∥γ, δ)
Figure pat00017
δ
여기서, B(k,M)는 2n비트 k를 키로 사용하여 n비트 메시지 M을 블록암호로 암호화한 암호문을 나타내며, ∥는 연접을 나타내고,
Figure pat00018
는 배타적 논리합을 나타내며, c는 n비트의 임의의 상수인 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법.
Where B (k, M) denotes a ciphertext encrypted with a block cipher of n-bit message M using 2n-bit k as a key, ∥ denotes concatenation,
Figure pat00018
Is an exclusive OR, and c is an arbitrary constant of n bits, wherein the compression function design method of the block cipher hash operating mode.
제7항에 있어서, The method of claim 7, wherein 상기 제2 치환단계에서 획득하는 2개의 값 중 어느 하나는 Any one of the two values obtained in the second substitution step Hi(34)는 Hi ← α'u∥β'l의 식에 의해 구하고, H i (34) is obtained by the formula H i ← α ' u ∥β' l , 다른 하나는 The other one Gi(44)는 Gi ← β'u∥α'l의 방법으로 치환하여 구하며, 여기서, α'u는 α'의 2n비트 중 α'의 상위 n비트 값을 나타내고, β'l은 β의 2n비트 중 β'의 하위 n비트 값을 나타내며, β'u는 β'의 2n비트 중 β'의 상위 n비트 값을 나타내고, α'l은 α'의 2n비트 중 α'의 하위 n비트 값을 나타내는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법. G i (44) is obtained by substituting G i ← β ' u ∥α' l , where α ' u represents the upper n bits of α' of 2n bits of α ', and β' l is β Represents the lower n bits of β 'in 2n bits of, β' u represents the upper n bits of β 'in 2n bits of β', and α ' l represents the lower n bits of α' in 2n bits of α ' Compression function design method of block cipher hash operation mode characterized in that it represents a value. 제7항에 있어서, The method of claim 7, wherein 상기 제2 치환단계 이후에 획득된 상기 암호문들을 연접하고 상기 과정을 k회 수행하여 해쉬함수의 최종 출력인 Hk∥Gk값을 획득하는 단계를 더 포함하는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법. Concatenating the ciphertexts obtained after the second substitution step and performing the process k times to obtain a value H k ∥G k , which is the final output of the hash function. Compression function design method. 제14항에 있어서, The method of claim 14, 상기 획득된 출력된 암호문인 H1∥G1 내지 Hk∥Gk 모두 연접하여 암호문을 완성하는 단계를 더 포함하는 것을 특징으로 하는 블록암호 해쉬 운영모드의 압축함수 설계 방법. The obtained ciphertext H 1 ∥G 1 to H k ∥G k And concatenating all of them to complete the cipher text.
KR1020070081302A 2006-11-09 2007-08-13 Apparatus and method for mapping out compressed function of a hash mode of operation for block cipher KR20080044150A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060110498 2006-11-09
KR20060110498 2006-11-09

Publications (1)

Publication Number Publication Date
KR20080044150A true KR20080044150A (en) 2008-05-20

Family

ID=39662208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070081302A KR20080044150A (en) 2006-11-09 2007-08-13 Apparatus and method for mapping out compressed function of a hash mode of operation for block cipher

Country Status (1)

Country Link
KR (1) KR20080044150A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9065631B2 (en) 2010-12-23 2015-06-23 Electronics And Telecommunications Research Institute Integrated cryptographic module providing confidentiality and integrity
US9223077B2 (en) 2011-01-26 2015-12-29 Coretronic Corporation Light guide plate and light source module
KR20190024064A (en) * 2017-08-31 2019-03-08 동국대학교 산학협력단 Code-based encryption apparatus and method capable of preventing replay attack
US10680802B2 (en) 2018-05-31 2020-06-09 Nxp B.V. High-rate multi-block-length hash function based on block ciphers

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9065631B2 (en) 2010-12-23 2015-06-23 Electronics And Telecommunications Research Institute Integrated cryptographic module providing confidentiality and integrity
US9223077B2 (en) 2011-01-26 2015-12-29 Coretronic Corporation Light guide plate and light source module
KR20190024064A (en) * 2017-08-31 2019-03-08 동국대학교 산학협력단 Code-based encryption apparatus and method capable of preventing replay attack
US10680802B2 (en) 2018-05-31 2020-06-09 Nxp B.V. High-rate multi-block-length hash function based on block ciphers

Similar Documents

Publication Publication Date Title
US6973187B2 (en) Block encryption method and schemes for data confidentiality and integrity protection
Krovetz et al. The OCB authenticated-encryption algorithm
JP6519473B2 (en) Authentication encryption apparatus, authentication encryption method and program for authentication encryption
US8369516B2 (en) Encryption apparatus having common key encryption function and embedded apparatus
US8107620B2 (en) Simple and efficient one-pass authenticated encryption scheme
JP5704159B2 (en) Block encryption device, block decryption device, block encryption method, block decryption method, and program
WO2013065241A1 (en) Incremental mac tag generation device, method, and program, and message authentication device
US8000471B2 (en) Robust cipher design
KR20080043217A (en) Message authentication code generation method and authenticated encryption method using stream cipher
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
TW201507427A (en) Encryption/decryption apparatus and encryption/decryption method thereof
WO2020213114A1 (en) Mac tag list generation device, mac tag list verification device, method, and program
KR20080044150A (en) Apparatus and method for mapping out compressed function of a hash mode of operation for block cipher
Jia et al. Distinguishing and second-preimage attacks on CBC-like MACs
Noura et al. Tresc: Towards redesigning existing symmetric ciphers
Abidi et al. Proving chaotic behavior of cbc mode of operation
Zhang et al. Security analysis of KNOT-AEAD and KNOT-Hash
Elkamchouchi et al. A new Secure Hash Dynamic Structure Algorithm (SHDSA) for public key digital signature schemes
Pindar et al. Pintar: a new keyed hash function based on pseudorandom 2n-to-n bit compression function
JP5500277B2 (en) Encryption device and built-in device equipped with a common key encryption function
Walker et al. RECENT CONTRIBUTIONS TO CRYPTOGRAPHIC HASH FUNCTIONS.
Cook et al. Elastic aes
Zaverucha Stronger password-based encryption using all-or-nothing transforms
Rose Design and primitive specification for Boole
KR20030001888A (en) Cipher algorithm design method using block information without using key

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application