Ⅰ.서론
LFSR을 기반으로하는 스트림 암호는 LFSR의초기치를 비밀키로 하여 키 수열을 생성하고, 생성된키 수열을 평문과 비트별 논리합(XOR)을 하여 암호문을 만든다. 암호문을 복호화하는 것도 같은 초기치를 사용하여 키 수열을 생성한 후. 암호문과 비트별 논리합을 취해주면 구할 수 있다. 이러한 스트림암호의 공격은 일반적으로 이미 알고 있는 평문과 암호문의 쌍으로부터 비밀키(LFSR의 초기치)를 알아내려는 시도이다. 즉. 키 수열을 알고 있을때 초기치를 구하려는 시도라고 말할 수 있다.
최근의 LFSR 기반의 스트림 암호의 가장 위협적인 공격은 키 수열과 초기치 사이의 대수적 관계식을 얻어내어 이를 대수적으로 초기치를 계산하는 방식으로 이를 대수적 공격이라고 부른다. 초기의 대수적 공격은 AES와 같은 블록 암호나 HFE와 같은 공개키 암호의 분석에 사용되었다.'技) 스트림 암호로는 2002년 Toyocrypt 에 성공적으로 적용되었고, LILI-128에 확장 적용됨에 따라서 주목을 받기 시작하였다」 3T LFSR에 메모리를 사용하는 방식은 대수적 관계식을 쉽게 찾을 수 없어 대수적 공격에 저항성이 있을 것으로 생각했으나, 이 경우에는 항상 대수적 관계식이 존재하는 것이 증명되었다
〔정리 1〕"")n 개의 LFSR과 I 비트의 메모리를 이용하는 combiner는 # 차 이하의 대 수적관계식이 존재한다.
메모리를 사용하는 대표적인 방식으로는 Ruep- pel에 의하여 제안된 summation generatore 들 수 있다.⑻ Bluetooth의 보안에 사용된 스트림암호인 E&는 4개의 LFSR로 이루어진 summation generator를 메모리를 4개 가지도록 변형한것인데, 〔정리 1〕에 의하여 존재성이 증명된 10차의관계식보다 실제로 4차의 대수적 관계식을 실제로찾아냄으로써 더욱 공격량을 낮출 수 있었다.⑹
본 논문에서는 Rueppel에 의하여 최초 제안된 summation generatore] 경우에도〔정리 1〕의 관계식보다 더 낮은 차수의 대수적 관계식이 있음을 보이고, 일반적으로 2*개의 LFSR을 사용할때, /c+1 개의 출력을 이용하여 2"차 이하의 관계식을 얻을 수있음을 보인다.
Ⅱ.Summation Generator의 대수적 관계식
Summation generatore 주기가 매우 크고, 선형복잡도가 다른 generator에 비해 매우 우수하여 스트림 암호 설계에 많이 이용되었다. Summation generatore 각 출력비트를 더하고 발생된 올림수(carry)를 메모리에 저장하여 다음 출력에 영향을 미친다. "개의 LFSR의 t번째 시각에서 출력을각각 无; 라고 할때, Summation generator의 출력 W는 다음과 같다.
#
이것을 그림 1으로 나타내면 다음과 같다.
그림 1. Summation generator의 다이어그램
여기서 尸는 올림수이며, [ log 2시 비트로 표현된다. 그러면 Q%—i, …, 掘, 掘)를 서의 이진 전개로 표기한다. 따라서 〔정리 1〕에 따르면 # 차의 대수적 관계식이 존재한다. 그러나 〔정리 1〕은 대수적 관계식의 존재성만을 말해줄 뿐이며 실제 관계식이 어떤 것인지는 알 수 없다.
본 논문에서는 summation generator의 실제 대수적 관계식을 직접 찾아보고자 한다.
2.1 대칭 다항식과 행렬
다음과 같은 기호를 사용한다. #를 #를 변수로 가지는 부울 함수로서, j차 기본 대칭 다항식이라고 중]-자. 편의상 #로 정의한다.
#
그러면 OMczMM”에 대해서 叽"를 #일때, #의 값이라고 정의한다. 仇以를 다시 표현하면 n개의 들의 변수 중에서 b개만 1일때, S:를 이루는 단항식 중에서 선택된 力개를 제외한 항이 포함되어 있는 것은 모두 0이 되므로, 선택된 3개의 변수 중에서 a개를 선택하는 개수를 세어서 이를 (mod 2)로 보는 것이라고 볼 수 있다. 따라서 다음이 성립한다.
#(1)
그러면 다음과 같은 (〃+l)x("+l) 행렬 M을 생각하자.
#
n = 4일때의 행렬 必을 나타내보면 다음과 같다.
M'을 M에서 (n+1) 번째 행과 (n + 1) 번째 열을 제외한 wx n 행렬이라고 하자. 그리고 “에 대한 M, M'을 표기할때는 각각 M(n), M'(n)으로 표기한다.
〔보조 정리 2〕
#
〔증명〕左=1일때는 앞의 예로 구한 것에 의해 보었고, 이후 귀납법을 이용하여 증명한다. Af(2"')을 #로 나누어서 생각하자.
식(1)에 의하여 I번이 AT(2”)이고 "의 하 삼각 부분인 Ⅲ번 역시 0임은 자명하다. 그러면 I, Ⅱ. IV번이 모두 같음을 보이기 우】해서 OMaM<"인 모든 aM에 대해서 다음의 식을 증명하면 충분하다.
#(2)
이를 위해서 우선 다음의 관계식을 생각한다.
#
위의 왼쪽 관계식에서 xa2\ 계수는 식 (2)의 가운데 항이다. 그런데 위의 오른쪽 관계식에서 疽’는 冰"이므로 첫 번째 항에서만 존재하고 계수는 식 (2)의 첫 번째 항과 같다. 같은 방법으로 /扩 +。의계수를 비교하면 식(2)에서 첫 번째 항과 마지막 항이 서로 같음을 보일 수 있다. 따라서〔보조 정리 2〕 가 성립한다.
2.2 n=4일 때의 관계식
#이 성립하는 것은 당연하다. 또한 행렬 M을 이용하여 a, 를 대칭 다항식을 이용하여 표현할 수 있다. 즉, 이전의 올림수 c'의 경우에 따라서 #이 1이 되도록 하는 2%의 값을 구하고, 이값에서만 1이 되도록 하는 대칭 다항식을 행렬 M을 이용하여 구한다. 이전의 올림수 /는 0, 1. 2. 3의 경우가 있으며 각각은 #와 #로 나타낼 수 있다. 아래에서 ~는 왼쪽의 急, 의 값에서만 오른쪽의 대칭 다항식이 1이 되는 것을 의미한다.
1. #일때 :
#
2. #일때 :
#
3. #일때 :
#
4. #일때 :
#
위의 사실을 식으로 표현하면 다음과 같다.
#
위에서 心은 X, 에 대한 1차식으로 표현되고, «2 는 小에 대한 2차식으로 표현된다. 그러므로 a2는 %, 에 대한 2차식이고, 마지막 관계식에서 a, 를 소거하면 旳에 대한 4차 이하의 대수적 관계식이 존재함을 알 수 있다.
2.3 n = 2ki일 때의 관계식
a, (2*)와 a, (2*+')은 각각 儿=2*일 때와 n = 2*+i일 때의 们를 나타낸다. 그러면 다음의 보조 정리를 증명한다.
〔보조 정리 3)
1. , 야에 대해서 #.
2. #.
3. #를 이루는 S 들의 아래첨자를 "만큼 증가시킨 것을 #라고 하자.
#
〔주의사항〕如 =2*일 때와 ” = 2*1일 때의 S, 는변수의 개수가 다르므로 실제로는 서로 다른 값이지만, 표기의 편의상 같은 것으로 사용한다.
〔증명) c'f의 정의에 따라서 다음이 성립한다.
#
(1), 야이므로 #인 경우는 a, 에 영향을 주지 않는다. 0M:爾*에 대해서, #와 #는 a, 에 같은 영향을 준다. 따라서〔보조정리 2〕에 의하여 /<2*일 때 (즉, a£+i = 0일때) , #은 #와 같다.
한편 c‘N2*일 때 (즉, #일 때), c'=2* + c라고 하자. 이 경우는 c'=c인 경우와 a; 에같은 영향을 주므로 #은 #와같다. 따라서 다음이 성립한다.
#
(2) 0Mc'<2W 대해서 #에 영향을 미치기 위한 #의 값의 집합은 다음과 같다.
#
한편 初 = 2*에서 #에 영향을 미치기 위한 #의 값의 집합은 다음과 같다.
이 값들에서 #가 1이 되도록 하는 S들의 합을 적당한 첨자 집합 /u0, l, ..., 2*에 대하여 #라고 하자. 그러면 2*-c'>0이므로 0任./이고, "가 #의 집합에 포함되므로 2”;이다.
이제 ” = 2*에서 구한 #를 " = 2宀로 확장해보자. 丁을 /에서 2籍 뺀 첨자 집합이라고 하자.〔보조 정리 2〕에 의하여 #가 1이 되는 #의 값의 집합은 다음과 같다.
#
#가 1이 되는 집합은 2\24+1, -, 2*+1-1 이므로 #와 #는 1이 되는 #의집합이 같다. 따라서 #와 #는 서로같다.
2*Mc'<2*+i에 대해서 #에 영향을 미치기 위한 #의 값의 집합은 다음과 같다.
#
c=c'-"라고 하면, 위의 집합은 다음 집합의 여집합이다.
#
즉, 같은 #에 대해서 #와 #는서로 다른 값을 가진다. 따라서 다음이 성립한다.
#
(3) /=»+1이므로 #에 영향을 미치기 위한 #의 값의 집합은 다음과 같다.
#
특히 0Mc, <2*일 때는 위의 집합을 다음과 같이쓸 수 있다.
#
그러므로 #를 이루는, 들은 #를 이루는 S, 들의 첨자를 2*만큼 증가시킨 것과 같다. #를 이루는 S 들의 아래첨자를 2*만큼증가시킨 것을 #이라고 하자.
2七c'<2 宀일 때는 c=c'-2*라고 하면 다음과 같이 두 개의 합집합으로 나누어 쓸 수 있다.
#
첫번째 집합은 (2)번의 집합과 동일하고, 두번째집합은 앞서 구한 c'<2*인 경우와 동일하다. 따라서다음이 성립한다.
#
〔정리 4] 如 = 2 s일 때, #는 %, 에 대한 2I차의식으로 표현되고, 이것을 각각 #에 대입하여 at 를 모두 소거하면 们에 대한 2 山차 이하의 대수적관계식을 얻을 수 있다.
〔증명〕모든 勿 = 2*에 대해서 #이 성립하는 것은 당연하므로 们은 ., 의 1차식이다. 그리고 刀 = 22일때, 2.2절의 예에서 다음을 보였다.
#
즉, a;;는 旳의 2차식이며. 마지막 관계식에서 a를 모두 소거하면 七에 대한 4차식의 관계식을 얻는다.
s = 23이면, 〔보조 정리 3〕의 (1)에 의해 #은 ” = 2 2의 경우와 동일하므로 旳는 그대로 2차식이다. 그리고〔보조 정리 3〕의 (2)와 (3)에 의해 다음이 성립한다.
#
마지막 관계식을 보면, *=2 2인 경우에 비해 차수가 22만큼 증가하므로 8차식의 관계식을 얻을 수있으므로 정리가 성립한다.
같은 방법으로 일반적인 如 = 2*+'에 대한 경우에도 a»+i이 X, 에 대한 2*차식임을 보일 수 있고, 마지 막 관계식 에서 如 = 2"의 경우보다 차수가 2*만큼 증가하므로 2**차의 관계식을 얻을 수 있다.
〔따름 정리 5] %개의 LFSR로 이루어진 Summation generator는 연속된 [ log 2시+1개의 출력값을 이용하여 초기치에 관한 21 施씨 차 이하의대수적 관계식을 만들 수 있다.
〔증명〕2 1 108개로 이루어진 Summation generatore^ 力개를 제외한 나머지 LFSR의 출력을 모두 0으로 가정하면, 如개의 LFSR로 이루어진 Summation generator와 동일하고, 〔정리 4〕에 의하여 2 1 施利 차 이하의 관계식을 만들 수 있다.
〔참고〕본 논문의 결과를 확장하여 FSE 2004에 발표하였다.⑼ 如 = 2*인 경우〔정리 4〕에서 얻은 관계식이〔10〕에서 정의한 double-decker 방정식을 이룬다는 사실을 증명하여 공격복잡도를 더욱 낮출 수있음을 보였다.
Ⅲ.결론
본 장에서는 Summation generator에 대하여 이론적인 차수보다 더 낮은 차수를 가지는 실제 대수적 관계식을 만들 수 있었다. 표 1은 기존의 결과와위의 〔정리 4], 〔따름 정리 5〕의 결과와 실제 계산 결과를 나타낸 표이다.
표 1. Summation generator의 대수적 차수
아래의 표에서 볼 때, 연속된 f log 2씨 +1개의출력값을 이용하여 만들 수 있는 관계식의 차수는 본논문에서 제시는 결과가 매우 상한과 근접함을 알 수 있으며, 특히 力 = 2*인 경우 상한과 동일함을 알 수 있다.
표 1을 이용하면 기존의 방법보다 summation ge-nwatoT를 공격하는 복잡도가 훨씬 더 낮아진다. 예를 들면 128 비트 또는 256 비트의 초기치를 사용하면서 4개의 입력 LFSR을 사용한다고 가정하면, 공격 복잡도가 표 2와 같다.
표 2. Summation generator의 공격 복잡도
참고문헌
- N. Courtois and J. Pieprzyk, 'Cryptanalysis of block ciphers with overdefined systems of equations,' Asiacrypt 2002, LNCS 2501, Springer-Verlag, pp. 267-287, 2002
- N. Courtois, 'The security of Hidden Field Equations (HFE),' CT-RSA 2001 LNCS 2020, Springer-Verlag, pp. 266-281, 2001
- N. Courtois, 'Higher order correlation attacks. XL algorithm and cryptanalysis of Toyocrypt,' ICISC 2002, LNCS 2587, Sphnger-Verlag, pp. 182-199, 2002
- N. Courtois and W. Meier, 'Algebraic attacks on stream ciphers with linear feedback,' Advances in Cryptology-Eurocrypt 2003. LNCS 2656, Springer-Verlag, pp. 345-359, 2003
- 문덕재, 홍석희, 이상진, 임종인, 은희천, '과포화(Overdefined) 연립방정식을 이용한 LILI-128 스트림 암호에 대한 분석,' 정보보호학회논문지, 13(1), pp. 139-146, 2003
- F. Armknecht and M. Krause, 'Algebraic attacks on combiners with mmory,' Advances in Cryptology - Crypto 2003, LNCS 2729, Springer-Verlag, pp. 162-175, 2003
- N. Courtois, 'Algebraic attacks on combiners with memory and several outputs,' E-print archive, 2003/125
- R. A. Rueppel, 'Correlation immunity and the summation generator,' Advances in Cryptology-Crypto'85, LNCS219, Springer-Verlag, pp. 260-272, 1985
- D. H. Lee, J. Kim. J. Hong. J.W. Han, and D. Moon, 'Algebraic attacks on summation generators,' Preproceeding of Fast Software Encryption, pp.15-29, 2004
- N Courtois, 'Fast algebraic attack on stream ciphers with linear feedback,' Advances in Cryptology - Crypto 2003, LNCS 2729, Springer-Verlag, pp. 176-194, 2003