딩굴댕굴

정보보안기사 #07 암호학 강의 내용정리 - 2. 대칭키 암호

by jennysgap


정보보안기사 #07 암호학 강의 내용정리 - 2. 대칭키 암호



▼ 2016년 정보보안(산업)기사 암호학 파트 서브노트

http://sec.algisa.com/front/StudyDataBBS?mnk=2102&parent_mnk=0&nvt=1&bbsmasterkey=10331&lBBSKey=42602


▼ 2016년 정보보안(산업)기사 암호학 강의

http://sec.algisa.com/front/ProductVodView?a_lLinkCtgKey=2089&a_lGKey=104300


※ 2018년부터 암호학파트는 유료로 전환됨에 따라 2016년도 무료 강의로 대체 (참고 - 2017년 암호학 강의도 유료화 됨)



 암호학 파트 전체 학습 구조 

1. 암호학의 개요

2. 대칭키 암호

3. 비대칭키 암호

※ 양방향 :  대칭키, 비대칭키

4. 해시함수와 응용

※ 일방향 :  해시함수

5. 전자서명과 PKI

6. 키와 난수



 2. 대칭키 암호 


현대 블록 암호

1) 대칭키 암호 (Symmetric Encryption)

= 관용 암호 (Conventional Encryption)

= 비밀키 암호 (Secret-key Encryption)

= 단일키 암호 (Single-key Encription)

2) 비대칭키 암호

= 공개키 암호


※ 고전 암호와 비교했을 때, 현대 암호는 비트(bit) 중심의 암호로 복잡하다.

※ 치환(Substitution)과 전치(Transposition) :  현대 블록 암호는 치환암호로 설계



현대 블록 암호의 구성요소

확산과 혼돈 성질 만족을 위하여 전치요소(P-박스) + 치환요소(S-박스) + 그 밖의 구성요소들을 결합하여 설계

1) P-박스

2) S-박스

- 대치 암호의 축소 모형

- 입력과 출력의 개수가 달라도 됨

- 역함수 존재(입력=출력) or 비존재 가능

- Shift(비트 워드에서의 왼쪽 혹은 오른쪽 순환이동)
  Swap(8비트 워드에서의 스왑 연산)
  Split&Combine(8비트 워드에서의 분할과 결합)

3) 합성 암호(Product Ciphers) :  P박스 + S박스

확산(Diffusion)과 혼동(Confusion)

① 엔트로피 개념으로 설명 (무질서도 증가 방향으로 변함)

② shannon의 정의

혼돈 :  암호문과 키 사이의 관계를 숨긴다.

                   암호문 이용  -/->  키를 찾음

확산 :  암호문과 평문 사이의 관계를 숨긴다. (평문의 통계적 성질을 암호문 전반에 퍼뜨려 숨김)

                   암호문 통계테스트 이용  -/->  평문 찾음

라운드(Rounds) :  반복적으로 사용되는 합성 암호를 라운드(round)라고 칭한다.



두 가지 종류의 합성 암호

1) Feistel 암호

- DES를 포함해서 대부분의 대칭 블록 암호 알고리즘은 1973년 IBM의 Horst Feistel이 최초로 소개한 구조를 따라 만들어진다.

- Feistel 암호는 세 가지 타입의 구성요소를 가진다.

① 자기 자신을 역으로 갖는 것

② 역함수가 존재하는 것

③ 역함수가 존재하지 않는 것

- 역이 존재하지 않는 구성요소를 결합(서로 상쇄되도록 하는 것이 특징이다.)하고 암호화 알고리즘과 복호화 알고리즘에서 동일한 구성요소(unit)를 사용한다.

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

- Feistel 암호 특징 :  많은 블록 암호 알고리즘에서 이용 (단, AES로 최종 선정된 Rijndael은 사용 안함)

2) Non-Feistel 암호 (=SPN 구조)

- 역함수가 존재하는 요소만을 사용

- Feistel 암호에서처럼 평문이 반으로 분할될 필요는 없다.

- AES로 최종 선정된 Rijndael에서 SPN구조가 사용되었다.


대칭 블록 암호 구현 ★★★

① 블록 크기 (Block size) :  블록 길이가 클 수록... 128bit(합리적인 크기)

② 키 길이 (Key size) :  키 길이가 길 수록... 128bit(보편적인 길이)

③ 라운드 수 (Numver of rounds) :  라운드 수를 증가시킬 수록... 16(전형적인 라운드 수)

④ 서브키 생성 알고리즘 (Subkey generation algorithm) :  알고리즘이 복잡할 수록...

