Patent ID: 7269738

Claim:
A device, comprising: a dynamically reconfigurable logic array (DR FPGA) comprising separate blocks for storing algorithms needed for performing an application by the use of said device to secure data communication; a common memory unit for storing configuration bitstreams, wherein each of said configuration bitstreams corresponds to a block; a configuration memory unit for storing configuration bitstreams currently needed to configure said DR FPGA; and a processing unit for controlling a reconfiguration of said DR FPGA and for configuring needed blocks into said DR FPGA by use of said configuration bitstreams, said processing unit being configured to monitor internal logic states of the DR FPGA, determine whether a new block is required in said DR FPGA based on a result of said monitored internal logic states, continue to monitor said internal logic states if a new block is not required in said DR FPGA, configure said new block into said DR FPGA if a new block is required in said DR FPGA, determine whether data should be passed from a replaced block to said new block, continue to monitor said internal logic states if data should not be passed from the replaced block to said new block, pass data to said new block if there is a need to pass data from the replaced block to said new block, and communicate with other devices of a system, only those blocks currently needed to perform said secured communication being present in said DR FPGA, and unneeded blocks being exchanged by controlling said reconfiguration; wherein said device forms part of said system and is configured to perform message authentication after a beginning of a communication for validating information, set up a connection using a public key encryption, negotiate a private key encryption, generate a secret key and convert the connection from public key encryption to private key encryption by use of a key exchange algorithm, secure data by the use of said private key encryption until there is a need to change said secret key or said communication is ended, repeat generation of said secret key and convert the connection from public key encryption to private key encryption by use of a key exchange algorithm to change said secret key if there is a need to change said secret key; and secure said data by the use of said private key encryption using said changed secret key.