본문 바로가기

알아두면 좋은 IT 지식/General

AES 암호화 종류

AES(Advanced Encryption Standard)

 

AES 알고리즘은 대칭키 암호화 방식으로 암호화와 복호화 과정에서 동일한 키를 사용한다.

첨부된 AES128-CBC 암호화 함수를 기준으로 설명을 이어가고자 한다.

AES암복호화소스_JAVA.txt
0.01MB

 

 

AES128-CBC

 

암호화 알고리즘의 bit수에 따라서 128과 256으로 구분된다.

다시 모드에 따라서 ECB, CBC, CFB, OFB, CTR 등으로 구분된다.

패딩방식은 PKCS5PADING, PKCS7PADING이 있지만 128bit에서는 두개를 구분하지 않는다.

 

 

IV(Initialization Vector)

초기화백터

 

블럭단위로 암호화 시 발생하는 중복현상을 피하기 위해서 IV(초기화백터)값을 사용하며 이 IV의 초기값을 지정하는 방식이 여러가지 존재한다. 

그 중 대칭키를 사용하여 IV의 초기값을 고정하여 사용하는 방식중에 많이 쓰이는 방식으로는 대칭키를 byte array 단위로 복사하여 사용하되 그 길이가 16byte가 안되면 뒤에 byte array는 null값(0x00)을 채우는 방식이 있다.

대칭키의 길이가 16byte를 초과하면 16byte까지만 사용한다.

 

 

위처럼 같은 AES 알고리즘도 bit수나 모드, IV초기값 설정 방식에 따라서 알고리즘의 종류가 다르고 결과값이 달라진다.

본인이 사용하는 AES 알고리즘이 어떤 방식을 취하고 있는지 한 번 확인해보면 좋을 것 같다.