I. 서론
최근 NIST는 새로운 미국의 차세대 표준해쉬함수개발을■위한 SH-A-3 프로젝트를 추진하여 전 세계의 여러, 암호연구그룹으로부터 해쉬함수 알고리즘들을 공모하였다. 2008년 10월 31일까지 64개의 알고리즘이 접수되었으며, 2008년 12월 9일에 그 중 51개의 알고리즘이 1 라운드 후보.알고리즘으로 선정되었다. 최근. 2009년 7월 24일에는 14개의 2 라운드 후보 알고리즘이 공시되었다.
ARIRANGU〕은 1 라운드 SHA-3 후보로 제안된 알고리즘 중.하나이며 2 라운드에는 진출하지 못했다. ARIRANG의 전체 '구조는 카운터를 사용하는 MD 구성법 (Merkle-Damg务rd Construction with a Counter)을 따른다. 출력길이에 따라, ARIRANG- 224, ARIRANG-256, ARIRANG-384, ARIRANG -512의 네 가지 버전으로 분류하는데, .ARIRANG -224는 ARIRANG-256의 출력의 단순한 32 비트 절사이며 ARIRANG-384 또한 ARIRANG-512의 출력의 단순한 128비트 절사이다. 따라서 ARIRANG -256과 ARIRANG-512을 기본 알고리즘으로 볼 수 있다. 전체 해쉬 구조의 기반이 되는 압축함수들은 40 단계로 구성되어 있다.
본 논문에서는 압축함수의 단계수가 축소된 버전의 ARIRANG에 대한 역상 공격을 소개한다. 공격대상으로서 두 가지 버전의 축소된 압축함수를 '고려한다. OFF(Original Feedforward】)이라 부르는 첫 번째 버전은 오리지널 알고리즘과 동일한 위치에 Feedforward 1°] 작용한다. 두 번째 버전은 Feedfor- wardl이 가운데 단계의 출력에 위치한다. 이것을 MFF (Middle Feedforwardl)이라 부른다. ARIRANGe 압축함수의 구조를 분석한 결과, 내부에 사용되는 메시지 워드들의 위치를 최대 4단계까지 위로 옮길 수 있음을 발견하였다. 이러한 워드이동성질은 본 논문에서 소개되는 공격에 주요하게 사용되었다.
본 논문의 공격은 단계 1부터 단계 33까지의 ARIRANG-256 및 ARIRANG-512의 33-단계 OFF(Original FeedForwardl) 버전의 역상을 찾아내며, 단계 1부터 단계 31까지의 ARIRANG-256 및 ARIRANG-512의 34단계 MFF(Middle Feed- Forward 1) 버전의 역상을 찾아낸다. ARIRANG-256 의 경우, 모든 공격들은 2241번의 축소된 압축함수의 연산에 해당하는 복잡도를 갖는다. ARIRANG-512 의 경우, 모든 공격들은 2481번의 축소된 압축함수의 연산에 해당하는 복잡도를 갖는다. 본 연구는 Sasaki 와 Aoki의 역상공격체계〔2-4〕를 따른다.
II. 해쉬함수 ARIRANG
ARIRANG의 전체 구조는 연쇄변수에 카운터를 XOR하는 MD 해쉬구조이다. ARIRANG-2564 ARIRANG-512의 압축함수『는 각각 512비트와 1024비트의 메시지 블록을, 256비트와 512비트의연쇄변수를 입력받아 256비트와 512비트의 출력을 생성한다. ARIRANG-256과 ARIRANG-512의 구조는 ARI RANG-256의 워드 사이즈가 32비트인반면 ARI RANG-512의 워드 사이즈가 64비트임을제외하면 동일하다. 연쇄변수의 초기치 H°는 설계자가 제안한 고정된 상수이다. 카운터의 초기치 Ctr'은 0이다. 길이가 512비트 (ARIRANG-256) 또는 1024비트 (ARIRANG-512)의 배수가 되도록 패딩 된 메시지 M = M I I...I |MN°] 주어지면 다음과 같은 과정을 통하여 해쉬값 HN이 생성된다.
ARIRANG-256의 압축함수에서는 메시지 스케줄이 512비트 메시지 블록 로부터 32개의 메시지 워드 Wo, .… W31 을 생성하고, 〔표 1〕과 같이 정의되는 인덱스 함수 0에 따라 j번째 단계。= 0....... 39)에 두 메시지 워드 W0(2j), Wo(2)+1)을 적용시킨다.
[표 1] 인덱스 함수 O의 입줄력표
메시지 워드 Wo, … , W31은 다음과 같은 방법으로 생성된다.
- 512비트 메시지 블록 M이 16개의 워드 Wo,
.... W15로 분할된다. (M = Woll ... IIW15)
- 나머지 워드들은 아래와 같이 계산된다. 여기서 Ko....... K15는 상수이다.
#
단계함수 “Step”은.[그림, 1〕과.같으며 압축함수 내부에서 총40회 .반복 척용된다.. 단계함수를 step으로 표현하无 다계함수내부에 사용된'G 함수는 ARIRANG -256의 경우 A幽와 동일한 네 개의 8비트 입출력 S-box와개의. 4x4 MDS 행렬의 합성이며, ARIRANG-512의 경우 여덟 개의 8비트 입출력 S-box와 1개의 8×8 MDS 행렬의 합성이다. G 함수는 비선형. 치환(nonlinear permutation) 이라는사실만 공격에 이용되므로, '그 이상의 상세한 설명은 생략하기로 한다. [번째 블록에서 연쇄변수 과 메시지 블록 M가 압축함수 “compress"에 입력되면 우선 메시지워드. Wo, …, W31 이 생성되고 단계함수 step을 반복 적용하는 다음과 같은 과정을 거쳐 그 다음 연쇄변수인 if가 출력된다. statej는 state」= (aj, bj, cj, 由但岳名血)로 정의된다.
그림 1. j번째 단계함수 stepj
III. 역상공격기법 및 공격에 이용된 성질들
3.1 Aoki와 Sasaki의 역상공격기법
어떤 해쉬값 IF의 역상(preimage)은 그 해쉬값을 생성해주는 메시지 을 의미한다. MD 구성법을 따르는 해쉬함수들에 대하여 Sasaki 와 Aoki의 역상공격〔2-4〕은 해쉬값 IF1이 주어지면 압축함수 F에 대하여 F(Hn-1, Mn) = IF을「만족시키는 hn<, mn을 찾는 알고리즘을 구성한 후, . .그것을 이용하여 역상을 찾는 알고리즘을 구성한다. 보통;'의때 nF에서 패딩되었을 때 메시지 길이의:이진 코드에 해당하는 부분을 상수로 고정시킬 수.있다면 1-블록 또는 2-블록 역상을 찾는 공격이 가능하게 된다.「본논문에서 공격의 대상인, ARIRANG의 '축소퇀압축. 함수들에 대해서는 그것이. 가능하다「 Sasaki와 Aoki의 역상공격의 프레임워크를 ;:.적용하는 ARIRANG에 대한 2-블록 역상을 찾는 과정은, 다음과 같이 구성된다.
1. 해쉬값 H2*] 주어지면 압축함수, F에 대하여 F(H1, M2) = 质를 만족시키는 H4와.!泌을 찾는 알고리즘을 구성한다. 이때 1개의.
을 찾는데 소요되는 계산복잡도를 2*라 하고 H1 의 길이를 n이라 하자.
2. 1의 알고리즘을 반복실행하여 2毎曷/2개의 任宀 1泌)을 생성하여 테이블에.저장한다.
3. 2(n+x)/2개의 메시지.:M녜 대해 **'(H喳 CtrlM】)값을 구하여 테이블에 X®Ctr2 = H1 을 만족하는 (HLm?)쌍이 있는지 체크한다. 그러한 쌍에, 대하여, 연결된 메시지 =M2은 h2의 역상이 된다.
위와 같은 역상공격은 2(n + x)/2 + l의 복잡도를 요구한다.
위의 역상공격과정에서 첫 번째 단계의 (H、m2)을 찾는 알고리즘은 중간일치공격 (Meet-irrthe-Middle Attack) 기법을 이용한다. 압축함수의 내부상태를 표시하는 변수 statei (i = 0 40)는.모든 i에서 states로부터 stated 계산할 수 있으며, 심지어는 stateo 또한 state®으로부터 H?의 XOR을 통해 계산될 수 있으므로 stateo -* statei s'tate4o 7 stateo과 같은 순환수열로.볼 수 있다I 압축함수에 중간일치 기법을 적용하는 가장 기본적인 방법은'이순환수열을 적절하게 두 개의 독립적인 부분으로 분리하는 것이다. Sasaki와 Aoki〔2-4〕는 이러한 독립된 부분을 chunk라고 명명하였다. 독립성을 갖기 위해서는 각 Chunk는 다른 Chunk에서는 전혀 사용되지 않는 중립 워드를 적어도 하나 이상 포함해야한다. 두 chunk 중 첫 번째 및 마지막 단계를 포함하는 것을 Outer Chunk, 중간 단계들을 포함하는 것을 Inner Chunk라 부른다. 전체 단계를 두 개의 Chunk로 분리할 경우 두 개의 경계선이 형성된다. 이 때 한 경계선은 공격이 시작되는 부분이며, 다른 경계선은 일치성을 조사하는 부분이 된다.
Sasaki와 Aoki는 중간일치기법의 효과를 극대화시키기 위하여 두 Chunk간의 경계선들이 연속된 몇 단계로 구성되도록하고 그 단계들을 뛰어넘어 일치성 체크를 성공시키도록 Partial-Matching, Partial- Fixing, Local-Collision과 같은 여러 기법들을 제시하였다〔2-4〕. 그러나 Sasaki와 Aoki가 공격하였던 이전 해쉬함수 알고리즘들에 비하여 ARIRANG 의 단계함수는 연쇄변수들 간의 연관성이 높고 G 함수가 블록암호와 같은 비선형성과 차분전파성질 등을 제공하기 때문에 Partial-Fixing 및 Local- Collision 기법은 적용되기 어려움을 확인하였다. 특히, Local-Collision 기법은 공격이 시작되는 경계선 구간 (두 Chunk간의 두 간격 중 하나)을 공략하기 위한 것인데 이것의 적용이 불가능하므로 ARIRANG의 공격에서는 두 Chunk간의 간격이 한 개 뿐인 형태로 공격이 시작된다. Partial-Matching 기법은 두 Chunk의 일치성을 확인하는 경계선'句 Matching- Check 구간에서 중립 워드와 관계없는 부분을 우선적으로 확인하는 것으로서, 시간복잡도를 절약하고 여러 단계를 건너뛰어 일치성을 확인할 수 있도록 하는 방법이다. ARIRANG에서는 최대 6단계까지 Partial- Matching을 적용할 수 있다.
3.2 워드이동성질
ARIRANG의 압축함수에서는 각 메시지 워드를 필요에 따라 최대 4단계까지 위로 옮길 수 있다. 이것을 ARIRANG의 워드이동성질이라 부른다. ARIR ANG의 압축함수에 워드이동성질이 존재하는 이유는 G함수를 제외한 모든 부분이 비트연산 관점에서 선형이기 때문이다. 정방향으로 계산하면 G함수의 입력에 메시지 워드가 영향을 주게 되어 있으므로 워드의 이동이 어려우나, 역방향으로 계산하면 G함수와 독립적으로 4단계까지 이동이 7]능하다. 이 성질을 적절하게 활용하면 선택된 중립워드에 대하여 가장 공격에 유리하도록 Chunk를 구성할 수 있다.
[그림 2) 메시지 워드 Wo(2j)와 W0(2i+i)의 이동 (단계 j에서 단계 j-4까지)
3.3 Feedforwardl과 중간일치기법의 관계
ARIRANG의 설계자들은 압축함수에 대한 중간일치 공격을 차단하기 위한 방법으로 Feedforward】을적용하였음을 주장하였다〔1〕. 중간일치 기법을 적용해본 결과, Feedforward]의 위치가 공격의 7]능성 여부를 결정하는 중요한 요소임을 파악할 수 있었으며 그것은 다음과 같이 정리될 수 있다.
1. Inner Chunk가 Feedforwardr을 포함하면 공격 불가능
2. Matching-Check 구간이 Inner Chunk와 Outer Chunk의 상위 경계선을 포함하고, Outer Chunk의 하위 구간이 Feedforwardl 을 포함하면 공격불가능
3. Matching-Check 구간이 Inner Chunk와 Outer Chunk의 하위 경계선을 포함하고, Outer Chunk의 상위 구간이 Feedforwardl을 포함하면 공격불가능
IV. ARIRANG의 단계 축소 버전들에 대한 공격
4.1 33단계 OFF 버전에 대한 공격
OFF 버전의 압축함수에 대하여 공격에 가장 적합한 chunk를 조사한 결과, 단계 1부터 단계 33까지의 33단계 OFF 압축함수에 대하여 W7과 W9를 중립 워드로 이용하는 것이 가장 좋은 형태라는 결론을 얻을 수 있었다. OFF 버전이므로, Feedforwardee 여전히 .단계 -19의 출력 에 작용한다. W과 W9를 중립 워드로 이용하고 워드 이동 성질을 적절하게 적용하면, 전체 단계를 [그림 3〕과 같이 Inner Chunk, Outer Chunk, Matching-Check 구간으로 나눌 수 있다. 워드의 이동에 따라 발생하는 단계 함수 정 .의에 대한'약간의 변화에 대해서는 설명을 생략하며, 각 」번째 단계함수의 연산 및 역연산을 각각 statei+i f tep/stateD 과 statei <- stepf1 (statei+i)5. 표시하기로 하자.
[그림 3] 33 단계 OFF 압축함수의 단계 분할
(W7과 W9외 다른 메시지 워드들은 생략)
Matching-Check 구간에서 수행되는 Partial- Matching으 다음과 같다. 우선, 단계 18의 입력 statejs = (a」8, bi8, ci8, di8, ei8, fi8, gi8, hi8)과 단계 21 의 출력 state% = (a22, b22, C22, d22, e22, f22.g22, h22) 이주어졌다고 가정하자. 그러면 states로부터 W7과 상관없이' 부분계산 X] = hl8®G(ei8©Wio)<7®W9'a' 수행할 수 있다. 또한, St, ate22로부터 W9와 상관없이 ■부분계산 xo = G(G(b22)®C22)®G(b22)<13®d22® br을 수행할 수 있다. 만일 두 chunk가 일치한다면 반드시 XI = xo이 만족되어야하므로, 이것이 성립하는지 체크한다.
해쉬값 IF 가 주어졌을 때 FCtf.M2) = FT 를 만족시키는 (H'nF)을 찾는 과정은 다음과 같이 설명된다.
1. b?, C7, d?, ©7, ee, fe, ge, h&을 랜덤하게 선택하여 고정한다. W7과 W9를 제외한 다른 모든 메시지 워드들 또한 랜덤하게 선택하고 고정시킨다, . 특히 W13, W14. W15는 이것이 2-블록 공격으로 귀결될 것을'고려하여 적절한 값으로 선 ■ 택된다. (예를들면, W13은 0x80...0으로 고정시키고. Wm에는 0, 、Wi5에는 29워드의 비트 길이의 이진표현을 대입한다.)
2. W9의 가능한 모든 값들에 대하여 a7. f7. g7. h7 을 계산하고 1 = 7, .... 17에 대하여 , statei+i <—stepJstateD을 계산하여 states = (aig....... hi8)을'W9, xi = hi8®G(ei8® Wn))«7$W9와 함께 테이블에 저장한다.
3. W7의 가능한 각 값에 대하여 a6, b6. C6, d6을계산하고 다음과 같은 계산을 수행한다.
#
위의 계산을 통하여 얻어지는 각 state22로부터 xo = G(G(b22)€BC22)&G(b22)5&d22《Bb 僵 계산하고 Xo = XI를 만족시키는 (W9, Statei8, xi)쌍이 테이블에 있는지 조사한다. 만약 그러한 쌍이 '있다면 W7과 W9를 이용하여 나머지부분에 대한 일치성도 조사한다. 모두 일치하는 쌍이 발견되면 그것에 대응되는 fF = statei과 M2 = Woll...||W15를 출력하고 알고리즘을 종료한다.
[그림 4〕의 알고리즘을 이용하여 이전 절에서 설명된 대로 2-블록 역상을 찾는 공격알고리즘이 구성될 수 있다. ARIRANG-256의 경우, .위의 과정이 알맞은 (可部2)를 출력할 확률은 약 232 - 232 . 2尹6 =.
[그림 4] 33단계 OFF 압축함수에 적용되는 Partial-matching 기법
2项*2이다. 그러므로 위의 과정을 아92번 반복하면 한 번의 성공을 기대할 수 있다. 위의 과정은 약 2‘2번의 33단계 압축함수연산을 요구하므로 이 알고리즘의 복잡도는 2^4이다. 이것은 다시 2?句의 복잡도를 갖는 역상 공격 알고리즘으로 변환될 수 있다. 같은 방식으로 계산하면. ARIRANG-512에 대한 역상공격 알고리즘의 복잡도는 2’家이다.
4.2 31 단계 MFF 버전에 대한 공격
MFF 압축함수에서는 Feedforwardl# 중간위치에 해당하는 단계함수의 출력값에 작용하는 것으로 고려한다. 그러므로, 이전 절에서 공격된 33단계 압축함수를 OFF가 아닌 MFF로 고려하면 Feedforwardl 이 단계 16 또는 17의 출력에 작용하게되어 Partial- makching을 차단하므로 공격이 불가능하다. 그러나, MFF 압축함수의 경우 상위 단계를 제외시킴으로써, Feed forwarde의 위치를 아래로 옮기면 공격이 가능하다. 단계 3부터 단계 33까지의 31단계 MFF는 Feed forward】이 단계 18의 출력에 작용함을 가정할 경우, [그림 3〕에서 단계 19에 위치했던 W9를 다시 4단계 위로 옮김으로써[그림 5〕와 같은 Partial- matching을 적용할 수 있게 되어 공격이 가능하다. 복잡도는 이전 절의 공격과 동일하다.
[그림 5] 31단계 MFF 압축함수에 적용되는 Partial- matching 기법
V. 결론
본 논문에서는 해쉬함수 ARIRANG의 축소 버전에 대한 역상공격을 제시하였다. ARIRANG의 압축함수의 축소는 OFF와 MFF의 두 가지 버전으로 고려되었는데. OFF는 33단계까지, MFF는 31단계까지 공격이 가능함이 확인되었다. 본 논문에서 소개된 모든 공격들은 ARIRANG-256에 대하여 약 22如번의 압축함수 연산을, ARIRANG-512에 대하여 약 2㎛번의 압축함수 연산을 소요한다. 이것은 ARIRANG 의 역상공격에 대한 첫 안전성 분석결과이다. 여기에는 압축함수 내부에 적용■.되는 메시지 워드들의 이동성이 공격에 주요하게 사용되었다. 메시지 워드의 적용에 XOR 대신 덧셈 연산을 사용하면 메시지 워드의 이동을 차단할 수 있으며 알고리즘의 효율성도 저하되지 않으므로 안전성을 개선하는 간단한 방법으로서 고려될만하다.
참고문헌
- D.H. Chang, S.H. Hong, C.H. Kang, J.K. Kang, J.S. Kim, C.H. Lee, J.S. Lee, J.T. Lee, S.J, Lee, YS. Lee, J.I. Lim, and J.C. Sung, 'ARIRANG: SHA-3 Proposal,' available at http://csrc.nist.gov I groupsIST/hash/sha-3/Ro undll
- Y. Sasaki and K. Aoki, 'Preimage Attacks on Step-Reduced MD5,' ACISP 2008, LNCS 5107, pp. 282-296, 2008
- Y. Sasaki and K. Aoki, 'Preimage Attacks on 3, 4. and 5-Pass HAVAL,' ASIACRYPT 2008, LNCS 5350. pp. 253-271. 2008
- Y. Sasaki and K. Aoki, 'A Preimage Attack for 52-Step HAS-160,' ICISC 2008, LNCS 5461. pp. 302-317, 2008