현대 블록 암호
현대블록 암호 = 확산과 혼돈 성질을 만족시키기 위해 전치요소(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. 전수공격법
- 1977년 Diffie와 Hellman이 제안한 방법
- 암호화할 때 일어날 수 있는 가능한 모든 경우의 수 다 대입하는 법
- 경우의수가 적을 때는 가장 정확, 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
- 1973년 Lucifer 프로젝트의 수정판인 IBM의 제안으로 DES 채택 1975년 초안 공표
- DES는 대칭키 암호
- 확장 P-Box, 키 XOR, 8개의 S-Box, 4개의 단순 P-Box로 구성
- 평문 길이 = 64bit(64bit 보다 긴 평문은 64bit 씩 나눈다)
- KEY 길이 = 64bit(56bit의 실제키+8bit의 pariorty bit)
- 암호화 과정은 두 개의 전치박스(P-Box)와 16R로 구성
- 각 라운드는 48bit 라운드 키를 사용한다.
- Feistel 구조
- 8개의 S-BOX에 안정성을 의존 한다.(비선형 함수이기 때문에)
- S-Box는 혼돈을 만족시켜준다(암호문과 키의 관계를 모르게 함)
- 단순 P-Box, 확산 P-Box는 확산을 만족 시킴(암호문과 평문관계 모르게함)
- DES의 취약점
→ DES의 실제 키 길이 = 56bit → 최대 키 공간의 크기 = 256개
예전에는 이 수가 많은 수였지만 현대에는 기술의 발전으로 전사공격에 안전x
- 3중 DES
1. DES의 보안적 안전성이 떨어지기 때문에 만든 함수로써 DES를 세 번하여 안정성을 높임
2. 3-DES는 하드웨어는 매우 효율적이지만 소프트웨어는 효율적이지 않다.
3. 3-DES는 여권의 바이오정보에도 이용되고 금융쪽에 많이 이용
4. 우리나라는 현재 3-DES를 사용하지 않고 1999년 SEED 사용하였고 2004년부터 ARIA를 사용중이다.
5. 3중 DES의 종류로는 2개의 키를 가지는 3-DES와 3개의 키를 갖는 3-DES가 있다.
- 2개의키를 가진 3-DES는 기지평문 공격에 취약하기 때문에 세 개의 키를 갖는 3-DES를 많이 사용
- 세 개의 키를 갖는 3-DES는 PGP등 많은 곳에서 쓰인다.
6. DES와 3-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 |
'보안기사 > 필기' 카테고리의 다른 글
기사공부(알기사, 전자서명) (0) | 2019.01.16 |
---|---|
기사자격증(알기사, 해시함수의 응용1) (0) | 2019.01.15 |
기사공부(알기사, 비 대칭키 암호) (0) | 2019.01.13 |
기사공부(알기사, AES와 기타 대칭키 암호) (0) | 2019.01.11 |
기사 자격증 공부(알기사, 정보보호관리의 개념) (0) | 2019.01.09 |