vcipher
Vector Cipher (AES)
Performs one round of AES encryption (SubBytes, ShiftRows, MixColumns, AddRoundKey).
Details
The instruction performs one round of the AES cipher operation on the intermediate State array, sequentially applying the transforms SubBytes(), ShiftRows(), MixColumns(), and AddRoundKey() as defined in FIPS-197. The result is placed into VSR[VRT+32], representing the new intermediate state of the cipher operation.
Pseudocode Operation
Programming Note
The vcipher instruction performs a single AES cipher round, requiring the Vector Facility to be enabled. Ensure that the VRA and VRB registers point to the correct intermediate state and round key in vector storage registers. The result is stored in VSR[VRT+32]. This instruction operates at the user privilege level and will raise an exception if the Vector Facility is not available.
Example
Encoding
Operands
-
vD
Target State -
vA
Current State -
vB
Round Key -
VRT
Target Vector Register -
VRA
Source Vector Register containing the intermediate state array -
VRB
Source Vector Register containing the round key