1. A method of encrypting a plurality of data blocks, each data block comprising a plurality of data bits, the method comprising; combining each data block with a corresponding bit vector using a reversible combinatorial operation to thereby create a plurality of data block-bit vector combinations; and encrypting each data block-bit vector combination using a key encryption operation; and wherein each bit vector has a value that is independent of all key encryption operations that were previously performed on the data block-bit vector combinations created from the other data blocks of the plurality of data blocks.