- 블록암호는 평문 블록 전체를 가지고 동일한 길이의 암호문을 블록을 생성하는 암/복호화 방식
- 많은 블록암호가 Feistel 구조를 띄고 있다.
* 동일한 라운드 수로 구성되어 동작
* 각 라운드는 데이터의 절반이 치환으로 수행, 이후 데이터의 두 개의 반을 교환하는 순열 수행
* 원본의 키는 확장되어 각 라운드마다 다르게 사용
1. 스트림 암호
- 한번에 1비트 혹은 1바이트의 디지털 데이터 스트림을 암호화한다.
- 키 스트림은 평문 비트 스트림 만큼의 길이를 갖는다.
2. 블록 암호
- 평문 블록 전체를 가지고 같은 크기의 암호문 블록 생성한다.
- 전형적으로 64비트 또는 128비트를 사용한다.
3. Feistel 암호 구조의 동기
- 블록암호는 n비트 암호문 블록을 생성하기 위해 n비트 평문 블록을 이용하여 연산한다.
- 2ⁿ 가지의 서로 다른 평문 블록이 존재한다.
- n비트-n비트 블록치환 (n = 4인 경우)
-> 4비트 입력으로 16개 값 중 하나 선택하고, 내부 치환에 의하여 16개 출력 값 중 하나에 대응하여 4비트 출력
4. 블록 암호의 원리
- 두 개이상의 기본 암호 연속적 수행(치환, 순열 번갈아 수행)
- 치환 : 평문의 각 원소 또는 원소의 그룹을 다른 원소에 사상
- 순열 : 평문 원소의 순서는 순열의 순서대로 재배치
- 확산과 혼돈 : 통계적 분석에 기초한 암호 해독 방지
- 확산 : 평문의 통계적 구조가 암호문에 광범위하게 분산(평문과 암호문 관계 복잡)
각 평문 숫자가 다수의 암호문 숫자 값에 영향
- 혼돈 : 암호문의 통계적 구조와 암호 키 값 사이의 관계 복잡
키를 이용한 암호문 생성 방법 복잡(키 추론 어려움)
5. Feistel 암호 구조
- 처리구조
* 길이 2w 비트인 평문 블록(L0, R0) 분할처리
* K로부터 유도된 n개의 키(ki) 사용
* n회의 동일한 반복 구조 실행
- 하나의 반복 구조
* 오른쪽 반 R0에 반복함수 F 적용
반복 서브키 K1 적용(K ≠ Ki)
* 왼쪽 반 L0와 XOR(치환 작용)
* 좌우 양쪽 결과를 교환(순열 작용)
* Feistel 암호 설계의 고려사항
- 빠른 소프트웨어 암/복호화
* 어플리케이션 또는 유틸리티 함수에 내재
* 알고리즘의 실행속도가 중요
- 분석의 용이성
* 암호 해독의 취약성에 대한 알고리즘의 분석이 쉬움
* 고도의 신뢰성과 보안 강도를 위한 개발 용이
6. 설계 특성
- 블록 크기(64비트)
* 큰 블록은 보안 강화하지만 암/복호 속도는 저하
* 암/복호 속도를 고려 64비트 일반적
- 키 크기(128비트)
* 큰 키는 보안 강화하지만 암/복호화 속도는 저하
* 암/복호 속도를 고려하여 128비트 일반적(64비트 이하는 해독 용이)
- 반복 수
* 다중 반복과정은 보안성 강화
* 16회 반복이 일반적
- 서브키 생성 알고리즘
* 서브키 생성 방법이 복잡할수록 강력
- 반복함수
* 적용되는 반복함수가 복잡할수록 강력
7. Feistel 복호 알고리즘
- 암호화와 복호화에 같은키 사용을 위하여 서브키 ki를 역순으로 사용
8. DES(Data Encryption Standard)
* 특징
- 1977년 미국 표준국에서 미 연방 정보처리 표준46으로 채택
- 64비트 블록 암호 알고리즘
- 56비트 키를 사용
* 64비트 중 8비트는 parity check로 사용
- 기본구조
* round 수 : 16 round
* 복호화는 암호화의 역순
- 최근에는 DES암호화를 세 개의 키로 세 번 반복함으로써 암호의 강도를 높인 Triple-DES를 사용
9. DES 암호화
- 64비트 순열 입력
- 56비트 키 사용
- 초기 순열
- S-Box
* DES의 복호화 알고리즘
- 암호화 알고리즘을 동일하게 적용
- 부분키 ki는 역으로 적용시킨다.
* 쇄도 효과 (avalanche effect)
- 평문 또는 키 값의 소량의 변화가 암호문에 매우 큰 변화를 가져와야 한다.
10. DES의 운영모드
* ECB 모드
- 특징
* 에러 전이 없음
* 하나의 평문을 한 번 암호화 사용 권고됨
* 세션키 암호화와 강티 애무 특별한 용도로만 사용
* 암호화, 복호화 병렬처리 가능
- 단점
* 동일 암호문은 동일한 평문 생성
* Database 응용에 부적당
- 암호화와 복호화
* CBC 모드
- 특징
* 에러전이 발생
* 초기치는 메시지별로 선택, 비밀일 필요는 없으나 무결성 요구됨
* 암호화시 암호문 블록에 에러가 발생하면 이후의 모든 암호문에 에러 발생
* 복호화 병렬처리 가능
* 인증에 사용
- 암호화와 복호화
* CFB 모드
- 특징
* 문자나 비트 단위 취급( 통신프로토콜 하위계층 )
* 암호화 과정만 필요
* 복호화는 병렬처리 가능
- 암호화와 복호화
* OFB 모드
- 특징
* 에러전이 없음 ( 암호문 1비트 에러는 평문 1비트 에러 )
* 키 수열은 평문과 무관( 사전계산 가능 ), 스트림 암호로 사용
* 키 수열의 동기화 필수적
* 위성과 같은 noisy 채널에 사용
- 암호화와 복호화
'NCS보안3기 > 암호' 카테고리의 다른 글
[Encryption] 해쉬 함수 (0) | 2017.03.28 |
---|---|
[Encryption] 고전 암호 기법 (0) | 2017.03.27 |
[Encryption] 컴퓨터 보안과 암호 (0) | 2017.03.27 |