본문 바로가기

보안 이론/네트워크 보안

대칭키(Symmetric Key) 암호화 방식

반응형

네트워크 암호화시 사용되는 암호화 방식 중 대칭키 암호의 종류와 특징에 대해서 알아보았다.


대칭키 암호화

대칭키 암호화는 암호화와 복호화 시 사용되는 키가 대칭을 이루는 암호화 방식을 말한다.

하나의 키로 암/복호화를 진행하기 때문에 키를 안전하게 보관하는 것이 가장 중요하다.

공개키 방식과 비교했을 때 계산 속도가 빠르다는 장점이 있다.

  • 암호화키와 복호화키가 서로 대칭을 이룸 → 대칭키(symmetric key)
  • 암호화키를 알면 복호화키를 알 수 있음 → 단일키(single key)
  • 대칭키를 다른 사람이 알면 안됨 → 비밀키(secret key)
  • 한번의 세션에서만 사용 → 세션키(session key)

 

대칭키 암호 방식

치환(Subsitution)

문자를 다른 문자로 바꾸는 방식이다.

아래 예는 알파벳을 순서에 따라 시프트해서 다른 문자로 치환하였다.

 

순열 (Permutation)

데이터의 순서를 바꾸는 방식이다.

아래 예는 알파벳 자체는 변하지 않으며 문자의 순서를 바꾸었다.

 

매트릭스(Matrix)

행렬을 이용하여 수식적으로 순서나 문자를 바꾸는 방식이다.

아래 예는 평문을 가로로 작성한 뒤 세로로 읽음으로 암호화를 진행하였다.

 

SPN 방식

Subsitution Permutaion Network로 치환과 순열을 중첩하여 사용하는 블럭 암호 방식

실제로는 훨씬 복잡하지만 이러한 방식으로 n 라운드 반복하는 방식으로 구성된다.

SPN을 사용하는 암호 알고리즘에는 AES, ARIA, SHARK, IDEA 등이 있다.

 

 

Feistel 방식

특정 계산 함수(Round Function)를 반복하여 암호화하는 블록 암호 방식이다.

dreamhack.io

평문을 반으로 나누고 키와 라운드함수를 이용하여 연산을 라운드만큼 반복하는 방식으로 구성된다.

파이스텔 구조를 사용하는 암호 알고리즘에는 DES, Blowfish, Twofish, SEED 등이 있다.

 

대칭키 암호 알고리즘

ROT13, ROT47

치환 방식의 암호 알고리즘이다.

ROT13은 26개의 알파벳을, ROT47은 대소문자, 숫자, 특수문자 합 94개를 반으로 나눠 서로 치환하는 방식이다.

 

DES (Data Encryption Standard)

IBM의 루시퍼 암호 알고리즘을 표준화해서 만들어진 대칭키 알고리즘

블럭 암호 알고리즘으로 16단계의 파이스텔 구조를 사용한다.

평문을 64bit 블록으로 나누어 암호화를 진행한다.

키 길이는 64bit이며 56bit는 암호화, 8bit는 패리티비트로 사용한다.

파이스텔 구조의 취약점은 없으나 기술의 발전으로 인해 안전하지 않은 키 길이로 현재는 취약한 암호이다.

 

3DES

DES의 대체 암호로 등장한 알고리즘이다.

DES를 3번 적용하여 키의 길이를 2배인 112bit로 늘렸으나 단순히 키를 2개를 쓴다는 뜻이다.

2개의 키를 각 암호화-복호화-암호화하는데 사용하며 DES보다는 안전하다.

 

AES (Advanced Encryption Standard)

DES를 대체하는 새로운 암호화 표준으로 미국 표준 기술 연구소의 공모전에서 채택되었다.

블럭 암호 알고리즘으로 SPN 방식을 사용한다.

평문을 128bit 블록으로 나누어 암호화를 진행한다.

키 길이가 128, 192, 256 중 하나를 사용할 수 있으며 길이에 따라 라운드 수가 달라진다.

현재 기술의 발전에 따라 AES 256만을 안전하다고 보고 있다.

 

SEED

한국정보진흥원에서 개발되었다.

파이스텔 구조를 사용하며 16라운드를 수행한다.

평문을 128bit 블록으로 나누며 128bit 키에서 16개의 라운드키를 생성한다.

국내 금융권에서 사용되는 암호 알고리즘이다.

 

ARIA, HIGHT, LEA

국내에서 개발된 저전력/경량 컴퓨팅 환경에서 제공되는 경량 블록 암호화 알고리즘이다. 

 

 

대칭키 방식의 문제

키 교환 문제

대칭키 방식 암호는 암호화 속도가 빠르다는 장점이 있지만 통신 전 키를 미리 가지고 있어야 한다는 문제가 있다.

키를 탈취당할 경우 암호문이 쉽게 노출될 수 있으므로 키 배포 센터를 이용하거나 공개키 암호를 이용하여 안전하게 교환하여야 한다.

 

키 개수의 문제

암호 통신 수가 증가하면 각각 대칭키가 필요하므로 키의 개수는 기하급수적으로 증가하게 되어 관리가 어려워진다.

공개키 암호와 더불어 동적인 세션키를 사용한다면 통신마다 모든 대칭키를 기억하지 않아도 된다.

 

반응형


Calendar
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Visits
Today
Yesterday