IP Library Granted Patent US 11,593,111
Granted Patent B2
US 11,593,111 · App. 16/773,059 · Granted Feb 28, 2023

Apparatus and method for inhibiting instruction manipulation

Inventors: Frederic Jean Denis Arsanto (Le Rouret, FR); Carlo Dario Fanara (Antibes, FR); Luca Scalabrino (Villeneuve Loubet, FR); Jean Sébastien Leroy (Alpes-Maritimes, FR)
Assignee: Arm Limited
G06F9/3016G06F9/3802
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,593,111
App. No.
16/773,059
Filed
Jan 27, 2020
Granted
Feb 28, 2023
Kind
B2
Art Unit
2182
USPC
726/6
Abstract

An apparatus and method are provided for inhibiting instruction manipulation. The apparatus has execution circuitry for performing data processing operations in response to a sequence of instructions from an instruction set, and decoder circuitry for decoding each instruction in the sequence in order to generate control signals for the execution circuitry. Each instruction comprises a plurality of instruction bits, and the decoder circuitry is arranged to perform a decode operation on each instruction to determine from the value of each instruction bit, and knowledge of the instruction set, the control signals to be issued to the execution circuitry in response to that instruction. An input path to the decoder circuitry comprises a set of wires over which the instruction bits of each instruction are provided. Scrambling circuitry is used to perform a scrambling function on each instruction using a secret scrambling key, such that the wire within the set of wires over which any given instruction bit is provided to the decoder circuitry is dependent on the secret scrambling key. The decode operation performed by the decoder circuitry is then adapted to incorporate a descrambling function using the secret scrambling key to reverse the effect of the scrambling function. As a result, independent of which wire any given instruction bit is provided on, the decode operation is arranged when decoding a given instruction to correctly interpret each instruction bit of that given instruction, based on knowledge of the instruction set, in order to determine from the value of each instruction bit the control signals to be issued to the execution circuitry in response to that given instruction.

Claims (37)

1. An apparatus comprising:

execution circuitry to perform data processing operations in response to a sequence of instructions from an instruction set;

decoder circuitry to decode each instruction in the sequence in order to generate control signals for the execution circuitry to cause the execution circuitry to perform the data processing operations required by the sequence of instructions, each instruction in the sequence comprising a plurality of instruction bits and the decoder circuitry being arranged to perform a decode operation on each instruction in the sequence to determine from a value of each instruction bit, and knowledge of the instruction set, the control signals to be issued to the execution circuitry in response to that instruction;

an input path to the decoder circuitry comprising a set of wires over which the instruction bits of each instruction in the sequence are provided;

scrambling circuitry to perform a scrambling function on each instruction in the sequence using a secret scrambling key, such that a wire within the set of wires over which any given instruction bit is provided to the decoder circuitry is dependent on the secret scrambling key;

wherein the decode operation performed by the decoder circuitry is arranged to incorporate a descrambling function using the secret scrambling key to reverse an effect of the scrambling function, such that, independent of which wire any given instruction bit is provided on, the decode operation is arranged when decoding a given instruction to correctly interpret each instruction bit of that given instruction, based on knowledge of the instruction set, in order to determine from the value of each instruction bit the control signals to be issued to the execution circuitry in response to that given instruction; and

fetch circuitry to fetch the sequence of instructions from a memory device, the fetch circuitry having an instruction buffer to store the fetched instructions prior to provision of the fetched instructions over the input path to the decoder circuitry;

wherein the scrambling circuitry is provided in association with the fetch circuitry to apply the scrambling function to the fetched instructions prior to the fetched instructions being stored in the instruction buffer;

wherein the sequence of instructions as stored in the memory device are encrypted;

the apparatus further comprises decryption circuitry to decrypt the sequence of instructions prior to provision of the sequence of instructions to the decoder circuitry; and

the scrambling circuitry is incorporated within the decryption circuitry.

2. The apparatus as claimed in claim 1 , wherein the decryption circuitry and the scrambling circuitry are integrated so that each input encrypted instruction is subjected to a combined decryption and scrambling operation that generates as an output a corresponding decrypted instruction with positions of its instruction bits scrambled based on the secret scrambling key, without generating as an intermediate result the corresponding decrypted instruction in unscrambled form.

