AES 키 스케줄
AES key scheduleAES는 키 스케줄을 사용하여 단축키를 여러 개의 개별 라운드키로 확장합니다.3개의 AES 바리안트는 라운드의 수가 다릅니다.각 변형에는 라운드마다 128비트 라운드키가 1개 [note 1]더 필요합니다.키 스케줄은 초기 키에서 필요한 라운드 키를 생성합니다.
원형 상수
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
rci | 01 | 02 | 04 | 08 | 10 | 20 | 40 | 80 | 1B | 36 |
키 확장의 라운드i의 라운드 상수 rcon은i [note 2]32비트워드입니다
여기서i rc는 다음과 같이 정의된8비트 값입니다
여기서 { 는 비트 단위 XOR 연산자로 00 및 11B16 등의 상수가16 16진수로 지정됩니다.동등:
여기서 rc의i 비트는 유한 GF([ / ( + + + x + {{3}+x)의 요소의 계수로 취급됩니다. 10= 16= ({10}=16}=2})는 + 4 + + x { + + x 2} +x 를
AES는 AES-128에는 최대 rcon10(11개의 라운드키 필요), AES-192에는 최대 rcon8, [note 3]AES-256에는 최대 rcon을7 사용합니다.
주요 일정
정의:
- 32비트 워드의 키 길이로서 N: AES-128의 경우 4워드, AES-192의 경우 6워드, AES-256의 경우 8워드
- K0, K1, ...원래N-1 키의 32비트 워드로서의 K
- 필요한 라운드 키 수: AES-128의 경우 라운드 키 11개, AES-192의 경우 13개, AES-256의[note 4] 경우 15개
- W0, W1, ...확장4R-1[note 5] 키의 32비트 워드로서의 W
또한 RotWord를 1바이트 왼쪽 [note 6]원형 이동으로 정의합니다.
및 서브워드는 AES S-box의 어플리케이션으로서 워드의 4바이트 각각에 대해 다음과 같습니다.
그런 다음 i … - {\ i의 :
메모들
- ^ 비 AES Rijndael 모델에서는 라운드당 최대 256비트의 확장 키가 필요합니다.
- ^ FIPS-197에서는 r {\ 은 인덱스0에서 최하위 바이트입니다
- ^ 블록 사이즈가 큰 Rijndael 바리안트에서는 128비트키와 256비트블록이 있는 Rijndael의 경우 최대 rcon까지29 이러한 상수를 사용합니다(각 256비트의 15개의 라운드 키가 필요합니다.이것은, 30개의 풀 라운드의 키를 필요로 하는 것으로, 라운드 상수를 사용해 키스케줄 코어에 29개의 콜을 발신하는 것을 의미합니다).i 11 11의 나머지 상수는 6C, D8, AB, 4D, 9A, 2F, 5E, BC, 63, C6, 97, 35, 6A, D4, B3, 7D, FA, EF 및 C5입니다.
- ^ 다른 Rijndael 변종에는 max(N, B) + 7개의 라운드 키가 필요합니다. 여기서 B는 단어의 블록 크기입니다.
- ^ 다른 Rijndael 변형에는 확장 키의 BR 단어가 필요합니다. 여기서 B는 단어의 블록 크기입니다.
- ^ 회전은 바이트 순서 방향과 반대입니다.어레이의 FIPS-197 바이트 주소는 리틀 엔디안에서는 왼쪽에서 오른쪽으로[ref 1] 증가하지만 회전은 오른쪽에서 왼쪽으로 증가합니다.AES-NI[ref 2] 및 Linux 커널의 lib/crypto/aes.c에서는[ref 3] 바이트 순서가 오른쪽에서 왼쪽으로 증가하지만 회전은 왼쪽에서 오른쪽으로 증가합니다.
레퍼런스
- ^ "Federal Information Processing Standards Publication 197 November 26, 2001 Announcing the ADVANCED ENCRYPTION STANDARD (AES)" (PDF). p. 8. Retrieved 2020-06-16.
- ^ "Intel® Advanced Encryption Standard (AES) New Instructions Set" (PDF). p. 13.
- ^ "aes.c". Retrieved 2020-06-15.
외부 링크
- Rijndael의 주요 일정 설명
- Cryptography Stack Exchange의 160비트 키에 대한 128비트 및 256비트 키에 대한 키 예약 개략도 보기