웹앱프로젝트/Java
AES-256 암호화 과정
Minah Park
2022. 7. 19. 12:58
반응형
1. AES-256 란?
- AES (Advanced Encryption Standard)는 고급 암호화 표준 이라는 의미이며, 암호화와 복호화 과정에서 동일한 키를 사용하여 대칭 키 알고리즘이다.
- 128비트 암호화 블록, 다양한 키의 길이 (128/192/256 비트)를 갖춘 대칭형 암호 알고리즘이다.
- AES-128, AES-192, AES-256 (키의 길이 16byte, 24byte, 32byte)
2. 대칭키 암호 알고리즘
- 하나의 키로 암호화와 복호화를 모두 수행하는 것을 말한다. 그래서 이 키는 절대로 외부에 유출되지 않도록 관리해야 하여 비밀키(Secret Key) 라고 부른다.
- 구조가 단순하여 대칭키에 비해 암호화와 복호화 속도가 빠르지만, 교환 당사자간에 동일한 키를 공유해야 하기 때문에 키 관리의 어려움이 있다.
3. AES 암호화 설명
1) Secret Key
- 평문을 암호화하는데 사용 (외부로 유출되면 안됨)
- AES의 종류에 따라 Secret Key의 길이가 달라짐 ( AES-256 은 256비트 즉, 32바이트 의 키를 사용)
2) Block Cipher
- AES는 128비트(16바이트)의 고정된 블록 단위로 암호화를 수행 -> 이 암호화를 수행할 때 여러가지 Block Cipher Mode (CBC - 권장함, ECB)를 선택할 수 있음.
- 패딩: 128비트보다 작은 블록이 생길 경우 부족한 부분을 특정한 값으로 채우는 작업
3) CBC (Cipher Block Chaining) mode encrption
- AES는 128비트(16바이트)의 고정된 블록 단위로 암호화를 수행 하는데, CBC는 블록을 그대로 암호화하지않고 이전에 암호화했던 블록과 XOR 연산을 한 다음에 암호화를 수행
- 첫번째 블록은 이전 암호화 블록이 없기 때문에 이를 위해 IV(initialization vector)를 이용
반응형
반응형