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

178
-1- 01-07

Transcript of 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제...

Page 1: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 1 -

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

안전성 증명 가능한 블록 암호

알고리즘 개발(II)

수 탁 기 관 공주대학교:

2001. 11

Page 2: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 2 -

제 출 문

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

본 보고서를 안전성 증명 가능한 블록 암호 알고리즘 개발(II)에 관한 연구의 최종 연구보고

서로 제출합니다

년 월 일2001 11 30

수탁 기관 : 공 주 대 학 교

수탁기관장 : 오 제 직 총장( ) 인( )

연구책임자 : 서 창 호 자연과학대학 조교수( ) 인( )

참여연구원 연구원 : 박 승 경 연세대학교 부교수( )

연구원 :

연구원 :

연구원 :

연구원 :

연구원 :

연구원 :

연구원 :

금 선 희 공주대학교 대학원 수학과( )

정 유 진 공주대학교 대학원 수학과( )

장 정 례 공주대학교 대학원 수학과( )

나 윤 미 공주대학교 대학원 수학과( )

박 영 자 연세대학교 대학원 수학과( )

홍 성 지 연세대학교 대학원 수학과( )

신 현 경 연세대학교 대학원 수학과( )

Page 3: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 3 -

서 문

정보통신시스템의 급속한 발전에 따라 다양한 형태의 정보보호시스템 사용이 요구되고 있는

현 실태에서 신뢰성 있는 암호기술 개발이 필수적이다 암호기술에서의 핵심인 암호 알고리.

즘 설계기술은 암호분석기술과 함께 발전되고 있고 새로운 암호 알고리즘을 통하여 분석기

술도 발전한다 암호 알고리즘 설계에서 고려해야 할 가장 중요한 것은 안전성이 보장되도.

록 설계하는 것이다 이론적 안전성은 현재 혹은 가까운 미래의 계산 능력을 고려하여 키.

전수조사 공격 복잡도 보다 효율적인 공격이 가능하지 않다라는 것이 증명되었을 때를 말한

다 본 연구에서는 안전성이 증명 가능하도록 수학적 이론에 기반한 입출력 및 키의 크기가.

비트 형태의 블록 암호 알고리즘을 제안하128 SPN(Substitution and Permutation Network)

고자 한다 본 연구결과를 토대로 우리나라 수학계에서의 암호기술 이론 연구가 활성화되기.

를 기원하며 더욱 신뢰성 있는 암호기술 관련연구가 활발히 이루어지기를 바란다.

신뢰성 있는 암호기술 개발 및 사용에 대한 기반기술력확보에 경주하고 있는 한국정보보호

센터 및 관련기관의 노력이 결실을 맺기를 기대하며 한국정보보호센터 연구원님들과 관련

전문가님들의 지속적인 협조와 지원에 감사 드립니다.

년 월 일2001 11 30

연구책임자 서 창 호

박 승 경

Page 4: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 4 -

요 약 문

제 목1.

안전성 증명 가능한 블록 암호 알고리즘 개발(II)

A Design of Block Cipher with Provable Security

연구목적 및 필요성2.

가 연구의 목적.

차년도에 수학적인 이론에 기반한 안전성 증명 가능한 블록 암호 알고리즘 비트 암호를1 96

비트로 확장하여 설계하고 조합론에 기반 암호 알고리즘의 안전성 및 효율성에 대한128 ,

개선점을 보완한다.

나 필요성.

정보보호 서비스인 기밀성 기능을 제공하는 알고리즘으로 대칭키 암호 알고리즘이 사용되

며 이러한 암호 알고리즘은 안전성 및 효율성 측면을 고려하여 개발되어야 한다 대표적으, .

로 미국은 안전성 및 효율성 측면을 고려한 연방 표준 암호 알고리즘인 DES(Data

의 후속으로 가 로Encryption Standard) AES(Advanced Encryption Standard) Rijndael 2000

년 월 일에 확정되었다 우리나라도 년 한국정보보호센터 가 개발 공개한 표10 2 . 1998 (KISA)

준 블록 암호알고리즘 가 있으나 향후 앞날을 볼 때 후속 블록 암호 알고리즘을SEED SEED

개발할 필요성이 있다.

최근에는 세계 각 국은 물론 국내에서도 이러한 암호 알고리즘의 이용하기 위한 요구가 증

대되고 있다 이는 정보보호 시스템 사용에 따른 여러 가지의 위협요소가 존재하고 있어 국.

내의 독자적인 암호 알고리즘을 개발하기 위한 핵심 논리 개발이 선행되어야 한다 이론적.

으로 안전성증명 가능한 암호 알고리즘을 개발하기 위해서 안전도량(Amount of secrecy),

키 크기 계산복잡도(Size of key), (Computational Complexity of enciphering & deciphering

난수성 등을 고려하여야 하며 각각 정량적인 수치가 제시되어야operations), (Randomness)

한다.

Page 5: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 5 -

본 최종 연구에서는 구조의 비트 암호를 개발하였으나 최근 세계적인 추세로 볼SPN 128 ,

때 비트로의 개선이 필요하며 선형 변환을 이용한 구조에 대한 설계이론의 체계128 SPN

화가 요구된다 또한 조합론 기반 암호 알고리즘은 이미 개발이 완료된 상태이나 안전성 및. ,

효율성 측면에서 더욱 더 개선 할 필요가 있다고 사료된다 따라서 본 연구에서는 와. DC LC

에 대해 안전성이 증명 가능한 블록 암호 알고리즘을 설계하기 위한 핵심 논리 및 설계 이

론을 개발하였다 또한 기존의 공격에 대한 안전성 증명 가능한 설계 기준을 제시하고 방안.

을 수립하였다 차년도에 이미 개발된 암호 알고리즘에 대한 안전성 및 효율성 측. 1 CUBE

면에서 더욱 더 보완 및 개선하였다.

연구내용 및 범위3.

가 기반 블록 암호 알고리즘 개발 동향. SPN(Substitution and Permutation Network)

조사

에 대해서REDOC II, RC5, SAFER K-64, SXAL8/MBAL, VINO, SERPENT, RIJNDAELㆍ

구조와 적용된 주요논리에 대해서 조사하였다.

나 블록 암호 알고리즘 설계.

이론적 안전성에 대한 설계원칙(1)

구조0 SPN

이론적 안전성이 증명된 와 선형변환을 사용한다- S-Box .

비트 단위로 연산- 8

에 대한 와0 S-box DC LC

전단사 함수-

그리고 고계차분공격 에 안전하게 한다- DC, LC (Higher Order DC) .

Page 6: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 6 -

고정점이 없게 한다- .

선형변환0

선형변환과 역 선형변환은 같다- .

및 관점에서 의 개수가 가장 많다- DC LC active S-box .

블록 암호의 구조(2)

비트 블록 암호의 라운드 구조는 비트 서브 키 바이트 개의 그리128 1 128 (16 ), 8 8×8 S-box

고 선형변환 행렬 으로 구성된다(16×16 ) .

라운드 구조< >

암호화 및 복호화 하는데 필요한 메모리를 최소화하기 위해 는 모두 같으며 각 라운S-box ,

드의 선형변환도 모두 같다 특히 복호화 알고리즘에서 필요한 메모리를 최소화하기 위해.

선형변환과 역 선형변환이 같게끔 설계하였다 또 비트 블록 암호의 라운드의 수는 이. 128 10

며 마지막라운드는 그 이전 라운드와 달리 한 번 더 서브키와의 를 하였다, xor .

비트 블록 암호의 특징(3) 128

전체적인 구조①

구조 구조- : SPN

입력 출력 크기 비트- , : 128

라운드의 수- : 1010

Page 7: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 7 -

총 서브키의 크기 바이트 비트- : 11*16 (1,408 )

와 에 안전성 증명 가능한 블록 구조- DC LC

S-box②

한 종류의- 8×8 S-box

와 에 안전한- DC LC S-box

전단사 부울함수-

-

-

- deg (S ) = m in ideg (f i) = 7 (단 , S = ( f 1, f 2 , f 3 , f 4 , f 5 , f 6 , f 7 , f 8 ) ) 인 지수 함수 개, 8

x 127,x 191 ,x 223 ,x 239 ,x 247 ,x 251 ,x 253 ,x 254=x - 1중에서x - 1고정점 문제를 해결하기 위해- (fixed point) {0,1} 8 상의 변환affine

선형변환③

행렬 행렬 의 원소는 또는 로 구성- (16×16 ) 0 1

선형변환과 역 선형변환은 동일-

와 에 안전한 선형변환- DC LC

사용된 선형변환 행렬 행렬 은 다음과 같다- (16×16 ) .

Page 8: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 8 -

선형변환[ ]

키 스케쥴(4)

설계기준①

비트 입력 비트 라운드 개 생성- 128 128 1l

키의 각 비트가 라운드 키 생성에 골고루 참여-

상관키 공격에 견딜 수 있도록 라운드 키 사이에 연관관계가 적어야 함- .

사용된 논리②

비트별 논리합-

- 28을 법으로 하는 덧셈 연산

- 2 8+1을 법으로 하는 곱셈 연산

비트 회전- 5

Page 9: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 9 -

다 안전성 분석.

암호알고리즘에 대한 와 분석(1) DC LC

에 대한 복잡도- DC

에 대한 복잡도- LC

암호 알고리즘 분석(2) SAC

비트 암호알고리즘128 test 만족되는 최소 라운드 수

AvalancheKey 2 round

Plaintext 2 round

SACKey 2 round

Plaintext 2 round

암호 알고리즘 난수특성 분석(3)

Page 10: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 10 -

기각 수열 개수에 의한 결과①

값 분포에 의한 결과P②

효율성 분석(4)

본 연구에서 개발된 비트 블록 암호 알고리즘과 비트 은 라운드이므로 한128 128 Rijndael l0

라운드에서 사용된 연산을 고려하면 다음 표와 같다.

Page 11: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 11 -

연구결과4.

본 연구에서 개발된 안전성 증명 가능한 블록 암호알고리즘은 의 등 최근 개발AES Rijndael

되는 비트 입 출력과 비트 이상의 키를 사용하는 블록 암호 알고리즘과 비교하여 안128 128ㆍ

전성이 취약하게 보일 수 있지만 알고리즘 세부논리에 사용된 비선형 부울함수인 와S-Box

선형변환들이 이론적으로 최적의 안전성을 보장하도록 설계되었기 때문에 입 출력의 크기ㆍ

와 키의 크기가 결정된 것이다 본 연구에서 개발된 블록 암호 알고리즘은 비트 뿐 아니. 128

라 비트 등으로 입 출력 및 키의 크기를 확장시키기 용이한 구조이다 현재 혹은 가192,256 .ㆍ

까운 미래의 계산능력을 고려하더라도 비트 키이면 키 전수조사 공격에 대해 안전성이128

보장된다고 사료된다.

기대효과5.

본 연구를 통하여 얻어지는 각종 이론을 토대로 블록암호 알고리즘의 개발방향 제시 및 알

고리즘에 대한 안전성 평가자료로 활용될 수 있다.

블록 암호 알고리즘 핵심 논리에 대한 안전성 및 효율성 분석 연구를 통하여 증명 가능-

한 블록 암호 알고리즘 설계 및 구현에 활용

외국에서 개발되어진 알고리즘과의 안전성 및 효율성 비교를 통하여 암호 알고리- CUBE

즘이 우수한 성능을 가진 것으로 판단되어 국내 정보보호 시장의 기술적인 자립화 및 국내

정보보호시장의 경쟁력 강화

암호 알고리즘 설계 및 분석 기술의 제고 알려진 공격 방식에 대한 저항성 분석을 연구- ,

를 통한 암호 알고리즘에 대한 분석 기술확보

정보보호 기반이 되는 암호 알고리즘 개발시 핵심 논리를 적용하여 안전한 정보보호 시-

스템 구현

Page 12: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 12 -

SUMMARY

In this report, we design a block cipher with provable security. The cipher is designed

based on Substitution and Permutation Network with a block size of 128 bits and a size

of 128 bits. The cipher has strong resistance against differential and linear cryptanalysis.

The block cipher has the following features;

0 Structure : SPN

0 Block size : 128 bits

0 Key size : 128 bits

0 The number of Rounds : 10 rounds

0 Securities

- Complexity against DC : 2186

- Complexity against LC : 2186

- Strict Avalanche Criteria : satisfied after 2 rounds with respect to plaintext and keys

- Randomness properties : pass randomness testings

We hope that this report would help the Korea Information Security Agency in

developing criteria for evaluating cryptographic strength as well as desinging strong

cryptographic algorithms. We thanks to the KISA and related goverment officers for us

to make this work possible.

Page 13: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 13 -

목 차

제목 차례< >

제 장 서 론1

제 절 개 요1

제 절 에 기반한 블록 암호 알고리즘 동향2 SPN

1. RC5

가 개 요.

나 기본 구조.

다 안전성 평가.

2. SAFER K-64

가 개 요.

나 기본구조.

다 키 스케쥴.

라 안전성 평가

3. RIJNDAEL

가 기본구조.

나. Round transformation

다 키 스케줄.

Page 14: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 14 -

제 장 블록 암호 알고리즘 설계2

제 절 구조에 대한 와1 SPN DC LC

설계 기준1. S-box

에 대한 와2. S-box DC LC

선형변환에 대한 와3. DC LC

가 선형변환에 대한. DC

나 선형변환에 대한. LC

구조에 대한 와4. SPN DC LC

가 구조에 대한. SPN DC

나 구조에 대한. SPN LC

제 절 블록 암호 알고리즘 구조2

1. S-box

선형변환2.

키 스케줄 구조3.

논리구조4.

제 절 암호 알고리즘 구조3 CUBE

알고리즘 소개1.

각 라운드 함수의 특징2.

안전성 분석3.

Page 15: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 15 -

제 장 안전성 분석3

제 절 블록 암호 알고리즘에 대한 차분특성 분석과 선형근사 분석1

차분특성 분석1. (Differential Cryptanalysis)

가 에 대한. S-box DC

나 선형변환에 대한. DC

선형근사 분석2. (Linear Cryptanalysis)

가 에 대한. S-box LC

나 선형변환에 대한. LC

제 절 블록 암호 알고리즘에 대한 분석2 SAC

분석1. Strict Avalanche Criteria(SAC)

가. Strict Avalanche Criteria

나. Avalanche Effect

다. Strict Avalanche Criterion

분석결과2.

가 비트 암호알고리즘 검정. 128 SAC

나 결과.

제 절 블록 암호 알고리즘에 대한 난수특성 분석3

표본 데이터 집합1. ( )

가 키와 평문 쇄도. (Key Avalanche and Plaintext Avalanche)

나 저밀도 평문과 저밀도 키. (Low Density Plaintext and Low Density Keys)

다 고밀도 평문과 고밀도 키. (High Density Plaintext and High Density Keys)

검정2.

(1). Frequency test

(2). Frequency test within a block

Page 16: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 16 -

(3). Runs test

(4). Test for the longest run of ones in a block

(5). Binary matrix rank test

(6). Discrete fourier transform(Spectral) test

(7). Non-overlapping template matching test

(8). Overlapping template matching test

(9). Mauer's test

(10). Lempel-Ziv Compression test

(11). Linear complexity test

(12). Serial test

(13). Approximate entropy test

(14). Cumulative sums test

(15). Random excursions test

(16). Random excursions variant test

비트 암호알고리즘 안전성 분석 결과3. 128

제 장 결 론4

참고문헌

첨부 소스코드:

Page 17: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 17 -

표 차례< >

표< 1-1> Number of rounds(Nr) as a function of the block(Nb) and Key(Nk)

표 순환 상수< 1-2>

표 상관 계수< 2-1>

표 의 의< 2-2> DES S1-box XOR profile

표< 2-3> S-box

표 이 만족되기 위한 각각의 경우< 2-4> (1)

표 표 의 결과< 2-5> < 2-4>

표 라운드 별 관점에서의 의 개수의 하한< 3-1> DC active S-box

표 라운드 별 관점에서의 의 개수의 하한< 3-2> LC active S-box

표 결과 정리< 3-3>

표 통계테스트 기각수열 개수 분석결과< 3-4>

표 기각수열 개수 결과< 3-5>

표 값의 분포 분석결과< 3-6> P- Uniform

표 값의 분포 결과< 3-7> P- Uniform

Page 18: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 18 -

그림 차례< >

그림 의 구성[ 1-1] RC5

그림 라운드 구조[ 1-2] SAFER K-64

그림 암호화 구조[ 1-3] SAFER K-64

그림 키 스케쥴[ 1-4] SAFER k-64

그림 와 암호 키 의 표시 예[ 1-5] state(Nb=6)) (Nk=4)

그림 의 동작[ 1-6] Rijndael ByteSub

그림 의 동작[ 1-7] Rijndael ShiftRow

그림 의 동작[ 1-8] Rijndael MixColumn

그림 의 동작[ 1-9] Rijndael Round key addition

그림 의 확장과 라운드 키 선택 동작[ 1-10] Rijndael key (Nb=6, Nk=4)

그림 라운드 구조[ 2-1] 1 SPN

그림 라운드 구조의 암호화[ 2-2] r SPN

그림 라운드 구조의 복호화[ 2-3] r SPN

그림 라운드 구조[ 2-4] 1 SPN

그림 라운드 구조[ 2-5] r Feistel

그림 라운드 구조[ 2-6] 1 SPN

그림 라운드 구조의 입력 출력 서브키[ 2-7] l , ,

그림 라운드 구조의 입력 출력 서브키[ 2-8] 2 , ,

그림 라운드 구조[ 2-9] 1

그림 암호화 과정[ 2-10]

그림 복호화 과정[ 2-11]

그림 키 스케줄 과정[ 2-12]

그림 전체 알고리즘 구조[ 2-13]

그림 함수 구조[ 2-14] Q

그림 함수 전개도와 입력 순서[ 2-15] Q

Page 19: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 19 -

그림 함수의 예[ 2-16] Q

그림 함수 구조도[ 2-17] f

그림 선형분석을 위한 함수 구조[ 2-18] f

그림[ 3-1] Key Avalanche

그림[ 3-2] Plaintext Avalanche

그림 값 분포 비트 암호알고리즘[ 3-3] P- (Excursion variant(-6) test for 128 )

그림 값 분포 비트 암호알고리즘[ 3-4] P- (Excursion variant(-4) test for 128 )

그림 값 분포 비트 암호알고리즘[ 3-5] P- (Excursion variant(-6) test for 128 )

그림 값 분포 비트 암호알고리즘[ 3-6] P- (Excursion variant(-4) test for 128 )

그림 값의 분포 분석결과[ 3-7] P- Uniform

Page 20: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 20 -

제 장 서 론1

제 절 개 요1

현재 정보보호 시스템에 대한 위협에 대처하기 위해 정보보호 시스템을 개발하고자 하는 국

내의 정보통신 시스템 개발자들은 정보보호 기술의 복잡성 때문에 정보보호 서비스의 제공

을 포기하거나 극히 취약한 수준의 서비스만을 제공하는 현실이다 또한 정보보호서비스의, .

핵심 요소인 암호 알고리즘 분야에서는 인터넷상에 공개되어 있는 알고리즘을 사용하거나

외국에서 수입하는 경우가 있는데 정식으로 수입된 것도 기본적으로 수출국에서 해독 가능

할 것으로 예측되며 인터넷상에 공개된 것 또한 검증되지 않은 것이기 때문에 결국 이러한,

제품을 사용한다는 것은 국내의 정보 자원에 대한 공격 가능성이 상존하고 있는 매우 위험

한 상황이다.

정보보호 서비스인 기밀성 기능을 제공하는 알고리즘으로 대칭키 암호 알고리즘이 사용되

며 이러한 암호 알고리즘은 안전성 및 효율성 측면을 고려하여 개발되어야 한다 대표적으, .

로 미국은 안전성 및 효율성 측면을 고려한 연방 표준 암호 알고리즘인 DES(Data

의 후속으로 가 년도Encryption Standard)[5] AES(Advanced Encryption Standard)[4] 2000

후반에 알고리즘으로 확정하였다 그러나 최근에는 세계 각국은 물론 국내에RIJNDAEL[4] .

서도 이러한 암호알고리즘의 이용하기 위한 요구가 증대되고 있다 이는 정보보호 시스템.

사용에 따른 여러 가지의 위협요소가 존재하고 있어 국내의 독자적인 암호 알고리즘을 개발

하기 위한 핵심 논리 개발이 선행되어야 한다.

Page 21: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 21 -

유럽에서도 이와 뜻을 같이 하여 새로운 블록 암호의 표준을 선정하는 단계에 있다 국내에.

서는 후보로 이 출원되었고 이외에 등과 같은 블록 암AES Crypton , SEED Jodiac, Zenom

호들이 개발되었다 이론적으로 안전성 증명가능한 암호 알고리즘을 개발하기 위하여는 안.

전도량 키 크기 연산의 복잡도(Amount of secrecy), (Size of key), (Complexity of

에러 전파 메시지 확장 등을enciphering & deciphering operations), (Propagation of errors),

고려하여야 하며 각각 정량적인 수치가 제시되어야 한다 따라서 암호 알고리즘 개발을 위.

해서는 암호 알고리즘 분석연구가 병행되어야 하며 이론적 근거를 가지고 가능하다 이러한.

암호 알고리즘 개발은 개인이 혼자서 할 수 있는 성질이 아니며 다수의 연구자가 합심하여

알고리즘의 이론적 안전성에 대한 충분조건 및 필요조건 들을 검토하면서 가능할 수 있다.

블록 암호 알고리즘은 의부 모양에 따라 가지 형태로 분류할 수 있다3 . DES, FEAL, SEED

와 같은 구조 와 같은Feistel , SAFER, SQUARE SPN(Substitution Permutation Network)

구조 그리고 와 같은 기타 구조로 분류할 수 있다 블록 암호 알고리즘을 설졔, RC5, IDEA .

하기 위해서는 적어도 기존에 이미 알려진 공격법에 대해서는 안전하게 해야한다.

현재까지 알려진 가장 강력한 공격법은 와DC(Differential Cryptanalysis)[2] LC(Linear

이다 는 년 과 에 의해서 개발된 공격법이며 는Cryptanalysis)[2] . DC 1990 Biham Shamir LC

년 에 의해 개발된 공격법이다 이 두 공격법은 블록 암호 알고리즘에 적용 가능1993 Matsui .

하며 현재까지 알려진 가장 강력한 공격법이다, .

Page 22: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 22 -

는 적당한 차이가 나는 입력 쌍에 대해 출력의 통계적 성질을 찾는 것으로 차분DC ,

을 찾아 키를 찾으며 복잡도는 최적의 차분 확률의 역수이다 는 블록(differential) DC . LC

암호알고리즘내의 비선형 구조를 선형 근사시키는 방법으로 을 찾아 키를 찾으며, linear hull

복잡도는 최적의 의 선형확률의 역수이다 그러나 차분과 을 구하는LC linear hull . linear hull

것은 쉽지 않기 때문에 특성 과 선형근사 를 찾아 와(characteristic) (linear approximation) DC

의 복잡도를 예측한다 같은 입력과 같은 출력을 갖는 특성 전체가 차분이므로 특성과LC .

차분은 상당한 차이가 있다 또 같은 입력과 같은 출력을 갖는 선형근사 전체가. linear hull

이므로 선형근사와 은 많은 차이가 있다linear hull .

