1). 암호 공격방식

① 수동적 공격

1. 전송되는 파일 도청 : 불법적인 공격자가 전송되는 메시지를 도중에 가로채어 그 내용을 외부로 노
출시키는 공격 (메시지의 내용 공격)

 

2. 트래픽 분석 : 전송 메시지의 암호화로 도청을 통한 메시지 내용 파악이 불가능하더라도 메
시지의 송신측과 수신측 신원의 파악 가능 (메시지 존재에 대한 공격 - 익명성
제공으로 방어)

 

② 능동적 공격

1. 메시지 변조 : 전송되는 메시지들의 순서를 바꾸거나 또는 메시지의 일부분을 다른 메시지
로 대체하여 불법적인 효과를 발생시키는 공격

 

2. 삽입 공격 : 불법적인 공격자가 정당한 송신자로 가장하여 특정 수신자에게 메시지를 보
내어 역시 불법적인 효과를 발생시키는 공격

 

3. 삭제 공격 : 정상적인 통신시설의 사용, 관리를 방해하는 서비스 거부 공격, 특정 수신자
에게 전송되는 메시지의 전부 또는 일부가 공격자에 의해 삭제되는 것.

 

4. 재생 공격 : 공격자가 이전에 특정 송신자와 수신자간에 행해졌던 통화내용을 도청하여
보관하고 있다가 나중에 재생하여 전송하는 공격

 

③ 암호 메세지 공격 유형

1. 암호문 단독공격(Ciphertext only Attack)-COA  

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

 

2. 알려진 평문공격(Known Plaintext Attack)-KPA

암호 해독자는 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서해독하는 방법으로 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해독하는 방법

 

3. 선택 평문 공격(Chosen Plaintext Attack)-CPA

암호 해독자가 사용된 암호기에 접근할 수 있어 평문 P를 선택하여 그 평문 P에 해당하는 암호문 C를 얻어 키 K나 평문 P를 추정하여 암호를 해독하는 방법

 

4. 선택 암호문 공격 (Chosen Ciphertext Attack)-CCA

암호 해독자가 암호 복호기에 접근할 수 있어 암호문 C에 대한 평문 P를 얻어내 암호를 해독하는 방법

 

2) 대칭키, 공개키 암호시스템 특징

① 암호 시스템 분류 : 대칭키, 공개키 암호 시스템

1. 암복호화의 키에 따른 분류

- 대칭키 암호시스템 : 암호키와 복호화 키가 동일하다

- 공개키 암호시스템 : 암호키와 복호화 키가 다르다

 

2. 평문의 길이에 따른 분류

- 스트림 암호시스템 : 난수열을 생성하여 입력 평문 비트열을 한 비트 또는 한 문자(바이트) 단위로

XOR하여 암호화

- 블록 암호시스템 : 입력 평문 비트열을 일정한 크기의 블록으로 나누어 암호화

ex)DES(64 bit),AES(128 bit)

3. 대칭키 암호 시스템

대칭키는 송,수신자가 같은 키를 가지고 있고 그 키를 통하여 송신자가 평문을 암호화하여 암호문을 보내면 수신자는 가지고 있던 같은 키로 복호화를 할 수 있다.

 

- 장점 :  키 크기가 상대적으로 작다

암호시스템 내부구조가 간단하여 시스템 개발 환경에 용이

속도가 빠르다

 

- 단점 :  교환 하는 사람이 많아질 수록 키관리에 어려움이 따른다 총 N(N-1)/2개의 키가 필요하다

자주 키교환을 해야하는 경우에 불편하다

디지털 서명 등의 기법에 적용하기 힘들다

안전성을 분석하기 어렵다

중재자가 필요하다

 

- 대칭키 암호 종류

DES, 3DES, Blowfish, IDEA, RC4, RC5 RC6, AES, SEED, ARIA

 

4. 공개키 암호 시스템

공개키는 비대칭키 암호시스템이라고도 하며, 암,복호화에 서로다른키가 사용된다. 발신자는 상대방의 공개키를 이용하여 암호화를 하고 수신자는 자신의 개인키를 이용하여 복호화 한다.

 

- 장점 :  대칭키 암호 보다 키 분배가 용이 하다.

대칭키 암호 보다 더좋은 확장 가능성이 있다.

인증과 부인봉쇄 제공 가능

범용적으로 사용 가능

 

- 단점 : 대칭키 암호보다 큰길이의 키를 사용하고, 수학적 연산을 이용,구현 하므로 처리시간이 길다

공개키 배포에 대한 신뢰성 문제로 PKI같은 공개키관리구조를 필요로 한다.

 

- 공개키 암호 종류

소인수분해 : RSA,Rabin

타원곡선 : ECC

이산대수 : Schnorr, Diffie-Hellman, El Gamal, DSA, KCDSA

기타 : Knapsack

 

3) 스트림 암호 시스템, 블럭암호 시스템

① 스트림 암호

