Ⅰ. 서론
메시지 인증 코드(Message Authentication Code :MAC)는 전송되는 메시지의 무결성과 출처 인증을 위해 광범위하게 사용된다. MACe 송신자와 수신자가 같은 비밀키 K를 가지고 있는 시스템 환경에 적용된다. 메시지 *를 보호하기 위하여 송신자는 K 와 X의 함수인 AMCk(x)를 계산하여 메시지 X에 부가하여 보낸다. 메시지 X를 받은 수신자는 공유하고 있는 비밀키 K를 이용하여 MACk(x)를 계산한 후 전송된 MAC 값과 비교함으로써 메시지 X가 변조되지 않고 정당한 사용자로부터 온 것임을 검증한다.
MAC의 주요한 안전성 요인은 위장 공격이 불가 능해야 한다는 것이다. 즉. 비밀키 K를 알지 못하는 공격자가 임의의 새로운 메시지 X와 대응되는 ASCkx)를 계산하는 것이 계산량적으로 불가능해야 한다. MAC에 대한 두 번째 공격은 키 탐색 공격이다. 공격자가 비밀키 X를 얻을 수 있다면 임의의 메시지와 대응하는 MAC 쌍을 위장할 수 있다.
비동기식(W-CDMA) 3세대 이동 통신 진영의 3GPP (3rd Generation Partnership Project) 에서도무선 구간의 메시지 무결성을 보장하기 위하여 블록 암호 KASUMI에 기반한 CBC-MAC의 변형된 형태를 제안하고 있다.(1) 블록 암호 동작 모드의한 형태인 CBC(Cipher Block Chaining) 모드를 이용한 CBC-MACe 국제 표준 ISO/IEC 9797-1 (2) 에 기본적인 CBC-MAC과 그 변형된 형태로 6종류의 CBC-MAC 알고리즘들이 제시되어 있다. 이들은 세 가지 메시지 패딩 방법 중 한 가지를 사용하고, 두 가지 입력 변환과 세 가지 출력 변환으로 MAC의 주요한 안전성 요인은 위장 공격이 불가능해야 한다는 것이다. 즉. 비밀키 K를 알지 못하는 공격자가 임의의 새로운 메시지 X와 대응되는 구성된다. 이들 CBC-MAC 알고리즘의 안전성 분석은 ISO/IEC 9797-1121 문서^. Preneel-Oorschot '31, Knudsen141, Brincat-Mitchell15'1 등에 의해 이루어졌다. 또한. ANSI X9.19⑹ retail MAC으로 명명된 CBC-MAC 형태는 Preneel-Oorschot;71 Knudsen-Preneel""에 의해 자서「히 분석되었다. 3GPP-MAC에 대한 안전성 분석은 최근에 Knud- sen-Mitchell’"에 의해 이루어졌다. 그들은 위장 공격과 키 탐색 공격 관점에서 3GPP-MAC의 안전성을 분석하였다.
본 논문에서는 먼저 Knudsen과 Mitchel[의 공격법을 심층 분석하여 구체적인 공격 수행 알고리즘을 제안하고 이 알고리즘의 성공 확률 및 수행 복잡도를 계산한다. 다음으로 기존의 CBC-MAC 방식과 변형된 형태인 3GPP-MAC 방식의 안전성을 비교 분석한다.
Ⅱ. 3GPP-MAC의 공격법 분석
2.1 3GPP-MAC 알고리즘
3GPP 무결성 알고리즘 钓로 사용되는 3GPP-MAC 알고리즘의 경우는 ISO/IEC 9797-1에서 정의한 6가지 형태의 CBC-MAC과는 다른 형태의 변형된 CBC-MAC을 이용한다. 기존 CBC-MAC과의 가장 큰 차이점은 최종 출력 변환의 입력 값으로 이전의 블록 암호 출력 값으로 나온 모든 연쇄 변수를 XOR한다는 것이다.
3GPP-MACe 아래와 같이 동작한다. 기본 블록 암호는 비트 블록들을 가지고 비트의 비밀키를 이용한다고 가정하자. 만약 X가 如-비트 블록을 가진다면 비밀키 K를 사용한 X의 암호화를 E/X) 로 표기한다. 메시지 * 는 먼저 如의 배수가 되도록 메시지의 끝에 하나의 1과 나머지 0를 이용하여 패딩 되고 t 개의 如-비트 블록들 *川시卜..所로 분할된다. 여기에서 기호 II 는 연결을 뜻한다. 앞으로 우리는 패딩 된 메시지만 고려할 것이다. 3GPP-MACe 키 쌍 K, K' 을 사용하며. K 은 K로부터 다음과 같이 유도될 수 있다.
#
여기서 C= 0101…01 (128비트)인 이진 상수이匸k MAC 값의 계산은 다음과 같다([그림 1] 참조) :
(그림 1] 3GPP-MAC 알고리즘
#
여기에서 H;는 연쇄 변수라 불리우며 3GPP-MAC 에서 사용되는 MAC 값은 위의 마지막 식에서 주어진 AMC의 최상위 也-비트 (mMR만을 이용한다. 3GPP 기술 문서(1)에 제시된 무결성 알고리즘 f9는기본 블록 암호로 128-비트 키와 64-비트 블록을 가진 KASUMI 알고리즘을 이용하며. MAC 값의 길이는 32-비트를 사용한다.
일반적으로 블록 암호에 기반한 CBC-MAC인 경우 블록 암호가 랜덤한 순열이라는 가정이 필요하다. 본 논문에서도 블록 암호 KASUMI의 랜덤성은 가정하고. 아래 보조 정리에서 KASUMI가 순열임을 보인다.
보조 정리 1.
블록 암호 KASUMI는 순열이다.
증명) 3GPP 기술 문서'®에 나타난 KASUMI 알고리즘의 블록 구조는 다음과 같이
#
이고, 代의 역은
#
이다. 여기서 L, Re 임의의 32-비트 이진 벡터이다.
그 러면
#
이고 비슷한 방법으로
#
이다. 따라서 KASUMI는 순열이다.
Preneel-Oorsho尸에 의하면 대부분의 공격은 두 메시지가 같은 MAC 값을 가지는 충돌 쌍에 기반한다. 따라서 본 논문에서도 두 메시지가 같은 MAC 값과 같은 마지막 연쇄 변수를 가질 때 내부 충돌 (internal collision) 쌍이라 부르고. 내부 충돌 쌍이 아닌 충돌 쌍을 외부 충돌(external collision) 쌍이라 부른다.
ISO/IEC 9797T(2)에서 사용된 표현 방법에 따라 공격자에게 필요한 자원을 명확하게 규정하기 위해 {a, b, c, d} 표기를 사용한다. 여기서 a는 오프라인 블록 암호 암호화 횟수. b는 알려진 메시지/MAC 쌍의 수. c는 선택 메시지/MAC 쌍의 수. d는 온라인 MAC 검증 횟수를 나타낸다.
2.2 Knudsen-Mitchell 위장 공격법의 분석
본 절에서는 3GPP-MAC의 알려진 공격법 중 가장 효율적인 Knudsen과 Mitchell⑼의 위장 공격법을 고찰한다. 먼저 그들의 공격을 심층적으로 분석하고 구체적인 공격 수행 알고리즘의 복잡도를 계산하기 위해 필요한 몇 가지 정리들을 알아보자.
다음 두 보조 정리는 '생일 역설'로 잘 알려진 내용이다.
보조정리 2.
1에서 ”까지의 번호가 적힌 "개의 공을 가진 한 개의 단지가 있다고 하자. 한 번 시행에 한 개씩 복원추출을 통해 단지에서 r개의 공을 꺼내어 그 번호를 기록한다고 하자. "이 충분히 크고, r= (Xfn) 때, 적어도 한 쌍의 충돌이 발생할 확률은 대략
#
이다.
보조정리 3.
1에서 儿까지의 번호가 적힌 "개의 흰 공을 가진 단지와 1에서 如까지의 번호가 적힌 "개의 빨간 공을 가진 단지가 있다고 하자. 한 번 시행에 한 개씩 복원 추출을 통해 두 단지 에서 각각 七 개와 r, 개의 공을 꺼내어 n 번호를 기록한다고 하자. 如이 충분히 크고. rt = r2= r, r= 0(7;) 이면. 적어도 한 쌍의 충돌이 발생할 확률은 대략
#
이다.
Knudsen-Mitchelle] 위장 공격법은 다음과 같다.
공격자가2 厂개의 알려진 메시지/mac 쌍을 가지고 있다고 가정하자. 2」丁 개의 알려진 MAC 값들을 MAC 값에 따라 2'"개의 집합으로 분할하자. 적어도 한개의 집합은 보두 MAC 값이 같은 232개 이상의 메시지를 王함할 것이고 그 집합을 선택한다. 이들 메시지 중에서 2개는 버려진 ( "- »i)- 비트에서도 충돌할 것으로 기대된다. 선택한 집합의 모든 메시지 *=知|的5幻에 대해, 2心개의 랜덤하게 선택한 y(/)로 만든 세MW) 메시지들과 대응하는 MAC 값들을 얻는다. 선택한 메시지/MAC 쌍의 총 개수는 23—”爾 . 2* = 2“_財2 이므로 생일 역설에 의하여 좋은 확률로 같은 MAC 값을 가지면서 匕九㊉乂二仃’圧顷‘가 되는 메시지들 知|..业시|y와 引卜..恥가 존재한다. 즉-. 개의 선택 메시지/MAC 쌍의 집합에서 내부 충돌 쌍이 존재한다. 2”「心개의 메시지 중에서 충돌이 발생할 메시지는 2"「必보다 작으므로 이들 메시지 중에서 내부충돌 쌍을 찾기 위해서는 개의 메시지의 끝에 고정된 如-비트 블록을 더한 새로운 메시지의 MAC 값이 필요하다. 이것은 2"「""과 비교하여 무시할 수 있는 수이다.
*와 x'의 연쇄변수들에 대해 Hi®H2©. ■ . ®Ht = a 应旳①…㊉H、.이 성립하고 小, 와 引}, '이 내부 충돌 쌍이면 命成이고
#
이다. 그러면 임의의 ”비트 블록 2에 대하여
#
이므로 시Iz와 引|(z ㊉, \)는 같은 MAC 값을 가진다. 그러므로 공격자가 시|z 의 MAC 값을 관찰하거나 요청함으로써 幻辰①△) 의 MAC 값을 위조할 수 있다. 이 공격의 총 복잡도는
#
이다.
刀 = 64, ”? = 32를 사용하는 3GPP-MAC의 경우 2侣 개의 선택 메시지/MAC 쌍과 2” 개의 알려진 메시지/MAC 쌍을 가진 공격자에 의해 위장 공격이 가능하다. 하지만 그들의 증명에서 구체적으로 위장 공격에 성공하기 위한 공격 수행 시나리오와 위장 공격에 성공하기 위한 실제적인 공격 복잡도를 정확하게 알 수는 없다.
2.3 위장 공격 수행 알고리즘
본 절에서는 Knudsen-Mitchell의 위장 공격법에 기반하여 실제적으로 공격을 성공하기 위해서 필요한 위장 공격 수행 알고리즘을 제안하고 그 성공확률 및 수행 복잡도를 계산한다.
〔단계 1〕
2 2개의 알려진 메시지/MAC 쌍을 수집한다.
〔단계 2]
수집된 2 守개의 머〕시지/MAC 쌍들을 MAC 값에 따라 분류할 때 처음으로 분류된 같은 MAC 값을 가진 ””、””개의 메시지 집합을 선택한다.(단계 2가 다시 반복될 때에는 그 다음으로 분류된 메시지 집합을 택한다.)
〔단계 3}
단계 2에서 선택한 집합의 모든 메시지 x = 시k에...에 대해, 2彖개의 랜덤하게 선택한 y(/) 로 만든 xlly(i) 메시지들과 대응하는 MAC 값들로 이루어진 전체 2 3-协'2 . 2"2 = 2"「”/2개의 메시지/MAC 집합을 구한다.
〔단계 4]
단계 3에서 선택한 개의 메시지/MAC 쌍을 같은 MAC 값을 가지는 메시지 집합들로 정렬한다.
〔단계 5]
남아있는 메시지 집합들을 {X, }라 할 때. 고정된 ”-비트 블록 y를 첨가하여 새로운 메시지 집합들 {X, 加}를 구하고 대응하는 {MACeX.Wy)} 집합들을 조사하여 충돌이 없으면 대응하는 메시지 X, 들을 각각의 집합에서 버린다.
〔단계 6]
단계 5를 수행한 후 원래 메시지 집합들 {X, }에서 버려진 메시지들을 제외하고 남아있는 메시지 집합들 중 메시지의 개수가 한 개인 집합은 버리고 남아있는 메시지 집합들을 구한다.
〔단계 7〕
단계 5와 단계 6을 [ 으 ] 번 반복한다.
〔단계 8〕
단계 7을 수행한 후 두 개의 메시지를 가진 집합이 한 개 이상 존재한다면 이 메시지 쌍들을 내부충돌 쌍으로 출력한다. 남아있는 집합이 없다면 단계 2로 돌아간다.
〔단계 9〕
단계 8에서 구한 메시지 쌍을 x= &l"TI세3와 x = X iW-'-Wx's\\y' , 그리고 △ 二丫㊉:/ 라고 할 때 임의의 如-비트 블록 Z 에 대하여 시Iz 의 MAC 값을 관찰하거나 요청함으로써 x'll伝㊉△)의 MAC 값을 위조한다.
이 공격 수행 알고리즘의 성공 확률과 공격 복잡도를 알아보자. 먼저 단계 2에서 단계 7까지의 수행을 통하여 단계 8에서 내부 충돌 쌍을 발견할 확률을 구해보자. 먼저 단계 2에서 버려진 ( 耸-折)-비트에서도 충돌하는 메시지들이 있을 확률은 보조정리 2에 의해 대략1-厂顶丄0.39이다. 단계 3에서 선택한 2, , -袂 개의 메시지 중에서 R㊉, = 乩㊉y, 을만족하는 내부 충돌 쌍 시ly와 X s\\y 을 발견할 확률은 다음과 같이 계산된다. 먼저
#
인 메시지 对1“』세ly와 ...依, ||y'가 존재할 확률은 보조정리 3에 의해 대략 1 - R0.63이고동시에 성립할 확률은 0.63x0.39^0.25이다. 따라서 단계 8에서 내부 충돌 쌍을 출력하기 위해서는 단계 2에서 단계 7 까지 평균 4번 반복 수행이 필요하다.
이제 이 공격 알고리즘의 복잡도를 계산해 보자. 단계 5, 6. 7을 수행하는 데에 필요한 선택 메시지의 개수는 대략 財2 + 2"-3*/2 + 2”-5«必+... q h — m/2 二打 이다. 따라서 이 공격 알고리 1 —즘을 수행하기 위해 필요한 선택 메시지의 개수는 대략 4 . 必= 2”~"”扑 이다 따라서 총 공격복잡도는 [0, 2‘"项枪, 2”「"/奸3, 0] 이다. 如 = 64, m=32인 경우 [0, 2出, 2气0]의 공격 복잡도를 가지고 항상 위장 공격에 성공할 수 있다.
단계 8에서 내부 충돌 쌍을 발견하는 성공 확률을 높이기 위해서는 단계 1의 알려진 메시지/MAC 쌍의 개수를 2 2 로 증가시키면 단계 2에서 버려진 (“- m)-비트에서 충돌하는 메시지들이 있을 확률은 대략 1-6广么0.86으로 증가한다. 따라서 단계 8에서 내부 충돌쌍이 있을 성공 확률은 0.54로 증가하고 전체 선택 메시지/MAC 쌍의 개수는 2㎛으로 감소한다. 하지만 증가 시킬 수 있는 성공 확률이 0.63으로 제한되므로 알려진 메시지/MAC 쌍의 개수는 제한적이다.〔표 1〕은 성공 확률과 공격 수행 복잡도의 관계를 나타낸 것이다.
〔표 1) 성공 확률과 알려진 메시지/MAC, 선택 메시지 /MAC 쌍의 관계 ( n = 64, m = 32 인 경우)
Ⅲ. 3GPP-MAC과 기존 CBC-MAC 방식의 안전성 비교
먼저 CBC-MAC에 대한 다른 공격 형태인 키 탐색 공격의 경우를 살펴 보자. 키 쌍 K, 7T 이 서로 독립적으로 선택된 경우에는 Preneel-Oorschot 71 에서 사용도I 분할과 정복(divide and conquer) 키 탐색 공격법을 이용한 결과들이 Knudsen-Mitchell191 의 논문에 나타나 있다. 하지만 실제로 3GPP 기술문서(1)에 나타난 3GPP f9 함수의 경우 키 K 은 원래의 무결성 키 K로부터 유도되므로 우리는 간단한 전수 조사를 통하여 그 공격량을 알 수 있다.
정리 3.
3GPP-MAC에 대해 키 K■ 이 다른 키 K로부터 유도되는 경우. 메시지 길이가 기껏해야 t개 블록인 I 1 개의 알려진 메시지/MAC 쌍과 (t+1) - 2" 번의 암호화 연산으로 키 쌍 X, K. 을 찾을 수 있다. 즉, 이 공격의 공격량은
#
이다.
따라서 키 K. 의 사용은 안전성 측면에서는 키 K 를 사용하는 것과 별 차이가 없으며 MAC 값의 길이 观 이 작을수록 이 공격의 복잡도는 증가한다는 사실을 알 수 있다. 3GPP f9 함수의 경우 k= 128, »? = 32이므로 키 탐색 공격은 현실적으로 불가능하다.
일반적인 CBC-MAC의 경우 생일 공격법을 이용하면'/2 . 2*〃 개의 알려진 메시지/MAC 쌍과『 으〕 . 개의 선택 메시지/MAC 쌍이 있으면 위장 공격이 가능하다. 가장 효율적인 Knudsen(4)의 공격 並그끄 I +1법을 적용하면 2 ' 2 ' ' 개의 선택 메시지/MAC 쌍과 2개의 알려진 메시지/MAC 쌍이 필요하다. 즉, 如 = 64, 成=32인 경우 대략 2”개의 선택 메시지/MAC 쌍을 가지면 일반적인 CBC-MAC에 대한 공격이 가능하다. 하지만 3GPP-MAC에서는 최종출력 변환의 입력 값으로 모든 연쇄 변수를 XOR 하여 사용함으로써 필요한 공격량을 2引 으로 증가시킬 수 있었다.〔표 2〕는 冷=128, 处 = 64, 也=32 인 경우 CBC-MAC과 3GPP-MAC에 대한 현재까지 알려진 가장 효율적인 위장 공격과 키 탐색 공격의 복잡도를 비교 정리한 것이다. 3GPP-MAC의 경우 m이 작을수록 위장 공격이나 키 탐색 공격의 복잡도는 증가하지만 추측 공격을 고려하여 也 = 死/2 를 사용하고 있으며. 이 경우 현실적인 공격은 불가능하다.
〔표 2) CBC-MAC과 3GPP-MAC의 공격 복잡도 비교 (k=128, n = 64, m = 32 인 경우)
Ⅳ. 결론
본 논문에서는 비동기식 3세대 이동통신의 무선구간 무결성을 보장하기 위해 사용되는 3GPP-MAC 의 안전성을 분석하였다. KnudseirMitchell의 공격법을 심층 분석하여 구체적인 공격 수행 알고리즘을 제안하고 이 알고리즘의 성공 확률 및 수행 복잡도를 계산하였다. 또한, 일반적인 CBC-MAC과의 안전성 비교를 통하여 3GPP-MAC 에서 사용된 최종 출력 변환의 입력 값으로 연쇄 변수들의 XOR 한 값을 이용하는 것이 위장 공격 관점에서 안전성을 높이는 효과가 있다는 것을 보였다.
3GPP-MAC의 안전성 분석과 관련된 것으로 아직까지 발표되지 않은 연구 과제는 Bellare 등"'과 Petrank-RackoffU2] 등에 의해 연구되어 온 안전성에 대한 이론적인 검증이다. 블록 암호 KASUMI 의 유사 랜덤성에 기반한 3GPP-MAC의 유사 랜덤 성에 대한 연구가 안전성 요인 중의 하나로 반드시 규명되어야 할 문제라 생각된다.
References
- 3G TS 35.201 Specification of the 3GPP confidentiality and integrity algorithm: Document 1 : f8 and f9 specifications
- ISO/IEC 9797-1 Information technology - Security techniques-Message Authentication Codes (MACs)-Part 1 : Mechanism using a block cipher
- IEEE Transactions on Information Theory. v.45 On the security of iterated Message Authentication Codes B. Preneel;P.V. van Oorschot
- Electronics Letters v.33 Chosen-text attack on CBC-MAC L.R. Knudsen
- New CBC-MAC forgery attacks K. Brincat;C.J. Mitchell
- Financial institution retail message authentication American Bankers Association
- Electornics Letters v.32 no.17 A key recovery attack on the ANSI X9.19 retail MAC B. Preneel;P.V. van Oorschot
- Electronics Letters v.34 Mac-DES: MAC algorithm based on DES L.R. Knudsen;B. Preneel
- WCC 2001 An analysis of the 3gpp-MAC scheme L.R. Knudsen;C.J. Mitchell
- 3G TS 35.202 Specification of the 3GPP confidentiality and integrity algorithm: Document 2: Kasumi algorithm specifications
- in Advances in Cryptology, Proc. Crypto'94, Lecture Notes in Computer Science v.839 The security of cipher block chaining M. Bellare;J. Kilian;P.R. Rogaway
- J. Cryptology CBC MAC for Real-Time Data Sources E. Petrank;C. Rackoff