Patent ID: 9614868
Date: 2017-04-04
CPC Classifications: H04L

Claim:
1. A method for mitigation of denial of service attacks in a network comprising: generating with a processor in a server computing device a first plurality of puzzles; transmitting with the processor and a network device in the server computing device the first plurality of puzzles through a data network to a plurality of client computing devices; generating with the processor in the server computing device a second plurality of puzzles; generating with the processor in the server computing device a plurality of encrypted puzzles from the second plurality of puzzles using a first cryptographic key, the plurality of encrypted puzzles being unsolvable by the plurality of client computing devices while encrypted; transmitting with the processor and the network device in the server computing device the encrypted plurality of puzzles through the data network to the plurality of client computing device at a first time; receiving with the processor and the network device in the server computing device a first request from one client computing device in the plurality of client computing devices that includes a first solution to one puzzle in the first plurality of puzzles, the request from the one client computing device being received without a communication from the one client computing device requesting a puzzle; verifying with the processor in the server computing device correctness of the first solution to the one puzzle in the first plurality of puzzles from the one client computing device with reference to data corresponding to the one puzzle in the first plurality of puzzles stored in a memory in the server computing device; continuing to process the first request with the processor in the server computing device only in response to verification that the first solution to the one puzzle in the first plurality of puzzles from the one client computing device is correct; transmitting with the processor and the network device in the server computing device a second cryptographic key through the data network to the plurality of client computing devices at a second time, the second time being later than the first time, the second cryptographic key enabling the plurality of client computing devices to decrypt the encrypted plurality of puzzles and to generate solutions for the second plurality of puzzles after the second time; receiving with the processor and the network device in the server computing device a second request from the one client computing device in the plurality of client computing devices that includes a solution to one puzzle in the second plurality of puzzles, the second request from the one client computing device being received without a communication from the one client computing device requesting a puzzle and only after the transmitting of the second cryptographic key at the second time; verifying with the processor in the server computing device correctness of the solution to the one puzzle in the second plurality of puzzles from the one client computing device with reference to data corresponding to the one puzzle in the second plurality of puzzles stored in a memory in the server computing device; and continuing to process the second request with the processor in the server computing device only in response to verification that the solution to the one puzzle in the second plurality of puzzles from the one client computing device is correct.