기사 공부3(알기사, 대칭키 암호 ~DES)

반응형

현대 블록 암호

현대블록 암호 = 확산 혼돈 성질을 만족시키기 위해 전치요소(P-Box)치환요소(S-Box)를 결합하여 설계

확산 : 암호문과 평문사이의 관계를 숨기는 것

혼돈 : 암호문과 키의 관계를 숨기는 것

 

P-Box(전치)

P-Box의 종류 : 단순 P-Box, 확장 P-Box, 축소 P-Box

단순 P-Box = n 비트를 입력받아 m비트를 출력하는 P-Box로써 n=m을 만족 한다.

확장 P-Box = n 비트를 입력받아 m비트를 출력하는 P-Box로써 n<m을 만족 한다.

축소 P-Box = n 비트를 입력받아 m비트를 출력하는 P-Box로써 n>m을 만족 한다.

역함수의 존재성

- 단순 P-Box는 역함수가 존재하지만, 축소, 확장 P-Box는 역함수가 존재하지 않는다.

 

S-Box(치환)

- S-Box는 치환이기 때문에 n비트를 입력받고 m비트를 출력할 때 n=m이라 생각하겠지만

n!=m이어도 상관 없다.

- S-Box는 역함수가 존재할 수 도 있고 존재하지 않을 수도 있다.

역함수가 존재하는 S-Box = 입력비트 = 출력비트

 

합성암호

- Shannon이 합성암호라는 개념을 처음 소개 하였다.

- 합성암호는 치환, 전치, 그 밖의 구성요소를 결합한 복합적 암호이다

- 합성암호의 주된 개념은 확산과 혼돈 이다.

- 확산과 혼돈은 치환, 전치, 기타 구성요소가 반복적 합성 암호를 사용하여 얻어진다..

반복적으로 사용하는 합성암호 = Round라고 부른다.

- 합성암호의 종류 = Feistel, SPN

Feistel

- 3라운드 이상의 짝수 라운드로 구성

- 역변환이 가능

- 수행 블록간 완전한 확산이 이루어진다.

- 하드웨어, 소프트웨어 구현이 용이

- 구조상 문제도 아직 발견되지 않음

- 암호화, 복호화 과정이 동일

- 안정성을 보장받기 위해 평문 블록 = 64bit, key block = 64bit, 16R이상으로 구성이 되어야한다.

- MARS, RC6, Twofish에서 Feistel 구조 사용

- 역함수가 존재하는 요소나 존재하지 않는 요소 두 개다 사용이 가능

SPN

- Shannon 이론에 근거 대치암호와 전치 암호의 중첩 형태로 개발한 암호

- 역함수가 존재하는 요소만 사용이 가능

블록암호에 대한 공격

1. 차분분석

- 평문의 일부를 변경시 암호문의 변화를 이용하는 암호 해독법

2. 선형분석

- 마츠이가 개발한 방법

- 평문과 암호문 비트 몇 개를 XOR해서 0이되는 확률을 조사하여 암호 해독

- 선형분석을 이용하면 기지평문공격에서 선택평문공격이 가능

3. 전수공격법

- 1977DiffieHellman이 제안한 방법

- 암호화할 때 일어날 수 있는 가능한 모든 경우의 수 다 대입하는 법

- 경우의수가 적을 때는 가장 정확, but 경우의 수 많은 경우 실현 불가

4. 통계적분석

- 자료 및 통계를 이용하여 암호문을 해독하는 방법

5. 수학적분석

- 통계적 방법 포함한 모든 수학적 이론을 이용하여 해독하는 방법

 

현대 스트림 암호

스트림 암호 설계시 고려사항

1. 암호화의 연속은 긴 주기를 가져야한다.

2. 키 스트림은 진 난수 스트림과 최대한 비슷해야 한다.

키의 랜덤함이 진 난수 범위 안에 있는 모든 값이 골고루 들어갈 수 있게 해야 함

3. 키가 충분히 길어야 한다.(128bit)

동기식 스트림암호 vs 자기동기식 스트림 암호

동기식 스트림 암호

- 키 스트림과 평문 또는 암호문 스트림 관계가 독립적이다.

