US2007288761A1PendingUtilityA1

System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors

42
Assignee: DALE JASON NPriority: Jun 9, 2006Filed: Jun 9, 2006Published: Dec 13, 2007
Est. expiryJun 9, 2026(expired)· nominal 20-yr term from priority
G06F 15/177G06F 9/4405G06F 21/575G06F 2221/2123H04L 9/0662H04L 9/14H04L 2209/04H04L 2209/08
42
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system and method for booting a multiprocessor device based on selection of encryption keys to be provided to the processors are provided. With the system and method, a security key and one or more randomly generated key values are provided to a selector mechanism of each processor of the multiprocessor device. A random selection mechanism is provided in pervasive logic that randomly selects one of the processors to be a boot processor and thereby, provides a select signal to the selector of the boot processor such that the boot processor selects the security key. All other processors select one of the one or more randomly generated key values. As a result, only the randomly selected boot processor is able to use the proper security key to decrypt the boot code for execution.

Claims

exact text as granted — not AI-modified
1 . A method, in a data processing system having a plurality of processors, for booting the data processing system, comprising:
 receiving, in each processor of the plurality of processors, a secret key value;   receiving, in each processor of the plurality of processors, at least one random key value;   randomly selecting one of the processors of the plurality of processors to be a boot processor;   selecting, by each of the processors of the plurality of processors, a key value for the processor based on the random selection of the boot processor, wherein only the boot processor selects the secret key as its corresponding key value and each of the other processors of the plurality of processors selects one of the at least one random key value as their corresponding key value;   receiving, by the boot processor, encrypted boot code from an encrypted boot code storage;   decrypting, by the boot processor, the encrypted boot code using the secret key value; and   executing the decrypted boot code to thereby boot the data processing system to an operational state.   
     
     
         2 . The method of  claim 1 , wherein each processor of the plurality of processors receives the secret key value and a predetermined number of random key values, and wherein the predetermined number is equal to a number of processors in the plurality of processors. 
     
     
         3 . The method of  claim 2 , wherein each processor of the plurality of processors that is not selected to be the boot processor selects a different key value from the at least one random key value. 
     
     
         4 . The method of  claim 1 , wherein each processor in the plurality of processors comprises a multiplexer, the secret key value and the at least one random key value are provided as inputs to the multiplexer of each processor in the plurality of processors, and a select signal is provided to each multiplexer of each processor in the plurality of processors, wherein the select signal input to a multiplexer of a processor has an associated value corresponding to the selection of the key value for the processor. 
     
     
         5 . The method of  claim 1 , wherein randomly selecting one of the processors of the plurality of processors to be a boot processor comprises:
 using a random event generator provided in pervasive logic of the data processing system to generate a random value; and   decoding the random value to identify a processor from the plurality of processors in the data processing system to be the boot processor.   
     
     
         6 . The method of  claim 5 , wherein the random event generator comprises a linear feedback shift register (LFSR) counter and a ring oscillator coupled to the LFSR, wherein the ring oscillator provides an input to the LFSR to thereby generate a random value. 
     
     
         7 . The method of  claim 1 , wherein the at least one random key value comprises a plurality of random key values, and wherein each random key value in the plurality of random key values is generated by a separate random key value generator. 
     
     
         8 . The method of  claim 1 , wherein the at least one random key value comprises a plurality of random key values, and wherein each random key value in the plurality of random key values is generated by a same random key value generator. 
     
     
         9 . The method of  claim 1 , wherein the data processing system is a heterogeneous multiprocessor system-on-a-chip having a first processor that operates according to a first instruction set and one or more second processors that operate according to a second instruction set different from the first instruction set. 
     
     
         10 . The method of  claim 9 , wherein the first instruction set is a RISC instruction set and the second instruction set is a SIMD instruction set. 
     
     
         11 . A data processing system comprising:
 a plurality of processors;   pervasive logic coupled to the processors;   at least one random key generator coupled to the plurality of processors;   an encrypted boot code storage coupled to the plurality of processors; and   a secret key storage coupled to the plurality of processors, wherein:   each processor of the plurality of processors receives a secret key value from the secret key storage,   each processor of the plurality of processors receives at least one random key value from the at least one random key generator,   the pervasive logic randomly selects one of the processors of the plurality of processors to be a boot processor,   each processor of the processors of the plurality of processors selects a key value for the processor based on the random selection of the boot processor, wherein only the boot processor selects the secret key as its corresponding key value and each of the other processors of the plurality of processors selects one of the at least one random key value as their corresponding key value,   the boot processor receives encrypted boot code from the encrypted boot code storage,   the boot processor decrypts encrypted boot code using the secret key value, and   the decrypted boot code is executed by the boot processor to thereby boot the data processing system to an operational state.   
     
     
         12 . The system of  claim 11 , wherein each processor of the plurality of processors receives the secret key value and a predetermined number of random key values, and wherein the predetermined number is equal to a number of processors in the plurality of processors. 
     
     
         13 . The system of  claim 12 , wherein each processor of the plurality of processors that were not selected to be the boot processor selects a different key value from the at least one random key value. 
     
     
         14 . The system of  claim 11 , wherein each processor in the plurality of processors comprises a multiplexer, the secret key value and the at least one random key value are provided as inputs to the multiplexer of each processor in the plurality of processors, and a select signal is provided to each multiplexer of each processor in the plurality of processors, wherein the select signal input to a multiplexer of a processor has an associated value corresponding to the selection of the key value for the processor. 
     
     
         15 . The system of  claim 11 , wherein the pervasive logic comprises a random event generator and a decoder, and wherein the pervasive logic randomly selects one of the processors of the plurality of processors to be a boot processor by:
 using the random event generator to generate a random value; and   using the decoder to decode the random value to identify a processor from the plurality of processors in the data processing system to be the boot processor.   
     
     
         16 . The system of  claim 15 , wherein the random event generator comprises a linear feedback shift register (LFSR) counter and a ring oscillator coupled to the LFSR, wherein the ring oscillator provides an input to the LFSR to thereby generate a random value. 
     
     
         17 . The system of  claim 11 , wherein the at least one random key value comprises a plurality of random key values, and wherein each random key value in the plurality of random key values is generated by a separate random key value generator. 
     
     
         18 . The system of  claim 11 , wherein the at least one random key value comprises a plurality of random key values, and wherein each random key value in the plurality of random key values is generated by a same random key value generator. 
     
     
         19 . The system of  claim 11 , wherein the data processing system is a heterogeneous multiprocessor system-on-a-chip having a first processor the operates according to a first instruction set and one or more second processors that operate according to a second instruction set different from the first instruction set. 
     
     
         20 . A computer program product comprising a computer useable medium having a computer readable program, wherein the computer readable program, when executed on a data processing system, causes the data processing system to:
 receive, in each processor of a plurality of processors in the data processing system, a secret key value;   receive, in each processor of the plurality of processors, at least one random key value;   randomly select one of the processors of the plurality of processors to be a boot processor;   select, in each of the processors of the plurality of processors, a key value for the processor based on the random selection of the boot processor, wherein only the boot processor selects the secret key as its corresponding key value and each of the other processors of the plurality of processors selects one of the at least one random key value as their corresponding key value;   decrypt, in the boot processor, encrypted boot code using the secret key value; and   execute the decrypted boot code to thereby boot the data processing system to an operational state.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.