본 연구에서는 구조의 비트 암호를 개발하였으며 또한 조합론 기반 암호 알고리즘SPN 128 ,

은 이미 개발이 완료된 상태이나 안전성 및 효율성 측면에서 더욱 더 개선 할 필요가 있다,

고 사료된다 따라서 본 연구에서는 와 에 대해 안전성이 증명 가능한 블록 암호 알고. DC LC

리즘을 설계하기 위한 핵심 논리 및 설계 이론을 개발하였다 또한 기존의 공격에 대한 안.

전성 증명 가능한 설계 기준을 제시하고 방안을 수립하여 차년도에 이미 개발된, 1 CUBE

암호 알고리즘에 대한 안전성 및 효율성 측면에서 더욱 더 보완 및 개선하였다.

Page 23: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 23 -

제 절 에 기반한 블록 암호 알고리즘 동향2 SPN

본 절에서는 에 기반한 블록 암호 알고리즘의 동향을 살펴보기로 한다 구조는 기SPN . SPN

존의 형 블록 암호 알고리즘과 달리 입력블록을 좌우로 나누지 않고 전체적인 대치DES

와 치환 을 반복하는 형태에 대해서 살펴보고자 한다(Substitution) (Permutation) .

1. RC5

가 개 요.

는 년 미국 의 가 개발한 알고리즘으로 입RC5(Ron's Code 5) 1994 RSA Laboratories Rivest

출력 크기 키 크기 그리고 라운드 수가 가변인 블록 알고리즘이다 를 설계할 당시, [2]. RC5

의 주요 설계 원칙은 다음과 같다.

는 와 설계가 모두 용이하게 한다0 RC5 H/W S/W .

는 로 구성되어 속도를 증가시킨다0 RC5 word-oriented .

는 구현 프로세서에 의존하여 기본 단위를 결정할 수 있다0 RC5 .

의 구조는 간단하게 한다0 RC5 .

는 적은 메모리를 필요로 하여 또는 기타 메모리에 제한이 많은 장치로0 RC5 Smart Card

도 구현이 용이하게 한다.

는 변수를 적당하게 택했을 경우 높은 안전성을 제공한다0 RC5 , .

의 핵심은 입력 데이터에 의존하는 이다0 RC5 Rotation .

편의상 를 로 쓰기로 하자 여기서RC5 RC5-w/r/b . ,

의 크기 비트로 표현했을 때 한 는 바이트로 구성되며 는0 w : word ( ), word u = (w/8) , w

등의 값을 가질 수 있고 보통의 경우 이다 는 비트 입력에 비트16, 32, 64 , 32 . RC5 2w 2w

출력을 낸다.

Page 24: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 24 -

라운드 수로서 부터 까지의 값을 가질 수 있다0 r : 0 255 .

키의 바이트 크기로서 부터 까지의 값을 가질 수 있다0 b : 0 255 .

즉 은 비트 라운드 바이트 키를 갖는 를 나타낸다, RC5-32/12/16 32 word, 12 , 16 RC5 .

을 에서 비트 컴파일러를 사용하여 구RC5-32/12/16 50Mhz 486 LapTop PC 16- Borland C++

현하면 초당 바이트를 속도를 갖고 에서 컴파일러를 사용하100K , Sparc 5 Workstation gcc

여 구현하면 초당 바이트의 속도를 갖는다 어셈블러를 사용하여 구현하면 구현 속도2.4M .

는 배 정도 빨라질 것으로 추측된다 지금까지 살펴본 의 특징은 다음과 같다10 . RC5 .

입력 데이터에 의존하는 연산 비트 회전 을 사용하였다0 ( ) .

알고리즘 입출력 크기가 가변이다0 .

라운드 수와 키 크기가 가변이다0 .

알고리즘이 간결하고 구현 프로세서에 따라 기본 연산 단위가 변하기 때문에 속도가 매우0

빠르다.

는 현재 에서 특허 준비중에 있다 알고리즘의RC5 RSADSI(RSA Data Security. Inc) . RC5

기본적인 재원은 다음과 같다.

입출력 사이즈 두개의 비트0 : w- word A, B

키 사이즈 바이트 키0 : b- K[0], K[1], , K[b-1]…

라운드 수 라운드0 : 12

나 기본 구조.

에 사용된 기본적인 연산은 법 덧셈 와 뺄셈 복호화시사용 비트별 좌RC5 2w + - ( ), XOR,

측회전 으로 는 이 있다 좌측회전은 가 의 지수승일 때<< , x << y x << (y mod w) . w 2 ,

의 하위 만이 회전수에 영향을 준다 복호화시에는 우측 회전 를 사용한y log2(w) . x >> y

다.

Page 25: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 25 -

암 복호화 과정(1) ㆍ

암호화 과정은 다음과 같다.

A = A + S[0]

B = B + S[1]

for i=1 to r do

이를 그림으로 나타내면 그림 와 같다[ 1-1] .

복호화 과정은 다음과 같다.

for i=r down to 1 do

B = B - S[1]

A = A + S[0]

Page 26: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 26 -

그림 의 구성[ 1-1] RC5

키 스케쥴(2)

라운드 키 생성은 키 확장 과정 으로 사용자의 비밀키 로부터 확장 키 배(Key Expansion) K

열 를 생성하는 과정이다 즉 는 로부터 결정되는 개 의 랜덤한(array) S . , S K t = 2(r+1) word

배열이다 라운드 생성 과정은 와 세개의 간단한 부분으로 구성된다. "Magic Constant" .

상수 정의 에 대한 두개의0 Magic : word w Magic Constant Pw, Qw

Pw = Odd ((e-2)2w)

Qw = Odd (( -1)2w)φ

Page 27: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 27 -

여기서,

e = 2.718281828459...

= 1.618033988749...φ

이고 는 와 가장 가까운 홀수를 나타낸다, Odd(x) x .

비밀키 를 바이트에서 로 변환 비밀키 은 다음과 같은 자연스런 과0 K word : K[0,1, ...,b-1]

정을 거쳐 개의 배열 으로 변환된다c = [b/u], u = w/8 word L[0,1, ...,c-1] .

for i= b-1 down to 0

L[i/u] = (L[i/u] << 8) + K[i]

의 초기화0 S :

S[0] = Pw

for i=1 to t-1 do

S[i] = S[i-1] + Qw

비밀키의 조합 최종 라운드 키 는 다음의 과정을 통해 생성된다0 : S .

I = j = 0

A = B = 0

do 3 * max (t,c) times

A = S[i] = (S[i] + A + B) << 3;

B = L[i] = (L[i] + A + B) << (A+B)

i = (i+1) mod t:

j = (j+1) mod c;

이상에서와 같이 라운드 키 생성 과정은 로부터 를 쉽게 유추할 수 없는 협의의 의미S K

에서 일방향을 갖는데 이러한 특징이 알고리즘 전체 비도에 어떠한 영향을 끼칠 것인지 밝

혀지지 않았다.

Page 28: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 28 -

다 안전성 평가.

에 대해 라운드 이후에는 입력과 출력 사이의 상관관계가 사라지고 있다 입력 데RC5-32 4 .

이터에 의존하는 회전 연산의 강도를 측정한 결과 에 대해 라운드 이후에는 모든RC5-32 8

입력 비트가 회전 연산에 영향을 주는 것으로 밝혀졌다 라운드 수에 대해서는 의. RC5-32

경우 라운드 의 경우 라운드를 권고되고 있으며 입력 데이터에 의존하는12 , RC5-64 16 , RC5

의 구조는 입출력 변화 공격과 선형근사 공격에 강할 것으로 여겨지며 의 취약키는 없RC5

는 것으로 여겨진다 에서 와 은 발표 논문. Crypto'95 Kaliski Yin(RSA Lab, USA) "On

에서 에 대Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm"[3] RC5

한 입출력 변화 공격과 선형근사 공격을 적용한 결과 입 출력 크기가 비트인 경우 입, , 64 ,

출력 변화 공격에 대하여 라운드 가 개의 선택 평문 쌍으로 해독되고 라운드, 9 RC5 245 , 12

는 개의 선택 평문 쌍으로 해독됨을 밝혔다 선형근사 공격에 대하여는 라운드RC5 262 . 5

가 개의 기지 평문으로 해독되기 때문에 제시한 결과를 바탕으로 는 라운드RC5 247 RC5 12

로 사용할 것을 권고하고 있다.

2. SAFER K-64

가 개 요.

미국 사의 요구에 의해 가 블록 암호 알고리즘을 개발하여Cylink Massey , SAFER

라는 이름으로K-64(Secure And Fast Encryption Routine with a Key of length 64 bits)

년에 에서 발표하였다 비록 기업체의 의뢰에 의하여 개1993 Cambridge Security Workshop .

발되었지만 지적 재산권에 사용이 제한을 받지 않으며 모든 사용자가 무료로 사용할 수 있,

는 알고리즘이다.

Page 29: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 29 -

는 와 유사하게 입출력이 모두 비트 바이트 이며 비트의 키에 의SAFER K-64 DES 64 (8 ) , 64

해 동작된다 의 치환에 대응되는 논리로 이 있으. DES Pseudo-Hadamard Transform(PHT)

며 취약키를 제거한 기법을 사용한다 의 장점은 키 스케쥴 부분, additive key . SAFER K-64

을 제의한 모든 부분이 바이트 단위로 구성되어 소프트웨어 구현이 용이하며 특히 스마트,

카드 응용에 적합하다 개발자인 는 일반적인 사용으로 라운드를 권(Smart card) . Massey 6

고하였으나 사용자의 필요에 의하여 라운드 이하의 임의의 라운드를 사용할 수 있다10 .

알고리즘의 기본적인 재원은 다음과 같다SAFER K-64 .

입출력 사이즈 비트0 : 64

키 사이즈 비트0 : 64

부울 함수로 구성된 를 사용0 S-Box

라운드 수 라운드0 : 6

나 기본 구조.

함수(1) f

그림 는 의 각 라운드의 구조를 설명한다 라운드 의 입력 바이트는[ 1-2] SAFER K-64 . I 8

먼저 부분 키 과 혼합 가산된다 그 결과 생성된 바이트는 비선형 계층K2i-1 XOR/Byte . 8

에 의해 비선형 변환된다 그림 의 는 입력이 정수로 일 경우 출. [ 1-3] 45(.) j, 0 j < 256≤

력이 이 됨을 의미한다 은 소수이므로 연산은 에서 수(45j mod 257) mod 256 . 257 GF(257)

행되며 가 에서 원시근 이므로 은 일대일 대응 함수이다, 45 GF(257) (primitive element) 45(.) .

는 함수의 역함수이다 이러한 연산은 모두 개의 에 의해 수행된1og45 45(.) . 2 1ook-up table

다.

비선형 변환된 바이트와 부분 키 는 혼합 가산8 K2i XOR/Byte- (Mixed XOR/Byte-addition)

에 의해 결합된다 즉 부분 키의 번째 바이트와 그 대응되는 바이트는 법 에 의. 1, 4, 5, 8 256

해 법 가산되며 번째 바이트는 비트별 된다, 2, 3, 6, 7 XOR .

Page 30: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 30 -

그 다음 과정은 개층 의 과정이다 이 과3 (3-layer) 2-PHT(2-Pseudo-Hadamard Transform) .

정은 미국 표준 암호 알고리즘인 의 치환 과정과 유사하게 기능DES (Permutation) diffusion

을 수행하는 선형 논리이다 의 입력은 바이트이며 출력 역시 바이트이다 이제. 2-PHT 2 , 2 .

입력 바이트를 출력 바이트를 라고 표현하자 여기서 은 최상2 (a1, a2), 2 (b1, b2) . a1, b1

위 바이트 이며 는 최하위 바이트 이다 선형 논리의 출력이 바로 라운드(MSB) , a2, b2 (LSB) .

의 출력이다 수식 는 의 입출력 바이트간의 관계식이다. (1.1) 2-PHT .

b1 = 2a1 + a2 mod 256, b2 = a1 + a2 mod 256 (1.1)

암호화 구조(2)

의 암호화 구조는 동일한 변환이 평문에 라운드 연속적으로 반복된 후 출력SAFER K-64 r ,

변환 과정을 거쳐 암호문을 생성한다 개발자는 일반적인 사용으로 라운드로 권고하였으. 6

나 사용자의 필요에 의하여 라운드까지 사용자가 선택할 수 있다 각 라운드는 개의10 . 2 8

바이트 부분 키에 의해 동작되며 마지막 출력 변환 과정은 개의 부분 키에 의해 동작된다, 1 .

총 개의 부분 키는 모두 바이트의 사용자가 선택한 키 으로부터 키 스케쥴에2r + 1 8 K1

의해 생성된다 입력 출력 및 부분 키는 모두 바이트 비트 이다 그림 는. , 8 (64 ) . [ 1-3] SAFER

암호화 구조이다K-64 .

출력 변환 과정 은 마지막 부분 키 의 번째 바이트(Output Transformation) K2r+1 1, 4, 5, 8

와 대응되는 라운드의 출력 결과와 비트별 하는 과정과 번째 바이트와 법r XOR 2, 3, 6, 7

에 의해 모듈러 가산 과정으로 구성된256 (byte-by-byte byte addition, modulo-256 addition)

다 개발자는 이 과정을 혼합 가산 연산 이. X0R/Byte (Mixed XOR/Byte-Addition operation)

라고 정의하였다 번째 바이트가 최상위 바이트 이며 번째. 1 (Most Significant Byte, MSB) , 8

바이트가 최하위 바이트 이다(Least Significant Byte, LSB) .

Page 31: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 31 -

그림 라운드 구조[ 1-2] SAFER K-64

Page 32: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 32 -

그림 암호화 구조[ 1-3] SAFER K-64

복호화 구조(3)

의 복호화 구조는 먼저 입력 변환 과정을 거친 후 동일한 변환이 암호문에SAFER K-64 , r

라운드 연속적으로 반복되어 평문을 복호화 한다 입력 변환 과정 은. (Input Transformation)

부분 키 의 번째 바이트와 대응되는 라운드의 출력 결과와 비트별K2r+1 1, 4, 5, 8 r XOR

하는 과정과 번째 바이트와 법 에 의해 모듈러 감산 으로 구2, 3, 6, 7 256 (Byte-subtraction)

성된다.

Page 33: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 33 -

의 복호화 구조는 암호화구조를 완전히 역순으로 수행하는 과정으로서 단순히SAFER K-64

키만 역순으로 대입하는 의 복호화 과정과는 완전히 다르다 라운드 의 입력 바이DES . I 8

트는 먼저 개층 의 과정을 거친3 (3-layer) 2-IPHT(2-Inverse Pseudo-Hadamard Transform)

다 수식 로부터 간단하게 역산 과정을 유도할 수 있다. (1.2) .

a1 = b1 - b2 mod 256, a2 = -b1 + 2b2 mod 256 (1.2)

다음 단계는 부분 키 에 의한 혼합 감산 과정이다 그 결과 생성된K2r+2-2i XOR/Byte . 8

바이트는 역 비선형 계층에 의해 비선형 변환된다 역 비선형 계층은 단순히 비선형 계층에.

서 사용된 비선형 논리의 적용 위치만 다르다 마지막 단계는 부분 키 가 적용되. K2r+2-2i

는 혼합 감산 단계이다 번째 바이트와XOR/Byte- (Mixed XOR/Byte-subtraction) . 1, 4, 5, 8

그 대응되는 바이트는 법 에 의해 법 감산되며 번째 바이트는 비트별 된256 , 2, 3, 6, 7 XOR

다.

그림 키 스케쥴[ 1-4] SAFER K-64

Page 34: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 34 -

다 키 스케쥴.

키 스케쥴은 의 각 라운드에서 사용되는 부분 키 을 키SAFER K-64 K2,K3, , K2r+1 K1…

을 입력으로 하여 생성하는 과정이다 보조 입력. B2, B3, ... 은 부분 키를 랜덤하게, B2r+1

생성하는 과정으로 특별히 부분 키의 모든 바이트가 이 되지 않도록 보장하는 기능을 수, 0

행한다 이러한 보조 입력의 개념을 사용하여 의 취약 키 개념을 해결한다 보조 입력. DES .

은 다음 수식에 의하여 생성한다 여기서 를 보조입력 의 번째라고 하자. b[i,j] Bi j .

(1.3)

그림 는 의 키 스케쥴을 나타낸다 각 단계에서 바이트 별로 비트씩[ 1-4] SAFER K-64 . 3

순환 쉬프트를 수행하므로 회 쉬프트 후 각 바이트는 처음과 동일한 값을 갖게된다 그러, 24 .

므로 는 이러한 특성으로 인하여 라운드 이상으로 동작할 수 없다SAFER K-64 12 .

라 안전성 평가.

는 의 안전성 원리 인 법칙을 만족하도록 설계SAFER K-64 Shannon [3] confusion, diffusion

되었다 부분 키의 모든 바이트가 동시에 이 아닌 경우 혼합 가산 연산은 그 다. 0 , X0R/Byte

음의 비선형 부분에 대하여 비선형적으로 동작되도록 설계되었다 의 치환. DES

에 해당되는 부분이 바로 개의 로 구성된 개층의 선형 논리이다 즉(Permutation) 12 PHT 3 .

각 라운드의 상위 부분은 을 보장하고 하위 부분은 을 보장한다 수식confusion , diffusion .

대신에 다음의 표준 을 또는(1.1) Hadamard Transform(HT) %( Walsh Transform,

을 사용한다면 에 대한 의 역원이 존재하지 않으므Walsh-Hadamard Transform) , mod 256 2

로 역함수를 구성할 수 없다 또한 의 선형층은 개층으로 구성되므로 수식. SAFER K-64 3

의 는 매우 적절한 상수이다(1.4) 2 .

Page 35: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 35 -

b1 = a1 + a2, b2 = a1 - a2 (1.4)

와 마찬가지로 개층의 만으로 완벽한 을 보장한다 단 비트별로 고려할HT 1 PHT diffusion .

때 한개의 가 완벽한 비트별 을 보장하지는 않는다 이러한 효과로, PHT diffusion . diffusion

인하여 라운드만으로 다양한 공격 방식에 대하여 를 안전하게 만든다6 SAFER K-64 .

개발에 참여하지 않은 사의 일단의 연구 그룹이 암호 체계의 안전성SAFER K-64 Cylink

을 분석하였다 그 결과 는 측면에서 안전할 뿐만 아니라. SAFER K-64 confusion, diffusion ,

라운드 이상이면 입출력 변화 공격 방식에도 안전함을 입증하였다 또한 각종 통계적 검6 .

증을 수행한 결과 안전하다는 평가 결과를 도출하였다 그러나 에서. CRYPTO'95 , Knudsen

은 에서 키 스케쥴의 문제점을 도출하여 상관키 선택 평문 공격 방식이 성립SAFER K-64

할 수 있음을 보였다[4].

3. RIJNDAEL

가 기본 구조.

알고리즘 의 기본적인 제원은 다음과 같다RIJNDAEL [10] .

입출력 크기 가변 길이0 :

키 길이 가변 길이0 :

라운드 수 가변적 입출력 길이와 키 길이에 의해 결정됨0 : ,

은 가변 길이 블록과 가변 길이 키를 가진 블록 암호이다 블록 길이와 키 길이는Rijndael .

독립적으로 비트가 될 수 있다128, 192, 256 .

Page 36: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 36 -

표< 1-1> Number of rounds(Nr) as a function of the block(Nb) and Key(Nk)

를 중간 암호 결과라고 부른다 는 바이트의 배열로 행 열을 가진다 는"State" . state , 4 , Nb (Nb

블록 길이의 비트 워드 수 암호 키 역시 행 열로 이루어진 배열로 표시된다 는32 ). 4 , Nk (Nb

키 길이의 비트 워드수 그림 에서 예로 보여진다32 ). [ 1-5] .

그림 와 암호 키 의 표시 예[ 1-5] state(Nb=6)) (Nk=4)

구현할 때 에 의해 사용되는 입력과 출력은 부터 까지의 인덱스를 가진 비Rijdael 0 4*Nb-1 8

트 바이트의 일차원 배열로 고려된다 마찬가지로 암호 키 역시 부터 까지의 인덱. 0 4*Nk-1

스를 가진 바이트의 일차원 배열로 고려될 수 있다.

입력 바이트는 순서로 바이트에 사상되고a0,0, a1,0, a2,0, a3,0, a0,1, a1,1, a2,1, a3,1,... state ,

암호 키의 바이트는 순서로 사상된다k0,0, kl,0, k2,0, k3,0, k0,1, k1,1, k2,1, k3,1,... .

Page 37: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 37 -

나. Round transformation

라운드 변환은 가지 변환으로 구성된다4 .

마지막 라운드는 조금 다르다.

(1) ByteSub transformation

그림 에서와 같이 변환은 바이트의 각각에 독립적으로 적용되는[ 1-6] , ByteSub State

이다non-linear byte substitution .

그림 의 동작[ 1-6] Rijndael ByteSub

의 는 가 적용되는 이다ByteSub inverse inverse S-box byte substitution .

Page 38: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 38 -

(2) ShiftRow transformation

그림 에서와 같이 에서 의 행이 다른 값으로 순환 쉬프트된다 쉬프트[ 1-7] , ShiftRow State .

값 는 블록 길이 에 의존한다 의 는 하위 행을 각각C1, C2, C3 Nb . ShiftRow inverse 3 Nb-C1,

의 순환 이동한다Nb-C2, Nb-C3

표 순환 계수< 1-2>

그림 의 동작[ 1-7] Rijndael ShiftRow

(3) MixColumn transformation

에서 의 열은 상의 다항식으로 간주되고 고정된 다항식 와Mixcolumn State GF(28) , c(x)

로 곱해진다modulo x4+1 .

c(x)='03'x3+'01'x2+'01'x+'02'

이것은 행렬 곱셈으로 표시될 수 있다 의 동작이 그림 에 보여진. Rijndael MixColumn [ 1-8]

다.

Page 39: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 39 -

그림 의 동작[ 1-8] Rkjndael MixColumn

의 는 과 유사하다 각 열이 와 곱해진다MixColumn inverse MixColumn . d(x) .

d(x)='0B'x3+'0D'x2+'09'x‘0E'

(4) Round Key addition

이 연산에서 라운드 키는 와 비트별로 된다 라운드 키는 키 스케줄을 이용하여State XOR .

암호 키로부터 유도된다 라운드 키 길이는 블록 길이 와 그림 와 같다. Nb [ 1-9] .

그림 의 동작[ 1-9] Rijndael Round key addition

Page 40: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 40 -

다 키 스케줄.

키 확장(1)

확장된 키는 바이트 워드의 배열이고4 W[Nb* 로 표기된다 처음 워드는 비밀 암(Nr+1)] . Nk

호 키를 포함한다 키 확장 함수는 의 값에 의존한다. Nk .

가( ) Nk 6≤

는 각 바이트가 입력 워드에서 해당하는 위치에서 바이트에 를 적용한SubByte(W) S-box

결과인 바이트를 반환하는 함수이다 는 입력의 바이트들을 순환 이동시키는4 . RotByte(W)

함수이다 즉 입력워드 를 로 만든다. , (a,b,c,d) (b,c,d,a) .

나( ) Nk > 6

Page 41: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 41 -

라운드 상수 는 에 무관하고 다음처럼 정의된다Rcon[i] Nk .

Rcon[i] = (RC[i], '00' , '00' , '00' )

