DOI QR코드

DOI QR Code

Advanced Multi-Pass Fast Correlation Attack on Stream Ciphers

스트림 암호에 대한 개선된 다중 경로 고속 상관 공격

  • Published : 2007.08.31

Abstract

In a known plaintext scenario, fast correlation attack is very powerful attack on stream ciphers. Most of fast correlation attacks consider the cryptographic problem as the suitable decoding problem. In this paper, we introduce advanced multi-pass fast correlation attack which is based on the fast correlation attack, which uses parity check equation and Fast Walsh Transform, proposed by Chose et al. and the Multi-pass fast correlation attack proposed by Zhang et al. We guess some bits of initial states of the target LFSR with the same method as previously proposed methods, but we can get one more bits at each passes and we will recover the initial states more efficiently.

기지 평문 공격 시나리오에서 스트림 암호에 대한 고속 상관 공격은 매우 강력한 공격 방법이다. 대부분의 고속 상관 공격은 암호학적인 문제를 적당한 디코딩 문제의 관점에서 접근한다. 본 논문에서는 이진 대칭 채널의 출력 값으로부터 입력 값을 복구하기 위해 사용되는 패리티 검사 방정식과 Fast Walsh Transform을 이용한 Chose등이 제안한 고속 상관 공격과 Zhang 등이 제안한 다중 경로 고속 상관 공격을 개선한 다중 경로 고속 상관 공격을 제안한다. 이 공격기법은 기 제안된 공격 기법들과 마찬가지로 표적 LFSR(Linear Feedback Shift Register)의 초기 상태 값 중 일부를 추측하나, Zhang 등이 제안한 기법보다 각 경로에서 한 비트씩을 더 복구 할 수 있어 보다 효율적인 공격이 가능하게 한다.

Keywords

Ⅰ.서론

동기식 스트림 암호는 평문 수열 mv m2, …과 키 수열 생성기의 출력 수열 句, 如, …을 热$总 =4, i = l, 2, …와 같이 비트 단위로 XOR 하여 암호문 수열 q, % …을 생성한다. 이때, 키 수열은 평문 수열과는 독립적으로 오직 비밀 키 값과 키 수열 생성기의 초기 상태 값에 의해 생성된다.

