KR20020004021A - Data encryption and decryption method and apparatus - Google Patents

Data encryption and decryption method and apparatus Download PDF

Info

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
Application number
KR1020000036697A
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 이상성
Priority to KR1020000036697A priority Critical patent/KR20020004021A/en
Publication of KR20020004021A publication Critical patent/KR20020004021A/en

Links

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/0618Block 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

PURPOSE: A method and an apparatus for encoding and decoding data are provided to encode and decode binary data in block units by using cellular automata. CONSTITUTION: An expansion function as a substitution function receives an input block I of 32 bits and two sub keys(key1,key2) of 32 bits and outputs three blocks of 32 bits. The expansion function is composed of addition, bitwise XOR, S-box reference, and data dependent rotation. R1 is to rotate a value of E1 as much as the bit number of an integer value corresponding to the least 5 bits of a value of E3 toward an upper bit direction. R2 is to rotate the value of E3 as much as the bit number of an integer value corresponding to the least 5 bits of a value of E4 toward an upper bit direction. R3 is to rotate a value of E5 as much as the bit number of an integer value corresponding to the least 5 bits of a value of E6 toward an upper bit direction.

Description

데이터 암호화 및 복호화 방법 및 장치{.}Method and apparatus for encrypting and decrypting data {.}

본 발명은 다차원 셀룰라 오토마타(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)

