NCS보안3기/암호2017. 3. 27. 23:22

- 블록암호는 평문 블록 전체를 가지고 동일한 길이의 암호문을 블록을 생성하는 암/복호화 방식

- 많은 블록암호가 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
Posted by Imp3rio