KR100309565B1 - 파이스텔네트워크를이용한데이터암호화방법 - Google Patents

파이스텔네트워크를이용한데이터암호화방법 Download PDF

Info

Publication number
KR100309565B1
KR100309565B1 KR1019980040072A KR19980040072A KR100309565B1 KR 100309565 B1 KR100309565 B1 KR 100309565B1 KR 1019980040072 A KR1019980040072 A KR 1019980040072A KR 19980040072 A KR19980040072 A KR 19980040072A KR 100309565 B1 KR100309565 B1 KR 100309565B1
Authority
KR
South Korea
Prior art keywords
data
round
function
key
output
Prior art date
Application number
KR1019980040072A
Other languages
English (en)
Other versions
KR20000021130A (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 KR1019980040072A priority Critical patent/KR100309565B1/ko
Publication of KR20000021130A publication Critical patent/KR20000021130A/ko
Application granted granted Critical
Publication of KR100309565B1 publication Critical patent/KR100309565B1/ko

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
    • 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]

Abstract

데이터의 암호화 방법에 관한 것으로, 공개된 통신 선로를 통한 데이터의 송수신에서 제3자의 공격에 강력히 대응하여 비밀성을 유지할 수 있도록 하고 라운드키의 독립적인 생성으로 적은 메모리를 사용하도록 하며 데이터의 저장시 기밀성이 안정되게 유지되도록 하기 위하여 파이스텔 구조의 대칭키 블록 암호 알고리즘에 있어서 암호화를 위한 평문 X와 소정의 연산을 통해 생성한 라운드 키 Kr를 입력값으로 하여 배타적 논리합과 28+1을 법으로 하는 곱셈 연산, 28을 법으로 하는 덧셈 연산 및 대치함수가 소정의 상태로 배열된 라운드 함수 F가 라운드 함수값 Y 를 생성하는 것을 특징으로 한다.

Description

