Ⅰ.서론
무선 네트워크에 대한 보안 메커니즘으로 설계된 WAPI(WLAN Authentication and Privacy Infrast ructure)는 IEEE 802.1 li[4]의 대체 목적으로 중국 표준협회 SAC에 의해 국제 표준 기구 ISO에 제출되었다. WAPI와 IEEE 802.1H는 모두 ISO/IEC 8802-11 WLAN에 대한 보안 메커니즘 표준으로 제안되었으며 두 스킴은 데이터를 암호화하기 위해 IEEE 802.111가 AES[5]를 사용하는 반면 WAPI는 블록 암호 SMS4[9] 를 사용한다. AES와는 다르게 SMS4는 딩-시 SMS 4의 정확한 알고리즘 구조가 공개되지 않았기 때문에 체계적이고 논리적인 분석에 의한 안전성을 보장받지 못하였다. 부분적으로 이러한 이유가 반영되어 2006년 3월에 IEEE 802.1 li가 국제 표준으로 채택되었다. 그렇지만 현재 WAPI는 중국 무선 네트워크의 표준으로서 사용되고 있으며 SONY와 같은 많은 국제적 기업 에서 자사의 생산된제품들에 WAM를 지원하고 있다.
SMS4는 2006년 1월에 정확한 알고리즘이 공개되었다. SMS4는 128-비트 비밀키를 가지는 128-비트 크기의 블록 암호이다. 현재까지 SMS4 블록 암호에 대한 가장 효과적인 암호 분석 결과는 전체 32-라운드 중 16-라운드 SMS4에 대한 불능 차분 공격이다[8]. 본 논문에서는 20-라운드 SMS4에 대한 차분 공격을 소개한다. Biham등에 의해 제안된 차분 공격μ]은 선형 공격과 함께 현재까지 블록 암호에 대한 가장 강력한 분석 방법 중 하나이다. 차분 공격은 평문과 암호문 사이에 확률 Q를 가지는 차분 특성을 이용한다, 공격자는 차분' 특성의 입력 차분을 만족하는 선택 평문쌍에 대해 비밀키 K로 암호화된 암호문 쌍을 얻고 처음 또는 마지막 몇 라운드 키를 추측하여 평문쌍 또는 암호문쌍이 원래의 차분 특성으로부터 유도된 출력 차분과 일치하는지 확인한다. 본 논문에서 소개하는 차분 공격은 16-라운드 차분 특성을 이용하여 처음 1-라운드, 마지막 3-라운드 키 복구공격(4R.Attack)을 수행한 후 최종적으로 128-비트 비밀키를 복구한다. 본 논문의 분석과 기존 SMS4에 대한 분석 결과 및 세계 표준 블록 암호 AES 의 기존 분석 결과들에 대한 비교는 [표 1]과 같다. 본 논문의 구성은 다음과 같다. 2절에서는 축소된 SMS4에 대한 차분 공격을 소개하기에 앞서 본 논문에서 사용하는 표기법을 정리하고 SMS4에 대한 간략한 알고리즘을 설명할 것이다. 3절에서는 SMS4에 대한 16-라운드 차분 특성을 구성하고 4절에서, 16-라운드 차분 특성을 이용한 20-라운드 SMS4의 차분 공격을 소개한다. 마지막으로 5절은 본 논문의 결론으로 구성된다.
(표 1) SMS4 및 AES의 분석 결과 비교
Ⅱ.표기법 및 SMS4
본 절에서는 본 논문에 전반적으로 사용되는 표기법을 정리하고, SMS4 블록 암호를 간략히 소개한다.
2.1 표기법
본 논문의 표기법은 다음과 같다. 단 워드의 비트 위치는 가장 오른쪽 최하위 비트부터 0으로 시작하며, 왼쪽으로 갈수록 커진다.
- ® : 비트별 배타적 논리합.
- : i 비트만큼 왼쪽으로 순환이동. - " 알 수 없는 값.
- 0 = 0, 1, 2, 3): 32비트 워드 X의 顶번째 최하
2.2 SMS4 블록 암호 소개
SMS4는 전체 32-라운드 불균형 Feistal network 구조이다. 블록 크기와 비밀키 크기는 128.비트로써 각각 평문과 키 128-비트를 입력받아 128-비트의 암호문을 출력한다 평문을 4개의 32-비트 워드 乌) 로 표기하고 认=1, 2, ..., 32)번째 라운드 암호화후의 중간값을 X로 표기한다. SMS4의 전체 32-라운드 암호화 과정은 다음과 같다.
1. 128-비트 평문 户=(%, 4, 均扁)을 입력한다.
2. 心=1, ..., 32)번째 라운드 암호화 과정은 다음과 같다.
-当+3=4 — 1任辺(项4$4+1任比+舟照)),
_ X =(44 + 1, 4 + 2>4 + 3),
3. 암호문 鼎* = (丛2, 鸟3, 丛4, 只5)을 출력한다.
여기서 R%는 i 번째 라운드에 대한 32-비트 라운드키이다. SMS4의 라운드 함수에는 두 가지 함수가 사용된다. 확산의 성질을 주는 선형 변환 함수 2?(x)=i®
(<"彖2)①伝《10:任任(/嘰:24)와 S 박스를 사용하는 비선형 함수 S(;r)가 사용된다. SMS4의 S 박스는 동일한 네 개의 8×8 S 박스를 사용한다. 초기에 SMS4에 사용되는 S 박스의 설계원리가 공개되지 않았지만 Fen등에 의해 AES의 S 박스를 기반으로 설계됨이 밝혀졌다[7]. 네 개의 입력 바이트에 대해 함수 S(®) 는 다음과 같이 정의된다([표 2] 참조 [7]).
〔표 2) SMS4의 S 박스 테이블 (s(0x01)=0x90)
입력: X= (z/"2, a:3)W(咨)4,
줄력: S(X)=(3(Ro), S(a;i), S($2), sS:3)),
여기서 sG"는 SMS4의 8×8 S 박스이다. 본 논문에서는 합성 함수 D。S를 비선형 함수 F로 표기한다. SMS4의 복호화 과정은 사용되는 라운드 키가 암호화 과정과 반대로 사용되는 것을 제외하고 암호화 과정과 동일하다. [그림 1]은 SMS4의 라운드 함수와 라운드 함수의 F 함수를 나타낸다.
[그림 1] (a) 라운드 함수, (b) F 함수
SMS4의 키스케쥴 함수는 128-비트 비밀키 MK를 이용한다. 입력받은 비밀키 MK를 네 개의 32-비트 워드 (物広「以?弓, 邮)로 표기하고 j 번째 라운드 키를 RKj로 표기한다。=1, 2, ..., 32). SMS4의 키스케쥴함수는 SMS4의 라운드 함수와 거의 동일하다. 차이점은 라운드 함수의 선형 함수 대신에 다음의 선형 함수 .D'(z) = a;CD(;r<:1.3)$(:r«:23N] 사용된다. 비밀키는 system parameter라 불리는 고정된 상수와 XOR 연산 되어 SMS4의 키스케쥴 함수의 입력값으로 사용된다. SMS4의 라운드 키가 생성되는 과정은 다음과 같다.
#
j 번째 라운드 키 半广%+3=缶-1由〃'(S (为, 为+|, 缶+2明为))를 출력한다. 여기서 CK, 는 라운드 상수로서 C缶 = ((28"), (28" + 7), (28 ”+14), (28 ” + 21))로 계산된다. 라운드 상수는 네 개의 바이트로 구성되어 있으며 각각 의연 산은 Z%6 에서 수행된다.
Ⅲ.SMS4의 16-라운드 차분 특성 구성
본 절에서는 SMS4의 16-라운드 차분 특성을 소개한다. SMS4의 경우, 비선형 함수인 S 박스만이 혼돈의 성질을 주는 과정으로 이 과정을 제외하면 모두 확산의 성질을 주는 과정이다. 따라서 XOR 차분 관점으로 살펴본다면 S 박스를 제외한 모든 과정에 대하여 입력 차분에 대한 출력 차분의 모양을 확률 1로 알 수 있다. SMS4의 S 박스는 임의의 0이 아닌 입력 차분에 대하여 127개의 출력 차분이 존재한다. 127개의 출력 차분 중 하나의 값은 확률 2“을 가지며 나머지 126개의 출력차 분의 확률값은 2"로 나타난다. 이 사실은 간단한 컴퓨터 프로그램을 통해 쉽게 증명할 수 있다. 본 차분 특성에서는 F 함수에 대한 두 개의 차분 특성을 이용한다. F 함수에 대한 첫 번째 차분 특성은 입력 차분 <1 = (鷲00000%와 출력 차분 0 = 72a奴奶; 이다. 이 경우, F 함수에 능동 S 박스는 한 개로써 본 차분 특성을 만족할 확률은 2* 이다. 두 번째 차분 특성은 입력 차분 0 = T* MdEbf 와 출력 차분 a = 0000000%이다. 이때의 능■동 S 박스는 네 개로써 확률은 2’气=(2’)4)로 나타난다([그림 2] 참조). F 함수에 대한 위의 세 가지 차분 특성에는 세 개의 차분값 a, 0, a朝이 존재한다. 따라 서평 문을 구성하는 네 개의 각 32-비트 워드에 대하여 앞의 세 개의 차분값과 0을 포함한 네 개의 차분값으로 평문쌍을 만들 수 있다. 간단한 컴퓨터 프로그램을 이용하여 모든 가능한 256(=疽)가지의 평문의 입력 차분에대한 출력 차분과 확률을 조사했다 본 논문에서 소개하는 차분 공격은 그 중 확률 2皿8을 넘지 않으면서 가장
(그림 2) F 함수 차분 특성 (표 3) SMS4에 대한 16 라운드 차분 특성
많은 라운드를 나타내는 차분 특성 중 한 개의 차분 특성을 이용한다. 공격에 사용되는 차분 특성의 정확한 차분 값들과 확률은 [표 3]과 같다.
〔표 3] SMS4에 대한 차분 공격 모델
Ⅳ.SMS4에 대한 차분 공격
본 절에서는 20-라운드 SMS4의 차분 공격을 소개한다. 앞 절에서 소개한 확률 2422의 16-라운드 차분 특성을 2 라운드에서 17 라운드까지 적용한다. 본 차분 공격은 먼저 확률 1로 1-라운드 차분 특성을 16-라운드 차분 특성에 구조체를 이용하여 덧붙인 후, 마지막 3 라운드(18~20 라운드) 키 복구 공격을 수행한다. 따라서 우선 확률 1로 16-라운드 차분 특성을 17-라운드 차분 특성으로 확장하는 방법을 살펴보고, 이렇게 만들어진 17-라운드 차분 특성을 통한 20-라운드 공격을 소개한다. 본 20-라운드 차분 공격에 대한 모델은 [그림 3] 과같다. 확률 1로 16-라운드 차분 특성을 17-라운드로 확장하는 방법은 첫 라운드 후의 출력 차분값이 원래의 16-라운드 차분 특성의 입력 차분값(0, <3, 0, aa泌)이 되도록 하는 평문쌍을 만드는 것이다. 이런 평문쌍을 만들기 위해서 다음과 같은 구조체(Structure)를 구성한다. 고정된 각각의 32-비트 워드』, B, (에 대하여 다음의 2, 2개의 평문쌍을 구성할 수 있다.
[그림 3] SMS4에 대한 차분 공격 모델
고정된 A, B, C, a, 0에 대해 1 라운드 키 砺의 값을 추측하여 2袂개의 CP, F) 평문쌍을 구성한다. 만약 RK、을 올바로 추측하였다면 CP, P)의 1 라운드 후의 차분 값이(0, 3, 0, a©/3) 으로 앞 절의 16-라운드 차분 특성의 입력값과 동일하게 된다. 한 개의 구조체당 2꼬개의 평문쌍이 있으므로 고정된 32-비트 워드 A, B, C 의 값을 변화시켜 2"개의 구조체를 준비한다. 따라서 앞 절에서 소개한 차분 특성을 만족하는 개의 평문 쌍을 선택할 수 있다. 선택된 평문쌍에 대하여 비밀키 K로 암호화된 20-라운드 SMS4의 암호문쌍 C=(C0, q, q, q), c=(G'C, q'C)을 요구한다.
앞 절의 차분 특성이 만족할 확률은 尸끄이므로 전체 2* '개의 평문쌍 중에서 본 차분 특성을 만족하는 옳은 평문쌍(right pair)의 기대값은 8개로 계산할 수 있다. 전체 암호문쌍 중에서 옳은 평문쌍을 찾기 위해 20-라운드 SMS4 암호문쌍의 두 개의 32-비트 워드 차분값을 확인함으로서 다음과 같은 여과 과정 (Filtering)을 수행할 수 있다([그림 3] 참조). 17 라운드 후의 암호문 쌍의 출력 차분값은 CSqQR, 。, /?) 로서 18 라운드의 F 함수의 32■비트 워드 입력 차분값은 a = 0000000%이다. 18 라운드 키와 17 라운드후의 정확한 중간값을 알 수 없기 때문에 F 함수의 정확한 출력 차분값은 알 수 없지만 SMS4의 S 박스의 성질에 의해서 a에 대한 정확히 127 개의 출력 차분값을 알 수 있다. 이 127개의 차분 값들의 집합을 6>로 표기하자. 그러면 옳은 평문쌍에 대해서 20-라운드 SMS4 암호문쌍의 첫 번째 32-비트 워드의 차분 값은, 가 되고 두 번째 32-비트 워드의 차분 값은 집합 4= {入卸이에 속하게 된다. 임의의 두 32-비트 워드에 대하여 첫 번째 워드의 차분값이 伊일 확률은 2d이며, 두 번째 워드의 차분값이 집합 a에 속할 확률은 2当=127 . 2項)이므로 전체 암호문쌍 중 여과되어 남는 쌍의 개수는 268(=2125 . 2* - . 产)이다. 이 여과된 암호문 쌍들을 테이블에 저장한다. SMS4의 마지막 3R-Attacke 다음과 같다.
20 라운드 키의 최하위 1 바이트 及或.。를 추측한다. 저장된 각각의 20-라운드 SMS4의 암호문쌍에 대해 20 라운드 F 함수의 첫 번째 S 박스 출력 차분 값을 계산한다. 즉, 다음의 두 식을 계산한다.
#
1)(項, 及或。)에 대해 올바른 키를 추측했을 때 계산된 암호문쌍이 옳은 암호문쌍이라면 1의 값은 <5 의 값과 일치하게 된다. 따라서 두 값이 일치하지 않는다면 계산된 암호문쌍은 버린다. 옳은 암호문쌍이 아니라면 두 값이 같을 확률은 키 값에 상관없이 랜덤한 확률 2&을 따르게 된다. 이 과정에서 260(=268 . 尸)개의 암호문쌍이 남게 된다.
2) 20 라운드 키의 최하위 두 번째 바이트 俱心를 추측한다. 여과된 각각의 20-라운드 SMS4의 암호문쌍에대해 20 라운드 F 함수의 두 번째 S 박스 출력 차분값을 계산한다. 즉, 다음의 두 식을 계산한다.
#
앞 단계와 마찬가지로 (沔, 7?為购, 瓯0, ])에 대해 올바른 키를 추측했을 때 계산된 암호문 쌍이 옳은 암호문쌍이라면 T의 값은 d의 값과 일치하게 된다. 따라서 두 값이 일치하지 않는다면 계산된 암호문 쌍은 버린다. 옳은 암호문쌍이 아니라면 두 값이 같을 확률은 키 값에 상관없이 랜덤한 확률 2”을 따르게 된다. 이 과정에서 2”(=2的 . 尸) 개의 암호문쌍이 남게 된다.
3) 남아있는 20 번째 라운드 두 개의 바이트 키와 19 번째 라운드 각 바이트 키에 대해 단계 1, 2의 과정을 동일하게 적용한다. 마찬가지로 S 박스의 8- 비트 출력 차분값을 비교하여 부분적으로 복호화된 암호문쌍을 여과할 수 있다. 이 단계까지 대략 24(=2” . (2-8)6)개의 암호문쌍이 남게 된다.
4) 18 라운드 키의 최하위 1 바이트 項를 추측한다. 마찬가지로 S 박스의 출력 차분값을 비교하여 암호문 쌍을 여과한다. 이 단계에서는 이미 공격의 시작 과정에서 18 라운드 F 함수의 출력 차분 값들에 대한 여과과정을 수행했기 때문에 대략 2= "=島)의 확률로 암호문쌍이 여과된다. 따라서 살아남는 암호문쌍의 개수는 2'3(=24 . 2")로 기대할 수 있다. 반면 18 라운드까지 올바른 키가 추측됐을 때 차분 특성을 따르는 올바른 평문쌍의 개수는 8개로 기대할 수 있다. 즉, 마지막 단계까지 남아 있는 암호문쌍의 개수가 6개 이상인 키를 올바른 及日, 照。, 及朱, 左每e에 대한 후보키로 저장한다.
5) RK, 를 이용하여 남아있는 각 평문쌍에 대하여 1 라운드 암호화후의 중간값을 계산하고 이 값을 U = (Ug.UpUj.Mj), U = (u Q, u vu S. 표기한다. 碎, 0을 추측하고 다음의 식을 계산한다.
#
위의 방정식을 만족하는 6개 이상의 평문쌍이 존재하면, 추측된 키값들을 RK\, RKm, RK\s, RK1M> 俱, o에 대한 올바른 키후보로서 출력한다.
6) 출력된 丑缶, RK对 吼, RKao, 明, °값에 대해서 비밀키의 남아있는 16 비트를 전수 조사하여 복구한다.
본 차분 공격의 데이터 복잡도는 2^6선택 평문이며, 테이블에 2"개의 선택-평문 암호문쌍을 저장해야 하므로 메모리 복잡도는 2驾=2" - 16 . 2)바이트를 요구한다. 또한 본 차분 공격의 시간 복잡도는 다음과 같이 계산할 수 있다. 단계 1에서의 시간 복잡도는 추측된 40 비트의 키(明, 左&眼)에 대해, 2晩개의 암호문쌍을 한 개의 S 박스를 통하여 부분적으로 암호화하므로 2102-68 (">8 . 严 . 2 . 会 . j) 20-라운드 SMS4의 암호화 연산이다. 단계 2에서의 시간 복잡도는 추측된 48 비트의 키(R色, 件如, 及弓“)에 대해, 2笏개의 암호문쌍을 한 개의 S 박스를 통하여 부분적으로 암호화하므로 2102'68 (® 260 . 240'8 . 2 . 会 . 扌) 20-라운드 SMS4의 암호화 연산이다. 매 단계마다 여과되어 버리는 암호문 쌍의 개수와 추가적으로 추측해야 되는 키 비트들의 수는 동일하므로 18 라운드의 첫 번째 바이트 키를 추측할 때까지 시간 복잡도는 2皿68 20-라운드 SMS4 암호화 연산으로 동일하다. 그러므로 단계 4까지의 시간 복잡도는 대략 产統(次 ., 瞄)20라운드 SMS4 암호화 연산이다. 단계 5에서의 시간 복잡도를 계산하기 위해서는 단계 4까지 남아있는 부분키의 개수를 계산해야 된다. 포아송 분포 X~尸尻(人 = 2-3), Prr[X>6]^2"33'5 에 의해서, 단계 4까지 살아남는 키의 개수는 대략 270'5(=2i04 ・ 2淄5)로 계산할 수 있다. 그러므로 단계 5 에서의 시간 복잡도는 대략 2赤99 (七 2?庭 . 28 . 7 . 2 . 1 1
茹 . 彳)이다. 단계 5에서 잘못 추측된 키에 대해서 6개 이상의 평문쌍이 식을 만족할 확률은 2*)7") 2(=(2 이기 때문이}, 2眾(=2心 . 2** . 2也)개의 부분키들이 올바른 키의 후보로서 살아남는다. SMS4의 키스케쥴은 암호화 알고리즘과 동일한 구조를 갖기 때문에 비밀키의 남아있는 비트들은 전수 조사를 통하여 복구할 수 있다. 연속적인 72 비트 부분키 RKW, RKw, KA依。는 최대 2363개의 후보를 갖고 있으므로, 단계 6에서의 시간 복잡도는 2925(=236'5 . 2'址72)보다 적은 암호화 연산이 요구된다. 따라서 본 차분 공격의 전체 시간 복잡도는 대략 气=9 . 210Z68) 암호화 연산이다. 올바른 키에 대하여, 본 차분 공격의 성공률은 포아송 분포 X-Pm (入 = 2'3)에 의해서 Pr(X>6)= 0.7을 갖는다.
Ⅴ.결론
본 논문에서는 SMS4에 대한 20라운드 차분 공격을 소개했다. 차분 공격을 이용하여 2"6개의 선택 평문의 데이터 복잡도와 2"繇5의 시간 복잡도를 가지고 20-라운드 SMS4의 비밀키를 복구하였다. 본 논문의 이론적인 분석 결과는 축소된 SMS4에 대해서 설계자가 제시한 안전성을 만족하지 못함을 의미한다. 또한, 본 논문에서 제시된 차분 특성은 향후 SMS4의 다른 안전성 분석 기법에 적용될 것으로 기대된다.
* 본 연구는 지식경제부 및 정보통신연구진흥원의 대학 IT연 구센터 지원사업의 연구결과로 수행되었음 (IITA-2008- (C1090-0801-0025))
References
- E. Biham, A. Shamir, 'Differential crypt a nalysis of DES-like cryptosystems', CRYPTO'90, LNCS 537, pp. 2-21, Springer-Verlag, 1990
- A. Biryukov, 'The Boomerang Attack on 5 and 6-Round AES', Advanced Encryp tion Standard-AES. LNCS 3373, Sprin ger, Heidelberg, pp. 11-16, 2005
- N. Ferguson, J. Kelsey, S. Lucks, B. Sch neier, M. Stay, D. Wagner, and D. Whiti ng. 'Improved cryptanalysis of Rijndael', FSE'OO, volume 1978 of LNCS, Springer-Verlag, pp. 213-230. 2001
- The Institute of Electrical and Electronics Engineers (IEEE), http://grouper.ieee.org/groups/802/11
- National Institute of Standards and Technology, U.S.A., 'Advanced Encryption Standard(AES)', FIPS-197, 2001
- J. Cheon,, M. Kim, K. Kim, J. Lee, S. Kang, 'Improved Impossible Differential Cryptanalysis of Rijndael and Crypton', ICISC'01, LNCS 2288, Springer, Heidelb erg, pp. 39-49, 2002
- F. Liu., W. Ji,, L. Hu,, J. Ding,, S. Lv,, A. Pyshkin, R.P. Weinmann, 'Analysis of the SMS4 block cipher', ACISP'07, LNCS 4586, Spriger-Verlag, pp. 85-100, 2007
- J. Lu, 'Attacking Reduced-Round Versions of the SMS4 Block Cipher in the Chines WAPI Standard', ICICS'07, LNCS 4861, Springer-Verlag, pp. 306-318, 2007
- Office of State Commercial Cryptography Administration, P.R. China, The SMS4 Block Cipher (in Chinese). Archive available at http://www.oscca.gov.cn/UpFile/200621016423 19799 0.pdf
- R. C. W. Phan. 'Impossible differential cryptanalysis of 7-round Advanced Encryption Standard AES', Information Processing Letters, vol 91, pp. 33-38, 2004 https://doi.org/10.1016/j.ipl.2004.02.018