이진 데이터를 암호화 및 복호화하는 방법 및 장치에 있어서, 이진 데이터의 입력을 128비트 단위의 블록들로 나누어 각 블록 단위로 처리하고, 4행 8열의 형태의 사각형들로 이루어진 평면도형을 이용하여 32개의 사각형 모양의 셀들로 이루어진 셀룰라 공간을 구성하고 셀들의 번호들을 0번부터 31번까지 부여하는 단계, 상기 셀룰라 공간의 각 셀의 첫 번째 형태의 이웃 셀들을 1개 또는 2개 또는 3개 규정하는 단계, 상기 셀룰라 공간의 각 셀의 두 번째 형태의 이웃 셀들을 3개씩 규정하는 단계, 상기 셀룰라 공간의 각 셀의 값을 상기 각 셀의 첫 번째 형태의 이웃 셀들의 값들을 비트와이즈하게 배타적논리합한 값으로 갱신하는 방법으로 모든 셀들의 값들을 동시에 갱신하는 선형적인 동시변환 규칙을 규정하는 단계, 상기 셀룰라 공간의 각 셀의 값을 상기 각 셀의 두 번째 형태의 이웃 셀들의 3개의 값들 중 첫 번째 값과 두 번째 값을 비트와이즈하게 논리합한 후 이 값을 세 번째 값과 비트와이즈하게 배타적논리합한 값으로 갱신하는 방법으로 모든 셀들의 값들을 동시에 갱신하는 비선형적인 동시변환 규칙을 규정하는 단계, 주어진 키 값을 상기 셀룰라 공간의 셀들의 초기 값에 반영하는 부분단계, 상기 셀룰라 공간의 셀들의 값들을 상기 선형적인 동시변환 규칙을 이용하여 1회 갱신하고 상기 셀룰라 공간의 10번 셀의 값을 상위 비트 방향으로 1비트 로테이션하여 갱신하고 상기 셀룰라 공간의 18번 셀의 값을 상위 비트 방향으로 2bit 로테이션하여 갱신하는 것을 10회 반복하는 부분단계, 상기 셀룰라 공간의 셀들의 값들을 상기 비선형적인 동시변환규칙에 의하여 10회 갱신하는 부분단계, 상기 셀룰라 공간의 0번, 3번, 6번, 9번, 12번, 15번, 18번, 21번 셀들의 값들에서 각각 최하위 4비트씩 추출하여 0번 셀에서 추출한 값이 서브키의 최하위 4비트로 하는 방법으로 순서대로 연결하여 32비트의 서브키를 1개 생성하는 부분단계 등의 부분단계들 중 주어진 키 값을 상기 셀룰라 공간의 셀들의 초기 값에 반영하는 상기의 부분단계는 한번만 시행하고 나머지의 부분단계들을 순서대로 36회 반복하여 상기 주어진 키에 대응하는 0번부터 35번까지의 36개의 서브키들을 생성하는 단계, 상기 셀룰라 공간의 셀들의 값들을 상기 선형적인 동시변환 규칙을 이용하여 계속하여 갱신하고 상기 셀룰라 공간의 셀들의 값들을 상기 비선형적인 동시변환 규칙을 이용하여 계속하여 갱신하면서 동일한 번호의 셀들의 값들끼리 비트와이즈하게 배타적논리합한 값들을 추출한 다음 이 추출한 값들 중에서 일부를 추출하여 8비트의 값을 입력으로 받아 32비트의 값을 출력으로 하는 치환함수를 구성하는 단계, 32비트의 블록을 입력으로 받는 부분단계, 서브키 1과 서브키 2를 입력으로 받는 부분단계, 상기 32비트의 입력과 상기 서브키 1을 더하여 부분출력 1로 하는 부분단계, 상기 부분출력 1의 최하위 8비트를 이용하여 이에 대응하는 상기 치환함수의 출력 값을 부분출력 2로 하는 부분단계, 상기 부분출력 2와 서브키 2를 더하여 부분출력 3으로 하는 부분단계, 상기 부분출력 1의 값을 상기 부분출력 3의 최하위 5비트를 정수로 한 값의 비트 수 만큼 상위 비트 방향으로 로테이션한 값을 부분출력 4로 하는 부분단계, 상기 부분출력 2와 상기 부분출력 4를 더하여 부분출력 5로 하는 부분단계, 상기 부분출력 3의 값을 상기 부분출력 4의 최하위 5비트를 정수로 한 값의 비트 수 만큼 상위 비트 방향으로로테이션한 값에 상기 부분출력 4를 더하여 부분출력 6으로 하는 부분단계, 상기 부분출력 5의 값을 상기 부분출력 6의 최하위 5비트를 정수로 한 값의 비트 수 만큼 상위 비트 방향으로 로테이션한 값을 부분출력 7로 하는 부분단계, 상기 부분출력 4와 상기 부분출력 7과 상기 부분출력 6을 확장함수의 3개의 32비트 출력으로 하며 각각 출력 1, 출력 2, 출력 3으로 하는 부분단계 등의 부분단계들을 포함하는 확장함수를 구성하는 단계 등의 단계들을 포함하고, 암호화 과정과 복호화 과정에서 동일한 키를 사용하고, 암호화 과정과 복호화 과정이 동일한 서브키들을 사용하되 사용하는 순서만을 달리하는 것을 제외하고는 동일한 것을 특징으로 하는 데이터 암호화 및 복호화 방법 및 장치.In the method and apparatus for encrypting and decrypting binary data, input of binary data is divided into 128-bit blocks and processed in each block unit, and 32 pieces are formed by using a plan view consisting of quadrangles in the form of four rows and eight columns. Constructing a cellular space consisting of square-shaped cells and assigning the numbers of the cells from 0 to 31; defining one, two, or three neighboring cells of the first type of each cell of the cellular space Defining three neighboring cells of the second type of each cell of the cellular space, and a value obtained by bitwise-exposing the values of each cell of the cell space with the values of the neighboring cells of the first type of each cell. Defining a linear co-conversion rule for simultaneously updating the values of all cells in a manner of updating the value of each cell; All cells by bitwise-wise combining the first value and the second value of the three values of the neighboring cells of the second type of each cell, and then updating the value with the third value and the exclusively logically-wise value with the third value. Defining a non-linear co-conversion rule that simultaneously updates the values of the subfields, substep of reflecting a given key value in the initial value of the cells of the cellular space, using the linear co-conversion rule. To update once by rotating the value of cell 10 in the cellular space 1 bit in the upper bit direction and to update the value of cell 18 in the cellular space by rotating 2 bit in the upper bit direction 10 times. The sub-step of updating the values of the cells in the cellular space ten times according to the nonlinear co-conversion rule, The cell Extract the lowest 4 bits from the values of cells 0, 3, 6, 9, 12, 15, 18, and 21 of the space so that the value extracted from cell 0 is the lowest 4 bits of the subkey. The sub-steps above reflecting the given key value to the initial values of the cells in the cellular space, among the sub-steps such as sub-steps in which one 32-bit subkey is generated by connecting them in order, are executed only once and the remaining part. Repeating the steps 36 times in order to generate 36 subkeys from 0 to 35 corresponding to the given key, continuously updating values of cells in the cellular space using the linear co-conversion rule And continuously updating values of the cells in the cellular space using the nonlinear co-conversion rule, extracting values that are exclusively logically bitwise between values of cells of the same number. Next, a part of the extracted values is extracted and an 8-bit value is input to construct a substitution function that outputs a 32-bit value, a sub-step that receives a 32-bit block as input, subkey 1 and subkey 2 A partial step of receiving an input, a partial step of adding the 32-bit input and the subkey 1 to a partial output 1, and partially outputting an output value of the corresponding substitution function using the least significant 8 bits of the partial output 1 A partial step of 2, a partial step of adding the partial output 2 and the subkey 2 to a partial output 3, a higher bit by the number of bits of the value of the partial output 1 as the lowest 5 bits of the partial output 3 as an integer A partial step of rotating the value rotated in the direction to a partial output 4, a partial step of adding the partial output 2 and the partial output 4 to a partial output 5, and outputting the value of the partial output 3 to the partial output. A partial step of adding the partial output 4 to the partial output 6 by adding the partial output 4 to the value rotated in the upper bit direction by the number of bits of an integer value of the least significant 5 bits of 4, the value of the partial output 5 being the lowest 5 of the partial output 6 A partial step of converting the value rotated in the upper bit direction by the number of bits of an integer value as a bit into a partial output 7, and the partial output 4 and the partial output 7 and the partial output 6 into three 32-bit outputs of an extension function. And constructing an extension function including substeps such as substeps such as output 1, output 2, and output 3, respectively, using the same key in the encryption and decryption processes, and using the encryption and decryption processes. Method and apparatus for data encryption and decryption, characterized in that the process is the same except for using the same sub-keys only different order of use. 제 1항에 있어서, 128비트의 입력 블록을 받아서 상기 입력 블록의 최하위 32비트를 0번 부분블록으로 하는 방법으로 상기 입력 블록을 32비트의 4개의 부분블록, 즉, 0번 부분블록, 1번 부분블록, 2번 부분블록, 3번 부분블록으로 나누는 단계, 상기 0번 부분블록과 2번 부분블록에 상기 32번 서브키와 34번 서브키를 각각 비트와이즈하게 배타적논리합하여 상기 0번 부분블록과 2번 부분블록을 변화시키는 부분단계, 상기 1번 부분블록과 3번 부분블록에 상기 33번 서브키와 35번 서브키를 각각 더하여 상기 1번 부분블록과 3번 부분블록을 변화시키는 부분단계 등을 포함하는 키 덧셈과 배타적논리합 단계, 상기 0번 부분블록의 최하위 8비트에 대응하는 상기 치환함수의 출력을 구하는 부분단계, 상기 변화된 1번 부분블록, 2번 부분블록, 3번 부분블록에 상기 치환함수의 출력을 각각 배타적논리합, 덧셈,배타적논리합하여 1번 부분블록, 2번 부분블록, 3번 부분블록을 변화시키는 부분단계, 변화시킨 0번 부분블록, 1번 부분블록, 2번 부분블록, 3번 부분블록의 값들을 각각 3번 부분블록, 0번 부분블록, 1번 부분블록, 2번 부분블록의 새로운 값들로 주는 부분단계 등의 3가지의 부분단계들을 순서대로 8회 반복하여 상기 부분블록들의 값들을 변화시키는 전방혼합 단계, 상기 변화된 0번 부분블록과 서브키 1과 서브키 2에 대응하는 상기 확장함수의 3개의 출력 출력 1, 출력 2, 출력 3을 구하는 부분단계, 상기 변화된 1번 부분블록, 2번 부분블록, 3번 부분블록에 상기 확장함수의 출력 1, 출력 2, 출력 3을 각각 덧셈, 배타적논리합, 덧셈하여 1번 부분블록, 2번 부분블록, 3번 부분블록을 변화시키는 부분단계, 변화시킨 0번 부분블록, 1번 부분블록, 2번 부분블록, 3번 부분블록의 값들을 각각 3번 부분블록, 0번 부분블록, 1번 부분블록, 2번 부분블록의 새로운 값들로 주는 부분단계 등의 3가지의 부분단계들로 구성된 라운드를 8라운드 반복하되, 상기 0번 서브키에서 15번 서브키까지의 16개의 서브키들에서 순서대로 2개씩의 서브키들을 각 라운드에서의 서브키 1과 서브키 2로 사용하는 전방변환 단계, 상기 변화된 0번 부분블록과 서브키 1과 서브키 2에 대응하는 상기 확장함수의 3개의 출력 출력 1, 출력 2, 출력 3을 구하는 부분단계, 상기 변화된 1번 부분블록, 2번 부분블록, 3번 부분블록에 상기 확장함수의 출력 1, 출력 2, 출력 3을 각각 뺄셈, 배타적논리합, 뺄셈하여 1번 부분블록, 2번 부분블록, 3번 부분블록을 변화시키는 부분단계, 변화시킨 0번 부분블록, 1번 부분블록, 2번 부분블록, 3번 부분블록의 값들을 각각 1번 부분블록, 2번 부분블록, 3번 부분블록, 0번 부분블록의 새로운 값들로 주는 부분단계 등의 3가지의부분단계들로 구성된 라운드를 8라운드 반복하되, 상기 16번 서브키에서 32번 서브키까지의 16개의 서브키들에서 순서대로 2개씩의 서브키들을 각 라운드에서 서브키 1과 서브키 2로 사용하는 후방변환 단계, 상기 0번 부분블록의 최하위 8비트에 대응하는 상기 치환함수의 출력을 구하는 부분단계, 상기 변화된 1번 부분블록, 2번 부분블록, 3번 부분블록에 상기 치환함수의 출력을 각각 배타적논리합, 뺄셈, 배타적논리합하여 1번 부분블록, 2번 부분블록, 3번 부분블록을 변화시키는 부분단계, 변화시킨 0번 부분블록, 1번 부분블록, 2번 부분블록, 3번 부분블록의 값들을 각각 1번 부분블록, 2번 부분블록, 3번 부분블록, 0번 부분블록의 새로운 값들로 주는 부분단계 등의 3가지의 부분단계들을 순서대로 8회 반복하여 상기 부분블록들의 값들을 변화시키는 후방혼합 단계, 상기 0번 부분블록과 2번 부분블록에 상기 32번 서브키와 34번 서브키를 각각 비트와이즈하게 배타적논리합하여 상기 0번 부분블록과 2번 부분블록을 변화시키는 부분단계, 상기 1번 부분블록과 3번 부분블록에 상기 33번 서브키와 35번 서브키를 각각 빼어 상기 1번 부분블록과 3번 부분블록을 변화시키는 부분단계 등을 포함하는 키 뺄셈과 배타적논리합 단계, 상기 0번 부분블록을 출력의 최하위 32비트로 하는 방법으로 상기 32비트의 4개의 부분블록, 즉, 0번 부분블록, 1번 부분블록, 2번 부분블록, 3번 부분블록을 이어 붙여서 128비트의 출력으로 하는 단계 등의 단계들을 포함하는 과정을 상기의 암호화 과정으로 하는 것을 특징으로 하는 데이터 암호화 및 복호화 방법 및 장치.The method according to claim 1, wherein the input block is divided into four 32-bit subblocks, i.e., subblock 0, 1, by receiving a 128-bit input block and making the least significant 32 bits of the input block 0. Dividing into subblock, subblock # 2, subblock # 3, and subblocking the subkey # 32 and the subkey # 34 in the subblock # 0 and subblock # 2 respectively by bitwise Substep of changing subblock # 2 and subblock # 2, subblock # 1 and subblock # 35 to the subblock # 1 and subblock # 3, respectively; A key addition and an exclusive logical sum step including a second step, a partial step of obtaining an output of the substitution function corresponding to the least significant 8 bits of the subblock 0, the changed subblock 1, subblock 2, subblock 3 The substitution The output of the function is divided into exclusive logic sum, addition, and exclusive logic sum, respectively, to change the subblock 1, subblock 2, subblock 3, substep changed, subblock 0, subblock 1, subblock 2, The sub-steps are repeated eight times in sequence, such as substeps, which give values of subblock 3, subblock # 3, subblock 0, subblock 1, and subblock # 2 as new values, respectively. A forward mixing step of changing values of blocks, a partial step of obtaining three output outputs 1, 2 and 3 of the extension function corresponding to the changed subblock number 0 and subkey 1 and subkey 2, and the changed 1 Add subblock 1, subblock 2, subblock 3, and add output 1, output 2, and output 3 of the extension function, exclusive logical sum, and add subblock 1, subblock 2, and subblock 3. Changing part step, changing part 0 Three subblocks that give the values of block, subblock 1, subblock 2, and subblock 3 to new values of subblock 3, subblock 0, subblock 1, and subblock 2 respectively. Repeat the round consisting of substeps of 8 rounds, with two subkeys in sequence from 16 subkeys from subkey 0 to subkey 15 to subkey 1 and subkey 2 in each round. A forward conversion step of using, a partial step of obtaining three output outputs 1, output 2, and output 3 of the extension function corresponding to the changed subblock 0 and subkey 1 and subkey 2, the changed partial block 1, A substep of subtracting, subtracting, and subtracting the output 1, the output 2, and the output 3 of the extension function from the subblock 2 and the subblock 3, respectively, to change the subblock 1, the subblock 2, and the subblock 3. , Subblock 0, subblock 1, subpart 2 8 rounds of three substeps, including the substeps that give the new values for the block, subblock 3, subblock 1, subblock 2, subblock 3, and subblock 0, respectively. Repeating, using two subkeys in sequence from the 16th subkey to the 32th subkey in sequence as subkey 1 and subkey 2 in each round, subblock 0; A partial step of obtaining the output of the substitution function corresponding to the least significant 8 bits of the subblock, the output of the substitution function to the changed subblock 1, subblock 2, subblock 3, respectively, exclusive logical sum, subtraction, exclusive logical sum 1 Substep of changing subblock # 2, subblock # 2, subblock # 3, subblock # 0 changed, subblock # 1, subblock # 2, subblock # 3, and subblock # 1 respectively Subblock number 3, subblock number 3, 0 A submixing step of changing the values of the subblocks by repeating three substeps, such as a substep, to give new values of the subblocks eight times in order, and sub 32nd to the subblock # 0 and the subblock # 2. A substep of changing the subblock # 0 and the subblock # 2 by performing an exclusive logical bitwise combination of the key and subkey # 34 respectively, and subblock # 33 and subblock # 35 in subblock # 1 and subblock # 3. Key subtraction and exclusive logic steps including substeps of subkeys 1 and 3 for subblocking each key, and the subblock # 0 as the least significant 32 bits of the output. Encrypting a process including the steps of subblocks, i.e., subblock 0, subblock 1, subblock 2, subblock 3, and outputting 128 bits Data encryption and decryption method and apparatus is characterized in that the process.
KR1020000036697A 2000-06-29 2000-06-29 Data encryption and decryption method and apparatus KR20020004021A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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