파이스텔 네트워크를 이용한 데이터 암호화 방법{A METHOD FOR DATA ENCRYPTION USING FEISTEL NETWORK}
본 발명은 통신 데이터의 암호화 방법에 관한 것으로, 보다 상세하게는 공개된 통신 선로를 통한 데이터의 송수신에서 제3자의 공격에 강력히 대응하여 비밀성을 유지할 수 있도록 하고, 라운드 키의 독립적인 생성으로 적은 메모리를 사용하도록 하며, 데이터의 저장시 기밀성이 안정되게 유지되도록 한 대칭키 블록 암호알고리즘에 관한 것이다.
일반적으로, 정보환경과 과학기술 및 통신망의 급격한 발전으로 대부분의 업무 처리가 네트웍(network)을 기반으로 개방화되어 있으며, 인터넷(internet)의 확산으로 시간과 공간의 제약이 점차 사라져가고 있는 상황이다.
이러한 초고속 정보 통신망을 통해 국가간, 회사간, 개인간의 주요 정보 및 각 조직의 정보, 개인의 신상 정보, 금융 거래 정보, 상품의 구매 및 대금 지급에 대한 정보, 유료로 사용되는 각종 프로그램에 대한 정보등이 무방비한 상태로 노출되어 있어 통신망을 통해 제3자에게 입수되는 경우 국가나 회사 개인에게 심각한 피해를 발생시키게 되므로, 산재하여 있는 컴퓨터 시스템내의 각종 정보들을 시스템내에서 보호 및 네트워크를 통해 송수신되는 정보의 보호가 요구된다.
정보의 보호는 정보에 대한 물리적인 접근을 제한하는 일차적인 방법과 일차적인 보호방법이 파괴되었을 때 정보를 안정하게 보호하는 기술 의존적인 2차적 방법, 즉 암호화로 구분되는데, 암호화란 의미를 알 수 있는 평문을 의미를 알 수 없는 암호문으로 변경하는 것이며, 복호화는 정당하게 수신된 정보를 정당한 방법 또는 암호화시 사용된 키를 사용하여 암호문을 평문화 하는 것이다.
블록 암호 알고리즘은 미국 NSA에서 1976년에 발표되고 미국 표준으로 채택된 DES(Data Encryption Standard)가 가장 널리 사용되고 있는데, 상기의 DES는 시간의 경과에 따라 많은 공격법의 연구와 컴퓨터의 성능 향상으로 많은 문제점이 발생되었다. 따라서 미국 당국에서도 새로운 암호 알고리즘이 필요함을 인식하고 새로운 암호 알고리즘의 표준을 정하고자 AES(Advanced Encryption Standard)를 공모한 상태이다.
첫번째로 56비트 키(bit key)를 사용하므로 어떤 암호문이 주어졌을 때, 256의 복잡도를 가지고 키를 전수조사함으로써 평문을 추출할 수 있는데, 이 256이라는 복잡도는 현재의 컴퓨터의 성능으로는 암호문을 해독하는 데 그리 어려운 일이 아니다.
일례로 단 몇 시간안에 DES로 암호화된 암호문을 풀 수 있는 하드웨어 장비가 개발되어 인터넷과 논문을 통하여 공개되었다.
둘째로 DES가 발표된 이후 발표된 블록 암호 알고리즘에 대하여 입출력 변화 공격법(differential cryptanalysis), 선형 공격법(linear cryptanalysis), 보간 공격법(interpolation cryptanalysis), 고차 입출력 공격법(higher order cryptanalysis), 비선형 공격법(nonlinear cryptanalysis), 절단 입출력 변화 공격법(truncated differential cryptanalysis) 등의 많은 공격법이 연구 발표되어 이들 공격법에 강한 것도 있었으나 대다수가 공격법에 견디지 못하고 해독되어 지는 문제점이 있었다.
본 발명은 전술한 바와 같은 제반적인 문제점을 감안한 것으로, 그 목적은 컴퓨터 성능의 향상에 따라, 보다 큰 길이를 갖는 데이터를 소형의 마이크로프로세서로서 처리할 수 있도록 하기 위하여, 피 암호화 데이터를 분할하여 이를 기초로 암호화 과정을 수행하되 파이스텔 네트워크의 각 라운드에서 사용된 함수는 상기 분할된 데이터의 각 분할요소를 모두 이용하도록 하며, 라운드(round) 키(key)를 독립적으로 생성하고, 라운드 키 사이에 연관성이 발생되지 않도록 함으로써 암호화의 신뢰성을 증가시키며 암호화 및 복호화에 신속성이 제공되도록 하는 것이다.
또한, 본 발명은 스마트 카드내에서 암호화 및 복호화가 효율적으로 구현되도록 하여 통신망을 이용한 데이터의 전송에 신뢰성을 제공하고, 제한 수신 시스템의 운용에 안전성을 제공하도록 한 것이다.
제1도는 본 발명의 실시예에 따른 파이스텔 네트워크를 이용한 데이터 암호화 방법에 대한 흐름도이고,
제2도는 본 발명의 실시예에 따른 파이스텔 네트워크를 이용한 데이터 복호화 방법에 대한 흐름도이며,
제3도는 본 발명의 실시예에서의 라운드 함수에 관한 도해이며,
제4도는 본 발명의 실시예에서 라운드 키의 생성 과정을 보이는 도해이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명에 의한 파이스텔 네트워크를 이용한 데이터 암호화 방법은,
2진수로 환산되었을 때 q비트(단, q는 짝수)인 디지털 코드로 형성된 데이터(P)를 입력받는 데이터 입력단계;
상기 입력된 데이터(P)를 좌원소(P L0 ) 및 우원소(P R0 )로 분할하는 데이터 분할단계;
분할된 좌우원소(PLi, PRi; i=0,1,2...,N-1)를 변환하여 새로운 좌우원소(PL(i+1), PR(i+1);i=0,1,2,...,N-1)를 생성하는 라운드를 소정횟수(N) 수행하는 죄우원소 변환단계;
상기 좌우원소 변환단계에서 변환된 좌원소(PLN) 및 우원소(PRN)를 합성하여 암호화 데이터를 생성하는 암호화 데이터 합성단계;
를 포함하는 파이스텔 네트워크를 이용한 데이터 암호화 방법에 있어서, 상기 라운드는, 설정된 키 Ki및 설정된 함수 F에 의하여, PL(i+1)=PRi및 PR(i+1)=PLi {F(Ki,PRi)}로써 변환되고,
상기 설정된 함수 F는,
키 Ki및 PRi을 설정개수(m)로 분할하여 Ki,j및 PRi,j(단, j=0,1,2,...,m-1)를 생성하는 변수분할단계;
상기 분할된 Ki,j및 PRi,j(j=0,1,2,...,m-1)을 기초로 복수의 배타적 논리합, 법(modulos)으로 정의되는 덧셈연산 '+' 및 법으로 정의되는 곱셈연산연산을 설정된 순서에 의해 순차적으로 수행함으로써 Y'k(k=0,1,2,...,m-1)을 생성하되, 상기 각 k에 관한 Y'k을 생성하기 위한 순차적 연산에는 j=0,1,2,...,m-1의 모든 j에 관한 Ki,j및 PRi,j모두가 관여되는 것을 특징으로 하는 변수연산단계;
상기 Yj'(j=0,1,2,...,m-1)의 갈라(Golois) 필드에서의 역원 {Y'j}-1(j=0,1,2,...,m-1) 의 인덱스(index)를 복수횟수 치환 (Yj={Y'k}-1및 Yk={Y'j}-1; j또는k=0,1,2,...,m-1) 함으로써 얻어지는 분할요소 Yj을 연산하는 분할요소 연산단계;
상기 분할요소 Yj을 합성함으로써 함수값 Y를 생성하는 결과합성단계;
를 포함하는 과정에 의해 결과를 연산하는 것을 특징으로 한다.
상기 분할요소 연산단계에서 사용되는 갈라필드는 소정의 조건을 만족하는 임의의 덧셈연산 및 곱셈연산에 의해 정의될 수 있으므로, 상기 갈라필드를 정의하는 덧셈 및 곱셈연산은 상기 변수연산단계에서 수행되는 덧셈연산 '+' 및 곱셈연산과는 다른 연산으로 정의되는 것이 바람직하다.
일예로, 상기 분할되는 설정개수(m)는 4로 설정되고, 상기 Ki,j및 PRi,j(j=0,1,2,3)가 분할되는 상기 Ki및 PRi는 2진수로 환산할 경우 32비트(즉, q=64)인 것으로 할 수 있다.
이 때, 상기 변수연산단계에서 Y'k(k=0,1,2,3)는,
T0=PRi,0 Ki,0, T1=PRi,1 Ki,1, T2=PRi,2 Ki,2,
T3=PRi,3 Ki,3, T4=T0 T1, T5=T2+T3, T6=T4+T5,
T7=T5 T6, T8=T0 T6, 및 T9=T3+T7에 의해 정의되는 일련의 연산에 의해, Y0'=T8, Y1'=T6, Y2'=T7및 Y3'=T9로 계산될 수 있으며,
상기 갈라필드의 역원은, 소정의 역원 표(inverse element table)에 의해 정의될 수 있으며,
상기 분할요소 연산단계는, Y0={Y1'}-1, Y1={Y3'}-1, Y2={Y0'}-1, Y3={Y2'}-1에 의해 될 수 있다.
또한, 상기 Ki는, 설정된 키 Ii, Mgi및 Mhi를 기초로 상기 설정된 함수 F에 의하여, F(Ii,Mgi)로서 연산되되, 상기 설정된 함수 F는 상기 변수연산단계 후에,
Yk'=Yk'Mhi,j(k=0,1,2,...,m-1) 에 의해 Yk'를 변조하는 결과변조단계를 더 포함하는 것이 바람직하다.
상기 Ii는, 암호화를 보다 랜더마이즈(randomize)하기 위해, Ii=[│sin(i)│×2q/2][│cos(i)│×2q/2]에 의해 연산되는 것이 바람직하다.
상기 본 발명의 파이스텔 네트워크의 라운드 반복횟수인 상기 소정횟수(N)는 일예로 12라운드로 설정될 수 있으며,
이 때, 상기 Mgi및 Mhi는, 2진수로 환산할 경우 2q 비트로 설정된 상수 M를 4분할한 Mj(j=0,1,2,3) 중 하나로 각각 선택되며,
상기 Mj의 인덱스 j의 선택은 각각의 라운드 키가 겹치지 않고 독립적으로 생성되도록, 하기의 선택표에 의해 선택되어질 수 잇다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명하는 다음과 같다.
본 발명의 실시예에 따른 암호화 및 복호화 방법은 스마트 카드 내에서 효율적으로 암호화 및 복호화가 구현될 수 있도록 8비트의 연산을 이용하며, 128비트 길이의 키를 사용하고 입출력 데이터의 길이가 64비트임을 전제로 한다.
또한, 본 발명의 실시예를 설명함에 있어 이해를 돕기 위해 용어 및 기호를 정의한다.
라운드(round)는 암호화 및 복호화를 위해 반복되는 과정을 의미하고, 라운드 함수는 암호화 및 복호화를 수행하는데 필요한 함수를 의미하며, 라운드 키는 코드의 입력으로부터 생성되며 반복되는 라운드에서 암호화 및 복호화를 위한 인자를 의미한다.
또한, 기호의 경우 "+"는 28을 법(modulo)으로 하는 덧셈 연산이고, ""는 배타적 논리합(bitwise exclusive-or)을 의미하며, ""는 28+1 을 법으로 하는 곱셈 연산을 의미한다.
상기에서 "28+1"을 법으로 하는 곱셈 연산은 0을 제외한 1, ... , 256의 집합에서 대수적으로 군(group)을 이루는데, "256"이라는 데이터는 8비트로 표현되지 않으므로 제외된 0을 256을 표현하는데 사용한다.
또한, "S"는 대치함수를 의미하고, "∥"는 연접을 의미한다.
전술한 바와 같은 정의에 기반한 상태에서 파이스텔 구조(Feistel Network)를 취하고 있는 본 발명의 실시예의 암호화 및 복호화 방법은 다음과 같다.
64비트 평문 P를 상위 32비트와 하위 32비트로 나누어 각각 PL, PR라 하면 PL과 PR은 연접되므로 64비트 평문 P는 다음과 같은 식으로 표현된다.
P = PL∥ PR.
상기와 같이 표현되는 평문 P 로부터 암호문 C 를 생성하는 과정은 다음과 같다.
PL= LO, PR= RO라 하면 제1라운드를 거친 출력값 L1= R0이고, R1= L0 F(L0,K1)가 되며, 제2라운드를 거친 출력값 L2= R1이고, R2= L1 F(L1,K2)가 되며, 제i라운드를 거친 출력값 Li= Ri-1이고, Ri= Li-1 F(Ri-1,Ki)가 된다.
여기서, i는 1,2,3,......,11이다.
따라서, 최종 라운드를 거친 출력값 CL= L11 F(R11,K12)이고, CR= R11이 되므로, 64비트의 평문으로부터 생성되는 암호문 C = CL∥ CR이 된다.
여기서, 최종 라운드를 12라운드로 한 것은 암호화 효율을 위하여 설정한 것이며, 이는 메모리의 용량이나 적용되는 분야에 따라 가변할 수 있는 것이다.
상기한 바와 같이 평문 P로 부터 암호문 C를 생성하는 과정을 정리하면 하기와 같이 표현된다.
P = PL∥ PR
L0= PL,
RO= PR,
L1= R0,
R1= LO F(R0,K1),
·
·
·
Li= Ri-1,
Ri= Li-1 F( Ri-1, Ki), 여기서 i = 1, 2, ... , 11,
·
·
·
CL= L11 F(R11, K12) ,
CR= R11
C = CL∥ CR
또한, 상기한 바와 같은 암호문 C에 대하여 평문 P로 복호화하는 과정을 도2를 참조하여 설명하면 다음과 같다.
암호문 C = CL∥ CR에서 L12= CL, R12= CR라 하면 제1라운드를 거친 출력값 L11= CL F(CR,K12)이고, R11= CR가 되며, 제2라운드를 거친 출력값 L10= R11 F(L11,K11)이고, R10= L11이 되며, 제i라운드를 거친 출력값 Li= Ri+1 F(Li+1,Ki+1) 이고, Ri= Li+1가 된다.
여기서, i는 1,2,3,.....,10이다.
따라서, 최종 라운드를 거친 출력값 PL= R1 F(L1,K1)이고, PR= L1이 되므로, 암호문 C로 부터 생성되는 평문 P = PL∥ PR이 된다.
상기와 같이 암호문 C를 평문으로 복호화하는 과정을 정리하면 하기와 같이 표현된다.
C = CL∥ CR.
L11= CL F( CR, K12) ,
R11= CR,
·
·
·
Li= Ri+1 F( Li+1, Ki+1) , i = 1, 2, ... , 10,
Ri= Li+1,
·
·
·
PL= R1 F( L1, K1) ,
PR= L1 .
P = PL∥ PR
상기한 바와 같이 평문 P를 암호문 C로 암호화 하거나 암호문 C를 평문 P로 복호화하는데 가장 중요한 역할을 수행하는 것이 라운드 함수 F 인데, 이 라운드 함수 F에 대하여 도 3을 참조하여 설명하면 다음과 같다.
라운드 함수 F는 두 개의 32비트 데이터 X, Kr를 입력하여 32비트 Y를 출력하는 함수라 하면 Y = F ( X, Kr) 로 표기할 수 있으며, 이 32비트의 입력 데이터 X, Kr, 상기 입력 데이터 X, Kr와 라운드 함수 F 의 연산을 통해 출력되는 라운드 함수 값 Y 각각에 대하여 최상위 8 비트부터 최하위 8비트까지 4개로 분할한다.
즉 32비트 평문 데이터 X를 최상위 비트부터 최하위 비트까지 4개의 8비트로 나눈 것을 차례대로 X0, X1, X2, X3라 하고, 제 r 라운드 키인 32비트 데이터 Kr을 최상위 비트부터 최하위 비트까지 4개의 8비트로 나눈 것을 차례대로 Kr,0, Kr,1Kr,2, Kr,3라 정의하며, 상기 평문 데이터와 라운드 키 및 라운드 함수 F의 연산을 통해 출력되는 32비트 라운드 함수 값 Y를 최상위 비트부터 최하위 비트까지 4개의 8비트로 나눈 것을 차례대로 Y0, Y1, Y2, Y3라 정의하면 상기의 X, Y, Kr각각은 하기와 같이 표현된다.
X = XO∥X1∥X2∥X3, Y = Y0∥Y1∥Y2∥Y3, Kr= Kr,0∥Kr,1∥Kr,2∥Kr,3.
이때, 32비트의 평문 데이터 X0, X1, X2, X3, 와 32비트의 라운드 키 Kr,0, Kr.1, Kr.2, Kr,3가 연산되어지는 라운드 함수 F는 도 3에서 알 수 있는 바와 같이, 최상의 8비트의 평문 데이터 X0와 8비트의 최상위 라운드 키 Kr,0은 배타적 논리합 ""되어 T0를 출력하고, 8비트의 평문 데이터 X1과 8비트의 라운드 키 Kr,1은 배타적 논리합""되어 T1을 출력하며, 8비트의 평문 데이터 X2와 8비트의 라운드 키 Kr,2는 배타적 논리합""되어 T2를 출력하며, 최하위 8비트의 평문 데이터 X3와 8비트의 최하위 라운드 키 Kr,3은 배타적 논리합 "" 되어 T3를 출력한다.
상기에서 최상위 입력 데이터간의 연산으로 출력되는 T0와 T1는 X1의 트리에서 28+1을 법으로 하는 곱셈 연산 ""을 통해 T4를 출력하고, 최하위 입력 데이터 간의 연산으로 출력되는 T3와 T2는 X2의 트리에서 28을 법으로 하는 덧셈 연산 "+"을 통해 T5를 출력한다.
상기 T0와 T1의 연산을 통해 출력되는 T4는 상기 T3와 T2의 연산을 통해 출력되는 T5와 X1의 트리에서 28을 법으로 하는 뎃셈 연산 "+" 되어 T6를 출력하고, 상기에서 출력되는 T6는 상기 T5와 X2의 트리에서 28+1을 법으로 하는 곱셈 연산 ""되어 T7을 출력한다.
상기의 연산을 통해 출력되는 T0와 T6는 X0의 트리에서 28+1을 법으로 하는 곱셈 연산 ""되어 T8을 출력하고, 상기 연산을 통해 출력되는 T7는 T3와 X3의 트리에서 28을 법으로 하는 덧셈 연산 "+"되어 T9을 출력한다.
상기의 연산을 통해 출력되는 T9은 대치함수 S와 연산되어 라운드 함수 값 Y1을 출력하고, 상기 T8은 대치함수 S와 연산되어 Y2를 출력하며, 상기 T7은 대치함수 S와 연산되어 Y3를 출력하며, 상기 T6는 대치함수 S와 연산되어 Y0를 출력한다.
상기의 라운드 함수 값 Y = Y0∥Y1∥Y2∥Y3의 연산과정을 정리하면 다음과 같다.
T0= X0 Kr,0, T1= X1 Kr,1, T2= X2 Kr,2, T3= X3 Kr,3, T4= T0 T1, T5= T2+ T3, T6= T4+ T5, T7= T5 T6, T8= T0 T6, T9= T3+ T7, Y0= S( T6), Y1= S( T9), Y2= S( T8), Y3= S( T7).
상기에서 최종 라운드 함수 값 Y = Y0∥Y1∥Y2∥Y3의 생성을 위한 대치함수 S 는 다음과 같은 방법으로 생성된다.
S 는 유한체(finite field) GF(28) 에서 x-1함수를 사용하였으며, 이를 수식으로 표현하면 S(0) = 0, S(x)= x-1이 된다.
상기의 유한체에서 X-1함수는 선형 공격법 및 입출력 변화 공격법에 강한 것으로 알려져 있으며, GF(28)를 구성하는 방법은 여러가지가 있으나 본 대치함수 S는 구성하는 데는 다음과 같은 방법으로 하였다.
소수 2로 나눈 나머지에 의해서 만들어진 유한체 GF(2)에서 기약 다항식(irreducible polynomial) x8+ x4+ x3+ x2+ 1로 이데알(ideal) I를 생성한다.
상기에서 이데알 I는 기약 다항식으로 생성된 이데알이므로 최대 이데알(maximal ideal)된다.
따라서 다항식 환(polynomial ring) GF(2)[x]을 이데알 I로 분할(factor)한 잉여환(quotient ring)은 체(field)이며 이렇게 만들어진 체가 GF(28)이다.
GF(28)는 GF(2)에서 벡터 공간으로 볼 수 있으므로 GF(28)은 GF(2)위에서 기저(basis)를 갖는다.
본 발명의 실시예에서는 다항식 기저(polynomial basis)를 사용하므로, GF(28)의 모든 원소는 a = a7x7+ a6x6+ a5x5+ a4x4+ a3x3+ a2x2+ a1x1+ a0x0로 표현되며 이를 최상위 비트(most significant bit)부터 최하위 비트(least significant bit)까지 순서대로 나열하면 다음과 같이 표기할 수 있다.
a7a6a5a4a3a2a1a0.
이때, 각각의 ai( i = 0, 1, ... , 7)를 2진법으로 표현할 때, 2i자리수라하면 a는 다음의 수에 일대일 대응된다.
a727+ a626+ a525+ a424+ a323+ a222+ a121+ a020.
이후부터는 이와 같이 표기된 GF(28)의 원소를 16진수로 나타내기로 한다.
(단, 16진수로 표기할 때, 10, 11, ... , 15는 a, b, ... , f 로 표기한다.)
위의 유한체 GF(28) 에서 x-1함수를 이용하여 대치함수 S를 생성하면 대치함수 S의 입출력은 16진수로 하기의 표 1과 같이 된다.
상기의 표 1에서 행은 입력의 상위 4비트 단위로 표기 한 것이고, 열은 입력의 하위 4비트를 표기한 것이며, 표의 내용은 출력을 의미한다.
그러나, 상기의 표 1로서 만들어진 대치 함수 S는 입출력 비트간에 관계가 2차의 대수 방정식으로 표현이 가능하므로 최근에 알려진 비선형 공격법으로 공격이 가능할 여지가 있다.
따라서 본 발명의 실시예에서는 이에 대하여 보완할 수 있는 방법으로 소수 28+ 1로 나눈 나머지로 만들어진 유한체 GF(257)의 곱셈 군(multiplicative group)의 연산과 256을 법(modular)으로 하는 덧셈을 부가하는 방법을 사용하였다.
본 발명의 실시예에서 사용되는 유한체 GF(257)의 곱셈 군(multiplicative group)의 연산을 설명하면 다음과 같다.
유한체 GF(257)의 원소는 257로 나눈 나머지, 즉, 0, 1 ... , 256으로 이루어져 있으며 0을 제외한 1, 2, . , 256은 곱셈 군의 원소이므로, 이를 8 비트로 표기했을 때, Ox00을 256으로 생각하여 곱셈연산을 처리하고 결과 값이 256일 경우 이를 0x00으로 표기하는 방법을 이용하였다.
또한, 제 r 라운드 키 Kr= Kr,0∥Kr,1∥kr,2∥Kr,3를 생성하는 과정을 첨부된 도 4를 참조하여 설명하면 다음과 같다.
도 4에서 알 수 있는 바와 같이 제 r 라운드 키의 생성은 라운드 키를 생성하기 위한 소정의 128비트 키 M에 대하여 최상위 비트부터 최하위 비트까지 4개의 32비트로 분할하여 순서대로 M0,M1,M2,M3라 하면 M = M0∥ M1∥ M2∥ M3로 표현된다. 128비트 키 M을 최상위 비트부터 최하위 비트까지 네개의 32비트로 분할한 M = M0∥ M1∥ M2∥ M3에서 j = 0, 1, 2, 3에 대해서 32비트 데이터 Mj를 최상위 비트부터 최하위 비트까지 네개의 8비트로 나누었을 때 차례대로 Mj,0, Mj,1, Mj,2, Mj,3라 하면 각각의 Mj는 다음과 같이 표기할 수 있다.
Mj= Mj,0∥ Mj,1∥ Mj,2∥ Mj,3.
따라서, 라운드 키 Kr을 생성하기 위한 키 M은 다음과 같이 나누어진 형태로 표현된다.
M = M0,0∥ MO,1∥ M0,2∥ M0,3∥ M1,0∥ M1,1∥ M1,2∥ M1,3∥ M2.0∥ M2,1∥ M2,2∥ M2,3∥ M3,0∥ M3,1∥ M3,2∥M3,3.
또한, 각 라운드 키의 난수성을 해결하기 위한 소정의 32비트 키 Ir에 대하여 최상위 비트부터 최하위 비트까지 4개의 8비트로 분할하여 순서대로 Ir,0,Ir,1,Ir,2,Ir,3라 하면 Ir= Ir,0∥ Ir,1∥ Ir,2∥ Ir,3로 표현된다.
상기와 같이 라운드 키 생성을 위한 키 M과 각 라운드 키의 난수성을 해결하기 위한 키 Ir의 분할이 완료된 상태에서 라운드 키 Kr,0의 생성 과정은 다음과 같다.
최상위 32비트의 라운드 키 생성을 위한 Mg(r),0와 8비트의 최상위 난수성을 위한 키 Ir,0은 배타적 논리합""되어 U0를 출력하고, 32비트의 라운드 키 생성을 위한 Mg(r),1과 8비트의 난수성을 위한 키 Ir,1은 배타적 논리합""되어 U1을 출력하며, 32비트의 라운드 키 생성을 위한 Mg(r),2와 8비트의 난수성을 위한 키 Ir,2는 배타적 논리합""되어 U2를 출력하며, 최하위 32비트의 라운드 키 생성을 위한 Mg(r),3과 최하위 난수성을 위한 키 Ir,3은 배타적 논리합 "" 되어 U3를 출력한다.
상기에서 최상위 입력 데이터간의 연산으로 출력되는 U0와 U1은 Mg(r),1의 트리에서 28+1을 법으로 하는 곱셈 연산 ""을 통해 U4를 출력하고, 최하위 입력 데이터간의 연산으로 출력되는 U3와 U2는 Mg(r),2의 트리에서 28을 법으로 하는 덧셈 연산 "+"을 통해 U5를 출력한다.
상기 U0와 U1의 연산을 통해 출력되는 U4는 상기 U3와 U2의 연산을 통해 출력되는 U5와 Mg(r),1의 트리에서 28을 법으로 하는 덧셈 연산 "+" 되어 U6를 출력하고, 상기에서 출력되는 U6는 상기 U5와 Mg(r),2의 트리에서 28+1을 법으로 하는 곱셈 연산 ""되어 U7을 출력한다.
상기의 연산을 통해 출력되는 U0와 U6는 Mg(r),0의 트리에서 28+1을 법으로 하는 곱셈 연산 ""되어 U8을 출력하고, 상기의 연산을 통해 출력되는 U7는 U3와 Mg(r),3의 트리에서 28을 법으로 하는 덧셈 연산 "+"되어 U9을 출력한다.
상기의 연산을 통해 출력되는 U8은 라운드 키 생성을 위한 최상위 32비트의 Mh(r),0와 Mg(r),0의 트리에서 배타적 논리합""되어 U10를 출력하고, 상기의 연산을 통해 출력되는 U6은 32비트의 라운드 키 생성을 위한 Mh(r),1과 Mg(r),1의 트리에서 배타적 논리합""되어 U11을 출력하며, 상기의 연산을 통해 출력되는 U7은 32비트의 라운드 키 생성을 위한 Mh(r),2와 Mg(r),2의 트리에서 배타적 논리합""되어 U12를 출력하며, 상기의 연산을 통해 출력되는 U9은 최하위 32비트의 라운드 키 생성을 위한 Mh(r),3와 Mg(r),3의 트리에서 배타적 논리합 "" 되어 U13를 출력한다.
상기의 연산을 통해 출력되는 U11은 대치함수 S와 연산되어 라운드 키 Kr,0를 출력하고, 상기 U13은 대치함수 S와 연산되어 Kr,1을 출력하며, 상기 U10은 대치함수 S와 연산되어 Kr,2를 출력하며, 상기 U12는 대치함수 S와 연산되어 Kr,3을 출력한다.
상기한 바와 같이 라운트 키 생성을 위한 연산 과정을 정리하면 다음과 같다.
U1= Mg(r),1 Ir,1, U2= Mg(r),2 Ir,2, U3= Mg(r),3 Ir,3, U4= U0 U1, U5= U2+ U3, U6= U4+ U5, U7= U5 U6, U8= U0 U6, U9= U3+ U7, U10= U8 Mh(r),0, U11= U6 Mh(r),1, U12= U7 Mh(r),2, U13= U9 Mh(r),3, Kr,0= S( U11), Kr,1= S( U13), Kr,2= S( U10), Kr,3= S( U12)이 된다.
상기에서 전체 암호 알고리즘의 취약한 키의 존재를 제거하여 주는 각 라운드의 난수성을 해결하기 위한 Ir는 하기의 수학식 1을 통해 생성된다.(단 [x]는 x보다 크지 않는 최대의 정수이다.)
이때, 각 라운드 r = 1, 2, ... , 12 에 대해서 최상위 비트부터 최하위 비트로 분할된 32비트 데이터 Ir= Ir,0∥ Ir,1∥ Ir,2∥ Ir,3에 대하여 16진수로 순서대로 표기하면 다음과 같다.
5d3be40b, 7db0d1f7, 26afaad7, 66e8fed8, 421de590, 4db5819f, 68cffae7, 27861781, 7f40b213, 5d8993e9, 0122aeab, 515a079f.
또한, 상기에서 라운드 키를 생성하기 위한 128비트의 소정의 키 M 에 가해지는 함수 g 와 h 의 값은 각각의 라운드 키가 겹치지 않고 독립적으로 생성하기 위한 것으로 각 라운드 r = 1, 2, ... , 12 에 대해서 순서대로 표기하면 다음 표2와 같다.
따라서 적은 양의 메모리를 가지고 암호화 및 복호화를 위한 라운드 키의 생성, 사용이 용이하다.
이상에서 설명한 바와 같이 본 발명에 따른 블록 암호 알고리즘은 DES보다 키의 길이를 늘림으로써 키의 전수 조사에 의한 공격으로부터 안전하게 보호할 수 있으며, 라운드 키를 독립적으로 생성함으로써 적은 메모리를 사용할 수 있고, 스마트 카드 내에서 암호화 및 복호화가 효율적으로 구현된다.
또한, 본 발명은 유료 위성 방송을 위한 제한 수신 시스템에서 음성과 화면 및 데이터의 스크램블(scramble) 및 디스크램블(descramble)하는 키를 가입자에게 안전하게 전달할 수 있으며, 컴퓨터 디스크내에 저장된 파일을 해커나 산업 스파이로부터 안전하게 보호할 수 있어 데이터의 전송 및 저장에 안정성 및 신뢰성을 제공한다.

