KR100434558B1 - 고속블록암호화방법및이를위한키스케쥴링방법 - Google Patents

고속블록암호화방법및이를위한키스케쥴링방법 Download PDF

Info

Publication number
KR100434558B1
KR100434558B1 KR1019970066982A KR19970066982A KR100434558B1 KR 100434558 B1 KR100434558 B1 KR 100434558B1 KR 1019970066982 A KR1019970066982 A KR 1019970066982A KR 19970066982 A KR19970066982 A KR 19970066982A KR 100434558 B1 KR100434558 B1 KR 100434558B1
Authority
KR
South Korea
Prior art keywords
result
exclusive
subblock
block
round
Prior art date
Application number
KR1019970066982A
Other languages
English (en)
Other versions
KR19990048318A (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 KR1019970066982A priority Critical patent/KR100434558B1/ko
Publication of KR19990048318A publication Critical patent/KR19990048318A/ko
Application granted granted Critical
Publication of KR100434558B1 publication Critical patent/KR100434558B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

Landscapes

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

Abstract

고속 블록 암호화 방법 및 이를 위한 키 스케쥴링 방법이 개시된다. 본 발명의 고속 블록 암호화 방법은 (a) 암호화하고자 하는 i번째 데이터 스트림 X(i)를 좌측 블록 XL(i)와 우측 블록 XR(i)로 등분하는 단계; (b) XR(i)와 소정 라운드 키를 소정 서브블록 단위로 배타적 논리합 연산하는 단계; (c) (b) 단계에서 배타적 논리합 연산한 결과들 중 제1결과를 제1S-박스로 입력하고, 제2결과를 제1결과와 배타적 논리합 연산하여 제2S-박스로 입력하며, 제3결과를 제1 및 제2결과와 배타적 논리합 연산하여 제3S-박스로 입력하고, 제4결과를 제1, 제2 및 제3결과와 배타적 논리합 연산하여 제4S-박스로 입력하는 단계; (d) 각 S-박스에서 입력된 값들을 이용하여 소정 연산한 다음, 제1 내지 제4S-박스의 출력 E2, E3, E4 및 E1를 출력하는 단계; (e) E2, E3, E4 및 E1을 E1, E2, E3 및 E4의 순서로 연접하여 E를 출력하는 단계; (f) (b)단계의 배타적 논리합 연산결과를 (i+1)번째 좌측 블록 XL(i+1)으로 치환하고, E와 XL(i)를 배타적 논리합 연산한 결과를 (i+1)번째 우측 블록 XR(i+2)으로 치환하는 단계; 및 (g) XL(i+1) 및 XR(i+1)을 이용하여 마지막 라운드까지 (b) 내지 (f)단계를 반복하여 수행하고, 최종 라운드에서 출력되는 좌측 및 우측 블록값들을 연접하여 암호문으로 출력하는 단계를 포함한다.

Description

고속 블록 암호화 방법 및 이를 위한 키 스케쥴링 방법{A fast block encryption algorithm}
본 발명은 정보의 암호화방식에 관한 것으로서, 차분해독법(Differential Cryptanalysis)과 선형해독법(Linear Cryptanalysis)에 의한 공격에 대하여 안전성을 보장할 수 있고, 구현이 간단할 뿐 아니라 고속처리가 가능한 고속 블록 암호화방법 및 이를 위한 키 스케쥴링 방법에 관한 것이다.
종래의 블록암호 알고리즘은 설계자의 실제 보안(practical security) 등에 대한 감각에 의존하여 설계됨에 따라 작동 효율적이지 못한다는 문제점이 있었다.그렇기 때문에 차분해독법 또는 선형해독법과 같은 여러 가지 많은 암호 해독방식에 의해 손쉽게 해독되었다.
따라서 암호 공격에 안정성을 보장할 수 있고 고속처리가 가능한 고속 블록 암호화 방법이 필요하다.
따라서 본 발명이 이루고자 하는 기술적 과제는 페이스텔 구조의 암호화 구조에 사용되는 라운드 함수를 4개의 S-박스로 구성하는 블록 암호화 및 이를 위한 키 스케쥴링 방법을 제공하는데 있다.
도 1은 본 발명이 적용되는 일반적인 페이스텔 형태의 암호화 알고리즘을 설명하는 도면이다.
도 2는 도 1의 라운드함수블록에서 수행되는 암호화 과정을 설명하는 도면이다.
도 3은 도 2의 과정에서 사용되는 라운드 키를 스케쥴링하는 과정을 설명하는 도면이다.
상기 기술적 과제를 이루기위한, 본 발명의 고속 블록 암호화 방법은 (a) 암호화하고자 하는 i번째 데이터 스트림 X(i)를 좌측 블록 XL(i)와 우측 블록 XR(i)로 등분하는 단계; (b) 상기 XR(i)와 소정 라운드 키를 소정 서브블록 단위로 배타적 논리합 연산하는 단계; (c) 상기 (b) 단계에서 배타적 논리합 연산한 결과들 중 제1결과를 제1S-박스로 입력하고, 제2결과를 제1결과와 배타적 논리합 연산하여 제2S-박스로 입력하며, 제3결과를 제1 및 제2결과와 배타적 논리합 연산하여 제3S-박스로 입력하고, 제4결과를 제1, 제2 및 제3결과와 배타적 논리합 연산하여 제4S-박스로 입력하는 단계; (d) 상기 각 S-박스에서 입력된 값들을 이용하여 소정 연산한 다음, 제1 내지 제4S-박스의 출력 E2, E3, E4 및 E1를 출력하는 단계; (e) 상기 E2, E3, E4 및 E1을 E1, E2, E3 및 E4의 순서로 연접하여 E를 출력하는 단계; (f) 상기 (b)단계의 배타적 논리합 연산결과를 (i+1)번째 좌측 블록 XL(i+1)으로 치환하고, 상기 E와 XL(i)를 배타적 논리합 연산한 결과를 (i+1)번째 우측 블록 XR(i+2)으로 치환하는 단계; 및 (g) 상기 XL(i+1) 및 XR(i+1)을 이용하여 마지막 라운드까지 상기 (b) 내지 (f)단계를 반복하여 수행하고, 최종 라운드에서 출력되는 좌측 및 우측 블록값들을 연접하여 암호문으로 출력하는 단계를 포함함을 특징으로한다.
상기 기술적 과제를 이루기위한 본 발명의 키 스케쥴링의 방법은 연쇄적으로 수행되는 복수의 라운드를 통과하면서 매 라운드마다 생성되는 라운드 키를 이용하여 데이터를 암호화할 때, 상기 라운드 키를 생성하는 키 스케쥴링 방법에 있어서, (a) 소정 라운드 키 K(i)를 소정 서브블록 단위로 등분하는 단계; (b) 상기 라운드 키의 제1서브블록을 제4서브블록과 모듈로 합 연산하여 제1결과를 출력하고, 제2서브블록을 상기 제1결과와 배타적 논리합 연산하여 제2결과를 출력하며, 제3서브블록을 상기 제2결과와 모듈로 합 연산하여 제3결과를 출력하고, 제4서브블록을 상기 제3결과와 배타적 논리합 연산하여 제4결과를 출력하는 단계; (c) 소정 골든넘버를 상기 라운드 키의 서브블록들과 동일한 크기로 등분하는 단계; (d) 상기 제1결과를 제1골든넘버 서브블록과 배타적 논리합 연산하고, 상기 제2결과를 제2골든넘버 서브블록과 모듈로 합 연산하며, 상기 제3결과를 제3골든넘버 서브블록과 배타적 논리합 연산하고, 상기 제4결과를 제4골든넘버 서브블록과 모듈로 합 연산하는 단계; (e) 상기 (d)단계의 연산결과들을 차례로 연접하고, 연접된 결과를 좌측으로 소정 비트수만큼 회전하는 단계; (f) 소정 크기의 시드 키를 좌측 블록 KL과 우측 블록 KR로 등분하는 단계; 및 (g) 상기 KL 및 KR에 대해 각각 상기 (a) 내지 (e)과정을수행하여 그 결과들을 각각 제1 및 제2라운드 키로 설정하고, i가 1이상의 자연수이면 (i+2)번째 라운드 키 K(i+2)는 K(i)에 대해 상기 (a) 내지 (e)과정을 수행한 결과와 K(i+1)을 배타적 논리합 연산하여 구하는 단계를 포함함을 특징으로한다.
이어서, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명하기로 한다.
본 발명에 따른 고속 블록 암호화에서는 데이터를 32비트 블록 단위로 암호화한다. 즉, 32비트 블록의 평문이 입력되어 32 비트 블록의 암호문이 출력된다. 블록 암호화방법은 사용되는 라운드 함수의 설계구조에 따라서 안전성 보장 여부가 결정된다.
상기한 바와 같은 암호화를 위해 본 발명에서는 다음과 같은 표시법(notation)을 사용하기로한다.
X(i)=[XL(i), XR(i)], i=0, 1, 2, …
X(0)=[XL(0), XR(0)]
여기서, X(i)는 64비트의 i번째 라운드 입력 데이터(round input data)이고, XL(i)는 X(i)의 좌측 32비트, XR(i)는 X(i)는 우측 32비트를 나타내며, X(0)는 암호 SEFA에 처음 입력되는 텍스트 64비트를 나타낸다.
또한, S1, S2, S3, S4는 각 회전에 사용되는 S-박스를 나타낸다.
F와 G를 각각 8비트 입력 및 출력함수라고 하면, 다음 식
F: GF(256)→GF(256)
F(x)=x-1, (단, x≠0)
F(0)=0
G1: GF(256)→GF(256)
G1(x)=45xmod 256, G1(0)=1, G(128)=0
G=GF(256)→GF(256)
G(x)=G1(G1(x))
여기서, GF(·)는 유한 체(Finite field)를 나타내고, mod는 모듈러 연산을 나타낸다.
과 같이 정의되면, S1, S2, S3 및 S4는 다음 식
S1(x)=S3(x)=F, S2(x)=S4(x)=G
과 같이 나타낼 수 있다.
이 때, 하드웨어로 구현하는 경우라면 S1=S2=S3=S4=F로 사용할 수도 있다.
상기한 바와 같은 파라미터들을 이용하여 입력 X에 대한 암호화 과정을 설명하면 다음과 같다.
도 1은 본 발명에 따른 페이스텔(Feistel) 형태의 암호화 알고리즘을 설명하는 도면이다. 도시된 바에 따르면, 암호화고자 하는 평문(plaintext)을 소정 비트, 여기서는 64비트의 데이터블록으로 나누어 좌우 대칭되게 32비트씩 입력시키면 64비트의 암호문(cipher text)이 출력된다. 64비트의 암호문을 출력하기 위해서는 총 16라운드의 과정을 거쳐야 하는데, 여기서는 제1 라운드에 대해서만 설명하기로 한다.
제1 라운드에서는, 입력된 64비트의 평문 데이터블록이 32비트씩 나뉘어져 32비트 좌측블록(XL(0),1)과 32비트 우측블록(XR(0),2)으로 입력된다. 제1 배타적논리합 연산기(3)에서는 32비트 우측블록(2)과 32비트 라운드키(K(1))에 대하여 배타적논리합 연산을 수행하고, 그 연산결과를 라운드함수블록(4)으로 제공한다. 이때, 상기 32비트 입력은 32비트 데이터를 처리하는 기기의 경우에는 32비트 단위로, 스마트 카드와 같이 8비트 데이터를 처리하는 장치의 경우에는 8비트 블록씩 나뉘어 배타적논리합이 수행된다. 라운드함수블록(4)에서는 제1 배타적논리합 연산기(3)로부터 제공되는 32비트 데이터에 대하여 소정의 신호처리를 수행한 후 제2 배타적논리합 연산기(5)에서 32비트 좌측블록(XL(0), 1)과 배타적논리합이 수행된다. 제2 배타적논리합 연산기(5)의 배타적논리합 연산결과는, 제2 라운드의 32비트 우측블록(미도시)으로 설정되고, 상기 32비트 우측블록(XR(0),2)은 제2 라운드의 32비트 좌측블록(미도시)으로 설정되어 상술한 바와 같은 과정을 반복수행한다. 제16라운드에서, 제1 배타적논리합 연산기(8)는 32비트 우측블록(7)과 32비트 라운드키(K(16))에 대하여 배타적논리합 연산을 수행하고, 그 연산결과를 라운드함수블록(9)으로 제공한다. 라운드함수블록(9)은 제1 배타적논리합 연산기(8)로부터 제공되는 32비트 데이터에 대하여 소정의 신호처리를 수행하고, 제2 배타적논리합 연산기(10)는 32비트 좌측블록(XL(15), 6)과 라운드함수 블록(9)의 출력을 배타적논리합 연산하여 Y의 좌반부(11)로 출력한다. Y의 우반부(12)는 좌측 블록의 값 XR(15)이 전달된다. Y의 좌반부(11) 및 Y의 우반부(12)를 연접하여 암호문 Y를 출력한다.
도 2는 도 1의 라운드 함수 블록에 의해 수행되는 암호화 과정을 도시한 것이다.
본 발명의 암호화는 반복되는 페이스텔형 구조를 갖기 때문에, i번째 라운드의 암호화 과정만을 설명하기로 한다. 도시된 과정에서 i번째 및 (i+1)번째 라운드 입력 데이터는 다음 식과 같이 표현할 수 있다.
X(i)=[XL(i), XR(i)]
X(i+1)=[XL(i+1), XR(i+1)]
XL(i)와 XR(i)를 4바이트 서브블록으로 각각 XL(i)_1, XL(i)_2, XL(i)_3, XL(i)_4, XR(i)_1, XR(i)_2, XR(i)_3, XR(i)_4와 같이 나타낸다면 다음 식과 같이 표현할 수 있다.
XL(i)=XL(i)_4|| XL(i)_3|| XL(i)_2|| XL(i)_1
XR(i)=XR(i)_4|| XR(i)_3|| XR(i)_2|| XR(i)_1
여기서, ||는 연접(concatenation)을 의미한다.
i번째 텍스트 블록 X(i)를 이용한 라운드의 암호화 과정은 다음과 같다.
먼저, i번째 입력 텍스트 XR(i)를 i번째 라운드 키 K(i)와 다음 식과 같이배타적논리합 연산한다(21단계).
Figure pat00005
(i+1)번째 라운드의 텍스트 블록 X(i+1)은 XL(i+1)=XR(i)와 같이 결정된다.
XR(i)을 수학식 5와 같이 4바이트의 서브블록으로 분할한 다음(22단계), 각 서브블록에 대해 다음 식과 같은 연산을 수행한다(23, 24단계).
Figure pat00006
수학식 7에 따르면, 제1S-박스 S1은 XR(i)_1에 대해 수학식 2 및 3에 설명된 바와 같이 [XR(i)_1]-1의 연산을 수행한다. 제2S-박스 S2는 XR(i)_1과 XR(i)_2를 배타적 논리합 연산한 다음, 연산결과 x에 대해 45xmod 256을 두 번 연쇄적으로 수행한다.
제3S-박스 S3는 XR(i)_1, XR(i)_2 및 XR(i)_3을 배타적 논리합 연산하고, 연산결과 x에 대해 x-1을 수행한다. 제4S-박스 S4는 XR(i)_1, XR(i)_2, XR(i)_3 및 XR(i)_4를 배타적 논리합 연산하고, 연산결과 x에 대해 45xmod 256을 두 번 연쇄적으로 수행한다.
E2, E3, E4 및 E1은 각각 S1,S2,S3 및 S4를 통과한 값이고, E는 E1, E2, E3 및 E4를 연접하여 구해진다.
구해진 E와 XL(i)를 배타적 논리합 연산하여 XR(i+1)을 구한다(25단계). 이러한 과정을 16라운드 동안 반복실행하고, 최종 16번째 라운드의 출력 X(16)이 평문 텍스트 X=X(0)의 암호문 Y로 출력된다.
도 3은 도 2의 암호화 과정에서 사용되는 라운드 키를 스케쥴링하는 과정을 도시한 것이다. 본 실시예의 키 스케쥴링 과정은 64비트에서 128비트까지 임의의 길이의 시드(seed) 키에 적용할 수 있다. 본 실시예에서는 시드 키의 길이가 64비트인 경우에 대한 라운드 키 스케쥴링 과정을 설명하기로 한다.
골든 넘버(Golden Number) GN=0xb7e15163=G4||G3||G2||G1을 키 스케쥴링에 사용되는, 바이트 단위로 연접된 32비트 상수라 하자. 또한, KL 및 KR이 각각 시드 키의 32비트 좌측블록 및 우측블록이라 하고, KL 및 KR을 다음 식과 같이 각각 4개의 8비트 서브블록으로 나누기로한다.
KL=KL4||KL3||KL2||KL1
KR=KR4||KR3||KR2||KR1
32비트의 입출력을 갖는 "키 스크롤 함수(key scrolling function)"인 SCROL을 다음과 같이 정의하자. 임의의 키 K=K4||K3||K2||K1를 SCROL함수의 입력이라 하고(31단계), K*를 SCROL의 출력이라 하면, K*=SCROL(K)로 나타낼 수 있다. SCROL함수는 K 및 GN으로부터 다음 식을 포함한 과정과 같이 정의될 수 있다(32, 33단계).
Figure pat00007
여기서,
Figure pat00008
는 배타적 논리합 연산을 의미하고, +는 두 값을 가산하여 256에 대해 모듈러 연산하는 것을 의미하고, 이후 모듈러 합 연산이라 칭하기로 한다.
수학식 10에 따르면, T1은 K1과 K4를 모듈러 합 연산하고, 연산결과를 G1과 배타적 논리합 연산하여 구해진다. T2는 K2를 앞서 구한 T1과 배타적 논리합 연산하고, 연산결과를 G2와 모듈러 합 연산하여 구해진다. 마찬가지로 T3는 K3와 T2를 모듈러 합 연산한 다음 G3와 배타적 논리합 연산하여 구해진다. T4는 K4와 T3를 배타적 논리합 연산하고, 연산 결과를 G4와 모듈러 합 연산하여 구해진다.
K*=SCROL(K)은 수학식 10으로부터 얻어진 T를 3비트 좌측으로 회전하여, 즉, K*=T<<<3와 같이 얻어진다(34단계). 따라서 전체 키 스케쥴링은 K(i)가 32비트의 i번째 라운드 키일 때 다음 코드 식과 같이 나타낼 수 있다(35단계).
Figure pat00009
즉, 첫 번째 및 두 번째 라운드 키는 KL 및 KR에 대한 각각 SCROL을 수행한 결과로 초기화되고, 세 번째 이후의 (i+2)번째 라운드 키는 i번째 라운드 키에 대한 스크롤 함수 값과 K(i+1)을 배타적 논리 합 연산하여 구해진다.
이와 같은 라운드함수블럭 구조를 이용하면 8비트 단위로 분할된 서브블럭들이 S-박스를 통과함으로써 낮은 선형성과 낮은 차분 균일성을 얻게 되고, 그 결과 블록 암호화 알고리즘의 해독방식인 차분해독법과 선형해독법에 대하여 상당히 안전성을 보장할 수 있을 뿐 아니라 고속처리를 가능케한다. 일반적으로 각 라운드함수에 입력되는 각 비트들의 변화에 그 출력값의 각 비트가 변할 확률이 1/2에 가까울수록 안전성이 높다. 따라서, 본 발명에서와 같이 S-박스를 통과한 각 비트의 출력이 다음 S-박스의 입력데이터 블록에 영향을 주도록 설계되고, 또한 이 블록들은 한 블록씩 우측으로 회전하여 다음 라운드에 영향을 주어 전체적인 암호화 데이터의 출력에 영향을 주게 된다.
이상에서는 시드 키가 K=32비트인 경우에 대한 키 스케쥴링에 관한 것이지만, K=128비트인 경우 K는 4개의 32비트 서브블록들이 연접한 형태, 즉 K=K1||K2||K3||K4로 표현될 수 있다. 이에 따라 각 라운드 키들은 다음의 코드 식과 같이 스케쥴링될 수 있다.
Figure pat00010
상술한 바와 같이 본 발명에 따른 고속 블록 암호화방법은 각 S-박스를 통과한 8비트 데이터들이 쉬프트되는 동시에 바로 다음의 S-박스에 입력으로 궤환되는 구조를 가지기 때문에 8비트 단위로 분할된 부블럭들이 S-박스를 거치면서 선형성과 차분균일성이 낮아져서 출력될 뿐 아니라 이들이 이웃하는 S-박스의 입력에 대해서 영향을 미치도록 하여 암호화된 전체 출력값들에 대해 영향을 끼치게 된다. 그 결과, 본 발명에 따른 고속 블록 암호화방법은 가장 대표적인 암호화 해독방식인 차분해독법과 선형해독법에 대한 안전성을 가진다. 또한, 하드웨어적이나 소프트웨어적으로 그 구현이 용이하고, 8비트 단위로 설계가 가능하여 스마트 카드 등에 적용이 가능하다.

Claims (3)

  1. (a) 암호화하고자 하는 i번째 데이터 스트림 X(i)를 좌측 블록 XL(i)와 우측 블록 XR(i)로 등분하는 단계;
    (b) 상기 XR(i)와 소정 라운드 키를 소정 서브블록 단위로 배타적 논리합 연산하는 단계;
    (c) 상기 (b) 단계에서 배타적 논리합 연산한 결과들 중 제1결과를 제1S-박스로 입력하고, 제2결과를 제1결과와 배타적 논리합 연산하여 제2S-박스로 입력하며, 제3결과를 제1 및 제2결과와 배타적 논리합 연산하여 제3S-박스로 입력하고, 제4결과를 제1, 제2 및 제3결과와 배타적 논리합 연산하여 제4S-박스로 입력하는 단계;
    (d) 상기 각 S-박스에서 입력된 값들을 이용하여 소정 연산한 다음, 제1 내지 제4S-박스의 출력 E2, E3, E4 및 E1를 출력하는 단계;
    (e) 상기 E2, E3, E4 및 E1을 E1, E2, E3 및 E4의 순서로 연접하여 E를 출력하는 단계;
    (f) 상기 (b)단계의 배타적 논리합 연산결과를 (i+1)번째 좌측 블록 XL(i+1)으로 치환하고, 상기 E와 XL(i)를 배타적 논리합 연산한 결과를 (i+1)번째 우측 블록 XR(i+2)으로 치환하는 단계; 및
    (g) 상기 XL(i+1) 및 XR(i+1)을 이용하여 마지막 라운드까지 상기 (b) 내지 (f)단계를 반복하여 수행하고, 최종 라운드에서 출력되는 좌측 및 우측 블록값들을연접하여 암호문으로 출력하는 단계를 포함함을 특징으로하는 고속 블록 암호화 방법.
  2. 제1항에 있어서, 상기 (b)단계의 라운드 키는
    (r1) 소정 라운드 키 K(i)를 소정 서브블록 단위로 등분하는 단계;
    (r2) 상기 라운드 키의 제1서브블록을 제4서브블록과 모듈로 합 연산하여 제1결과를 출력하고, 제2서브블록을 상기 제1결과와 배타적 논리합 연산하여 제2결과를 출력하며, 제3서브블록을 상기 제2결과와 모듈로 합 연산하여 제3결과를 출력하고, 제4서브블록을 상기 제3결과와 배타적 논리합 연산하여 제4결과를 출력하는 단계;
    (r3) 소정 골든넘버를 상기 라운드 키의 서브블록들과 동일한 크기로 등분하는 단계;
    (r4) 상기 제1결과를 제1골든넘버 서브블록과 배타적 논리합 연산하고, 상기 제2결과를 제2골든넘버 서브블록과 모듈로 합 연산하며, 상기 제3결과를 상기 제3골든넘버 서브블록과 배타적 논리합 연산하고, 상기 제4결과를 제4골든넘버 서브블록과 모듈로 합 연산하는 단계;
    (r5) 상기 (r4)단계의 연산결과들을 차례로 연접하고, 연접된 결과를 좌측으로 소정 비트수만큼 회전하는 단계;
    (r6) 소정 크기의 시드 키를 좌측 블록 KL과 우측 블록 KR로 등분하는 단계; 및
    (r7) 상기 KL 및 KR에 대해 각각 상기 (r1) 내지 (r5)과정을 수행하여 그 결과들을 각각 제1 및 제2라운드 키로 설정하고, 0보다 큰 자연수 i에 대해 (i+2)번째 라운드 키 K(i+2)는 K(i)에 대해 상기 (r1) 내지 (r5)과정을 수행한 결과와 K(i+1)을 배타적 논리합 연산하여 구하는 단계를 구비함을 특징으로하는 고속 블록 암호화 방법.
  3. 연쇄적으로 수행되는 복수의 라운드를 통과하면서 매 라운드마다 생성되는 라운드 키를 이용하여 데이터를 암호화할 때, 상기 라운드 키를 생성하는 키 스케쥴링 방법에 있어서,
    (a) 소정 라운드 키 K(i)를 소정 서브블록 단위로 등분하는 단계;
    (b) 상기 라운드 키의 제1서브블록을 제4서브블록과 모듈로 합 연산하여 제1결과를 출력하고, 제2서브블록을 상기 제1결과와 배타적 논리합 연산하여 제2결과를 출력하며, 제3서브블록을 상기 제2결과와 모듈로 합 연산하여 제3결과를 출력하고, 제4서브블록을 상기 제3결과와 배타적 논리합 연산하여 제4결과를 출력하는 단계;
    (c) 소정 골든넘버를 상기 라운드 키의 서브블록들과 동일한 크기로 등분하는 단계;
    (d) 상기 제1결과를 제1골든넘버 서브블록과 배타적 논리합 연산하고, 상기 제2결과를 제2골든넘버 서브블록과 모듈로 합 연산하며, 상기 제3결과를 제3골든넘버 서브블록과 배타적 논리합 연산하고, 상기 제4결과를 제4골든넘버 서브블록과모듈로 합 연산하는 단계;
    (e) 상기 (d)단계의 연산결과들을 차례로 연접하고, 연접된 결과를 좌측으로 소정 비트수만큼 회전하는 단계;
    (f) 소정 크기의 시드 키를 좌측 블록 KL과 우측 블록 KR로 등분하는 단계; 및
    (g) 상기 KL 및 KR에 대해 각각 상기 (a) 내지 (e)과정을 수행하여 그 결과들을 각각 제1 및 제2라운드 키로 설정하고, i가 1이상의 자연수이면 (i+2)번째 라운드 키 K(i+2)는 K(i)에 대해 상기 (a) 내지 (e)과정을 수행한 결과와 K(i+1)을 배타적 논리합 연산하여 구하는 단계를 포함함을 특징으로하는 키 스케쥴링 방법.
KR1019970066982A 1997-12-09 1997-12-09 고속블록암호화방법및이를위한키스케쥴링방법 KR100434558B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970066982A KR100434558B1 (ko) 1997-12-09 1997-12-09 고속블록암호화방법및이를위한키스케쥴링방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970066982A KR100434558B1 (ko) 1997-12-09 1997-12-09 고속블록암호화방법및이를위한키스케쥴링방법

Publications (2)

Publication Number Publication Date
KR19990048318A KR19990048318A (ko) 1999-07-05
KR100434558B1 true KR100434558B1 (ko) 2004-09-30

Family

ID=37341059

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970066982A KR100434558B1 (ko) 1997-12-09 1997-12-09 고속블록암호화방법및이를위한키스케쥴링방법

Country Status (1)

Country Link
KR (1) KR100434558B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100930591B1 (ko) * 2007-12-10 2009-12-09 한국전자통신연구원 고속 세션 변경이 가능한 암호화 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
KR100425956B1 (ko) * 2000-07-15 2004-04-03 (주)시큐어피아 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로
CN103051442B (zh) * 2012-10-16 2015-06-10 中国科学院软件研究所 采用Feistel-PG结构的密码装置及加密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
JPH0697930A (ja) * 1992-02-20 1994-04-08 Fujitsu F I P Kk ブロック暗号処理装置
US5623548A (en) * 1994-01-10 1997-04-22 Fujitsu Limited Transformation pattern generating device and encryption function device
JPH09274430A (ja) * 1996-02-06 1997-10-21 Nippon Telegr & Teleph Corp <Ntt> 暗号化・復号化方法及び装置
KR19990002840A (ko) * 1997-06-23 1999-01-15 윤종용 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
JPH0697930A (ja) * 1992-02-20 1994-04-08 Fujitsu F I P Kk ブロック暗号処理装置
US5623548A (en) * 1994-01-10 1997-04-22 Fujitsu Limited Transformation pattern generating device and encryption function device
JPH09274430A (ja) * 1996-02-06 1997-10-21 Nippon Telegr & Teleph Corp <Ntt> 暗号化・復号化方法及び装置
KR19990002840A (ko) * 1997-06-23 1999-01-15 윤종용 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100930591B1 (ko) * 2007-12-10 2009-12-09 한국전자통신연구원 고속 세션 변경이 가능한 암호화 장치
US8351599B2 (en) 2007-12-10 2013-01-08 Electronics And Telecommunications Research Institute Cryptographic device for fast session switching

Also Published As

Publication number Publication date
KR19990048318A (ko) 1999-07-05

Similar Documents

Publication Publication Date Title
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
US6314186B1 (en) Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis
KR100296958B1 (ko) 블록 데이터 암호화 장치
JP2760799B2 (ja) 暗号方式
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
AU2003213315B2 (en) Block cipher apparatus using auxiliary transformation
US20040096056A1 (en) Method of encryption using multi-key process to create a variable-length key
CN1251444A (zh) 高效块加密方法
KR100434558B1 (ko) 고속블록암호화방법및이를위한키스케쥴링방법
JPH0697930A (ja) ブロック暗号処理装置
Soe et al. Performance analysis of data encryption standard (DES)
Mohan et al. Revised aes and its modes of operation
CN110247754B (zh) 一种分组密码fbc的实现方法及装置
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
WO2009104827A1 (en) Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
Islam et al. Data encryption standard
Narayanaswamy et al. HIDE: Hybrid symmetric key algorithm for integrity check, dynamic key generation and encryption
Abubaker et al. DAFA-A Lightweight DES Augmented Finite Automaton Cryptosystem
RU2186467C2 (ru) Способ блочного итеративного шифрования
KR20030000720A (ko) 키와 평문 사이에 연산이 이루어지지 않는 대칭키 블록암호 알고리즘 설계방법
JPH10153954A (ja) 暗号装置
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
Bilski et al. HaF-A new family of hash functions
JP2870532B2 (ja) 暗号変換装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080312

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee