안전성이증명가능한블록암호알고리즘 개발(i) - itfind · 2012-06-13 ·...

88
-1- 최종연구보고서 암호기술연구 01-06 안전성이 증명가능한 블록암호 알고리즘 개발( I ) Development of a block cipher with provable security 수탁기관 서울대학교 수학연구소 : 2001.11

Upload: others

Post on 06-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

- 1 -

최종연구보고서 암호기술연구 01-06

안전성이 증명가능한 블록암호 알고리즘

개발( I )

Development of a block cipher with provable security

수탁기관 서울대학교 수학연구소:

2001.11

- 2 -

제 출 문

한국정보보호진홍원 원장귀하

본 보고서를 안전성이 증명 가능한 블록 알고리즘 개발 의 최종 결과 보고서로 제출합니“ (I)”

다.

년 월2001 11

수탁 기관 : 서울대학교 수학연구소연구책임자 : 교수 김 명 환 서울대학교 수리과학부( )

참여연구원 : 교수 이 인 석 서울대학교 수리과학부( )

백유진곽남석김우환박철민윤효진, , , ,

주소영김수영선동규이임경이주형, , , ,

- 3 -

요 약 문

제목 안전성이 증명 가능한 블록암호알고리즘 개발1. : (I)

연구개발의 목적 및 중요성2.

블록 암호 알고리즘은 고정된 크기의 키를 사용하여 고정된 크기의 블록단위로 암 . 복호화

연산을 수행하는 알고리즘을 말한다 블록 암호 알고리즘은 그 특성상 상대적으로 짧은 키.

길이로 빠른 암 . 복호화 속도를 구현하기 때문에 전자 상거래 등에서 정보의 기밀성과 정

보 처리의 효율성을 동시에 충족시킬 수 있는 필수 기술이 되었다.

년 미국의 국가표준국 이하 이 미연방 상업용 표준 블록 암호알고리즘으로 채택1976 ( NIST)

한 는 그 이후 개발된 여러 블록 암호 알고리즘의 모델이 되었다 유럽과 일본 역시 일DES .

찍부터 정부와 대기업을 중심으로 블록 암호 알고리즘 개발에 많은 노력을 기울여왔으며 우

리나라에서도 년에 국내 전자상거래의 안전성 확보를 위한 기반 기술의 하나로 정보보1998

호센터 이하 의 주도 하에 블록 암호 알고리즘 를 개발하여 상업용 표준 암호( KISA) SEED

알고리즘으로 채택하였다.

한편 블록 암호 알고리즘에 대한 다양한 공격방법이 연구되고 발전되었다 특히 가장 성공.

적인 공격 방법으로 평가되는 차분 공격법과 선형 공격법에 의하여 의 안전성이 위협DES

받기에 이르자 는 최근 를 로 대체하였다NIST DES AES .

이제는 이처럼 다양한 공격법에 대하여 안전하면서도 구현하기 쉽고 효율적인 블록 암호 알

고리즘의 개발이 요구되고 있다 본 연구의 목적은 차분 공격법과 선형 공격법 둥 기존의.

공격 방법에 대해서 안전하고 수학적 이론에 근거하여 그 안전성을 증명할 수 있는 새로운,

블록 암호 알고리즘의 개발하는 것이다.

- 4 -

연구 개발의 대용 및 범위3.

본 연구의 목적은 앞서 밝힌 바와 같이 차분 공격법과 선형 공격법 등 기존의 공격 방법에

대해서 안전하고 수학적 이론에 근거하여 그 안전성을 증명할 수 있는 새로운 블록 암호,

알고리즘의 개발하는 것이다 또한 가 를 공모할 때 제시한. NIST AES

블록 암호- 128bit

이상의 크기- 128bit key

효율성-

디자인- flexible, simple

등의 기준도 충족시키는 블록 암호 알고리즘을 개발하고자 한다.

이를 위하여 등이 제시한 차분 공격과 선형공격에 대한Nyberg, Knudsen provable

의 개념과 성질을 연구하여 안전성을 증명할 수 있는 새로운 블록 암호 알고리즘을security

찾고자 하였다 이러한 배경 하에 몇 가지 새로운 구조를 고안하였고 그 중 이. , 'FRACTAL

선정되었다.

연구결과4.

제 장에서는 안전성 증명 가능 블록 암호 알고리즘의 등장 배경을 설명하였고1 ,

제 장은 본 연구진이 고안한 의 안전성 증명에 필요한 차분 분석 이하 과2 FRACTAL ( DC)

선형 분석 이하 에 대하여 중요한 개념과 용어 성질들을 다루고 있다( LC) , .

제 장에는 의 구조를 설명하고 안전성을 증명하였으며 효율적인 구현에 관하여3 FRACTAL

설명하였다.

제 장은 의 전반적인 특성을 요약하고 향후 과제에 대하여 논하였다 알고리즘4 FRACTAL .

의 함수가 로 내려가면서 계속 같은 구조로 구성되어 있어서F- 64bit -> 32bit -> 16bit

라고 부르게 되었다 의 특징은'FRACTAL’ . FRACTAL :

대칭키 블록 암호 알고리즘- 128bit

크기 더 큰 크기의 키 사용 가능- 128bit key ( )

라운드 구조- 8 Feistel

대부분의 연산이 단위- byte

함수 안에서 확산효과를 위한 선형 연산 사용- F- L1, L2, L3

반복 구조 사용 와 에 안전한 알고리즘 증명가능 등이다- , DC LC ( ) .

- 5 -

SUMMARY

1. Title: Development of a B1ock Cipher with Provable Security(I)

2. Research Summary

A block cipher is an algorithm that encrypts and decrypts in blocks of fixed length

using keys of fixed length. A block cipher is a new and core technology that guarantees

both security and efficiency in e-commerce with relatively short key size.

Since DES was announces as the commercial standard of USA in 1976by NIST, various

methods have been introduced to attack DES. Among them DC and LC are notable.

NIST, recently replace DES by AES that seems to be strong against DC and LC.

Our aim is to develop a new block cipher with provable security against DC, LC, and

other attacks. We also require the new block cipher satisfies standards for AES

suggested by NIST such as

- 128bit block cipher,

- 128bit and extendable key size,

- no weak keys

- efficient algorithm

- flexible, simple design easy to implement, etc.

Under these conditions, we designed a new block cipher with provable security, called

'FRACTAL'.

3. FRACTAL

The name 'FRACTAL' of our final candidate comes from fractal-1ike structure of

F-function. Our F-function consists of the same but smaller sub-structures and so do

the sub-structures. Son1e important features of FRACTAL are:

- 128bit symmetric key block cipher

- 128bit key-size

- supports extended key-size

- 8-round Feistel structure

- most of operation units are bytes

- linear functions L1, L2, L3 are used in F-function for duffusion

- repeated structure provides provable security against DC and LC etc.

- 6 -

목 차

제 장 서 론1

제 장 안전성 증명2

제 절 와1 LC DC

제 절 치환함수에 대한 안전성 연구2

제 절 구조의 안전성 연구3 Feiste1

제 절 결론4

제 장3 FRACTAL Encryption Algorithm

제 절 개요1

제 절 구조2

제 절 및 에 대한 안전성 증명3 DC LC

제 절 다른 공격법에 대한 안전성에 대해서4

제 절 구현 및 효율성에 대해서5

제 장 결론 및 향후과제4

부 록

의 소스 코드- FRACTAL C

안전성 증명 가능한 블록 암호 알고리즘- FRACTAL

- 7 -

그림 목차

그림 함수( 2-1) 5- (S box)

그림 함수( 2-2) F- (F function)

그림 라운드 구조를 갖는 함수( 2-3) r F-

그림 구조 라운드( 2-4) Feistel 1- (one round Feistel)

그림 일반적인 구조( 3-1) Feiste1

그림 의 전체 구조( 3-2) FRACTAL (The Structure of FRACTAL)

그림 의 함수( 3-3) FRACTAL F- (F-function of FRACTAL)

그림 곱 함수( 3-4) - (multiplication by x)

그림 기본 구조( 3-5)

그림 함수( 3-6) F-TH- (F-TH function)

그림 의 함수( 3-7) FRACTAL New-F

- 8 -

제 장 서론1

에 의해 제안된 는 안전성을 증명할 수 있도록 고안되었다 반복적인 구조Matsui MISTY[1] .

를 사용함으로써 및 에 대한 안전성을 높였으며 작은 단위에서는 구조의 변LC DC Feistel

형을 사용하여 효율성을 높였다 는 구조의 비트 블록 암호 알고리즘이다.MISTY Feistel 64 .32

비트를 입력값으로 가지는 함수는 다시 의 변형구조를 취하고 있다 함수에 쓰F- Feistel . F-

이는 비트 함수는 비트를 비트와 비트로 잘라서 연산하여 더 나은 결과를 얻어낸다16 16 7 9 .

는 키로부터 만들어 낸 다항식을 곱하여 얻어지는 을 이용하여 안Vaudenay[2] decorrelation

전성을 증명하였는데 부메랑 공격에 취약한 것으로 밝혀졌다 또 비트 블록 암호 알고리. 128

즘의 경우 차수가 인 다항식의 곱셈은 계산적 부담이 될 수밖에 없다128 .

와 에 대한 안전성을 얻을 수 있다고 해도 개별적인 공격이 가능할 수 있어 전체를DC LC

포괄할 수 있는 계산 복잡도에 관한 연구가 더 필요하다고 할 수 있다 증명 가능한 안전성.

에 대해서는 장에서 다룬다(provable security) 2 .

후보와 등 기존 알고리즘을 분석하고 둥이 제시한 차분 공AES SEED , Nyberg, Knudsen

격과 선형공격에 대한 의 개념과 성질을 연구하여 안전성을 증명할 수 있provable security

는 새로운 블록 암호 알고리즘을 찾고자 한다.

- 9 -

참고 문헌

[1] M. Matsui,"New Structure of Block Ciphers with provable Security against

Differential and Linear Cryptanalysis,'' Fast Software Encryption, LNCS 1039,

pp.205-218, Springer-Verlag,1996.

[2] S. Vaudenay. "Provable security for block ciphers by decorrelation."In STACS 98,

Paris, France, LNCS 1373, pp.249-275, Springer-Verlag, 1998.

- 10 -

제 장 안전성 증명2

년 가 쓰이기 시작한 이후 컴퓨터 계산과 암호 분석의 급격한 발전 특히 과1970 DES , Biham

에 의해 제안된 차분 분석법과 에 의한 선형 분석법으로 의 안전성에 대Shamir Matsui DES

한 문제가 제기 되었고 현재는 로 대치하게 되었다 차분 분석과 선형 분석으로 가AES . DES

흔들린 반면 이 두 분석 방법에 대한 연구도 활발해져 이 분석법에 대해 비교적 안전한 블

록암호를 만들기 위한 노력도 함께 커져왔다 그 결과 어떤 암호 시스템에 대해서는 이러한.

분석법에 대한 안전성 여부를 이론적으로 증명 가능하게 되었다 이 장에서는 이러한 암호.

알고리즘과 관련된 정의와 정리들을 살펴보고 앞으로 제시할 블록 암호 알고리즘의 안전성

에 대한 이론적 근거를 마련하고자 한다.

제 절 와1 LC(Linear Cyptanalysis) DC(Differential Cryptanalysis)

1. LC

여기에서는 선형분석법 의 대략적인 설명과 중요하게 쓰이는(linear cryptanalysis)

를 설명한다‘Piling-Up lemma' .

는 평문과 암호문 그리고 키 사이의 선형 관계식을 이용하는 것이다 는 평문 공격LC . LC

의 일종인데 평문 공격이란 공격자가 일련의 평문과 대웅하는 암(known plaintext attack) ,

호문 쌍에 대한 정보를 가지고 있는 경우를 말한다 하지만 공격자가 평문을 선택적으로 골.

라서 대응하는 암호문을 얻어낼 수는 없다 많은 응용과 공격 모델에서 공격자가 랜덤한 집.

합의 평문과 그 암호문을 얻을 수 있다는 가정은 실제적인 의미를 가진다.

기본적인 아이디어는 비트 단위의 을 포함한 선형 관계식으로 알고리즘을 근사시키는XOR

것이다 선형 관계식은 다음의 형태를 가진다. .

Xi는 입력값 X=[X1,X2 의 번째 비트를 나타내고,...] i Yj는 출력값 Y=[Y1,Y2 의 번째 비트,...] j

를 나타낼 때,

만약 개 비트 값을 임의로 선택한다면 위와 같은 식이 성립할 확률은u+v12가 될 것이다.

- 11 -

따라서 위 식이 성립할 확률이12로부터 멀어질수록 알고리즘의 좋지 않은 측면을 나타낸

다고 할 수 있다 가능한 모든 입력값 에 대해 이 식이 성립할 확률을. X PL이라고 하자.

PL 이거나=1 PL 이면 위 식은 알고리즘의 완전한 표현식이 되어 치명적인 약점이 된다=O .

위 식의 오른쪽 부분은 몇 개의 부분키 비트들의 로 바뀌어 질 수 있으며 마찬가지로XOR

확률을 계산할 수 있다 이와 같은 관계식을 어떻게 찾느냐가 문제인데 알고리즘의 비선형. ,

부분에 대해서 근사시키는 것으로 충분하다 즉 부분키 치환 행렬 곱 등은 위 식. , xoring, ,

을 보존하기 때문이다 블록 암호 알고리즘의 비선형적인 부분으로 를 들 수 있는. S-box

데 에 대한 선형 관계식 몇 개를 연이어 사용하면 중간과정에서 나오는 값들을 소거,S-box

할 수 있게 되어 입력값과 출력값에 대한 선형 관계식을 얻어낼 수 있다.

에서 중요하게 사용되는 정리로 이 있다 이진수LC Piling-Up Principle . X1,X2의 확률 분포가

다음과 같다고 가정하자.

만약 두 개의 변수 X1,X2 가 서로 독립이면

이 성립하고,

이 성립한다.

p 1 =12+ ε 1 , p 2 =

12+ ε 2라 두면, P r ( X 1⊕ X 2 = 0 ) =

12+ 2 ε 1 ε 2가 되고

X 1⊕ X 2 = 0가 나올 확률의 치우친 정도를 ε1,2라 두면 ε1,2=2ε1ε2가 된다 이와 같은 성.

질은 개의 변수n X1,X2.. . , ,XN인 경우로 확장될 수 있다 진 변수. 2 X1,.

. . . ,XN 에 대하여

p i= P r ( X i = 0 ) =12+ ε 1이라 하자.

- 12 -

다음 정리는 X 1⊕ ․․ ․⊕ X n = 0 이 될 확률을 구할 수 있게 해 준다.

Piling-Up Lemma (Matsui)

개의 독립 진 변수n 2 X1,. . . ,XN 에 대하여 다음이 성립한다.

이 정리를 이용하면 여러개의 근사식으로부터 새로운 근사식의 확률을 구할 수 있다.

를 이용한 공격의 복잡도를 생각해 보자 선형 근사식의 치우친 정도를 이라하자LC . .ε

는 공격에 필요한 기지 평문의 수가Matsui ε-2에 비례한다는 것을 보였다 은 의 선형. S-boxε

근사식을 를 이용하여 구한 것이므로 각각의 의 선형근사식의 확률Piling-Up lemma , S-box

이 많이 치우칠수록 전체 알고리즘에 실제로 작용하는 의 수가 작을수, S-box(active S-box)

록 커 진다 따라서 에 강한 블록 암호를 설계할 때 를 최적화 선형근사 확률의. LC , S-box (

치우친 정도를 최소화 와 실제로 작용하는 개수의 극대화에 많은 비중을 두는데 대표) S-box

적으로 을 들 수 있다Rijndael .

각각의 근사식이 서로 독립적이라는 가정과 전체 알고리즘의 치우친 정도가 큰 선형S-box

근사식을 각각의 의 선형 근사식으로부터 얻을 수 있다는 가정이 필요한데 실제는S-box ,

이와 달라서 더 엄밀하고 정확한 이라는 개념이 에 의해서 제안되었'linear hu1l' Nyberg[5]

다 안전성 증명을 위해 필요한 선형 특성 확률 및 선형확률에 대해서는 절에서 다시. ' ' ' ' 2

다룬다.

2. DC

는 과 에 의해서 에 대한 공격법으로 제안되었는데 선택 평문 공격DC Biham Shamir DES ,

의 일종이다 의 라운드 수가 줄어들 경우 불과 몇 분내에 완(chosen plaintext attack) . DES

전히 공격할 수 있는 방법이다 이후 많은 블록 암호 알고리즘 분석에 이용되었다. .

비트 입력값n X ' = [ X ' 1 , . . . . . , X ' n ] , X'' = [ X ' ' 1 , . . . . . , X ' ' n ] 에 대응되는 n

비트 출력값을 각각 Y ' = [ Y ' 1 , . . . . . , Y ' n ] , Y'' = [ Y ' ' 1 , . . . . . , Y ' ' n ] 이라 하자.

입력차와 출력차는 각각

- 13 -

라 두자 이상적인 암호 알고리즘의 경우 주어진 입력차. Δ 가 주어졌을때 출력차X Δ 가Y

나올 확률은1

2 n이 된다 에서는 나올 확률이 큰 입력차. DC X Δ와 출력차 Δ 를 찾는Y

다 이때 입력차와 출력차의 순서쌍. ( ΔX, Δ 는 차분이라고 부른다 또 각 라운드에서의 입Y) .

력차에 대한 출력차를 라운드 함수의 차분특성 이 라고 부른다(differential characteristic) .

에서와 같이 차분 특성은 각각의 에 대한 성질을 조사하여 얻어낸다 전체 알고리LC S-box .

즘의 차분은 각 라운드의 차분 특성을 결합하여 얻어낼 수 있는데 중간과정에서 쓰이는 서,

브키들의 효과는 함으로써 상쇄된다xoring .

를 이용한 공격의 복잡도를 생각해 보자 실제로 작용하는 에 이DC . S-box(active S-box) 0

아닌 입력차가 들어가서 얻어지는 출력차를 이용하여 차분 특성을 구하게 되는데 일반적으

로 의 차분확률이 클수록 실제로 작용하는 의 개수가 작을수록 전체 알고리즘S-box , S-box

의 차분 확률이 커진다 의 경우와 같이 복잡도는 공격에 필요한 평문과 암호문 쌍의 개. LC

수로 나타낼 수 있다 라운드 알고리즘의 경우를 생각해 보자 확률. R- . PD을 가지는 라R-1

운드 차분 특성을 얻고 난 후 마지막 라운드에서 쓰일 서브키 후보 두 개가 주어졌을 때,

올바른 것을 가려내기 위해 필요한 평문 암호문 쌍의 개수를, ND라고 하면, N D =CP D

는 크기가 작은 상수 가 된다 각각의 에 나타나는 차분이 독립적이라고 가정하면(C ) . S-box

차분 확률은 각각의 의 차분 확률의 곱으로 얻어질 수 있다 따라서 에 강한 블록S-box . DC

암호를 설계하는 것은 에서와 마찬가지로 의 최적화와 실제로 쓰이는 개LC S-box , S-box

수를 극대화 함으로써 에 강한 블록암호를 설계할 수 있다DC .

의 경우처럼 의 차분확률에 근거해서 전체 차분확률이 낮다는 것을 보이는 것만으LC S-box

로는 에 대한 안전성을 충분히 보장할 수 없다 모든 차분 확률이 충분히 낮다는 것을DC .

보임으로써 에 대한 안전성을 보일 수가 있다 하지만 차분특성확률이 높으면 에 대DC . DC

해 취약해 지고 에 대해 안전하면 낮은 차분특성확률을 가지므로 에 대한 안전성의, DC DC

중요한 척도가 된다고 할 수 있다.

- 14 -

제 절 치환 함수에 대한 안전성 연구2

절에서는 앞에서 설명한 와 에서 쓰이는 여러 가지 확률을 더 엄밀히 정의하고2 DC LC , DC

와 에서의 안전성을 얻어내는 방법을 소개한다LC .

차분 분석법에서 은 블록 암호 알고리즘을 깨는데 성공적으로 사용되었다“characteristic" .

즉 만약 확률이 충분히 큰 이 있다면 차분 분석법에 의해 비밀키의 몇, “characteristic" bits

정보를 복구해 낼 수 있다 반면 그 역은 성립하지 않다는 것을. Lai, Massey, and

가 알아내고 차분공격에 대한 강한 정도를 반영하는 것으로 을Murphy[3] , “characteristic"

대신하여 을 제안하였다 은 들의 집합으로”differential" . “differential" “characteristic"

최대 값이 낮다고 해서 그 암호가 차분 분석에 대해 안전하다고 말할 수는“characteristic"

없다 한편 이 처음으로 최대 이 충분히 낮은 블록 암호. Nyberg, Knudsen[6] ”differential"

알고리즘의 예를 제시하였고 그러한 성질은 차분 분석에 대한 라 불렀"provable security"

다.

선형 분석에 있어서도 위와 비슷하다 처음에는 블록 암호를 공격하는데 선형 분석의.

을 응용하였으나 최근에 가 이라 불리는“characteristic" Nyberg[5] ”1inear hul1"

의 집합을 소개하였고 이는 선형 분석에 대한 강도 의 엄밀한 측정으characteristic , (strength)

로 여겨진다 에서 제시된 예 역시 낮은 을 가지고 있으므로 선형 분석에 대해.[6] linear hul1

증명 가능한 안전성을 지니고 있으나 GF(233 에서의 계산이 요구되므로 계산적 복잡도가 낮)

지 않다.

- 15 -

키와 독립인1. S-box

먼저 키와 독립적인 그림 에서 주어진 형태의 에 대한 차분 분석 선형 분석의 확( 2-1) S-box ,

률에 대한 정의와 그에 따른 성질들을 살펴보기로 하자.

그림 함수( 2-1) S- (S-box)

