Patent ID: 8130946

Claim:
A computer-implemented method for encrypting a block of data, the method comprising: executing with a computer programming instructions for receiving a variable length key; selecting, using a hash of the variable length key, a plurality of encrypting S-boxes with known security properties using the variable length key; generating a plurality of fixed length encrypting subkeys based upon the variable length key; hashing the encrypting subkeys to form encrypting subkeys that are pseudo-independent; and encrypting a block of data using the S-boxes and the encrypting subkeys in a predetermined number of rounds; wherein sub-keys k, s 1 and s 2 are pseudo-independent when i) a maximum probability for a bit of k to be determined given less than all bits of s 1 and s 2 is Pr(det(k i ))<1/|k| ii) a maximum probability that a bit of s 1 can be determined given only s 2 is Pr(det(s 1,i ))<1/|s 1 | and iii) a maximum probability that a bit of s 2 can be determined given only s 1 is Pr(det(s 2,i ))<1/|s 2 |.