The present invention relates to secure storage of program code for an embedded system.
The electronics industry has become increasingly driven to meet the demands of high-volume consumer applications, which comprise a majority of the embedded systems market. Embedded systems face challenges in producing performance with minimal delay, minimal power consumption, and at minimal cost. As the numbers and types of consumer applications where embedded systems are employed increases, these challenges become even more pressing. Examples of consumer applications where embedded systems are employed include handheld devices, such as cell phones, personal digital assistants (PDAs), global positioning system (GPS) receivers, digital cameras, etc. By their nature, these devices are required to be small, low-power, light-weight, and feature-rich.
Given the small size of these devices, the amount of storage space can be limited within the device. The use of storage external to the device is one approach to avoiding such limitations. However, transferring data to and from the device to external storage raises potential security issues, not only with regard to the tampering of the data being transferred but also with regard to the possibility of the data being accessed by another unauthorized user. Accordingly, a need exists for ensuring privacy and integrity of data moved from on-chip storage of an embedded system to off-chip storage. The present invention addresses such a need.
Aspects for securely storing program code of an embedded system includes accepting to a digitation file from a distribution source into on-chip memory of an adaptive computing engine (ACE). The digitation file is then secured and transferred to off-chip memory.
Through the present invention, potential tampering and unauthorized access of program code for an adaptable computing device is avoided as the data is moved to/from off-chip memory. These and other advantages will become readily apparent from the following detailed description and accompanying drawings.
a and 1b illustrate a preferred embodiment of providing a consumer product in accordance with the present invention.
The present invention relates to secure storage of program code for an embedded system. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
The present invention is described for particular applicability to an environment in which an electronic product is provided as two separate consumer items, an adaptive silicon foundation and a digitation file. The adaptive silicon foundation allows for a blank slate onto which a desired hardware designation and software application are applied via the digitation file. Thus, the distinction between software and hardware becomes negligible, as the adaptive silicon remains seemingly useless until the application of the digitation file to the adaptive silicon commences. The present invention relates to the aspects of distribution of the digitation file in a manner that allows for the separation of the responsibility of distribution and licensing and of authentication and encryption, while ensuring product security and integrity with proper revenue generation and notification when providing a consumer product.
a and 1b illustrate providing a consumer product in accordance with the present invention. Referring concurrently to
By the nature of the digitation file providing the hardware designation and software application for the adaptive silicon, the value of the actual silicon performing the operations of the product is relative to the value of the digitation file. This represents a shift from the typical paradigm of consumer products, where the silicon hardware often is designed to perform the particular function of the device, as in an ASIC approach, and thus, the silicon hardware bears the value and the costs associated with the device. In contrast, with the present invention, the cost of the silicon becomes of much less significance, while the digitation file bears more of the value and the costs associated with the device.
In a preferred embodiment, the adaptive silicon is provided as an adaptive computing engine (ACE). A more detailed discussion of the aspects of an ACE are provided in co-pending U.S. patent application Ser. No. 09/815,122 entitled “Adaptive Integrated Circuitry with Heterogeneous and Reconfigurable Matrices of Diverse and Adaptive Computational Units Having Fixed, Application Specific Computational Elements,” filed Mar. 22, 2001, and assigned to the assignee of the present invention. Portions of that discussion are presented in the following in order to more fully illustrate the aspects of the present invention.
Continuing to refer to
In a preferred embodiment, the various computational elements 250 are designed and grouped together, into the various reconfigurable computation units 200. In addition to computational elements 250 which are designed to execute a particular algorithm or function, such as multiplication, other types of computational elements 250 are also utilized in the preferred embodiment. As illustrated in
With the various types of different computational elements 250, which may be available, depending upon the desired functionality of the ACE 106, the computation units 200 may be loosely categorized. A first category of computation units 200 includes computational elements 250 performing linear operations, such as multiplication, addition, finite impulse response filtering, and so on. A second category of computation units 200 includes computational elements 250 performing non-linear operations, such as discrete cosine transformation, trigonometric calculations, and complex multiplications. A third type of computation unit 200 implements a finite state machine, such as computation unit 200C as illustrated in
Next, a digitation file represents a tight coupling (or interdigitation) of data and configuration (or other control) information, within one, effectively continuous stream of information. As illustrated in the diagram of
This use of silverware modules, as a commingling of data and configuration information, in conjunction with the real-time reconfigurability of heterogeneous and fixed computational elements 250 to form different and heterogeneous computation units 200 and matrices 150, enables the ACE 100 architecture to have multiple and different modes of operation. For example, when included within a hand-held device, given a corresponding silverware module, the ACE 100 may have various and different operating modes as a cellular or other mobile telephone, a music player, a pager, a personal digital assistant, and other new or existing functionalities. In addition, these operating modes may change based upon the physical location of the device; for example, when configured as a CDMA mobile telephone for use in the United States, the ACE 100 may be reconfigured as a GSM mobile telephone for use in Europe.
With the adaptability of the ACE 100 based on the silverware, ensuring against rogue silverware is vital to maintaining proper device functionality. The aforementioned cross-referenced patent application discusses a network that allows for the distribution of the silverware in a manner that ensures security and integrity of the data transfer from a distribution source to an ACE. The present invention addresses a further issue of security arising once the silverware has been accepted by an ACE 100.
Once accepted (i.e., decrypted and verified) and licensed, the silverware is available for utilization by the ACE 100. As the size of silverware generally exceeds the on-chip memory 140 of the ACE 100, and as processing functions are not needed by the ACE 100, the availability of the silverware is maintained through storage of the silverware from chip program memory to off-chip storage, e.g., computer readable medium storage in a host system having a communications link to the ACE 100, such as a wireless network link, as shown in
Referring now to
Once encrypted, the transfer proceeds (step 1103). In a preferred embodiment, segmentation of the silverware occurs for the encryption and transfer process. The particular size of the segments/blocks of data may be chosen as desired. For example, the block size may be based on a chosen fixed block size. Alternatively, the size of the blocks may be based on the functions and subroutines of the code. As a further alternative, the block size may be based on the types of modules in the ACE 100, where the subroutines associated with each of the modules determines how the segments are separated.
When program code from the off-chip memory is retrieved back into the ACE 100 memory (step 1105), the process continues by decrypting and verifying the hash of the data before loading is completed (step 1107). If the hash of the decrypted data does not match the stored hash, then the loading is stopped (step 1109). If the hash does match, then the loading is continued and the ACE 100 is able to use the data (step 1111). In this manner, any modification that may have occurred to the data while off-chip/on the host can be detected and potential detrimental use of that modified data is successfully avoided.
From the foregoing, it will be observed that numerous variations and modifications may be effected without departing from the spirit and scope of the novel concept of the invention. It is to be understood that no limitation with respect to the specific methods and apparatus illustrated herein is intended or should be inferred. It is, of course, intended to cover by the appended claims all such modifications as fall within the scope of the claims.
This is a continuation-in-part of application Ser. No. 10/199,923 filed on Jul. 18, 2002, and is claiming the benefit of that application under 35 USC §120.
Number | Name | Date | Kind |
---|---|---|---|
4879707 | Getreuer et al. | Nov 1989 | A |
5123045 | Ostrovsky et al. | Jun 1992 | A |
5450557 | Kopp et al. | Sep 1995 | A |
5533123 | Force et al. | Jul 1996 | A |
5572572 | Kawan et al. | Nov 1996 | A |
5646544 | Iadanza | Jul 1997 | A |
5696823 | Blaze | Dec 1997 | A |
5737631 | Trimberger | Apr 1998 | A |
5828858 | Athanas et al. | Oct 1998 | A |
5860021 | Klingman | Jan 1999 | A |
5883956 | Le et al. | Mar 1999 | A |
5889816 | Agrawal et al. | Mar 1999 | A |
5892900 | Ginter et al. | Apr 1999 | A |
5892961 | Trimberger | Apr 1999 | A |
5907580 | Cummings | May 1999 | A |
5910733 | Bertolet et al. | Jun 1999 | A |
5940438 | Poon et al. | Aug 1999 | A |
5943242 | Vorbach et al. | Aug 1999 | A |
5959881 | Trimberger et al. | Sep 1999 | A |
5963048 | Harrison et al. | Oct 1999 | A |
5966534 | Cooke et al. | Oct 1999 | A |
5970254 | Cooke et al. | Oct 1999 | A |
5994923 | Navabi | Nov 1999 | A |
6021186 | Suzuki et al. | Feb 2000 | A |
6021490 | Vorbach et al. | Feb 2000 | A |
6023742 | Ebeling et al. | Feb 2000 | A |
6061580 | Altschul et al. | May 2000 | A |
6081903 | Vorbach et al. | Jun 2000 | A |
6088043 | Kelleher et al. | Jul 2000 | A |
6094065 | Tavana et al. | Jul 2000 | A |
6101255 | Harrison et al. | Aug 2000 | A |
6119181 | Vorbach et al. | Sep 2000 | A |
6120551 | Law et al. | Sep 2000 | A |
6122670 | Bennett et al. | Sep 2000 | A |
6150838 | Wittig et al. | Nov 2000 | A |
6195788 | Leaver et al. | Feb 2001 | B1 |
6230307 | Davis et al. | May 2001 | B1 |
6237029 | Master et al. | May 2001 | B1 |
6256724 | Hocevar et al. | Jul 2001 | B1 |
6266760 | DeHon et al. | Jul 2001 | B1 |
6282627 | Wong et al. | Aug 2001 | B1 |
6282651 | Ashe | Aug 2001 | B1 |
6311149 | Ryan et al. | Oct 2001 | B1 |
6338106 | Vorbach et al. | Jan 2002 | B1 |
6353841 | Marshall et al. | Mar 2002 | B1 |
6385727 | Cassagnol et al. | May 2002 | B1 |
6405299 | Vorbach et al. | Jun 2002 | B1 |
6408039 | Ito | Jun 2002 | B1 |
6410941 | Taylor et al. | Jun 2002 | B1 |
6425068 | Vorbach et al. | Jul 2002 | B1 |
6433578 | Wasson | Aug 2002 | B1 |
6480937 | Vorbach et al. | Nov 2002 | B1 |
6542998 | Vorbach et al. | Apr 2003 | B1 |
6545983 | Belaiche | Apr 2003 | B2 |
6571381 | Vorbach et al. | May 2003 | B1 |
6640304 | Ginter et al. | Oct 2003 | B2 |
6675298 | Folmsbee | Jan 2004 | B1 |
6697948 | Rabin et al. | Feb 2004 | B1 |
6697979 | Vorbach et al. | Feb 2004 | B1 |
6718319 | Fisher et al. | Apr 2004 | B1 |
6732105 | Watson, Jr. et al. | May 2004 | B1 |
6751729 | Giniger et al. | Jun 2004 | B1 |
6754784 | North et al. | Jun 2004 | B1 |
6757831 | Folmsbee | Jun 2004 | B1 |
6766353 | Lin et al. | Jul 2004 | B1 |
6820203 | Okaue et al. | Nov 2004 | B1 |
6847948 | Paolini et al. | Jan 2005 | B1 |
6889212 | Wang et al. | May 2005 | B1 |
6968454 | Master et al. | Nov 2005 | B2 |
6976136 | Falik et al. | Dec 2005 | B2 |
7003660 | Vorbach et al. | Feb 2006 | B2 |
7043611 | McClannahan et al. | May 2006 | B2 |
7117333 | Beeston et al. | Oct 2006 | B2 |
7127619 | Unger et al. | Oct 2006 | B2 |
7197645 | Sambhwani et al. | Mar 2007 | B2 |
7210129 | May et al. | Apr 2007 | B2 |
7257718 | Lundvall et al. | Aug 2007 | B2 |
7266725 | Vorbach et al. | Sep 2007 | B2 |
7356710 | Lundvall et al. | Apr 2008 | B2 |
7394284 | Vorbach | Jul 2008 | B2 |
7434191 | Vorbach et al. | Oct 2008 | B2 |
7444531 | Vorbach et al. | Oct 2008 | B2 |
7664261 | Lee et al. | Feb 2010 | B2 |
20030188182 | Sato et al. | Oct 2003 | A1 |
20070094468 | Haustein et al. | Apr 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
Parent | 10199923 | Jul 2002 | US |
Child | 10286633 | US |