| CPC G06F 21/76 (2013.01) [G06F 21/602 (2013.01); G06F 21/64 (2013.01)] | 18 Claims |

|
1. A method for encrypted communications, comprising:
receiving at a first field programmable gate array (FPGA) and at a second FPGA, from a master controller, respective encrypted bitstreams of encryption firmware;
decrypting the encrypted bitstreams within the first and second FPGAs and loading the resulting encryption firmware to programmable logic blocks (PLBs) of the first and second FPGAs;
executing at the first FPGA steps of:
receiving an unencrypted data payload;
generating a random seed value;
generating a hash key from parameters that include the random seed value and a value representing an encrypted channel ID (EID) of a network communications channel between the first and second FPGAs, by applying the encryption firmware, wherein a size of the hash key equals is the given size of the unencrypted data payload;
XORing the hash key with the unencrypted data payload to generate an encrypted data payload;
assembling an encrypted data packet including the seed and the encrypted data payload and sending the encrypted data packet to the second FPGA over the network communications channel identified by the EID; and
executing at the second FPGA further steps of:
receiving the encrypted data packet with the seed and the encrypted data payload;
generating the hash key from the parameters including the seed value and the EID value, by applying the encryption firmware;
XORing the hash key with the encrypted data payload to regenerate the unencrypted data payload; and
delivering the unencrypted data payload from the second FPGA to a target address.
|