공부/보안

3.대칭키 암호

용팬 2019. 11. 19. 06:42

<현대 블록 암호의 구성요소>

현대의 블록 암호는 확산(diffusion)과 혼돈(confusion) 등의 성질을 만족시키기 위해서

전치요소(P-Box) 와 치환요소(S-Box) 그리고 그 밖의 구성요소를 결합하여 설계된다. 

1) P-박스(Transposition box) : 확산(평문과 암호문 사이의 관계를 감추는 것) 을 만족시킨다.

P-BOX input(N) , output(M) 역함수 존재성
Straight Permutaion : 단순 P-박스 N=M O
Compression Permutation : 축소 P-박스 N>M X
Expansion Permutation : 확장 P-박스 N<M X

2) S-박스(Substitution box) : 혼돈(암호문과 키 사이의 관계를 감추는 것) 을 만족시킨다.

  - substitution

  - Exclusive-OR

  - Shift

  - Swap

  - Split         

                                                  

- Combine

 

 

3) 합성 암호(Product Ciphers)

Feistel 구조 SPN 구조

암호화

복호화

<블록 암호에 대한 공격>

1) Differential Cryptanalysis, 차분 해독법 : 평문의 일부를 변경하면 암호문이 어떻게 변하는가? (Biham Shamir)

2) Linear Cryptanalysis, 선형 해독법 : 평문과 암호문 비트를 몇개정도 XOR 해서 0이 되는 확률을 조사한다. 일반적으로 50퍼센트의 확률을 가지는데, 이를 크게 벗어나는 비트를 조사한 후 기지평문공격에 활용이 가능하다.(松井 充, 마쓰이 미쓰루)

참고자료
https://www.youtube.com/watch?v=93PD9CqcZTg
http://cs.bc.edu/~straubin/crypto2017/heys.pdf

3) Exhaustive Key Search, 전수공격법 : 암호화시 가능한 모든 경우를 조사한다. (Diffie, Hellman, 1977)

4) Statistical analysis, 통계적 분석 : 예) 단어별 빈도수 조사 등

5) Mathematical analysis, 수학적 분석 : 수학적 이론을 이용한 해독방법 

 

<현대 스트림 암호>

참고자료
http://cacr.uwaterloo.ca/hac/about/chap6.pdf

 