정의 2.1

를 의 입력 출력 값을 가지는 고정된 치환 표라 하고 와 는 각각 의 가능한S n bits , , X Y S 2n

개의 입력 출력 값의 집합이라 하자, .

주어진 와 에 대해x, x X y, y YΔ Γ Δ Γ∈ ∈

를 각각 의 차분 확률 선형 확률이라 정의한다 여기서S , . a . 는b Z2상에서의 내적이고, #A

는 집합 의 원소의 개수를 나타낸다A

정의 2.2

를 각각 의 최대 차분 확률 최대 선형 확률이라 정의한다S , .

- 16 -

차분 분석이나 선형 분석에 강한 는 임의의 와 에 대해서S-box x( 0), x X y( 0), y YΔ Γ Δ Γ≠ ∈ ≠ ∈

dps와 lps의 값이 작게 나타나야 한다 따라서 최대 차분 확률과 최대 선형 확률은 어떤.

의 차분 분석이나 선형분석에 대한 안전성을 증명하는데 필요한 중요한 개념이다S-box .

아래 소개할 두 개의 보조 정리들은 에 의해 증명되었고 여러가지 형태의 블록 암호Matsui

알고리즘의 차분 분석과 선형 분석의 확률을 계산하는데 매우 유용하다[4].

보조 정리 2.3

보조 정리 임의의 함수 에 대하여2.4 S

이 성립한다 특히 가 전단사이면. S ,

이 성립한다.

키에 의존하는 함수2. F-

이제 키에 의존하는 함수 그림 에 대한 차분 분석 및 선형 분석의 확률에 대한 정F- ( (2-2))

의와 그에 따른 성질들을 살펴보기로 하자 먼저 는 가능한 모든 키 값들의 집합이라 하. K

고 를 고정된 키 에 대응되는 함수라 할 때 각각의 에 대한 의 차분 확률 및 선F(k) k , k F(k)

형 확률의 평균으로 함수 의 차분 확률 및 선형 확률을 정의한다F .

- 17 -

그림 함수( 2-2) F- (F-function)

정의 2.5

를 각각 의 차분 확률 선형 확률이라 정의한다 특히 가 암호화 함수이고 임의의F , . , F x(Δ ≠

와 에 대하여0), x X y( 0), y Y dpΓ Δ Γ∈ ≠ ∈ F와 lpF값이 작으면 가 차분 분석과 선형 분석에 대, F

해 증명 가능한 안전성을 가진다고 말한다.

정의 2.6

를 각각 의 최대 차분 확률 최대 선형 확률이라 정의한다F , .

- 18 -

정의 함수 가 그림 과 같이 라운드로 이루어져 있다고 가정하고2.7 F ( 2-3) r Fi를 의 번째F i

라운드라고 하자 이 때. xΔ i, xΓ i를 번째 라운드의 입력차와 입력 마스크 값이라고 하고i yΔ i,Γ

yi 를 번째 라운드의 출력차와 출력 마스크 값이라고 하면i yΔ i= xΔ i+1, yΓ i= xΓ i+1 이다 이 때.

x= xΔ Δ i, y= yΔ Δ r에 대응되는 함수의 차분 특성 확률F- (differential characteristic probability)

dpcF 와( x y) x= xΔ Δ Γ Γ→ 1, y= yΓ Γ r에 대응되는 선형 특성 확률(linear characteristic probability)

plcF 는 다음과 같이 정의된다( x y) :Γ Γ→

또한

를 각각 의 최대 차분 특성 확률 최대 선형 특성 확률이라고 정의한다F , .

그림 라운드 구조를 갖는 함수( 2-3) r F-

- 19 -

제 절 구조의 안전성 연구3 Feiste1

이 절에서는 절에서 논의한 치환 함수를 이용한 구조의 암호알고리즘 중에서 차분1 Feistel

분석과 선형 분석에 대해 증명 가능한 안전성을 가진 그 중에서 가장 기본적인 형태 그림, (

의 구조에 대한 여러 정리들을 소개하고자 한다2-4) .

그림 구조 라운드( 2-4) Feistel 1- (one round Feistel)

정의 라운드 구조를 가진 블록 암호 알고리즘에서 번째 라운드의 입력 값과2.8 r- Feistel i

출력 값을 각각 x(i)=(xL(i),xR(i)), y(i)=(yL(i),yR 라고 하자 따라서 은 평문(i)) (1 i r). X(1) (P≤ ≤ L,

PR 을 은 암호문) , y(r) (CL, CR 을 의미하며 이 된다 이 때) , y(i)=x(i+1) .

를 각각 라운드 알고리즘의 차분 특성 확률 선형 특성 확률이라 정의하고r , ,

를 각각 라운드 알고리즘의 최대 차분 특성 확률 최대 선형 특성 확률이라 정의한다r- , .

- 20 -

를 각각 라운드 알고리즘의 차분 확률 선형 확률이라 정의한다r , .

를 각각 라운드 알고리즘의 최대 차분 확률 최대 선형 확률이라 정의한다r , .

과 에 대해서 다음이 성립함이 알려져 있다DP(r) LP(r) ([2]).

보조정리 임의의 에 대해서2.9 r( 1)≥

이 성립한다.

즉 구조의 블록 암호 알고리즘에서 라운드 수를 증가시키는 경우 최대 차분 확률, Feiste1 ,

과 최대 선형 확률은 커지지 않는다.

보조정리 임의의 대해서2.10 r( 1)≥

이 성립한다.

- 21 -

정리 임의의 대해서2.11 r( 1) ,≥

이 성립한다.

증명 먼저 인 경우 에 대해서 증명을 해 보자( ) =1 DPC .γ

를 입력차라 하고( o, )( 0) , (α β α≠ 1,β1 를 라운드 후의 출력차) 1 ,(α2,β2 를 라운드 후의 출력차라) 2

하자 그러면 다음과 같은 식이 성립한다. .

Case l. β0 인 경우=0

이 경우에는 α0=β1 이고0≠

따라서

이다.

Case 2,β0 인 경우0≠

이 경우에는

이고 따라서,

이다.

따라서 인 경우에는 정리가 성립한다=1 .γ

- 22 -

이제 가정하고 인 경우에 정리가 성립한다고 가정하자 즉r>1 -1 . DPC(2( -1))γ γ ≤

dpc Fmaxr - 1이 성립한다고 가정하자 또한. (α0,β0 를 입력차라 하고 를 라운) ( 0) , ( i, i) iα β≠

드 후의 출력차라고 하자 그러면.

이다 따라서 에 대해서 정리가 성립한다 에 대해서도 똑같은 증명이 가능하다. DPC . LPC .

최대 차분 확률에 관한 다음의 정리는 차분 분석과 선형 분석에 강한 함수를 사용함으로써

이들에 대하여 안전한 구조의 블록 암호 알고리즘을 만드는 것이 가능함을 보여주고Feiste1

있다([1].[6]).

정리 임의의 에 대해서2.12 r( 4) ,≥

이 성립한다.

특히 와 는 함수 가 치환인 경우 라운드 이상의 구조의 블록 암호 알고Aoki Ohta F 3 Feistel

리즘에 대해 아래와 같은 정리를 증명하였다 정리 함수가 치환이면 임의의 라[1]. 2.13 F- , n-

운드 대해서(n 3)≥

이 성립한다.

- 23 -

제 절 결 론4

지금까지 구조의 블록 암호 알고리즘의 차분 분석과 선형 분석에 대한 안전성을 증Feistel

명할 수 있는 몇 가지 정리를 보여주었다 이를 이용하면 충분히 작은. dp Fmax를 갖는 적

당한 함수를 이용한 라운드 이상의 암호 알고리즘은 차분 분석과 선형 분석에 안전하F- 4

다는 것을 알 수 있다 특히 가 전단사이면 라운드 이상이면 된다. , F 3 .

그러나 구조에 라운드에 대한 불능 차분 분석법 에 대해 안전하기Feistel 5 (impossible DC)

위해서는 적어도 라운드 이상이 되어야 할 것이다 또한 위의 결과들은 오직 차분 분석과6 .

선형 분석에 대한 것이므로 블록 암호에 대한 다른 여러 가지 공격에 대한 안전성도 고려해

야 할 것이다.

- 24 -

참 고 문 헌

[1] K. Aoki, K. Ohta, "Strict evaluation of the maximum average of differential

probability and the maximum average of linear probability", IEICE Trans. Vo1.E80-A,

no.1, pp.2-8.(1997)

[2] Y. Kaneko, F. Sano, and K. Sakurai, "On provable security against differential and

linear cryptanalysis in generalized Feistel ciphers with multiple random functions", Proc.

of SAC'97 (Aug.1997).

[3] X. Lai, J. L. Massey and S. Murphy, Markov ciphers and differential cryptanalysis,

Advances in Cryptology - Eurocrypt '91, Springer-Verlag (1992), pp.17-38.

[4] M. Matsui, "New Structure of Block Ciphers with Provable Security against

Differential and Linear Cryptanalysis". Fast Software Encryption, LNCS 1039, pp.205-218,

Springer-Verlag, (1996).

[5] K. Nyberg, "Linear Approximation of Block Ciphers". Advances in

Cryptology-Eurocrypt'94, LNCS 950, Springer-Verlag (1994)

[6] K. Nyberg, L. Knudsen, "provable security against Differential Cryptanalysis", Journal

of Cryptology, Vol.8, no.1 (1995)

- 25 -

제 장3 FRACTAL Encryption Algorithm

제 절 개 요1

암호화 알고리즘은 다음과 같은 특징을 가지고 있다FRACTAL .

비트 대칭키 암호 알고리즘이다- 128 .

비트 키를 사용하지만 약간의 수정을 통하여 그 이상의 키 길이를 지원할 수 있다- 128 .

전체적인 구조는 라운드 구조이다- 8 Feistel .

대부분의 연산이 바이트 단위의 연산이다- .

함수 안에서의 확산 효과를 위해 세 종류의 선형 연산인 를 사용- F- (diffusion) L1, L2, L3

한다.

반복 구조를 사용했으며 따라서 차분 분석법 및 선형 분석법에 강한 알고리즘이다 즉- . ,

키 생성 알고리즘만을 변형한 동등한 구조의 알고리즘 에서 서브키들이 독(FRACTAL-TH)

립적이고 랜덤하다는 가정하에 차분 분석법 및 선형 분석법에 안전함이 증명 가능하다.

구조1. Feistel

구조는 블록 암호 알고리즘을 만들 때 사용되는 가장 일반적인 구조이다 이 구조의Feistel .

가장 큰 특징은 임의의 함수를 치환 함수 으로 만들 수 있다는 것과 암호화F- (permutation)

와 복호화가 거의 같다는 점이다.

구조의 기본적인 성분은 키에 의존하는 비선형 함수인 함수이다 만약 암호 알고Feistel F- .

리즘의 블록 크기가 일 때 함수는 비트의 이진수열과 비트의 부분키를 입력 값으로2n , F- n k

받아서 비트의 출력 값을 만든다n :

