Apparatus for generating a decryption key for use to decrypt a block of encrypted instruction data being fetched from an instruction cache in a microprocessor
First Claim
1. An apparatus for generating a decryption key for use to decrypt a block of encrypted instruction data being fetched from an instruction cache in a microprocessor at a fetch address, the apparatus comprising:
- a first multiplexer, configured to select a first key value from a plurality of key values based on a first portion of the fetch address;
a second multiplexer, configured to select a second key value from the plurality of key values based on the first portion of the fetch address;
a hardware rotater, configured to rotate the first key value based on a second portion of the fetch address; and
an arithmetic unit, configured to selectively add or subtract the rotated first key value to or from the second key value based on a third portion of the fetch address to generate the decryption key; and
wherein the plurality of key values from which the first and second key values are selected is subject to an update prior to selection by the first and second multiplexers.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus for generating a decryption key for use to decrypt a block of encrypted instruction data being fetched from an instruction cache in a microprocessor at a fetch address includes a first multiplexer that selects a first key value from a plurality of key values based on a first portion of the fetch address. A second multiplexer selects a second key value from the plurality of key values based on the first portion of the fetch address. A rotater rotates the first key value based on a second portion of the fetch address. An arithmetic unit selectively adds or subtracts the rotated first key value to or from the second key value based on a third portion of the fetch address to generate the decryption key.
53 Citations
18 Claims
-
1. An apparatus for generating a decryption key for use to decrypt a block of encrypted instruction data being fetched from an instruction cache in a microprocessor at a fetch address, the apparatus comprising:
-
a first multiplexer, configured to select a first key value from a plurality of key values based on a first portion of the fetch address; a second multiplexer, configured to select a second key value from the plurality of key values based on the first portion of the fetch address; a hardware rotater, configured to rotate the first key value based on a second portion of the fetch address; and an arithmetic unit, configured to selectively add or subtract the rotated first key value to or from the second key value based on a third portion of the fetch address to generate the decryption key; and wherein the plurality of key values from which the first and second key values are selected is subject to an update prior to selection by the first and second multiplexers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for generating a decryption key for use to decrypt a block of encrypted instruction data being fetched from an instruction cache in a microprocessor at a fetch address, the method comprising:
-
selecting a first key value from a plurality of key values based on a first portion of the fetch address; selecting a second key value from the plurality of key values based on the first portion of the fetch address; rotating the first key value based on a second portion of the fetch address; and selectively adding or subtracting the rotated first key value to or from the second key value based on a third portion of the fetch address to generate the decryption key; and wherein the plurality of key values from which the first and second key values are selected is subject to an update prior to said selecting. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer program product encoded in at least one non-transitory computer usable medium for use with a computing device, the computer program product comprising:
computer usable program code embodied in said medium, for specifying an apparatus for generating a decryption key for use to decrypt a block of encrypted instruction data being fetched from an instruction cache in a microprocessor at a fetch address, the computer usable program code comprising; first program code for specifying a first multiplexer, configured to select a first key value from a plurality of key values based on a first portion of the fetch address; second program code for specifying a second multiplexer, configured to select a second key value from the plurality of key values based on the first portion of the fetch address; third program code for specifying a rotater, configured to rotate the first key value based on a second portion of the fetch address; and fourth program code for specifying an arithmetic unit, configured to selectively add or subtract the rotated first key value to or from the second key value based on a third portion of the fetch address to generate the decryption key; and wherein the plurality of key values from which the first and second key values are selected is subject to an update prior to selection by the first and second multiplexers. - View Dependent Claims (18)
Specification