The Monte-Carlo Test (MCT) consists of 100 pseudorandom text encryptions. The AESAVS generates
the request Key and Plaintext (PT) for iteration 0. The IUT and associated software
generate the Ciphertext (CT) for iteration 0, and Key, PT and CT for iteration 1-99. The
algorithm to generate Key/PT[1:99]
is specified by the AESAVS in the
following pseudo code.
Key[0] = Key
PT[0] = PT
For i = 0 to 99
Output Key[i]
Output PT[0]
For j = 0 to 999
CT[j] = AES(Key[i], PT[j])
PT[j+1] = CT[j]
Output CT[j]
If ( keylen = 128 )
Key[i+1] = Key[i] xor CT[j]
If ( keylen = 192 )
Key[i+1] = Key[i] xor (last 64-bits of CT[j-1] || CT[j])
If ( keylen = 256 )
Key[i+1] = Key[i] xor (CT[j-1] || CT[j])
PT[0] = CT[j]
The result of this algorithm is that the CT from each iteration becomes the PT for the following iteration. The key for each iteration is unique.