AES(Advanced Encryption Standard)는 미국 국립표준기술연구소(NIST)가 2001년 제정한 전자 데이터 암호화 규격입니다. AES는 DES나 Triple DES보다 더 어렵음에도 불구하고 훨씬 강력해 오늘날 널리 사용되고 있습니다. 구현.
기억해야 할 점
- AES는 블록 암호입니다.
- 키 크기는 128/192/256비트일 수 있습니다.
- 각각 128비트 블록으로 데이터를 암호화합니다.
이는 128비트를 입력으로 사용하고 128비트의 암호화된 암호문을 출력으로 출력한다는 의미입니다. AES는 대체 순열 네트워크 원리를 사용합니다. 즉, 입력 데이터를 교체하고 섞는 일련의 연결된 작업을 사용하여 수행됩니다.
온라인뱅킹의 단점
암호 작업 :
AES는 비트 단위가 아닌 데이터 바이트 단위로 작업을 수행합니다. 블록 크기가 128비트이므로 암호는 한 번에 128비트(또는 16바이트)의 입력 데이터를 처리합니다.
라운드 수는 다음과 같이 키 길이에 따라 달라집니다.
- 128비트 키 – 10라운드
- 192비트 키 – 12라운드
- 256비트 키 – 14라운드
라운드 키 생성:
키 일정 알고리즘은 키에서 모든 라운드 키를 계산하는 데 사용됩니다. 따라서 초기 키는 해당 암호화 라운드에서 사용될 다양한 라운드 키를 생성하는 데 사용됩니다.

암호화 :
AES는 각 블록을 열 주요 배열의 16바이트(4바이트 x 4바이트 = 128) 그리드로 간주합니다.
[ b0 | b4 | b8 | b12 | | b1 | b5 | b9 | b13 | | b2 | b6 | b10| b14 | | b3 | b7 | b11| b15 ]>
각 라운드는 4단계로 구성됩니다.
- 하위바이트
- ShiftRows
- MixColumns
- 라운드 키 추가
마지막 라운드에는 MixColumns 라운드가 없습니다.
SubBytes는 대체를 수행하고 ShiftRows 및 MixColumns는 알고리즘에서 순열을 수행합니다.
하위바이트:
이 단계에서는 대체를 구현합니다.
이 단계에서 각 바이트는 다른 바이트로 대체됩니다. 이는 S-box라고도 불리는 조회 테이블을 사용하여 수행됩니다. 이 대체는 바이트가 자체적으로 대체되지 않고 현재 바이트를 보완하는 다른 바이트로 대체되지 않는 방식으로 수행됩니다. 이 단계의 결과는 이전과 마찬가지로 16바이트(4 x 4) 행렬입니다.
다음 두 단계에서는 순열을 구현합니다.
ShiftRows :
이 단계는 말 그대로입니다. 각 행은 특정 횟수만큼 이동됩니다.
문자열 자바로 나누기
- 첫 번째 행은 이동되지 않습니다.
- 두 번째 행이 왼쪽으로 한 번 이동됩니다.
- 세 번째 행은 왼쪽으로 두 번 이동됩니다.
- 네 번째 행은 왼쪽으로 세 번 이동합니다.
(왼쪽 원형 시프트가 수행됩니다.)
[ b0 | b1 | b2 | b3 ] [ b0 | b1 | b2 | b3 ] | b4 | b5 | b6 | b7 | ->| b5 | b6 | b7 | b4 | | b8 | b9 | b10 | b11 | | b10 | b11 | b8 | b9 | [ b12 | b13 | b14 | b15 ] [ b15 | b12 | b13 | b14 ]>
믹스컬럼:
이 단계는 기본적으로 행렬 곱셈입니다. 각 열은 특정 행렬과 곱해지며 결과적으로 열의 각 바이트 위치가 변경됩니다.
마지막 라운드에서는 이 단계를 건너뜁니다.
[ c0 ] [ 2 3 1 1 ] [ b0 ] | c1 | = | 1 2 3 1 | | b1 | | c2 | | 1 1 2 3 | | b2 | [ c3 ] [ 3 1 1 2 ] [ b3 ]>
라운드 키 추가:
이제 이전 단계의 결과 출력이 해당 라운드 키와 XOR됩니다. 여기서 16바이트는 그리드로 간주되지 않고 128비트의 데이터로 간주됩니다.