Claims (9)

  1. 2진수로 환산되었을 때 q비트(단, q는 짝수)인 디지털 코드로 형성된 데이터(P)를 입력받는 데이터 입력단계; 상기 입력된 데이터(P)를 좌원소(PL0) 및 우원소(PR0)로 분할하는 데이터 분할단계; 분할된 좌우원소(PLi, PRi; i= 0,1,2,...,N-1)를 변환하여 새로운 좌우원소(PL(i+1), PR(i+1);i=0,1,2,...,N-1)를 생성하는 라운드를 소정횟수(N) 수행하는 좌우원소 변환단계; 상기 좌우원소 변환단계에서 변환된 좌원소(PLN) 및 우원소(PRN)를 합성하여 암호화 데이터를 생성하는 암호화 데이터 합성단계;를 포함하는 파이스텔 네트워크를 이용한 데이터 암호화 방법에 있어서, 상기 라운드는, 설정된 키 Ki및 설정된 함수 F에 의하여, PL(i+1)=PRi및 PR(i+1)=PLi {F(Ki,PRi)}로써 변환되고, 상기 설정된 함수 F는, 키 Ki및 PRi을 설정개수(m)로 분할하여 Ki,j및 PRi,j(단, j=0,1,2,...,m-1)을 생성하는 변수분할단계; 상기 분할된 Ki,j및 PRi,j(j=0,1,2,..., m-1)을 기초로 복수의 배타적 논리합, 법(modulos)으로 정의되는 덧셈연산 '+' 및 법으로 정의되는 곱셈연산연산을 설정된 순서에 의해 순차적으로 수행함으로써 Yk'(k=0,1,2,...,m-1)을 생성하되, 상기 각 k에 관한 Yk'을 생성하기 위한 순차적 연산에는 j=0,1,2,...,m-1의 모든 j에 관한 Ki,j및 PRi,j모두가 관여되는 것을 특징으로 하는 변수연산단계; 상기 Yj'(j=0,1,2,...,m-1)의 갈라(Golois) 필드에서의 역원 {Yj'}-1(j=0,1,2,...,m-1) 의 인덱스(index)를 복수횟수 치환 (Yj={Yk'}-1및 Yk={Yj'}-1; j또는k=0,1,2,...,m-1) 함으로써 얻어지는 분할요소 Yj을 연산하는 분할요소 연산단계; 상기 분할요소 Yj을 합성함으로써 함수값 Y를 생성하는 결과합성단계; 를 포함하는 과정에 의해 결과를 연산하는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
  2. 제1항에서, 상기 분할요소 연산단계에서 사용되는 갈라필드를 정의하는 덧셈 및 곱셈연산은 상기 변수연산단계에서 수행되는 덧셈연산 '+' 및 곱셈연산과는 다른 연산으로 정의되는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
  3. 제2항에서, 상기 설정개수(m)는 4로 설정되고, 상기 Ki,j및 PRi,j(j=0,1,2,3,)가 분할되는 상기 Ki및 PRi는 2진수로 환산할 경우 32비트(즉, q=64)인 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
  4. 제3항에서, 상기 변수연산단계에서 Yk'(k=0,1,2,3)는, T0=PRi,0 Ki,0, T1=PRi,1 Ki,1, T2=PRi,2 Ki,2, T3=PRi,3 Ki,3, T4=T0 T1, T5=T2+ T3, T6=T4+ T5, T7=T5 T6, T8=T0 T6, 및 T9=T3+ T7에 의해 정의되는 일련의 연산에 의해, Y0'=T8, Y1'=T6, Y2'=T7및 Y3'=T9로 계산되는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
  5. 제3항에서, 상기 갈라필드의 역원은, 하기의 역원 표에 의해 정의되는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
    (단, 상기 역원 표에서 각 숫자는 16진수 단위로 나타낸 것이다)
  6. 제3항에서, 상기 분할요소 연산단계는, Y0={Y1'}-1, Y1={Y3'}-1, Y2={Y0'}-1, Y3={Y2'}-1에 의해 계산되는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
  7. 제1항에서, 상기 Ki는, 설정된 키 Ii, Mgi및 Mhi를 기초로 상기 설정된 함수 F에 의하여, F(Ii,Mgi)로서 연산되되, 상기 설정된 함수 F는 상기 변수연산단계 후예, YK'=Yk'Mhi,j(k=0,1,2,...,m-1) 에 의해 Yk'를 변조하는 결과변조단계를 더 포함하는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
  8. 제7항에서, 상기 Ii는, Ii=[|sin(i)│×2q/2][│cos(i)│×2q/2]에 의해 연산되는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
  9. 제7항에서, 상기 소정횟수(N)의 라운드는 12라운드로 설정되고, 상기 Mgi및 Mhi는, 2진수로 환산할 경우 2q 비트로 설정된 상수 M를 4분할한 Mj(j=0,1,2,3) 중 하나로 각각 선택되며, 상기 Mj의 인덱스 j의 선택은 하기의 선택표에 의해 선택되는 것을 특징으로 하는 파이스텔 네트워크를 이용한 데이터 암호화 방법.
