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_(n_1),...,a_1) in B_(n_1) and
C = (c_(n_2),..., c_1) in B_(n_2),
res = (a_(n_1),...,a_1,c_(n_2),..., c_1) in B_(n_1 + n_2); 
\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 a 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 