여기서 는 값을 가진 에서 요소를 나타낸다RC[i] x(i-1) GF(28) .

즉RC[i] = 1,( , '01')

즉RC[i] = x,( , '02') (RC[i-1]) = x(i-1)ㆍ

라운드 키 선택(2)

라운드 키 는 라운드 키 버퍼 워드I W[Nb* 에서1] W[Nb* 에 의해 주어진다 그림(i+1)] . [

에 의 확장과 라운드 키 선택 동작이 보여진다1-10] Rijndael key .

Page 42: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 42 -

그림 의 확장과 라운드 키 선택 동작[ 1-10] Rijndael key (Nb=6, Nk=4)

Page 43: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 43 -

제 장 블록 암호 알고리즘 설계2

블록 암호는 의부 모양에 따라 가지 형태로 분류할 수 있다 과 같은3 . DES, FEAL Feistel

구조 와 같은 구조 그리고, SAFER, SQUARE SPN(Substitution and Permutation Network) ,

와 같은 기타 구조로 분류할 수 있다RC5, IDEA .

블록 암호를 설계하기 위해서는 적어도 기존에 이미 알려진 공격법에 대해서는 안전하게 설

계하여야 한다 현재까지 알려진 가장 강력한 공격법은 와. DC(Differential Cryptanalysis)

이다 는 년 과 에 의해 개발된 공격법이며LC(Linear Cryptanalysis) . DC 1990 Biham Shamir ,

는 년 에 의해 개발된 공격법이다LC 1993 Matsui .

본 장에서는 와 에 대해 안전성이 증명 가능한 새로운 구조 블록 암호 알고리즘DC LC SPN

을 설계한다.

제 절 구조에 대한 와1 SPN DC LC

라운드 구조는 서브 키와의 덧셈 부분 대치 부분 그리고 선형변환 부분으로1 SPN , (}box)

구성된다 대치 부분은 구조에서 유일한 비선형 구조로 개의 로 구성된다 선형. SPN n S-box .

변환 부분은 하나의 선형변환으로 구성되며 덧셈 부분은 선형변환의 입력과 서브 키 간의

비트별 이다 그림xor [ 2-1].

그림 라운드 구조[ 2-1] 1 SPN

Page 44: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 44 -

라운드 구조를1 r번 반복하여 만든 구조를 r 라운드 구조라고 한다SPN . r 라운드 SPN

구조 블록 암호의 암호화 과정과 복호화 과정은 그림 과 같다 구조 암호 알고리[ 2-2] . SPN

즘이 복호화되기 위해서는 와 선형변환은 역변환을 가져야 한다 따라서 구조를S-box . SPN

언급할 때 는 정의역과 공변역이S-box {O,1}m 인 전단사 함수라고 가정한다 또 선형변환도.

역 선형변환을 가진다고 가정한다 암호화 과정의 마지막 라운드는 다른 라운드와 달리 서.

브 키와의 를 한 번 더 작용한다xor .

Page 45: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 45 -

그림 라운드 구조의 암호화[ 2-2] r SPN

Page 46: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 46 -

그림 라운드 구조의 복호화[ 2-3] r SPN

Page 47: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 47 -

설계 기준1. S-box

가 아래의 기준 중 하나라도 만족하지 않으면 이 에 기반한 암호 알고리즘 설S-box , S-box

계는 암호학적으로 약할 것이고 약점을 보완하기 위하여 더 많은 라운드 수를 필요로 하게,

된다 필수적인 설계 기준에는 다음과 같은 성질을 만족하여야 한다. S-box .

0 Completeness

균일성0 (Balance)

비선형성0 (Nonlinearity)

전파 특성0 (Propagation)

프로파일 특성0 XOR (good XOR profile)

대수적인 차수0 (Algebraic degree)

가. Completeness

은 과 에 의해 발표한 것으로 모든 에 대하Completeness Kam Davida([4]) , { i, j 1 i, j n }| ≤ ≤

여 출력 벡터 가 최소한 비트 다르면서 단지 비트만 다른 입력 벡터 쌍 가, f(x),f(y) j , i x, y

하나 이상 존재하면 를 라고 한다 다시 말해 각각의 출력 비트는 모든 입력비트f complete .

에 의존할 때 함수를 라고 한다, complete .

이 기준은 하나의 보다는 전체 설계 또는 에 적용된다 고정된 에S-box ( S-P network) . S-box

대하여 적당한 치환 를 설계할 필요가 있고 함수를 하게(permutation) box(P-box) , complete

만들기 위해 필요한 라운드 수를 계산할 필요가 있다 이러한 가 부족하면 공. completeness

격자는 설계된 암호 알고리즘을 공격방법에 의해 공격을 당할 것이다“divide and conquer” .

나 균일성. (Balance)

Page 48: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 48 -

부울 함수 f :ㆍ ∑ n → GF (2 )의 이truth table 2 n - 1 개의 또는 을 가질 때 균0( 1) ,

일성을 갖는다.

예[ ] f(x ) = x 1x 2⊕x 3,x∈∑ 3. 의 은 이고 이 함수는 번의f truth table (01010110) , 4

또는 을 가진다 그러므로 는 균일 함수이다0( 1) . , f .

내의 균일성 가 부족하면 의 여러 번 사용에 의해 출력 값이S-box (Balance Property) S-box

어떤 경향 을 나타내는 경우를 초래할 수 있다 따라서 어떤 출력수열은 다른 것에 비(bias) . ,

하여 훨씬 더 많은 경향을 갖을 수 있다 임의의 암호 알고리즘 설계시 많은 라운드에 같은.

를 사용할 때 가장 나쁜 경우에는 라운드 수를 증가시키더라도 더 큰 경향으로 축적S-box

될 수도 있다 따라서 이러한 설계는 균일하지 않은 출력 의 확률적 분포를 조사하는. , string

모든 종류의 공격자들에게 공격당할 수 있다.

부울함수 f :∑ n → GF ( 2 )가 주어져 있다고 하자.

보조정리 1. g(x)= f(xB ⊕β)라고 하자 여기에서 는 정칙 행렬이. , B n×n (non-singular)

고, β∈∑ n 이다 그때 가 균일 이기 위한 필요충분조건은 가 균일. , g (balanced) f (balanced)

이다.

증명 가 정칙이면 가 집합. B , x { a 0 , a 1 , . . . . , a 2 n - 1의 모든 값을 움직일 때} ,

y = xB⊕β도 또한 같은 집합의 모든 값을 택한다 그러므로 의 출력값은 의 출력값들. , g f

의 치환이기 때문에 가 균일이라면 도 균일하다f(x) , g(x) .

xB = y⊕β⇒x= B - 1(y⊕ )β. 따라서 유사하게 역도 증명할 수 있다, .

Page 49: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 49 -

보조정리2. f :∑ n→GF (2 ), g :∑ m→GF (2 )인 함수라 하자Boolean .

h :∑ n+ m→GF(2), h (x,y ) = f(x )⊕g( x )라고 하자 그때에 가 균일이라면 도 균일. , f h

하다.

증명 주어진 에 대하여 는 상수이고 의 의 절반은 또는 이다. g(a) , f(x) truth table 0( 1) . g(x)α

의 의 반은 또는 이기 때문에truth table 0( 1) f(x)⊕g(x)의 의 반도 또는truth table 0( 1)

이다.

다 비 선형성. (nonlinearity)

0 N f=m inδ∈A n

d( f,g )를 부울함수 f :∑ n→GF(2)의 비선형 이라고 한다 여기에서. ,

A n은 ∑ n위에서의 모든 함수의 집합이다affine .

예[ ] f(x 1,x 2 )= x 1,x 2를 고려하자.

A n = { 0,x 1,x 2 ,x 1⊕x 2,1,x 1⊕1,x 2⊕1,x 1⊕x 2⊕1}

표 상관 계수< 2-1>

d ( f, l 1 ) = d ( f, l 2 ) = 1 ,d ( f, l 3 ) = 3 . 표에 나와 있지 않은 함수와 사이의 거리도affine f 1

또는 이다 따라서 의 비선형은3 . , f N f = 1이다.

Page 50: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 50 -

보조정리3. f,g :∑ n→GF (2 )일때 ,d ( f,g ) = 2 n - 1 - 12< ξ,η >이다 . 여기에서 와 는ξ η

와 의 수열이다f g .

증명. ξ = ( a 0 , . . . . , a 2 n - 1) ,η = ( b 0 , . . . . , b 2 n - 1

)라 하자 를 두 개의 수열에서. (+)ρ

a j = b j를 만족하는 수라 하고 를 두개의 수열에서, (-)ρ a j≠b j를 만족하는 수라 하자.

따라서

이기 때문에, d ( f,g ) = 2 n - 1 -12< ξ,η >이 된다.

보조정리 를4. ξ ∑ n위에서의 의 라고 하면f sequence ,

이다 여기에서. , l i는 H n의 번째 행이다i .

증명 임의의 함수는 선형 함수 나. affine φ 1⊕φ 로 쓸 수 있다 선형 함수 가 있을 때. ,φ

함수Affine φ * = 1⊕φ라고 하자 를 의 수열이라고 하자 그러면. . ,η φ

d ( f,φ ) = 2 n - 1 -12< ξ,η >이고, d ( f,φ *)= 2 n - 1+

12< ξ,η > 이다.

Page 51: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 51 -

여기에서, L n은 ∑ n위에서의 모든 선형 함수의 집합이다. L n에 속해있는 모든 함수의

수열의 모임은 { l,∣ j = 0 , 1 , .... , 2 n - 1 }과 같다.

보조정리 를5. f ∑ n위에서의 임의의 함수라 하면, N f≤ 2n - 1 - 2 n/2 - 1이다.

증명 를 의 라고 하고. f sequence ,ε j = 0 , 1 , . . . , 2 n- 1 1 대하여 l i를 Walsh-Hadamard

행렬 H n의 번째 행 열 이라고 하자 그때에j ( ) .

εH n = ( < ξ.l 0 > ,< ξ , l 1 > , ....,< ξ , l 2 n - 1> )

이다.

ξH nH nTξ T = ∑ 2 n - 1

j = 0 < ξ , l j>2 . H nH n

T = 2 n I2 n이기 때문에

2 nξξ T = ∑ 2 n- 1j = 0 < ξ, l j>

2이다 여기에서는. I2n는2 n×2n 단위 행렬이다. ξξ T는 항상 2n

이기 때문에 ∑ 2 n- 1j = 0 < ξ, l j>

2= 2 2n이다.

바로 위 방정식을 방정식이라고 부른다 따라서Parseval . , < ξ, l j>2 ≥2 n 되는 가j

0 , . . . .2 n - 1 사이에 존재한다. < ξ, l j>2 ≥2 n은 < ξ, l j> ≥2

n/2이거나 < ξ, l j> ≤ - 2n/2

라는 것과 동치이다.

Page 52: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 52 -

l i는 어떤 선형 함수 φ j의 수열이다.

ㆍ < ξ, l j> ≥2n/2인 경우는 보조정리 를 이용하여3 d ( f,φ j)≤ 2

n - 1 - 2 n/2 - 1이라는 것을

알 수 있다.

ㆍ < ξ, l j> ≤ - 2n/2인 경우에는 < ξ,- l j> ≥ - 2

n/2되고, - l i는 1⊕φ j의 수열이다.

따라서 보조정리 를 이용하여3 , d ( f,1⊕φ j)≤2n - 1 - 2 n/2 - 1라는 것을 알 수 있다 그러므.

로 우리는 위의 두 가지 경우로부터, N f≤ 2n - 1 - 2 n/2 - 1임을 알 수 있다.

보조정리 를6. f ∑ n위에서의 부울 함수라고 하고 는 정칠 행렬 는, B n×n , β ∑ n에 속해

있는 상수라 하자. g(x0= f(xB⊕β)는 함수 와 같은 비선형성 를 가진다f(x) (nonlinearity) .

즉, N g = N f .

증명 비 선형성의 정의로부터. d ( f,φ ) = N f가 되는 함수 가 존재한다affine (x) .φ

ψ(x)=φ(xB⊕β)를 고려하자 이때 우리는 과 가 또한 이라는 것을. , d(g, )=d(f, ) affineψ φ ψ

알 수 있다 따라서 의 정의로부터. , Nonlinearity N g≤d(g,ψ)을 추론할 수 있다 이것은.

N g≤N f라는 것을 입증한다 가 정칙 행렬이기 때문에 역에 대해서도 같은 과정을 반복할. B

수 있고, N f≤N g라는 것을 증명할 수 있다.

라 전파특성. (propagation)

인 모든 에 대하여0 W( ) = 1α α f(x)⊕f(x⊕a)가 인 경우 함수balanced f : ∑ n →

가 을 만족한다고 함 다시 말해서 는 입력이GF(2) SAC(Strict Avalanche Criterion) . SAC

한 비트 변할 때의 출력의 특징을 나타낸다.

Page 53: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 53 -

0 f(x)⊕f(x⊕a)a)가 함수일 때 는 벡터 에 대하여 기준을 만족balanced , f propagation

한다고 함 여기에서 는 이 아닌 벡터이고. 0 , x ,a∈ ∑ n이다.

인 모든0 1 W(a) k≤ ≤ a∈ ∑ n에 대하여 기준을 만족할 때 차수 가propagation , (degree)

인 기준을 만족한다고 한다k propagation .

예[ ] ∑ 3위에서 정의된 함수 f=x 1x 2⊕x 3이라고 하고 이라고 하자, a=(1, 1, 0) .

f(x)⊕f(x⊕a)= (x 1x 2⊕x 3)⊕( (x 1⊕1)(x 2⊕1)⊕x 3)=x 1⊕x 2⊕1이 균형성은 쉽게

보일 수 있다 따라서 는 에 대하여 을 만족한다. , f (1,1,0) propagation .

∑ 5위에서 정의된 함수 f=x 1⊕x 1x 5⊕x 2x 4⊕x 2x 5⊕x x 4x 5⊕x 3x 4x 5라고 하고,이라고 하자a=(0, 0, 1, 0, 0) .

f(x)⊕f(x⊕a)= x 3x 4x 5⊕(x 3⊕1)x 4x 5는 가 아니다 따라서 는balanced . , f (0, 0, 1, 0,

에 대하여 기준을 만족하지 못한다0) propagation .

다음 정리는 를 만족시키는 함수를 얻기 위해 어떻게 선형변환SAC nonsingular (linear

을 사용하는 지를 보여준다transformation) .

Page 54: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 54 -

정리1. f : ∑ n 를 부울 함수라 하고 는 원소를 로 갖는 정칙행렬이라고GF(2) , A GF(2)→

하자. f(x)⊕f(x⊕a)가 의 각각의 행에 대하여 균일이라면 는 를 만족A , (x)=f(xA) SACψ

한다.

예{ } f=x 1x 2⊕x 3을 고려하자.e 1 = (1 ,0 ,0 ), e 2 = (0 ,1 ,0 ), e 3 = (0 ,0 ,1 ), γ = ( 1 ,1 ,1 , )

f(x)⊕f(x⊕e 3)=x 1x 2⊕x 3⊕x 1x 2⊕(x 3⊕1)= 1이기 때문에 균일이 아니고 를 만족하지 못한다, SAC .

반면에

f(x)⊕f(x⊕e 1)=x 2,f(x)⊕f(x⊕e 2)=x 1,f(x)⊕f(x⊕γ)= x 1⊕x 2⊕1은 균일성을 만족한다.

이제 다음과 같은 행렬 를 고려하자A .

정리 로부터 는 를 만족한다1 g(x) = f(xA) SAC .

정리 은 를 만족하는 각각의 함수의 모임을 설계하는 데 사용할 수 있을 뿐 아니라1 SAC

일반화시킬 수 있다.

정리2. f 1 f 2 , . . . , f m 을 ∑ n위에서의 함수라 하고, R = {a∣f j(x)⊕f j(x⊕a)}가1≤j≤m인 에 대하여 균일이 아니다 라고 하자j .} . ∣R∣ < 2 n- 1이라면 각각의,

ψ j(x)= f j (xA)에 대하여 를 만족시키는 원소를 로 갖는 정칙 행렬 가 존ASC GF(2) n×n A

재한다.

Page 55: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 55 -

예 다음과 같은 세 개의 함수[ ]

을 고려하자.

f1은 단지 하나의 벡터 에 대해서만 기준을 만족하지 않는다 유사하(1, 0 ,0) propagation .

게 f2는 단지 (1, 0, 1), f 3은 단지 에 대해서만 기준을 만족하지 않(1, 1, 1) propagation

는다.

따라서 이고R= {(1, 0 , 0),(1, 0, 1),(1, 1, 1) } , ∣R∣ < 2 n - 1= 2 1= 4이다 그러므로 정. ,

리 에 의해서2

ψ j(x)= f j (xA)에 대하여 를 만족시키는 원소를 로 갖는 정칙 행렬 가 존SAC GF(2) n×n A

재한다 예를 들어 다음과 같은 를 선택할 수 있다. , A .

부울 함수는 기준을 만족하지 않을 수 있다 근본적인 실패는 함수propagation .

f(x)⊕f(x⊕a)가 상수일 때 일어나다.

가0 f ∑ n위의 함수일 때, f(x)⊕f(x⊕a)이 상수이면 를 선형 구조(linear structure)α

를 갖는다 함수가 일 때에는. 0 f(x)⊕f(x⊕a)= 0 이므로 모든 함수는 적어도 하나의 선,

형 구조를 가진다.

예[ ] ∑ 3위의 함수 f=x 1x 2⊕x 3을 고려하자.f(x)⊕f(x⊕(0,0,1)) = (x 1x 2⊕x 3)⊕(x 1x 2⊕x 3⊕1)= 1이기 때문에 은 선형 구조를 가진다 당연히 이 아닌 선형 구조는 내에서 피,(0, 0, 1) . 0 S-box

해야만 한다.

Page 56: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 56 -

마. good XOR profile

비밀키 암호 알고리즘분석에 사용되는 가장 기본적인 도구는 의 입력과 출력의 차분S-box

를 나타내는 표이다 이 표를 의 로 언급할 수 있다 부울 함(difference) . S-box XOR profile .

수 f : ∑ n→ ∑ m에 의해 입력 을 변환하는 를 가지고 있다고 하자string S-box .

주어진 입력 string (s 1 ,s 2)에 대하여 는 출력S-box s *1 = f(s 1)과 s *2 = f(s 2)를 생성

한다 입출력 쌍. { (s 1 , s*1),(s 2, s

*2)}는 입출력 차분XOR (difference)

δ = s 1⊕s 2와△= s *1⊕s *2에 의해 특징이 지어진다.

예를 들어 의 에 의해, DES S1-box

S3C x2 x= { (3 x ,3F x ;F x,D x ),(17 x,2B x ;B x,9 x ),(2B x,17 x ;9 x,B x ),(3F x,3 x ;D x,F x )}

를 계산할 수 있다. (s 1 ,s 2 ; s*1, s

*2)와 (s 2 ,s 1 ; s

*2, s

*1)는 같기 때문에 S δ

△는 항상 짝

수이어야 한다 물론. S δ△이 공집합이 되게 하는 와 가 존재한다 실재로 일 때. 0 ,δ △ △≠

S δ△는 공집합이다 그리고 집합. , S

0 x0 x의 개수는 2n이다.

Page 57: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 57 -

0 f : ∑ n→ ∑ m에 의해 정의된 의 은S-box XOR profile 2 n개의 행과 2m개의 열로 구

성된 표이다 각각의 행은 에 의해 표시되고 각각의 열은 에 의해 표시된다 표의 각각의. , .

원소 는 집합( , )δ △ S δ△의 원소의 개수이다.

다음 표 는 의 의 이다 기준에서 의 설계< 2-2> DES S1-box XOR profile . XOR profile S-box

자는 내에 큰 수를 포함하는 원소가 포함되지 않도록 주의해야 한다 또한XOR profile . XOR

는 가장 좋은 라운드 특성 을 갖는 상황 내에서 고려되어져야 한다profile (characteristic) .

Page 58: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 58 -

표 의 의< 2-2> DES S1-box XOR profile

Page 59: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 59 -

에 대한 와2. S-box DC LC

구조에 대한 와 를 살펴보기 위해 먼저 에 대한 와 를 살펴보자SPN DC LC S-box DC LC .

정의 임의[ ] a',b',a,b∈ {0,1} m에 대해 의 차분 확률과 선형확률을 각각S-box

로 정의한다 여기서. x . 는y Z 2 상에서 계산된 두 벡터의 내적이다 과 을 각각. a' b'

의 입력과 출력 차분이라고 하며 를 각각 의 입력과 출력 값이라고S-box , ,b S-box maskα

부른다.

입력 차분과 출력 차분이 으로 주어졌을 때a',b', , S(x)⊕S(x⊕a') = b'이 성립할 확률이

차분 확률이며 간단히 다음과 같이 쓰기로 한다.

a' ─→Sb' 확률 DP s(a'→b')

입력 값과 출력 값이 로 주어졌을 때 가 성립할 확률을 선형근mask mask a,b a b=b S(x)ㆍ ㆍ

사 확률이라고 한다 따라서 선형근사 확률과 선형 확률과의 관계는 다음과 같다. .

선형 확률=4 (선형근사 확률 - 12)2

선형근사를 선형근사 확률로 나타낼 때는 다음과 같이 쓴다.

a . x=b . 선형근사 확률S(x)

반면에 선형근사를 선형 확률로 나타낼 때는 다음과 같이 쓰기로 한다.

a ─→Sb' 확률 LP S(a→b)

Page 60: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 60 -

정의 와 에 대한 의 강도는[ ] DC LC S-box DP Smax와 LP S

max 값으로 측정한다.

DP Smax 가 작을수록 는 에 안전하며S-box DC LP S

max 가 작을수록 는 에 안전S-box LC

하다.

정의 입력 차분이 이 아니거나 출력 값이 이 아닌 를 라고 부[ ] 0 mask 0 S-box active S-box

른다.

는 전단사이므로 입력 차분이 일 필요 충분 조건은 출력 차분이 이며 출력S-box 0 0 , mask

값이 일 필요 충분 조건은 입력 값이 이다 따라서 출력 차분이 이 아니거나 입력0 mask 0 . 0

값이 이 아닌 를 라고 부르기도 한다mask 0 S-box active S-box .

선형변환에 대한 와3. DC LC

이젠 선형변환에 대한 와 를 살펴보자 선형변환을 정의하기 위해DC LC . {0,1}m은 링

이어야 한다(ring) .

정의 집합 의 임의 두 원소에 대해 덧셈과 곱셈이 정의되고 가 의 원소이면 와[ ] R (x,y R x+y

도 의 원소 다음 성질을 만족할 때 을 링 이라고 한다xy R ) R (ring) .

덧셈 하에서 가환 군(1) (group)

결합법칙0 : (x+y)+z=x+(y+z)

Page 61: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 61 -

단위 원 존재 를 만족하는 존재0 : 0+x=x+0=x 0

역 원 존재 임의 에 대해 을 만족하는 존재0 : x x+y=y+ =0 yγ

교환법칙0 : x+y=y+x

곱셈 하에서 결합법칙(2) : (xy)z=x(yz)

분배법칙(3) : x(y+z)=xy+xz

정의 이 링이고 이 곱셈에 대한 가환 군일 때 을 체 라고 한다[ ] R R-{0} , R (field) .

이젠 링 의 예를 살펴보자(ring) .

예 체 는 링 이므로 갈로아 체[ } (field) (ring) GF(2 m)는 링 이 된다 이 경우 덧셈은 비(ring) .

트별 이며 곱셈은 차 기약다항식을 법으로 한 다항식의 곱셈이다xor , m .

예[ ] {0,1}m 상에서 덧셈을 비트별 로 정의하고 곱셈을 논리곱 으로 정의하면xor ( ,&)∧

{0,1}m은 링이 된다 하지만 이 경우. {0,1}m은 체는 아니다.

이젠 링 을 이용하여 선형변환을 정의해 보자(ring) . {0,1}m이 링 일 때 번째 라운드(ring) i

의 선형변환은

로 정의할 수 있다 여기서. x i∈{0,1}m(1≤i≤n), A i는 {0,1}m 상의 원소를 갖는 n×n

행렬이며 곱셈과 덧셈은 링 {0,1}m 상의 곱셈과 덧셈이다 특히. A i의 원소가 또는 일0 1

때 {0,1}m 은 링일 필요가 없다.

Page 62: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 62 -

편의상 과 의 첨자를 생략하기로 한다 행렬 를 다음과 같이 두자L A . A .

그리고 로 두자 즉L(x)=y .

가 선형변환에 대한. DC

선형변환 의 성질을 살펴보자L DC . ( x 1 ,x 2 ,⋯ ,x n )과 ( x *1, x

*2,⋯ x *

n)를 의 입력L

쌍이라고 두고 (x 1 ',x 2',⋯ ,x n ')을 두 입력의 차분이라고 두자.(x 1 ',x 2',⋯ x n') = (x 1+ x *

1,x 2+ x*2,⋯ ,x n+ x *

n)

또 ( y 1 ,y 2 ,⋯ ,y n )과 ( y *1, y

*2,⋯ y *

n )를 의 출력 쌍이라고 두고 두 출력의 차분을L ,

( y 1 ',y 2',⋯ , y n ')이라고 두자 그러면,

이다 그러므로. ,

이다 따라서 이다 즉. y'=L(x')=Ax' .

Page 63: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 63 -

이상의 결과를 요약하면 다음과 같다.

정리 이 선형변환일 때. L DP L(x'→L(x')) = 1이다 즉. x' ─→LL(x') 차분 확률 1

