[정의] 두 사용자가 사전에 어떠한 비밀 교환 없이도 공중 통신망 환경에서 공통키를 교환하게 해주는 이산대수 기반의 알고리즘. 

 

[특징] 중간자 공격에 취약. 중간에서 바꾼 값을 양쪽에 전달하여 공격 가능.


[쉬운 예시(색깔)]

A와 B가 키 교환을 진행

공개색깔 : 노랑

A의 비밀색 : 빨강
B의 비밀색 : 파랑

 

1) A는 노랑과 빨강을 섞어서 B에게 보냄
2) B는 노랑과 파랑을 섞어서 A에게 보냄


서로 받은 색깔은

A는 노랑+파랑

B는 노랑+빨강

 

3) 각자의 비밀색을 합침

A는 (노랑+파랑)+빨강

B는 (노랑+빨강)+파랑

 

두개가 구질구질한 동일한 색을 가지게 됨.

이것을 키로 사용.

 

 

 

 


[숫자 예시]

- 원시값(공개값) : 3 mod 17
- A의 임의의수 = 15 / B의 임의의수 = 13
- A에서 B로 전송값 = 3^15 mod 17 = 6 // B에서 A로 전송값 = 3^13 mod 17 = 12
- A에서 키값생성 : 전달받은 값에 본인의 임의의수를 지수승으로 계산. 12^15 mod 17 = 10.
- B에서 키값생성 : 전달받은 값에 본인의 임의의수를 지수승으로 계산. 6^13 mod 17 = 10.
※ 키값이 동일하게 되는 원리
- A 가 받은 12는 3^13mod 17 값으로, 3^13^15 mod 17 의미.
- B 가 받은 6은 3^15mod 17 값으로, 3^15^13 mod 17의미.
- 따라서 지수의 위치 변경 가능하므로, 3^13^15 = 3^15^13. 끝.


[man-in-the-middle 공격 해결법] 교환하는 값(ga mod p, gb mod p)을 대칭키로 암호화, 교환하는 값을 공개키로 암호화, 교환하는 값을 개인키로 서명. key를 2048bit로 변경.

 

 

 

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

접근제어 (MAC, DAC, RBAC, ABAC)  (0) 2021.03.28
암호 공격기법  (0) 2021.03.28
블럭암호화 운영모드  (0) 2021.03.28
SPN(Substitution-Permutation Network)  (0) 2021.03.28
Feistel  (0) 2021.03.28

 

 

 

 

[운영모드] 

- ECB(블록별독립/가장단순)

- CBC(보안성우수, 암호문이 블록의2배, 암호는순차적, 복호화는병렬, 각블록은 서로 chaining)

- CFB(평문길이=암호문길이, 암호는순차적,복호화는병렬)

- OFB(평문길이=암호문길이, 암/복호키가동일)

- CTR(카운터를 키로사용, 스트림암호화일종, 구현간단)

 

[분류] 암호화가 각 블록에 독립적 작용(ECB, CTR), 이전블록의 암호화 값이 다음 블록에 영향(CBC, CFB, OFB)

 

[블록암호화 모드의 유형별 특징]

  ECB CBC CFB OFB CTR
블록 패턴 유지 O X X X X
전처리 가능성 X X X O O
병렬 처리 O 복호화시 가능 복호화시 가능 X O
오류 확산 X 이전 블록에서 영향 이전 블록에서 영향 X X
암호화 단위 n n r <= n r <= n r <= n

 

 

[상세 설명]
 1) ECB (Electronic Code Block) Mode : 가장 단순한 모드로 블록단위로 순차적으로 암호화 하는 구조. 한개의 블록만 해독되면 나머지 블록도 해독이 되는 단점(Brute‐Force Arttack, Dictionary Attack). 암호문이 블록의 배수가 되기 때문에 복호화 후 평문을 알기 위해서 Padding 필요. 각 블록이 독립적으로 동작하므로 한 블록에서 에러가 난다고 해도 다른 블록에 영향을 주지 않음. 해당 블록까지 에러 전파.
 2) CBC(Cipher Block Chaining) Mode : 블록 암호화 운영 모드 중 보안성이 제일 높은 암호화 방법으로 가장 많이 사용. 평문의 각 블록은 XOR연산을 통해 이전 암호문과 연산되고 첫번째 암호문에 대해서는 IV(Initial Vector)가 암호문 대신 사용. 이 때, IV는 제 2의 키가 될수 있다. 암호문이 블록의 배수가 되기 때문에 복호화 후 평문을 얻기 위해서 Padding을 해야만 한다. 암호화가 병렬처리가 아닌 순차적으로 수행되어야 한다. 깨진 암호문의 해당블록과 다음블록의 평문까지 영향을 미치게 됨.
