4주차 정리_현대 암호

2022. 7. 28. 16:59카테고리 없음

현대 암호


1. 서론

고전 암호에서는 송신자와 수신자가 같은 키를 가지고 있어야 했다. 카이사르 암호에서는 두 사람이 알파벳을 미는 칸의 수를 공유하고 있어야 했고, 비제네르 암호에서는 키워드를 공유하고 있어야 한다. 이렇게 송신자와 수신자가 같은 키를 공유해야하는 암호 시스템대칭키 암호 시스템(Symmetric Key Cryptosystem)이라고 부른다.

 

대칭키 암호 시스템은 사전에 서로 키를 공유하는 과정이 반드시 필요하다. 그런데 현대의 많은 데이터가 오가는 네트워트는 도청에 매우 취약하므로 키를 평문으로 공유하기 부적절하다. 그래서 학자들은 외부인이 키가 공유되는 과정을 도청해도, 공유되는 키는 알지 못하게 하는 키 공유 알고리즘(Key-Sharing Algorithm)을 연구했다.

 

1970년 중반에 Diffie와 Hellman이 Diffie-Hellman 키 교환 알고리즘을 제시하였고, 송신자와 수신자가 서로 다른 키를 사용하는 공개키 암호 시스템(Public Key Cryptosystem)의 개념을 창안했다. 이는 대칭키와 대비되어 비대칭키 암호 시스템(Asymmetric Cryptography)라고 부른다.


2. 현대 암호

1945년에 암호학자 Claude Shannon은 안전한 암호 시스템은 혼돈(Confusion)과 확산(Diffusion)의 성질을 만족해야한다고 발표했다. 현대의 많은 암호 시스템이 두 성질을 따른다.

-혼돈

  • 암호문에서 평문의 특성을 알아내기 힘든 성질을 말한다.
  • 단일 치환 암호를 사용하여 같은 평문을 두 번 암호화하면 출력된 두 암호문은 서로 같다.
  • 공격자는 암호문을 보고 평문이 무엇인지 유추하지는 못하더라도 암호문을 생성한 두 평문이 같다는 사실은 알 수 있다.
  • 따라서 단일 치환 암호는 혼돈 성질을 만족하지 못하는 암호이다.

-확산

  • 평문의 작은 변화가 암호문의 큰 변화로 이어지는 성질이다.
  • 대부분의 고전 암호에서 찾아보기 힘든 성질이다.

 

-대칭키 암호 시스템

  • 암호화와 복호화에 같은 키를 사용하는 암호 시스템이다.
  • 블록 암호와 스트림 암호로 구분한다.

-블록 암호(Block Cipher)

  • 평문을 정해진 크기의 블록 단위로 암호화하는 암호이다.
  • 예를 들어 블록의 크기가 4바이트라면 평문을 4바이트의 블록으로 쪼개어 각 블록마다 암호화를 진행한다.
  • 평문의 크기가 블록 크기의 배수가 아니어서 블록으로 균등하게 쪼갤 수 없다면, 평문 뒤에 데이터를 추가하는 패딩(Padding)을 먼저 수행한다.
  • 블록 암호의 대표적인 예로 DES와 AES가 있다.

-스트림 암호(Stream Cipher)

  • 송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 XOR하는 암호이다.
  • 송신자와 수신자는 스트림을 공유하는 대신, 시드(Seed)라 불리는 작은 값을 공유하고, 이를 사전에 합의된 함수의 인자로 넣어 스트림을 각자 생성한다.
  • 스트림 암호는 단순한 연산으로만 구현되므로 속도가 매우 빠르다.
  • 그러나 블록암호보다는 암전하지 못해서 연산 능력이 부족한 임베디드 기기나 속도가 중요한 환경에서만 제한적으로 사용된다.

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

  • 대칭키 암호 시스템은 공개키 암호 시스템에 비해 속도가 빠르다.
  • 그러나 송신자와 수신자가 사전에 키를 교환해야 한다는 제약이 있다.
  • 그룹 내에 여러 명이 있을 경우, 두 사람마다 서로 다른 키를 생성해서 사용해야 한다.

 

-공개키 암호 시스템

  • 송신자는 수신자의 공개키(Public Key)로 데이터를 암호화하여 수신자에게 전송하고, 수신자는 자신의 비밀키(Private Key)로 이를 복호화한다.
  • 공개키는 모두에게 공개되어 있으므로 공개키를 아는 사람은 누구나 수신자에게 암호문을 보낼 수 있다. 그러나 개인키는 수신자만 알고 있으므로, 공격자는 암호문을 도청해도 이를 복호화할 수 없다.
  • 공개키 암호 시스템은 우체통에 비유될 수 있다. 누구나 수신자의 우체통으로 편지를 보낼 수 있지만, 편지를 꺼내서 볼 수 있는 사람을 열쇠를 가지고 있는 수신자뿐이다.

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

  • 그룹 내의 사람들이 각자의 공개키와 비밀키를 만든 후 공개키만 공개하면 되므로, 대칭키 암호 시스템보다 적은 수의 키가 필요하다.
  • 한 번 키를 생성하고 나면, 새로운 상대와 통신하더라도 자신이 키를 다시 만들어야할 필요가 없다.
  • 반면, 공개키 암호 시스템은 대칭키 암호 시스템에 비해 복잡한 연산이 필요하여 속도가 느리다.
  • 대칭키 암호화 같은 안전성을 제공하려면, 대칭키 암호보다 긴 키를 사용해야 한다.

 

-암호의 기능

  1. 기밀성(Confidentiality) : 허락된 사람만이(키를 가지고 있는 사람) 정보를 열람할 수 있게 하는 기능
  2. 무결성(Integrity) : 송신자가 보낸 정보에 변조가 일어나지 않았음을 보증하는 기능
  3. 인증(Authentication) : 정보를 주고 받는 상대방의 신원을 확인하는 기능 (ex- 공인인증서, 웹에서의 아이디&비밀번호 입력)
  4. 부인 방지(Non-repudiation) : 정보를 교환한 이후에 교환한 사실을 부인할 수 없게 하는 기능

3. 마치며

현대 정보 통신에서 암호학이 담당하고 있는 역할에 주목하여 공부하기

퀴즈

Q1. 확산

Q2. 2

Q3. 부인 방지 기능