안전한 스트림 암호는 효율적으로 난수에 가까운 키수열을 생성하여 어떠한 공격자도 다항식 시간 안에 생성된 키 수열과 난수를 구별해 내지 못하게 해야 한다. 대부분의 스트림 암호는 의사 난 수열을 생성하기 위해 LFSR을 사용한다. LFSR에 기반한 스트림 암호는 증명 가능한 주기와 좋은 통계학적인 성질을 지니지만, LFSR의 출력 비트들이 서로 선형이기 때문에 LFSR을단독으로 사용하지는 않는다. 예컨대(그림 1〕과 같은 비선형 결합 키 수열 생성기는 비선형 부울 함수를 이용하여 여러 LFSR의 출력들을 결합함으로써 키 수열을 생성한다.

(그림 1) 비선형 결합 키 수열 생성기

스트림 암호를 분석하는 기법 중 고속 상관 공격은 가장 널리 사용되는 방법 중 하나이다. 특히 LFSR을사용흐卜는 스트림 암호의 경우 다른 스트림 암호보다 고속 상관 공격을 적용하기 쉽다. 1984년 Siegenthaler는 상관 면역성에 대한 논문⑼을 발표하였고, 1989년 Meier와 Staffelbach는 상관 면역성을 이용하여 스트림 암호를 분석하는 고속 상관 공격 기법을 처음으로 제안하였다(3). 그 후 여러 암호학자들이 다양한 이론들 (4)⑸⑺⑻을 제안하였는데, 이러한 상관 공격은 특정 LFSR의 출력 비트와 키 수열 생성기의 출력 비트 간에 상관관계 확률이 클수록 공격을 성공할 확률이 커진다. 또한 상관 공격은 키 수열 생성기의 구조적인 영향을 거의 받지 않고 적용 가능하다. 다만 특정 LFSR의 출력이 키수열에 직접적인 영향을 주어 상관관계를 형성해야 하고, 또한 대부분의 고속상관 공격은 특정 LFSR의출력이 초기 상태 값의 선형결합으로 이루어졌을 때 쉽게 공격을 할 수 있다. 따라서, 본 논문에서는 이러한 조건을 만족하는 비선형 결합 키수열 생성기를 사용하는 스트림암호를 공격의 대상으로 본다.

비선형 결합 키 수열 생성기에서, 각각의 LFSR의 출력은 함수 f의 입력이 되고, f의 출력은 키 수열이 된다. 생성된 키 수열이 특정 LFSR 의 키 수열과 p(=Pr(4=%)x0.5)의 확률을 가지고 있을 때, 이를 이용하여 상관 공격 기법을 적용할 수 있다. 이때, 비선형 부울 함수 /의 출력을 표적 LFSR의 출력에 l-p의 확률로 잡음(Noise)이 섞인 것으로 생각할 수 있다. 즉, 비선형 결합 키 수열 생성기를(그림 2〕와 같이 잡음이 있는 이진 대칭 채널 (BSC, Binary Symmetric Channel)로 대체할 수 있다. 이렇게 함으로써 출력 키 수열로부터 표적 LFSR의 출력 수열을 복구하는 암호학적인 문제를 1-p의 확률로 잡음이 섞이는 채널에서 정보 비트를 복원하는 디코딩의 문제로 바꾸어 접근할 수 있다.

(그림 2) 확률 1-p로 잡음이 발생하는 이진 대칭 채널

본 논문은 2002년 Chose, Joux, Mitton이 제안한 고속 상관 공격 기법(1)과 2006년 Zhang과 Feng가 제안한 고속 상관 공격 기법‘(1)을 보완하여 LFSR을 이용하는 일반적인 스트림 암호에 적용 가능한 고속 상관 공격을 제안한다. 본 공격은 표적이 되는 LFSR(이후부터 표적 LFSR이라고 함)의 초기 상태 값을 몇 개의 파트로 나누어 복구하는 분할 정복 공격을 한다. 이때 각 파트를(11〕 에서와 같이 경로(Pass)라고 한다. 본 공격 기법의 시간 복잡도는 Zhang 등이 제안한 공격 기법 에서와 같이 첫 번째 경로에 의해 거의 결정되기 때문에, Zhang 등의 기법과 복잡도 관점에서는 큰 차이가 없을 수도 있다. 그러나 각 경로에서 기존 공격 기법보다 하나의 비트를 더 복구하기 때문에, 확실히 본 공격 기법이 더 나은 결과를 보인다. 또한(11〕에서 제시한 성공확률을 계산하는 것보다 Matsui가 제시한 방법을 통해 좀 더 쉽게 매개변수를 결정하여 공격할 수 있다. 본 논문은 다음과 같이 구성된다. 기 제안된 공격기법의 기본 아이디어를 2장에서 제시하고, 3장에서는 제안되는 공격 기법을 설명한다. 그리고 4장에서는 이전에 제안된 두 개의 고속 상관 공격(1)과 본 논문에서 제안하는 공격을 비교 분석한다. 끝으로 5장에서는 본 논문의 결론을 다룬다.

(그림 3) Chose 등이 제안한 공격기법

Ⅱ. 기 제안된 공격의 아이디어

본 단원에서는 본 논문에서 제안하는 공격의 기반이 되는 2002년 Chose, Joux, Mitton이 제안한 고속 상관 공격 기법(1)과 2006년 Zhang과 Feng 가 제안한 고속상관 공격 기법'")의 아이디어를 살펴본다.

2.1. Chose 등이 제안한 공격기법(1)의 아이디어

본 공격은 길이 £인 LFSR에 대해, 초기 상태 값 중 B개 비트를 전수조사를 통해 추측하고, 남겨진 Z-3개 비트들은 패리티 검사 방정식을 이용하여 복구한다. [그림 3〕은 Chose et. al의 공격기법을 그림으로 나타낸 것이다.

각각의 패리티 검사 방정식은 하나의 표적 비트를 포함하고 같은 표적 비트를 포함하는 방정식끼리 모아 하나의 표적비트에 대한 패리티 검사 방정식의 집합을 구성한다. 여기서 표적 비트의 개수。는 Z-B보다 커야 한다. 구성된 각 패리티 검사 방정식의 집합에 대해, 초기 상태 값 B개 비트들에 대한 전수 조사를 통해 옳다고 추정되는 후보를 뽑고 연관된 표적 비트의 값을 추정한다. 최종적으로 각 후보와 해당 후보가 연관된 표적 비트들을 이용하여 올바른 후보를 찾은 후 간단한 선형대수를 통해 〃개의 표적 비트로부터 나머지 Z-3개의 초기 상태 값을 복구한다.

2.2. Zhang 등이 제안한 공격기베”)의 아이디어

본 공격은 길이 Z인 LFSR의, 초기 상태 값 중

개 비트를 패리티 검사 방정식 집합에 대해 전수 조사하여 높은 확률로 올바른 값을 추측한다. 올바로 추측된

(그림 4) Zhang 등이 제안한 공격기법

B(1)개 비트를 이용하여 B(2)개의 비트를 같은 방식으로 추측한다. 이러한 방식을 % 번 반복하여 3(1)+ B(2) + ... + 33) 개의 초기 상태 값을 추측하고, 남겨진 비트들을 전수 조사하여 최종적으로 Z개의 초기 상태 값을 복구한다.

Ⅲ. 새로운 공격 기법

본 논문에서 제안하는 공격기법은 Chose 등과 Zhang 등이 제안한 공격 기법에서와같이 공격을 전처리 단계와 처리 단계로 나눈다. 전처리 단계에서는 처리단계에서 표적 LFSR의 초기 상태 값을 복원하기 위해 사용될 여러 개의 패리티 검사 방정식 집합들을 구성하고, 처리 단계에서는 패리티 검사 방정식 집합과 실제로 획득한 길이 N의 키 수열을 이용하여 표적 LFSR의 초기 상태 값을 복구한다.

본 단원에서는 Zhang 등이 제안한 다중 경로 고속상관 공격을 개선한 고속 상관 공격 기법을 소개하고 성공확률과 시간 및 메모리 복잡도를 살펴본다.

3.1. 전처리 단계

LFSRe 형 유한 상태 장치로써, t 클록 후 길이 乙의 LFSR의 상태 값은 다음과 같이 GF(2)에서 벡터 행렬의 곱으로 표현된다.

#(1)

여기서, % 는 t 클록 후 LFSR의 상태 값을 표현하는 이진 벡터이며, 4는 GF(2)에서 상태 전이 LxL 이진 행렬 4를 t번 곱한 행렬이다.

LFSR의 특성 방정식이 f(x)=cv + c1x + c2x2 + - + cLxL 일 때, 행렬 4는

#(2)

이다. 여기서, 4, 7 = 0, 1, 2, …, Z-1 는 행벡터이다. 따라서 표적 LFSR의 모든 출력 비트 %3= 厶 E+1, …, N-1은 다음과 같이 표현된다.

#(3)

+1는 4를『z+i번 제곱한 상태 전이 여기서,

행렬 4-z+i의 첫 번째 행이다.

GF(2)에서 k개의 출력 비트들을 더하여 패리티 검사방정식을 구성한다. 모든 패리티 검사 방정식은 한 개의 표적 출력 비트 气와 S1 개의 출력 비트 %, 气,

그리고 £개의 초기 출력 비트들의 합으로 晶과 같;] 구성한다.

#(4)

전처리 단계에서는, 각각의 표적 비트 総와 연관된 모든 패리티 검사 방정식들을 구하여 패리티 검사 방정식 집합 Q를 구성한다. 각 방정식은(1〕에서 이용된 것과 같이 *-lM3 일 때는 전통적인 제곱근 TMTO (Time Memory Tradeoff) 알고리즘을 이용하고, k-l>3일 때는(1〕에서 제안한 방식을 따른다. 본 공격 기법은 Z-1M3을 고려하기 때문에, 전통적인 제곱근 TMTO를 따른다. 이때의 계산 복잡도와 메모리 복잡도는 각각 0(A”d)/21 lo彖V)와 0(肥(1)仞)이다.

첫 번째 경로에서 사용되는 패리티 검사 방정식의 표적 비트는 편의상 표적 LFSR의 초기 상태 값 중 电, 을택하고 0引 = 句+1, …0-1은 모두 0이 되도록 하여, 다음과 같은 패리티 검사 방정식들을 구성한다.

#(5)

따라서 표적 비트 电, 에 대해 패리티 검사 방정식 집합 Qe(그림 5〕와 같이 구성되고, 패리티 검사 방정식 집합 q의 크기는 KW

이다

두 번째 경로에 대한 패리티 검사 방정식은 첫 번째

'如的"m區面・回

(그림 5) 꺄; 와 관련된 패리티 검사 방정식 집합 J"

경로에서 알려진 값들을 이용하여 다음과 같이 구성된다.

#(6)

첫 번째 경로의 패리티 검사 방정식을 구성한 방법으로 두 번째 이후의 경로에 대해서도 패리티 검사 방정식 집합 0 , / = 2, “顽을 구성한다.

3.2. 처리 단계

본 단계에서는 실제로 획득한 키 수열을 이용하여 표적 LFSR의 초기 상태 값들을 복구한다.

우선, 첫 번째 경로에서는 표적 비트 电1에 대한 패리티 검사 방정식 집합 0에서, LFSR의 초반 马개 출력 비트들에 대한 올바른 후보를 찾기 위해 전수조사를 실시한다.

(그림 2〕에서 p=Pr(4 =气)=§+弓 e>0 라고 하면, /함수의 项번째 입.출력 값은 확률 Pr(q=0)= §+e 을 가지는 랜덤한 잡음 勺에 대해 勺 =气陪勺이 되고, (5)는 다음과 같이 나타낼 수 있다.

#(7)

표적 비트 £為에 대해 喝 =(0""", 电[_, 의 가능한 모든 값들을 전수조사하므로, 추측한 값 X’為 :临 _]) 에 대해 (7) 은 다음과 같이 나타々 수 있다.

#(8)

만약 x'b; 을 올바르게 추측하였다면, (8)의 우변은 q ©-©e, 이 된다. 모든 랜덤 잡음이 균일하게 분포한 *1 3卜1

다면, piling-up lemma(2)에 의해 다음을 얻는다.

#(9)

따라서 올바르게 X%의 값을 주즉하면 확률 q로

#

을 만족하고 잘못 추측하면

확률 云 로 "…政妇气測汛=%을 만족한다 추측한 X%과 키 수열을 이용하여 각 패리티 검사 방정식으로부터 2遍의 값이 1일 때의 개수 과 0일 때의 개수 7%을 구해, 두 수의 차이의 절대값 |2?广7丸|이 0에 가깝다면 x'b, 은 높은 확률로 틀린 값일 것이지만, 값이 임계치보다 크다면 X或은 높은 확률로 올바른 값일 것이라고 추측할 수 있다.

한편, 본 논문에서는 올바르게 추측한 값을 좀 더 효율적으로 찾기 위해(1〕(11〕에서와 같이 Walsh 변환을 이용한다. 우선, 패리티 검사 방정식 집합 0의 모든 방정식들을 x'%의 패턴에 따라 새로 그룹을 지어 다음과 같이 정의된 &(¥咼)을 계산한다.

#(10)

그러면, 3=(싸), 에 대해 暗 Walsh 변환은 다음과 같다.

#(11)

Walsh 변환을 계산하는데 걸리는 시간 복잡도와 메모리 복잡도는 각각 0(如引와 0(2%)이다. /r를 준비하는 데 O0시)의 시간 복잡도가 걸리므로, Walsh 변환을 이용하여 올바른 x'm를 추측하는데 필요한 시간복잡도는 0(应J + 2*%) 이다.

한편, X板이 올바른지를 판단하기 위해서는 임계치 7에 대해, 回3)가 (回3)|뉘/기)/2 2 7를 만족하도록 정한다. 만약 旧3)1227」k기을 만족한다면, 추측한 x'b 올바르게 추측된 값이라고 고려할 수 있다. 또한, 이 奇 瓦3)의 부호가 양수라면 표적 비트 %, 을 0이라고 추측하고 그렇지 않다면 1이라고 추측하여, 첫 번째 패리티 검사 방정식 집합으로부터 句+ 1개의 비트를 얻을 수 있다.

위와 동일한 방법으로 나머지 경로에 대해서도 같은 방식으로 해당 비트들을 복구하면, (11〕에서 제안한 다중 경로 고속 상관 공격에 비해 각 경로에서 한 비트씩을 더 복구할 수 있다.

3.3. 성공확률

임계치 7에 대해, 공격의 성공확률을 높이기 위해 (11〕에서는 두 개의 확률 4과 均를 다음과 같이 정의한다.

#(12)

#(13)

여기서 P[ 은 올바르게 추측한 X“ 이 테스트를 통과할 확률이고, 均는 잘못 추측한 x'm이 테스트를 통과할 0 = |0传와

확률이다. 또한, (12) 에서는를 이용하고, (13) 에서는 "' = |0|-&

과 / = ? 何을 이용한다. 공격의 성공확률을 높이기 위해 주어진 7에 대해, 두 확률 与과 %는 각각 当 >0.99와 % <2“를 만족해야 한다.

한편, 성공확률을 결정짓는 것은 패리티 검사 방정식의 개수 I이, 4 = 2, …, m이다. 충분한 패리티 검사 방정식을 얻었을 때, 비로소 높은 획률로 표적 LFSR의 상태 값들을 복구할 수 있다. 충분한 패리티 검사 방정식의 크기를 정하기 위해 Zhang등은 4과 均를 이용했다. 그러나 각각의 패리티 검사 방정식은 알려진 값과 알려지지 않은 값들의 선형 식으로 이루어져 있어, 블록 암호에 대한 LC 공격(2〕어】 사용되는 선형 근 사 식과 유사한 형태로 구성된다. 즉, 찾고자 하는 X%과 电, 의 값이 선형 근 사 식의 키값에 대응된다. 따라由 필요한 패리티 검사 방정식의 개수도 [2] 에서 제시한 algorithm 2 의 성공확률을 따라 16|g-l/2「2개 정도의 패리티 검사방정식 들이면 99.9%의 확률로 성공할 수 있다. 예컨대 (11〕에서 제시한 방정식들의 수는 32|g-l/2「2개와 16lg-l/2「2개로 정도의 식들을 공격에 이용하였다.

Ⅳ. 공격의 효율성 비교

본 논문에서 제안하는 알고리즘의 실제 성능을 검증하기 위해 펜티엄 4 프로세서에서 C언어로 구현한 코드로 실험을 수행하였고, 99% 이상의 성공확률을 가지는 것을 확인하였다. 본 단원에서는 새로 제안된 스트림 암호에 대한 간단한 고속 상관 공격과 기존에 제안된 가장 좋은 결과를 갖는 두 논문(1〕(11〕을 비교 분석한다. 여기서 사용되는 매개변수들은 정확한 비교를 위해 (1〕과(11〕에서 제시한 것들을 사용한다.

표적 LFSR의 길이가 Z=40이고, p = 0.469일 때, 세 알고리즘의 효율성을 비교한 결과는(표 1〕과 같다. 여기서 이용된 매개 변수들은 N、=222, 凡 =2% 同 =19, 爲 =13, & = 3이다. 한편, (11〕에서는 첫 번째 경로에서 * 32lq-l/2| 개의 패리티 검사 방정식들을 이용한다. 그러나 16lq-l/2「2개의 패리티 검사 방정식들을 이용해도 99.9%에 가까운 성공확률을 가질 수 있으므로 이를 바탕으로(11〕*의 결과를 얻을 수 있다. 이 경우(11〕* 와 본 논문에서 제안하는 공격의 결과가 큰 차이가 없음을 알 수 있는데, 이는 공격의 시간 복잡도를 크게 좌우하는 첫 번째 경로가 같은 매개변수를 이용해서 구해지기 때문이다.

(표 1) L=40, p=0.469일 때, 알고리즘 효율성 비교

(표 2〕는 Z = 40이고, p = 0.490일 때, 효율성을 비교한 결과이다. 이용된 매개 변수들은 叫=2气 珥 =2如, 妨 =19, =10, 加=3이다.

(표 2) Z=40, p = 0.490일 때, 알고리즘 효율성 비교

(표 3〕은 Z=89이고 p = 0.469일 때, 효율성을 비교한 결과로 이론적으로 계산된 결과들을 비교하였다. 이용된 매개 변수들은 Nr = 232, N2 =231, 乌=2加, 0=26, 3=23, 爲 =21이다, 그리고 첫 번째 경로에서 k = 4이고, 두 번째와 세 번째 경로에서는 A: = 3이다. 위에서와 마찬가지로(11〕**는 앞에서 설명한 것과 마찬가지로(11〕 에서 제시한 매개변수를 개선한 결과이다. 이 경우(11〕**에 비해 본 논문의 결과가 약 9% 정도의 성능 향상을 가져오고 있음을 알 수 있다.

(표 3) £=89, p=0.469일 때, 알고리즘 효율성 비교

본 논문에서 제안하는 공격 기법은 Zhang 등이 제안한 논문과 복잡도 측면에서는 큰 차이가 없어 보인다. 이는 비록 첫 번째 경로에서 한 비트가 더 복구된다고 하더라도, 전체 복잡도를 결정짓는 첫 번째 경로가 Zhang 등이 제안한 공격 기법과 동일하기 때문이다. 그러나 (표 3〕의 결과에서 볼 수 있듯이 LFSR의 길이가 길어져 경로가 더 많아진다면 공격 복잡도에 더 큰 영향을 미칠 수도 있음을 알 수 있다.

Ⅴ. 결론

본 논문에서는 패리티 검사 방정식 집합을 구성하여 분할 정복 공격 방식으로 여러 경로를 통해 표적 LFSR 의 초기 상태 값들을 복구한다. 제안되는 공격기법은 표적 LFSR의 출력과 스트림 암호의 출력 사이에 일정한 상관관계가 존재하고 LFSR의 출력이 초기 상태 값의 선형 결합을 이루도록 설계된 일반적인 스트림 암호에만 적용이 된다. 때문에 비선형 필터 생성기나 시각제어 생성기 혹은 LFSR에 비해 비선형성이 강한 FCSR이나 NLFSR 등에 대해서는 직접적인 적용이 힘들 것으로 보인다.

제안된 공격기법은 기 제안된 이론들에 비해 복잡도의 측면에서는 크게 개선된 점이 없어 보이지만, 각 경로에서 한 비트를 추가로 더 복구함으로써 경로가 많이 만들어지는 경우에는 충분히 성능이 개선됨을 알 수 있다.

References

  1. P. Chose, A. Joux, M. Mitton, 'Fast correlation attacks: an algorithmic point of view', Advances in Cryptology – EUROCRYPT'02, Lecture Notes in Computer Science, Vol. 2332, Springer-Verlag, pp. 209-221, 2002
  2. Matsui, M., 'Linear cryptanalysis method for DES cipher', Advances in Cryptology - EUROCRYPT'93, Lecture Notes in Computer Science, Vol. 765, Springer-Verlag, pp. 386-397, 1994
  3. Meier, W., Staffelbach, O., 'Fast correlation attacks on stream ciphers', Advances in Cryptology - EUROCRYPT'88, Lecture Notes in Computer Science, Vol. 330, Springer-Verlag, pp. 301–314, 1988
  4. Meier, W., Staffelbach, O., 'Fast correlation attacks on certain stream ciphers', Journal of Cryptology, Vol. 1, No. 3 pp. 159-176, 1989 https://doi.org/10.1007/BF02252874
  5. Meier, W., Staffelbach, O., 'Correlation properties of combiners with memory in stream ciphers', Journal of Cryptology, Vol. 5, No. 1, pp. 67-86, 1992
  6. Menezes, A., Oorschot, P. C. V., Vanstone, S. A., 'Handbook of Applied Cryptography', CRCPress, 1997
  7. Mihaljevic, M. J., Fossorier, M. P. C., Imai, H., 'A low-complexity and high- performance algorithm for the fast correlation attack'. The 7th Fast Software Encryption Workshop(FSE 2000), Lecture Notes in Computer Science, Vol. 1978, Springer-Verlag, pp. 196–212, 2000
  8. Mihaljevic, M. J., Fossorier, M. P. C., Imai, H., 'Fast correlation attack algorithm with list decoding and an application', The 8th Fast Software Encryption Workshop(FSE 2001), Lecture Notes in Computer Science, Vol. 2355, Springer-Verlag, pp. 208–222, 2001
  9. Siegenthaler, T., 'Correlation-immunity of nonlinear combining functions for cryptographic applications', IEEE Transactions on Information Theory, Vol. IT-30, pp. 776-780, 1984
  10. Siegenthaler, T., 'Decrypting a class of stream ciphers using ciphertext- only', IEEE Transactions on Computers, Vol. C-34, pp. 81-85, 1985 https://doi.org/10.1109/TC.1985.1676518
  11. Zhang, B., Feng, D., 'Multi-Pass Fast Correlation Attack on Stream Ciphers', Selected Areas in Cryptography(SAC 2006)