- CBC 개선모델 PCBC : XOR 연산 한번더 수행
 3) CFB(Cipher FeedBack) Mode : 블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같다(패딩이 필요 없다). 최초의 키생성 버퍼로 IV가 사용되며, 이때 IV는 제2의 키가 될수 있다. 스트림의 기본단위를 Bit단위로 설정할 수 있으며, Bit단위에 따라 CFB8~CFB128로 쓰인다. 암호화, 복호화 모두 암호화로만 처리할 수 있다. CBC모드와 마찬가지로 암호화는 순차적이고, 복호화는 병렬적으로 처리할 수 있다. CBC모드와 마찬가지로 한 암호문블럭의 에러는 해당평문블록과 다음 평문블록, 이렇게 총 2개의 블록에 전파된다.
 4) OFB(Output FeedBack) Mode : 블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같다.(패딩이 필요없다). 암호화 함수는 키 생성에만 사용되며, 암호화 방법과 복호화 방법이 동일해 암호문을 한번 더 암호화하면 평문이 나온다. (복호화시에 암호화). 최초의 키생성 버퍼로 IV가 사용되며, 이 때 IV는 제2의 키가 될수 있다. 스트림의 기본 단위를 Bit단위로 설정할 수 있으며, Bit단위에 따라 OFB8~OFB128로 쓰인다. 대응되는 한 블록에만 영향을 미치므로, 영상이나 음성과 같은 digitized analog신호에 많이 사용된다.
 5) CTR (CounTeR) Mode : 블록을 암호화할 때마다 1씩 증가해 가는 카운터를 암호화 해서 키스트림을 만든다. 즉 카운터를 암호화한 비트열과 평문블록과의 XOR를 취한 결과가 암호문 블록이 된다. CTR모드는 OFB와 같은 스트림 암호의 일종이다. CTR모드의 암복호화는 완전히 같은 구조가 되므로 구현이 간단하다.(OFB와 같은 스트림 암호의 특징). CTR모드에서는 블록의 순서를 임의로 암/복호화 할 수있다.(비표와 블록번호로부터 카운터를 구할 수 있기때문에) 블록을 임의의 순서로 처리 할 수 있다는 것은 처리를 병행 할 수 있다는 것을 의미한다.(병렬처리 가능). 각 블록이 병렬처리 되므로 같은 블록 내에서만 이루어짐.

 

 

 

 

 

[ECB의 암호화 및 복호화 과정]

 

 

 

[CBC의 암호화 및 복호화 과정]

 

 

[CFB의 암호화 및 복호화 과정]

 

 

 

[OFB의 암호화 및 복호화 과정]

 

 

 

[CTR의 암호화 및 복호화 과정]

 

 

 

 

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

암호 공격기법  (0) 2021.03.28
Diffie-Hellman  (0) 2021.03.28
SPN(Substitution-Permutation Network)  (0) 2021.03.28
Feistel  (0) 2021.03.28
프라이버시 보존형 데이터 마이닝(PPDM)  (0) 2021.03.28

 

 

 

 

[정의] S-box 이용한 대체기법과 P-box 이용한 치환기법 및 라운드 키를 이용해 반복적 연산으로 이루어지는 블록 암호화 알고리즘

 

[특징] 병렬연산(고속화), 복호화시 별도의 복호화 모듈 생성 필요, AES, 3-Way, SAFER, SHARK


[구성요소] Plain text, S-box, P-box, Round key, Cipher Text


[AES에서의 SPN 변환과정] 

 

 

 

 


1) Plantext 의 State 변환(일반 텍스트의 16진수 변환 잋 State 변환)→ 2) Sub Bytes(Substituation 테이블 통해 변환)→ 3) Shifte Rows(State 내부 1byte 씩 순환이동)→ 4) Mix Columns(행렬 곱셉 이용해 바이트를 뒤섞는 과정)→ 5) Add Round Key(State 행렬에 라운드 키와 XOR 수행)

 

 

 

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

Diffie-Hellman  (0) 2021.03.28
블럭암호화 운영모드  (0) 2021.03.28
Feistel  (0) 2021.03.28
프라이버시 보존형 데이터 마이닝(PPDM)  (0) 2021.03.28
프라이버시 보호모델 (KLT 모델)  (0) 2021.03.27

+ Recent posts