이러한 구조에 대해서 은 및 에 관한 안전성에 대해서 다음이Feistel Knudsen et. al. DC LC

성립함을 증명하였다.

- 26 -

정리 함수가 전단사인 라운드 구조를 생각하자 그림 만약3.1 ([1,7]) F- r Feistel .( 3-1)

γ≥3이고 부분키 K 1 , . . . . , K r이 독립적이고 랜덤하면 다음이 성립한다:

그림 일반적인 구조( 3-1) Feistel

함수2. S- ( S-box )

는 암호 알고리즘에서 혼돈 효과를 주는 가장 일반적인 방법이다S-box (confusion) .

암호 알고리즘에서는 비트 이진 수열을 비트 이진 수열로 보내주는 함수로FRACTAL 8 8 S-

유한체 GF(2 8) 위에서의 역수 함수를 사용한다 이 함수는 및 에 대한 안전성에. DC LC

관하여 다음과 같은 정리가 성립함이 알려져 있다.

- 27 -

정리 유한체3.2 ([1,6]) GF(2 n)에서 정의된 S(x)= x - 1라는 함수를 생각하자 그러면. n

이 짝수인 경우에 다음이 성립한다.

선형함수3.

암호 알고리즘은 함수 안에서의 확산 효과를 위해 세 가지의 선형FRACTAL F- (diffusion)

연산 을 사용한다 세 가지 선형 연산의 기본구조는 다음과 같은 행렬이다L1, L2, L3 . .

여기서 I n은 n×n 항등 행렬을 뜻하며 는 유한체의 한 원소이다 특히 이면 이 행렬x . , n=1

은 행렬이 되며 가장 좋은 확산 효과를 주는 행렬로MDS(maximum distance separable) ,

알려져 있다.

유한체4. GF(2 n)와 그 위에서의 여러 연산

암호 알고리즘에서는 여러 연산이 바이트 단위로 수행이 되며 이 경우 바이트FRACTAL

란 유한체 GF(2 8)의 한 원소를 의미한다.

유한체- GF(2 8)

를 위에서의 차 기약다항식이라 하자 그러면 유한체f(x) GF(2) 8 . GF(2 8)의 모든 원소는

또는 의 계수를 갖는 차 이하의 다항식으로 표현될 수 있으며 이 때0E 1 7 GF(2 8)위에서의

연산은 다음과 같이 정의된다.

덧셈 다항식 덧셈- : (mod 2)

곱셈 다항식 곱셈- : (mod f(x))

곱셈에 대한 역원- : GF(2 8)의 한 원소 가 있을 때 유클리드 알고리즘을 이용하면g(x) ,

을 만족하는 다항식 와 를 안에서 찾을 수 있는데 이g(x)h(x)+f(x)k(x)=1 h(x) /k(x) GF(2)[x] ,

가 의 곱셈에 대한 역원이 된다h(x) (mod f(x)) g(x) .

- 28 -

반복구조5.

암호 알고리즘은 및 에 대한 안전성의 증명을 위하여 에서 사용FRACTAL DC LC MISTY

된 반복 구조를 사용하였다[4,5].

제 절 구조2

의 전체구조는 라운드 구조이며 거기에 덧붙여 암호화의 전 단계로FRACTAL 8 Feistel 64

비트 부분키 개2 K 0,K 1를 평문에 더하고 암호화 후에는 부분키 개2 K 66,K 67를 암호

문에서 삐 준다 그림 이 경우의 덧셈과 뺄셈은.( 4-2) (mod 264 로 한다) .

그림 의 전체 구조( 3-2) FRACTAL (The Structure of FRACTAL

함수1. F-

함수는 이라는 세 개의 선형 함수와 그리고 부분 키 이 사용된F- L1, L2, L3 S-box, xoring

다 그림 즉 함수는 비트 부분 키 선형 함수 의 과정이 총( 3.2). , F- [ 64 xoring S-bpx ]→ →

회 반복된다 따라서 함수에는 총 개의 비트 부분 키가 쓰인다 선형 함수는 매회8 . F- 8 64 . Ll,

중 하나가 쓰이며 회부터 회까지 의 순서로 사용된L2, L3 , 1 8 L1-L3-L2-L3-L1-L3-L2-L3

다.

- 29 -

그림 의 함수( 3-3) FRACTAL F- (F-function of FRACTAL)

함수에 사용되는 선형 함수들은 비트 입력 값을 유한 체F- 64 GF1상에서의 길이가 인 벡터8

로 이해하며 확산효과를 위하여 도입되었다 또한 바이트 단위의 연산을 수행한다 선형함, . .

수 에서는 비트 입력 값을 유한체L1, L2, L3 64

위에서의 길이가 인 벡터로 이해한다8 .

- 30 -

가 함수. L1

함수는 다음과 같은 행렬로 주어진다L1 .

여기서 a i∈ (GF 1 )8이고 y=1+x∈(GF 1)

8이다 .

함수의 는 다음과 같다L1 C pseudo code :

입력 : a 1 , a 2 , ... , a 8 → 출력 : a 1 , a 2 , ... , a 8

a 1 = a 1+ a 5, a 2 = a 2+ a 6, a 3 = a 3+ a 7, a 4 = a 4+ a 8 :

- 31 -

나 함수. L2

함수는 다음과 같은 행렬로 주어진다L2 .

여기서 a i∈ (GF 1 )8이고 y=1+x∈(GF 1)

8이다 .

함수의 는 다음과 같다L2 C pseudo code :

입력 : a 1 , a 2 , ... , a 8 → 출력 : a 1 , a 2 , ... , a 8

a 1 = a 1+ a 3, a 2 = a 2+ a 4, a 5 = a 5+ a 7, a 6 = a 6+ a 8 :

다 함수. L3

함수는 다음과 같은 행렬로 주어진다L3 .

- 32 -

여기서 a i∈GF(28)이고 y=1+x∈GF(2 8)이다 .

함수의 는 다음과 같다L3 C pseudo code :

입력 : a 1 , a 2 , ... , a 8 → 출력 : a 1 , a 2 , ... , a 8

a 1 = a 1+ a 3, a 3 = a 3+ a 4, a 5 = a 5+ a 6, a 7 = a 7+ a 8 :

- 33 -

라 함수. *x

선형 함수의 정의에서 곱 함수 가 자주 등장하는데 이 함수는 아래의 그림 와 같x - (x* ) ( 3-4)α

이 간단하게 구현할 수 있다 즉 입력 값 비트를 비트 왼쪽으로 회전 시킨 후 최. , 8 1 (rotation)

하위 비트가 이면 를 해주고 최하위 비트가 이면 그대로 둔다1 0x68 xoring 0 .

그림 곱 함수( 3-4) x - (multiplication by x)

마 함수. S-

함수에서는 비트 입력값을 유한체S- 8

위에서의 한 원소로 이해하며 다음과 같은 함수로 주어진다.

여기서 0xAB = x 7+x 5+x 3+x+1∈GF 2 이고 0 - 1 = 0으로 이해한다.

0xAB를 더하여 역을 취한 것은 과 이 고정점이 되는 것을 방지하기 위함이다 한편0 1 . ,

에서(3.2) GF 2를 정의하는데 사용된 기약다항식 x 8+x 6+x 5+x 4+1은 상의 원시GF(2)

다항식 이다 따라서 이 기약다항식은(primitive polynomial) . GF 2 =GF(2)(a)가 되는 를a

근으로 가진다

- 34 -

복호화 알고리즘2.

알고리즘은 구조이기 때문에 복호화 알고리즘은 부분키 순서를 제외하FRACTAL Feistel

고는 암호화 알고리즘과 동일하다.

키 생성 알고리즘3.

키 생성 알고리즘은 랜덤하게 주어지는 비트 키를 이용하여 개의 비트 부분 키를 생128 68 64

성하는 알고리즘이다 이 알고리즘에는 다음과 같은 함수와 상수들이 사용된다. .

- S 8 암호 알고리즘에 사용되는 를 번 병렬로 사용하는 함수: FRACTAL S-box 8

암호 알고리즘에 사용되는 세 가지 선형함수- Ll, L2, L3 : FRACTAL

- e = [ (e -2) ( 2 )*264] 자연대수 를 진법으로 표시했을 때의 소수 부분 비트 단: e 2 64 . ,

는 최대 정수 함수를 나타내는 기호이다 실제 값은 다음과 같다[ ] . .

- τ = [ ( τ-1) 2*264] 황금비 를 진법으로 표시했을 때의 소수 부분 비트 실제 값: 2 64 .τ

은 다음과 같다.

- 35 -

키 생성 알고리즘은 다음과 같다.

입력 비트 키- : 128 K

K L 키 의 왼쪽 비트: K 64

K R 키 의 오른쪽 비트: K 64

출력 개의 비트 부분 키- : 68 64 K 0 , K 1 . , , , .K 6 7

각 i(1≤i≤11)에 대하여,

상수 와 함수e,τ S8 등을 사용하여 부분 키들이 비선형적으로 생성되도록 함, Ll, L2, L3

으로써 연관 키 공격이나 기타 키를 이용한 공격이 힘들도록 설계되었다 또한 함수에서. , F-

사용한 것과 같은 함수를 사용함으로써 설계가 용이하고 계산의 효율성을 높도록 하였다.

키 의 크기가 비트보다 큰 경우에도 키 생성 알고리즘을 약간 변형하여 필요한 부분K 128

키들을 생성할 수 있다.

- 36 -

제 절 및 에 대한 안전성 증명3 DC LC

그림 기본 구조( 3-5)

정리 그림 와 같은 구조를 번 사용하는 알고리즘을 생각하자 만약 부분키들이 독3.3 ( 3-5) 2 .

립적이고 랜덤하면 다음이 성립한다.

증명 먼저 에 대해서 증명해 보자) DPC :

( a 0 ,B 0 ) (≠0 )를 입력차라 하고, ( a 1 ,B 1 ) 라운드 후의 출력차1 , ( a 2 ,B 2 )를 라운2

드 후의 출력차라 하자 그러면 다음과 같은 식이 성립한다. .

- 37 -

Case 1. a 0+ B 0= 0인 경우

이 경우에는 a 1 = 0, a 0+ x *B 0≠0, a 1+ B 1≠0, a 1+ x *B 1≠0이다 따라서.

이고 위의 식이 모든, a 0,B 0 ,a 2 ,B 2에 대해서 성립하므로

을 얻는다.

Case 2. a 0+ B 0= 0 a 0+B 0= 0 a 0+ B 0= 0인 경우

과 동일한 증명이 가능하다Case 1 .

Case 3. a 0+ B 0≠0 .a 0+ x*B 0≠0 인 경우

이 경우는 a 1+ B 1또는 a 1+x*B 1이 이 아니므로 역시0 ,

이 성립한다.

에 의해서Case 1,2,3 DPC(2)≤(dp Fmax )3이 성립한다.

에 대한 증명은 에 대한 증명과 거의 유사하므로 생략한다LPC DPC .

- 38 -

