KR20020004021A - Data encryption and decryption method and apparatus - Google Patents
Data encryption and decryption method and apparatus Download PDFInfo
- Publication number
- KR20020004021A KR20020004021A KR1020000036697A KR20000036697A KR20020004021A KR 20020004021 A KR20020004021 A KR 20020004021A KR 1020000036697 A KR1020000036697 A KR 1020000036697A KR 20000036697 A KR20000036697 A KR 20000036697A KR 20020004021 A KR20020004021 A KR 20020004021A
- Authority
- KR
- South Korea
- Prior art keywords
- subblock
- output
- value
- partial
- subkey
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 다차원 셀룰라 오토마타(cellular automata)를 이용하여 이진 데이터를 블록 단위로 암호화 및 복호화 하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for encrypting and decrypting binary data in block units using a multidimensional cellular automata.
셀룰라 오토마톤(celluar automaton)은 이산적인 공간과 이산적인 시간으로 구성되어 있으면서, 이산적인 공간의 셀(cell)이라고 불리워지는 각 단위 공간의주어진 시각에서의 상태는 유한한 개수의 상태들 중의 하나의 상태로 주어지며, 각 시각에서의 각 셀의 상태가 그 셀의 근방에 있는 셀들의 직전 시각에서의 상태들에 의해서 결정되어지는 동역학계(dynamic system)이다.Cellular automaton is composed of discrete space and discrete time, and the state at a given point of time in each unit space, called a cell of discrete space, is one of a finite number of states. Given a state, each cell's state at each point in time is a dynamic system that is determined by the states at the point in time immediately before the cells in the vicinity of that cell.
셀룰라 오토마타를 이용하여 데이터를 블록 단위로 암호화 및 복호화 하는 방법에 대한 종래의 방법으로는 구토위츠(Gutowitz)의 방법(미국 특허 등록 번호 5,365,589), 라페(Lafe)의 방법(미국 특허 등록 번호 5,677,956) 등이 있는데, 이러한 방법들은 셀들의 1차원 배열에 기초한 셀룰라 공간들을 이용한다.Conventional methods for encrypting and decrypting data in block units using cellular automata include Gutowitz's method (US Pat. No. 5,365,589) and Lafe's method (US Pat. No. 5,677,956). Etc. These methods use cellular spaces based on a one-dimensional array of cells.
본 발명은 셀들의 다차원 배열에 기초하는 셀룰라 공간에서의 셀들의 상태들의 불규칙한 분포와 이 불규칙한 상태들의 확산을 이용하여, 이진 데이터를 블록 단위로 암호화 및 복호화 하는 시스템을 구성하는 것이다.The present invention is to construct a system for encrypting and decrypting binary data block by block by using an irregular distribution of states of cells in a cellular space based on a multidimensional array of cells and spreading these irregular states.
도 1은 치환함수를 배열로 나타낸 도이다.1 is a diagram showing the substitution function in an array.
도 2는 셀룰라 공간의 기하적인 구성을 위한 보조도이다.2 is an auxiliary view for the geometric configuration of the cellular space.
도 3은 동시변환 규칙 1에서의 각 셀의 이웃 셀들을 표로 표현한 것이다.3 is a table of neighbor cells of each cell of the co-conversion rule 1. FIG.
도 4는 동시변환 규칙 2에서의 각 셀의 이웃 셀들을 표로 표현한 것이다.4 is a table of neighbor cells of each cell in the co-conversion rule 2. FIG.
도 5는 확장함수의 구조의 구조도이다.5 is a structural diagram of a structure of an extension function.
도 6은 키를 이용하는 전방변환의 구조도이다.6 is a structural diagram of forward transformation using a key.
도 7은 키를 이용하는 후방변환의 구조도이다.7 is a structural diagram of a backward transformation using a key.
도 8은 키를 이용하지 않는 전방혼합의 구조도이다.8 is a structural diagram of forward mixing without using a key.
도 9는 키를 이용하지 않는 후방혼합의 구조도이다.9 is a structural diagram of back mixing without using a key.
대칭키 암호 알고리즘의 치환함수(s-box)의 구성과 서브키(subkey) 생성 알고리즘(key scheduler)에서 사용하는 셀룰라 공간(110)의 기하적인 구성은 도 2에서와 같이 사각형들로 분할되어 있는 평면도형에서 C0의 왼쪽 변과 C2의 위쪽 변을 이어서 붙이고 C29의 아래쪽 변과 C31의 오른쪽 변을 이어서 붙인 입체도형으로 구성된다. 이 셀룰라 공간(110)는 최소 단위의 사각형을 32개 가지며, 이 최소 단위의 사각형 각각이 셀룰라 공간(110)의 셀이 된다. 그리고 각 셀의 값으로는 32비트(bit)의 이진 숫자가 입력될 것이다.The configuration of the substitution function (s-box) of the symmetric key cryptographic algorithm and the geometric configuration of the cellular space 110 used in the subkey generation key (key scheduler) is divided into rectangles as shown in FIG. attaching the left side of C 0 and C 2 of the upper side and then on the top view type is configured on the right side of the lower side of the C 29 and C 31 is then attached to the three-dimensional shape. The cellular space 110 has 32 rectangles of the minimum unit, and each of the rectangles of the minimum unit becomes a cell of the cellular space 110. Each cell will have a 32-bit binary number.
동시변환 규칙 1(120)은 셀룰라 공간(110)의 셀들의 값들을 시각의 변화에 따라 동시에 갱신하는 규칙들 중의 하나로, 시각 t에서 모든 셀들의 값들이 주어져 있을 때, 시각 t+1에서의 각 셀의 값으로 그 셀과 이웃하는 셀들, 즉, 도 3에서 주어진 이웃하는 셀들의 시각 t에서의 값들을 비트와이즈(bitwise)하게 배타적논리합(XOR)한 값을 부여하는 규칙으로 선형 규칙이다.Simultaneous conversion rule 1 120 is one of rules for simultaneously updating the values of cells in the cellular space 110 according to the change of time. When the values of all the cells are given at time t, the angle at time t + 1 A rule that gives a value of a cell bitwise exclusive logical sum (XOR) of the cells neighboring the cell, that is, the neighboring cells given in FIG. 3, is bitwise.
동시변환 규칙 2(130)는 셀룰라 공간(100)의 셀들의 값들을 시각의 변화에 따라 동시에 갱신하는 규칙들 중의 하나로, 시각 t에서 모든 셀들의 값들이 주어져 있을 때, 시각 t+1에서의 각 셀의 값으로 그 셀과 이웃하는 셀들, 즉, 도 4에서 주어진 이웃하는 셀들 중 첫 번째 셀과 두 번째 셀의 시각 t에서의 값들을 비트와이즈하게 논리합(OR)한 후 이 값을 도 4에서의 이웃하는 셀들 중 세 번째 셀의 시각 t에서의 값에 비트와이즈하게 배타적논리합한 값을 부여하는 규칙으로 비선형 규칙이다.Simultaneous conversion rule 2 130 is one of rules for simultaneously updating the values of cells in the cellular space 100 according to the change of time. When the values of all the cells are given at time t, the angle at time t + 1 The value of the cell bitwise-wise ORs the neighboring cells with that cell, that is, the values at time t of the first and second cells of the neighboring cells given in FIG. A nonlinear rule that gives a bitwise exclusive logical sum to a value at time t of a third cell among neighboring cells.
서브키 생성 알고리즘(200)은 주어진 키(key) 값을 이용하여 32비트 크기의 서브키(subkey) 36개(K(i), i=0, …,35)를 생성하는 알고리즘으로 다음과 같은 단계들(210, 220, 230, 240, 250, 260)로 구성된 것이다. 단, 이 알고리즘에서 사용하는 셀룰라 공간(110)의 셀들의 초기 값으로는 셀 Cj의 최하위 비트를 기준으로 j번째 비트의 값은 1로 주고 셀 Cj의 나머지 비트들의 값들은 0으로 주는 방법으로 모든 셀들(Cj, j=0, …,35)의 값이 주어진 것으로 한다. 그리고 아래의 단계들에서 비트의 카운팅(counting)은 0부터 시작된다.The subkey generation algorithm 200 generates 36 32-bit subkeys (K (i), i = 0, ..., 35) using a given key value as follows. It is composed of steps 210, 220, 230, 240, 250, and 260. However, the initial value is a cell value of the j-th bit, based on the least significant bit of the C j of the cell to give a 1-cell a value of the remaining bits of the C j of the cell space 110 is used by the algorithm are the way to zero It is assumed that the values of all the cells C j , j = 0, ..., 35 are given. And in the steps below the counting of bits starts from zero.
첫 번째 단계(210)는 초기 값이 주어진 셀룰라 공간(110)의 셀들의 값에 키 값을 반영하는 단계로, 키 값을 이진 비트의 열로 표현했을 때 최하위 비트를 기준으로 n번째 비트의 값을 셀 Ci의 최하위 비트를 기준으로 k번째 비트의 값으로 주는 방법으로 위의 열의 모든 비트의 값을 셀룰라 공간(110)의 셀들의 값에 반영한다. 단, n = 32×k + i, 0≤i<32.The first step 210 is to reflect the key value to the values of the cells in the cellular space 110 given the initial value. When the key value is expressed as a string of binary bits, the value of the n th bit is determined based on the least significant bit. By giving the value of the k th bit based on the least significant bit of the cell C i , the values of all the bits of the above column are reflected in the values of the cells of the cellular space 110. Where n = 32 x k + i, 0≤i <32.
두 번째 단계(220)는 m의 값을 0으로 주는 단계이다.The second step 220 is to give the value of m to zero.
세 번째 단계(230)는 셀룰라 공간(100)의 셀들의 값들을 동시변환 규칙 1(120)에 의하여 1회 갱신하고, 셀 C10의 값을 상위 비트 방향으로 1비트 비트와이즈하게 로테이션(rotation)하여 갱신하고, 셀 C18의 값을 상위 비트 방향으로 2비트 비트와이즈하게 로테이션(rotation)하여 갱신하는 것을 10회 반복하는 단계이다.The third step 230 updates the values of the cells in the cellular space 100 once by the co-conversion rule 1 120 and rotates the values of the cell C 10 in a higher bit direction by 1 bit bitwise. To update the cell C 18 by rotating the value of the cell C 18 in a higher bit direction in a two-bit bitwise manner.
네 번째 단계(240)는 셀룰라 공간(110)의 셀들의 값들을 동시변환 규칙 2(130)에 의하여 10회 갱신하는 단계이다.The fourth step 240 is to update the values of the cells in the cellular space 110 by the co-conversion rule 2 130 ten times.
다섯 번째 단계(25O)는 셀룰라 공간(110)의 셀 C0, C3, C6, C9, C12, C15, C18, C21의 값들에서 각각 최하위 4비트씩을 추출하여, C0에서 추출한 값이 K(m)의 최하위 4비트가 되고 C21에서 추출한 값이 K(m)의 최상위 4비트가 되도록 순서대로 연결하여 K(m)을 구성한다.The fifth step 2OO extracts the least significant 4 bits from the values of the cells C 0 , C 3 , C 6 , C 9 , C 12 , C 15 , C 18 , and C 21 of the cellular space 110, respectively . K (m) is formed by concatenating in order so that the value extracted from becomes the lowest 4 bits of K (m) and the value extracted from C 21 becomes the highest 4 bits of K (m).
여섯 번째 단계(260)에서는 m의 값이 35보다 작으면 m의 값을 1 증가시킨 다음 세 번째 단계(230)으로 가고, m의 값이 35이면 알고리즘(200)을 끝낸다.In the sixth step 260, if the value of m is less than 35, increase the value of m by 1 and then go to the third step 230; if the value of m is 35, the algorithm 200 ends.
치환함수(300)은 8비트의 값을 입력으로 받아 32비트의 값을 출력하는 치환으로써, 두 개의 셀룰라 공간(110)을 사용하고, 첫 번째 셀룰라 공간(310)의 셀들의 값들은 동시변환 규칙 1(120)에 의하여 계속하여 갱신하고 두 번째 셀룰라 공간(320)의 셀들의 값들은 동시변환 규칙 2(130)에 의하여 계속하여 갱신하면서, 두 개의 셀룰라 공간들(310, 320)의 동일한 위치의 셀들의 값들은 비트와이즈하게 배타적논리합한 값들을 계속하여 추출하고, 이 추출한 값들 중에서 그 특성이 우수한 값들을 다시 추출하여 치환함수(300)를 구성하였다. 치환함수(300)의 구성은 도 1과 같으며, 도 1은 입력값(16진수) 0x00에서부터 0xff까지에 대응하는 치환함수(300)의 출력 값(16진수)을 배열로 나타낸 것이다.The substitution function 300 is a substitution that receives an 8-bit value as an input and outputs a 32-bit value. The substitution function 300 uses two cellular spaces 110, and the values of the cells in the first cellular space 310 are co-conversion rules. Continuing updating by 1 (120) and the values of cells in the second cellular space 320 continuously updating by co-conversion rule 2 (130), while maintaining the same location of the two cellular spaces (310, 320). The values of the cells were continuously extracted with a bitwise exclusive logical sum, and the extracted values were extracted again to form the substitution function 300. The configuration of the substitution function 300 is the same as that of FIG. 1, and FIG. 1 illustrates an output value (hexadecimal number) of the substitution function 300 corresponding to an input value (hexadecimal) 0x00 to 0xff in an array.
확장함수(expansion function)(400)는 32비트의 입력 블록 I와 32비트의 서브키 두 개 key 1, key 2를 입력으로 받아 32비트의 3개의 블록 L, M, R을 출력하는 치환 함수로써, 덧셈, 비트와이즈한 배타적논리합, S-box 참조, 데이터 의존 로테이션(data dependent rotation) 등으로 이루어져 있으며, 구체적인 구조는 도 5와 같다. 도 5에서,은 비트와이즈한 배타적논리합을 뜻하며, 田은 232을 법으로 하는 덧셈을 뜻하고,는 S-box 참조로 E1의 값의 최하위 8비트의 값에 대응하는 치환함수(300)의 출력을 출력으로 하는 것이며, R1, R2, R3은 데이터 의존 로테이션들로, R1은 E1의 값을 E3의 값의 최하위 5비트를 정수로 표현한 값의 비트 만큼 상위 비트 방향으로 로테이션시키는 것이며, R2는 E3의 값을 E4의 값의 최하위 5비트를 정수로 표현한 값의 비트 만큼 상위 비트 방향으로 로테이션시키는 것이며,R3은 E5의 값을 E6의 값의 최하위 5비트를 정수로 표현한 값의 비트 만큼 상위 비트 방향으로 로테이션시키는 것이다.The expansion function 400 is a substitution function that receives a 32-bit input block I and two 32-bit subkeys key 1 and key 2 and outputs three 32-bit blocks L, M, and R. , Addition, bitwise exclusive logical sum, S-box reference, data dependent rotation, and the like, and the detailed structure thereof is shown in FIG. 5. In Figure 5, Means the bitwise exclusive logical sum, 田 means the addition using 2 32 as the law, Is the output of the substitution function 300 corresponding to the least significant 8-bit value of the value of E1 by reference to the S-box. R1, R2, and R3 are data dependent rotations, and R1 is the value of E1. Rotate the value of E3 in the upper bit direction by the bit of the value expressed as an integer by the least significant 5 bits of the value, and R2 rotates the value of E3 in the higher bit direction by the bit of the value represented by the integer of the least significant 5 bits of the value of E4. R3 rotates the value of E5 in the upper bit direction by the bit of the value representing the least significant 5 bits of the value of E6 as an integer.
키를 이용하는 전방변환(forward keyed transformation)(500)는 32비트의 블록 4개 M[0], M[1], M[2], M[3]를 입력으로 받아 도 6에서와 같은 라운드를 8회 반복한 뒤 그 값이 변화된 32비트의 블록 4개 M[0], M[1], M[2], M[3]를 출력하는 변환이다. 도 6에서,은 비트와이즈한 배타적논리합을 뜻하며, 田은 232을 법으로 하는 덧셈을 뜻하고,는 확장함수(400)를 뜻한다.Forward keyed transformation 500 uses four 32-bit blocks M [0], M [1], M [2], and M [3] as inputs to perform the same round as in FIG. This is a transformation that outputs four 32-bit blocks M [0], M [1], M [2], and M [3] whose values have changed after 8 iterations. In Figure 6, Means the bitwise exclusive logical sum, 田 means the addition using 2 32 as the law, Denotes an extension function (400).
키를 이용하는 후방변환(backorward keyed transformation)(600)는 32비트의 블록 4개 M[0], M[1], M[2], M[3]를 입력으로 받아 도 7에서와 같은 라운드를 8회 반복한 뒤 그 값이 변화된 32비트의 블록 4개 M[0], M[1], M[2], M[3]를 출력하는 변환이다. 도 7에서,은 비트와이즈한 배타적논리합을 뜻하며,은 232을 법으로 하는 뺄셈을 뜻하고,는 확장함수(400)를 뜻한다.A backward keyed transformation 600 uses four 32-bit blocks M [0], M [1], M [2], and M [3] as inputs to perform the same round as in FIG. This is a transformation that outputs four 32-bit blocks M [0], M [1], M [2], and M [3] whose values have changed after 8 iterations. In Figure 7, Means the bitwise exclusive logical sum, Means subtraction with 2 32 as the law, Denotes an extension function (400).
전방혼합(forward mixing)(700)은 32비트의 블록 4개 M[0], M[1], M[2], M[3]를 입력으로 받아, M[0]와 M[2]는 서브키 K(32)와 K(34)를 각각 비트와이즈하게 배타적논리합하여 변화시키고 M[1]와 M[3]는 서브키 K(33)와 K(35)를 각각 232을 법으로 하여 더하여 변화시키는 키 덧셈과 배타적논리합(key addition and XOR) 과정(710)을 거친 다음, 도 8에서와 같은 라운드를 8회 반복하는 키를 이용하지 않는 전방혼합(unkeyed forward mixing) 과정(720)을 거쳐서, 그 값이 변화된 32비트의블록 4개 M[0], M[1], M[2], M[3]를 출력하는 부분이다. 도 8에서,은 비트와이즈한 배타적논리합을 뜻하며, 田은 232을 법으로 하는 덧셈을 뜻하고,는 S-box 참조로 입력 값의 최하위 8비트의 값에 대응하는 치환함수(300)의 출력을 출력으로 하는 것을 뜻한다.Forward mixing 700 takes four 32-bit blocks M [0], M [1], M [2], M [3] as inputs, where M [0] and M [2] are The subkeys K (32) and K (34) are changed by bitwise exclusive logic sum, respectively, and M [1] and M [3] use subkeys K (33) and K (35) as 2 32 respectively. In addition, the key addition and XOR process 710 is changed, and then an unkeyed forward mixing process 720 using a key that repeats eight rounds as shown in FIG. 8 is performed. Through this, four 32-bit blocks M [0], M [1], M [2], and M [3] whose values have been changed are outputted. In Figure 8, Means the bitwise exclusive logical sum, 田 means the addition using 2 32 as the law, Means that the output of the substitution function 300 corresponding to the lowest 8-bit value of the input value is referred to as an S-box as an output.
후방혼합(backorward mixing)(800)는 32비트의 블록 4개 M[0], M[1], M[2], M[3]를 입력으로 받아, 도 9에서와 같은 라운드를 8회 반복하는 키를 이용하지 않는 후방혼합(unkeyed backward mixing) 과정(810)을 거쳐서 M[0], M[1], M[2], M[3]의 값을 변화시킨 다음, M[0]와 M[2]는 서브키 K(32)와 K(34)를 각각 비트와이즈하게 배타적논리합하여 변화시키고 M[1]와 M[3]는 서브키 K(33)와 K(35)를 각각 232을 법으로 하여 빼어서 변화시키는 키 뺄셈과 배타적논리합(key subtraction and XOR) 과정(820)을 거쳐서, 그 값이 변화된 32비트의 블록 4개 M[0], M[1], M[2], M[3]를 출력하는 변환이다. 도 9에서,은 비트와이즈한 배타적 논리합을 뜻하며,은 232을 법으로 하는 뺄셈을 뜻하고,는 S-box 참조로 입력 값의 최하위 8비트의 값에 대응하는 치환함수(300)의 출력을 출력으로 하는 것을 뜻한다.Backward mixing 800 receives four 32-bit blocks M [0], M [1], M [2], M [3] as inputs, and repeats the eight rounds as shown in FIG. After the unkeyed backward mixing process 810, the values of M [0], M [1], M [2], and M [3] are changed, and then M [0] and M [2] bitwise-wise changes subkeys K (32) and K (34), respectively, and M [1] and M [3] change subkeys K (33) and K (35) 2 respectively. Four 32-bit blocks M [0], M [1], M [2 whose values have been changed through the key subtraction and XOR process 820, which is changed by subtracting 32 by law. ], M [3]. In Figure 9, Means an exclusive OR of bitwise, Means subtraction with 2 32 as the law, Means that the output of the substitution function 300 corresponding to the lowest 8-bit value of the input value is referred to as an S-box as an output.
이상의 설명을 바탕으로 본 발명에 의한 데이터 암호화 및 복호화의 방법 및 장치에 대하여 설명한다. 본 발명에 의한 데이터 암호화 및 복호화의 방법 및 장치는 입력을 128비트의 블록들로 나누어 각 블록 단위로 처리하되 하나의 128비트 블록의 입력에 하나의 128비트 블록을 출력하는 블록 암호 시스템이며, 아래의 단계들(910, 920, 930, 940, 950, 960, 970, 980, 990)은 본 발명에 의한 데이터 암호화 및 복호화의 방법 및 장치에 의한 128비트의 평문 블록 하나를 128비트의 암호문 블록 하나로 변화시키는 암호화 과정(900)을 나타낸 것이며, 평문을 128비트의 블록들로 나누어 각 블록에 대하여 이와 같은 암호화 과정(900)을 적용하여 나오는 암호문의 블록들을 이어 붙여서 암호문을 만든다. 그리고 아래의 단계들(920, 940, 960, 980)에서 사용되는 36개의 서브키들(K(i), i=0, …,35)은 주어진 대칭키를 이용하는 서브키 생성 알고리즘(200)에 의하여 생성된 것을 사용한다. 그리고 복호화 과정(1000)은 암호화 과정(900)에서 사용한 대칭키와 동일한 키를 사용하며, 서브키들을 사용하는 순서만 제외하고 암호화 과정과 동일하다. 즉, 암호화 과정(900)과 복호화 과정(1000)에서는 2개의 서브키들을 사용하는 라운드가 각각 16라운드씩 있는데(아래의 단계(930)에서부터 단계(970)까지), 암호화 과정(900)의 첫 번째 라운드에서 사용하는 2개의 서브키들을 복호화 과정(1000)에서는 마지막 번째 라운드에서 사용하고 암호화 과정(900)의 마지막 번째 라운드에서 사용하는 2개의 서브키들을 복호화 과정(1000)에서는 첫 번째 라운드에서 사용하는 방식으로 서브키들을 사용하는 순서를 서로 바꾸어서 사용한다.Based on the above description, a method and apparatus for data encryption and decryption according to the present invention will be described. The method and apparatus for data encryption and decryption according to the present invention is a block encryption system for dividing an input into 128-bit blocks and processing each block unit, but outputting one 128-bit block to the input of one 128-bit block. Steps 910, 920, 930, 940, 950, 960, 970, 980, 990 of the 128-bit plaintext block by the 128-bit ciphertext block by the method and apparatus for data encryption and decryption according to the present invention The encryption process 900 is changed. The plaintext is divided into 128-bit blocks, and the ciphertext is formed by concatenating the blocks of ciphertext obtained by applying the encryption process 900 to each block. The 36 subkeys K (i), i = 0, ..., 35 used in the following steps 920, 940, 960, and 980 are performed by the subkey generation algorithm 200 using the given symmetric key. Use the generated one. The decryption process 1000 uses the same key as the symmetric key used in the encryption process 900 and is the same as the encryption process except for the order of using the subkeys. That is, in the encryption process 900 and the decryption process 1000, there are 16 rounds each using two subkeys (from step 930 to step 970 below). The two subkeys used in the first round are used in the last round in the decryption process 1000 and the two subkeys used in the last round in the encryption process 900 are used in the first round in the decryption process 1000. The order in which subkeys are used is interchanged.
첫 번째 단계(910)는 128비트의 입력 블록 M을 받아서, M의 최하위 32비트를 M[0]로 하는 방법으로 32비트의 M을 4개의 블록 M[0], M[1], M[2], M[3]으로 나누는 단계이다.The first step 910 takes an 128-bit input block M and sets the least significant 32 bits of M to M [0]. The 32-bit M is divided into four blocks M [0], M [1], M [ 2] and M [3].
두 번째 단계(920)는 M[0], M[1], M[2], M[3]를 서브키 K(32), K(33), K(34), K(35)를 이용하는 키 뎃셈과 배타적논리합 과정(710)을 통하여 변화시킨 다음 키를 이용하지 않는 전방혼합 과정(720)을 통하여 다시 변화시키는전방혼합(700)의 단계이다.The second step 920 uses M [0], M [1], M [2], M [3] with subkeys K (32), K (33), K (34), and K (35). It is a step of front mixing 700 which is changed through the key multiplication and the exclusive logical process 710 and then changed again through the front mixing process 720 without using the key.
세 번째 단계(930)은 i의 값을 0으로 주는 단계이다.The third step 930 is to give a value of i to zero.
네 번째 단계(940)는 M[0], M[1], M[2], M[3]를 키를 이용하는 전방변환(500)의 8라운드 중 서브키 K(2×i)와 K(2×i+1)을 확장함수(400)의 key 1과 key 2로 하는 1라운드의 실행을 통하여 변화시키는 단계이다.The fourth step 940 is the subkeys K (2 × i) and K (of 8 rounds of forward transform 500 using M [0], M [1], M [2], M [3] as keys. 2 × i + 1) is changed through the execution of the first round using key 1 and key 2 of the expansion function 400.
다섯 번째 단계(950)는 i의 값을 1 증가시킨 뒤 i가 8보다 작으면 네 번째 단계(940)로 가고, i가 8이면 여섯 번째 단계(560)로 가는 단계이다.The fifth step 950 is to increase the value of i by 1 and then go to the fourth step 940 if i is less than 8 and go to the sixth step 560 if i is 8.
여섯 번째 단계(960)는 M[0], M[1], M[2], M[3]를 키를 이용하는 후방변환(600)의 8라운드 중 서브키 K(2×i)와 K(2×i+1)을 확장함수(400)의 key 1과 key 2로 하는 1라운드의 실행을 통하여 변화시키는 단계이다.The sixth step 960 is the subkeys K (2 × i) and K (of 8 rounds of the backward transform 600 using the keys M [0], M [1], M [2], M [3]. 2 × i + 1) is changed through the execution of the first round using key 1 and key 2 of the expansion function 400.
일곱 번째 단계(970)는 i의 값을 1 증가시킨 뒤 i가 16보다 작으면 여섯 번째 단계(960)로 가고, i가 16이면 여덟 번째 단계(580)로 가는 단계이다.The seventh step 970 is to increase the value of i by one and then go to the sixth step 960 if i is less than 16 and go to the eighth step 580 if i is 16.
여덟 번째 단계(980)는 M[0], M[1], M[2], M[3]를 키를 이용하지 않는 후방혼합 과정(810)을 통하여 변화시킨 다음, 서브키 K(32), K(33), K(34), K(35)를 이용하는 키 뺄셈과 배타적논리합 과정(820)을 통하여 다시 변화시키는 후방혼합(800)의 단계이다.Eighth step 980 changes M [0], M [1], M [2], M [3] through a backmixing process 810 without using a key, and then subkey K (32). The step of back mixing 800 is changed again through the key subtraction and the exclusive logical mixing process 820 using K (33), K (34) and K (35).
아홉 번째 단계(990)는 M[0]를 출력 C의 최하위 32비트로 하는 방법으로, M(0), M[1], M[2], M[3]을 이어 붙여서 128비트의 출력 블록 C를 만드는 단계이다.The ninth step 990 is to make M [0] the lowest 32 bits of output C. The 128-bit output block C is concatenated by concatenating M (0), M [1], M [2], and M [3]. Step by step.
이상에서 설명한 본 발명에 의한 데이터 암호화 및 복호화의 방법 및 장치는불규칙성의 생성, 불규칙성의 효과적인 확산, 확산의 상호 간섭효과 등을 극대화할 수 있는 다차원 셀룰라 오토마타들에 기반한 치환함수와 서브키 생성 알고리즘을 이용하여 그 안전성과 효율성이 우수하다.The method and apparatus for data encryption and decryption according to the present invention described above use a substitution function and subkey generation algorithm based on multidimensional cellular automata that can maximize irregularity generation, effective spreading of irregularity, and mutual interference effect of spreading. Its safety and efficiency are excellent.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000036697A KR20020004021A (en) | 2000-06-29 | 2000-06-29 | Data encryption and decryption method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000036697A KR20020004021A (en) | 2000-06-29 | 2000-06-29 | Data encryption and decryption method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020004021A true KR20020004021A (en) | 2002-01-16 |
Family
ID=19675013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000036697A KR20020004021A (en) | 2000-06-29 | 2000-06-29 | Data encryption and decryption method and apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20020004021A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100450766B1 (en) * | 2002-10-11 | 2004-10-01 | 한국전자통신연구원 | Method for encryption and decryption using cellular automata and apparatus thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5677956A (en) * | 1995-09-29 | 1997-10-14 | Innovative Computing Group Inc | Method and apparatus for data encryption/decryption using cellular automata transform |
KR19980027399A (en) * | 1996-10-16 | 1998-07-15 | 구자홍 | Block encryption method and apparatus using cellular automata |
US5889868A (en) * | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
JPH11205301A (en) * | 1998-01-17 | 1999-07-30 | Koichi Matsukawa | Encryption processing unit |
KR20000027888A (en) * | 1998-10-29 | 2000-05-15 | 김영환 | Radio remote control system |
KR100374623B1 (en) * | 1999-02-25 | 2003-03-04 | 야자키 소교 가부시키가이샤 | Code division multiple communication method and code division multiple communication apparatus |
-
2000
- 2000-06-29 KR KR1020000036697A patent/KR20020004021A/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5677956A (en) * | 1995-09-29 | 1997-10-14 | Innovative Computing Group Inc | Method and apparatus for data encryption/decryption using cellular automata transform |
US5889868A (en) * | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
KR19980027399A (en) * | 1996-10-16 | 1998-07-15 | 구자홍 | Block encryption method and apparatus using cellular automata |
JPH11205301A (en) * | 1998-01-17 | 1999-07-30 | Koichi Matsukawa | Encryption processing unit |
KR20000027888A (en) * | 1998-10-29 | 2000-05-15 | 김영환 | Radio remote control system |
KR100374623B1 (en) * | 1999-02-25 | 2003-03-04 | 야자키 소교 가부시키가이샤 | Code division multiple communication method and code division multiple communication apparatus |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100450766B1 (en) * | 2002-10-11 | 2004-10-01 | 한국전자통신연구원 | Method for encryption and decryption using cellular automata and apparatus thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6314186B1 (en) | Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis | |
US6298136B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
Brown et al. | Improving resistance to differential cryptanalysis and the redesign of LOKI | |
US5365589A (en) | Method and apparatus for encryption, decryption and authentication using dynamical systems | |
Rahim et al. | Cryptography technique with modular multiplication block cipher and playfair cipher | |
CN110795762B (en) | Reserved format encryption method based on stream cipher | |
US20030133568A1 (en) | Programmable data encryption engine for advanced encryption standard algorithm | |
KR100800468B1 (en) | Hardware cryptographic engine and method improving power consumption and operation speed | |
KR20020006475A (en) | Encryption device, decryption device, expanded key generating device, expanded key generating method and recording medium | |
US20070189518A1 (en) | 3-D quaternion quantum fractal encryption | |
WO2009031883A1 (en) | Encryption processor | |
Kumar et al. | Intertwining logistic map and Cellular Automata based color image encryption model | |
CN114598444A (en) | Audio encryption method based on SM4 and dynamic S box | |
EP0996250A2 (en) | Efficient block cipher method | |
CN114124359A (en) | Method and device for preserving format encrypted data, electronic equipment and storage medium | |
CN116318669A (en) | Lightweight encryption method based on narrowband Internet of things | |
CN107707352A (en) | A kind of embedded encryption method | |
US20090022310A1 (en) | Cryptographic device and method for generating pseudo-random numbers | |
CN115694796A (en) | Internet of things security encryption method and device, storage medium and electronic equipment | |
US7433905B2 (en) | Device and method for processing digital values in particular in non-adjacent form | |
KR20020004021A (en) | Data encryption and decryption method and apparatus | |
CN110247754B (en) | Method and device for realizing block cipher FBC | |
Fu et al. | A simplified FPGA implementation based on an Improved DES algorithm | |
Barrera et al. | Improved mix column computation of cryptographic AES | |
KR100434558B1 (en) | A fast block encryption algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
NORF | Unpaid initial registration fee |