3. The apparatus as claimed in claim 2 , wherein:

the sequence of instructions as stored in the memory device are encrypted using a masking function based on a secret mask key; and

the combined decryption and scrambling operation receives as inputs an input encrypted instruction, the secret mask key and the secret scrambling key.

4. The apparatus as claimed in claim 1 , wherein a value of the secret scrambling key is changed on occurrence of a determined event.

5. The apparatus as claimed in claim 4 , further comprising an interface to sample, on occurrence of the determined event, the value of the secret scrambling key as provided by a scrambling key generator.

6. The apparatus as claimed in claim 4 , wherein the determined event comprises a reset of the apparatus.

7. The apparatus as claimed in claim 1 , wherein the scrambling function and the descrambling function are a bijective function.

8. An apparatus comprising:

execution circuitry to perform data processing operations in response to a sequence of instructions from an instruction set;

decoder circuitry to decode each instruction in the sequence in order to generate control signals for the execution circuitry to cause the execution circuitry to perform the data processing operations required by the sequence of instructions, each instruction in the sequence comprising a plurality of instruction bits and the decoder circuitry being arranged to perform a decode operation on each instruction in the sequence to determine from a value of each instruction bit, and knowledge of the instruction set, the control signals to be issued to the execution circuitry in response to that instruction;

an input path to the decoder circuitry comprising a set of wires over which the instruction bits of each instruction in the sequence are provided; and

scrambling circuitry to perform a scrambling function on each instruction in the sequence using a secret scrambling key, such that a wire within the set of wires over which any given instruction bit is provided to the decoder circuitry is dependent on the secret scrambling key;

wherein the decode operation performed by the decoder circuitry is arranged to incorporate a descrambling function using the secret scrambling key to reverse an effect of the scrambling function, such that, independent of which wire any given instruction bit is provided on, the decode operation is arranged when decoding a given instruction to correctly interpret each instruction bit of that given instruction, based on knowledge of the instruction set, in order to determine from the value of each instruction bit the control signals to be issued to the execution circuitry in response to that given instruction;

wherein a value of the secret scrambling key is changed on occurrence of a determined event;

wherein the determined event comprises an event indicating that the decoder circuitry is in an idle state where no active instructions are in the process of being decoded by the decoder circuitry.

9. An apparatus comprising:

execution circuitry to perform data processing operations in response to a sequence of instructions from an instruction set;

decoder circuitry to decode each instruction in the sequence in order to generate control signals for the execution circuitry to cause the execution circuitry to perform the data processing operations required by the sequence of instructions, each instruction in the sequence comprising a plurality of instruction bits and the decoder circuitry being arranged to perform a decode operation on each instruction in the sequence to determine from a value of each instruction bit, and knowledge of the instruction set, the control signals to be issued to the execution circuitry in response to that instruction;

an input path to the decoder circuitry comprising a set of wires over which the instruction bits of each instruction in the sequence are provided;

scrambling circuitry to perform a scrambling function on each instruction in the sequence using a secret scrambling key, such that a wire within the set of wires over which any given instruction bit is provided to the decoder circuitry is dependent on the secret scrambling key;

wherein the decode operation performed by the decoder circuitry is arranged to incorporate a descrambling function using the secret scrambling key to reverse an effect of the scrambling function, such that, independent of which wire any given instruction bit is provided on, the decode operation is arranged when decoding a given instruction to correctly interpret each instruction bit of that given instruction, based on knowledge of the instruction set, in order to determine from the value of each instruction bit the control signals to be issued to the execution circuitry in response to that given instruction;

wherein a value of the secret scrambling key is changed on occurrence of a determined event; and

the apparatus further comprising:

fetch circuitry to fetch the sequence of instructions from a memory device, the fetch circuitry having an instruction buffer to store the fetched instructions prior to provision of the fetched instructions over the input path to the decoder circuitry;

wherein the determined event is an indication that the instruction buffer is empty.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: ARSANTO, FREDERIC JEAN DENIS; FANARA, CARLO DARIO; SCALABRINO, LUCA; LEROY, JEAN SÉBASTIEN
To: ARM LIMITED
Reel/Frame 051630/0164 →
Continuity (1)
Related Publication 20210232396A1 · Jul 29, 2021