본문 바로가기
암호학

현대 암호

by whiteTommy 2024. 6. 18.

 

현대의 암호 시스템은 2가지 성질을 따른다.

  • 혼돈(Confusion) : 암호문에서 평문의 특성을 알아내기 힘든 성질이다.
  • 확산(Diffusion) : 평문의 작은 변화가 암호문의 큰 변화로 이어지는 성질이다.


케르크호프스의 원리 : 키를 제외한 시스템의 다른 모든 내용이 알려지더라도 암호체계는 안전해야 한다.

 

대칭키 암호 시스템(Symmetric key cryptosystem)

: 송/수신자가 같은 키를 통해 암/복호화 하는 시스템이다. 2가지로 나뉜다.

  • 블록 암호(Block Cipher) : 평문을 정해진 크기의 블록 단위로 암호화하는 방식이다. 평문의 크기가 블록 크기의 배수가 아니여서 블록으로 균등하게 쪼갤 수 없으면, 평문 뒤에 데이터를 추가하는 패팅(Padding)을 수행한다.
    ex) AES, DES 대칭키 암호

  • 스트림 암호(Stream Cipher) : 송/수신자가 공유하는 데이터 스트림을 생성하고 이를 평문과 특정한 연산을 수행하여 암호문을 생성하는 암호이다. 복호화 과정은 암호화 과정의 연산을 역으로 수행하여 진행된다.

    대부분의 경우에 XOR(Exclusive OR) 연산을 사용한다. 비트 단위의 연산이며 ⊕ 기호로 표기한다.
a b a ⊕ b
0 0 0
0 1 1
1 0 1
1 1 0

 

        a b 값으로 부터 a에 대한 정보를 알아낼 수 없다.
        (a ⊕ b )    b = a가 성립한다. 즉, 역연산이 동일하고, 정보 손실이 없다.

        평문을 P, 암호문을 C, 스트림을 X라고 할 때, 암호문 C = P X 로 생성된다. 
         X   X  = 0 이므로 수신자는  C   X = P   X   X = P 로 암호문을 복호화할 수 있다.

         ex) "AB"   "qu" = [65, 66] [113, 117] = [01000001, 01000010] [01110001, 01110101]

          = [00110000, 00110111] = [48, 55] = "07" 로 표현된다.

만약, 송/수신자가 평문 길이 만큼의 스트림을 매번 공유할 수 있다면, 스트림을 모르는 공격자는 암호문을 복호할 수 없다. 하지만, 평문과 같은 길이의 스트림을 안전하게 공유할 수 있다면, 스트림을 공유하는 채널로 평문을 공유하면 되므로 암호화가 필요하지 않은 환경임을 의미한다. 

 

 


그래서, 송/수신자는 스트림을 공유하는 대신, 시드(Seed)라는 값을 공유하고, 이를 사전에 합의된 함수의 인자로 넣어 스트림을 각자 생성한다. 스트림 암호는 단순한 연산으로만 구현되므로 속도가 빠르다.


대칭키 암호 시스템은 공개키 암호 시스템에 비해 속도가 빠르지만, 송/수신자가 사전에 키를 교환해야 한다는 제약이 있다. 즉, n명의 사람이 있을 때, nC2 = n(n-1)/2 개의 키가 필요하다.

 

 

비대칭키 암호 시스템(Asymmetric key cryptosystem)

: 암/복호화 하는 키가 다른 암호 시스템이며, 공개키 암호 시스템이라고도 한다. 

 

송신자는 수신자의 공개키(public key)로 데이터를 암호화하여 수신자에게 전송하고, 수신자는 자신의 개인키(private key)로 이를 복호화한다. 이러한 공개키, 개인키 쌍을 키 쌍(Key pair)라고 한다.

 

비대칭키 암호 시스템은 n명의 사람이 있을 때, 각자의 공개키 개수에 해당하는 n개의 키만 있으면 된다. 이전에 봤던 대칭키 암호 시스템보다 적은 키만 생성하면 된다. 하지만, 복잡한 연산이 필요하므로 속도가 느리다는 단점이 있다. 대칭키 암호 시스템과 같은 안정성을 제공하려면, 이보다 긴 키를 사용해야 한다는 제약이 있다.

 

 

추가로, 현대 암호학이 제공하는 보안적인 기능은 4가지가 있다.

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

'암호학' 카테고리의 다른 글

정수론(암호학)  (0) 2024.06.21
고전 암호  (0) 2024.06.18