Patent ID: 7428305
Filing Date: 2008-09-23
Classification: H04L

Abstract:
1. A method of encrypting data by generating a keyed integer permutation on an N-bit block of data representing an encryption input value, comprising: obtaining an encrypted final result from the N-bit block of data by performing a plurality of rounds, wherein each bit of the N-bit block of data is associated with an index from a plurality of N indices, and wherein N can be factored into an integer value p greater than one and an integer value q greater than one, each round comprising the steps of: the final round further comprising the steps of: wherein the first half-round key and the second half-round key are generated by a key generation method comprising the steps of: setting an index t to zero; generating a plurality of evenly distributed bytes; adding together a first pair of successive elements of the plurality of evenly distributed bytes, selected using the index t, to produce a first intermediate value, wherein one of the first pair of successive elements is first multiplied by a multiplication number; checking the first intermediate value to determine if the first intermediate value is less than a first predetermined amount; incrementing the index t and returning to the step of adding together the first pair of successive elements of the plurality of evenly distributed bytes if the first intermediate value is greater that the first predetermined amount; modularly reducing the first intermediate value by a first integer value to produce the first half-round key and incrementing the index t; adding together a second pair of successive elements of the plurality of evenly distributed bytes, selected using the index t, to produce a second intermediate value, wherein one of the second pair of successive elements is first multiplied by the multiplication number; checking the second intermediate value to determine if the second intermediate value is less than a second predetermined amount; incrementing the index t and returning to the step of adding together the second pair of successive elements of the plurality of evenly distributed bytes if the second intermediate value is greater that the second predetermined amount; modularly reducing the second intermediate value by a second integer value to produce the second half-round key and incrementing the index t; returning to the key generation method step of adding together a first pair of successive elements until respective first half-round key and second half-round key pairs are generated for use in each round of the plurality of rounds, wherein each pair of the plurality of first half-round key and second half-round key pairs is associated with a respective round in the plurality of rounds.