Rijndael key schedule procedure 모든 _mm_aeskeygenassist_si128에서 지원하는 RotWord
, SubWord
및 XOR
, 포함 :SSE의 AES가 전체 기능을 제공하지 않는 이유는 무엇입니까?
X3[31:0] ← SRC [127: 96];
X2[31:0] ← SRC [95: 64];
X1[31:0] ← SRC [63: 32];
X0[31:0] ← SRC [31: 0];
RCON[31:0] ← ZeroExtend(Imm8[7:0]);
DEST[31:0] ← SubWord(X1);
DEST[63:32 ] ← RotWord(SubWord(X1)) XOR RCON;
DEST[95:64] ← SubWord(X3);
DEST[127:96] ← RotWord(SubWord(X3)) XOR RCON;
DEST[VLMAX-1:128] (Unmodified)
그러나, 그것은 완전한 라운드 키를 반환하지 않습니다. 예를 들어, 대신 단순히
DEST[31:0] <- SubWord(X1)
을 수행하는 동안 나는 우리가 실제로
DEST[31:0]<-RotWord(SubWord(X3)) XOR RCON XOR X0
을 수행해야합니다 같아요.
결과적으로 _mm_aeskeygenassist_si128
이후 개발자는 라운드 키가 완전히 생성되기 전에 추가 작업을해야합니다.
SSE가 완벽한 AES 키 생성 절차를 제공하지 않는 이유는 무엇입니까?