[AES 알고리즘]
NIST에서 1997년에 AES라는 이름의 표준으로 공모를 받고, Rijndael이 개발한 알고리즘이 최종적으로 채택되었다. NIST는 2001년 11월에 Rijndael 알고리즘을 FIPS 197, AES라는 이름의 표준으로 발표했다.
암호화 키로 128, 192, 256bit를 가지고 있다.
[AES 암호화/복호화 사이트]
https://www.javainuse.com/aesgenerator
Online AES 암호화/복호화 페이지를 보면서 이해를 해보겠다. 해당 사이트는 실제로 가장 잘 사용되는 두가지 페이지 중 하나이다. 암호화 할 텍스트, 모드, 키 크기, 초기화 백터, 비밀키, 출력 텍스트 형식이 입력되어야한다.
AES는 평문을 128비트 또는 16바이트의 블록으로 쪼갭니다. AES는 블록암호로 분류되는데 이에 대조적으로 스트립 암호가 있습니다. 이것은 개별 바이트나 비트 단위로 작동합니다.
[AES 원리]
(0) 비밀키는 암호화에 사용되며 AES 종류에 따라 키값이 다르다.
- AES128 : 키값 16 bytes
- AES192 : 키값 24 bytes
- AES256 : 키값 32 bytes
(1) 블록 암호 방식
ECB, CBC, OFB, CFB 등이 있으며 블록들의 암호화 방식을 운용 방식이라고 부른다. 메세지 길이가 n비트보다 작다면 n비트 블록을 만들기 위해 패딩(padding)이 추가된다. 블록 암호 구조에는 Feostel 구조와 SPN구조가 있고 Feistel 구조는 암호 및 복호 알고리즘이 같은 구조이고, SPN구조는 암호 및 복호 알고리즘이 다르다. SPN = AES. Feistel 구조 = DES이다.
- 01 ECB mode
ECB는 가장 간단한 구조로 각 블록이 동일한 암호 블록으로 암호화된다. 취약한 점은 키가 고정되어 있을 경우 평문 내에 동일한 블록들은 결과 또한 동일할 수 있다. 한개가 해독되면 나머지도 모두 해독될 수 있다.
- 02 CBC mode
CBC는 각 메세지를 고유하게 만들기 위해 IV 백터가 필요하다. 텍스트 블록이 서로 다른 블록으로 암호화된다. 평문의 각 블록은 XOR 연산을 통해 이전 암호문과 연산되고 첫 번쨰 암호문에 대해서는 이전 블록이 없기 때문에 IV(lntial Vector)가 암호문 대신 사용되고, 제 2의 키가 될 수 있다.
hv9NDDwqIyk5zjHJB6WuNw==
SKINFOSEC!_SKINFOSEC!_SKINFOSEC!
'Web hacking > 개념 정리 & 심화' 카테고리의 다른 글
[WEB]Blind SQL Injection 심화 정리 (0) | 2022.05.30 |
---|---|
[WEB]Blind SQL Injection 사용 간단 실습 & 정리 (0) | 2022.05.30 |
[-] Daily - Host에 ..값 삽입, base64 값 변조 등 (0) | 2022.04.13 |
[#5] webdav, heartbleed 취약점 (0) | 2022.03.04 |
[#5] Burp Suite 살펴보기 (0) | 2022.03.04 |