티스토리 뷰

Security

[security] 암호화 알고리즘

TurboC++ 2021. 6. 29. 18:50
728x90

1. 암호시스템의 관련 용어

- 평문
송신자와 수신자 사이 주고받고자 하는 내용을 적은 일반적인 문장으로 모든 사람들이 이해할 수 있는 일반 형태의 문장을 말한다. 평문은 암호화의 대상이 되는 문장으로 한글이나 영어 등의 일반 언어로 작성된 문장이다.

- 암호문
송신자와 수신자 사이에 주고받고자 하는 내용을 제 3자가 이해할 수 없는 형태로 변형된 문장을 암호문이라 한다.

- 암호화
평문을 제 3자가 알 수 없도록 암호문으로 변형하는 과정을 말하며 일반적으로 암호화 과정은 송신자가 수행한다.

- 복호화
암호문을 다시 일반인들이 이해할 수 있는 평문으로 변환하는 과정을 말하며, 일반적으로 복호화 과정은 암호문을 수신한 수신자가 수행한다.

- 키
평문의 암호화 과정이나 암호문의 복호화 과정에 필요로 하는 파라미터로 암호화키와 복호화 키로 나누어진다.

- 암호 알고리즘
암호 알고리즘은 암호화와 복호화에 사용되는 수학적인 함수이며, 암호 알고리즘은 암호화에 사용되는 암호화 알고리즘, 복호화에 사용되는 복호화 알고리즘이 있다.

- 암호해독
암호의 목적은 제3자의 도청으로부터 평문을 보호하는 데 있다. 암호해독은 암호방식의 정당한 사용자가 아닌 제3자가 불법적으로 암호문으로부터 평문을 원복하는 시도를 말하며, 암호해독은 암호화에 사용된 암호키를 찾거나 부대 정보를 이용하여 암호문으로부터 평문을 찾는 과정을 말하며 암호 공격이라고도 한다.

- 송신자와 수신자
통신망 상에서 비밀리에 평문을 주고받는 사람들을 말하며, 평문을 암호문으로 변경하여 수신자에게 전달하는 사람이 송신자이며 암호문으로부터 평문을 복호화하는 사람이 수신자이다.

- 공격자
암호방식의 정당한 참여자가 아닌 자로 암호문으로부터 평문을 해독하려는 제3자를 공격자라 한다. 특히, 송/수신자 사이의 암호통신에 직접 관여하지 않고 네트워크상의 정보를 관찰함으로써 공격을 수행하는 공격자를 도청자라 한다.

- 암호체계 (암호시스템)
암/복호화 열쇠, 평문, 암호문을 포함한 암/복호 알고리즘을 말한다.

2. 정보보호 서비스 개념

- 무결성
메시지전송 중 인가되지 않은 자, 혹은 인가되지 않은 방법으로 정보가 변조되지 않아야 하는 성질

- 기밀성
인가된 자만이 접근하여 취득하여야 하는 성질

- 부인봉쇄
송수신자가 송수신 사실에 대한 부인을 할 수 없도록 하는 성질

- 인증
인가된 자만이 정보 혹은 정보시스템에 접근하여야 하는 성질

- 가용성
컴퓨터 시스템이 인가 당사자가 필요할 때 이용할 수 있게 하는 것

- 접근제어
특정 권한을 가진 자만 접근할 수 있도록 하는 것

- 전자서명
정보의 송/수신 과정에서 정보의 송신자와 수신자의 인증과 전송되는 정보의무결성을 보장하는 성질

3. 암호 공격 방식

*(1) 보안공격

- 수동적 공격 : 도청, 스느핑, 트래픽 분석

- 능동적 공격 : 메세지 변조, 삽입공격, 삭제공격, 재생공격

(2) 암호공격 방식

** (2-1) 암호단독공격(Ciphertext only attack)

- 암호 해독자는 단지 암호문 C만을 갖고 이로부터 평문 P이나 키 K를 찾아내는 방법으로 평문 P의 통계적 성질, 문장의 특성 등을 추정하여 해독하는 방법

(2-2) 기지 평문 공격 (Known plaintext attack)
- 암호 해독자는 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 해독하는 방법으로 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해하는 방법

(2-3) 선택 평문 공격 (Chosen plaintext attack)
- 암호 해독자가 사용된 암호기에 접근할 수 있어 평문 P를 선택하여 그 평문 P에 해당하는 암호문 C를 얻어 키 K나 평문 P를 추정하여 암호를 해독하는 방법(2-4) 선택 암호문 공격 (Chosen ciphertext attack)
- 암호 해독자가 암호 복호기에 접근할 수 있어 암호문 C에 대한 평문 P를 얻어 내 암호를 해독하는 방법암호문으로 Key, 평문 추정

(3) 안정성 개념 : 계산량이 너무커서 현실적으로 공격 할 수 없는 경우 계산적으로 안정, 무한한 계산능력이 있어도 공격할 수 없는 경우를 무조건적 안전

4. 정보이론