나 선형변환에 대한. LC

선형변환 에 대한 를 살펴보자L LC . {0,1}m 상의 덧셈은 라고 가정한다bitwise xor .

먼저 행렬 의 원소가 또는 일 때 살펴보자n×n A 0 1 . a = ( a 1,a 2 ,⋯ , a n )이라고 두자.

단, a i∈{0,1}m(1≤i≤n)이다 그리고 의 역행렬. A A - 1을 다음과 같이 두자.

Page 64: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 64 -

이다 고로.

이다 여기서. ⊕ ni = 1 b ija i, ⊕ n

i = 1 a jix i ( 1 ≤ j≤ n )는 {0,1}m 상의 원소이며 는ㆍ Z2

상에서 계산되는 내적이다.

한편 {0,1}m 상의 원소 에 대해u,v,w u(v⊕⋅w)= (u⋅v)⊕(u⋅w)이다.따라서

이다 또. A - 1A = I n 이므로

이다.

위의 결과를 정리하면 다음과 같다.

정리 선형변환을. L (x 1,x 2 ,⋯ ,x n )= A (x 1,x 2 ,⋯ ,x n ) t 라고 하자 여기서.

x i∈{0,1}m(1≤i≤n)이다 만일. {0,1}m 상의 덧셈이 이고 행렬 의 원소가xor , n×n A

상의 원소이면 선형변환 에 대한 선형확률은 다음과 같다{0,1} L .

Page 65: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 65 -

행렬 의 원소가A {0,1}m 상의 원소이면 위의 정리는 성립하지 않을 수 있다.

반례 이라고 두자 차 기약다항식[ ] m=8, n=1 , 8 x 8+x 4+x 3+x+1 ( 11bx에 대응되는 다

항식 을 이용하여 만든 갈로아 체) GF(2 8)상의 덧셈을 곱셈을 라고 쓰자 또, .⊕ ⊗GF(2 8) 상의 원소 를x x = ( x 7,x 6 ,⋯ ,x 0 )으로 쓰자 선형변환을 라고 정의. L(x)=2 x⊗하자 이므로. A=2 a - 1 = 8d x이다 한편 는 다음과 같이 계산된다. 2 x .⊗

이젠 로 두자 그러면=1=(0,0, ,0,1) .α … aA - 1 = 1⊗ 8d x = 8d x이다.따라서

이다 한편. a⋅x = x 0이다 따라서. LP L(a→aA - 1)은 다음과 같다

Page 66: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 66 -

구조에 대한 와4. SPN DC LC

라운드 구조에 대한 와 에 대해 살펴보자 즉 특성 과 선형근사r SPN DC LC . (characteristic)

에 대해 살펴보자 선형변환에 대응되는 행렬의 원소는 또는 로 구(linear approximation) . 0 1

성되었다고 가정한다.

가 구조에 대한. SPN DC

먼저 라운드 구조에 대한 를 살펴보자 즉 라운드 특성을 찾아보자 라운드1 SPN DC . 1 . 1

구조는 서브키와의 덧셈 부분 부분 그리고 선형변환으로 구성된다 그림SPN , S-box [ 2-4].

그림 라운드 구조[ 2-4] 1 SPN

(x⊕k)⊕(x *⊕k)= x⊕x *이므로 분석에서 서브 키는 아무런 역할을 하지 않는다DC .

따라서 특성을 논할 때 서브 키는 없는 것으로 간주한다DC .

먼저 부분의 차분 확률을 구해 보자S-box . S i 의 차분 확률을-box p i(1≤i≤n)라고 두

자.

a 'i ─→S i b 'i 확률 p i

여기서 a 'i은 S i 의 입력 이며-box xor b '

i은 S i 의 출력 이다-box xor .

a ' = ( a 1 ',a 2 ',⋯ , a n ') ,b '= ( b 1',b 2 ',⋯ , b n ') ,S = ( S 1,S 2 ,⋯ , S n )으로 두면 S-box

부분의 차분은 다음과 같다.

Page 67: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 67 -

한편 선형변환에 대한 차분은 이다 절 참조 여기서 은 선형변환을 나타x' L(x') (1 2-1) ). L→

낸다 따라서 라운드 구조에 대한 차분은 다음과 같이 쓸 수 있다. 1 SPN .

