1장. 시저의 암호

Download Report

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암호이다.