⑤ 라운드 함수 (Round function) :  함수가 복잡할 수록...



현대 스트림 암호

스트림 암호는 블록 암호보다 빠를 뿐만 아니라 하드웨어 구현 또한 블록 암호보다 더욱 용이하다.



1) 동기식 스트림 암호

동기식 스트림 암호에서 키 스트림은 평문 혹은 암호문 스트림과 독립적이다.

① One-Time Pad :  shannon(이론적으로 해독 불가능), XOR(암호화알고리즘과 복호화알고리즘은 서로 역관계), 한 번에 한 비트씩 적용

② Feedback Shift Register(FSR) :  Shift 레지스터와 Feedback 함수로 구성된다.

③ Linear Feedback Shift Register(LFSR)

④ Nonlinear Feedback Shift Register(NLFSR)

2) 비동기식 스트림 암호

① Chipher Feedback Mode(CFB) :  실제로 스트림 암호를 생성한다.



DES(Data Encryption Standard)

1. 목적 :  데이터 암호화(Data Encryotion)

2. 방식 :  Substitution(S-박스, 치환) + Permutation(P-박스, 전치, Transposition)

 주로 S-box에 의존

3. 사례 :  Kerberos 버전 4 (대칭 암호기법에 바탕을 둔 티켓 기반 인증 Protocol)

4. Round 횟수 :  16회전 (S-box, P-box 각각 16번)

5. Crack 이유 :  짧은 key size

6. Key size :  56bit(유효) - 원래는 64bit지만 8bit가 parity bit가 drop된다.

7. Block 크기 :  64bit

8. Crack time 구하기 

WEP(Wired Equivalent Privacy) 40 bits 1hr (work factor)

DES crack time?

2^40 : 1 = 2^60 : x

2^40x = 2^60

x = 2^16 = 65,536


DES의 일반적 구조

- 56bit의 key가 Round-key generator에 들어간다.

- 그러면 48bit의 key가 16개 산출된다. (round 횟수가 16번 회전하기 때문)

- 각 Round 중에서 1개를 확대해 보면 왼쪽 32bit, 오른쪽 32bit 나눠서 왼쪽은 그대로 내려가고 오른쪽은 f function으로 들어간다.

- f function을 살펴보면 --32bit--> [ Expansion P-box ] --48bit--> [ XOR ] --48bit--> [ S-Boxes ] --32bit--> [ Straight P-box ]

- S-box의 구조를 살펴보면 아래 그림과 같다.


Key 생성 구조

- 64bit의 키가 Parity drop 되어 56bit가 되고

- 56bit의 키는 round-key generator에 들어가서 48bit의 키가 16개 산출된다.


DES 역사

- 미국 국립기술표준원(NIST)은 1973년 국가적으로 사용할 대칭키 암호시스템의 제안 요청서를 발표

- 이에 따라 Lucifer 프로젝트의 수정판인 IBM의 제안이 DES로 채택


DES 개관

- 평문의 길이는 64bit

- 키의 길이는 56bit

- 이보다 긴 평문은 64bit 블록으로 나눈다.

- DES 구조는 Feistel 네트워크의 변형된 형태이다.

- 라운드 회수는 16

- 56bit짜리 원래 키로부터 16개 서브키를 생성

- 그 서브키를 각 라운드에서 사용한다.


DES의 구조

- 각 라운드는 라운드 키 생성기에 의해 암호키로부터 생성된 48bit 라운드 키를 사용한다.


DES 함수

- DES 함수는 확장 P-box, 키 XOR, 8개의 S-box, 단순 P-box 4개로 구성되어 있다.


암호화 알고리즘과 복호화 알고리즘

- 중요한 점은 라운드 키들이 (K1에서 k16) 역순으로 적용되어야 한다는 사실이다.

- 암호화 과정에서 1라운드는 k1을 사용하고 16라운드는 k16을 사용한다.

- 복호화 과정에서 1라운드는 k16을 사용하고 16라운드는 k1을 사용한다.


DES 분석 

1) 설계 기준

- S박스 :  안전성을 결정하는 요소이다.

  각 라운드에서부터 그 다음 라운드까지 혼돈과 확산 성질을 만족하도록 설계되었다.

  비선형 함수이다

- P박스 :  비트들을 동시에 확산(diffusion)시킨다.

2) DES 취약점 :  키 크기가 짧다. (56bit)



Triple DES




AES





기타 대칭키 암호 알고리즘





현대 대칭키 암호를 이용한 암호화 기법











반응형

블로그의 정보

jennysgap

jennysgap

활동하기