1. A method executed by one or more computing devices, the method comprising: determining, by at least one of the one or more computing devices, a first linear function configured to map u bits of bit-strings in p first vectors to u bits of bit strings in q second vectors, wherein u comprises an integer >0, wherein p comprises an integer ≧3, and wherein q comprises an integer ≧2; determining, by at least one of the one or more computing devices, k second linear functions configured to map v remaining bits of the bit-strings in the p first vectors to v remaining bits of the bit-strings in the q second vectors, wherein v>0, wherein the length of each bit-string=u+v, and wherein k≧2; determining, by at least one of the one or more computing devices, a function s configured to map the u bits of the bit-strings of each vector of the p first vectors to a number in a set of numbers ranging from 0 to k−1, wherein the function s comprises a surjective function; and generating, by at least one of the one or more computing devices, a transformation function based at least in part on the first linear function, at least one of the k second linear functions, and the function s.