키스트림 K= Kn'''K2K1 을 어떻게 생성하는지가 현대 스트림 암호의 주된 관심사이다.

1) 동기식 스트림 암호 : 키는 평문 혹은 암호문과 독립적이다. 키 스트림이 암호문 또는 평문에 영향받지 않고 생성된다.

Definition A synchronousstream cipher is one in which the keystream is generated independently of the plaintext message and of the ciphertext.

동기성(송수신자는 '동기화'된 키값과 상태값을 사용해야 한다. 만약 훼손이 발생하여 동기성이 사라진 경우 복호화는 실패하게되고 오로지 부가적인 재동기화 기법에 의해서 복구 되는 수 밖에 없다. 재동기화 기법은 재초기화, 암호문을 규칙적인 간격별로 특정한 마킹하기, 평문의 충분한 중복성, 가능한 모든 키스트림 시도해보기 등이 있다.), 에러전파는 존재하지 않는다.(훼손뒌 한 비트의 암호문은 다른 자리의 암호문 복호화에 아무런 영향을 주지 않는다.), 능동적 공격(삽입,삭제,재생 공격은 즉각적인 동기성의 상실로 이어지며 해독기에 걸릴 수 있다. 또 공격자는 암호문에 변조를 가해서 평문과 암호문 사이의 관계를 밝혀내는 선택 암호문 공격을 할 수 있다. )

σ0 은 초기의 상태이며 Key k와 next-state function f 에 의해 결정된다. g는 keystream zi를 생성하는 함수이고, h는 평문 mi와 keystream zi를 결합하여 암호문 ci를 생성하는 출력함수이다. OFB모드는 대표적인 동기 스트림 암호의 예시이다.

 

 OTP (One-time Pad) : 길버트 버냄의 Vernam 암호, 암호화를 수행할 때마다 랜덤하게 선택된 키 스트림을 사용한다. 해독 불가능(unconditionally secure, theoretically unbreakable)하다는 것이 샤논에 의해 1949년에 증명되었다. 알고리즘은 배타적논리합을 사용한다. 

 

2) 비동기식 스트림 암호 : 키 스트림의 각 비트는 이전의 평문이나 암호문에 종속적으로 결정된다. CFB 모드에서는 실제로 스트림 암호를 생성한다. 키 스트림이 암호문에 영향을 받아 복호화에 필요한 키 스트림을 생성하여 복호화가 성립된다. 키 스트림을 생성할 때, 암호화 키와 함꼐 이전에 암호화된 문자열 일부를 사용한다.

Definition A self-synchronizing or asynchronous stream cipher is one in which the keystream is generated as a function of the key and a fixed number of previous ciphertext digits.

제한된 에러만을 전파할 수 있는 자기동기성, 능동적 공격(자기동기성으로 인한 능동적 공격자의 공격이 탐지되기 어렵기 때문에 인증이나 무결성을 위한 추가적인 메커니즘이 요구된다.), 평문의 통계적 확산(全文이 암호문에 영향을 미치므로 통계학적 특징들이 가지각색으로 흩어지고 이는 평문 중복에 의한 공격에 대해서 저항성이 강하다고 볼 수 있다.)을 특징으로 가진다.

σ0 = (c−t, c−t+1,... ,c−1)은 초기상태, 나머지 과정은 동기식 스트림 암호화 과정과 같으니 생략한다.

Linear Feedback Shift Register (선형 귀환 시프트 레지스터) : 레지스터에 입력되는 값이 이전 상태의 값들의 선형 함수로 계산되는 구조이다. 초기 값은 Seed이며, 선형함수는 XOR을 사용한다. 특정 주기에 의해 반복되며, 4비트의 단위 상태값의 반복 구조를 가진다.

Feedback Shift Register (귀환 시프트 레지스터) : FSR은 Shift와 Feedback함수로 이루어져있고, 하드웨어 구현이 더 용이하다.

 

Nonlinear Feedback Shift Register (비선형 귀환 프로젝트) :

선형성때문에 공격에 취약한 LFSR보다 더 안전한 암호 설계 가능하다.

 

3) 동기식, 자기동기식 스트림 암호에서 헷갈리는 개념 정리 :

암호문이 전송 도중 변경 될 경우 동기화 가능여부

- 동기, 비동기 둘 다 가능하다 : 동기식 스트림 암호의 키스트림은 암호문에 영향 받지 않기 때문에 변조된 데이터의 값에 영향을 받지 않는다. 비동기식 스트림 암호의 경우 암호문이 변조되었다고 해도 그 변조된 암호문으로 키스트림의 생성(동기화) 자체는 가능하다. 변조된 값으로 키스트림의 생성이 진행되어 기대되는 평문으로의 복호화가 불가능 할 수 있지만 동기화 자체는 가능하다.

암호문 변조여부 복호화 단계에서의 탐지 가능여부

-동기식 스트림 암호 : 키스트림이 가지각색이기 때문에 변조된 값인지 알 수 없다.

-비동기식 스트림 암호 : 비트단위 계산 중 인식 불가능한 문자로 해독된다면 decryptor에서 에러가 탐지 될 수 있다. 어디에서 오류가 발생했는지 알아볼 수 있다.

각 암호화 기법에서의 동기화의 의미

-동기식 스트림 암호 : 송신자와 수신자 사이의 동기화; 키값과 상태값이 동일하다.

-비동기식 스트림 암호 : 암호화값 -> 키스트림 사이의 동기화

에러의 전파

-동기식 스트림 암호 : 오류 파급 (에러 전파) 가 존재하지 않는다.

-비동기식 스트림 암호 : 오류 파급 (에러 전파) 가 제한적으로 존재. (변조된 암호문이 후속 암호문 복호화에 사용되지는 않지만, 전체적 데이터 값 복원에 지장을 야기할 수 있다.) -> 다른 복호화 케이스에는 영향을 미치지 않지만 해당하는 케이스에는 영향을 미치기 때문에 '제한적'.

 

 

'공부 > 보안' 카테고리의 다른 글

6.해시함수  (0) 2019.11.27
5.비대칭키 암호  (0) 2019.11.23
4.대칭키 암호의 소개  (0) 2019.11.23
2.암호학 개요  (2) 2019.11.17
1.정보보안 개요  (0) 2019.11.17