* 엔트로피 : 유한개의 사건을 가지는 확률변수 X에 대한 확률분포 p(X)를 알 때, 발생하지 않은 사건의 불확실도를 엔트로피라하여 정보량 또는 정보의 불확실도를 측정하는 수학적 개념 즉,다음 값을 추정할 수 없어야 한다는 개념 정도만 알면 됨

5. 스트림 암호

1) stream cyper : 평문과 같은 길이의 키 스트림을 생성하여 평문과 키를 비트단위로 XOR하여 암호문

- 장점 : 오류확산 위험이 없다

- 단점 : 구현힘듬, 시간이 오래 걸림

- 종류 : RSA, SEAL, Bluetooth, A5

* 동기식 스트림 암호(키 스트림이 평문과 관계없이 생성)

1) 암호화와 복호화에서 상호 동기화가 필수

2) 오류 있을시 복호화 불가

3) 오류의 영향이 파급되지 않음

* 자기 동기식 스트림 암호(키 스트림이 평문으로부터의 함수관계에 의해 생성)

1) 전송도중 변경되어도 자기 동기화

2) 오류 발생시 자동복구

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

1) 수열의 양을 계산할 수 있는 장점

2) 길이가 작으면 쉽게 해독 된다.

3) LFSR들의 길이 중 최소의 길이를 선형복잡도 2의 n승 = 임의의 값

* 비선형 결합논리

LFSR를 단독으로 사용하는 것은 쉽게 해독된다. 두 가지 형태가 있는데 하나는 출력수열만을 비선형 결합하는 것이고 다른 하나는 LFSR의 동작을 제어

- 비선형 여과 생성기(Nonlinear Filter Generator) : 하나의 LFSR과 비선형 함수로 구성

- 비선형 결합 생성기(Nonlinear Combination Generator) : 여러 개의 LFSR과 비선형 함수 구성

* 시각제어 논리

하나의 LFSR의 출력에 의해 다른 LFSR의 동작을 제어하는 논리를 통칭

1) Cascade Generator

2) Stop and Go Generator

3) Alternating step Generator

4) Shrinking Generator

* 상관공격

- input과 output의 상관관계를 찾아 key 를 찾아내는 공격

* FCSR(용어 정리만)

- Summation Generator의 정수 덧셈을 확장시켜 LFSR의 동작에서 xor대신에 정수 덧셈을 하는 시프트 레지스터가 FCSR, 선형 복잡도 측면 주기의 반 정도가 되는 장점이 있다.

* 대수적 공격(생략)

6. 블록암호 : 블록단위로 짤라서 암호화

(1) ECB 모드 (Electronic Code Book Mode)
ECB모드는 가장 단순한 방식으로 각 블록을 독립적으로 암호화 한다. 이 방식은 동일한 평문블록은 동일한 암호문을 생성하는데 이는 안전성에 있어서 이런점은 바람직하지 않다. 이러한 이유로 ECB모드는 잘 사용하지 않는다.

(2) CBC 모드 (Cipher Block Chaining Mode)

암호화에서는 특정 입력이후로 영향을 미치지만, 복호화에서는 특정 암호문의 오류가 계속적으로 이후에 영향을 미치지는 않는다는 특징이 있다.

(3) CFB 모드(Cipher FeedBack Mode)

(4) OFB 모드(Output FeedBack Mode)
OFB모드는 초기치 Ⅳ를 암호화 하고 그 값을 다시 암호화하는 과정을 반복함으로써 생성된 수열과 평문 수열을 XOR하여 암호문을 생성하는 방식으로, 주로 블록암호 시스템을 스트림암호 시스템처럼 사용하고자 할 때 이용된다. 이 방식에서 암호문의 오류는 복호화 과정에서 대응되는 한 블록에만 영향을 비치므로, 영상이나 음성 같은 디지털 신호화한 아날로그 신호에 많이 사용된다.

-OFB 간단정리 : 시험엔 ECB와 CBC의 비교나 CBC와 CFB의 특징을 묻는 문제가 많이 출제 된다. OFB의 간단한 특징은 수열이 들어간다는 것!, 그리고 블록암호 시스템을 스트림암호 시스템처럼 사용하고자 할 때 이용되고, 영상이나 음성 같은 디지털 신호화한 아날로그 신호에 많이 사용된다. 사전공격에 강하고 평문이 날라다니지 않으며 오류전파도 안됨!!

(5) 카운터 모드(Counter Mode)
Counter모드는 초기치 Ⅳ와 Ⅳ+1, Ⅳ+2,....을 암호화하여 생성된 평문수열을 XOR하여 암호문 블록을 생성하고 그 암호문을 기초로 하여 다시 암호화한 값과 평문블록을 XOR하여 암호문블록을 반복하여 생성하는 방식이다. 암호화에서는 특정 입력이 이후로 영향을 미치지만, 복호화 할 때 Ⅳ가 주어지면 미리 계산할
수 있어 평문이 주어지면 바로 암호문을 만들 수 있다는 장점이 있지만, 동일한 비밀키와 Ⅳ를 반복하여 사용할 경우 안전성에 문제가 생긴다는 약점이 있다.

'Security' 카테고리의 다른 글

[security] DES (Data Encryption Standard)  (0) 2021.06.29
[security] 암호화 알고리즘  (0) 2021.06.29
댓글