KR1019980040072A 1998-09-25 1998-09-25 파이스텔네트워크를이용한데이터암호화방법 KR100309565B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980040072A KR100309565B1 (ko) 1998-09-25 1998-09-25 파이스텔네트워크를이용한데이터암호화방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980040072A KR100309565B1 (ko) 1998-09-25 1998-09-25 파이스텔네트워크를이용한데이터암호화방법

Publications (2)

Publication Number Publication Date
KR20000021130A KR20000021130A (ko) 2000-04-15
KR100309565B1 true KR100309565B1 (ko) 2001-12-17

Family

ID=19552042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980040072A KR100309565B1 (ko) 1998-09-25 1998-09-25 파이스텔네트워크를이용한데이터암호화방법

Country Status (1)

Country Link
KR (1) KR100309565B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623503B1 (ko) 2015-02-04 2016-05-23 국민대학교산학협력단 Lea 블록암호의 화이트박스 암호 구현 장치 및 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100607464B1 (ko) * 1999-07-13 2006-08-02 한국전자통신연구원 무선통신환경에서의 데이터 암호화방법
KR100380638B1 (ko) * 2000-05-18 2003-04-16 강정용 병렬 Feistel 구조를 가진 데이터 암호 표준화시스템
KR100377173B1 (ko) * 2000-05-25 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100425956B1 (ko) * 2000-07-15 2004-04-03 (주)시큐어피아 동작 진행 중 라운드 키 계산 방식을 이용한 seed 암호 및 복호 회로
KR100379122B1 (ko) * 2000-11-13 2003-04-08 엘지전자 주식회사 기가비트 이더넷 스위치 128비트 블록 암호화알고리즘에서 라운드키 생성장치
KR100388059B1 (ko) * 2000-12-23 2003-06-18 한국전자통신연구원 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
KR20020082919A (ko) * 2001-04-24 2002-11-01 엘지전자 주식회사 암호화 코드의 저장 방법
KR20030000720A (ko) * 2001-06-26 2003-01-06 박승배 키와 평문 사이에 연산이 이루어지지 않는 대칭키 블록암호 알고리즘 설계방법
KR100531577B1 (ko) * 2002-02-28 2005-11-28 주식회사 소프트커널 문서 암/복호화장치
KR100494560B1 (ko) * 2002-11-23 2005-06-13 한국전자통신연구원 Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623503B1 (ko) 2015-02-04 2016-05-23 국민대학교산학협력단 Lea 블록암호의 화이트박스 암호 구현 장치 및 방법