정리 그림 와 같은 구조를 번 사용하는 알고리즘을 생각하자 만약3.4 ( 3-5) r . r≥2이고 부

분키들이 독립적이고 랜덤하면 다음이 성립한다.

.

증명 먼저 인 경우에 에 대해서 증명해 보자) r=2 dp :

( a 0 ,B 0 )(≠0)를 입력차라 하고, ( a 1 ,B 1 )를 라운드 후의 출력차1 , ( a 2 ,B 2 )를 라운2

드 후의 출력차라 하자 그러면 다음과 같은 식이 성립한다. .

Case l. a 0+ B 0= 0 인 경우

이 경우에는 a 1 = 0이고 , B 1 ≠0 이다 따라서.

이고,

이다.

- 39 -

Case 2. a 0+ x *B 0= 0 인 경우

과 동일한 증명이 가능하다Case 1 .

Case 3. a 0+ B 0≠0 .a 0+ x *B 0≠0 인 경우

이므로

이다.

에 의해서Case 1,2,3 DP(2)≤(dp F)2이 성립한다.

다음으로 이라 하고>2γ ( a 0 ,B 0 ) (≠0 )를 입력차, ( a i ,B i )를 라운드 후의 출력차라고i

하자 그러면.

이기 때문에 DP(r)≤(dp F)2이 성립한다.

에 대한 경우도 똑같은 증명이 가능하다LC .

이제 그림 와 같은 함수를 생각하자 여기서 함수는 알고리즘의( 3-6) F-TH . S- FRACTAL

함수와 동일한 함수이고 함수는 다음과 같은S- G1, G2, G3 GF 1 상의 행렬로 주어진다.

- 40 -

그림 함수( 3-6) F-TH- (F-TH-function)

- 41 -

정리 를 함수로 사용하고 라운드 구조를 사용하는 에 대3.5 F-TH F- 2r Feistel FRACTAL-TH

해서 부분키들이 독립적이고 랜덤하면 다음이 성립한다.

- 42 -

증명( ) dpc Smax=dp S, lpc Smax=dl S를 이용하고 정리 을 사용하면 다음과 같은 식3.3

을 얻는다:

마지막으로 정리 을 사용하면 원하는 결과를 얻는다2.11 . ■

정리 를 함수로 사용하고 라운드 이상의 구조를 갖는 에3.6 F-TH F- 3 Feistel FRACTAL-TH

대해서 부분키들이 독립적이고 랜덤하면 다음이 성립한다.

증명 정리 를 사용하면 다음과 같은 식을 얻는다( ) 3.4 .

- 43 -

마지막으로 정리 을 사용하면 원하는 결과를 얻는다2.13 . ■

마지막으로 암호화 알고리즘의 및 에 대한 안전성에 대해 생각해 보자FRACTAL DC LC .

알고리즘은 알고리즘의 키 생성 알고리즘을 약간 변형하면 동FRACTAL FRACTAL-TH

등한 구조를 갖게 된다 따라서 알고리즘도 알고리즘과 똑같은. FRACTAL FRACTAL-TH

안전성을 가지고 있다.

정리 알고리즘은 알고리즘과 똑같은 및 에 대한 안전3.7 FRACTAL FRACTAL-TH DC LC

성을 가진다.

증명( ) L1=G1 ○ G2 ○ G3, L2=G2 ○ 라 놓으면 알고리즘과G3, L3=G3 FRACTAL

알고리즘은 동등한 구조를 갖기 때문에 위의 정리가 성립한다FRACTAL-TH . ■

- 44 -

제 절 다른 공격법에 대한 안전성애 대해서4

불능 차분 공격 연관 키 공격 약한 키 공격 대수적 구조를 이용한 공격 등 와 이, , , , DC LC

의의 다른 공격에 대한 암호 알고리즘의 안전성을 간략히 살펴보자FRACTAL .

불능 차분 공격1.

구조는 함수의 선택에 상관없이 다음과 같은 불능 차분이 존재한다Feistel F- .

그러나 알고리즘은 라운드 구조이며 각 라운드에 사용되는 부분 키의 크기가FRACTAL 8-

크기 때문에 불능 차분 공격이 불가능하다.

연관 키 공격과 약한 키 공격2.

암호 알고리즘의 키 생성 알고리즘에서는 라는 비선형 함수를 사용하며FRACTAL S-box

각 라운드의 부분 키를 생성할 때 라운드에 해당되는 상수를 하는 과정을 수행한다xoring .

따라서 약한 키 가 존재할 확률이 매우 낮고 연관 키 공격이 어려울(weak key) , (related key)

것으로 기대된다.

- 45 -

대수적 구조를 이용한 공격3.

최근 수학적인 구조가 안전성에 영향을 미칠 수 있음이 지적되었는데 이 등은, Ferguson[3]

을 대수식 으로 나타낼 수 있으며 의 안전성이 특정 형태Rijndael (algebraic formula) Rijndael

의 대수 방정식을 푸는 문제의 어려움에 기인함을 보였다.

이러한 대수적 구조를 이용한 공격에도 잘 견딜 수 있도록 하기 위하여 암호, FRACTAL

알고리즘에서는 비선형 위수가 가장 큰 것으로 알려진 유한 체 위에서의 역수 함수를

로 사용하였다 또한 선형 함수를 정의할 때 사용한 유한 체S-box . GF 1과 를 정의S-box

할 때 사용한 유한 체 GF 2를 서로 다른 기약 다항식으로부터 유도하였다.

제 절 구현 및 효율성애 대해서5

블록 암호 알고리즘의 설계에 있어서 가장 중요시 된 점은 안전성의 증명에 있FRACTAL

었다 따라서 그 구현 속도는 다른 알고리즘 특히 후보 알고리즘에 비해서 약간 저하. , AES

된 것으로 나타나고 있다 그러나 그 내부 연산으로 바이트 단위의 연산을 사용한다는 점과.

함수의 각 입력 바이트들이 거의 동등하게 사용되기 때문에 병렬화가 가능하다는 점 등은F

이 비트 연산을 사용하는 환경 예를 들어 스마트 카드 에서는 빠른 구현이 가능FRACTAL 8 ( )

하다는 것을 보여주고 있다 또한 로 채택이 된 에서 사용한 비트 테이블. AES Rijndael[2] 32

참조법 을 사용하여 비트 연산 환경 예를 들어 개인용 컴퓨터 등 에서도 빠(table look-up) 32 ( )

른 구현이 가능하다.

비트 테이블 참조법을 이용한 의 빠른 구현법1. 32 FRACTAL

의 라운드 함수에 사용되는 부분키FRACTAL i F- K 8 i - 6 , . . . ,K 8 i + 1에 대하여 새로운 부

분키 NK 8i - 6 , ...,N K 8i + 1를 다음과 같이 정의하고 그림 에 정의된 함수를( 3-7) New-F

생각하자:

- 46 -

그림 의 함수( 3-7) FRACTAL New-F

선형함수 에 대하여L L(A⊕B ) = L (A )⊕L (B )이 성립함을 이용하면 와 함수F New-F

는 같은 함수임을 쉽게 알수 있다 즉 임의의 비트 입력값 에 대하여 다음이 성립한다. 64 M :

이제 비트 부분키 를 해주는 함수를64 K xoring f K라 하고 즉 임의의 비트 입력값 에( 64 M

대하여 f K(M )=M⊕K이다 를 번 병렬로 사용하는 함수를.) S-box 8 S8라 하면 New-F

함수는 다음과 같이 쓰여질 수 있다.

여기서 정수 와 선형함수 에 대하여( i L g(i,L)=L ∘S 8∘ f NK 1이다.)

- 47 -

따라서 임의의 정수 에 대하여 를 빠르게 구현할 수 있으면i g(i, Ll), g(i, L2), g(i, L3)

의 함수도 빠르게 구현이 됨을 알 수 있다FRACTAL F- .

가 의 빠른 구현. g(i ,L1)

X = ( x 1 , . . . , x 8 )을 의 입력 값g(i. L1) , Y = ( y 1 , . . . , y 8 )을 의 출력 값이라 하g(i, L1)

고, Y 1 = (y 1,y 2 ,y 3 ,y 4 ), Y 2 = (y 5,y 6 ,y 7 ,y 8 ), N K i = ( k 1 , .. . , k 8 )이라 하자 그.

러면 다음이 성립한다:

이제는 개의 비트 워드로 이루어진 개의256 32 4 table SS 1, SS 2 , SS 3 , SS 4를 다음과

같이 정의하자 비트 입력값 에 대하여: 8 α

- 48 -

그러면 z i = x i⊕ k i, i = 1 .. . , 8 에 대하여 다음이 성립함을 알 수 있다.

나 의 빠른 구현. g(i, L2)

X = ( x 1 , . . . , x 8 )을 의 입력 값g(i, L1) , Y = ( y 1 , . . . , y 8 )을 의 출력값 이라 하g(i, L2)

고, Y 1 = (y 1,y 2 ,y 3 ,y 4 ), Y 2 = (y 5,y 6 ,y 7 ,y 8 ), N K i = ( k 1 , .. ., k 8 ) ,

z i = x i⊕ k i, j = 1 , . . . , 8 이라 하자 그러면 다음이 성립한다. :

- 49 -

다 의 빠른 구현. g(i, L3)

X = ( x 1 , . . . , x 8 )을 의 입력 값g(i, L3) , Y = ( y 1 , . . . , y 8 )을 의 출력값 이라 하g(i, L2)

고 , Y 1 = (y 1,y 2 ,y 3 ,y 4 ), Y 2 = ( y 5,y 6 ,y 7 ,y 8 ), N K i = ( k 1 , .. ., k 8 ) ,

z i = x i⊕ k i, j = 1 , . . . , 8 이라 하자 또한 개의 비트 워드로 이루어진 개의, 256 32 4 table

SS 5, SS 6 , SS 7 , SS 8을 다음과 같이 정의하자 비트 입력값 에 대하여: 8 α

그러면 다음이 성립한다:

따라서 개의 비트 워드를 갖는 개의 을 이용하여 의, 256 32 8 table g(i, L1), g(i, L2), g(i, L3)

구현을 빠르게 할 수 있으며 이를 이용하여 의 함수도 빠르게 구현할 수 있FRACTAL F-

다.

- 50 -

참 고 문 헌

[1] K. Aoki and K. Ohta, "Strict Evaluation of the Maximum Average of Differential

Probability and the Maximum Average of Linear Probability", IEICE Trans.

Fundamentals, vo1. E80-A, No.1, January 1997

[2] J. Daemen, V. Rijmen, "AES Proposal : Rijndael".

[3] N. Ferguson, R. Schroeppel, D. Whiting, "A simple algebraic representation of

Rijndael", Proc. SAC '01, 2001.

[4] M. Matsui, "New Structure of Block Ciphers with Provable Security against

Differential and Linear Cryptanalysis". Fast Software Encryption, LNCS 1039, pp.205-218,

Springer-Verlag, 1996.

[5] M Matsui, "New Block Encryption Algorithm MISTY", Proceedings of the Fast

Software Encryption Workshop, pp.53-67, 1997.

