Cryptography Reference
In-Depth Information
Input:
1. Secret key array κ[0...(l−1)].
2. (Optional) Initialization Vector IV [0...(l−1)].
Output: Scrambled permutation array S[0...N −1].
Initialization:
for i = 0,...,N −1 do
S[i] = i;
j = 0;
end
Scrambling:
for m = 0,...,3N −1 do
i = m mod N;
j = S[j + S[i] + κ[m mod l]];
Swap(S[i],S[j]);
end
Scrambling with IV (if IV is used):
for m = 0,...,3N −1 do
i = m mod N;
j = S[j + S[i] + IV [m mod l ]];
Swap(S[i],S[j]);
end
Algorithm 9.1.1: VMPC KSA
Input:
1. A key-dependent scrambled permutation S[0...N −1].
2. A key-dependent index j.
Output: Pseudo-random keystream bytes z.
Initialization:
i = 0;
Output Keystream Generation Loop:
j = S[j + S[i]];
t = S[i] + S[j];
Output z = S[S[S[j]] + 1];
Swap(S[i], S[j]);
i = i + 1;
Algorithm 9.1.2: VMPC PRGA
Search WWH ::




Custom Search