평문과 같은 길이의 키 스트림을 생성하여 평문과 키를 비트단위로 XOR하여 암호화 하는 방법

 

1. 특징

- 원타임 패드를 실용적으로 구현할 목적

- 다음에 출력 비트를 예측할 확률이 1/2이어야 안전하다

- 긴주기와 높은 선형복잡도가 요구된다

- 블록 단위로 암호화 하는 것에 비하여 비트 단위로 암호화하기 때문에 더 빠르다

- 주로 LFSR을 이용한다

- 블록암호의 CFB,OFB모드는 스트림과 같은 역할을 한다.

 

2. 스트림암호의 기술

- One Time Pad : 암호화를 수행할 때마다 랜덤하게 선택된 키스트림을 사용한다.

 최소한 평문 메시지 길이와 같거나 더 긴 길이의 키스트림을 생성해야 한다.

- FSR(Feedback Shift Register) : One Time Pad의 Key Generator부분의 절충안

- LFSR(Linear Feedback Shift Register) : 초기활용되던 스트림 암호, 의사 난수열

- NFSR : LFSR의 선형적 공격에 취약하여 설계

 

3. 스트림 암호의 활용

- RC4 : 1984년 Ronald Rivest에 의해 설계, 네트워크 프로토콜에서 활용

- A5/1 : 휴대전화 통신을 위한 네트워크 GSM에서 사용

- WEP : 1999년 IEEE 802.11무선랜 표준 규정, 무선랜 구간에서 전송되는 MAC 프레임 들을 40비트 길이의 WEP 공유 비밀키와 임의로 선택되는 24비트 IV로 조합된 총 64비스의 키를 이용한 RC4스트림암호방식

 

② 블럭암호

암호문을 만들기 위해 평문을 일정한 단위로 나누어서 각 단위마다 암호화 과정을 수행하여 블록단위로 암호문을 얻는 대칭 암호화 방식

 

1. Feistel 구조

Feistel구조는 3라운드 이상이며, 짝수 라운드로 구성된다

라운드 함수와 관계없이 역변환이 가능하며(즉, 암/복호화 과정이 같음), 두번의 수행으로 블록간의 완전한 확산(diffusion)이 이루어지며, 알고리즘의 수행속도가 빠르고, 하드웨어 및 소프트웨어구현이 용이하고, 아직 구조상에 문제점이 발견되고 있지 않다는 장점을 지니고 있다.

 

2. SPN 구조

SPN은 입력을 여러 개의 소블록으로 나누고 각 소블록을 S-box로 입력하여 대치시키고 S-box의 출력을 P-box로 전치하는 과정을 반복한다

 

SPN 구조는 라운드 함수가 역변환이 되어야 한다는 등의 제약이 있지만 더 많
은 병렬성(parallelism)을 제공하기 때문에 암/복호화 알고리즘의 고속화가 요구
되고 최근의 컴퓨터 프로세스(CPU)가 더 많은 병렬성을 지원하는 등의 현 추세
에 부응하는 방식이라 할 수 있다.

 

 

 

3. Feistel 구조와 SPN구조를 사용하는 알고리즘

 

 Feistel 구조를 사용하는 알고리즘

 SPN 구조를 사용하는 알고리즘

DES,LOKI,CAST,Blowfish, MISTY , RC5, RC6, CAST256, E2, Twofish, Mars

 SAFER, IDEA, SHARK,Square,SRYPTON,Rijndael,

SAFER+, Serpent

 

 

4. 블록암호 운영모드

 

- 전자코드북 모드 (Electronic Code Bool Mode)

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

 

- 암호블럭연결 모드 (Cipher Block Chaining Mode)

CBC모드는 초기치를 암호화한 값과 평문 블럭을 XOR하여 암호문 블럭을 생성 하고 그 암호문을 초기치로 하여 다시 암호화한 값과 평문 블록을 XOR하여 암호문 블록을 반복하여 생성하는 방식이다

 

- 암호피드백 모드 (Cipher FeedBack Mode)

CFB모드는 초기치를 암호화한 값과 평문 블록을 XOR하여 암호문 블럭을 생성하고 그 암호문을 초기치로 하여 다시 암호화한 값과 평문 블록을 XOR하여 암호문 블록을 반복하여 생성하는 방식

 

- 출력피드백 모드(Output FeedBack Mode)

OFB모드는 초기치 Ⅳ를 암호화 하고 그 값을 다시 암호화하는 과정을 반복함으로써 생성된 수열과 평문 수열을 XOR하여 암호문을 생성하는 방식으로, 주로 블록암호 시스템을 스트림암호 시스템처럼 사용하고자 할 때 이용된다

 

- 카운터 모드(Counter Mode)

Counter모드는 초기치 Ⅳ와 Ⅳ+1, Ⅳ+2,....을 암호화하여 생성된 평문수열을 XOR하여 암호문 블록을 생성하고 그 암호문을 기초로 하여 다시 암호화한 값과 평문블록을 XOR하여 암호문블록을 반복하여 생성하는 방식이다

 

