자가수축발전기

Self-shrinking generator

자가수축 발전기수축 발전기 개념을 기반으로 하는 유사 발전기이다. 선형피드백 시프트 레지스터(LFSR)에 기초한 자가수축 발전기의 변형은 암호화에 사용하기 위해 연구된다.[who?]

알고리즘.

두 번째 피드백 시프트 레지스터를 사용하여 첫 번째의 출력을 제어하는 수축 발전기와는 달리, 자기축소 발전기는 단일 레지스터의 교차 출력 비트를 사용하여 최종 출력을 제어한다. 이러한 종류의 발전기를 클럭화하는 절차는 다음과 같다.

  1. LFSR을 두 번 클럭하여 비트 쌍을 LFSR 출력으로 얻으십시오.
  2. 쌍이 10이면 0이다.
  3. 쌍이 11이면 1개 출력
  4. 그렇지 않으면 아무것도 출력하지 않는다.
  5. 1단계로 돌아가십시오.

이 예에서는 연결 다항식 x8 + x4 + x3 + 12 초기 레지스터 채우기 1 0 1 0 1 0을 사용한다.

아래 표에는 LFSR의 각 반복에 대해 최종 제너레이터 출력뿐만 아니라 자체 축소 전의 중간 출력 목록이 나와 있다. 연결 다항식으로 정의된 탭 위치는 파란색 헤딩으로 표시된다. zeroth 반복의 상태는 초기 입력을 나타낸다.

반복 # 8 7 6 5 4 3 2 1 중간 출력 제너레이터 출력
0 1 0 1 1 0 1 1 0 해당 없음 해당 없음
1 1 1 0 1 1 0 1 1 0 해당 없음
2 1 1 1 0 1 1 0 1 1
3 1 1 1 1 0 1 1 0 1 0
4 1 1 1 1 1 0 1 1 0

4회 반복이 끝나면 중간 비트의 순서는 0110이다.

첫 번째 비트 쌍인 0110이나 11과 일치하지 않기 때문에 폐기된다. 두 번째 비트 쌍인 10은 알고리즘의 두 번째 스텝과 일치하므로 0이 출력된다.

위에서 설명한 것처럼 LFSR을 계속 클럭화하고 출력을 축소하여 더 많은 비트를 생성한다.

암호해석

Meier와 Steffelbach는 그들의 논문에서 길이 L의 연결 다항식을 가진 LFSR 기반의 자체 수축 발전기가 출력 시퀀스 주기가L/2 최소 2이고 선형 복잡성이 최소L/2-1 2라는 것을 증명한다.[1]

게다가, 그들은 모든 자가 수축 발전기가 수축 발전기로 표현될 수 있다는 것을 보여준다. 역도 또한 사실이다. 수축 발전기는 자체 수축 발전기로 구현될 수 있지만, 그 결과 발전기는 최대 길이가 아닐 수 있다.

저자들에 의해 제시된 공격은 알려진 연결 다항식이라고 가정할 때0.7L 약 2단계가 필요하다.

Mihaljevich가 발견한 보다 진보된8 공격은 4.9 x 10비트의 출력 시퀀스를 이용하여 약 2단계에57 걸쳐 레지스터 100비트를 깨뜨릴 수 있다.[2]

또 다른 공격

참조

  1. ^ "자수축 발전기", Cryptology-Eurocrypt 1994(LNCS 950), 205-214, 1995.
  2. ^ 1995년 12월 영국 서커스터 "자수축 발전기 보안 검사"
  3. ^ Zenner, Erik; Krause, Matthias; Lucks, Stefan. "Improved Cryptanalysis of the Self-Shrinking Generator". Information Security and Privacy 13th Australasian Conference ACISP 2008: 30. Retrieved 12 April 2016.

추가 읽기