해킹/암호학

dreamhack [현대 암호] 정리

황수진 2021. 9. 22. 18:51

 

https://dreamhack.io/lecture/courses/71 를 바탕으로 작성했습니다.

 

현대 암호

현대 암호의 암호 기술들과 이들이 제공하는 기능들을 개략적으로 살펴봅니다.

dreamhack.io

 

1. 들어가며

 

서론

- 대칭키 암호 시스템(Symmetric Key Cryptosystem)

: 송신자와 수신자가 같은 키를 공유해야하는 암호시스템 ( * 사전에 서로 키를 공유해야 함)

- 비대칭키 암호 시스템(공개키 암호 시스템 : Public Key Cryptosystem) 

: 송신자와 수신자가 서로 다른 키를 사용하는 시스템

 

키 공유 알고리즘(Key-Sharing Algorithm)

: 외부인이 키가 공유되는 과정을 도청해도, 공유되는 키는 알지 못하게 하는 것

( 현대 네트워크는 도청에 취약해 키를 평문으로 공유하긴 부적절함)

 

 

2. 현대 암호

 

혼돈과 확산

Claude Shannon " 안전한 암호 시스템은 혼돈과 확산의 성질을 만족해야 한다"

 

혼돈

평문의 특성을 알아내기 힘든 성질

단일 치환 암호는 혼돈 성질을 만족하지 못한다

 

확산

평문의 작은 변화가 암호문의 큰 변화로 이어지는 성질

고전암호에서 찾아보기 힘든 성질

 

 

 

대칭키 암호 시스템

: 암호화와 복호화에 같은 키를 사용하는 암호 시스템 (1)블록암호 (2)스트림암호

 

블록 암호

평문을 정해진 크기의 블록 단위로 암호화하는 암호 

ex) 블록의 크키가 4바이트라면 평문을 4바이트의 블록으로 쪼개서 각 블록마다 암호화를 진행한다

 

* 평문의 크기가 블록 크기의 배수가 아니어서 블록으로 균등하게 쪼갤 수 없다면, '패딩'을 먼저 진행

패딩(Padding)

: 평문뒤에 데이터를 추가. 평문이 블록 크기의 배수가 될 때까지 데이터를 추가함. 대표적으로 DES, AES

 

스트림 암호 (Stream Cipher)

송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 XOR하는 암호.
P : 평문 , C : 암호문 , X : 스트림 /  C=P⊕X

X⊕X=0 를 이용해 C⊕X=P⊕X⊕X=P 로 암호문을 복호화할 수 있음

 

 

매번 송신자와 수신자가 평문 길이 만큼의 스트림을 공유한다면, 스트림을 모르는 공격자는 복호화할 수 없다
but
스트림을 안전하게 공유할 수 있는 건 암호화가 필요하지 않은 환경임 (스트림 공유채널로 평문 공유하면 됨)

 

(1) 따라서 스트림(Stream) 대신 작은 값인 시드 (Seed) 를 공유하고,

(2) 합의된 함수의 인자로 넣어 스트림을 각자 생성

 

 

 

 

 

대칭키 암호 시스템의 장단점

장점 

  • 공개키 암호 시스템에 비해 속도가 빠름

단점

  • 송신자와 수신자가 사전에 키를 교환해야 한다.
  • 여러 명일 경우 두 사람마다 서로 다른 키 생성해야 한다. (N명이 있을 때 N(N-1)/2 개의 키가 필요함

 

 

 

공개키 암호 시스템

 

송신자 : 수신자의 공개키(Public Key)로 데이터를 암호화해 수신자에게 전송

수신자 : 자신의 비밀키(Private Key)로 복호화

 

공개키(Public Key) : 공개키를 아는 사람 모두 수신자에게 암호문 보낼 수 있다.

비밀키(Private Key) : 수신자만 알고 있어서, 공격자는 암호문을 도청해도 복호화 할 수 없다.

 

<우체통>

누구나 수신자의 우체통으로 편지를 보낼 수 있지만, 열쇠를 가진 수신자만 편지를 볼 수 있다.

 

공개키 암호 시스템의 장점과 단점

장점

  • 사람들이 각자의 공개키, 비밀키를 만들고 공개키만 공개하면 되므로 2N개의 키만 필요하다 (대칭키 암호 시스템보다 훨씬 적음)
  • 한 번 키를 생성하면, 새로운 상대가 생겨도 키를 다시 만들 필요가 없다

단점

  • 대칭키 암호 시스템에 비해 복잡한 연산이 필요해, 속도가 느리다
  • 대칭키 암호와 같은 안전성을 제공하려면, 대칭키 암호보다 긴 키를 사용해야 한다(AES:192bit, RSA:2048bit)

 

3. 마치며

 

퀴즈 답 : 확산, 2, 부인방지기능