Patent ID: 7290281

Claim:
A method for protecting from denial of service attacks a device that provides particular services, the method comprising the steps of: receiving a data packet that includes data for the particular services and a cryptographic tag; determining whether the data packet is legitimate based on the cryptographic tag and a size of the data for the particular services without otherwise using the data for the particular services; wherein determining whether the data packet is legitimate comprises determining whether the cryptographic tag includes data indicating a number in a sequence of unpredictable numbers, in which the next number in the sequence depends on the size of the data; and if it is determined that the data packet is not legitimate, then diverting the data from input to the particular services that process the data; wherein said step of determining whether the data packet is legitimate further comprises: decrypting the cryptographic tag without using the data for the particular services to determine a compound plaintext tag; subtracting the size of the data for the particular services from the compound plaintext tag to determine a plaintext tag; and determining whether the data packet is legitimate based on the plaintext tag; wherein said step of determining whether the data packet is legitimate based on the plaintext tag further comprises determining whether the plaintext tag includes data indicating a first number that is a reasonable next number in a natural sequence of numbers; wherein the step of determining whether the plaintext tag includes data indicating a first number that is a reasonable next number comprising the step of determining whether the first number does not surpass, by more than a first difference, a largest number determined to be reasonable in a previous plaintext tag; and storing the first number in a set of stored numbers that were included in previous plaintext tags and surpassed the largest number determined to be reasonable; said step of determining whether the plaintext tag includes data indicating a first number that is a reasonable next number further comprising, if it is determined that the first number does surpass the largest number determined to be reasonable by more than the first difference, then performing the step of determining whether the first number forms a cluster with other numbers that surpassed the largest number determined to be reasonable.