a' ─→Sb' ─→L(b') 확률 ∏

n

i= 1p i

간단히 라운드 차분을 으로 쓰기로 한다1 a' b' L(b') .→ →

개의 라운드 차분2 1 a' b' L→ → 1(b'), c' d' L→ → 2 이 라운드 특성을 만들기 위해서는(d') 2

L1 이어야 한다 이 때 라운드 특성을 다음과 같이 쓰며 라운드 특성 확률은(b')=c' . 2 , 2 pq

이다.

a' b' L→ → 1 확률(b') p

c' d' L→ → 2 확률(d') q

일반적으로 라운드 특성 을 정의할 수 있다(characteristic) .γ

정의[ ] L i(B i ') = A i+ 1'( 1≤ i≤ r - 1 )을 만족하는 개의 특성γ

{A i'→B i'→L i(B i '), 1≤ i≤r}을 라운드 특성이라고 정의한다 이때 라운드 특성을r . r

다음과 같이 쓰기로 한다.

이젠 구조에 대한 과 구조에 대한 간의 차이에 대SPN characteristic Feistel characteristic

해 살펴보자 구조는 그림 과 같다. Feistel [ 2-5] .

Page 68: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 68 -

그림 라운드 구조[ 2-5] r Feistel

구조에 대한 의 정의는 다음과 같다Feistel characteristic .

정의 구조에서 번째 라운드 함수 의 특성을[ ] Feistel i f A i'→ B i'으로 표시했을 때,

A i'= A i - 2 '⊕ B i - 1'( 3≤ i≤ r )인 조건을 만족하는 개의 특성r {A i'→B i',1≤ i≤r}을 γ

라운드 특성이라고 정의한다.

이젠 구조에 대한 의 성질에 대해 살펴보자SPN characteristic .

각 라운드의 의 개수는 이상이다(1) active S-box 1 .

구조에서 사용되는 와 선형변환 은 역 변환을 갖는다는 사실에 유의하기 바란SPN S-box L

다 번째 라운드에 작용하는 가 없으면. i S-box A i' = 0 이다 그러면. B i' = 0이며

A i+ 1 '= L i( B i ') = 0이다.

Page 69: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 69 -

한편L i - 1 ( b i - 1 ' ) = A i' = 0이며 선형변환은 역 변환을 가지므로, B i - 1 ' = 0 이다 또.

도 역함수를 가지므로S-box A i - 1 ' = 0 이다 이와 같은 과정을 계속하면.

A i' = L r ( B r ' ) = 0 인 특성 입력 가 인 특성 이 된다 반면에 구조에서trivial ( xor 0 ) . Feistel

는 어떤 라운드에 작용하는 가 없어도 라운드 특성이 되며 연속적인 개의 라운드S-box , 2γ

에 작용하는 가 없으면 한 특성이 된다 즉 구조에서 적당한 에 대해S-box trivial . Feistel i

A l' = 0→ B i'= 0 일지라도 한 라운드 특성이 될 수 있으며non-trivia1 r ,

A l'= 0→ B i'= 0 , A i + 1' = 0→ B i+ 1 '= 0이면 한 라운드특성이 된다trivial .γ

특성 의 역은 특성이 아니다(2) (characteristic) .

구조에서Feistel {A i'→B i',1≤i≤r} 라운드 특성γ

일 때 역순을 취한, {A i'→B i',1≥i≥1}도 라운드 특성이다.γ

왜냐하면 A i'= A i - 2'⊕ B i - 1' ( 3 ≤ i≤ r )이면 A i - 2'= A i '⊕ B i- 1 '( r≥ i≥ 3 )이기 때문

이다 그러나 구조에서는 그렇지 않다 예를 들어 개의 라운드 특성이. SPN . , 2 1 a' b'→ →

L1(b'), c' d' L→ → 2 일 때(d') , c'=L1 이면 다음 그림은 라운드 특성이 된다(b') 2 .

a' b' L→ → 1(b')

c' d' L→ → 2(d')

하지만 역순을 취한 아래 그림은 일반적으로 라운드 특성이 아니다2 .

Page 70: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 70 -

c' d' L→ → 2(d')

a' b' L→ → 1(b')

라운드 특성이 되기 위해서는2 a'=L2 이어야 한다(d') .

둘째 라운드부터 제약조건이 부여된다(3) .

구조의 라운드 특성에서는 번째 이후 라운드의 입력 는 전 라운드의 출력Feistel 3 xor xorγ

와 전전 라운드의 입력 에 의해 결정된다 즉xor . A i'= A i - 2 '⊕ B i - 1' ( 3 ≤ i≤ r )이다 반.

면에 구조의 라운드 특성에서는 번째 이후 라운드의 입력 는 전 라운드의 출력SPN 2 xorγ

와 같아야 한다xor .

라운드의 수가 클 경우 특성을 찾는 것은 쉽지 않다 이 경우 특성을 연결해도 다시 특성이.

되는 작은 라운드의 반복특성 을 찾는 것이 편리하다 여기서(2,3,4) (iterative characteristic) .

각 라운드에 사용되는 선형 변환은 동일한 것이라고 가정한다 즉. L 1 = L 2= ⋯ = L r= L

이다.

라운드 반복특성 둘째 라운드의 출력 가 입력 와 같은 라운드 특성을 라운드[2 ] xor xor 2 2

반복특성이라고 한다 즉. L ( B 1') = A 2',L (B 2') = A 1'인 조건을 만족하는 라운드 특성2

이다.

위의 라운드 반복 특성을 번 더 연결하면 라운드 특성이 된다2 1 4 .

Page 71: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 71 -

같은 방법으로 다시 번 더 연결하면 라운드 특성 다시 번 더 연결하면 라운드 특성1 6 , 1 8

이 된다 따라서 라운드 반복특성이 존재하면 큰 라운드의 특성을 쉽게 찾을 수 있다. 2 .

라운드 반복특성 셋째 라운드의 출력 가 입력 와 같은 라운드 특성을 라운드[3 ] xor xor 3 3

반복특성이라고 한다 즉. L ( B 1') = A 2',L (B 2') = A 3'L (B 3') = A 1'인 조건을 만족하는

라운드 특성이다3 .

위의 라운드 반복 특성을 번 더 연결하면 라운드 특성이 된다3 1 6 .

같은 방법으로 다시 번 더 연결하면 라운드 특성 다시 번 더 연결하면 라운드 특성1 9 , 1 12

이 된다 따라서 라운드 반복특성이 존재하면 큰 라운드의 특성을 쉽게 찾을 수 있다. 3 .

라운드 반복특성 넷째 라운드의 출력 가 입력 와 같은 라운드 특성을 라운드[4 ] xor xor 4 4

반복특성이라고 한다.

즉 L (B 1') = A 2',L (B 2') = A 3',L (B 3') = A 4',L (B 4') = A 1인 조건을 만족하는 라4

운드특성 이다.

위의 라운드 반복 특성을 번 더 연결하면 라운드 특성 다시 번 더 연결하면 라운4 1 8 , 1 12

드 특성이 된다.

Page 72: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 72 -

나 구조에 대한. SPN LC

구조에 대한 성질을 살펴보자 즉 라운드 선형근사 를 찾아SPN LC . 1 (linear approximation)

보자 라운드 구조는 서브 키와의 덧셈부분 부분 그리고 선형변환으로 구성. 1 SPN , S-box

된다 그림 여기서 선형변환에 대응되는 행렬의 원소는 또는 이라고 가정한다[ 2-6]. n×n 0 1 .

그림 라운드 구조[ 2-6] 1 SPN

먼저 의 선형근사를 구해 보자S-box . S i 의 선형 확률을-box p i 라고 두자=(1 i n) .≤ ≤

a i ──→S i b i 확률 p i

여기서 a i는 S i 의 입력 값이며-box mask b i는 S i 의 출력 값이다 한편-box mask .

p i= 4 { λ s i(a i ,b i)2 m }2

= 4(근사 확률 - 12) 2이므로 근사 확률은

12±

p i2이다 즉.

a i*x= b iS i(x) 확률12±

p i2

여기서 는ㆍ Z2 상에서 계산된 두 벡터의 내적이다 선형 확률로부터 선형 근사식의 확률.

을 정확히 알 수 없지만 (12+

p i2

또는12-

p i2) 여러 개의 가 작용할 때, S-box

선형 확률을 사용하는 것이 편리하다 개 이상의 가 작용하는 선형근사의 확률 계산. 2 S-box

을 위해서는 다음 보조정리가 필요하다.

Page 73: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 73 -

보조정리 독립인 확률변수Piling-up . X i(1 ≤ i≤n)가 을 취할 확률이0 p i 을 취할 확률,1

이 1- p i 일 때, X 1⊕X 2⊕⋯⊕X n = 0될 확률은12+ 2 n - 1 ∏

n

i= 1( p i-

12)이다.

증명< > p = P (X 1⊕X 2⊕⋯⊕X n + 1 = 0 )이라고 두자 그러면.

이다 수학적 귀납법을 사용하기 위해.

P (X 1⊕X 2⋯⊕X n = 0 )=12+ 2 n - 1 ∏

n

i= 1( p i-

12)

이라고 가정하자 그러면.

이다 따라서 수학적 귀납법에 의해서 모든 에 대해. n

이다 고로 증명이 완성된다. .

이젠 보조정리를 이용하여 개의 로부터 선형 근사식을 찾아보자 개의Piling-up 2 S-box . 2

의 선형 근사식이 다음과 같다고 하자S-box .

Page 74: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 74 -

a 1⋅x 1=b 1⋅S 1(x 1 ) 근사 확률 a1

a 2⋅x 2=b 2⋅S 2(x 2 ) 근사 확률 a2

두 선형 근사식을 하면xor a 1⋅x 1⊕a 2⋅x 2=b 1⋅S 1(x 1⊕b 2⋅S 2(x 2)이며,보조정리에 의해서 선형 근사식의 근사 확률은Piling-up

12+ 2(a 1-

12)( a 2-

12)이다.

한편 위의 개의 의 선형 근사식을 선형 확률로 표시하면 다음과 같다2 S-box .

a 1 ──→S 1 b 1 선형 확률 pi

a 2 ──→S 2 b 2 선형 확률 p2

단. p i= 4(a i-12) 2(1≤ i≤2)이다 개의 로 구성된 선형 근사식의 근사 확률이. 2 S-box

12+ 2(a 1-

12)( a 2-

12)이므로 선형확률은 다음과 같다, .

즉 개의 의 선형근사로부터 만든 선형 근사식의 선형 확률은 각각의 선형확률의 곱2 S-box

이다 이것은 특성 확률을 계산할 때와 아주 비슷하다 따라서 여러 개의 로 구성된. . S-box

선형근사를 취급할 때 근사 확률을 사용하는 것보다 선형 확률을 사용하는 것이 훨씬 간단

하다.

다시 라운드 선형근사 계산으로 돌아가자 의 에 대한 선형 확률이 다음과 같다1 . nro S-box

고 하자.

a i ──→S i b i 확률 p+ i (1≤i≤n)

그러면 보조정리에 의해서 개의 의 선형근사로부터 만든 선형근사의 선형Piling-up n S-box

확률은 ∏n

i= 1p i 이다 한편 선형변환에 대응되는 행렬의 원소를 또는 로 가정하였으므로. 0 1 ,

선형변환 에 대한 선형확률은 다음과 같다 절 참조L (1 2-2) ).

Page 75: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 75 -

b ─→LbA - 1 확률 1

여기서 는 선형변환 에 대응되는 행렬이며A L n×n A - 1은 의 역행렬이다A .

a = ( a 1,a 2 ,⋯ , a n ),b = ( b 1,b 2 ,⋯ , b n ),S = (S 1,S 2 ,⋯ , S n )라고 두자 그러면 라운. 1

드 선형근사는 다음과 같다.

a ─→Sb ─→L(bA - 1 ) 선형 확률 ∏

n

i= 1p i

위의 라운드 선형근사는 서브 키에 대한 정보가 없는 것처럼 보이지만 서브 키에 대한 정1

보가 포함되어 있다 라운드의 입력을. 1 x = ( x 1,x 2 ,⋯ ,x n ) 출력을,

y = ( y 1,y 2 ,⋯ , y n ) 서브 키를, K 1 = (k 1 (1),k 2 (1),⋯ ,k n (1)), 부분의 출력S-box

선형변환의 입력 을( ) z = ( x 1,z 2 ,⋯ , z n )이라고 두자 그림.[ 2-7]

그림 라운드 구조의 입력 출력 서브 키[ 2-7] 1 , ,

의 선형근사S-box a ─→Sb 확률( ∏

n

i= 1p i 로부터)

a⋅ (K 1⊕x) = b⋅z,

Page 76: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 76 -

의 선형근사L b ─→LbA - 1 확률 로부터( 1)

b⋅z = (bA - 1)⋅y이다 위의 두 개의 선형 근사식을 하면 다음과 같은 라운드 선형근사를 얻을 수 있다. xor 1 .

a⋅ (K 1⊕x) = ( bA - 1)⋅y따라서 앞으로는 선형근사를 간단히 a→b→bA-1로 쓰기로 한다 또 보다 간단한 표현을.

위해 선형변환 에 대응되는 새로운 선형변환 을 정의하자L L' .

정의 선형변환 이[ ] L L(x)=Ax t로 주어졌을 때 선형변환 을, L' L '(x )= (A - 1) tx t로 정

의한다.

의 정의로부터 라운드 선형근사는 다음과 같이 간단히 쓸 수 있다L' 1 .

a b L'(b)→ →

이젠 라운드 선형근사를 살펴보자 개의 라운드 선형근사2 . 2 1

a→b→L 1'(b).c→d→L 2'(d)가 라운드 선형근사가 되기 위해서는2 L 1'(b )= c이어야 한

다 이 때 라운드 선형근사를 다음과 같이 쓰며 라운드 선형근사의 선형 확률은 이. 2 , 2 pq

다.

a→b→L 1'(b) 확률 p

c→d→L 2'(d) 확률 q

라운드 선형근사로부터 라운드 선형 근사식을 얻을 수 있다 라운드의 입력을2 2‘ . 2

x = ( x 1,x 2 ,⋯ ,x n ) 출력을, y = ( y 1,y 2 ,⋯ , y n )라고 두며 첫째 라운드의 출력 즉 둘째, (

라운드의 입력 을) z = ( x 1,z 2 ,⋯ , z n )라고 두자 그리고 첫째 라운드의 서브 키를,

K 1 = (k 1 (1),k 2 (1),⋯ ,k n (1)), 둘째 라운드의 서브 키를

K 2= (k 1 (2),k 2 (2),⋯ ,k n (2)),라고 두자 그림.[ 2-8]

Page 77: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 77 -

그림 라운드 구조의 입력 출력 서브 키[ 2-8] 2 , ,

첫째 라운드의 선형근사 a→b→L 1'(b) 확률 로부터( p)

a⋅ (x⊕K 1)= (L 1'(b))⋅z,둘째 라운드 선형근사 c→d→L 2'(d) 확률 로부터( q)

c⋅ ( z⊕K 2)= (L 2'(d))⋅y이다. L 1'(b )= c이므로 위의 두 개의 선형 근사식을 하면 다음과 같은 라운드 선형xor 2

근사식을 얻을 수 있다.

한편 근사 확률은12±

선형 확률2

이므로 위의 선형 근사식이 성립할 확률은,

12±

pq2이다 선형 근사식의 확률은.

12+

pq2

또는12-

pq2로 정확한 값은 모르

지만 서브 키 값, a⋅K 1⊕c⋅K2를 예측하는 강도는pq2

값이 결정한다 기지평문공격.

을 가정할 때 라운드의 입력과 출력 상에 대해 선형 근사식의(known plaintext attack) 2

왼쪽 식 a⋅x⊕(L 2 '(d))⋅y를 계산할 수 있다.pq2

값이 클수록 서브 키 값

a⋅K 1⊕c⋅K2를 보다 정확하게 예측할 수 있다.

Page 78: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 78 -

따라서 선형근사의 안전성을 논할 때 선형 확률을 사용하는 것이 편리하다 하지만 서브 키.

를 예측하기 위해서는 선형근사 확률이 필요하다.

일반적으로 라운드 선형근사를 정의할 수 있다r .

정의[ ] L i'(B i) = A i+ 1(1 ≤ i≤ r - 1 )을 만족하는 개의 선형근사r

{A i,→B i→L i'(B i),1≤ i≤r}를 라운드 선형근사라고 한다 이 때 라운드 선형근사를r . r

다음과 같이 표현한다.

라운드의 수가 클 경우 선형근사를 찾는 것은 쉽지 않다 이 경우 선형근사를 연결해도 다.

시 선형근사가 되는 작은 라운드의 반복선형근사 을(2, 3, 4) (iterative linear approximation)

찾는 것이 편리하다.

여기서 각 라운드에 사용되는 선형변환은 동일한 것이라고 가정한다 즉. ,

L 1 = L 2= ⋯ = L r= L 이라고 가정한다 따라서. L 1 ' = L 2 ' =⋯ = L r ' = L '이다.

라운드 반복선형근사 둘째 라운드의 출력 값이 입력 값과 같은 라운드 선[2 ] mask mask 2

형근사를 라운드 반복선형근사라고 한다 즉2 . L '(B 1 ) = A 2,L '(B 2 ) = A 1인 조건을 만족

하는 라운드 선형근사이다2 .

위의 라운드 반복선형근사를 번 더 연결하면 라운드 선형근사2 1 4 가 되며 다시 번 더 연, 1

결하면 라운드 선형근사가 된다6 .

Page 79: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 79 -

라운드 반복선형근사 셋째 라운드의 출력 값이 입력 값과 같은 라운드[3 ] mask mask 3

선형근사를 라운드 반복선형근사라고 한다 즉 인3 . L'(B )=A , L'(B )=A ,L'(B )=A₁ ₂ ₂ ₃ ₃ ₁

조건을 만족하는 라운드 선형근사이다3 .

A B L'(B )₁→ ₁→ ₁

A B L'(B )₂→ ₂→ ₂

A B L'(B )₃→ ₃→ ₃

위의 라운드 반복선형근사를 번 더 연결하면 라운드 선형근사가 된다3 1 6 .

라운드 반복선형근사 넷째 라운드의 출력 값이 입력 값과 같은 라운드[4 ] mask mask 4

선형근사를 라운드 반복선형근사라고 한다 즉4 . L'(B )=A , L'(B )=A , L'(B )=A ,₁ ₂ ₂ ₃ ₃ ₄

인 조건을 만족하는 라운드 선형근사이다L'(B )=A 4 .₄ ₁

A B L'(B )₁→ ₁→ ₁

A B L'(B )₂→ ₂→ ₂

A B L'(B )₃→ ₃→ ₃

A B L'(B )₄→ ₄→ ₄

위의 라운드 반복선형근사를 번 더 연결하면 라운드 선형근사가 된다4 1 8 .

Page 80: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 80 -

제 절 블록 암호 알고리즘 구조2

본 절에서는 안전성이 증명 가능한 새로운 비트 블록 암호알고리즘을 제안하고자128 SPN

한다 블록 암호는 서브키와의 덧셈부분 부분 그리고 선형변환으로 구성되어 있. SPN ,S-box

으므로 안전한 블록 암호가 되기 위해서는 좋은 와 좋은 선형변환을 설계하여야 한, S-box

다 또 서브키에 취약점이 없기 위해서는 서브 키 생성 알고리즘도 잘 설계하여야 한다. .

비트 블록 암호의 라운드 구조는 비트 서브 키 바이트 개의 그리128 1 128 (16 ), 8 8×8 S-box

고 선형변환 행렬 으로 구성된다 그림(16×16 ) [ 2-9].

그림 라운드 구조[ 2-9] 1

암호화 및 복호화 하는데 필요한 메모리를 최소화하기 위해 는 모두 같으며 각 라운S-box ,

드의 선형변환도 모두 같다 특히 복호화 알고리즘에서 필요한 메모리를 최소화하기 위해.

선형변환과 역 선형변환이 같게끔 설계 하고자 한다 또 비트 블록 암호의 라운드의 수. 128

는 이며 마지막 라운드는 그 이전 라운드와 달리 한 번 더 서브키와의 를 하였다 그10 , xor . [

림 2-10]

Page 81: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 81 -

비트 블록 암호의 특징을 요약하면 다음과 같다128 .

전체적인 구조(1)

구조 구조0 : SPN

입력 출력 크기 비트0 , : 128

라운드의 수0 : 10

총 서브키의 크기 바이트 비트0 : 11*16 (1,408 )

와 에 안전한 블록 구조0 DC LC

부분(2) S-box

한 종류의0 8×8 S-box

와 에 안전한0 DC LC S-box

선형변환(3)

행렬 행렬 의 원소는 또는 로 구성0 (16×16 ) 0 1

선형변환과 역 선형변환은 동일0

와 에 안전한 선형변환0 DC LC

Page 82: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 82 -

그림 암호화 과정[ 2-10]

Page 83: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 83 -

그림 복호화 과정[ 2-11]

Page 84: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 84 -

1. S-box

블록 암호의 라운드에 개의 가 사용되나 암호화 및 복호화시 필요한 메모리의1 16 S-box ,

양을 최소화하기 위해 동일한 를 사용하고자 한다 또 블록 암호 공격의 시작은S-box .

의 취약성을 이용하므로 를 안전하게 설계하고자 한다S-box , S-box .

는 다음과 같은 원칙에 의해서 설계하고자 한다S-box .

의 설계 원칙[S-box ]

전단사 함수 되게 한다(1) .

그리고 고계차분공격에 안전하게 한다(2) DC, LC .

고정점이 없게 한다(3) .

위의 의 설계 원칙을 만족시키기 위해 먼저S-box {0,1} 8을 갈로아 체로 만든다 갈로아 체로.

만들기 위해서는 차 기약 다항식이 필요하며 차 기약 다항식으로8 , 8 m(x)= x 8+ x 6+ x 5

+ x 4+1( 171 x 에 대응 을 선택한다=369 ) .

먼저 갈로아 체 {0,1} 8 상의 덧셈과 곱셈에 대해 살펴보자. {0,1} 8의 원소는 차 이하의7

다항식에 대응된다1-1 . α∈ {0,1} 8는 ( a 7 , a 6 , a 5 , a 4 , a 3 , a 2 , a 1 , a 0 으로 쓸)

수 있다 여기서. a 7은 이며MSB(most significant bit) , a 0은 이LSB(least significant bit)

다 따라서 는 차 이하의 다항식. 7α a 7 x7+

a 6 x6+ a 5 x

5+ a 4 x4+ a 3 x

3+ a 2 x2+ a 1 x

1+ a 0에 대응된다. {0,1} 8

상의 두 원소의 덧셈은 대응되는 다항식의 덧셈에 대응되는 값이다 그리고. {0,1} 8 상의 두

원소의 곱셈은 법 m(x) 하에서 대응되는 다항식의 곱셈에 대응되는 값이다.

갈로아 체[ GF ( 2 8 ) 상의 덧셈]

Page 85: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 85 -

a = ( a 7 , a 6 , a 5 , a 4 , a 3 , a 2 , a 1 , a 0 )∈ G F ( 28 )

b = ( b 7 , b 6 , b 5 , b 4 , b 3 , b 2 , b 1 , b 0 )∈ GF ( 28 )

따라서 갈로아 체 GF ( 2 8 ) 상의 덧셈은 두 원소의 이다즉 이다bitwise xor . +b= b .α α⊕

갈로아 체[ GF ( 2 8 )상의 곱셈]

따라서 갈로아 체 GF( 2 8 상의 곱셈은 간단하지 않다) .

예 와[ ] 2 b8 x의 곱셈

는 다항식2 x에 대응되며, b8 x은 다항식 x 7+ x 5+ x 4+ x 3에 대응된다 따라서.

이다 고로. 2×( b8 x)= 1

이젠 갈로아 체 GF ( 2 8 ) 상에서 정의된 함수를 고려해 보자 다음 함수는 전단사 함수가 아닐.

수 있다.

GF( 2 8)→GF( 2 8 ):x↦ x k

Page 86: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 86 -

그러나 gcd ( k , 2 8 - 1 ) = 1인 k를 선택하면 위의 함수는 전단사 함수가 된다.

한편 짝수 차원 {0,1} m( m은 짝수 상에서 정의된 에 대해) S-box , Δ s=

max a,b≠0 λ s ( a,b )≥ 2 m(즉 DP S≥ 4

2 m )이다 따라서 최대차분확률과 최대선형확률.

이 각각1

2 6인 를 선택하면 는 와 에 안전하다 그리고 고계차분공격S-box S-box DC LC .

에 안전하기 위해서는 의 성분함수 모두 개 의 대수(higher order differential attack) S-box ( 8 )

적 차수가 커야 한다.

갈로아 체 GF( 2 8 상에서 정의된 함수) x k 중

가 전단사( ) ,

나( ) DP sm ax =

1

2 6,

다( ) LP sm ax =

1

2 6

라( ) deg ( s ) = m in i deg ( f i ) = 7 (단 ,S = ( f 1 , f 2 , f 3 , f 4 , f 5 , f 6 , f 7 , f 8 ) ),을 만

족하는 함수는 개 존재한다8 (Moriai(1998)).

x 127 , x 191 , x 223 , x 239 , x 247 , x 251 , x 253 , x 254 = x - 1

따라서 갈로아 체 GF( 2 8 상에서 정의된) x - 1은 전단사이면서 그리고 고계차분공DC, LC

격에 안전한 함수이다 그러나 함수. x - 1은 을 을 로 대응시켜 개의 고정점0 0, 1 1 2 (fixed

이 생긴다 이 문제를 해결하기 위해point) . {0,1} 8 상의 변환을 다시 작용한다affine . Affine

변환은 전단사 그리고 차수 의 성질을 변화시키지 않는다, DC, LC (degree) .

따라서 본 블록 암호 알고리즘에서 사용되는 는 다음과 같이 설계한다S-box .

Page 87: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 87 -

의 설계[S-box ]

가( ) m (x ) = x 8+ x 6+ x 5+ x 4+ 1 ( 171 x에 대응 을 이용하여) GF( 2 8 )설계

나 갈로아 체( ) GF( 2 8 )상에서 변환 x - 1 = x 254 선택

다 다시( ) {0,1} 8 상에서 변환 작용affine

위의 변환시 사용된 행렬은 대칭행렬affine (즉 A = A t )이며 non-singular (det(A)≠0)이E

다 그 역행렬은 다음과 같다. .

역행렬 역시 대칭행렬이다 또. x 0 ( y 0 )은 이며LSB x 7 ( y 7 )은 이다 따라서MSB . affine

변환을 다음과 같이 간단히 쓸 수 있다.

여기서 는ㆍ Z 2 상에서 계산된 두 벡터의 내적이다 따라서 는 다음과 같다. S-box .

Page 88: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 88 -

이젠 의 값을 구체적으로 계산해 보자S-box . 0 - 1 이므로=0 S(0)=(1,0,1,0,0,0,1,1)=

a3 x=163이다. 1-1 이므로= 1

이다 따라서. S(1)= da x 이다=218 . 2 - 1 = b8 x이므로

이다 따라서. S(2)= 92 x 이다 구체적인 는 다음 표와 같다=146 . S-box .

Page 89: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 89 -

표< 2-3> S-box

선형 변환2.

와 에 안전성이 우수한 선형변환 행렬 을 설계하기로 한다 구조에서 선형DC LC (16×16 ) . SPN

변환이 에 얼마나 안전한지를 측정하는 기준은 관점에서의 의 개수이DC DC active S-box

다 관점에서의 의 개수를 많게 하는 선형변환은 에 안전하다 에 대. DC active S-box DC . LC

해서도 와 비슷하다 구조에서 선형변환이 에 얼마나 안전한지를 측정하는 기준DC . SPN LC

은 관점에서의 의 개수이다 관점에서의 의 개수를 많게LC active S-box . LC active S-box

하는 선형변환은 에 안전하다LC .

Page 90: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 90 -

구조에서 두 개의 다른 평문을 입력했을 때 입력 차분이 이 아닌 를 관점SPN 0 S-box DC

에서의 라고 한다 그리고 구조에서 출력 값이 이 아닌 를active S-box . SPN mask 0 S-box

관점에서의 라고 한다 구조에서 사용되는 는 전단사 함수이므LC active S-box . SPN S-box

로 입력 차분이 일 필요 충분 조건은 출력 차분이 이다 또한 출력 값이 일 필요, 0 0 . mask 0

충분 조건은 입력 값이 이다 따라서 출력차분이 이 아닌 를 관점에서의mask 0 . 0 S-box DC

라고 정의할 수 있으며 입력 값이 이 아닌 를 관점에서의active S-box , mask 0 S-box LC

라고 정의할 수 있다active S-box .

라운드 구조에서 차분 특성과 선형근사를 고려할 때 첫째 라운드의 선형변환에 의2 SPN

해서 가 결정되며 둘째 라운드의 선형변환은 의 개수를 결정하‘ active S-box , active S-box

는데 아무런 역할을 하지 않는다 따라서 라운드 구조에서 의 개수는. 2 SPN active S-box

다음과 같이 정의할 수 있다.

정의 라운드 구조일 때 관점에서의 의 개수[ ] 2 SPN , DC active S-box. n d 와 관점에(A) LC

서의 의 개수active S-box n t 는 각각 다음과 같이 정의한다(A) .

여기서 는 라운드 구주의 첫째 라운드에 작용하는 선형변환인 이A 2 SPN n×ngodfuf

며.wt(x)는 x의 이다 즉hamming weight . x = ( x 1 , x 2 ,… , x n )∈ ( Z m2 )

n일때wt(x)=#

{1≤i≤n∣ x i≠0}이다.

관점에서의 의 개수가 많을수록 차분 특성 확률은 작아진다 따라서DC active S-box . DC

관점에서의 의 개수가 많을수록 라운드 구조는 에 안전하다 같은active S-box 2 SPN DC .

방법으로 관점에서의 의 개수가 많을수록 선형 확률은 작아진다 따라서LC active S-box .

관점에서의 의 개수가 많을수록 라운드 구조는 에 안전하다LC active S-box 2 SPN LC .

Page 91: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 91 -

등 은 블록 암호를 설계할 때 와 관점에서 의 개수를 가Kanda (1999) E2 DC LC active S-box

장 많게 하는 행렬을 찾았다 그들의 탐색 알고리즘은 행렬을 찾는데 만 사용할 수8×8 . 8×8

있게 되어 있다 그들의 알고리즘은 고려해야 할 경우의 수가 많아서 행렬을 찾는데 사. 9×9

용할 수 없다 최근 성수학 등 은 의 개수를 많게 하는. (2000) active S-box n×n 행렬을 찾는

알고리즘을 제시하였다.

정리. n d (A )= m in 1≤k≤ n n dk (A )이다 여기서. n dk (A )는 다음과 같다.

정리의 증명은 성수학 등 을 참조하기 바란다 위의 정리를 이용하여(2000) . n d ( A )≥T인

n×n 행렬 A를 찾는 알고리즘을 설계할 수 있다. T(2≤T≤n+ 1)는 문턱값 이다(threshold) .

[nd 인 행렬(A) T≥ A 를 찾는 알고리즘]

단계 열벡터의 가1. hamming weight T - 1 이상인 n×n 행렬 A를 임의로 선택한다.

단계 2. rank (A )를 계산한다 만일. rank(A )≠n이면 단계 로 간다1 .

단계 3. k 를 부터. 1 n까지 움직여 다음을 계산한다.

단계 3-1. n dk (A )를 계산한다 .

단계 만일3-2. n dk (A ) < T이면 단계 로 간다1 .

단계 4. n×n인 행렬 A와 n d ( A )를 출력한다.

Page 92: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 92 -

위의 알고리즘에서 단계 은1 n d1 (A )≥T 를 의미한다 이 과정은 단계 에서도 수행하나 후. 3

보 행렬을 빨리 찾기 위해 단계 에서 수행한다 즉1 . n d1<T행렬은 단계 의 조건을 만족하지1

않으므로 단계 를 수행할 필요가 없어 후보 행렬을 빨리 찾을 수 있다 단계 에서는 역 행렬2 . 2

역 선형변환 의 존재성을 조사한다 위의 알고리즘으로 수행한 결과 출력이 없으면( ) .

n d = m ax A n d ( A )는 T보다 작다. T를 n + 1 , n , n - 1 , . . .로 변화시켜 가면서 위의

알고리즘을 적용하면 n d = m ax A n d ( A )인 n×n 행렬 A를 찾을 수 있다 한편.

n 1 ( A ) = n d ( At ) 이므로 관점에서 의 개수를 가장 많게 하는 행렬도 위LC active S-box

의 알고리즘으로 찾을 수 있다 또. ( A A - 1 )t= ( A - 1 )

tA t이므로 행렬 A가 역행렬을

가질 필요 충분 조건은 A t가 역행렬을 가지는 조건이다 따라서.

이다 즉 관점에서의 의 최대 개수. DC active S-box n d와 관점에서의 의 최LC achve S-box

대 개수 n l같다 그러나 행렬. A 에 대해 n d (A )와 n l ( A ) 는 다를 수 있다.

위의 알고리즘을 이용하여 와 에 안전한 선형변환을 설계할 수 있다DC LC .

선형변환의 설계[ ]

선형변환의 설계 원칙은 다음과 같다.

선형변환과 역 선형변환은 같다(1) .

및 관점에서 의 개수가 가장 많다(2) DC LC active S-box .

위의 설계 원칙을 만족하는 n×n 행렬 선형변환 중 하나를 선택한다( ) .

Page 93: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 93 -

우리가 설계한 행렬 선형변환 의 특징은 다음과 같다( ) .

선형변환과 역 선형변환은 같다 즉(1) . A - 1 = A 이다.

(2) n d ( A ) = n l ( A ) = 9이다.

대칭 행렬이다 즉(3) . A t = A 이다.

각 행 벡터 또는 열벡터의 는 이다(4) hamming weight 9 .

선형변환의 입력을 x 1 , x 2 , .. , x 1 6라고 하고 선형변환의 출력을 y 1 , y 2 , . . . , y 1 6라고

하자 그러면. y 1 , y 2 , . . . , y 1 6 는 선형식으로 쓸 수 있다

Page 94: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 94 -

이를 그림으로 표시하면 다음과 같다.

키 스케줄 구조3.

키 스케줄은 알고리즘 외부에서 입력된 비트키로 부터 키 스케줄을 통하여 비트 라128 128

운드 개를 생성한다 키의 각 비트가 라운드키 생성에 골고루 참여해야 하며 상관키 공격11 .

에 견딜 수 있도록 라운드키 사이에 연관관계가 적어야 한다.

Page 95: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 95 -

이러한 목적을 달성하면서 쉽게 구현될 수 있는 방법으로 그림 과 같이 비트 키를[ 2-12] 8

비트별 논리합, 2 8 을 법으로하는 덧셈 연산 및 2 8+ 1 을 법으로 하는 곱셈연산을 교번으로

엮어서 초기 랜덤화하는 과정과 랜덤화된 키를 좌측으로 비트 회전시키면서 라운드 키를 생5

성하는 과정으로 구성된다.

키 스케줄에 의하여 생성된 각 라운드 키 비트는 암호 알고리즘에 입력되는 비트128 128

전체의 영향을 받으며 상수 모듈라 곱셈과 덧셈 가 서로 교번되면서도 고속으로 동작, , XOR

할 수 있는 구조로 설계하였다.

이러한 키 스케줄 설계는 와 같은 단순 구조의 키 스케줄이 암호학적으로 취약할 수DES

있다는 최근 연구 결과 에 근거한 상관 키공격 에 안전하다[23] (related-key cryptanalysis) .

키 스케줄에는 키 정보를 변화시키는데 모두 개의 비트 상수, 18 8

c 1 , c 2 , c 3 , c 4 , c 5 , c 6 , c 7 , c 8 , c 9 , c 10 , c 11 , c 12 , c 13 , c 14 , c 15 , c 16 , c 17 , c 18

를 사용하는데, π 2 - 9의 소수점 이하 비트로 구성된다 참고로112 . π 2 = 9.869604 ...이다.

구체적인 키 스케줄의 동작 과정 설명을 단계별로 기술하면 다음과 같다.

입력 키 비트: 128 (key[15], key[14], key[13], , key[1], key[0])…

Page 96: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 96 -

그림 키 스케줄 과정[ 2-12]

Page 97: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 97 -

단계 각 라운드 키를 생성하기 이전에 비트 키 와 비트 상수 를 비트별 논리합1. 128 K 128 C

한다(X0R) .

단계 로 한다2. i=1 .

단계3.

단계 라운드 키 상호간에 독립성을 증가시키고 키 정보를 랜덤화 시키기 위하여 다음[ 3-1]

과 같은 비트 내장상수8

c 1 , c 2 , c 3 , c 4 , c 5 , c 6 , c 7 , c 8 , c 9 , c 10 , c 11 , c 12 , c 13 , c 14 , c 15 , c 16 , c 17 , c 18

를 사용한다 여기서 내장상수는 임의로 선택한 값( ).

Page 98: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 98 -

단계 생성한다[ 3-2] Tempkey[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] .

Page 99: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 99 -

단계 키 블록 선택 정보[ 3-3] Select[i]( i = 생성한다1,2, ... , 10) .

Page 100: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 100 -

Page 101: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 101 -

Page 102: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 102 -

단계 4. RK1[0], RK2[0], RK3[0], RK4[0], RK5[0], RK6[0], RK7[0], RK8[0], RK9[0], RK10[0],

RK11[0], RK12[0], RK13[0], RK14[0], RK15[0], RK16 을 생성한다[0] .

Page 103: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 103 -

단계 단계 에서 생성한5. 3.

내장상수Tempkey[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15], C3, C4, C5, C6, C7, C8, C9, C10, C11,

C12, C13, C14, C15, C16, C17, C18를 사용 선택 치환 을 이용하여 라운드키를 생성하는Select[i] ,

과정으로 다음의 과정을 반복적으로 수행하여 라운드 키 RK1[i], RK2[i], RK3[i], RK4[i],

RK5[i], RK6[i], RK7[i], RK8[i], RK9[i], RK10[i], RK11[i], RK12[i], RK13[i], RK14[i], RK15[i],

RK16[i]( i 를 생성한다=1,2,...,10) .

T e m p k e y [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 , 1 1 , 1 2 , 1 3 , 1 4 , 1 5 = Lrot t

(tempkey[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],

Page 104: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 104 -

단계 에서 사용되는 비트 상수 는 고정된 값이며 진수로 표현하면 다음과 같다1. 128 C 16 .

단계 의 의미는 키를 랜덤화시키는 역할을 한다 물론 키가 랜덤하다면 큰 의미는 없으나1 . ,

특별히 키의 크기가 작은 경우에도 비트를 모두 사용하도록 한다 또한 랜덤 상수를 사128 .

용하는 이유는 키의 모든 비트가 또는 인 경우에도 출력되는 라운드 키 사이에 연관'0` ‘1'

관계가 적도록 하는 역할을 한다.

Page 105: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 105 -

그리고 단계 의 순환 쉬프트는 각 라운드 키에 참여하는 비트의 위치를 바꾸어 주는3.

역할을 수행한다 각 비트인 와 를 입력으로 하여 비트를 비선형 출력하는 곱셈 연산과. 8 a b 8

같으며 각 라운드키의 연관관계에 비선형성을 주어 상관키 공격에 강하게 하는 의미를

지닌다.

암호 알고리즘의 키 스케줄에서 사용한 2 8+1 을 법으로 한 모듈러 연산은 2 8+ 1이

소수 라는 사실을 이용하여 을(Prime number) 0 2 8으로 간주하여 다음과 같이 일대일 특성을

만족하게 정의하며 비트 쉬프트와 마스크로 쉽게 구현할 수 있다.

Page 106: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 106 -

논리 구조4.

가 모듈라 곱셈과 모듈라 덧셈.

본 스케줄에서 사용되는 논리 함수는 모듈라 곱셈과 모듈라 덧셈을 상호 보완적으로 결합한

구조로서 서로 다른 군상의 연산을 혼합 사용하는 것은 암호학 적으로 안전하다는 사실을, ,

바탕으로 한다 본절에서는 먼저 암호 알고리즘에 사용된. 2 16+1모듈라 곱셈과 2 16 모듈라

덧셈의 구현 방법을 소개하고 두 연산을 혼합 사용한 경우의 특성을 설명한다, , .

나 구현 방법.

2 16+1 모듈라 곱셈은 프로세서가 제공하는 일반적인 곱셈 덧셈 뺄셈 연산으로 정리와 같이, ,

쉽게 구현 할 수 있다.

정리 임의의. x,k∈ Z⋅2 16 +1

에 대하여 다음이 성립한다.

즉, 2 16+1 모듈라 곱셈은 x×k의 최하위 비트를 취하는 연산인16 x×k mod2 16를 x×k오른

쪽으로 비트 쉬프트 시키는 연산인16 [ x×k2 16 ]로 구성된다 한편. 2 16 모듈라 덧셈은 비트16

정수간의 덧셈 결과 중 최하위 비트만 취하는 간단한 논리로 구현된다, 16 .

본 알고리즘에서 사용하는 연산 은 ( 2 16+1 을 법으로 하는 모듈라 곱셈 연산에 기반을 둔)

연산으로 다음과 같이 정의된다.

Page 107: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 107 -

다 특성. .

키 스케줄 구조에서 사용되는 논리 함수는 모듈라 곱셈과 모듈라 덧셈을 혼합 반복 사용하

는 구조이다 본 절에서는 모듈라 곱셈과 덧셈을 혼합 사용한 경우의 대수적 성질을 알아본. ,

다 먼저 몇 가지 용어를 정의한다. .

정의 집합[ ] S위의 연산 가 다음 두 조건을 만족할 때 를 준군 이라 한,(S, ) (quasiguoup)○ ○

다.

1. a,b S a∈ ⇒ ○b S∈

2. a,b S a∈ ⇒ ○ 그리고b = b y○ 는 모두 위의 오직 한 근만을 갖는다a=b S .

정의 두 준[ ] ( S 1 , * ),( S 2 , ○ 에 대하여 전단사 함수)

가 존재하여

을 만족할 때 두 준군은 서로 등방성 이라고 정의한다, (isotopic) .

정의[ ] Z *2 n + 1

에서 Z2 n 위로의 직접함수 는 다음 같이 정의된 함수이(direct mapping)

다.

Page 108: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 108 -

다음 정리는 다음 세 개의 군 사이의 상반성 을 시사한다(incompatibility) .

정리. n∈{1,2,4,8,16} 때 세 개의 준군,

에 대해 다음이 성립한다2 .

(1) n≥2인 경우에 두 준군 ( Z n 2 ,⊕ ) , ( Z 2 n ,+ )는 서로 등방성이 아니다.

(2) n≥2인 경우에 두 준군 ( Z n 2 ,⊕ ) , ( Z * 2 n+ 1 ,⋅ )는 서로 등방성이 아니다.(3) ( Z *

2 n+ 1,⋅ )에서 ( Z

2 n ,+ )으로의 전단사함수( θ,Φ,ψ 가 등방사 상이기 위한)

필요충분 조건은 다음과 같다.

c 1 , c 2∈ Z2 n과 생성원(generator) a∈ Z *

2 n+ 1이 존재하여 다음을 만족한다.

즉 두 군 사이의 동방사상은 본질적으로 로그함수이며 더욱이 어느 세 개의 등방사상, ,

( θ,Φ,ψ 도 직접 함수가 아니다) .

정리. n∈{2,4,8,6}일 때 고정된, a∈ 22 n+1

- { 0, 2 n }에 대해 모듈라 2 n+ 1 대응하는

함수 f(a,y )는 체(field) Z2 n + 1

위의 y변수 2 n - 1차 다항식이다.

Page 109: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 109 -

정리. n∈{2,4,8,6}일때 고정된, a∈ Z2 N- {0,1}에 대해 모듈라 2 n+ 1 곱셈에 대응하

는 함수 g(a,x)= ax×mod 2 n+1는 환 (ring) Z2 n 위에서의 다항식으로 표현 할 수 없다.

위 정리를 종합하여 우리는 논리 함수의 대수적 성질에 관한 다음과 같은 결론을 얻는다.

모듈라 곱셈과 모듈라 덧셈의 등방사상은 본질적으로 직접함수가 아니기 때문에 논리(1)

함수를 하나의 연산으로 취급하여 공격하는 방법은 불가능하다.

직접함수(2) d와 역함수 d - 1을 이용하면 모듈라 곱셈과 모듈라 덧셈을 같은 집합 환(

Z2 n혹은 체 Z

2 N + 1에서 고려할 수 있는데 모듈라 곱셈은) , Z

2 16의 다항식이 아니고 모

듈라 덧셈은 Z2 16 + 1

위에서 Z2 16 - 1

차의 다항식에 대응하기 때문에 두 연산은 다항식 형

태로 나타내는 것은 어렵다.

Page 110: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 110 -

제 절 암호 알고리즘 구조3 CUBE

알고리즘 소개1.

가 알고리즘 사양.

블록 크기 비트- : 128

키 길이 최대 비트 비트 비트- : 264(Q:72 , F:192 )

라운드 수 라운드- : 12

사용 연산 를 의 하위- : (XOR), a b(a b≪⊕ log 2 a 비트만큼 비트 순환)

나 알고리즘 구조.

알고리즘 전체 구성은 비트의 평문 블록 단위당 비트의 키로부터 생성된 비트의128 128 264

라운드 키를 입력받아 함수와 함수의 반복구조로 총 라운드에 걸쳐서 암호문을 출력한Q F 12

다.

다음은 함수와 함수의 반복을 통한 전체 알고리즘을 보여준다 함수는 작은 함Q F CUBE . F f

수 네 개의 순차적인 적용으로 이루어졌으며 과 은 첫 라운드pre-whitening post-whitening

와 마지막 라운드에만 있는 과정이다.

Page 111: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 111 -

그림 전체 알고리즘 구조[ 2-13]

전체 구조를 형성하고 있는 각각의 함수 구성은 아래와 같다.

함수(1) Q

각 네개의 바이트를 바이트씩 오른쪽으로 로테이션 시킨 후 앞에서부터 비트 개의 바이1 8 3

트 를 입력으로 받아 각 면에 비트단위로 비트를 입력하고 키에서(a,b,c) 4 ×4 ×4 cube(Q) 4

비트씩을 받아 각 띠의 의 양을 결정하여 축 축 축의 순으로 시킨 후 입3 rotation z ,y ,x rotation ,

력한 순서대로 각 비트 개의 워드8 3 ( a ' , b ' , c ' 를 출력한다 즉 암호화 과정에서 비트) . , 24

평문과 비트 키를 함수의 입력 값으로 처리하여 비트를 출력으로 내보낸다18 Q 24 .

Page 112: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 112 -

그림 함수 구조[ 2-14] Q

그림 함수 전개도와 입력순서[ 2-15] Q

예를 들어 만일 키가 이라면 가 되어 결과는K=001010000111010000 K=(1,2,0,7,2,0)

Page 113: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 113 -

그림 함수의 예[ 2-16] Q

그림과 같이 된다 즉. , a = a 1 , a 2 . . . a 8 , b = b 1 , b 2 ... b 8 , c = c 1 , c 2 . . . c 8가 위

와 같은 함수를 거쳐Q a '= a 2 b 5 c 3 c 1 a 6 c 5 c 7 c 8 ,

b '= a 7 c 2 b 3 b 2 a 1 a 4 b 4 b 8 , c'= b 6 a 5 b 7 a 8 c 6 b 1 a 3 c 4의 출력 값을 갖

는다 이와 같은 과정을 한 번 더 수행하여 각 비트가 비트의 어떤 위치에도 존재할 수 있도록. 32

한다.

함수(2) f

비트 워드는 각각 네 개의 바이트32 ( P 1 , P 2 , P 3 , P 4 로 구성되어 있다 각) . P i는 키와

한 후 함수를 통과시켜주고 다음 데이터와 다시 를 한다XOR Bi XOR .

Page 114: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 114 -

그림 함수 구조[ 2-17] f

함수는 비트 입력을 받아 상위 번째와 번째의 비트 단위 배타적 논리합Bi 8 3 4

(P[4]⊕P[5])이 인 경우 연속하는 두 비트가 이면 으로 바꾸어주는 함수를 적용시1 01 10 Bizz

키고 인 경우 연속하는 두 비트가 이면 으로 하는 함수를 쓰고 그 출력값을 입력 데0 10 01 Biss ,

이터와 의 한 값의 하위 비트를 진수로 읽어 량을 결정하는 함수이다key xor 3 10 rotation .

여기서 P i , C i , K i는 각 비트이다8 .

Page 115: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 115 -

다 키 스케줄 알고리즘.

키 스케줄 알고리즘은 이진 트리 구조로 이루어져있다 한 개의 비트 워드에(binary tree) . 32

서 두 개의 부분 키를 생성하는 방법을 반복하여 암호화 및 복호화에서 사용될 키를 생성한

다.

기호(1)

- K, X, Y,.. : 비트 단위의 워드32

- K ( i ) : i 레벨의 부분 키

- :π⒭ i 레벨에서 생성된 부분 키의 개수

- ㆍ 행렬 곱:

알고리즘(2)

사용자가 정의한 임의의 크기의 키를 을 통해 비트를 만든 후 형태padding 128 Binary tree

로 아래의 과정을 반복하여 비트의 를 생성한다 에 필요한 키를 모두128 sub-key . 12 round

생성하기 위해서는 가 이면 된다Binary tree 5 leyel .

우리가 필요한 키의 비트 수는 전체 비트를 고려했을 때 각 라운드 당 비트이고( 128 264 12

라운드만큼 돌려야 하므로 비트이다 첫 라운드와 마지막 라운드의264×12=3,168 .

과 를 고려한다고 해도 비트의 초기의 키를 레벨 진행시키pre-whitening post-whitening 128 5

면 128× 2 5 비트이므로 충분하다=4,096 .)

(3)

여기서,

Page 116: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 116 -

(4)

(5)

여기서,

평문 비트에 대해 비트단위로 각 라운드의 를 거치게 되므로 평문의 첫 번째128 32 12 CUBE

비트를 라운드 거치는데 필요한 키를 키 스케줄 레벨에 의해 생성된 비트의 키32 12 5 4,096

를 순서대로 가져다 쓰고 평문의 두 번째 비트를 라운드 거치는데 필요한 키를 아직 사32 12

용하지 않은 비트 중의 키 중에 역시 순서대로 가져다 사용한다4,096 .

여기서 P i , X i , Y i , C i는 각 비트이며8 K는 비트로 전체 비트 암호문을 얻기 위32 128

해선 위와 똑같은 형태로 쌍 개 이 필요하다 즉 평문 비트를 비트 단위로 끊어서 각2 (4 ) . , 128 32

비트를 위의 그림 의 과정으로 암호화한다32 [ 1] .

Page 117: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 117 -

각 라운드 구성 함수의 특징2.

가 함수. Q

함수는 일종의 순열이다 여러 라운드가 결합되었을 때 차분 분석에 사용되는 높은 확률을Q .

갖는 반복 특성을 찾기 어렵게 만든다 지난해 안전성 증명 가능한 블록 암호알고리즘 개발.

에서 제안 되었던 함수에 비교해 지금의 는 그 크기를 축소 시켰다 왜냐하면 큰 사(1) Q Q . ,

이즈의 는 한 라운드에서 한번 작용하므로 지역적인 변화가 작다는 단점이 있었으며 그Q ,

로 인해 함수 맞물려 생각해 볼 때 특정한 차분에 대해서 고정되는 경우가 발생해 공격자F

에게 약점으로 드러나므로 이를 보완하고자 작은 사이즈의 로 수정하게 되었다Q .

나 함수. f

함수는 함수와 데이터의 배타적 논리합으로 구성되어 있고 함수를 보면 나 와f Bi Bi Bizz Biss

데이터 의존 로테이션으로 구성되어 있다 나 는 을 각각 로 바꾸어 주. Bizz Biss 01, 10 10,01

는 함수이므로 국지적으로 확산을 시켜주고 이것을 다시 데이터 의존 로테이션을 통해 전체

적으로 확산을 시켜주게 된다 이렇게 지역적 전체적으로 영향을 주는 함수의 연결은 전체. ,

적으로 확산 효과를 주는 함수 한 개를 사용하는 것에 비해 확산의 효과가 더욱 크게 나타

나게 된다 치환 효과는 데이터의 배타적 논리합을 이용하여 나타난다 이 자체로는 치환의. .

효과가 적을 수 있으나 계속적으로 함수에 의해 영향을 받음으로써 충분한 치환이 나타난Bi

다 함수에서와 같은 이유로 함수 내부의 함수 번 연산을 번으로 증가 시켰다 두 번. Q f Bi 4 6 .

의 를 더 연산함으로서 마지막 바이트와의 관계를 주게 된다 덕분에 함수와 맞물려서Bi . Q

보여지던 고정 차분을 방지하게 되었다.

Page 118: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 118 -

다 함수. F

함수와 함수가 비슷해 보이지만 차이점이 있다 함수에서는 첫번째 바이트를f F . f B 6 와 B 1

의 입력으로 그냥 보내지만 함수에서는 일단 첫 번째 워드를 함수를 취해준 후 다른 데이터F f

와 를 해주게 된다XOR .

안전성 분석3.

가 차분 분석.

여기에서는 비트 워드의 연속된 두 비트만이 이면서 네 개의 바이트 중 어느32 non-zero

하나의 상위 비트가 이 되는 을 계산하는 과정을 고찰한다 왜냐 하면2 1 differential . 8bit Bi

함수를 실행하였을 때 가장 높은 확률을 갖는 경우는 입력 차분이 출력 차분이0x c0, 0x

인 경우로 확률 을 가지므로 함수를 실행시켰을 때 가장 높은 확률을 갖는 경우는00 1/4 F

워드의입력차분이 중하나이고 각각0x c0000000, 0x OOcO0000,0x0000c000, 0x 000000c0 ,

에 대응하는출력차분이 가되는경0x c0000000, 0x 00c00000, 0x 0000c000, 0x 000000c0

우로 확률 을 갖게 된다 함수는 비트의 개수가 비트의 수와 같아질수록1/4 . Q non-zero zero

확률이 떨어지므로 비트 개수가 적거나 많은 것을 생각해야 하는데 비non-zero non-zero

트가 한 개인 경우 함수에 의해 생성되는 출력 차분이 비트를 개 또는 개 갖F non-zero 1 2

는 경우의 확률은 각각1

2 4.5,1

2 7.5이 되고 함수의 확률은Q

1

2 5보다 작으므로 입력되

는 비트 평문의 각 워드의 차분이 한 바이트의 상위 두 비트가 인 경우128 non-zero 0x

를 입력으로 생각했을 때 가장 높은 확c0000000, 0x 00c00000, 0x 0000c000, 0x 000000c0

률을 주게된다 입력이 중 어는 모. 0xc0000000, 0x 00c00000, 0x 0000c000, 0x 000000c0

양이라도 확률은 같게 되므로 워드를 상위 두 비트가 인 로 생각 하도록non-zero 0x c0000000

한다.

Page 119: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 119 -

따라서 전체 라운드를 실행하였을 때 가장 높은 확률을 주는 경우를 구해보면12 (0x

가 입력되어00000000, 0x c0000000, 0x c0000000, 0x c0000000) (0x c0000000, 0x

의출력차분을얻는경우이다 이것은 비트입력차00000000,0x 00000000, 0x c0000000) . 128

분을 네 개의 워드 ( W 1 , W 2 , W 3 , W 4 , 로 나타내었을 때 여기서 각 워드) ( W i 는, 0x

c0000000, i 모든 비트가 인 평문을 제외한 모든 가능한 입력의 경우는 가지=1,2,,3,4) zero 15

이고 어떤 모양의 입력 차분이 들어가더라도 라운드마다 반복된다는 사실을 알 수 있고 이로5

부터 가장 높은 확률을 주는 입력 차분과 출력 차분을 찾은 것이다 입력 차분이. (0x

이면00000000, 0x c0000000, 0x c0000000, 0x 00000000) (0x 00000000, 0x 00000000,

0x c0000000, 0x 00000000), (0x c0000000, 0x 00000000, 0x 00000000, 0x c0000000),

(0x 00000000,0x c0000000, 0x c0000000, 0x c0000000),( 0x c0000000, 0x c0000000,

이 입력 차분 출력 차분으로 번 반복되고0x c0000000, 0x c0000000) , 2 (0x 00000000, 0x

과c0000000,0x c0000000,0x c0000000) (0x 00000000, 0x 00000000, 0x c0000000, 0x

이 각각 라운드 라운드의 입력이 되어 출력 차분00000000) 11 ,12 (0x c0000000, 0x

을 얻게 된다00000000, 0x 00000000, 0x c0000000) .

한 라운드에서 생각되어 지는 확률은 각 함수가 의한 확률과 함수에 의한 확률을 곱하면Q F

계산되어 진다 따라서 입력 차분이 이 아닌 워드는 함수와 함수에 의해. , 0 Q F

132×14=1

2 6의 확률을 갖는다는 사실을 알 수 있다 따라서 가급적 인 워드가 많이 나. , 0

오는 경우를 생각해 주면 확률이 가장 높으며 위의 경우가 그러한 경우이다 각각의 입력 차분.

과 출력 차분의 확률을 생각하면 다음과 같다 입력 차분이. (0x 00000000, 0x c0000000, 0x

이고 출력 차분이0000000, 0x 00000000) (0x 00000000, 0x 00000000, 0x c0000000, 0x

인 경우는 두번째 세 번째 네 번째 워드가 함수를 만나고 두 번째 세 번째 워드00000000) , , Q ,

에서 이 아닌 입력 차분이 되므로 함수를 통과하여 나오는 확률을 생각해야 하므로0 F1

2 12

의 확률을 가짐을 알 수 있다.

Page 120: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 120 -

마찬가지로 나머지 경우를 생각해 보면 입력 차분이 (0x 00000000, 0x 00000000, 0x

이고 출력 차분이c0000000, 0x 00000000) (0x c0000000, 0x 00000000, 0x 00000000, 0x

인 경우의 확률은c0000000)1

2 7입력 차분이, (0x c0000000, 0x 00000000, 0x

이고 출력 차분이00000000, 0x c0000000) (0x 00000000, 0x c0000000, 0x c0000000, 0x

인 경우의 확률 은c0000000)1

2 16입력 차분이, (0x 00000000, 0x c0000000, 0x

이고 출력 차분이c0000000, 0x 0000000) (0x c0000000, 0x 00000000, 0x c0000000, 0x

인 경우의 확률은00000000)1

2 19입력 차분이, (0x c0000000,0x 00000000, ox

이고 출력 차분이00000000, 0x 00000000) (0x 00000000, 0x c0000000, 0x c0000000,

인 경우의 확률은0x 00000000)1

2 14이 됨을 알 수 있다 따라서 라운드의 확률은. , 12

1

2 150이 되어 차분 공격에 안 전함을 알 수 있다.

나 선형 분석.

기지 평문 공격인 의 기본 방향은 평문 암호문 그리고 키로 이루어진 적절한 선형 근사LC ,

식을 찾는데 있다 이를 위해 아래와 그림을 참고하여 함수를 분석해보자. f .

Page 121: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 121 -

그림 선형분석을 위한 함수 구조[ 2-18] f

함수는 평문과 키의 을 함수의 입력 값으로 하고 그 결과 값을 또 다른 평문 데이f XOR Bi

터와 하여 다음 함수의 입력으로 하는 과정이 반복됨을 알 수 있다 또한 워드 단위XOR Bi .

의 함수를 거친 후에 큰 함수를 비슷한 구조로 거치면 암호문을 얻게 되는 것이다 따라f F .

서 함수의 입력 값과 출력값에 대한 선형근사식을 구함으로서 전체 알고리즘의 선형근사Bi

식으로 확장하는 것은 어렵지 않다.

선형분석을 위해 먼저 각 함수에 대한 선형 근사식을 구해보자 여기서Bi , I i , O i는 과 사이0 7

의 비트의 위치를 나타낸다8 .

Page 122: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 122 -

위 식으로부터 키와 평문과 암호문과의 선형 근사식을 얻어낼 수 있다.

B(X)[Oi 는] P i [ O i ] , P'i [ O i ] , P

''i [ O i ] ,의 로 표현할 수 있고XOR ,

P 1'' = C 1 , P 2

'' = C 2 , P 3'' = C 3 , P 4

'' = C 4이므로,

비트 함수의8 Bi ( Γ a , Γ β 분포테이블을 통해 가장 큰 는) biss Γ a =14(=00001110),

Γ β 또는=255(=11111111) Γ a =13(00001101), Γ β 일 때 임을=52(=00110100) 94

알 수 있다.

그리고 위 식으로부터 함수의 평문과 암호문만으로 키와의 선형식을 얻기 위해서는f

만족되는 를 선택해야 한다 각각의 함수가 최대 를 가지면서 식. Bi biss (1)

이 만족하는 경우는 아래 표와 같이 나눌 수 있다.

Page 123: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 123 -

여기서 Γ a=14(=00001110), Γ β 인 경우를 고려해보자 왜냐하면=255(=11111111) . ,

Γ a =13(-00001101), Γ β 인 경우도 비슷한 방법으로 같은 결과를 주기= 52(= 00110100)

때문이다.

표 이 만족되기 위한 각각의 경우< 2-4> (1)

테이블로부터 의 각 경우에 대한 최대 를 찾아보면bias (a)-(e) bias ,

는(a) B 4에 대해 Γ a=14(=00001110), Γ β=255(=11111111)

는(b) B 2에 대해 Γ a=13(-00001101), Γ β=52(=00110100)

는(c) B 2에 대해 Γ a =13(=00001101), Γ β =52(=00110100)

는(d) B 1에 대해 Γ a=14(=00001110), Γ β=225(=11111111)

는(e) B 3에 대해 Γ a =13(=00001101), Γ β=52(=00110100)

임을 알 수 있다 게다가 모두 가 이므로 계산하기는 더욱 수월해진다 위의 분석을. bias 94 .

통해 다음과 같은 결과를 얻는데 이는 각 경우에 식을 만족시킨다(1) .

Page 124: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 124 -

표 표 의 결과< 2-5> < 2-4>

이로부터 함수의 는f best probability12+ 2 6 - 1 ( 94256 )

6

임을 알 수 있고 라운드의, 1 best

는probability12+ 2 4 - 1 [ 2 6 - 1 ( 94256 )

6

]4

이며 라운드의 는12 best Prob.

12+ 2 12 - 1 [ 2 ( 4- 1 ) [ 2 6 - 1 ( 94

256 )6

]4

]12

≈1

2 298이다.

가 함수 단계에서 비트의 키를 사용하므로 라운드면 충분히 에 안전하다고CUBE F 192 12 L.C.

말할 수 있다 물론 앞서의 분석에서 각 경우에 대해 최대 를 잡았으므로 그 외의 경우. bias

에서는 확률계산식의 두번째 항에서 더 작은 확률을 야기하므로 지금의 확률보다 더 작게

나올 것이다.

Page 125: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 125 -

제 장 안전성 분석3

제 절 블록 암호 알고리즘에 대한 차분특성 분석과 선형근사 분석1

본 연구에서 개발한 비트 블록 암호에 대한 와 를 살펴보기로 한다 여기서128 SPN DC LC .

라운드 키는 독립이고 일양분포를 갖는다고 가정한다.

차분특성 분석1. (Differential Cryptanalysis)

비트 블록 암호에 대한 를 살펴본다 관점에서의 의 개수가 최소128 DC . DC active S-box

되는 차분 특성을 찾는다 또 반복 가능한 차분 특성을 찾으며 이를 이용하여. , active

의 개수가 최소인 차분 특성을 찾는다 그리고 차분 확률과 복잡도를 계산한다S-box . DC .

가 에 대한. S-box DC

가 에 얼마나 안전한지를 나타내주는 척도는S-box DC Δ s= max a≠0.b δ s ( a ,b )이다 여.

기서 δ s ( a , b ) = # {x∣S(x)⊕S(x⊕a)=b 이다} . Δ s가 작을수록 는 에 안전하S-box DC

다 의 입출력 차원이 짝수일 때.S-box Δ s 이다 우리가 설계한 에 대해4 . S-box≥ Δ s는 로4

에 안전한 이다DC S-box . δ s ( a , b ) = {x∣S(x)⊕S(x⊕a)=b 일 때} aS→b로 쓰기로 하

며 차분 확률을 로 쓰기로 한다, DP( b) .α→

Page 126: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 126 -

예[ ] δ s 일 때 다음과 같이 쓴다( ,b)=4 .α

나 선형변환에 대한. DC

선형변환 L(x )= A x t에 대한 특성은DC DP ( X '→ L ( x ' ) ) = 1이다 즉.

x 'L→A ( x ' )

t확률 이다 의 최소 개수를 크게 하는 선형변환은 관( 1) . Active S-box DC

점에서 좋은 것이 된다 한편 행렬 선형변환 일 때 관점에서의 의 최. 16×16 ( ) DC active S-box

소 개수는 이하이다 즉8 . , n d= min x≠0 {wt(x)+wt(A xt)≤8이다 우리가 설계한 선형변.

환은 의 최소 개수가 로 에 안전하다active S-box 8 DC .

따라서 블록 알고리즘은 라운드마다 의 개수를 이상 가진다 라운드일2 active S-box 8 . 3

때 의 개수는 이상이다 왜냐하면 라운드까지의 의 개수는 이active S-box 9 . 2 active S-box 8

상이고 번째 라운드에 적어도 개 이상의 가 있기 때문이다 라운드일 경, 3 1 active S-box . 4

우 처음 라운드의 의 개수가 이상 그리고 마지막 라운드의 의, 2 active S-box 8 2 active S-box

개수도 이상이므로 라운드의 의 개수는 이상이다 이와 같이하여 라8 4 active S-box 16 . 10

운드까지의 의 개수의 하한을 구할 수 있다 표active S-box < 3-1>

표 라운드 별 관점에서의 의 개수의 하한< 3-1> DC active S-box

라운드수 의 개수의 하한active S-box

2 83 94 165 176 247 258 329 3310 40

Page 127: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 127 -

선형근사 분석2. (Linear Cryptanalysis)

비트 블록 암호에 대한 를 살펴본다 관점에서의 의 개수가 최소 되128 LC . LC active S-box

는 선형근사를 찾는다 또 반복 가능한 선형근사를 찾으며 이를 이용하여 의. , active S-box

개수가 최소인 선형근사를 찾는다 그리고 의 확률과 복잡도를 계산한다. linear hull LC .

가 에 대한. S-box LC

가 에 얼마나 안전한지를 나타내 주는 척도는S-box LC Λ s= max a,b0≠0∣ λ s ( a,b )∣이다.단, λ s (a,b)=⋕{x∣a⋅x= b⋅S(x) - 2 8 - 1이다. Λ s가 작을수록 는 에 안전S-box LC

하다 의 입출력 차원. S-box m이 짝수일 때 Λ s≥ 2m2 이다 우리가 설계한 에 대해. S-box

Λ s는 으로 에 안전한 이다16 LC S-box . λ s 일 때( , b)α aS→b로 쓰기로 하며 선형 확률을,

LP( b)=α→ 4 ( λ s ( a,b)2 m )2

으로 쓰기로 한다.

예[ ] λ s 일 때(a,b)=16 , aS→b 선형 확률(

로 쓴다) .

나 선형변환에 대한. LC

선형변환 L (x ) = A x t에 사용된 행렬 A의 원소가 또는 만으로 구성되어 있으므로0 1

LP ( a→ aA - 1 ) = 1이다 즉.

a L→aA - 1선형 확률 1

이다. (aA - 1 ) t = ( A - 1 ) ta t이므로 위의 식을 다음과 같이 쓸 수 있다.

a L→ (A- 1 ) t = (A - 1 ) ta t선형 확률 1

Page 128: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 128 -

우리가 설계한 행렬 A는 A - 1 = A , A t = A 이므로 선형 확률을 다음과 같이 쓸 수 있다

선형변환의 선형 확률[ ]

주 선형변환에 대한 차분 확률은 다음과 같다[ ] .

관점에서의 의 개수 은LC active S-box n i 은 다음과 같이 정의한다.

n i= min x≠0 {wt(x)+wt(At x t )

그런데 A t = A 이므로 n i= min x≠0 {wt(x)+wt(A xt) 이다 따라서} . n i= n d이다 선.

형변환에 대한 분석에서DC n d 이라는 사실을 알기 때문에=8 n i 이다=8 .

관점에서의 의 최소 개수가 이므로 블록 알고리즘은 라운드마다LC active S-box 8 , 2 active

의 개수를 이상 갖는다 라운드일 때 의 개수는 이상이다 왜냐하면S-box 8 . 3 active S-box 9 .

라운드까지의 의 개수는 이상이고 번째 라운드에 적어도 개 이상의2 active S-box 8 , 3 1

가 있기 때문이다 라운드일 경우 처음 라운드의 의 개수가active S-box . 4 , 2 active S-box

이상 그리고 마지막 라운드의 의 개수도 이상이므로 라운드의8 2 active S-box 8 4 active

의 개수는 이상이다 이와 같이하여 라운드까지의 의 개수의 하한S-box 16 . 10 active S-box

을 구할 수 있다 표< 3-2>.

Page 129: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 129 -

표 라운드 별 관점에서의 의 개수의 하한< 3-2> LC active S-box

라운드수 의 개수의 하한active S-box

2 83 94 165 176 247 258 329 3310 40

Page 130: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 130 -

제 절 블록 암호 알고리즘에 대한 분석2 SAC

본 과제에서 개발되는 이론적으로 안전성이 입증 가능한 블록 암호 알고리즘에 대하여 본

절에서는 안전성 요구조건에 대한 필요조건인 관점에서 안전성을Strict Avalanche Criteria

분석하고자 한다.

분석1. Strict Avalanche Criteria(SAC)

가. Shict Avalanche Criteria

블록 암호 알고리즘 E: Z m + n2 → Z n

2은 하나의 부울함수이다 여기서. n은 입출력 크기이고 m

은 키의 크기이다 따라서 블록 암호알고리즘이 안전하다면 절에서 소개한 을 만족할 것. 1 SAC

이다 그러나. m + n이 크면 실제적으로 2 m + n개의 정의역의 원소로 조사할 수 없다 따라서.

을 만족하는지 확인하기 위하여서는 표본들을 선택하여 모든 비트에서 출력의 변화가 균등SAC

한지를 확인하기로 한다.

이는 암호알고리즘의 안전성 필요조건을 증명하는 난수성 검정이 아니라 알고리즘 분석측,

면 및 에서 취약성이 없음을 표본들을 가지고 확인하는 것이다(DC LC) .

입력평문을 고정하고 키를 변화한 경우와 키를 고정하고 입력문을 변화한 경우로 나누어서

검정하고 알고리즘의 라운드별 성질 만족여부를 확인하고자 한다SAC .

표본선택(1)

가 키를 고정한 경우( )

임의로 하나의 키를 선택하고N 개의 서로 다른 평문을 선택하여 검정한다=10,000 .

Page 131: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 131 -

나 평문을 고정한 경우( )

임의로 하나의 평문을 선택하고N 개의 서로 다른키를 선택하여 검정한다=10,000 .

나. Avalanche Effect

주어진 부울함수 블록 암호 알고리즘 입력 한 비트가 변하면 출력문이 변하는 비트 수가( )

절반이어야 한다는 개념이 이다 키 혹은 평문을 고정한 경우에서 입력Avalanche Effect .

n비트 출력 n 비트인 블록암호 알고리즘을 E: Z n2→ Z

n2이라 하고

x = ( x 1 , x 2 ,⋯ x i ,⋯ x n , ) 하자, . y = E ( x ) = ( y 1 , y 2 ,⋯ y i ,⋯ y n , )라 하자.

x에서 i번째 비트만 변한 것을 x i= ( x 1 , x 2 ,⋯ x i⊕ 1,⋯ x n ) ,

e = ( 1 ,1 ,⋯ , 1 ), e i= ( 0 ,0 ,⋯ , 1 ,0 ,0 )∈ Z n2 라 하자 모든. i 에 대해서

E(x )⊕E ( x i ) = y i라면 e T y i=n2가 되는지를 조사하는 것이다.

블록 암호 알고리즘이 를 만족함을 증명하기 위해서는 모집단Avalanche effect 2 n개의 표본

을 조사하여야 한다 즉. , 2 n개의 평문 x에 대한 출력문과 입력 평문에서 i번째 비트만 변화

시킨 출력문이 상이 한 비트 수가n2이 되는지를 조사하여야 한다 이를 수식으로 표현하면.

다음과 같다.

2 n 입력 평문들과 입력 번째 비트를 변화한 경우/

모든 i = 1 ,⋯ , n 과 k = 1 ,⋯ , 2 n 에대해서n∑i = 1

υ k ij =n2이어야 한다.

Page 132: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 132 -

따라서 n이 크면 이러한 조사가 불가능하며 평문의 수가 현실적으로 가능한 표본 수를 가지고

서 조사하여야 한다.

현실적으로 검정 가능한 입력 평문의 수 N 개로서n∑i = 1

υ k ij =n2가 되는지를 조사하

자.

변수 X i를 입력 i번째 비트변화에 따라 출력의 비트가 변한 비트수라고 하면 기대값

E ( X i ) =n2분산, Var ( X i ) =

n4N

인 정규분포를 따르며X i-

n2n

2 N

는 표준정규분포

를 따른다.

표본수N 를 유의수준 로 설정하였을 경우 을 만족하는 것을 확=10,000 =0.01 Avalanche testα

인하려면 모든 비트 i 에서

범위에 있는가를 그림으로 표시하기로 한다.

다. Strict Avalanche Criterion

주어진 부울함수 블록 암호 알고리즘 입력 한 비트가 변하면 출력의 각 비트가 의 확률( ) 0.5

로 변해야 한다는 개념이 이다 키 흑은 입력평문을 고정한SAC(Strict Avalanche Criterion) .

경우에서 입력 n 비트 출력 n 블록 암호 알고리즘을E: Z n2→ Z

n2이라 하고

x = ( x 1 , x 2 ,⋯ x i ,⋯ x n ) , y = E ( x ) = ( y 1 , y 2 ,⋯ y i ,⋯ y n )라 하자.

입력 x의 임의의 한 비트가 변할 때 츨력 y의 모든 비트가 각각 확률12로 변한다라는 의미는

다음과 같다.

Page 133: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 133 -

x에서 i번째 비트만 변한 것을 x i= ( x 1 , x 2 ,⋯ x i⊕1,⋯ x n ) , e = ( 1,1,⋯ ,1 ) ,e i= ( 0 ,0 ,⋯ , 1 ,0 ,0 )∈ Z n

2라 하자 이때 모든 에 대해서 확률이. i, j

P (E (x )⊕E ( x i ) = 2 j ) = 12 되면 을 만족한다고 한다 블록 암호 알고리즘이 을SAC . SAC

만족함을 증명하기 위해서는 모집단 2 n개의 표본을 조사하여야 한다 즉. , 2 n개의 평문 x에

대한 출력문과 입력 평문에서 i번째 비트만 변화시킨 출력문을 논리합한 결과가 모든 j=1,⋯ ,n에 대해 j번째 비트가 이 되는 경우의 수가1 2 n - 1이 되는지 조사한다 이를 수식으로 표현.

하면 다음과 같다.

2 n입력 평문들과 입력 i 번째 비트를 변화한 경우

모든 i = 1 ,⋯ , n , j = 1 ,⋯ , n 에 대해서2 n

∑k = 1

υ kij= 2n - 1이어야 한다 따라서. n이

크면 이러한 조사가 불가능하며 평문의 수가 현실적으로 가능한 표본수를 가지고서 조사하

여야 한다 현실적으로 검정 가능한 입력 평문의 수. N개로서n∑k = 1

υ kij=N2가 되는

지를 조사하는 것은 변수 Z IJ =n∑k = 1

υ kij에 대해 기대값E ( z ij ) =N2분산,

Var ( z ij ) =N4인 정규분포를 따르며

z ij -N2

N2

는 표준정규분포를 따른다 표본수.

를 유의수준 로 설정하였을 경우 을 만족하는 표본수가 모든 비트N=10,000 =0.01 SACα i, j에

4871≤ z ij 5129≤

범위에 없는 비트 위치를 표시하여 그 위치가 균일하게 분포되어있는가를 확인하기로 한다.

Page 134: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 134 -

분석 결과2.

가 비트 암호알고리즘 검정. 128 SAC

비트 암호 알고리즘의 검정을 위하여128 SAC Avalanche effect ,Strict Avalanche Criterion

등의 두 가지 테스트를 실시하였으며 각각의 검정 결과는 다음과 같다.

(1) Avalanche Effect

는 입력 한 비트가 변했을 때 출력문의 변화된 비트 수가 전체비트 수 중Avalanche Effect ,

절반이어야 한다는 개념이다 검정대상인 비트 암호 알고리즘의 만족. 128 Avalanche Effect

여부를 알아보기 위해서 다음과 같이 테스트를 진행한다.

가( ) Avalanche Effect test for Key

고정된 비트 키와 평문 개를 대상으로 를 테스트하게 된다 비128 10000 Avalanche Effect .128

트 암호알고리즘은 입 출력 비트와 비트 키를 사용하게 됨으로 고정키 비트 각각, 128 128 , 128

에 대하여 출력 암호문 비트 중 변화된 비트가 비트라면 를 충분히 만128 64 Avalanche effect

족한다고 할 수 있다 금번 테스트에서는 유의수준을 로서 고정하였으며 개를 테. 0.01 , 10,000

스트 하게됨으로 변환된 결과 값의 범위가 부터 일 때 테스트를 만족한다고478738 481261

볼 수 있다 비트 암호 알고리즘의 라운드 별 테스트 결과를 도식화한.128 Avalanche effect

결과는 다음과 같다.

Page 135: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 135 -

그림[ 3-1] Key Avalanche

위의 그래프에서 보이듯이 비트 암호알고리즘의 는 라운드 이상이128 avalanche effect 2

되어야 비트 를 만족함을 알 수 있다128 Key avalanche effect .

나( ) Avalanche Effect test for Plaintext

입출력 블록 크기 비트에 대하여 고정된 평문과 키 개를 대상으로128 , 10,000 Avalanche

를 테스트하게 된다 고정평문 비트 각각에 대하여 출력 암호문 비트 중 변화된Effect . 128 128

비트가 비트라면 를 충분히 만족한다고 할 수 있다 금번 테스트에서는 유64 Avalanche effect .

의수준을 로서 고정하였으며 개를 테스트 하게됨으로 변환된 결과 값의 범위가=0.01 ,1 0,000α

부터 일 때 테스트를 만족한다고 볼 수 있다 비트 암호알고리즘의 라운드47838 481261 . 128

별 테스트 결과를 도식화한 결과는 다음과 같다Avalanche effect .

Page 136: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 136 -

그림[ 3-2] Plaintext Avalanche

위의 그래프에서 보이듯이 비트 암호알고리즘의 는 라운드 이상이 되어128 avalanche effect 2

야 비트 를 만족함을 알 수 있다128 Plaintext avalanche effect .

(2) Strict Ava1anche Criterion

암호 알고리즘의 입력 한 비트가 변할 때 그 비트에 해당하는 출력의 비트가 변할 확률이,

12이 될 때 을 만족한다고 한다 비트 암호알고리즘 알고SAC(Strict Avalanche Criterion) .128

리즘의 만족 여부를 알아보기 위해 표본수 개를 대상으로 테스트를 실시하였으며SAC 10,000 ,

유의수준을 로 고정하였으므로 을 만족하는 표본수는 모든 비트에 대해서 뵌 과=0.01 SAC 71α

안에 들어가야만 한다 아래 그림은 각 입력 비트에 대한 출력비트 중 을 만족하지 못5129 . SAC

하는 비트를 점으로 표시한 것이며 이들 분포가 골고루 퍼져 있을 때 비교적 을 만족한다, SAC

고 본다.

Page 137: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 137 -

나 결과.

각각의 테스트 결과를 정리해 보면 다음과 같다.

표 결과 정리< 3-3>

비트 암호알고리즘은 와 테스트 모두 최소 라운드를 거쳐야 유의128 Avalanche effect SAC 2

수준 기준으로 각각의 성질을 만족한다는 것을 알 수 있다=0.01 .α

Page 138: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 138 -

제 절 블록 암호 알고리즘에 대한 난수특성 분석3

본 절에서는 에서 블록 암호 알고리즘 선택을 위한 평가기준으로 사용된 난수특NIST AES

성 검정방법을 활용하고자 한다.

표본 데이터 집합1. ( )

개의 표본군 데이터 집합 을 구성하여 다양한 안전성기준 항목의 검정을 도모하고자 한다6 ( ) .

기존의 암호화 결과값 만을 검정하던 단편적 방법에서 탈피하여 안전성 만족 여부를 알아,

보기 위해 표본군 데이터집합 구성내용을 세부적으로 살펴본다( ) .

가 키와 평문 쇄도. (Key Avalanche and Plaintext Avalanche)

키나 평문의 변화가 알고리즘을 통한 암호문에 얼마나 균등한 변화를 주는지를 알아보기 위

해 준비된 표본집합이다 키와 평문이란 대상만 다를 뿐 내용상의 알고리즘은 동일하므로. ,

비트 키 쇄도에 관한 내용으로 다뤄본다128 .

비트 키(1) 128 K i, 0 개 비트 평문34,200 (128 P i, 0 를 생성한다) . (1≤ i 34,200).≤

키(2) K i, 0 ( P i, 0 에 대하여 비트중 한 비트만을 치환시킨 다른 개의 키) 128 (perturbed) 128

K i, ( P i, j )( 1≤j≤128) 를 생성한다.

Page 139: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 139 -

생성된 키들로서 데이터가 모두 인 평문 경우 데이터가 모두 인(3) 0 P(Plaintext Avalanche 0

K)을 암호화시켜 암호문 C i, j = E ( P , K i, j ) , 1 ≤ j≤ 128을 생성한다 (Plaintext Avalanche

경우 C i, j = E ( P i, j , K ) 따라서 생성된 암호문은 의 비트 크기를 가진). 34,200×128×128

다.

처음 랜덤하게 생성된 키 개(4) 34,200 ( K i, 0 : 1≤ i 로 내용이 모두 인 평문34,200) 0≤ P을

암호화 시켜 암호문을 생성한다 C i, 0 = E ( P , K i, 0 ) 따라서 생성된 암호문은 34,200×128

비트 크기를 가진다.

암호문(5) C i, 0와 C i, j 를 각 비트별로 시켜 다음과 같은 암호문 수열128 XOR C i을 생성

한다.

C i= C i,0⊕ C i,1‖ C i, 0⊕ C i,2‖⋯‖ C i,0⊕ C i,128 , 1≤i≤34,200

여기서 각 수열 C i는 비트이다128×128 .

생성된 암호문을 개의 이진수열(6) 300 ( S k : 1≤ k 로 분할한다 각각의 이진수열300) .≤ S k

는 의 비트수를 가지게 되며 이를 개의 통계테스트에 적용시키게 된다1,050,624 , 16 .

나 저밀도 평문과 저밀도 키. (Low Density Plaintext and Low Density Keys)

구조적 특이성을 찾아보며 함께 키 평문과 암호문과의 상관관계를 알아보기 위한 데이터, ,

집합이다 평문 혹은 키라는 대상만 상이하므로 함께 다루도록 한다. .

총 개의 이진수열을 구성하게 되며 하나의 이진수열은 모드에서 수행된(1) 300 , ECB 10,944

개의 비트 암호문 블록들로서 이루어져 있다128 .

Page 140: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 140 -

이 암호문 블록들은 개의 평문 또는 키 과 랜덤하게 생성된 키 또는 평문 으로부(2) 10,944 ( ) ( )

터 생성한다.

( 1280 )+( 1281 )+( 1282 )+6287=10,944

여기서 는 비트 안에 개의 이 들어갈 수 있는 경우의 수6,287 128 3 1 ( 1283 )=142,880에서임의적으로 개를 선택한 것이다6,287 .

총 개 이진수열 비트 이 생성되어 각각의 통계테스트에 적용되어 진다300 (1,050,624 ) .

다 고밀도 평문과 고밀도 키. (High Density Plaintext and High Density Keys)

저밀도 관련 데이터 집합과 함께 구조적 특이성을 찾아보며 함께 키 평문과 암호문과의, , ,

상관관계를 알아보기 위한 데이터 집합이다 평문 혹은 키라는 대상만 상이하므로 역시 함.

께 다루도록 한다.

총 개의 이진수열을 구성하게 되며 하나의 이진수열은 모드에서 수행된(1) 300 , ECB 10,944

개의 비트 암호문 블록들로서 이루어져 있다128 .

이 암호문 블록들은 개의 평문 또는 키 과 랜덤하게 생성된 키 또는 평문 으로부(2) 10,944 ( ) ( )

터 생성한다.

( 1280 )+( 1281 )+( 1282 )+6287=10,944이다.

여기서 는 비트 안에 개의 이 들어갈 수 있는 경우의 수6,287 128 3 0 ( 1283 )=142,880 에서임의적으로 개를 선택한 것이다6,287 .

총 개 이진수열 비트 이 생성되어 각각의 통계테스트에 적용되어 진다(3) 300 (1,050,624 ) .

Page 141: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 141 -

검정2.

(1) Frequency test

주어진 수열 b 1 , b 2 ,⋯ b n , 길이 n인 진 수열이라고 하자 는 수열이 난2 . Frequency test

수성을 만족하는 경우 각 비트에서 과 이 나타날 확률이, 0 112이라는 가정에 근거한 검정방

법이다.

(2) Frequency test within a block

와 같은 개념이지만 과 의 수를 전체 수열에서 조사하는 것이 아니라 길이Frequency test 0 1

가 M 인 부분수열에서 조사하는 것이다. b 1 , b 2 ,⋯ b n ,을 길이 n인 진 수열이라고 하고2

각 부분수열을( b 1 , b 2 ,⋯ , b m , ), ,(ㆍㆍㆍ b n - 1M + 1 , b n - M + 2 ,⋯ b n 하자 이때) . , i번

째 블록에서 의 개수를1 N i이라 하면N∑i = 1

N i = n 1이다 각 블록에서의 의 개수가. 1

근사적으로M2가 되는지를 조사하는 이다test .

(3) Runs test

길이가 n인 이진수열 b 1 , b 2 ,⋯ , b n ,에서 에서 로 혹은 에서 으로 변화 하0 1 1 0 (change)

는 정도가 추정치에 근접한지를 확인하는 검정방법이다 이진수열이 랜덤하다고 가정하면.

가 일어날 확률은 각 비트에서 이다 주어진 수열이 난수열이라면 전체 수열에서 의change 1/2 . 1

수 n 1비율 =πn 1n이12이어야 한다 이는 에서 검정한 방법이다. Frequency test .

Page 142: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 142 -

(4) Test for the longest run of ones in a block

길이가 n 인 이진수열 b 1 , b 2 ,⋯ , b n ,을 N 개의 M 비트 블록으로 분할하여 각 블록에

서의 이 연속되는 최대런 의 수를 고려해 보자 에서는 전체수열에서의1 (runs) . Runs test

의 수가 평균Runs(blocks+gaps) ( n 에 근접한가를 하는 것이고-1)/2 test Test for Longest

는 각 블록에서의 이 연속되는 최대길이의 런의수가Runs of Ones in a Block 1 N개의 블록들

에서 균등하게 나타나는가를 알아보기 위한 이다 이진수열이 랜덤하다고 가정하면 최대 길test .

이 의 정도가 추정치에 근접하여야 한다run .

(5) Binary matrix rank test

길이가 n인 진 수열2 b 1 , b 2 ,⋯ , b n 을 m비트로 분할하여( b 1 , b 2 ,⋯ , b m , )⋯ ,( b n - m + 1 , b n - m + 2 ,⋯ , b n , 하자) .

는 각 부분수열을Binary Rank test m차 벡터로 고려하여 벡터들의 선형종속성을 조사하는 것

이다.

(6) Discrete fourier transform(Spectral) test

길이가 n인 이진수열 b 1 , b 2 ,⋯ , b n을 로 이루어진 수열-1,1 c 1 , c 2 ,⋯ , c n 다음과같이 변환하자.

c 1 = 2b 1 - 1 , , c n = 2 b 2 - 1 ,⋯ , c n = 2 b n - 1

Page 143: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 143 -

길이가 n 주기가m 인수열 ( c 1 , c 2 ,⋯ , c n 을) n = 2 k차 벡터공간에서 고려하자.

는Spectral Test n = 2 k차 벡터공간에서 주어진 수열을 벡터로 표현하였을 때 벡터의 길이가

얼마나 균일하게 분포되어 있는가를 조사하는 것이다.

(7) Non-overlapping template matching test

m비트 을 길이가template M 인 수열에서 고려하여 보자 본. Non-Overlapping Matching

는 주기성이 없는 형태 의 들의 빈도를 조사하는 것이다 아래 표는test (pattern) template . test

에서 사용되는 개의 을 나열한 것이다148 template .

(8) Overlapping template matching test

m비트 을 길이가template M 인 수열에서 고려하여 보자 는 이진. Overlapping Matching test

수열 b 1 , b 2 ,⋯ , b n을 M 비트 단위로 나누었을 때, [ nM ] = N개의( b kM + 1 , b kM + 2 ,⋯ , b kM + n ).k = 0 ,1 ,2 ,⋯ ,M - 1들에서 이 연속으로1 m 개인 의run

빈도가 균등하게 분포되어 있는지를 검정하는 방법이다. M 비트 블록에서 m 비트 template,

즉 개인 의 빈도를 조사하는 것이다m runs of ones .

Page 144: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 144 -

(9) Mauer's test

길이가 n인 진 수열2 b 1 , b 2 ,⋯ , b n이 주어졌다고 하자 주어진 수열의 정보손실 없이 압.

축이 잘 될 수 있는지를 알아보는 검사이며 압축성이 지나친 수열은 난수성질을 만족하지 못한

다고 할 수 있다 본 검정법은 주어진 수열의 압축률을 계산하는 것이 아니라 압축된 수열의 길.

이와 관련된 수치로 비교하는 검정이다 본 검정의 장점은 등. Monobit(Frequency), Runs test

과 같은 일반적인 난수검정 방법들에서 난수성질을 만족하지 못하는 수열을 탐지할 수 있다는

것이고 단점으로는 표본수 수열 가 커야한다라는 단점이 있다( ) .

(10) Lempel-Ziv Compression test

주로 데이터 압축 등에 많이 이용되어지고 있는 방법이다 주어진 수열(Data Compression) .

에서 각 부분 수열의 형태 패턴 를 조사하는 검정으로서 관점에서( ) Information Theory

와 유사하고 본 검정은 수열의 반복성의 정도를 나타내Approximate Entropy, Mauer's test

는 측도 이며 수열에서 어떤 한 개의 부분 수열도 이전에는 일어나지 않도록 분할되어진 부

분 수열의 개수 즉 수열을 따라 움직일 때 나타나는 새로운 패턴의 개수가 기대값에 근사,

한지를 조사하는 것이다.

(11) Linear complexity test

Page 145: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 145 -

선형복잡도 검정은 스트림 암호알고리즘의 안전성을 조사하기 위한 이며 본 블록암호알test

고리즘의 안전성을 선형복잡도로 하기 위한방법으로 전체길이가test n 인 수열을 부분수열로

분할하여 각 부분수열의 선형복잡도가 균일하게 분포되어 있는가를 하기로 한다 따라서 전test .

체길이가 n 인 수열을 길이가 M 인 부분수열로 분할하여 각 부분수열에서의 선형복잡도의 분

포가 평균과 일치하는지를 조사한다.

(12) Serial test

길이가 n 인 진 수열2 b 1 , b 2 ,⋯ , b n이 주어졌다고 하자 는 길이가. Serial Test m 인 부

분수열을 겹치게 생성함으로서 2 m 개의 부분수열에 대한 형태의 균일성을 조사하는 검정방법

이다.

(13) Approximate entropy test

의사난수에 대한 는 기존의 통계적 관점의 검정에 비해 좀더 일반적인 통계적Entropy test

모델을 기반으로 한다 는 기존에 사용되는 통계적 검정 즉. Entropy test ( , Frequency test,

등을 포함하는 이외에 다음과 같은Serial test, Poker test, Runs test, Autocorrelation test )

두 가지 주된 이점을 제공한다.

첫째로 특정한 유형의 통계적 결점을 찾는 기존의 통계적 검정들과는 달리 는, , Entropy test

의사난수 발생기들이 가질 수 있는 발생 가능한 결점들에 대한 매우 일반적인 중의class

하나를 찾을 수 있게 한다 이러한 결점들에 관한 는 유한 메모리를 가지는. class ergodic

에 의해 모델화 될 수 있는데 이는 의사난수 비트 발생기의 실제적인 구stationary source ,

현에서 발생 가능한 결점들을 포함하도록 적절하게 나타내 질 수 있다.

Page 146: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 146 -

둘째로 는 의사난수 발생기의 결점에 관한 실제적인 암호학적 중요성을 측정, Entropy test

한다 좀더 정확하게 말하자면 검정 매개변수는 키 소스의 비트 당 를 측정하는데. , entropy ,

이는 공격자가 비밀 키 소스의 통계적 결점에 관한 지식을 부당하게 이용할 때 공격자가 수

행하는 최적 키 탐색 전략의 실행 시간과 관련이 있다 즉 비밀 키 소스의 비트 당. , entropy

는 암호 시스템을 깨기 위해 전 탐색보다 더 빠른 방법이 존재하지 않는다는 가정 하에서

암호 시스템의 효율적인 키 크기를 측정한다.

이러한 두 가지 이점은 유한 메모리 M≤L ( L 검정 파라미터 을 갖는 이진: ) ergodic

의 일반화된 와 소스의 비트당stationary source class entropy H 와 밀접하게 관련된 통계량

T 를 결과로 가지는 조건부확률 모델을 설정했다는 사실에 기인한다.

(14) Cumulative sums test

는 로 구성된 수열에서 부분합의 절대값의 최대를 가지고서 모델Cumulative Sums Test ±1

화한 것으로 난수성 조사에 활용되고 있다.

(15) Random excursions test

는 어떤 지정된 상태 에 도달 방문 하는 수의 분포를 가지고Random Walk Test (state) ( ,visit)

조사하는 이다 본 는 동물의 이동상태를 가지고서 모델화한 것으로 난수성 조사에test . test

활용되고 있다. Random variables x i 는 과 둘 중의 하나의 수이고-1 1 x 1 , x 2 ,⋯ x k ,

을 길이가 k인 수열이라 하고 부분합 S k= x 1+ x 2+⋯ + x k 라 하자 여기서. x i가 1

일 확률을 p 일 확률을,-1 q = 1 - p 라 하면 x i 는 과 둘 중의 하나의 수이기 때문에 부-1 1

분합 S k 이 되는=0 k 즉 원점으로 되돌아오는 상태에 대하여 고찰해 보자, .

Page 147: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 147 -

(16) Random excursions variant test

에서는 부분합Random Excursion Test S k = x 1+ x 2+⋯ + x k 에서 S k = 0이 되는 k,

즉 원점으로 되돌아오는 수가 균일한가를 조사하는 것이고, Random Excursion Variant Test

는 S k = 0 되는 동안에x≠0에 얼마나 되돌아오는 지를 조사하는 것이다.

비트 암호알고리즘 안전성 분석 결과3. 128

가 기각수열 개수 기준.

통계테스트 적용 시 테스트를 통과하지 못하는 기각 수열 개수를 각각의 데이터 집합에 따

라 정리한 것이 표 기각수열 개수결과이다 에서 실시한 난수성 검정기< 3-5> . AES Round 2

준 표본크기 개에 대한 최대 허용 기각수 개 으로 안전성을 분석할 때는 모든 데이터( 300 11 ) ,

집합에 대하여 최대 허용 기각수를 넘지 않는 것을 알 수 있었다 그러나. AES Round1

검정기준 최대 허용 기각수 개 을 적용하게 되면 데이터 집합에Comment ( 9 ) , Avalanche Key

서 데이터 집합에서Lempel-Ziv Complexity test, Low Density Plaintext Excursion

에서 인 두 가지 경우에 대한 기각수가 개임으로 테스트를 통과하지 못variant Test -4, -6 10

하게 된다 값 분포를 자세히 알아보기 위해 개 표본수열의 값 중 유의수준 근. P- 300 P- 0.01

처의 값을 그래프로 표시해 보면 다음과 같다P- .

데이터 집합(1) High Density Plaintext

중 와 인 경우에 각각 개씩의 기각수가 발생되었다Excursion variant Test -4 -6 10 .

Page 148: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 148 -

그림 값 분포 비트 암호알고리즘[ 3-3] P- (Excursion variant(-6) test for 128 )

그림 값 분포 비트 암호알고리즘[ 3-4] P- (Excursion variant(-4) test for 128 )

데이터 집합(2) Low Density Plaintext

중 와 인 경우에 각각 개씩의 기각수가 발생되었다Excursion variant Test -4 -6 10 .

Page 149: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 149 -

그림 값 분포 비트 암호알고리즘[ 3-5] P- (Excursion variant(-6) test for 128 )

그림 값 분포 비트 암호알고리즘[ 3-6] P- (Excursion variant(-4) test for 128 )

비트 암호 알고리즘 통계테스트 기각수열 개수 분석결과(3) 128

제정까지 여러 기준이 적용되었는데 이들 기준에 따라 결과를 정리하면 다음 표와 같AES

다 표의 수는 최대허용 기각수를 넘어가는 기각수열들의 통계테스트 개수를 각 데이터 집.

합별로 정리한 것이다 자세한 결과 값은 표 를 참조한다. < 3-5> .

Page 150: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 150 -

통계테스트 기각수열 개수 분석결과<3-4>

비트 암호 알고리즘에 대한 결과를 기준에 적용했을 때* 128 AES Round1 Excursion

중 세 개의 값에 대하여 최대허용 기각수 개 를 넘어간다variant test (9 )

Page 151: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 151 -

표 기각수열 개수 결과< 3-5>

Page 152: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 152 -

Page 153: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 153 -

Page 154: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 154 -

Page 155: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 155 -

Page 156: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 156 -

Page 157: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 157 -

나 값의 분포기준. P- Uniform

비트 암호알고리즘 값의 분포 분석결과(1) 128 P- Uniform

표 값의 분포 결과는 값의 분포를 알아보기 위해< 3-7> P- Uniform ' P- Uniform , x 2 분포를

바탕으로 값들의 값을 새롭게 계산한 표이다 값이 보다 작아 테스트를 통과하P- P- . P- 0.0001

지 못하는 표본수열이 데이터 집합에서 하나 발견되었다 이 데이터 집합에High Density Key .

대한 에서 값은 이였다 아래 히스토그Discrtet Fourier Transformation Test , P- 0.0000033 .

램을 보면 값이 적은 쪽으로 몰려 분포가 하지 못하다는 것을 확인 할 수 있다P- Uniform .

그림 값의 분포 분석결과[ 3-7] P- Uniform

에서 실시한 값의 분포 결과를 정리하면 다음 표와 같다 표AES Round2 P- Uniform . <

은 값이 을 못 미치는 통계테스트 개수를 각각의 데이터 집합별로 정리한 것3-6> P- 0.0001

이다 자세한 결과 값은 표 을 참조한다. < 3-7> .

Page 158: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 158 -

표 값의 분포 분석결과< 3-6> P Uniform

Page 159: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 159 -

표 값의 분포 결과< 3-7>P- Uniform

Page 160: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 160 -

Page 161: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 161 -

Page 162: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 162 -

Page 163: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 163 -

Page 164: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 164 -

Page 165: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 165 -

제 장 결 론4

암호 알고리즘 설계는 암호기술 연구분야 중에서 가장 핵심적인 분야이며 암호분석과 함께

수학적 이론이 뒷받침되어야 하는 광범위한 연구분야이다 암호 알고리즘들 중에서도 블록.

암호 알고리즘은 데이터의 기밀성 뿐 아니라 해쉬함수 등 데이터의 인증성 서비스구현을 위

하여 사용되기 때문에 그 실용성 또한 광범위하다 따라서 블록 암호알고리즘은 안전성 뿐.

아니라 효율성 또한 고려하여야 하고 안전성과 관련하여서는 현재 혹은 미래의 암호 분석

능력을 예측하여 설계하여야 한다.

본 연구에서 개발된 안전성 증명 가능한 블록 암호알고리즘은 비트 입 출력 비트128 , 128ㆍ

키를 사용하는 구조의 블록 암호 알고리즘이다 의 등 최근 개발되는 블록SPN . AES Rijdael

암호 알고리즘은 비트 입 출력과 비트 이상의 키를 사용하는 점에 비교하여 안전성128 128ㆍ

이 취약하게 보일 수 있지만 알고리즘 세부논리에 사용된 비선형 부울함수인 와 선S-Box

형변환들이 이론적으로 최적의 안전성을 보장하도록 설계되었기 때문에 입 출력의 크기와ㆍ

키의 크기가 결정된 것이다 본 연구에서 개발된 블록 암호알고리즘은 비트 뿐 아니라. 128

비트 등으로 입 출력 및 키의 크기를 확장시키기 용이한 구조이며 차년도에 이미192,256 , 1ㆍ

개발된 암호 알고리즘에 대한 안전성 분석하여 더욱 더 보완 및 개선하여 알고리즘CUBE

을 설계하였다.

본 연구결과를 토대로 안전성이 증명 가능한 행렬 선형변환 을 생성하는 방법에 대해16×16 ( )

연구하였으며 입출력 및 키의 크기를 비트로 확장시키고 인 과 비교하여도128 AES Rijdael

안전성 및 효율성에 있어서 우수한 블록 암호알고리즘에 대한 안전성 및 효율성 측면에서

더욱 더 보완하였으며 또한 안전성 분석을 수행하였다 블록 암호알고리즘 핵심 논리에 대, .

한 안전성 연구를 통하여 증명 가능한 블록 암호알고리즘 설계 및 구현에 활용하고 알려진

공격 방식에 대한 저항성 분석 연구 등 수학적 이론을 바탕으로 하는 분석 이론 및 기술 확

보와 알고리즘에 대한 안전성 평가자료로 활용할 수 있다.

Page 166: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 166 -

참고문헌

[1] J. Daeman, R, Govaerts and J. Vandewalle, "A New Approach to Block Cipher

Design", Proceedings of Fast Software Encryption, Cambridge Security Workshop,

Springer-Verlag, pp.18-32, 1994.

[2] B.S. Kaliski and Y. L. Yin, "On Differential and Linear Cryptanalysis of the RC5

Encryption Algorithm", Advances in Cryptology-CRYPTO'95, Springer-Verlag,

pp.171-184, 1995.

[3] L. R. Knudsen, "A Key-schedule weakness in SAFER K-64", Advances in

Cryptology-CRYPTO'95, Springer-Verlag, pp.274 -286, 1993.

[4] J. Daemen, V. Rijmen, "AES Proposal: Rijndael“, The First Advanced Encryption

Standard Candidates,1998.

[5] E. Biham and A. Shamir, Differential cryptanalysis of DES-like cyptosystem,

Advance in Cryptology-Crypto'90, LNCS Vo1. 537, Springer-Verlag, pp.2-21, 1990.

[6] J. Daemem, R. Govaerts, and J. Vandewlle, Correlation matrices, Proceedings of the

first international workshop of the Fast Software Encryption, LNCS Vol. 1008,

Springer-Verlag, pp.275-285, 1994.

[7] J. Daemen and V. Rijmen, The RIJNDAEL block cipher, AES proposal(available at

http://www.nist..gov/aes, 1998.

[8] S. Hong, S Lee, J. Lim, J. Sung, and D. Cheon, Provable security against differential

and linear cryptanalysis for the SPN structure, FSE'2000, 2000.

[9] M. Kanda, Y. Takashima, T. Matsumoto, K. Aoki, and K. Ohta, A strategy for

constructing fast round functions with practical security against differential and linear

cryptanalysis, Proceedings of SAC'98, LNCS Vo1.1556, Springer-Verlag,pp.264-279, 1999.

Page 167: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 167 -

[10] M. Matsui, Linear cryptanalysis method of DES cipher, Advance in

Cryptology-Eurocrypt'93, LNCS Vo1. 1039, Springer-Verlag, pp.386-397, 1993.

[11] S. Moriai, How to design secure S-boxes against differential, linear, higher order

differential, and interpolation attacks, SCIS'98, 1998.

[12] NIT-Nippon Telegraph and Telephone Corporation, Specification of E2 - a 128 bit

block cipher, AES proposal(available at http//info.isl.ntt.co.jp/e2/), 1998.

[13] NTT-Nippon Telegraph and Telephone Corporation, Supporting document on E2,

AES proposal(available at http://info.is1.ntt.co.jp/e2/), 1999.

성수학 박상우 강주성 지성택 구조에서 최적의 선형변환을 찾는 알고리즘[14] , , , , SPN ,

`VISC 2000, pp.189-197, 2000.

[15] J. Kelsey, B, Schneier and D. wagber, "Key-Schedule Cryptanalysis of IDEA,

G-DES, GOST, SAFER, and Triple-DES", Advances in Cryptology - CRYTO'96,

Springer-Verlag, pp.237-249, 1996.

[16] J. Daemem, R. Govaerts, and J. Vandewlle, Correlation matrices, Proceedings of the

fhst international workshop of the Fast Software Encryption, LNCS Vo1. 1008,

Springer-Verlag, pp.275-285, 1994.

[17] J. Daemen, L. Knudsen, and V. Rijmen, The block cipher SQUARE, Fast Software

Encryption, LNCS Vol. 1267, Springer-Verlag, pp.149-165, 1997.

[18] M. Kanda, Y. Takashima, T. Matsumoto, K. Aoki, and K. Ohta, A strategy for

constructing fast round functions with practical security against differential and linear

cryptanalysis, Proceedings of SAC'98, LNCS Vo1. 1556, Springer-Verlag, pp.264-279,

1999

Page 168: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 168 -

[19] S. Moriai, How to design secure S-boxes against differential, linear, higher order

differential, and interpolation attacks, SCIS'98, 1998.

[20] NTT-Nippon Telegraph and Telephone Corporation, Specification of E2 - a 128 bit

block cipher, AES proposal(available at http ://info. is1.ntt. co. jp/e2/),1998.

[21] W. Meier and O. Staffelbach, "Nonlinearity criteria for cryptographic functions",

Advances in Cryptology-Proceeings of EUROCRYPT'89, Lecture Notes in Computer

Science, Vo1. 434, pp.549-562, 1990.

[22] B. Preneel, Analysis and design of cryptographic functions, Doctoral Dissertation,

Katholieke Universiteit Leven, 1993.

[23] M. H. Dawson and S. E. Tavares, "An Expanded Set of S-Box Design Criteria

Based on Information Theory and its Relation to Differential-Like Attacks,"Advances in

Cryptology-Proceedings of EUROCRYPT91, LNCS, Vo1. 547, pp.352-367, 1991.

[24] A. F. Webster and S. E. Tavares, "On the design of S-Boxes" Advances in

Cryptology-Proceeings of CRYPTO'85,Lecture Notes in Computer Science, Vo1. 218,

pp.523-534, Springer-Velag. 1986.

[25] G. Xiao and J. L. Massey, "A spectral characterization of correlation-immune

combining functions", IEEE Transactions on Information Theory, Vo1. IT-34, No.3,

pp.569-571, 1988.

[26] T. Siegenthaler, "Correlaton immunity of non-linear combining functions for

cryptographic application", IEEE Transactions on Information Theory, Vo1. IT-30, No.5,

pp.776-780, 1984.

[27] R. A. Rueppel, Analysis and design of stream ciphers, Springer-Verlag, 1986.

[28] J. Pieprzyk and G. Finkelstein "Towrds effective nonlinear cryptosystem design,

"IEEE Proceedings, Vo1. 135, No.6, pp.325-335, November 1988.

Page 169: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 169 -

[29] H. Fiestel, "Cryptography and computer privacy", SCIENTFIC AMERICAN, Vo1.

228, No.5, pp.15-23, May 1973.

[30] B. Preneel, W. Van Leekwijck, and L. Van Linden, "Propagation charateristics of

Boolean functions", Advances in Cryptology-Proceeings of EUROCRYPT'90, Lecture

Notes in Computer Science, Vo1. 473, pp.161-173, Springer-Velag, 1990.

[31] W. Meier and O. Staffelbach, "Nonlinearity criteria for cryptographic functions",

Advances in Cryptology-Proceeings of EUROCRYPT'89, LNCS, Vo1. 434, pp.549-562,

1990.

[32] B. Preneel, Analysis and design of cryptographic functions, Doctoral Dissertation,

Katholieke Universiteit Leven, 1993.

[33] NIST Special Publication 800-22, "A Statistical Test Suite for the Validation of

Random Number Generators and Pseudo Random Number Generators for Cryptographic

Applicahons," July 2000.

Page 170: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 170 -

첨부 소스코드:

1. KISA8.cpp

Page 171: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 171 -

Page 172: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 172 -

Page 173: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 173 -

Page 174: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 174 -

Page 175: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 175 -

Page 176: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 176 -

Page 177: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 177 -

Page 178: 안전성증명가능한블록암호 알고리즘개발(II) - ITFIND · 2012-06-13 · 제 절블록암호알고리즘에대한 분석2SAC 1.StrictAvalancheCriteria(SAC)분석 가.StrictAvalancheCriteria

- 178 -