P 
a password encoded as a Unicode UTF8 string 
S 
a random initializing value 
c 
a number of iterations of algorithm, a positive integer 
dkLen 
a length in octets of derived key, a positive integer 
DK 
a derived key of length dkLen 
B_{n} 
a set of all octet strings of length n, n >= 0;
if n = 0, then the set B_{n} consists of an empty string of length 0 
AC 
a concatenation of two octet strings A, C, i.e.,
a vector from B_{A+C}, where the left subvector from B_{A}
is equal to the vector A and the right subvector from B_{C} is
equal to the vector C: A = (a_{n1},...,a_{1}) in B_{n1} and C =
(c_{n2},..., c_{1}) in B_{n2}, res = (a_{n1},...,a_{1},c_{n2},...,
c_{1}) in B_{n1+n2}) 
\xor 
a bitwise exclusiveor of two octet strings of the same length 
MSB^{n}_{r}: B_{n} > B_{r} 
a truncating of an octet string to size r by
removing the least significant nr octets:
MSB^{n}_{r}(a_{n},...,a_{nr+1},a_{nr},...,a_{1}) =(a_{n},...,a_{nr+1})

LSB^{n}_{r}: B_{n} > B_{r} 
a truncating of an octet string to size r by
removing the most significant nr octets:
LSB^{n}_{r}(a_{n},...,a_{nr+1},a_{nr},...,a_{1}) =(a_{r},...,a_{1})

Int(i) 
a fouroctet encoding of the integer i =< 2^{32}: (i_{1}, i_{2}, i_{3}, i_{4}) in B_{4}, i = i_{1} + 2^{8} * i_{2} +
2^{16} * i_{3} + 2^{24} * i_{4} 
b[i, j] 
a substring extraction operator, extracts octets i through j, 0 =< i =< j 
CEIL(x) 
the smallest integer greater than or equal to x 