[6] K. Nyberg, "Differentially uniform mappings for cryptography". In T. He1leseth,

editor, Advances in Cryptology - Proc. Eurocrypt '93, LNCS 765, Springer-Verlag, 1993.

[7] K. Nyberg and L. Knudsen, "Provable security against a differential attack, Journal

of Cryptology", vol.8, no.1, pp.27-37, 1995.

- 51 -

제 장 결론 및 향후과제4

본 연구진은 암호 알고리즘의 기반이 되는 수학적 이론 기존의 블록 암호 알고리즘 및 암,

호 알고리즘 분석 도구들에 관한 지식을 습득해왔다 그와 관련해 후보들 및 다른 여. AES

러 가지의 블록 암호 알고리즘을 연구했으며 각각의 장단점 및 보완할 만한 사항들은 없는

지도 살펴보았다 또한 선정 과정을 통하여 새로운 블록 암호 알고리즘이 가져야할 특. AES

성들도 알 수 있었다 그리고 알고리즘 분석 도구들에 관한 연구로 블록 암호 알고리즘이.

안전성을 보장하기 위해서 반드시 피해야할 구조들에 대한 이해도 얻을 수 있었다.

이를 바탕으로 하여 새로운 암호 함수의 개발 및 새로운 암호 알고리즘구조에 대한 연구를

계속해 왔으며 이것을 근간으로 하여 본 연구진은 와 같이 비트 블록 암호를 설계AES 128

하고자 했다 본 과제에서 우리가 제시한 은 전체적으로. FRACTAL encryption algorithm

구조이며 라운드 함수 는 반복 구조 및 세 가지 종류의 선형 변환을 사용하여 확Feistel F

산효과를 증가시키고 차분 공격 및 선형 공격에 대한 안전도를 증명 가능하도록 설계하였

다 장에서 그림 와 같은 구조가 반복되었을 때 최대 차분 확률과 최대 선형 확률은. 3 ( 3-5)

각각 주어진 함수의 최대 차분 확률의 제곱 그리고 주어진 함수의 최대 선형 확률의 제곱보

다 작거나 같다는 사실을 보였다 의 라운드 함수 는 이. FRACTAL encryption algorithm F

러한 반복구조를 세 번 사용함으로서 라운드 함수 의 최대 차분 확률 및 최대 선형 확률F

이 2 - 48보다 작다 라운드 이상의 구조는 부분 키들이 독립적이고 랜덤하면 최대. 3 Feistel

차분 확률이 2 - 96보다 작거나 같으며 최대 선형확률은 2- 98보다 작거나 같게 되어 차분

공격 및 선형 공격에 대한 안전성이 증명될 수 있다.

에서는 선형함수와 에 바이트 위주의 연산을 주로 사용함으로써 효율성을FRACTAL S-box

높였고 에서 쓰인 것과 비슷한 방법으로 비트 환경에서도 효과적으로 구현할 수, Rijndael 32

있음을 보였다.

안정성을 분석하는데 가장 중요한 도구는 차분 분석법 선형 분석법과 그 이후에 개발된 여,

러 공격법 들이다 그리고 일반적으로 안전한 암호 알고리즘의 설계는 위와 같은 기존의 분.

석법에 대해 안전한 알고리즘을 만드는 것이다 그러나 선형 근사 분석법이 가 나온 지. DES

거의 년이 지나서야 발견되었듯이 기존의 분석법에 대한 안전성이 아직은 알려지지 않은20

미지의 공격법에 대한 안전성을 보장하지 않기 때문에 기존의 여러 블록 암호 알고리즘과

각종 분석 기법에 대한 연구를 계속해서 할 것이며 더불어 새로운 분석 기법의 개발과 이,

러한 새로운 분석 기법에서도 안전한 지에 대한 조사를 할 것이다.

- 52 -

부 록 (Appendix)

의 소스 코드- FRACTAL C

안전성 증명 가능한 블록 암호 알고리즘- FRACTAL

- 53 -

다음에 오는 코드는 바이트 단위 연산 환경에서 구현된//

의 소스 코드이다//FRACTAL C .

구현에는 두개의 테이블이 사용되었다// .

즉 를 나타내는 테이블과 를 곱하는 함수를 나타내는// S-box x

테이블이다// .

typedef unsigned char byte;

- 54 -

위에서 정의된 선형함수의 선언//GF(2^8)=GF(2)[x]/(x^8+x^6+x^5+x^3+1)

byte L1(byte a[8]);*

byte L2(byte a[8]);*

byte L3(byte a[8]);*

키 생성 알고리듬 선언//

byte KeySchedule(byte SubKey[68][8], byte key[16]);*

암호화 알고리듬 선언//

byte Encryption(byte Block[2][8], byte Subkey{68][8]);*

복호화 알고리듬 선언//

byte Decryption(byte Block[2][8], byte SubKey[68][8]);*

- 55 -

라운드 함수 선언//

