Transcript 1장. 시저의 암호
3장. 선형레지스터
3.1 일회용 암호
1917년 미국 AT&T 회사의 엔지니어 Gilbert S.
Vernam이 처음 사용.
키를 완전한 무작위성을 가지도록 선택하므로 수학
적 통계적 특성이 존재하지 않음.
일회용 암호
1) 평문의 길이
택한다.
계속
n , 키의 길이 n, 출현빈도는 같도록 선
2) 아래 그림과 같이 암호화한다.
평문
a1a2 ...an
키
k1k 2 ...k n
암호문
a1 k1
일회용 암호
계속
컴퓨터에서 ai와 ki 는 이진법 수 0, 1을 사용하고, XOR연산 규칙
1 1 0 0 0; 1 0 0 1 1
에 의해 a1 k1, a2 k2 ,... 를 계산한다.
평문
01100 10001 1001…
키
10100 11001 1010…
암호문
11000 01000 0011…
일회용 암호
계속
암호계의 안전성을 위해 동전던지기 혹은 난수 발생기
같은 프로그램을 사용하여 키 수열의 0과 1은 서로 균
등한 확률로 나타나게 한다.
문제점
- 메시지를 받는 사람과 보내는 사람이 같은 키를 가져
야 하므로 키 교환에 문제가 있다.
3.2 선형 레지스터(LFSR)
키의 제작과 전달은 레지스터라 불리는 의사무작위
수열을 이용
레지스터 : 각 네모 칸의 내용물이 일정한 시간에 따
라 화살표 방향으로 다음 네모 칸으로 이동. 가장 오
른쪽에 있는 비트는 출력. 가장 왼쪽 네모 칸은 가장
오른쪽의 비트를 받는다.
선형 레지스터(LFSR)
계속
레지스터가 공격 당하는 것을 막기 위해 마지막 칸
에 어떤 규칙에 의한 새로운 값을 입력한다. 그 규
칙의 하나가 선형레지스터이다.
선형레지스터 : 특별한 칸을 선택하여 각 위치에서
더하여 마지막 칸에 대입하는 방법
선형 레지스터(LFSR)
계속
예) 길이 4인 두 개의 선형 레지스터를 생각하자.
1
0
0
0
1
0
0
0
첫 번째 선형 레지스터에서는 수열
101 000101 0001 …
두 번째 선형 레지스터에서는 수열
000111101011001 000111101011001 0001 …
이 나온다.
선형 레지스터(LFSR)
계속
선형레지스터의 주기 : 앞의 예에서 0과 1을 사용한 4자리수
4
의수열을 이용했으므로 2 16 개의 종류가 있다.
무작위 수열을 생성할 때 0인 칸은 암호화에 영향을 미치지
않는다. 따라서 길이가 4인 선형 레지스터의 주기는 최대
2 4 1 15 이고, 길이 n 인 선형 레지스터의 최대 주기는
2 n 1 이 됨을 알 수 있다.
3.3 선형 레지스터 암호의 공격
초기 수와 피드백 규칙을 알아냄으로써 공격할 수 있다.
암호 공격자가 8자리 평문 비트와 그에 대응하는 8자리 암호
비트를 알고 있다면, 8자리 키 비트열도 알 수 있다. 예를들어
키 수열이 00011110 이라면 키 길이가 4이므로 처음 수 4개
를 거꾸로 한 수열이 초기 수열이다.
피드백 규칙을 알아내 보자.
1) 다음 그림을 참조하자.
ci 1 이면 피드백으로 작용을 하고, 0 이면 화살표가 없다고
생각한다.
c4
1
c3
0
c2
0
c1
0
선형 레지스터 암호의 공격
계속
2) 이제 ci 값들을 결정하자.
- 선형 레지스터가 수행되는 과정을 몇 회로 나누어 관찰하자.
- 한 칸 이동하면,
c1 0 c2 0 c3 0 c4 1 c4
이므로 다음과 같다.
4번째 칸
3번째 칸
2번째 칸
1번째 칸
c4
1
0
0
4번째 칸
3번째 칸
2번째 칸
1번째 칸
c4 c3
c4
1
0
- 두 칸 이동한 결과는
선형 레지스터 암호의 공격
계속
- 3칸 이동한 결과는
4번째 칸
c2 c4
3번째 칸
c3 c4
2번째 칸
1번째 칸
c4
1
- 4칸 이동한 결과는 아래와 같다.
4번째 칸
3번째 칸
2번째 칸
1번째 칸
c1 c3 c4 c3 c4
c2 c4
c3 c4
c4
선형 레지스터 암호의 공격
계속
암호 공격자는 c4 1
c3 c4 1
c2 c4 1
c1 c3 c4 c3 c4 0
임을 알 수 있고,
c4 1,
c3 0,
c2 0,
c1 1
이다.
선형 레지스터의 약점은 비선형 레지스터를 사용하여 극복할 수
있다. 모든 비트들을 섞어서 곱하고 더하는 복잡한 연산 규칙을
비선형이라 한다.
선형 레지스터 암호의 공격
계속
간단한 예) 길이 4인 레지스터(비선형)
(c4 1) c3 c1 1
c4
c3
c2
c1
- 요즘 대부분의 암호 알고리즘은 비선형 레지스터를 사용
- 가장 인기있는 비선형 알고리즘은 DES암호이다.