본문 바로가기

Knowledge

[Knowledge] AES 암호화 알고리즘

반응형

들어가기 전

AES 암호화 알고리즘에 대해 자세히 이해하기 위해 글을 작성한다.


본문

1. AES 암호화 알고리즘

AES는 대칭키 암호 알고리즘으로, 암호화와 복호화에 사용되는 키가 동일하다. 아래와 같은 장점과 단점이 존재한다.

장점: 키가 동일하기 때문에 암호화, 복호화 과정이 빠르다

단점: 암호화, 복호화에 사용되는 키가 동일하기 때문에 서버와 클라이언트가 키를 교환하는 과정에서 어쩔 수 없이 노출이 될 수 있는데, 해당 키가 해커에게 탈취될 수 있는 문제가 존재한다.

 

AES 종류로는 AES-128, AES-192, AES-256이 존재한다. 128, 192, 256비트인 세 가지 종류가 존재하는 것이다.

 

Secret Key

암호화 할 대상인 평문을 암호화하는 데 사용되며, 외부에 노출되서는 안된다.

 

Block Cipher(=블록암호)

기밀성 있는 정보를 정해진 블록 단위로 암호화하는 시스템이다.

Block Cipher을 사용할 때 운용하는 방식을 Block Cipher Mode라고 하는데 여기에는 CBC, ECB 모드가 있다.

 

주로 CBC 모드를 사용하는데, CBC 방식은 이전 블록에 의존하도록 만드는 방식이다.

암호화 대상인 각 plaintext 가 암호화가되어 ciphertext 가 되는데 이때 다음 plaintext 가 암호화 될 때 이전에 암호화했던 블록과 xor 연산을 한 다음에 암호화를 진행하게 된다. 여기서 IV라는 개념이 나온다.

 

IV

첫 번째 블록은 이전 암호화된 블록이 존재하지 않는다. 이를 위해 첫 번째 블록에는 IV라는 것이 사용된다. 간단하게 이야기하면 생성된 128비트 IV 값을 가지고 첫 번째 블록을 암호화한다. 매번 다른 IV를 생성하면 같은 plaintext라도 매번 다른 ciphertext를 생성할 수 있다.

 

Padding

AES는 128 비트의 블록 단위로 암호화를 진행한다. 하지만 암호화의 대상이 되는 input 데이터가 매번 128비트의 배수 길이를 가진다는 것은 보장할 수 없기 때문에 input 데이터의 길이를 128비트로 맞추기 위해 마지막 블록에 값을 추가하는데 이때 채워지는 값 또는 행위를 패딩이라고 한다. padding의 종류에는 PKCS5, PKCS7 등이 있다


2. 대칭키

대칭키는 암호화와 복호화에 사용하는 키가 동일하다

종류: DES, 3DES, AES, SEED, ARIA

장점: 속도가 빠름

단점:  탈취될 수 있는 문제가 존재, 관리해야 할 키가 많음

3. 비대칭키(공개키)

암호화 키와 복호화 키가 다르다. 비대칭키 암호화 방식에서 암호화하기 위한 키를 공개키라고 하며, 복호화하기 위한 키를 개인키라고 한다. 그래서 공개키 모두에게 공개되어 있어 전송하기 전 데이터를 암호화 가능하지만, 개인키각 사용자만이 가지고 있기 때문에 해당 데이터를 복호화하기 위해서는 데이터를 받는 쪽의 개인키를 통해 복호화가 가능하다. 

종류: RSA: DSA, ECC, Diffie Hellman

장점: 키분배 필요가 없음

단점: 속도가 느림

 


마무리

AES에 대해 정리하면서 대칭키와 비대칭키에 대해서도 정리해 봤다.

 

반응형