Secure convolutional neural networks (CNN) accelerator
AssigneeTexas Instruments Incorporated
InventorsMihir Narendra Mody, Veeramanikandan Raju, Chaitanya Ghone, Deepak Poddar
Life of this patent
Estimating the term…
Abstract
A Convolutional Neural Network (CNN) based-signal processing includes receiving of an encrypted output from a first layer of a multi-layer CNN data. The received encrypted output is subsequently decrypted to form a decrypted input to a second layer of the multi-layer CNN data. A convolution of the decrypted input with a corresponding decrypted weight may generate a second layer output, which may be encrypted and used as an encrypted input to a third layer of the multi-layer CNN data.
Claims21
A method of signal processing comprising:
- receiving an encrypted output from a first layer of a multi-layer convolutional neural networks (CNN) data;
- decrypting the received encrypted output to form a decrypted input to a second layer of the multi-layer CNN data using a first cryptographic key, the first cryptographic key is part of a first cryptographic key pair;
- receiving an encrypted weight that corresponds to the decrypted input;
- decrypting the received encrypted weight uses a second cryptographic key, the second cryptographic key is part of a second cryptographic key pair, and the second cryptographic key pair is different than the first cryptographic key pair;
- performing a convolution on the decrypted input and the decrypted weight to generate a second layer output;
- and encrypting the second layer output to form an encrypted second layer output, wherein the encrypted second layer output is used as an encrypted input to a third layer of the multi-layer CNN data.
A silicon-on-chip (SoC) device comprising;
- an input feature decryption block configured to:
- receive an encrypted output from a first layer of a multi-layer convolutional neural networks (CNN) data;
- and
- decrypt the received encrypted output using a first cryptographic key, wherein the decrypted output is used as an input of a second layer of the multi-layer CNN data and the first cryptographic key is part of a first cryptographic key pair;
- a weight kernel decryption block configured to:
- receive an encrypted weight that corresponds to the input of the second layer;
- and decrypt the received encrypted weight using a second cryptographic key, the second cryptographic key is part of a second cryptographic key pair, and the second cryptographic key pair is different than the first cryptographic key pair;
- a CNN hardware (HW) core configured to perform a convolution of the input and the decrypted weight to generate a second layer output;
- and an output feature encryption block configured to encrypt the second layer output to form an encrypted second layer output, wherein the encrypted second layer output is used as an encrypted input to a third layer of the multi-layer CNN data.
A device comprising;
- an external memory;
- and
- a silicon-on-chip (SoC) device coupled to the external memory, the SoC device comprising:
- an input feature decryption block configured to:
- receive an encrypted output from a first layer of a multi-layer convolutional neural networks (CNN) data;
- and
- decrypt the received encrypted output using a first cryptographic key, wherein the decrypted output is used as an input of a second layer of the multi-layer CNN data and the first cryptographic key is part of a first cryptographic key pair;
- a weight kernel decryption block configured to:
- receive an encrypted weight from the external memory, the received encrypted weight corresponding to the input of the second layer;
- and
- decrypt the received encrypted weight using a second cryptographic key, the second cryptographic key is part of a second cryptographic key pair, and the second cryptographic key pair is different than the first cryptographic key pair;
- a CNN hardware (HW) core configured to perform a convolution of the input and the decrypted weight to generate a second layer output;
- an output feature encryption block configured to encrypt the second layer output to form an encrypted second layer output, wherein the encrypted second layer output is used as an encrypted input to a third layer of the multi-layer CNN data.
Dependencies are inferred from the claim text.