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