This application is also related to application Ser. No. 11/284,623 (now U.S. Pat. No. 7,536,540) entitled “Method of Hardware Driver Integrity Check of Memory Card Controller Firmware” to Micky Holtzman et al.; application Ser. No. 11/053,273 entitled “Secure Memory Card with Life Cycle Phases” to Micky Holtzman et al.; Provisional Application No. 60/717,163 entitled “Secure Yet Flexible System Architecture For Secure Devices With Flash Mass Storage Memory” to Micky Holtzman et al.; and Provisional Application No. 60/717,164 entitled “Secure Yet Flexible System Architecture For Secure Devices With Flash Mass Storage Memory” to Micky Holtzman et al. All of the aforementioned applications are hereby incorporated by this reference in their entireties.
The invention generally relates to memory cards with secure content and encryption of that content, and in particular relates to verifying the integrity of the firmware that runs secure memory cards.
It is crucial to be able to verify the functionality of commercially available memory cards before they leave the factory, and to ensure that the cards are secure from hackers once they leave the factory. With the advent of digital rights management and the spread of protected content such as music and movies etc. . . . there is a need to ensure that the contents of the card cannot be freely copied. One way a hacker may attempt to do this is to alter or even replace the firmware that runs the memory card in order to be able to pirate the contents of the card. Thus it is essential to provide a system that ensures both the integrity and the reliability of the firmware running on the card at all times.
Verifying the integrity of the firmware is an important aspect of running a secure and reliable memory card. The present invention verifies the integrity of firmware that runs a memory card, universal serial bus (USB) flash drive, or other memory system. The integrity of the firmware is verified before it is executed. This prevents the execution of firmware that is not the factory firmware from being executed. This is particularly important because the factory firmware comprises security mechanisms including encryption algorithms that are meant to protect content from being freely copied. The present invention when implemented in a memory card prevents the card from running non-factory firmware or altered factory firmware that may allow copying of secure content. Thus a hacker cannot “trick” the card into running the wrong firmware. The verification process can also be used to verify the integrity of any stored data.
One aspect of the present invention involves a method for starting operation of a memory storage device, comprising providing firmware in a mass storage unit of the device, passing the firmware though an encryption engine, calculating hash values for the firmware with said encryption engine, comparing the calculated hash values with stored hash values, and executing the firmware if the computed hash values match the stored hash values.
Another aspect of the present invention involves a mass storage device comprising flash memory, read only memory, a first set of instructions that control data storage operations of the mass storage device, the first set stored in the flash memory, a second set of instructions that shadows the first set of instructions from the flash to an executable random access memory, the second set residing in the read only memory. An encryption engine is implemented in the hardware circuitry of the mass storage device and is capable of encrypting and decrypting data to be stored in and read from the flash memory. The encryption engine is operable to verify the integrity of the first set of instructions.
Yet another aspect of the present invention involves another method for starting operation of a memory storage device. The method comprises providing firmware in a mass storage unit of the device and executing a first set of instructions in a read only memory that copy the firmware from the mass storage unit to a random access memory. It also comprises verifying the integrity of the booting firmware using an encryption engine, and after the integrity is verified, executing the firmware from the random access memory with a microprocessor.
Additional aspects, advantages and features of the present invention are included in the following description of exemplary examples thereof, which description should be taken in conjunction with the accompanying figures, and wherein like numerals are used to describe the same feature throughout the figures, unless otherwise indicated. All patents, patent applications, articles and other publications referenced herein are hereby incorporated herein by this reference in their entirety for all purposes.
A Message Authentication Code (“MAC”) is a number computed from some content (or message) that is used to prove the integrity of the content. Its purpose is to detect if the content has been altered. A Message Authentication Code is a hash computed from a message and some secret data. It is difficult to forge without knowing the secret data. The MAC is computed using an algorithm based on the DES or AES ciphers, which use a secret key. The MAC is then stored or sent with the message. The recipient recomputes the MAC using the same algorithm and secret key and compares it to the one that was stored or sent. If they are the same, it is assumed that the content or message has not been tampered with.
DES (Data Encryption Standard) is a NIST-standard cryptographic cipher that uses a 56-bit key. Adopted by the NIST in 1977, it was replaced by AES in 2001 as the official standard. DES is a symmetric block cipher that processes 64-bit blocks in four different modes of operation, with the electronic code book (ECB) being the most popular.
Triple DES increased security by adding several multiple-pass methods; for example, encrypting with one key, decrypting the results with a second key and encrypting it again with a third. However, the extra passes add considerable computing time to the process. DES is still used in applications that do not require the strongest security.
The Advanced Encryption Standard (“AES”) is a NIST-standard cryptographic cipher that uses a block length of 128 bits and key lengths of 128, 192 or 256 bits. Officially replacing the Triple DES method in 2001, AES uses the Rijndael algorithm developed by Joan Daemen and Vincent Rijmen of Belgium. AES can be encrypted in one pass instead of three, and its key size is greater than Triple DES's 168 bits.
The Secure Hash Algorithm (SHA-1) produces a 20-byte output. NIST and NSA designed it for use with the Digital Signature Standard and it is widely used now. MD5 is another hash function that may be employed with the present invention. The aforementioned standards and various other algorithms are illustrative examples of hash functions and values that may be utilized with the present invention. Other types of hash functions and values available today and developed in the future can be utilized with the present invention.
Although the aforementioned standards and various other algorithms and/or standards are well known to those skilled in cryptography, the following publications are informative and are hereby incorporated by reference in their entireties: RFC 3566—The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec by Sheila Frankel, NIST—National Institute of Standards and Technology, 820 West Diamond Ave, Room 677, Gaithersburg, Md. 20899, available at http://www.faqs.org/rfcs/rfc3566.html; Performance Comparison of Message Authentication Code (MAC) Algorithms for the Internet Protocol Security (IPSEC) by Janaka Deepakumara, Howard M. Heys and R. Venkatesan, Electrical and Computer Engineering, Memorial University of Newfoundland, St. John's, NL, Canada, A1B3S7 available at http://www.engr.mun.ca/˜howard/PAPERS/necec—2003b.pdf; and Comments to NIST concerning AES Modes of Operations: A Suggestion for Handling Arbitrary-Length Messages with the CBC MAC by John Black, University of Nevada, Reno, Phillip Rogaway, University of California at Davis, available at http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/xcbc-mac/xcbc-mac-spec.pdf.
Memory System Architecture
An example memory system in which the various aspects of the present invention may be implemented is illustrated by the block diagram of
The buffer management unit 14 comprises a host direct memory access unit (HDMA) 32, a flash direct memory access unit (FDMA) 34, an arbiter 36, a CPU bus arbiter 35, registers 33, firmware integrity circuitry (FWIC) 31, buffer random access memory (BRAM) 38, and a crypto engine 40 also referred to as encryption engine 40. The arbiter 36 is a shared bus arbiter so that only one master or initiator (which can be HDMA 32, FDMA 34 or CPU 12) can be active at any time and the slave or target is BRAM 38. The arbiter is responsible for channeling the appropriate initiator request to BRAM 38. HDMA 32 and FDMA 34 are responsible for data transported between HIM 16, FIM 18 and BRAM 38 or the RAM 11. The CPU bus arbiter 35 allows for direct data transfer from crypto engine 40 and flash DMA 34 to RAM 11 via system bus 15, which is used in certain situations such as for example when it is desired to bypass the crypto engine. The operation of the HDMA 32 and of the FDMA 34 are conventional and need not be described in detail herein. The BRAM 38 is used to store data passed between the host device 24 and flash memory 20. The HDMA 32 and FDMA 34 are responsible for transferring the data between HIM 16/FIM 18 and BRAM 38 or the CPU RAM 12a and for indicating sector completion.
When data from flash memory 20 is read by the host device 24, encrypted data in memory 20 is fetched through bus 28, FIM 18, FDMA 34, and crypto engine 40 where the encrypted data is decrypted and stored in BRAM 38. The decrypted data is then sent from BRAM 38, through HDMA 32, HIM 16, and bus 26 to the host device 24. The data fetched from BRAM 38 may again be encrypted by means of crypto engine 40 before it is passed to HDMA 32 so that the data sent to the host device 24 is again encrypted but by means of a different key and/or algorithm compared to those whereby the data stored in memory 20 is encrypted. Alternatively, rather than storing decrypted data in BRAM 38 in the above-described process, which data may become vulnerable to unauthorized access, the data from memory 20 may be decrypted and encrypted again by crypto engine 40 before it is sent to BRAM 38. The encrypted data in BRAM 38 is then sent to host device 24 as before. This illustrates the data stream during a reading process.
When data is written by host device 24 to memory 20, the direction of the data stream is reversed. For example if unencrypted data is sent by host device, through bus 26, HIM 16, HDMA 32 to crypto engine 40, such data may be encrypted by engine 40 before it is stored in BRAM 38. Alternatively, unencrypted data may be stored in BRAM 38. The data is then encrypted before it is sent to FDMA 34 on its way to memory 20.
Firmware Integrity Verification
Also stored within the flash memory are various user data files 204. Various other programs and data that are not shown may be stored within the flash memory (not shown). These files may also be encrypted and the integrity verified in a similar or other fashion.
When system 10 starts up it will start up in integrity check mode, as seen in step 404. Generally speaking, in this mode the crypto engine 40 is calculating the MAC value of all incoming data as discussed above and illustrated in detail in
In step 410, the system checks the integrity of the BLR, again according to the process seen in detail in the flowchart of
The integrity verification process in a preferred embodiment utilizes a unique calculation and control loop as shown in
In step 210, NAND block (i) is read. Next in step 215, the block is checked and optionally corrected if necessary with ECC circuitry. ECC is well known and can be used to correct physical errors in the data. While the use of ECC in conjunction with the integrity verification process is preferable, it is not essential, and the integrity is verified with or without the inclusion of step 215. It step 220 the hash value, preferably the MAC value in a preferred embodiment, is calculated. Although the MAC for block (i) is calculated, in integrity verification process 410, the resulting MAC covers blocks 0 to (i) and can be expressed mathematically as:
MAC[0 . . . (i)]=MAC[MAC[0 . . . (i−1)],block(i)].
After calculating in step 220, a comparison is performed in step 260. In step 260, the hardware of the controller, FWIC 31 in particular, compares the last 128 bits of block (i) with the previously stored MAC, that is, the MAC [0 . . . (i−1)]. In step 270, the result of the comparison is stored in a memory of the system. The first time the comparison of step 260 is performed, the “stored” value in the MAC register will not actually be an appropriate stored MAC value, but will be whatever value happens to be in the register, and can therefore be thought of as random. The result of the comparison will then be stored in step 270. For the first block, the comparison will not be checked. In step 230, the MAC value calculated in step 220 will be stored in a register of the controller, preferably in a register of FWIC 31. Next in step 235, a counter will be incremented so that the value of (i) is incremented by one and the next block will again be read in step 210. The loop will continue until all blocks (i) are read. When the last block is read, and thus processed by the encryption engine, if the last 128 bits match the MAC stored in step 230, the comparison will yield a match and the result stored in step 270 will reflect that the integrity has been verified by the hardware. Only when the last page of the BLR has been read will a match be used to indicate that the integrity has been verified. All previous matches (false true values) will be ignored. If the values are different this would indicate that there is a problem with the integrity of the data. Conversely, if the values are the same then the integrity of the data is assured.
After a match has occurred, the MAC value will again be updated in step 230, but this is a redundant operation of the loop that has no effect. This continuous calculation process allows the hardware to verify undefined content size. In other words, the MAC values can be properly calculated and the integrity verified by the hardware without having to first ascertain the number of blocks or the size of the file comprised by the blocks.
The process described above is used in certain operating states or modes, in particular the integrity check mode, for any data resident in the flash memory 20 of the memory card. In a preferred embodiment of a memory card according to the present invention, some of that data is firmware that runs the memory card when executed. In particular, at power up of system 10, when the system is in its regular operating state or test state, crypto engine 40 initializes itself (by starting in integrity check mode) to verify the integrity of any incoming data. When the data happens to be the firmware, the integrity of the firmware is verified as it passes through BMU 14 and in particular crypto engine 40. The stored result (not the integrity itself) can be checked by software, which in one embodiment involves instructions in the code stored in ROM 13. It should be noted that although the code stored in ROM 13 checks the result, and may initiate the flow of data, it is not involved in verifying the integrity of the firmware in the flash memory. In other words, the code is not responsible for performing any numerical calculations or data manipulation of the firmware in order to verify it. It is the hardware of the controller 12 or BMU 14, FWIC 31, and crypto engine 40 that verifies the integrity of the firmware, including the boot loader (BLR) portion and in some embodiments other portions of the firmware.
The process described in
Referring to
In step 328 the controller hardware calculates the digest of the incoming block. This calculation is performed by crypto engine 40. Next, in step 330 the digest calculated in step 328 is compared with the value of the previous digest. As discussed earlier, the register that holds the value will be checked and compared in every iteration of the loop, but on the first iteration, the value in the register will be random. A flag indicative of the integrity is then set in step 332. It is this flag that will be checked by the firmware of the system, in order to confirm that the HW has verified the integrity of the BLR portion of the firmware.
While this integrity check is performed for only a portion of the firmware, namely the BLR, it should be understood that all of the firmware could also be checked this way, and that this explanation relates to a preferred embodiment that employs firmware bootstrapping. Additionally, the term memory card, as used in this application, is meant to also encompass the form factor of a USB flash drive.
Although the various aspects of the present invention have been described with respect to exemplary embodiments thereof, it will be understood that the present invention is entitled to protection within the full scope of the appended claims.
This application is related and claims priority to Provisional Application No. 60/717,347, filed Sep. 14, 2005 entitled “Hardware Driver Integrity Check of Memory Card Controller Firmware” to Micky Holtzman et al.
Number | Name | Date | Kind |
---|---|---|---|
4549896 | Streicher et al. | Oct 1985 | A |
4590552 | Guttag et al. | May 1986 | A |
4697072 | Kawana | Sep 1987 | A |
4713753 | Boebert et al. | Dec 1987 | A |
4780905 | Cruts et al. | Oct 1988 | A |
4797853 | Savage et al. | Jan 1989 | A |
4907268 | Bosen et al. | Mar 1990 | A |
5006823 | Baril et al. | Apr 1991 | A |
5065429 | Lang | Nov 1991 | A |
5129074 | Kikuchi et al. | Jul 1992 | A |
5235641 | Nozawa et al. | Aug 1993 | A |
5268870 | Harari | Dec 1993 | A |
5293424 | Holtey et al. | Mar 1994 | A |
5311595 | Bjerrum et al. | May 1994 | A |
5319765 | Kimura | Jun 1994 | A |
5327563 | Singh | Jul 1994 | A |
5404485 | Ban | Apr 1995 | A |
5438575 | Bertrand | Aug 1995 | A |
5442704 | Holtey et al. | Aug 1995 | A |
5455862 | Hoskinson | Oct 1995 | A |
5477039 | Lisimaque et al. | Dec 1995 | A |
5509120 | Merkin et al. | Apr 1996 | A |
5530862 | Wadsworth et al. | Jun 1996 | A |
5596738 | Pope | Jan 1997 | A |
5606660 | Estakhri et al. | Feb 1997 | A |
5629513 | Geronimi et al. | May 1997 | A |
5710639 | Kuznicki et al. | Jan 1998 | A |
5825882 | Kowalski et al. | Oct 1998 | A |
5857020 | Peterson, Jr. | Jan 1999 | A |
5860082 | Smith et al. | Jan 1999 | A |
RE36181 | Koopman, Jr. et al. | Apr 1999 | E |
5917909 | Lamla | Jun 1999 | A |
5933854 | Yoshimura | Aug 1999 | A |
5943423 | Muftic | Aug 1999 | A |
5956405 | Yuval | Sep 1999 | A |
5987134 | Shin et al. | Nov 1999 | A |
5995623 | Kawano et al. | Nov 1999 | A |
5995965 | Experton | Nov 1999 | A |
6009026 | Tamlyn et al. | Dec 1999 | A |
6026402 | Vossen et al. | Feb 2000 | A |
6028933 | Heer et al. | Feb 2000 | A |
6073234 | Kigo et al. | Jun 2000 | A |
6101588 | Farley et al. | Aug 2000 | A |
6148354 | Ban et al. | Nov 2000 | A |
6154544 | Farris et al. | Nov 2000 | A |
6158004 | Mason et al. | Dec 2000 | A |
6181252 | Nakano | Jan 2001 | B1 |
6182229 | Nielsen | Jan 2001 | B1 |
6230223 | Olarig | May 2001 | B1 |
6230233 | Lofgren et al. | May 2001 | B1 |
6236280 | Allee | May 2001 | B1 |
6243816 | Fang et al. | Jun 2001 | B1 |
6253328 | Smith, Jr. | Jun 2001 | B1 |
6353888 | Kakehi et al. | Mar 2002 | B1 |
6356941 | Cohen | Mar 2002 | B1 |
6370251 | Hardy et al. | Apr 2002 | B1 |
6371377 | Asoh et al. | Apr 2002 | B2 |
6385729 | DiGiorgio et al. | May 2002 | B1 |
6389542 | Flyntz | May 2002 | B1 |
6393565 | Lockhart et al. | May 2002 | B1 |
6422460 | Boesch | Jul 2002 | B1 |
6434700 | Alonso et al. | Aug 2002 | B1 |
6445794 | Shefi | Sep 2002 | B1 |
6457126 | Nakamura et al. | Sep 2002 | B1 |
6522655 | Laiho | Feb 2003 | B1 |
6571335 | O'Donnel et al. | May 2003 | B1 |
6577734 | Etzel et al. | Jun 2003 | B1 |
6615347 | de Silva et al. | Sep 2003 | B1 |
6615352 | Terao et al. | Sep 2003 | B2 |
6629192 | Schaefer et al. | Sep 2003 | B1 |
6671808 | Abbott et al. | Dec 2003 | B1 |
6678741 | Northcutt et al. | Jan 2004 | B1 |
6678828 | Pham et al. | Jan 2004 | B1 |
6742117 | Hikita et al. | May 2004 | B1 |
6754765 | Chang et al. | Jun 2004 | B1 |
6763399 | Margalit et al. | Jul 2004 | B2 |
6783078 | Leaming | Aug 2004 | B1 |
6788575 | Kozakai et al. | Sep 2004 | B2 |
6804786 | Chamley et al. | Oct 2004 | B1 |
6810123 | Farris et al. | Oct 2004 | B2 |
6829676 | Maeda et al. | Dec 2004 | B2 |
6832731 | Kaneko | Dec 2004 | B2 |
6845908 | Morita et al. | Jan 2005 | B2 |
6848045 | Long et al. | Jan 2005 | B2 |
6865555 | Novak | Mar 2005 | B2 |
6880079 | Kefford et al. | Apr 2005 | B2 |
6892304 | Galsso et al. | May 2005 | B1 |
6901499 | Aasheim et al. | May 2005 | B2 |
6907522 | Morais et al. | Jun 2005 | B2 |
6912633 | De Jong | Jun 2005 | B2 |
6928547 | Brown et al. | Aug 2005 | B2 |
7023996 | Stephenson et al. | Apr 2006 | B2 |
7058818 | Dariel | Jun 2006 | B2 |
7062616 | Sadhasivan et al. | Jun 2006 | B2 |
7093299 | Kamijo et al. | Aug 2006 | B1 |
7095585 | Wagner et al. | Aug 2006 | B2 |
7120729 | Gonzalez et al. | Oct 2006 | B2 |
7246266 | Sneed et al. | Jul 2007 | B2 |
7299358 | Chateau et al. | Nov 2007 | B2 |
7380275 | Srinivasan et al. | May 2008 | B2 |
7412053 | Lyle | Aug 2008 | B1 |
20010019614 | Madoukh | Sep 2001 | A1 |
20010025355 | Palm et al. | Sep 2001 | A1 |
20010037435 | Van Doren | Nov 2001 | A1 |
20010047335 | Arndt et al. | Nov 2001 | A1 |
20020029343 | Kurita | Mar 2002 | A1 |
20020034303 | Farris et al. | Mar 2002 | A1 |
20020065730 | Nii | May 2002 | A1 |
20020099666 | Dryer et al. | Jul 2002 | A1 |
20020141588 | Rollins | Oct 2002 | A1 |
20020145632 | Shmueli et al. | Oct 2002 | A1 |
20020174337 | Aihara | Nov 2002 | A1 |
20020176575 | Qawami et al. | Nov 2002 | A1 |
20020178370 | Gurevich et al. | Nov 2002 | A1 |
20020186842 | Sabet-Sharghi et al. | Dec 2002 | A1 |
20020191794 | Farris et al. | Dec 2002 | A1 |
20030018889 | Burnett et al. | Jan 2003 | A1 |
20030028514 | Lord et al. | Feb 2003 | A1 |
20030028797 | Long et al. | Feb 2003 | A1 |
20030041242 | Patel | Feb 2003 | A1 |
20030061504 | Sprigg et al. | Mar 2003 | A1 |
20030065935 | Neufeld | Apr 2003 | A1 |
20030070083 | Nessler | Apr 2003 | A1 |
20030101327 | Beck | May 2003 | A1 |
20030110169 | Zuili et al. | Jun 2003 | A1 |
20030120938 | Mullor | Jun 2003 | A1 |
20030131210 | Mueller | Jul 2003 | A1 |
20030135739 | Talton, Sr. | Jul 2003 | A1 |
20030135844 | Yellin et al. | Jul 2003 | A1 |
20030149886 | Ito et al. | Aug 2003 | A1 |
20030156473 | Sinclair et al. | Aug 2003 | A1 |
20030177319 | De Jong | Sep 2003 | A1 |
20030191955 | Wagner et al. | Oct 2003 | A1 |
20030204726 | Kefford et al. | Oct 2003 | A1 |
20030212894 | Buck et al. | Nov 2003 | A1 |
20030221117 | Teglia | Nov 2003 | A1 |
20040024917 | Kennedy et al. | Feb 2004 | A1 |
20040025010 | Azema et al. | Feb 2004 | A1 |
20040025011 | Azema et al. | Feb 2004 | A1 |
20040025027 | Balard et al. | Feb 2004 | A1 |
20040025035 | Balard et al. | Feb 2004 | A1 |
20040025036 | Balard et al. | Feb 2004 | A1 |
20040044625 | Sakamura et al. | Mar 2004 | A1 |
20040054907 | Chateau et al. | Mar 2004 | A1 |
20040059916 | Katayama | Mar 2004 | A1 |
20040063495 | LeMay et al. | Apr 2004 | A1 |
20040066936 | Farris et al. | Apr 2004 | A1 |
20040083335 | Gonzalez et al. | Apr 2004 | A1 |
20040083370 | de Jong | Apr 2004 | A1 |
20040093592 | Rao | May 2004 | A1 |
20040098585 | Grove et al. | May 2004 | A1 |
20040103288 | Ziv et al. | May 2004 | A1 |
20040103347 | Sneed et al. | May 2004 | A1 |
20040117653 | Shapira et al. | Jun 2004 | A1 |
20040123127 | Teicher et al. | Jun 2004 | A1 |
20040128523 | Fujioka | Jul 2004 | A1 |
20040132437 | Ohmori et al. | Jul 2004 | A1 |
20040139021 | Reed et al. | Jul 2004 | A1 |
20040148536 | Zimmer et al. | Jul 2004 | A1 |
20040153642 | Plotkin et al. | Aug 2004 | A1 |
20040168081 | Ladas et al. | Aug 2004 | A1 |
20040186994 | Herbert et al. | Sep 2004 | A1 |
20040193925 | Safriel | Sep 2004 | A1 |
20040230963 | Rothman et al. | Nov 2004 | A1 |
20040264254 | Eggleston | Dec 2004 | A1 |
20040268339 | Van Someren et al. | Dec 2004 | A1 |
20050010758 | Landrock et al. | Jan 2005 | A1 |
20050010783 | Libin et al. | Jan 2005 | A1 |
20050015588 | Lin et al. | Jan 2005 | A1 |
20050033968 | Dupouy et al. | Feb 2005 | A1 |
20050049931 | Wisnudel et al. | Mar 2005 | A1 |
20050050330 | Agam et al. | Mar 2005 | A1 |
20050060561 | Pearson et al. | Mar 2005 | A1 |
20050091496 | Hyser | Apr 2005 | A1 |
20050114620 | Justen | May 2005 | A1 |
20050120205 | Umezawa et al. | Jun 2005 | A1 |
20050137997 | Bussert et al. | Jun 2005 | A1 |
20050144430 | Yamamoto et al. | Jun 2005 | A1 |
20050149924 | Komarla et al. | Jul 2005 | A1 |
20050160217 | Gonzalez et al. | Jul 2005 | A1 |
20050185493 | Fujioka et al. | Aug 2005 | A1 |
20050190393 | Bledsoe et al. | Sep 2005 | A1 |
20050190599 | Eggleston et al. | Sep 2005 | A1 |
20050193161 | Lee et al. | Sep 2005 | A1 |
20050193206 | Kunisa et al. | Sep 2005 | A1 |
20060048228 | Takemori et al. | Mar 2006 | A1 |
20060143600 | Cottrell et al. | Jun 2006 | A1 |
20060176068 | Holtzman et al. | Aug 2006 | A1 |
20060177064 | Holtzman et al. | Aug 2006 | A1 |
20060242151 | Jogand-Coulomb et al. | Oct 2006 | A1 |
20070005991 | Kober et al. | Jan 2007 | A1 |
20070011724 | Gonzalez et al. | Jan 2007 | A1 |
20070016941 | Gonzalez | Jan 2007 | A1 |
20070061570 | Holtzman et al. | Mar 2007 | A1 |
20070061581 | Holtzman et al. | Mar 2007 | A1 |
20070061597 | Holtzman et al. | Mar 2007 | A1 |
20070061897 | Holtzman et al. | Mar 2007 | A1 |
Number | Date | Country |
---|---|---|
1655121 | Aug 2005 | CN |
0 087 143 | Aug 1983 | EP |
0 461 983 | Dec 1991 | EP |
0 461 983 | Apr 1995 | EP |
0 919 904 | Aug 1998 | EP |
1 004 992 | May 2000 | EP |
1 074 906 | Aug 2000 | EP |
1 209 657 | Aug 2000 | EP |
1 273 996 | Jan 2003 | EP |
1 351 151 | Oct 2003 | EP |
1 467 312 | Apr 2004 | EP |
1 429 224 | Jun 2004 | EP |
1 487 170 | Jun 2004 | EP |
849657 | Jun 2004 | EP |
1 457 922 | Sep 2004 | EP |
1 496 419 | Jan 2005 | EP |
2 391 082 | Jul 2002 | GB |
H03-009427 | Jan 1991 | JP |
2000-196589 | Jul 2000 | JP |
2002-536757 | Oct 2002 | JP |
2002288453 | Oct 2002 | JP |
2003-051821 | Feb 2003 | JP |
2004-013905 | Jan 2004 | JP |
2004-280287 | Oct 2004 | JP |
2006-502482 | Jan 2006 | JP |
2006-522988 | Oct 2006 | JP |
2007-535015 | Nov 2007 | JP |
589569 | Jun 2004 | TW |
I231899 | May 2005 | TW |
WO 9947989 | Sep 1999 | WO |
WO 9964996 | Dec 1999 | WO |
WO 0010283 | Feb 2000 | WO |
WO 0048063 | Aug 2000 | WO |
WO 0124012 | Apr 2001 | WO |
WO 0225415 | Mar 2002 | WO |
WO 02048846 | Jun 2002 | WO |
WO 02103495 | Dec 2002 | WO |
WO 03081544 | Oct 2003 | WO |
WO 03096287 | Nov 2003 | WO |
WO 03096287 | Nov 2003 | WO |
WO 2004031942 | Apr 2004 | WO |
WO 2004040578 | May 2004 | WO |
WO 2004040586 | May 2004 | WO |
WO 2004086228 | Oct 2004 | WO |
WO 2004092886 | Oct 2004 | WO |
WO 2004112036 | Dec 2004 | WO |
WO 2005001653 | Jan 2005 | WO |
WO 2005010686 | Feb 2005 | WO |
WO 2005010688 | Feb 2005 | WO |
WO 2005013125 | Feb 2005 | WO |
WO 2005019974 | Mar 2005 | WO |
WO 2005066773 | Jul 2005 | WO |
WO 2006086232 | Aug 2006 | WO |
2007008540 | Jan 2007 | WO |
2007033321 | Mar 2007 | WO |
Entry |
---|
Suh et al. “Efficient Memory Integrity Verification and Encryption for Secure Processors” Proceedings of the 36th International Symposium on Microarchitecture 2003, pp. 1-12. |
Williams et al. “Optimal Parameter Selection for Efficient Memory Integrity Verification Using Merkle Hash Trees” Proceedings of the Third IEEE International Symposium on Network Computing and Applications (NCA'04) 383-388. |
U.S. Appl. No. 60/717,163, “Secure Yet Flexible System Architecture for Secure Devices with Flash Mass Storage Memory,” filed Sep. 14, 2005, Micky Holtzman. |
U.S. Appl. No. 60/717,164, “Secure Yet Flexible System Architecture for Secure Devices with Flash Mass Storage Memory,” filed Sep. 14, 2005, Holtzman, et al. |
U.S. Appl. No. 60/717,347, “Hardware Driver Integrity Check of Memory Card Controller Firmware,” filed Sep. 14, 2005, Holtzman, et al. |
Akagi, A., “SD Format Verification,” Matsushita Technical Journal Apr. 2002 vol. 49, No. 2 pp. 11-14 ISSN: 1343-9529. |
Allard, J.J., “Dynamic Memory Array Card Burn in and High Speed Functional Card Testing,” 1981 International Test Conference, Testing in the 1980's pp. 244-248. |
Barsness, A.R. et al.,“ECC Memory Card with Built in Diagnostic Aids and Multiple Usage,” IBM Technical Disclosure Bulletin, Apr. 1982 vol. 24, No. 11B pp. 6173-6174. |
Black, John, “Comments to NIST concerning AES Modes of Operations: A Suggestion for Handling Arbitrary-Length Messages with the CBC MAC,” University of Nevada, Reno, Phillip Rogaway, University of California at Davis http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/xcbc-mac/xcbc-mac-spec.pdf, 3 pages. |
Communication Relating to the Results of the Partial International Search for International Application No. PCT/US2006/026241 mailed Dec. 18, 2006, 3 pages. |
Deepakumara, Janaka, et al., “Performance Comparison of Message Authentication Code (MAC) Algorithms for the Internet Protocol Security (IPSEC) Electrical and Computer Engineering,” Memorial University of Newfoundland, St. John's, NL, Canada, A1B3S7 http://www.engr.mun.ca/˜howard/PAPERS/necec 2003b.pdf, 7 pages. |
Dialog Search, Oct. 6, 2004 (15 pages). |
Dialog Search, Oct. 3, 2005 (31 pages). |
Discretix Technologies Ltd. “Secure Flash™ System Specification”, Version 1.05, Jul. 15, 2004, Netanya, Israel (36 pages). |
Engelbrecht, R., et al., ByMedCard-An Electronic Patient Record with Chip Card Functionality, Health Cards '97 Fourth International Congress pp. 313-317. |
Frankel, Sheila, “RFC 3566—The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec,” NIST-National Institute of Standards and Technology, 820 West Diamond Ave., Room 677, Gaithersburg, MD 20899, http://www.faqs.org/rfcs/rfc3566.html, 10 pages. |
Gemplus, Employee Smart Badge, One Integrated and Secure Smart Badge to Manage All Access, 2 pages. |
Guibert, H.; Gamache, A., Optical Memory Card Applicability for Implementing a Portable Medical Record, Medical Informatics Jul.-Sep. 1993 vol. 18, No. 3 pp. 271-278 ISSN: 0307-7640. |
Haller, et al., “A One-Time Password System,” IETF Standard-Working-Draft, Internet Engineering Task Force, IETF, No. 1, Mar. 24, 1997, XP015024796, pp. 1-8. |
Hoornaert, “Vasco Data Security Enables Secure Communications Over the Internet,” IS Audit & Control Journal, vol. IV, 1999, 3 pages. |
Identification Cards—Contactless Integrated Circuit(s) Cards—Proximity Cards—Part 1: Physical Characteristics, ISO—IEC—14443-1—2000—PDF, 10 pages. |
Identification Cards—Contactless Integrated Circuit(s) Cards—Proximity Cards—Part 2: Radio Frequency Power and Signal Interface, ISO—IEC—14443-2—2001—PDF, 18 pages. |
iKey 1000, Workstation Security and Secure Remote Access, SafeNet, 2004, 2 pages. |
iKey 2032, Personal USB Authentication and Encryption Token, SafeNet, 2005, 2 pages. |
ISA/EPO, “Invitation to Pay Additional Fees”, mailed on Jan. 26, 2007 in corresponding Int'l. App. No. PCT/US2006/035839, 2 pages. |
ISA/EPO, “Invitation to Pay Additional Fees”, mailed on Dec. 18, 2006 in corresponding Int'l. App. No. PCT/US2006/026241, 7 pages. |
ISA/EPO, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” mailed on Feb. 8, 2007 in corresponding Int'l. App. No. PCT/US2006/026241, 9 pages. |
ISA/EPO, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” mailed on Mar. 29, 2007 in corresponding Int'l. App. No. PCT/US2006/035840, 6 pages. |
ISA/EPO, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” mailed on May 25, 2007 in corresponding Int'l. App. No. PCT/US2006/035839, 9 pages. |
ISA/EPO, “Written Opinion of the International Searching Authority,” mailed on Feb. 8, 2007 in corresponding Int'l. App. No. PCT/US2006/026241, 15 pages. |
ISA/EPO, “Written Opinion of the International Searching Authority,” mailed on Mar. 29, 2007 in corresponding Int'l. App. No. PCT/US2006/035840, 8 pages. |
ISA/EPO, “Written Opinion of the International Searching Authority,” mailed on Sep. 13, 2006 in corresponding Int'l. App. No. PCT/US2006/035839, 12 pages. |
Johnson, D., “Bus Emulation Drives Production Testing,” Test & Measurement World Feb. 1995 vol. 15, No. 2 pp. 41-42, 44, 46, 48 ISSN: 0744-1657. |
Lee, et al., “Modified Token-Update Scheme for Site Authentication, School of Computer Science and Engineering,” Inha University, Incheon, 402-751, Korea, 6 pages. |
Nystrom RSA Security M: “The Protected One-Time Password Protocol (EAP-POTP),” IETF Standard-Working-Draft, Internet Engineering Task Force, IETF, CH No. 2, Jun. 30, 2005, XP015040287. |
O.J. Horak, “Means and Measures for Data Security,” Armed Forces Data Processing Agency, Stifgasse 2a, A-1070 Wien, Austria, IFAC SAFECOMP '89, Vienna, Austria, 1989, 9 pages. |
Open Specifications Integrate One-Time Passwords with Enterprise Applications, RSA Security, Feb. 2005, 10 pages. |
Orlowski, Andrew, “Everything You Ever Wanted to Know About CPRM, But ZDNet Wouldn't Tell You . . . ,” The Register.co.UK, Jan. 10, 2001, 6 pages. |
Pinkas, Benny, “Efficient State Updates for Key Management,” STAR Lab, Intertrust Technologies, Princeton, NJ, DRM 2001, LNCS 2320 pp. 40-56, 2002. |
Renesas, X-Mobile Card, Digital Rights Management, Authentication and Secure Storage for Mobile Devices, Providing Remote Access and Secure Storage Solutions for IT, Advanced Solutions Group, 2005, 4 pages. |
RSA Security Inc.: “A CryptoAPI Profile for One-Time Password Tokens V1.0 Draft 2” One-Time Password Specifications (OTPS), Jun. 27, 2005, XP002416270. |
RSA Security Inc.: “OTP-WSS-Token: Web Services Security One-Time-Password (OTP) Token Profile, Version 1-0d3”, One-Time Password Specifications (OTPS), Jul. 6, 2005, XP002416269. |
RSA Security Inc.: “PKCS#11 Mechanisms for One-Time Password Tokens V1.0 5th Draft”, One-Time Password Specifications, Jun. 27, 2005, XP002415773. |
RSA Security, “Federated Identity Management and Return on Investment,” White Paper, 2004-2005, 12 pages. |
RSA Security, “Federated Identity Manager, A Technical Overview,” Technology Backgrounder, 2005, 16 pages. |
RSA Specification, “Cryptographic Token Key Initialization Protocol, V1.0 Draft 3,” RSA Security, Jun. 14, 2005, 29 pages. |
Rubin, “Independent One-Time Passwords,” USENIX Association, Proceedings of the Fifth USENIX UNIX Security Symposium, Jun. 5-7, 1995, 13 pages. |
Rubin, “Independent One-Time Passwords,” USENIX, A Quarterly dedicated to the analysis and understanding of advanced computing systems, vol. 9, No. 1, Winter 1996, 15 pages. |
SafeNet AXIS, “Strong Authentication and Single Sign-On,” AXIS Instant Logical & Physical Access Security, 2005, 2 pages. |
SanDisk Corporation “BE2 Architecture”, Revision 1.1, Jun. 9, 2003 (21 pages). |
SanDisk Corporation I, “CryptoFlash Integration in BE2”, Revision 1.21, Oct. 19, 2004, (34 pages). |
SanDisk Israel Discloser #SDK0570 “Flash Memory Card with in Stream data Encryption/Decryption”, (4 pages). |
Secure Business-to-Business Single Sign-On (B2B SSO) Based on Federated Identity Management, RSA Security, 2004-2005, 6 pages. |
Seitz, et al., “Key Management for Encrypted Data Storage in Distributed Systems,” Proceedings of the Second IEEE International Security in Storage Workshop (SISW'03), 11 pages. |
ST Microelectronics: “Trusted Platform Module (TPM)”; May 2004; XP-002345888; 5 pages. |
Tsuchida, S., “Test and Repair of Non-Volatile Commodity and Embedded Memories,” Proceedings International Test Conference 2002 (Cat. No. 02CH37382) p. 1223 ISBN: 0 7803 7542 4. |
U.S. Appl. No. 11/317,862, “Secure Memory Card with Life Cycle Phases”, filed Dec. 22, 2005, Holtzman et al. |
VeriSign, “Extending Managed PKI Services to Smart Cards for Greater Convenience and Security,” 2001, 14 pages. |
VeriSign, “Trusted Federated Identity Solution Architecture,” 2004, 16 pages. |
Weippl, Edgar, “An Approach to Role-Based Access Control for Digital Content,” Software Competence Center Hagenberg Hauptstr. 99 A4232 Hagenberg, Austria, 2001, 5 pages. |
Wu, D.M., Doney, R., “A Universal Self-Test Design for Chip, Card and System,” Proceedings 1992 IEEE International Workshop on Defect and Fault Tolerance in VLSI Systems (Cat. No. 92TH0481-2) pp. 305-314 ISBN: 0 8186 2837 5. |
Yang, et al., “CD-Rom Versus Web-Access to External Databases-Experiences and Insights,” Rider University Libraries, pp. 193-200. |
ISA/EPO, “Invitation to Pay Additional Fees,” mailed on Mar. 8, 2007 in corresponding Int'l. App. No. PCT/US2006/003876, 7 pages. |
ISA/EPO, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” mailed on Aug. 17, 2007 in corresponding Int'l. App. No. PCT/US2006/003876, 19 pages. |
Federal Information Processing Standards Publications 180-2, “Secure Hash Standard,” Aug. 1, 2002, pp. 1-75, http://csrc.nist.gov/publication/fips/fips 180-2.pdf. |
Communication pursuant to Article 94(3) EPC corresponding to European Patent Application No. 06 786 402.5 dated Jul. 30, 2008 (2 pages). |
European Examination Report mailed Feb. 9, 2009 in Application No. 06814655.4 [P408EP]. |
USPTO Office Action issued Nov. 19, 2008 in related U.S. Appl. No. 11/053,273 (21 pp.). |
USPTO Office Action issued Apr. 30, 2008 in related U.S. Appl. No. 11/284,623, 18 pp. . (P408). |
Notice of Allowance issued Jan. 15, 2009 in related U.S. Appl. No. 11/284,623 [P408]. |
USPTO Non-Final Office Action mailed Feb. 21, 2008 in related U.S. Appl. No. 11/317,341 (38 pages). |
USPTO Final Office Action mailed Nov. 28, 2008 in related U.S. Appl. No. 11/317,341 (26 pages). |
USPTO Non-Final Office Action mailed Dec. 14, 2007 in related U.S. Appl. No. 11/317,339 (6 pages). |
USPTO Non-Final Office Action mailed Aug. 1, 2008 in related U.S. Appl. No. 11/317,339 (31 pages). |
European Search Report for European Patent Application Serial No. 06814655.4, dated Feb. 9, 2009, 3 pages. |
Office Action for Chinese Patent Application Serial No. 200680033798.3, dated Sep. 9, 2011, 9 pages. |
Office Action for Chinese Patent Application Serial No. 201110059311.1, dated Jan. 18, 2012, 7 pages. |
Interrogatory Statement for Japanese Patent Application Serial No. 2008-531324 (Appeal No. 2011-024471), dated Mar. 13, 2012, 6 pages. |
Notification for Reasons for Refusal for Corresponding JP Patent App. No. 2008-531324, 13 pages, Jan. 25, 2011. |
Search Report for European Patent Application Serial No. EP 11001172.3, dated Jul. 11, 2011, 6 pages. |
Office Action for European Patent Application Serial No. 06814655.4, dated Jul. 14, 2011, 6 pages. |
Office Action for Japanese Patent Application Serial No. JP 2008-531324, dated Jul. 12, 2011, 3 pages. |
Office Action for Chinese Patent Application Serial No. 200680033798.3, Apr. 25, 2012, 28 pages. |
Office Action for Chinese Patent Application Serial No. 201110059311.1, dated Oct. 31, 2012, 5 pages. |
Office Action for Chinese Patent Application Serial No. 201110059311.1, dated Feb. 5, 2013, 8 pages. |
Office Action for Japanese Patent Application Serial No. 2011-137416, dated Apr. 16, 2013, 7 pages. |
Office Action for Taiwanese Patent Application Serial No. 095134073, dated Mar. 25, 2013, 12 pages. |
Number | Date | Country | |
---|---|---|---|
20070061897 A1 | Mar 2007 | US |
Number | Date | Country | |
---|---|---|---|
60717347 | Sep 2005 | US |