5. 블록 암호시스템 종류

가. DES(Data Encryption Standard)

- 64비트의 평문을 46비트의 암호문으로 만드는 블록 암호 시스템,64비트의 키를 사용

- 64비트의 키(외부 키) 중 56비트는 실제의 키(내부 키)가되고 나머지 8비트는 검사용 비트

- DES는 16라운드(Round)의 반복적인 암호화 과정

- 라운드마다 전치(Transposition) 및 대치(Substitution)의 과정을 거친 평문과 56비트의 내부키에서 나온 48비트의 키가 섞여 암호문을 만든다

 

나. 3DES(Triple Data Encryption Standard)

- DES의 안전성 문제를 해결하기 위한 대안으로 3개의 키로 DES를 3회 반복하여 사용

 

다. IDEA(International Data Encryption Algorithm)

- IDEA은 128비트 키, 8라운드, 64비트 블록암호이며 주된 세 가 지 연산은 XOR, add mod 216, multiply mod 216+1이다

- RSA와 더불어 PGP에 사용되는 방식

- 블록 암호 알고리즘으로써 64비트의 평문에 대하여 동작하며, 키의 길이는 128비트이고, 8라운드의 암호 방식을 적용

 

참조 1.

1) 암호화 과정 [1급]
다른 암호화 방식과 마찬가지로 암호화 함수는 암호화될 평문과 키의 두 가
지 입력을 갖는다. 이 경우 평문은 64비트이고, 키는 128비트이다. IDEA알고리
즘은 마지막 변환함수에까지 8개의 라운드 혹은 반복들로 구성된다. 이 알고리
즘은 입력을 4개의 16비트 서브블록으로 분해한다. 각각의 반복과정은 4개의
16비트 서브블록들을 입력받고, 4개의 16비트로 된 결과블록을 생성한다. 최종
변환은 또한 4개의 16비트 블록들을 생성하는데, 이것들은 다시 64비트암호문
- 336 -
을 형성하기 위해 연결된다. 각 반복들은 전체 52개의 서브키에 대하여 6개의
16비트 서브키를 이용하는 반면 최종변환은 4개의 서브키를 사용한다.
2)복호화 과정 [1급]
복호화 과정은 암호화 과정과 본질적으로 같은 작업이다. 복호화는 같은
IDEA구조로서 암호문을 입력으로 사용함으로써 얻어진다. 그러나 서브키의 선
택에 있어서 다르다. 복호화 서브키 U1, ..., U52는 암호화 서브키로부터 유도된
다.

라. SEED

- SEED알고리즘의 전체 구조는 변형된 Feistel구조로 이루어져 있으며, 128비트 열쇠로부터 생성된 16개의 64비트 회전열쇠를 사용하여 총 16회전을 거쳐 128비트의 평문 블록을 128비트 암호문 블럭으로 암호화하여 출력한다

 

-전체 구조는 블록의 길이만 다를 뿐 DES의 구조와 같으며, 평문 블럭 128 비트를 64비트 블록을 L0과 R0로 나누어 DES와 같은 단계를 거쳐 16회전을 하여 최종출력비트

 

마. AES (Rijndael)

- AES의 암호화 과정의 각 라운드는 비 선형성을 갖는 S-Box를 적용

- 바이트단위로 치환을 수행하는 SubBytes( ) 연산

- 행단위로 순환 시프트를 수행하는 ShiftRows( ) 연산

- Diffusion을 제공하기 위해 열 단위로 혼합하는 MixColumns() 연산

- 라운드 키와 State를 XOR하는 AddRoundKey( ) 연산

 

4) 블럭 암호 공격

① 차분공격에 대한 기본개념(Differental Crptanalysis)

- 두개의 평문 블록들의 비트의 차이에 대하여 대응되는 암호문 블록들의 비트의 차이

 

② 선형공격에 대한 기본개념(Linear Cryptanalysis)

- 알고리즘 내부의 비선 형 구조를 적당히 선형화시켜 열쇠를 찾는 방법

 

③ 전수공격법(Exhaustive key search)

- 암호화할 때 일어날 수 있는 모든 가능한 경우 조사하는 방법 경우의 수가 적을 때는 가장 정확한 방법

 

④ 통계적 분석(Statistical analysis)

- 암호문에 대한 평문의 각 단어의 빈도에 관한 자료를 포함하는 지금까지 알려진 모든 통계적인 자료를 이용하여 해독

 

⑤ 수학적 분석(Mathematical analysis)

- 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독하는 방법

 

 

반응형

'Certificate > 정보보안기사' 카테고리의 다른 글

정보보안 관리 및 법규  (0) 2014.09.21
대책 구현 및 운영  (0) 2014.09.19
위험 관리  (0) 2014.09.19
업무연속성 관리와 재난 복구  (0) 2014.09.19
Email Security  (0) 2014.09.17