이 모든 라운드가 끝나면 128비트의 암호화된 데이터가 출력으로 다시 제공됩니다. 암호화할 모든 데이터가 이 과정을 거칠 때까지 이 과정이 반복됩니다.
해독 :
라운드의 단계는 수행 시 변경 사항을 되돌리는 반대 단계를 가지므로 쉽게 실행 취소할 수 있습니다. 각 128개의 블록은 키 크기에 따라 10, 12 또는 14개의 라운드를 거칩니다.
각 라운드의 복호화 단계는 다음과 같습니다.
- 라운드 키 추가
- 역 MixColumns
- ShiftRows
- 역 하위 바이트
복호화 과정은 암호화 과정을 반대로 진행하는 것이므로 눈에 띄는 차이점이 있는 단계를 설명하겠습니다.
역 MixColumns :
이 단계는 암호화의 MixColumns 단계와 유사하지만 작업을 수행하는 데 사용되는 매트릭스가 다릅니다.
[ b0 ] [ 14 11 13 9 ] [ c0 ] | b1 | = | 9 14 11 13 | | c1 | | b2 | | 13 9 14 11 | | c2 | [ b3 ] [ 11 13 9 14 ] [ c3 ]>
역 하위 바이트:
역 S-박스는 조회 테이블로 사용되며 복호화 중에 바이트가 대체되는 데 사용됩니다.
신청:
AES는 안전한 데이터 저장 및 전송이 필요한 많은 애플리케이션에 널리 사용됩니다. 몇 가지 일반적인 사용 사례는 다음과 같습니다.
- 무선 보안: AES는 데이터 기밀성을 보장하고 무단 액세스를 방지하기 위해 Wi-Fi 네트워크와 같은 무선 네트워크를 보호하는 데 사용됩니다. 데이터베이스 암호화: AES를 적용하여 데이터베이스에 저장된 중요한 데이터를 암호화할 수 있습니다. 이는 데이터 침해가 발생할 경우 무단 액세스로부터 개인 정보, 재무 기록 및 기타 기밀 데이터를 보호하는 데 도움이 됩니다. 보안 통신: AES는 인터넷 통신, 이메일, 인스턴트 메시징, 음성/화상 통화 등의 프로토콜에 널리 사용됩니다. 이를 통해 데이터의 기밀이 유지됩니다. 데이터 저장: AES는 하드 드라이브, USB 드라이브 및 기타 저장 매체에 저장된 중요한 데이터를 암호화하여 분실 또는 도난 시 무단 액세스로부터 데이터를 보호하는 데 사용됩니다. VPN(가상 사설망): AES는 일반적으로 VPN 프로토콜에서 사용자 장치와 원격 서버 간의 통신을 보호하는 데 사용됩니다. 이는 VPN을 통해 주고받은 데이터가 비공개로 유지되고 도청자가 해독할 수 없도록 보장합니다. 비밀번호의 안전한 저장: 비밀번호를 안전하게 저장하기 위해 일반적으로 AES 암호화가 사용됩니다. 일반 텍스트 비밀번호를 저장하는 대신 암호화된 버전이 저장됩니다. 이는 추가 보안 계층을 추가하고 스토리지에 대한 무단 액세스가 발생할 경우 사용자 자격 증명을 보호합니다. 파일 및 디스크 암호화: AES는 컴퓨터, 외부 저장 장치 및 클라우드 저장소의 파일과 폴더를 암호화하는 데 사용됩니다. 무단 액세스를 방지하기 위해 장치에 저장된 또는 데이터 전송 중에 민감한 데이터를 보호합니다.
요약 :
이제 AES 명령 세트가 CPU(수 GB/s의 처리량 제공)에 통합되어 암호화 및 암호 해독에 AES를 사용하는 애플리케이션의 속도와 보안이 향상되었습니다. AES 알고리즘은 도입된 지 20년이 지났지만 현재의 기술로도 불가능하기 때문에 이를 깨는 데 실패했습니다. 현재까지 유일한 취약점은 알고리즘 구현에 남아 있습니다.