Also Published As

Publication number Publication date
KR20000021130A (ko) 2000-04-15

Similar Documents

Publication Publication Date Title
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
Massey SAFER K-64: A byte-oriented block-ciphering algorithm
Mandal et al. Performance evaluation of cryptographic algorithms: DES and AES
US5623549A (en) Cipher mechanisms with fencing and balanced block mixing
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
US6504930B2 (en) Encryption and decryption method and apparatus using a work key which is generated by executing a decryption algorithm
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
US20080304664A1 (en) System and a method for securing information
US6301362B1 (en) Method and apparatus for cryptographically transforming an input block into an output block
KR100309565B1 (ko) 파이스텔네트워크를이용한데이터암호화방법
Reyad et al. Key-based enhancement of data encryption standard for text security
Asaad et al. Advanced Encryption Standard Enhancement with Output Feedback Block Mode Operation
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
Sakib Analysis of Fundamental Algebraic Concepts and Information Security System
JP5617845B2 (ja) 暗号化装置、暗号化方法及びプログラム
Patil et al. An enhancement in international data encryption algorithm for increasing security
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
Venkatesha et al. AES based algorithm for image encryption and decryption
Mahboob et al. An innovative technique for constructing highly non-linear components of block cipher for data security against cyber attacks
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
Chandrasekaran et al. Ensemble of blowfish with chaos based s box design for text and image encryption
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
Sharma et al. Comparative analysis of block key encryption algorithms
EP1043863A1 (en) Method for the cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
Salman New method for encryption using mixing advanced encryption standard and blowfish algorithms

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
LAPS Lapse due to unpaid annual fee