byte RoundFunction(byte Block[8], byte SubKey1[8], byte Subkey2[8], byte Subkey3[8].*

byte SubKey4[8], byte SubKey5[8], byte SubKey6[8], byte SubKey7[8], byte SubKey8[8];

덧셈 함수 선언//2^64 modulo

byte ModuloAddition(byte Block[8], byte SubKey[8]);*

뺄셈 함수 선언//2^64 modulo

byte ModuloSubtraction(byte Block[8], byte SubKey[8]);*

키 생성 알고리즘 정의//

은 비트 마스터 키 은 비트 부분키//Key[16] 128 , Subkey[][8] 64

으로부터 을 생성하는 알고리즘//Key[][16] Subkey[68][8]

byte KeySchedule(byte SubKey[68][8], byte Key[16])*

- 56 -

- 57 -

- 58 -

- 59 -

- 60 -

- 61 -

- 62 -

- 63 -

- 64 -

- 65 -

안전성 증명 가능한 블록 암호 알고리즘

FRACTAL

New B1ock Encyrption Algorithm FRACTAL

with Provable Security

김명환 이인석 백유진 김우환 강성우, , , , *** * * *

서울대학교 수리과학부 한국정보보호진흥원,***

Myung-Hwan Km , In-Sok Lee ,* *

Yoo-Jin Baek , Woo-Hwan Kim , Sung-Woo Kang*** *

School of Mathematical Sciences, Seoul National University*

**Korea Information Security Agency

요 약

본 논문에서는 새로운 블록 암호 알고리즘인 암호 알고리즘을 제안한다FRACTAL .

은 비트의 블록 길이와 비트 키를 사용하는 라운드 구조의 암호FRACTAL 128 128 8 Feistel

알고리즘이며 블록 암호 알고리즘에 대한 가장 강력한 공격법인 차분 분석과 선형 분석에,

대한 안전성이 증명 가능하다.

ABSTRACT

In this article, a new block encryption algorithm FRACTAL is introduced. FRACTAL

adopts 8-round Feistel structure handling 128 bit inputs and keys. Furthermore,

FRACTAL possesses the

provable security against DC and LC, which are known to be the most powerful attacks

on block ciphers.

Keyword : block cipher, provable security, DC, LC

- 66 -

서 론I.

블록 암호 알고리즘은 고정된 크기의 키를 사용하여 고정된 크기의 블록 단위로 암 . 복호

화 연산을 수행하며 암호화 키와 복호화 키가 같은 알고리즘을 말한다 블록 암호 알고리즘.

은 그 특성상 상대적으로 짧은 키로 빠른 암 . 복호화를 구현하기 때문에 전자 상거래 등에

서 정보의 기밀성과 정보 처리의 효율성을 동시에 충족시킬 수 있는 필수 기술이 되었다.

년 미국의 국가표준국 이 미국의 상업용 표준 블록 암호 알고리즘으로 채택한1976 (NIST)

는 그 이후 개발된 여러 블록 암호 알고리즘의 모델이 되었다 유럽과 일본 역시 일찍DES .

부터 정부와 대기업을 중심으로 블록 암호 알고리즘 개발에 많은 노력을 기울여왔으며 우리

나라에서도 년에 국내 전자상거래의 안전성 확보를 위한 기반 기술의 하나로 한국정보1998

보호진흥원 의 주도 하에 블록 암호 알고리즘 를 개발하여 상업용 표준 암호(KISA) SEED

알고리즘으로 채택하였다.

한편 블록 암호 알고리즘에 대한 다양한 공격방법이 연구되고 발전되었다 특히 가장 성공.

적인 공격 방법으로 평가되는 차분 분석과 선형 분석에 의하여 의안전성이 위협받기에DES

이르자 는 최근 를 로 대체하였다NIST DES AES .

이제는 이처럼 다양한 공격법에 대하여 안전하면서도 구현하기 쉽고 효율적인 블록 암호 알

고리즘의 개발이 요구되고 있다 본 논문의 목적은 차분 분석과 선형분석 등 기존의 공격.

방법에 대해서 안전하고 수학적 이론에 근거하여 그 안전성을 증명할 수 있는 새로운 블록,

암호 알고리즘을 제안하고자 하는 것이다.

본 논문의 구성은 다음과 같다 먼저 절에서는 블록 암호 알고리즘의 차분 분석 과 선. 2 (DC)

형 분석 에 대한 안전성 증명에 필요한 중요한 개념과 용어 및 성질을 다루고 절에서(LC) , 3

새로운 블록 암호 알고리즘인 의 구조와 키 생성 알고리즘을 소개한 후 절에서FRACTAL , 4

그 안전성을 분석한다 에서 따온 이름으로 비트 비트 비트로 비트. “FRACTAL 64 32 16→ →

의 크기를 반씩 줄여도 계속 같은 형태의 구조가 반복되는 함수의 구조적 특성을 나타내F-

었다 의 특징은 다음과 같다. FRACTAL :

비트 대칭 키 블록 암호 알고리즘- 128

비트 키 크기 더 큰 키도 사용가능- 128 ( )

라운드 구조- 8 Feistel

대부분의 연산을 바이트 단위로 수행-

함수 안에서 확산효과를 위한 선형 함수 사용- F- Ll, L2, L3

에 대한 안전성 증명 가능- DC

에 대한 안전성 증명 가능- LC

등이다.

- 67 -

안전성 증명.Ⅱ

차분 분석법에서 차분 특성 은 블록 암호 알고리즘을 공격하는데“ (differential characterstic)"

성공적으로 사용되었다 즉 확률이 충분히 큰 차분 특성이 존재하는 경우 차분 분석을 이용. ,

하여 비밀키에 대한 몇 비트의 정보를 복구해 낼 수 있다는 것이다 한편. Lai, Massey,

는 그 역이 성립하지 않다는 것을 보이고 차분 분석에 대한 강도 를 반영Murphy (strength)

하는 척도로 차분 특성을 대신하여 차분 을 제안하였다 차분은 차분 특성” (differential)" ([5]).

들의 집합으로 이해할 수 있다 어떤 암호의 최대 차분 특성 확률이 낮다고 해서 그 암호가.

차분 분석에 대해 안전하다고 말할 수는 없지만 최대 차분 확률이 충분히 낮으면 그 알고,

리즘은 일반적인 차분 분석에 대해 안전함이 알려져 있다 한편 은 처음으. Nyberg, Knudsen

로 최대 차분 확률이 충분히 낮은 블록 암호 알고리즘의 예를 제시하였고 그러한 성질([8])

을 차분 분석에 대한 증명 가능한 안전성 이라 불렀다“ (provable security)" .

선형 분석도 차분 분석과 마찬가지로 처음에는 블록 암호를 공격하는데 선형 분석의 특성“

을 이용하였으나 최근에 에 의해 최소 선형 집합 이라 불(characteristic)" Nyberg (linear hull)

리는 특성들의 집합이 소개되었는데 이는 선형 분석에 대한 강도의 엄밀한 척도로 여([7]),

겨진다 에서 제시된 예는 최소 선형 집합이 작아 선형 분석에 대해서도 증명 가능한 안. [8]

전성을 지니고 있다 그러나 계산의 효율성은 별로 좋지 않다는 단점이 있다. .

- 68 -

정의 및 정리2.1.

먼저 키와 독립적인 함수 그림 에 대한 차분 분석 및 선형 분석의 확률에 대한 정의S- ( 2.1)

와 그에 따른 성질들을 살펴보기로 하자.

그림 함수2.1. S- (S-box)

정의 를 비트의 입력 출력 값을 가지는 고정된 함수라 하고 는 각각 의 가능2.1. S n , , X,Y S

한 2n개의 입력 출력 값의 집합이라 하자 주어진, . Δx, Γx∈X와 Δy, Γy∈Y에 대하여

를 각각 의 차분 확률 선형 확률이라 정의한다 여기서 는S , . bα․ Z2상에서의 내적이고, #A

는 집합 의 원소의 개수를 나타낸다A .

- 69 -

정의 함수 에 대하여2.2. S

를 각각 의 최대 차분 확률 최대 선형 확률이라 정의한다S , .

차분 분석이나 선형 분석에 강한 는 임의의S-box Δx(≠0), Γx∈X와 Δy, Γy(≠0)∈Y

에 대해서도 dpS와 lpS의 값이 작게 나타나야 한다 따라서 최대 차분 확률과 최대 선형.

확률은 어떤 의 차분 분석이나 선형 분석에 대한 안전성을 증명하는데 필요한 중요한S-box

개념이다.

다음에 소개하는 두 개의 보조정리는 여러 가지 형태의 블록 암호 알고리즘의 차분 확률과

선형 확률을 계산하는데 매우 유용하다([6]).

보조정리 비트의 입력 출력 값을 가지는 함수 에 대하여2.3. n , S

이 성립한다.

보조정리 임의의 함수 에 대하여2.4. S

이 성립한다 특히 가 전단사이면. S ,

이 성립한다.

- 70 -

이제 키에 의존하는 함수 그림 에 대한 차분 분석 및 선형 분석의 확률에 대한 정의F- ( 2.2)

와 그에 따른 성질들을 살펴보기로 하자 먼저 는 가능한 모든 키 값들의 집합이라 하고. K

를 고정된 키 에 대응되는 함수라 할 때 각각의 에 대한 의 차분 확률 및 선형F(k) k , k F(k)

확률의 평균으로 함수 의 차분 확률 및 선형 확률을 정의한다F .

그림 함수2.2. F- (F-function)

정의 키에 의존하는 함수에 대하여2.5. F-

를 각각 의 차분 확률 선형 확률이라 정의한다 특히 가 암호화 함수이고 임의의F , . , F

Δx(≠0), Γx∈X와 Δy, Γy(≠0)∈Y에 대해서도 dpF와 lp F의 값이 충분히 작으면 가F

차분 분석과 선형 분석에 대해 증명 가능한 안전성을 지닌다고 말한다.

정의 키에 의존하는 함수에 대하여2.6 F-

를 각각 의 최대 차분 확률 최대 선형 확률이라 정의한다F , .

- 71 -

구조의 안전성2.2. Feistel

여기서는 앞 절에서 논의한 치환 함수를 이용한 구조의 블록 암호 알고리즘 중에서Feistel

차분 분석과 선형 분석에 대해 증명 가능한 안전성을 지닌 그 중에서 가장 기본적인 형태,

인 그림 의 구조에 대한 여러 정리들을 소개하고자 한다2.3 .

그림 구조 라운드2.14. Feistel 1- (one round Feistel)

정의 라운드 구조를 가진 블록 암호 알고리즘에서 번째 라운드의 입력 값과2.7. r- Feistel i

출력 값을 각각 x( i) = ( x L( i), x R ( i)), y ( i ) = ( y L( i), y R( i))라고 하자 따라서(1 i r).≤ ≤

은 평문X(1) ( P L , P R )을 은 암호문, y(r) ( C L , C R )을 의미하며 이 된다, y(i)=x(i+1) .

이때

를 각각 라운드 알고리즘의 차분 확률 선형 확률이라 정의한다 또한- , .γ

를 각각 라운드 알고리즘의 최대 차분 확률 최대 선형 확률이라 정의한다r- , .

- 72 -

과 에 대해서 다음이 성립함이 알려져 있다DP(r) LP(r) ([4]).

보조정리 임의의 에 대하여2.8. ( 1)γ ≥

이 성립한다.

즉 구조의 블록 암호 알고리즘에서 라운드 수를 증가시키는 경우 최대 차분 확률과, Feistel ,

최대 선형 확률은 커지지 않는다.

보조정리 임의의 에 대하여2.9. ( 1)γ ≥

이 성립한다.

최대 차분 확률에 관한 다음의 정리는 차분 분석과 선형 분석에 강한 함수를 사용함으로써

이들에 대하여 안전한 구조의 블록 암호 알고리즘을 만드는 것이 가능함을 보여주고Feistel

있다([1],[8]).

정리 임의의 에 대하여2.10. r( 4)≥

이 성립한다.

- 73 -

정리 함수가 치환이면 임의의 에 대하여2.11. F- , ( 3)γ ≥

이 성립한다

블록 암호 알고리즘. FRACTAl,Ⅲ

유한체3.1. GF(2 n)과 그 위에서의 연산

블록 암호 알고리즘에서는 여러 연산이 바이트 단위로 수행이 되며 이 경우의FRACTAL

바이트란 유한 체 GF(2 8)의 한 원소를 의미한다 유한 체. GF(2 8)은 다음과 같이 정의

된다.

를 위에서의 차 기약다항식이라 하자 그러면 유한 체f(x) GF(2) 8 . GF(2 8)의 모든 원소는

또는 의 계수를 갖는 차 이하의 다항식으로 표현될 수 있으며 이 때0 1 7 , GF(2 8)위에서

의 연산은 다음과 같이 정의된다.

덧셈 다항식 덧셈- (+) : (mod 2)

곱셈 다항식 곱셈- (*) : (mod f(x))

곱셈에 대한 역원- : GF(2 8)의 원소 가 있을 때 유클리드 알고리즘을 이용하면g(x) ,

을 만족하는 다항식 를 안에서 찾을 수 있는데 이g(x)h(x)+f(x)k(x)=1 h(x), k(x) GF(2)[x] ,

때 가 의 곱셈에 대한 역원이 된다h(x) (mod f(x)) g(x) .

알고리즘의 구조3.2. FRACTAL

의 전체구조는 라운드 구조 그림 이며 거기에 덧붙여 처음에 두 개FRACTAL 8- Feistel ( 3.1)

의 비트 부분 키64 K 0,K 1을 평문에 더하고 마지막에 역시 두 개의 비트 부분 키, 64

K 66,K 67을 빼 준다 이 경우 덧셈과 뺄셈은. ( mod 2 64)로 한다.

- 74 -

그림 의 전체 구조3.1. FRACTAL (The Structure of FRACTAL)

함수3.3. F-

함수는 이라는 세 개의 선형 함수와 그리고 부분 키 이 사용된F- Ll, L2, L3 S-box, Xoring

다 그림 즉 함수는 비트 부분 키 선형 함수 의 과정이 총( 3.2). , F- [ 64 Xoring S-box ]→ →

회 반복된다 따라서 함수에는 총 개의 비트 부분 키가 쓰인다 선형 함수는 매회8 . F- 8 64 .

중 하나가 쓰이며 회부터 회까지 의 순서로 사용L1, L2, L3 , 1 8 L1-L3-L2-L3-L1-L3-L2-L3

된다 선형 함수 는 비트 입력 값을 유한 체. Ll, L2, L3 64

위에서의 길이가 인 벡터로 이해하며 는 비트 입력 값을 유한 체8 , S-box 8

의 한 원소로 이해한다 이처럼 선형 함수와 는 바이트 단위의 연산을 수행하게 함으. S-box

로써 계산의 효율성을 높이고자 하였다.

- 75 -

그림 의 함수3.2. FRACTAL F- (F-function of FRACTAL)

선형 함수3.4.

함수에 사용되는 선형 함수들은 비트 입력 값을 유한 체F- 64 GF 1상에서의 길이가 인 벡8

터로 이해하며 확산효과를 위하여 도입되었다 또한 바이트 단위의 연산을 수행한다, . .

- 76 -

선형 함수3.4.1. L1

함수는 다음과 같은 행렬로 주어진다Ll- .

여기서 a i∈GF 1이고 y : = 1+ x∈GF 1 함수의 코드는 다음과 같다L1- C pseudo- .

입력 : a 1 , a 2 , ..., a 8 → 출력 : a 1 , a 2 , ...a 8

선형 함수3.4.2. L2

함수는 다음과 같은 행렬로 주어진다L2- .

- 77 -

함수의 코드는 다음과 같다L2- C pseudo- .

입력 : a 1,a 2 , ...,a 8 → 출력 : a 1,a 2 , ...a 8

선형 함수3.4.3. L3

함수는 다음과 같은 행렬로 주어진다L3- .

함수의 코드는 다음과 같다L3- C pseudo- .

입력 : a 1,a 2 , ...,a 8 → 출력 : a 1,a 2 , ...a 8

곱 함수3.4.4. x -

선형 함수의 정의에서 곱 함수 가 자주 등장하는데 이 함수는 아래의 그림 과 같이x - (x* ) 3.3α

간단하게 구현할 수 있다 즉 입력 값 비트를 비트 왼쪽으로 회전 시킨 후 최하. , 8 1 (rotation)

위 비트가 이면 를 해주고 최하위 비트가 이면 그대로 둔다1 0x68 Xoring 0 .

- 78 -

그림 곱 함수3.3. x - (multiplication by x)

함수3.5. S- (S-box)

함수 는 비트 입력 값을 유한 체S- (S-box) 8 GF 2 위에서의 한 원소로 이해하며 다음과 같

은 함수로 주어진다.

여기서 0xAB = x 7+x 5+x 3+x+1∈GF 2이고 0 - 1 = 0으로 이해한다 를 더하여. 0xAB

역을 취한 것은 과 이 고정점이 되는 것을 방지하기 위함이다 한편 에서0 1 . , (3.2) GF 2를

정의하는데 사용된 기약다항식 x 8+x 6+x 5+x 4+1은 상의 원시 다항식GF(2) (primitive

이다 따라서 이 기약다항식은polynomial) . GF 2=GF(2)(a)가 되는 를 근으로 가진다.α

- 79 -

키 생성 알고리즘3.6.

키 생성 알고리즘은 랜덤하게 주어지는 비트 키를 이용하여 개의 비트 부분 키를 생128 68 64

성하는 알고리즘이다 이 알고리즘에는 다음과 같은 함수와 상수들이 사용된다. .

- S8 암호 알고리즘에 사용되는 를 번 병렬로 사용하는 함수: FRACTAL S-box 8

암호 알고리즘에 사용되는 세 가지 선형함수- L1, L2, L3 : FRACTAL

- e = [ (e- 2) ( 2 )*264] 자연대수 를 진법으로 표시했을 때의 소수부분 비트 실제: e 2 64

값은 다음과 같다 단 는 최대정수함수를 나타내 는 기호이다. , [ ] .

- τ = [ (τ-1) ( 2)*264] 황금비 를 진법으로 표시했을 때의 소수 부분 비트 실제 값: 2 64ι

은 다음과 같다

키 생성 알고리즘은 다음과 같다.

입력 비트 키- : 128 K

K L 키 의 왼쪽 비트: K 64

K R 키 의 오른쪽 비트: K 64

출력 개의 비트 부분 키- : 68 64 K 0 , K 1 , . . . ,K 6 7

각 에 대하여i (1 i 11) ,≤ ≤

- 80 -

상수 와 함수e, ι S8 등을 사용하여 부분 키들이 비선형적으로 생성되도록 함, Ll, L2. ,L3

으로써 연관 키 공격이나 기타 키를 이용한 공격이 힘들도록 설계되었다 또한 함수에서. , F-

사용한 것과 같은 함수를 사용함으로써 설계가 용이하고 계산의 효율성을 높도록 하였다.

키 의 크기가 비트보다 큰 경우에도 키 생성 알고리즘을 약간 변형하여 필요한 부분K 128

키들을 생성할 수 있다.

복호화 알고리즘3.7.

알고리즘은 구조이기 때문에 복호화 알고리즘은 부분 키 순서를 제의하FRACTAL Feistel

고는 암호화 알고리즘과 동일하다.

암호 알고리즘의 안전성 증명과 효율성. FRACTALⅣ

및 에 대한 안전성4.1. DC LC

정리 다음 그림과 같은 구조를 번 사용하는 알고리즘을 생각하자4.1. r .

- 81 -

만약 이고 부분 키들이 독립적이고 랜덤하면 다음이 성립한다r 2 .≥

증명 보조정리 에 의하면 인 경우에만 증명해도 충분하다 먼저 에 대해서 증명해( ) 2.8 r=2 . dp

보자. (a 0 ,B 0 )≠ (0.0)를 입력 차라 하고, ( a 1 ,B 1 )를 라운드 후의 출력 차1- ,

( a 2 ,B 2 )를 라운드 후의 출력 차라 하자 그러면 다음과 같은 식이 성립한다2- . .

Case 1. a 0+ B 0= 0인 경우:

이 경우에는 a 1= 0이고 B 1≠0이다 따라서.

이고 따라서,

- 82 -

이 성립한다.

Case 2. a 0+ x*B 0= 0인 경우의 증명은 과 동일하다Case l .

Case 3. a 0+ B 0≠0, a 0+ x*B 0≠0인 경우:

로부터

를 얻는다.

에 의해서Case 1,2,3 DP(2)≤(dp F) 2이 성립한다 에 대한 증명은 에 대한 증명과. LC DC

거의 유사하므로 생략한다. ■

의 및 에 대한 안전성을 증명하기 위하여 먼저 안전성 증명이 용이한FRACTAL DC LC

암호 알고리즘을 생각하자 는 과 같은FRACTAL-TH . FRACTAL-TH FRACTAL Feistel

구조로 된 암호 알고리즘으로서 의 함수에 해당되는 함수는 다음, FRACTAL-TH F- F-TH-

과 같은 구조를 가지고 있다 그림( 4.1).

- 83 -

그림 함수4.1. F-TH- (F-TH-function)

여기서 함수는 알고리즘의 와 동일한 함수이고 함수는 다S FRACTAL S-box , Gl, G2, G3-

음과 같은 GF 1상의 행렬로 주어진다.

- 84 -

의 키 생성 알고리즘을 적당히 변형하면 대신에 를 사용FRACTAL (Ll, L2, L3 Gl, G2, G3 ),

의 키 생성 알고리즘을 얻을 수 있을 뿐만 아니라 두 알고리즘이 동등한 구FRACTAL-TH ,

조를 갖도록 할 수 있다 따라서 알고리즘과 알고리즘은 똑같은. FRACTAL FRACTAL-TH

안전성을 가지게 된다.

정리 를 함수로 사용하고 라운드 이상의 구조를 갖는4.2. F-TH F- 3- Feistel FRACTAL

에 대해서 부분 키들이 독립적이고 랜덤하면 다음이 성립한다-TH .

- 85 -

증명 정리 을 반복해서 사용하면 다음과 같은 식을 얻는다( ) 4.1 .

마지막으로 정리 을 사용하면 원하는 결과를 얻는다2.11 . ■

정리 암호 알고리즘과 암호 알고리즘은 및 에 대하4.3. FRACTAL FRACTAL-TH DC LC

여 똑같은 안전성을 가진다.

증명 과 의 선형함수 에 대하여( ) FRACTAL FRACTAL-TH Ll, L2, L3, Gl, G2, G3 ,

이므로 과 는 동등한 구조를 갖게 되고 따라서 정리가 성립한다FRACTAL FRACTAL-TH .■

다른 공격법에 대한 안전성4.2.

불능 차분 공격 연관 키 공격 약한 키 공격 대수적 구조를 이용한 공격 등 와 이, , , , DC LC

의의 다른 공격에 대한 암호 알고리즘의 안전성을 간략히 살펴보자FRACTAL .

- 86 -

불능 차분 공격4.2.1.

구조는 함수의 선택에 상관없이 다음과 같은 불능 차분이 존재한다Feistel F- .

그러나 알고리즘은 라운드 구조이며 각 라운드에 사용되는 부분 키의 크기가FRACTAL 8-

크기 때문에 불능 차분 공격이 불가능하다.

연관 키 공격과 약한 키 공격4.2.2.

암호 알고리즘의 키 생성 알고리즘에서는 라는 비선형 함수를 사용하며FRACTAL S-box

각 라운드의 부분 키를 생성할 때 라운드에 해당되는 상수를 하는 과정을 수행한다Xoring .

따라서 약한 키 가 존재할 확률이 매우 낮고 연관키 공격이 어려울(weak key) , (related key)

것으로 기대된다.

대수적 구조를 이용한 공격4.2.3.

최근 수학적인 구조가 안전성에 영향을 미칠 수 있음이 지적되었는데 등은, Ferguson[3]

을 대수식 으로 나타낼 수 있으며 의 안전성이 특정 형태Rijndael (algebraic formula) Rijndael

의 대수 방정식을 푸는 문제의 어려움에 기인함을 보였다.

이러한 대수적 구조를 이용한 공격에도 잘 견딜 수 있도록 하기 위하여 암호, FRACTAL

알고리즘에서는 비선형 위수가 가장 큰 것으로 알려진 유한 체위에서의 역수 함수를 S-box

로 사용하였다 또한 선형 함수를 정의할 때 사용한 유한 체. GF 1과 를 정의할 때S-box

사용한 유한 체 GF 2를 서로 다른 기약 다항식으로부터 유도하였다.

의 구현 및 효율성4.3. FRACTAL

은 그 내부 연산으로 바이트 단위의 연산을 사용하기 때문에 바이트 연산을 사FRACTAL

용하는 환경에서 가장 최적으로 구현이 될 수 있다 그러나 로 채택이 된 의. AES Rijndael

빠른 구현 방법 인 비트 테이블 참조법 등을 사용하면 비트 연산을([2]) 32 (table look-up) 32

사용하는 환경에서도 빠르게 구현이 될 수 있으며 이러한 비트 연산 환경에서의 빠른 구32

현 방법은 앞으로 계속 연구되어야 할 과제라 생각된다.

- 87 -

결 론V.

이 논문에서 우리는 새로운 블록 암호 알고리즘인 를 제안하였다 은FRACTAL . FRACTAL

비트 대칭키 블록 암호 알고리즘으로서 비트 키를 사용하는 또는 더 큰 키를 사용할128 128 (

수 있는 라운드 구조로 이루어 져 있고 차분공격 및 선형 공격에 대한 안전성을) 8- Feistel ,

증명할 수 있도록 라운드 함수 에 반복 구조를 사용하였으며 확산 효과를 위하여 세 가지F ,

종류의 선형 변환을 도입하였다 또한 대부분의 연산을 바이트 단위로 수행하게 하여 계산.

의 효율성을 높였으며 선형함수와 는 유한 체 위에서의 연산을 주로 사용하도록 하, S-box

였다.

알고리즘은 차분 공격과 선형 공격 이의의 여러 가지 다른 공격에도 어느 정도FRACTAL

안전함을 보였다 그러나 이미 알려진 다양한 공격 방법뿐만 아니라 아직 알려지지 않은 미.

지의 공격 방법에 대한 안전성은 더 연구되어야 할 것이다.

참 고 문 헌

[1] K. Aoki and K. Ohta, “Strict Evaluation of the Maximum Average of Differential

Probability and the Maximum Average of Linear Probability". IEICE Trans. E80-A(1),

pp.2-8, 1997.

[2] J. Daemen, L.R. Knudsen, and V. Rijmen, "AES Proposal: Rijndael", 2000,

http://www.esat.kuleuven.ac.be/~rijmen/rijndael/rijndaeldocV2.zip.

[3] N. Ferguson, R. Schroeppel, D. Whiting. "A simple algebraic representation of

Rijndael". Proc. SAC '01, 2001.

[4] Y. Kaneko, F. Sano and K. Sakurai, "On Provable Security against Differential and

Linear Cryptanalysis in Generalized Feistel Ciphers with Multiple Random Functions",

Proc. SAC '97, 1997.

[5] X. Lai, J. L. Massey and S. Murphy, "Markov Ciphers and Differential

Cryptanalysis", In Advances in Cryptology - Eurocrypt '91, LNCS 547, pp. 17-38,

Springer-Verlag, 1991.

[6] M.Matsui, " New Structure of Block Ciphers with Provable Security against

Differential and Linear Cryptanalysis", In Fast Software Encryption '96, LNCS 1039, pp.

205-218, Springer-Verlag, 1996.

[7] K. Nyberg, "Linear Approximation of Block Ciphers", In Advances in

Cryptology-Eurocrypt '94, LNCS 950, pp. 439-444, Springer-Verlag, 1995.

[8] K. Nyberg and L. Knudsen, "Provable Security against a Differential Attack", J.

Cryptology 8(l), pp.27-37, 1995.

- 88 -