Patent ID: 7809134

Claim:
A method for encrypting plaintext, the method comprising (a) representing the plaintext as a sequence of N-bit binary symbols; (b) for each possible N-bit symbol, generating a plurality of K-bit groups, such that K<N, and such that different K-bit groups for the same N-bit symbol have different lengths K and such that the corresponding K-bit groups for different N-bit symbols have different lengths, wherein the set of all the K-bit groups represents a cryptographic key; (c) defining a number of transformation rounds M required to transform the plaintext into a ciphertext; (d) performing the M transformation rounds on a set of M intermediate cores C i , K being a length of each intermediate core, wherein the plaintext is used as the first intermediate core C 1 , each round including the steps of: i) selecting which set of K-bit groups is used for the current transformation round; ii) replacing each j-th symbol in the current intermediate core C i with the corresponding K-bit group and generating a flag F ij that is a binary representation of the number K; iii) forming the next intermediate core C i+1 by concatenating the K-bit groups selected in step (ii); iv) forming a flag Fi by concatenating all flags F ij generated in step (ii); (e) forming the ciphertext comprising a core C M from the final transformation round and a set of flags F={F 1 ,F 2 , . . . ,F M } from all the transformation rounds, wherein the ciphertext is decryptable into the original plaintext using the cryptographic key, wherein, in at least one transformation round, the intermediate core that is used as an input is a combination of an intermediate core from a prior transformation round and a flap from the prior transformation round.