- 키 스트림은 평문 또는 암호문 비트와 키 비트 사이에 어떤 관계도 업시 생성되고 사용

 

OneTimePad(OTP)

- 동기식 스트림 암호 중 가장 간단하고 안전한 암호

- 암호화를 수행할 때 마다 랜덤하게 선택된 키 스트림을 사용한다.

- 해독이 불가능 무조건적으로 안전하다.

- 암호화 알고리즘 과 복호화 알고리즘은 각각 배타적 논리합 연산을 이용한다.

 

FSR(귀환 시프트 레지스터)

- 동기식 스트림 암호 중 one-time pad의 절충안

- 소프트웨어, 하드웨어에서 모두 구현은 가능하지만 하드웨어에서 구현이 더욱 용이

LFSR(선형 귀환 시프트 레지스터)

- 하드웨어에서 쉽게 구현

- 거의 모든 동기식 스트림 암호에허 LSFR 이용

- LSFR의 최대주기 = 2m-1이다.

NLFSR(비선형 귀환 시프트 레지스터)

- LSFR은 선형성 때문에 공격에 취약하다는 약점을 보안하기 위한 스트림 암호

 

비동기식 스트림 암호

- 암호문에 종속적으로 결정

- 블록암호에서도 CFB모드는 실제로 스트림 암호를 생성한다.

구분

자기동기식 스트림 암호

동기식 스트림 암호

특징

암호문이 전송도중 변경되어도 자기 동기화 가능

변조된 암호문이 후속 암호문 복호화에 사용되지 않아 오류파급이 제한적

입력값이 난수열 생성에 영향을 끼침

비동기식 스트림암호라고도 함

키 스트림 값은 평문, 암호문 스트림과 독립적

암호화, 복호화시 상호 동기화 필수

변조되어도 후속 암호문에 오류 전달 x

의도적인 변조를 복호화 단계에서 검출 x

 

DES

- 1973Lucifer 프로젝트의 수정판인 IBM의 제안으로 DES 채택 1975년 초안 공표

- DES는 대칭키 암호

- 확장 P-Box, XOR, 8개의 S-Box, 4개의 단순 P-Box로 구성

- 평문 길이 = 64bit(64bit 보다 긴 평문은 64bit 씩 나눈다)

- KEY 길이 = 64bit(56bit의 실제키+8bitpariorty bit)

- 암호화 과정은 두 개의 전치박스(P-Box)16R로 구성

- 각 라운드는 48bit 라운드 키를 사용한다.

- Feistel 구조

- 8개의 S-BOX에 안정성을 의존 한다.(비선형 함수이기 때문에)

- S-Box는 혼돈을 만족시켜준다(암호문과 키의 관계를 모르게 함)

- 단순 P-Box, 확산 P-Box는 확산을 만족 시킴(암호문과 평문관계 모르게함)

- DES의 취약점

DES의 실제 키 길이 = 56bit 최대 키 공간의 크기 = 256

예전에는 이 수가 많은 수였지만 현대에는 기술의 발전으로 전사공격에 안전x

- 3DES

1. DES의 보안적 안전성이 떨어지기 때문에 만든 함수로써 DES를 세 번하여 안정성을 높임

2. 3-DES는 하드웨어는 매우 효율적이지만 소프트웨어는 효율적이지 않다.

3. 3-DES는 여권의 바이오정보에도 이용되고 금융쪽에 많이 이용

4. 우리나라는 현재 3-DES를 사용하지 않고 1999SEED 사용하였고 2004년부터 ARIA를 사용중이다.

5. 3DES의 종류로는 2개의 키를 가지는 3-DES3개의 키를 갖는 3-DES가 있다.

- 2개의키를 가진 3-DES는 기지평문 공격에 취약하기 때문에 세 개의 키를 갖는 3-DES를 많이 사용

- 세 개의 키를 갖는 3-DESPGP등 많은 곳에서 쓰인다.

6. DES3-DES 상호 호환성을 가진다.

7. DES VS 3-DES VS AES

구분

DES

3-DES

AES

평문 길이

64

64

128

암호문 길이

64

64

128

키 길이

56

112(56*2 = 2개의 키사용) or 168(56*3 = 3개의 키 사용)

128,192,256

 

 

반응형