JP2008530659A - Secure memory card with life cycle phase - Google Patents

Secure memory card with life cycle phase Download PDF

Info

Publication number
JP2008530659A
JP2008530659A JP2007554249A JP2007554249A JP2008530659A JP 2008530659 A JP2008530659 A JP 2008530659A JP 2007554249 A JP2007554249 A JP 2007554249A JP 2007554249 A JP2007554249 A JP 2007554249A JP 2008530659 A JP2008530659 A JP 2008530659A
Authority
JP
Japan
Prior art keywords
card
state
memory
test
memory card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007554249A
Other languages
Japanese (ja)
Other versions
JP4787273B2 (en
Inventor
ホルツマン,マイケル
ボリス コーエン,バルク
バージライ,ロン
バー−エル,ハガイ
ダイッチャー,デーヴィッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/317,862 external-priority patent/US8321686B2/en
Priority claimed from US11/317,390 external-priority patent/US8108691B2/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2008530659A publication Critical patent/JP2008530659A/en
Application granted granted Critical
Publication of JP4787273B2 publication Critical patent/JP4787273B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

暗号化機能を備えたセキュアメモリカードが、複数の状態のある状態においてカードのハードウェアおよびソフトウェアのテストを可能にするさまざまなライフサイクル状態を有する。テスト機構は、複数の状態のうちある他の状態において無効化されるため、セキュアデータおよび暗号鍵への潜在的な抜け穴が閉じられる。抜け穴にアクセスされたとしても、前に暗号化されたデータが復号化できないため、抜け穴が見つけられ、悪意をもって侵入されたとしても、価値がないものとなるように、データの暗号化および復号化に要求される鍵の利用可能性および生成が制御される。  Secure memory cards with encryption capabilities have various lifecycle states that allow testing of the card hardware and software in multiple states. Since the test mechanism is invalidated in some other state of the plurality of states, potential loopholes to secure data and encryption keys are closed. Even if a loophole is accessed, previously encrypted data cannot be decrypted, so data is encrypted and decrypted so that even if a loophole is found and entered maliciously, it is worthless The availability and generation of keys required for

Description

本発明は、一般に、メモリカードおよび暗号化に関し、特に、カードのテスト機構によるセキュアデータおよび鍵へのアクセス排除に関する。   The present invention relates generally to memory cards and encryption, and more particularly to exclusion of access to secure data and keys by a card testing mechanism.

開発からかなりの時が経過した、スマートカードと一般に呼ばれているインテリジェントメモリカードは、身分証明や支払いの形態で市場に受け入れられている。スマートカードは、ユーザの識別データの格納および取引関連データの格納用の少量のメモリを含む。また、スマートカードは、チップと呼ばれることも多く、日本では、国の身分証明書などのさまざまな形態や、クレジットカードやデビットカードのタイプとしてさまざまな場所で採用されている。なりすまし犯罪やその他の金銭上の詐欺を防止するために、カードおよびカードを利用するシステムに、さまざまなチップデザインおよび暗号化方式が採用されてきた。   A considerable amount of time has passed since development, and intelligent memory cards, commonly referred to as smart cards, are accepted by the market in the form of identification and payment. The smart card includes a small amount of memory for storing user identification data and transaction related data. Smart cards are often called chips. In Japan, smart cards are used in various places such as national identity cards and credit cards and debit cards. Various chip designs and encryption schemes have been employed in cards and card-based systems to prevent impersonation crimes and other financial fraud.

任意のタイプのセキュアメモリカードの設計と製造には、2つの競合する利益が存在する。1つの利益は、カードのセキュリティを最大限に高めることであり、もう1つの利益は、カードの信頼性を最大限に高めることである。カードの信頼性を最大限に高めるには、工場からの出荷前に、場合によっては、工場からの出荷後であっても、故障解析を行うために、さまざまな製造段階でカードのソフトウェアおよびハードウェアをテストできることが重要である。カードのハードウェアとソフトウェアの両方をテストするために、チップ上のテストまたはコンタクトパッドに信号を入出力させてテストを行ってもよい。これらのテストルーチンおよびテストパッドは、品質制御を確保する必要があるが、セキュアデータ、アルゴリズム、およびカードの鍵にとって、潜在的な弱点、いわゆる「抜け穴」となる。このように、信頼性の最大化とセキュリティの最大化(に必要なテスト)の間には、ある程度の妥協が常に存在する。テスト完了後、この「抜け穴」を閉じるためのさまざまなアプローチがこれまで提案されてきた。しかし、さまざまな理由から、これまでの解決策にはそれぞれ、商業的および技術的欠点がある。   There are two competing benefits in the design and manufacture of any type of secure memory card. One benefit is to maximize card security, and another benefit is to maximize card reliability. To maximize the reliability of the card, the card software and hardware at various stages of production can be analyzed before failure from the factory, and in some cases even after shipment from the factory, for failure analysis. It is important to be able to test the wear. To test both the hardware and software of the card, the test may be performed by inputting / outputting signals to / from a test on a chip or a contact pad. While these test routines and test pads need to ensure quality control, they are a potential weakness for secure data, algorithms, and card keys, so-called “loopholes”. Thus, there is always some degree of compromise between maximizing reliability and maximizing security (the tests required for). Various approaches have been proposed to close this “loophole” after testing is complete. However, for various reasons, each of the previous solutions has commercial and technical drawbacks.

前述したスマートカードの作製に採用されると考えられる1つのアプローチにおいて、ウェハからメモリダイを個片化する前にカードのダイがテストされる。特定のダイ用のテストパッドは、ウェハの隣接するダイの上に設けられ、個片化プロセスは、テスト後に隣接するダイのすべての回路からテストパッドを切断する。したがって、個片化されたダイの上に存在するあらゆるテストパッドが完全に隔離され、最終メモリカードのセキュアデータへの潜在的な抜け穴として閉じられる。しかし、テストパッドを完全に除去することは、常に実用的なことでも、望ましいことでもない。例えば、使用可能なテストパッドがないと、ある量のハードウェアベースのメモリテストを引き続き行えなくなり、これにより、例えば、潜在的な故障解析方法を制限してしまう。   In one approach that may be employed in the smart card fabrication described above, the card die is tested before the memory die is singulated from the wafer. A test pad for a particular die is provided on the adjacent die of the wafer, and the singulation process cuts the test pad from all circuitry on the adjacent die after testing. Thus, any test pads present on the singulated die are completely isolated and closed as a potential loophole to the secure data on the final memory card. However, complete removal of the test pad is not always practical or desirable. For example, without a usable test pad, a certain amount of hardware-based memory testing cannot continue, which limits, for example, potential failure analysis methods.

このアプローチは、典型的に、身分証明および取引データの保持に必要なメモリを少量しかもたないスマートカードには好ましいこともあるが、写真や音楽などの多数の大きなファイルを格納するのに使用する大容量メモリカードに採用された比較的大量のメモリおよび複雑なセキュリティルーチンをテストするには不十分である。これらの大容量メモリカードのいくつかの例は、コンパクトフラッシュカード、MMCカード、およびSDカードである。デジタルコンテンツの普及と、それに関連する著作権問題により、セキュリティの重要性が高まると同時に、カードのテストおよび信頼性が最も重要であることに変わりはない。セキュアな大容量メモリカードを製造、テスト、および動作させるより包括的かつ柔軟性のあるシステムが必要とされ、以下に説明する本発明によって提供される。   This approach is typically used to store large numbers of large files such as photos and music, although it may be preferable for smart cards that have only a small amount of memory required to hold identification and transaction data It is insufficient to test the relatively large amount of memory and complex security routines employed in high capacity memory cards. Some examples of these large capacity memory cards are compact flash cards, MMC cards, and SD cards. With the proliferation of digital content and the associated copyright issues, the importance of security is increasing, while card testing and reliability remain the most important. There is a need for a more comprehensive and flexible system for manufacturing, testing, and operating secure mass memory cards and is provided by the present invention described below.

別の重要な態様はコストである。不揮発性メモリ、論理、揮発性メモリなどのいくつかの異なる技術が、単一の集積回路ダイ(チップ)上に作製されうる。しかし、1つのダイでさまざまな技術を混在させると、生産コストが著しく増大する。コストが主要な原動力である競合的な環境において、1つのダイに与えられる、異なる技術の数を制限することが非常に望ましい。しかし、複数のダイを使用するということは、つまり、最終製品の1つのダイから別のダイへ機密情報を渡す必要があるということにもなる。これは、適切な予防策を取り入れていなければ、ハッカーが利用できる別の潜在的な弱点となる。   Another important aspect is cost. Several different technologies such as non-volatile memory, logic, volatile memory, etc. can be fabricated on a single integrated circuit die (chip). However, when various technologies are mixed in one die, the production cost is remarkably increased. In competitive environments where cost is a major driving force, it is highly desirable to limit the number of different technologies that can be given to a die. However, using multiple dies also means that confidential information needs to be passed from one die to another in the final product. This is another potential weakness that hackers can take advantage of without proper precautions.

特に、不揮発性メモリビットは、同じダイ内で論理と混在させるには高価である。スマートカードは、スマートカードを実行する論理と同じダイでデータ記憶を目的として不揮発性メモリを採用し、これは、セキュリティを最大限に高める1つの方法である。しかし、今日、本発明から利益を享受するメモリカードは、非常に大きな、音楽、写真、映像、および他のユーザファイルを格納しなければならない。このように、大量の情報(2005年時点で数ギガバイト程度であるが、さらに増大)を格納可能な単一の集積回路ダイメモリカードの製造には法外なコストがかかり、複数のダイを採用するセキュアシステムの開発が必要である。特に、コントローラダイから分離され、アセンブリの前後に十分にテスト可能であるが、テスト機構を経由した攻撃を受けにくい1つ以上のディスクリート(コスト効率の良い)フラッシュメモリダイを利用したセキュアシステム(暗号化および復号化を採用)の作製が非常に望ましい。
米国特許出願第11/284,623号
In particular, non-volatile memory bits are expensive to mix with logic within the same die. Smart cards employ non-volatile memory for data storage on the same die as the logic that implements the smart card, which is one way to maximize security. Today, however, memory cards that benefit from the present invention must store very large music, photos, videos, and other user files. Thus, the production of a single integrated circuit die memory card that can store large amounts of information (a few gigabytes as of 2005, but even more) is prohibitively expensive and employs multiple dies. It is necessary to develop a secure system. In particular, a secure system (encryption) using one or more discrete (cost-effective) flash memory dies that are separated from the controller die and can be fully tested before and after assembly but are less susceptible to attack via the test mechanism Production) is highly desirable.
US Patent Application No. 11 / 284,623

コントローラの機能性と、今日のデジタルデバイスが要求する大容量記憶とを兼ね備えた単一チップを利用することは、過度にコストがかかるとともに、拡張性の点でも問題があるため、代替のシステムが開発されてきた。単一チップの解決策の場合、テスト機構、暗号化鍵、および暗号化されたコンテンツへアクセスしにくくする特有のチップデザインでセキュリティを確保できる。しかし、コンテンツが別個のメモリチップから、暗号化が生じるコントローラチップに渡される複数チップデザインの場合、暗号化鍵と暗号化されたコンテンツへのアクセス保護に特に注意を払わなければならない。さらに、組立て済みのシステムをテストできるように最終アセンブリに(好ましくは)依然としてテストパッドを備えたシステムでは、暗号化鍵およびコンテンツへの不正アクセスへの抜け穴となってしまいかねないソフトウェアおよびハードウェアの任意の機構に特に注意を払わなければならない。   Using a single chip that combines the functionality of a controller with the mass storage required by today's digital devices is overly costly and has scalability issues, so alternative systems Has been developed. In the case of a single chip solution, security can be ensured with a unique chip design that makes it difficult to access the test mechanism, encryption key, and encrypted content. However, in the case of a multi-chip design where content is passed from a separate memory chip to the controller chip where encryption occurs, particular attention must be paid to the encryption key and access protection to the encrypted content. In addition, a system that still has a test pad (preferably) in the final assembly so that the assembled system can be tested can be used as software and hardware that could be a loophole for unauthorized access to encryption keys and content. Special attention must be paid to any mechanism.

本発明は、カードの寿命の間に入り通過する多数のライフサイクルフェーズを有する。フェーズに応じて、カードの論理は、暗号化エンジンを有効または無効にし、(ウェハの個片化およびカードの組み立ての前後での)ハードウェアおよびソフトウェアテスト機構へのアクセスを制御し、鍵生成を制御する。これらのフェーズは、(テストパッドを除去したスマートカードとは異なり)カードのハードウェアとソフトウェアの両方を製造の前後で徹底的にテストできるようになるだけでなく、カードがセキュアフェーズにあるとき、すなわち、カードがユーザに出荷されているときのカードの状態である動作フェーズにあるとき、暗号化された鍵、ひいては、暗号化されたコンテンツへ事実上アクセスできなくする。したがって、本発明により、十分にテスト可能であるが、カード内の保護データへの不正アクセスにも強いメモリカードが提供される。   The present invention has a number of life cycle phases that pass through the lifetime of the card. Depending on the phase, the card logic enables or disables the encryption engine, controls access to hardware and software test mechanisms (before and after wafer singulation and card assembly), and generates keys. Control. These phases (unlike smart cards with the test pad removed) will not only allow thorough testing of both the card hardware and software before and after production, but also when the card is in the secure phase, That is, when in the operational phase, which is the state of the card when it is shipped to the user, the encrypted key and thus the encrypted content is virtually inaccessible. Therefore, the present invention provides a memory card that can be fully tested but is resistant to unauthorized access to protected data in the card.

さらに、セキュアな大容量メモリカードを製造、テスト、および動作させるより包括的かつ柔軟性のあるシステムが必要とされ、以下に説明する本発明により提供される。   Furthermore, there is a need for a more comprehensive and flexible system for manufacturing, testing, and operating secure mass memory cards and is provided by the present invention described below.

本発明のさらなる態様、利点、および特徴は、添付の図面と関連して参照される本発明の例示的な実施例の以下の説明に含まれ、図面において、同じ特徴を説明するために同様の参照番号を使用している。本願明細書において参照したすべての特許、特許出願、論文、および他の刊行物は、あらゆる目的のためにその全体が本願明細書において参照により援用されている。   Additional aspects, advantages, and features of the present invention are included in the following description of exemplary embodiments of the invention, referenced in conjunction with the accompanying drawings, in which like features are used to describe the same features. A reference number is used. All patents, patent applications, articles, and other publications referenced herein are hereby incorporated by reference in their entirety for all purposes.

(メモリシステム構造)
図1Aのブロック図に、本発明のさまざまな態様が実施されてもよい例示的なメモリシステムを示す。図1Aに示されているように、メモリシステム10は、中央演算処理装置(CPU)またはコントローラ12と、バッファ管理ユニット(BMU)14と、ホストインターフェイスモジュール(HIM)16と、フラッシュインターフェイスモジュール(FIM)18と、フラッシュメモリ20と、周辺アクセスモジュール22とを含む。メモリシステム10は、ホストインターフェイスバス26およびポート26aを介してホストデバイス24と通信する。NAND形のものであってもよいフラッシュメモリ20は、ホストデバイス24にデータ記憶装置を提供する。また、CPU12のソフトウェアコードは、フラッシュメモリ20に格納される。FIM18は、フラッシュインターフェイスバス28を介して、場合によっては、フラッシュメモリ20が取り外し可能な構成要素であれば、図に示されていないが、ポートを介してフラッシュメモリ20に接続される。HIM16は、デジタルカメラ、パーソナルコンピュータ、個人用携帯情報端末(PDA)およびMP−3プレイヤ、携帯電話、または他のデジタルデバイスのようなホストシステムとの接続に適している。周辺アクセスモジュール22は、CPU12との通信用のFIM、HIM、およびBMUなどの適切なコントローラモジュールを選択する。1つの実施形態において、点線で四角に囲んだシステム10の構成要素はすべて、メモリカードなどの単一のユニットに封入されてもよく、好ましくは、カードに封入されてもよい。
(Memory system structure)
The block diagram of FIG. 1A illustrates an exemplary memory system in which various aspects of the invention may be implemented. As shown in FIG. 1A, the memory system 10 includes a central processing unit (CPU) or controller 12, a buffer management unit (BMU) 14, a host interface module (HIM) 16, and a flash interface module (FIM). ) 18, a flash memory 20, and a peripheral access module 22. Memory system 10 communicates with host device 24 via host interface bus 26 and port 26a. The flash memory 20, which may be of NAND type, provides the host device 24 with a data storage device. The software code of the CPU 12 is stored in the flash memory 20. The FIM 18 is connected to the flash memory 20 via a flash interface bus 28, but in some cases if the flash memory 20 is a removable component, not shown in the figure. The HIM 16 is suitable for connection to a host system such as a digital camera, personal computer, personal digital assistant (PDA) and MP-3 player, mobile phone, or other digital device. The peripheral access module 22 selects an appropriate controller module such as FIM, HIM, and BMU for communication with the CPU 12. In one embodiment, all components of the system 10 enclosed in a dotted box may be encapsulated in a single unit, such as a memory card, and preferably encapsulated in a card.

バッファ管理ユニット14は、ホストダイレクトメモリアクセスユニット(HDMA)32と、フラッシュダイレクトメモリアクセスユニット(FDMA)34と、アービタ36と、CPUバスアービタ35と、レジスタ33と、バッファランダムアクセスメモリ(BRAM)38と、暗号化エンジン40とも呼ばれる暗号エンジン40とを備える。アービタ36は、1つのみのマスタまたはイニシエータ(HDMA32、FDMA34、またはCPU12でありうる)が、常に活性であり、スレーブまたはターゲットがBRAM38になるような共有バスアービタである。アービタは、BRAM38に適切なイニシエータのリクエストを通す責任を有する。HDMA32およびFDMA34は、HIM16と、FIM18と、BRAM38またはRAM11との間で伝送されるデータに責任を有する。CPUバスアービタ35は、暗号エンジン40およびフラッシュDMA34から、システムバス15を経由して、RAM11へ直接データを転送でき、これは、例えば、暗号エンジンを経由しないことが望ましい場合などの状況下で使用される。HDMA32およびFDMA34の動作は、従来のものであり、本願明細書で詳細に説明しない。BRAM38は、ホストデバイス24とフラッシュメモリ20との間を通るデータを格納するために使用される。HDMA32およびFDMA34は、HIM16/FIM18とBRAM38またはCPU RAM12aとの間でデータを転送したり、セクタの完了を示したりする責任を有する。   The buffer management unit 14 includes a host direct memory access unit (HDMA) 32, a flash direct memory access unit (FDMA) 34, an arbiter 36, a CPU bus arbiter 35, a register 33, and a buffer random access memory (BRAM) 38. And an encryption engine 40 also called an encryption engine 40. Arbiter 36 is a shared bus arbiter in which only one master or initiator (which can be HDMA 32, FDMA 34, or CPU 12) is always active and the slave or target becomes BRAM 38. The arbiter is responsible for passing the appropriate initiator request to the BRAM 38. HDMA 32 and FDMA 34 are responsible for data transmitted between HIM 16, FIM 18, and BRAM 38 or RAM 11. The CPU bus arbiter 35 can transfer data directly from the cryptographic engine 40 and the flash DMA 34 to the RAM 11 via the system bus 15, which is used in situations where it is desirable not to go through the cryptographic engine, for example. The The operation of HDMA 32 and FDMA 34 is conventional and will not be described in detail herein. The BRAM 38 is used to store data passing between the host device 24 and the flash memory 20. The HDMA 32 and FDMA 34 are responsible for transferring data between the HIM 16 / FIM 18 and the BRAM 38 or CPU RAM 12a and indicating the completion of the sector.

フラッシュメモリ20からのデータがホストデバイス24によって読み出されるとき、メモリ20の暗号化データが、バス28、FIM18、FDMA34、および暗号エンジン40を通って取り出され、暗号化データは復号化され、BRAM38に格納される。次いで、復号化されたデータは、BRAM38から、HDMA32、HIM16、バス26を通って、ホストデバイス24に送信される。BRAM38から取り出されたデータは、ホストデバイス24に送信されたデータが再度暗号化されるようにHDMA32に渡される前に暗号エンジン40を用いて再度暗号化されてもよいが、メモリ20に格納されたデータが暗号化されたものと比較して異なった鍵および/またはアルゴリズムを用いて再度暗号化されてもよい。他の形態において、データが不正アクセスに脆弱になる可能性のある前述したプロセスにおいて、BRAM38に復号化データを格納するのではなく、メモリ20からのデータは、BRAM38に送信される前に暗号エンジン40によって再度復号化および暗号化されてもよい。次いで、BRAM38の暗号化データは、前述したように、ホストデバイス24に送信される。これは、読み出しプロセス中のデータストリームを示す。   When data from the flash memory 20 is read by the host device 24, the encrypted data in the memory 20 is retrieved through the bus 28, FIM 18, FDMA 34, and cryptographic engine 40, and the encrypted data is decrypted and stored in the BRAM 38. Stored. The decrypted data is then transmitted from the BRAM 38 to the host device 24 through the HDMA 32, the HIM 16, and the bus 26. The data retrieved from the BRAM 38 may be encrypted again using the cryptographic engine 40 before being passed to the HDMA 32 so that the data sent to the host device 24 is encrypted again, but is stored in the memory 20. The data may be re-encrypted using a different key and / or algorithm compared to the encrypted data. In another form, instead of storing the decrypted data in the BRAM 38 in the process described above where the data may be vulnerable to unauthorized access, the data from the memory 20 is sent to the cryptographic engine before being sent to the BRAM 38. 40 may be decrypted and encrypted again. Next, the encrypted data in the BRAM 38 is transmitted to the host device 24 as described above. This indicates the data stream during the read process.

データがホストデバイス24によってメモリ20に書き込まれると、データストリームの方向が反転する。例えば、暗号化されていないデータが、ホストデバイスによって、バス26、HIM16、HDMA32を通って、暗号エンジン40に送信されれば、このようなデータは、BRAM38に格納される前にエンジン40によって暗号化されてもよい。他の形態において、暗号化されていないデータは、BRAM38に格納されてもよい。次いで、データは、メモリ20へ進む途中でFDMA34に送信される前に暗号化される。   When data is written to the memory 20 by the host device 24, the direction of the data stream is reversed. For example, if unencrypted data is sent by the host device through the bus 26, HIM 16 and HDMA 32 to the cryptographic engine 40, such data is encrypted by the engine 40 before being stored in the BRAM 38. May be used. In other forms, unencrypted data may be stored in the BRAM 38. The data is then encrypted before being sent to FDMA 34 on the way to memory 20.

(ライフサイクルフェーズ)
例えば、前述したもののようなメモリカードに実装される場合に特に有用であるセキュリティシステムまたはセキュアオペレーティングシステムには、異なるフェーズまたは状態がある。これらのフェーズは、1つのフェーズから次へと進んだ後、前のフェーズには再度入ることができないように、連続的に入ることが好ましい。したがって、これらのフェーズは、ライフサイクルフェーズと考えることができる。
(Life cycle phase)
For example, security systems or secure operating systems that are particularly useful when implemented on a memory card such as those described above have different phases or states. These phases are preferably entered continuously after proceeding from one phase to the next so that the previous phase cannot be entered again. Therefore, these phases can be considered life cycle phases.

フェーズについて詳細に説明する前に、別のシステムレベル図について簡単に説明する。図1Bは、システム10の別の実施形態を示す。この図には、簡潔かつ明確に示すために、システム10のある一定の構成要素しか示されていない。メモリシステム10は、ハードウェアテスト入出力(I/O)54とも呼ばれるテストパッドを備える。ハードウェアバス(HWバス)56は、テストパッド54に接続されることが好ましい。これらのテストパッドおよびHWバス56は、システム10のさまざまなハードウェアおよび回路(図示せず)に接続され、システム10のハードウェアおよび回路をテストするために使用される。JTAGバス62は、システムバス15(図1Aに示されている)に接続され、コントローラファームウェアを取り替え、システム10の外側からハードウェアブロックを駆動するために使用できる。これは、レジスタの読み出し/書き込み動作を要求するハードウェアテスト用に使用される。JTAGバス62は、RAMおよびROMにアクセスできるため、システム10のファームウェアをテストするためにも使用される。診断コマンドをシステム10に送信するために、ホストバス26が利用され、システムのファームウェアをテストするためにも使用される。   Before describing the phases in detail, another system level diagram is briefly described. FIG. 1B illustrates another embodiment of the system 10. Only certain components of the system 10 are shown in this figure for the sake of brevity and clarity. The memory system 10 includes a test pad, also referred to as a hardware test input / output (I / O) 54. The hardware bus (HW bus) 56 is preferably connected to the test pad 54. These test pads and HW bus 56 are connected to various hardware and circuitry (not shown) of system 10 and are used to test the hardware and circuitry of system 10. The JTAG bus 62 is connected to the system bus 15 (shown in FIG. 1A) and can be used to replace controller firmware and drive hardware blocks from outside the system 10. This is used for hardware tests that require register read / write operations. The JTAG bus 62 is also used to test the firmware of the system 10 because it has access to RAM and ROM. The host bus 26 is used to send diagnostic commands to the system 10 and is also used to test the system firmware.

また、暗号化エンジン40のNVM50が示されている。NVM50内に格納されているものは、ライフサイクル状態77および秘密鍵99(の値)である。NVMテストポート58は、暗号化エンジン40内のNVMをテストするために使用される。   Also shown is the NVM 50 of the encryption engine 40. What is stored in the NVM 50 is a life cycle state 77 and a secret key 99 (value thereof). NVM test port 58 is used to test the NVM in encryption engine 40.

状態インジケータヒューズ66は、製品が、NVMコンテンツに依存するのではなく、(以下に説明する)NVM状態110にあることを表示するために使用される。その理由は、作製中にNVMに格納された初期値の信頼性を保証できないことが挙げられる。したがって、ヒューズなどの別のより信頼性の高いインジケータが使用される。このシステムは、ヒューズが設定されていれば、状態110にあることを決定する。システム10がリセットされれば、状態を決定するために、NVMライフサイクル状態77を見ることになる。   The status indicator fuse 66 is used to indicate that the product is in an NVM state 110 (described below) rather than relying on NVM content. The reason is that the reliability of the initial value stored in the NVM during production cannot be guaranteed. Therefore, another more reliable indicator such as a fuse is used. The system determines that it is in state 110 if the fuse is set. If the system 10 is reset, it will see the NVM lifecycle state 77 to determine the state.

図2Aは、さまざまな状態と、状態間の遷移の順序を示す。各状態は、図2Bにも再現している以下の表から分かるように、カードの製造の前後のカード(またはカードが実現されるシステム)のさまざまな挙動および能力を既定する。

Figure 2008530659
FIG. 2A shows the various states and the order of transitions between the states. Each state prescribes various behaviors and capabilities of the card (or system in which the card is implemented) before and after card manufacture, as can be seen from the following table, which is also reproduced in FIG. 2B.
Figure 2008530659

状態は、暗号化エンジンの不揮発性メモリ内に、32ビット値として格納されることが好ましい。状態120〜170を表すために使用される大量の可能な(≒109 )の組み合わせから、予め割り当てられた値が6つある。他のすべての値は、状態110を表す。これは、作製、組み立て、テスト、および出荷中のさまざまな処理動作が、メモリに格納された任意の値を変更してしまう可能性があるため、作製中に既定値を確実に格納し、その後に取り出すことが確保できないためである。 The state is preferably stored as a 32-bit value in the non-volatile memory of the encryption engine. From the large number of possible (≈10 9 ) combinations used to represent states 120-170, there are six pre-assigned values. All other values represent state 110. This ensures that the default values are stored during production, since various processing operations during production, assembly, testing, and shipping can alter any value stored in memory, and then This is because it cannot be ensured to be taken out.

また、鍵の値は、暗号化エンジンの不揮発性メモリに、128ビットフィールドとして格納されることが好ましい。鍵の値は、通常、シードアルゴリズムによって、ランダムに生成される。鍵の再生成は、鍵の値を変更してしまう可能性が高いが、(擬似)乱数発生器が、実際、連続して同じ値を発生してしまうこともあるため、これは保証できない。しかし、再生成中に鍵の値が変更されないこともあるということが十分に理解されたものであっても、鍵の変更という用語は、本願明細書において、鍵の再生成という用語と交換可能に使用される。言うまでもなく、情報を暗号化するために使用する鍵の値は重要なものである。同じ鍵の値は、暗号化と復号化の両方で使用されなければならない。このように、鍵の値が、システムの起動時ごとに再生成されれば、起動前に暗号化されたデータは、新しい鍵では復号化できないため、事実上、価値のないものになる。データは、カードのメモリに物理的にまだ存在はするが、ロックを解除するための適切な鍵の値がなければ役に立たない。このように、ハッカーが、どうにかしてカードをセキュア状態150ではない状態に戻そうとしても、価値のある情報を得ることはできない。状態110および160において、起動時ごとに新しい鍵が生成され、状態150において情報をすでに格納するために使用した鍵は、その情報を復号化するために利用することはできない。状態170および110において、暗号化エンジンは、鍵の値に関係なく、単に利用不能である。   The key value is preferably stored as a 128-bit field in the non-volatile memory of the encryption engine. The key value is usually randomly generated by a seed algorithm. Key regeneration is likely to change the key value, but this cannot be guaranteed because the (pseudo) random number generator may actually generate the same value continuously. However, even though it is well understood that the value of a key may not change during regeneration, the term key change is interchangeable with the term key regeneration herein. Used for. Needless to say, the value of the key used to encrypt the information is important. The same key value must be used for both encryption and decryption. In this way, if the key value is regenerated every time the system is activated, the data encrypted before the activation cannot be decrypted with the new key, and thus becomes virtually worthless. The data is still physically present in the card's memory but is useless without the proper key value to unlock it. Thus, even if a hacker manages to return the card to a state other than the secure state 150, valuable information cannot be obtained. In states 110 and 160, a new key is generated at each startup, and the key that was already used to store the information in state 150 cannot be used to decrypt the information. In states 170 and 110, the encryption engine is simply unavailable regardless of the key value.

別のセキュリティ手段は、ファームウェアおよびハードウェアのテスト機構の利用を制限することを含む。このシステムは、この機構を有効化または無効化する論理を備える。前述したホストバスは、カードのファームウェアをテストするために使用される機構の1つである。ホストは、ファームウェアをテストするために、ホストバス上で診断コマンドを発行できる。また、ハードウェアは、これらのコマンドの実行時にテストされてもよい。また、ハードウェアは、JTAGポートとともにハードウェアバス上で直接テストされ、これにより、システムのさまざまなメモリへの直接アクセスが得られる。状態140および150において、NVMテスト機構、HWテスト機構、およびFWテスト機構がすべて無効化されていることに留意されたい。   Another security measure includes limiting the use of firmware and hardware test mechanisms. The system includes logic to enable or disable this mechanism. The host bus described above is one of the mechanisms used to test the card firmware. The host can issue diagnostic commands on the host bus to test the firmware. The hardware may also be tested when these commands are executed. The hardware is also tested directly on the hardware bus along with the JTAG port, which provides direct access to the various memories of the system. Note that in states 140 and 150, the NVM test mechanism, the HW test mechanism, and the FW test mechanism are all disabled.

以下、図2Aに示されているような状態および状態間の推移について、さらに詳細に説明する。   Hereinafter, the state and transition between states as shown in FIG. 2A will be described in more detail.

状態110は、コントローラの不揮発性メモリ(NVM)テストと呼ばれる。この状態は、メモリダイを作製した後の初期状態であり、ダイがメモリカードにパッケージ化され実装される前にコントローラダイの不揮発性メモリをテストするために使用される状態である。この状態で行われるテストは、ダイがウェハフォーマットと一体にある間の個片化前に実行されてもよく、または、他の形態において、個片化後に個々のダイに実行されてもよい。NVMがテストされると、そのコンテンツ(NVMテスタを使用)は、状態120を表示するために初期化され、ヒューズ66が飛ばされる。この状態で、暗号化エンジン40は無効化される。この状態には、カードのライフサイクルにおいて一度入るようにしか設計されておらず、システム内に、この状態に戻るための方法はない。しかし、前述したように、この状態は、ライフサイクル状態を既定するために使用される32ビット値の多数の可能な組み合わせの6つの予め割り当てられた値以外のもので表示される。不正値が検出され、ヒューズが飛ばされれば(NVM状態110にはいることができない)、暗号エンジンは、準備が整った状態にならず、システムが立ち上がらないか、または、図3を参照して以下に説明するステップ302を越えて進む。したがって、カードが起動され、この状態になるたびに、新しい鍵がランダムに生成され、すでに暗号化されたデータの復号化は不能である。暗号化エンジンが、このモードにおいて有効化されなくても、このモードが、作製中にウェハが完全な状態のままである間に使用されるように設計されているため、何らかの想定外の方法でこの状態に入り込み、さまざまなテストポートおよび機構を経由してカードのセキュアデータを探ろうとしているハッカーから保護するために、鍵は起動時ごとに再生成される。他の方法では、デザインによって、既存の状態110の後、NVMテスト機構は利用可能でなくなる。   State 110 is referred to as a non-volatile memory (NVM) test of the controller. This state is the initial state after the memory die is fabricated and is the state used to test the non-volatile memory of the controller die before the die is packaged and mounted on the memory card. Tests performed in this state may be performed before singulation while the dies are integral with the wafer format, or in other forms may be performed on individual dies after singulation. When the NVM is tested, its content (using the NVM tester) is initialized to display the status 120 and the fuse 66 is blown. In this state, the encryption engine 40 is invalidated. This state is designed to be entered only once in the card life cycle, and there is no way in the system to return to this state. However, as described above, this state is displayed with something other than the six pre-assigned values of the many possible combinations of 32-bit values used to define the life cycle state. If an illegal value is detected and the fuse is blown (cannot enter NVM state 110), the crypto engine will not be ready and the system will not boot or see FIG. The process proceeds beyond step 302 described below. Therefore, each time the card is activated and enters this state, a new key is randomly generated and the already encrypted data cannot be decrypted. Even if the encryption engine is not enabled in this mode, this mode is designed to be used while the wafer remains intact during fabrication, so in some unexpected way To protect against hackers trying to enter this state and seek out the card's secure data via various test ports and mechanisms, the key is regenerated at each startup. Otherwise, by design, the NVM test mechanism is not available after the existing state 110.

状態120は一定の有効化状態と呼ばれる。この状態において、暗号化エンジン40は有効化される。暗号化エンジンが使用する鍵は、乱数発生器によって生成されず、メモリに格納されないが、何らかの外部ソースに配線接続され、このフェーズ中、一定である。ハードウェアおよびソフトウェアテスト機構は、この状態において利用可能である。この状態には、ハードウェアテスタによって入る。   State 120 is called a certain validation state. In this state, the encryption engine 40 is activated. The key used by the encryption engine is not generated by a random number generator and stored in memory, but is wired to some external source and is constant during this phase. Hardware and software test mechanisms are available in this state. This state is entered by a hardware tester.

状態130は、ランダム有効化状態と呼ばれる。この状態は、状態120に類似しているが、秘密鍵は、状態130に入るとき、一定であり配線接続される代わりに、ランダム生成される(一度)。これは、メモリカードの最終テスト、特徴化、および資格付与用に使用される状態である。暗号化および復号化を含む暗号動作は、秘密鍵または秘密鍵から導き出される鍵を使用したファームウェアを用いて可能である。この状態には、ホストデバイス24によってシステム10内にロードされた後、システム10によって実行されるコードによって入る。   State 130 is referred to as a random activation state. This state is similar to state 120, but the secret key is generated randomly (once) instead of being fixed and wired when entering state 130. This is the state used for final testing, characterization and qualification of memory cards. Cryptographic operations including encryption and decryption are possible with firmware using a secret key or a key derived from the secret key. This state is entered by code executed by the system 10 after being loaded into the system 10 by the host device 24.

状態140は、最終鍵状態と呼ばれる。この状態において、カードは、カードが出荷される最終秘密鍵を使用する。ハードウェアおよびソフトウェアテスト機構は、カード論理によって無効化され、アクセス不能である。これは、図1Bに示されているように、ハードウェアテストバスおよびテストパッドを含む。この状態は、製品の出荷時に使う鍵で保護される必要がある最終ファームウェアおよびコンフィギュレーションデータをカードにロードするために使用される。製品は、この状態において構成可能であるが、状態150ではできない。この状態には、ホストコマンドによって入る。コマンドは、ホストからダウンロードされ、カードによって実行されるコード(「DLEコード」)に含まれてもよい。コマンドは、他の形態において、ホストから直接発行されてもよい。これは、以下でDLEコードという用語を利用するときは常に当てはまる。   State 140 is called the final key state. In this state, the card uses the final secret key from which the card is shipped. The hardware and software test mechanism is disabled by the card logic and is inaccessible. This includes a hardware test bus and a test pad, as shown in FIG. 1B. This state is used to load the final firmware and configuration data that needs to be protected with the key used at the time of product shipment to the card. The product can be configured in this state, but not in state 150. This state is entered by a host command. The commands may be included in code (“DLE code”) downloaded from the host and executed by the card. The command may be issued directly from the host in other forms. This is always the case when the term DLE code is used below.

状態150は、セキュア状態と呼ばれる。これは、工場からカードが出荷される状態である。ハードウェアおよびソフトウェアテスト機構は、カード論理によって無効化され、アクセス不能である。この状態には、製造現場での製品のテストおよびコンフィギュレーションの最後に入る。鍵は再生成されず、状態140中にメモリに格納された値が、状態150の間利用される。カードのさまざまな動作に派生的な鍵を利用してもよいが、鍵99は、これらの鍵を導き出し、データを暗号化および復号化するのに常に必要なものである。この鍵は、セキュアカードの寿命の間(セキュアカードとして顧客の手にある間、その後は含まず)利用されることを意味する。カードのファームウェアは任意の動作に対して秘密鍵を使用することができない。カード内におけるすべての暗号化および復号化を実行する責任があるのは、暗号化エンジンのハードウェアである。この状態には、DLEコードによって入る。   State 150 is called a secure state. This is a state where the card is shipped from the factory. The hardware and software test mechanism is disabled by the card logic and is inaccessible. This state is entered at the end of product testing and configuration at the manufacturing site. The key is not regenerated and the value stored in memory during state 140 is used during state 150. Derived keys may be used for various operations of the card, but key 99 is always necessary to derive these keys and to encrypt and decrypt data. This key means that it will be used for the lifetime of the secure card (while it is in the customer's hand as a secure card and not included thereafter). The card firmware cannot use the private key for any operation. It is the encryption engine hardware that is responsible for performing all encryption and decryption within the card. This state is entered by a DLE code.

状態160は、返品認可またはRMA状態と呼ばれる。この状態は、適切に作動しないという理由で消費者によって返品されたカードをテストできるように設計される。これは、カードの故障解析を実行可能な状態である。ソフトウェアおよびハードウェアテスト機構が再度利用可能である。この状態が、工場によってのみアクセス可能であることに留意することが重要である。さらに、RMA状態に入った後は、セキュアカードとして再度カードを使用することができない。言い換えれば、カードは、状態150に再度入ることはできず、あるいは、他の点では、カードにある情報を復号化したり、またはカードに暗号化情報を保存したりするために使用することもできない。秘密鍵は、このモードに入るときと、カードがこの状態にある間に実行されるチップリセットごとの間に再生成される。復号化に暗号鍵を使用する動作は、起動時のみ有効化され、ファームウェアは、任意の動作に秘密鍵を使用することができない。この状態には、ホストコマンドの結果であるROMコードによって入る。   State 160 is referred to as a return authorization or RMA state. This condition is designed to allow testing of cards returned by consumers because they do not work properly. This is a state where the failure analysis of the card can be executed. Software and hardware test mechanisms are available again. It is important to note that this state is accessible only by the factory. Furthermore, after entering the RMA state, the card cannot be used again as a secure card. In other words, the card cannot re-enter state 150, or otherwise cannot be used to decrypt information on the card or store encrypted information on the card. . The private key is regenerated when entering this mode and between chip resets performed while the card is in this state. The operation that uses the encryption key for decryption is enabled only at startup, and the firmware cannot use the secret key for any operation. This state is entered by the ROM code that is the result of the host command.

状態170は、無効化状態と呼ばれる。無効化状態において、暗号エンジン40は、暗号機能のすべてを無効化したバイパスモードにある。カード内では、非セキュアアルゴリズムのみが使用される。ハードウェアおよびソフトウェアテスト機構は、暗号化エンジンがなければ、侵入する価値も、改竄する価値もないため、再度有効化される。任意の暗号化情報が復号化できず、無価値にされる。また、暗号化され、引き続き復号化されてもよい追加情報がない。この状態は、非セキュアまたは「レギュラー」カードを生産するために使用されてもよい。このようにして、同じシステムが、セキュアおよび非セキュアメモリカードの両方を生産するために使用できる。その違いは、非セキュアカードにおいて、カードのセキュリティシステムが無効化状態にあるとか、またはカードが、より一般に、状態170にあるとか言われることである。また、無効化状態は、故障解析用に工場に戻され、したがって、RMA状態160にされた製品を再出荷するために使用できる。前述したように、カードは、RMA状態160に入った後、それよりも前の状態のいずれにも戻ることはできず、セキュアカードとして再販することができない場合もある。しかし、機能できるか、または工場で再度機能できるようにしたカードが、無効化状態170に置かれ、非セキュアカードとして再販することもできる。このようにして、カードは回収でき、あらゆる集約的な目的で、新しい非セキュアまたは「レギュラー」カードと同じものとなる。回収された非セキュアカードと、新しい非セキュアカードの両方は、同じ状態で同じファームウェアを走らせることになる。   State 170 is referred to as an invalidation state. In the disabled state, the cryptographic engine 40 is in a bypass mode in which all of the cryptographic functions are disabled. Only non-secure algorithms are used in the card. Hardware and software test mechanisms are re-enabled without an encryption engine, because they are not worth intrusion or tampering with. Arbitrary encrypted information cannot be decrypted and is made worthless. Also, there is no additional information that may be encrypted and subsequently decrypted. This state may be used to produce a non-secure or “regular” card. In this way, the same system can be used to produce both secure and non-secure memory cards. The difference is that in a non-secure card, it is said that the card's security system is in a disabled state or that the card is more generally in state 170. The invalidation state is also returned to the factory for failure analysis and can therefore be used to re-ship the product that has been placed into the RMA state 160. As described above, after entering the RMA state 160, the card cannot return to any of the previous states and may not be resold as a secure card. However, a card that can function or can be re-functioned at the factory can be placed in the disabled state 170 and resold as a non-secure card. In this way, the card can be collected and becomes the same as a new non-secure or “regular” card for any intensive purpose. Both the recovered non-secure card and the new non-secure card will run the same firmware in the same state.

現在、圧倒的多数のカードは、非セキュアカードである。主に、コンテンツプロバイダの需要により、セキュアカードを市場に広めようとする動きが高まっているが、セキュアカードと非セキュアカードとの間での将来的なメモリカードの販売パーセンテージがどのようになるかは明確ではない。明確なことは、多数の非セキュアコンテンツが常にあり、したがって、非セキュアカードの需要があると予想されることである。本発明は、(許可された人によってのみ)セキュアカードのハードウェアおよびソフトウェアのすべてをテスト可能にするだけではなく、さまざまな非セキュア用の返品されたセキュアカードを回収することもできる。さらに、本発明のシステムにより、堅牢なセキュリティを備えているが、故障解析を実行するために、廃棄する必要もなく、またはセキュリティシステムを妥協する必要もないカードが得られる(アクセス可能な「抜け穴」に関して)。メモリカードを使用するデバイスが一般に普及していくことを考慮すれば、欠陥のあるセキュアカードとなったものを回収できることは、消費者にとっても、製造業者にとっても同様に多大な利益となる。   Currently, the vast majority of cards are non-secure cards. Mainly due to demand from content providers, there is a growing movement to spread secure cards to the market, but what will be the future memory card sales percentage between secure and non-secure cards Is not clear. What is clear is that there is always a large number of non-secure content and therefore it is expected that there will be a demand for non-secure cards. The present invention not only allows all of the secure card hardware and software to be tested (by an authorized person only), but can also recover a variety of returned secure cards for non-secure use. In addition, the system of the present invention provides a card that has robust security but does not need to be discarded or compromised in order to perform failure analysis (accessible “loophole”). "). Considering that devices that use memory cards are becoming more popular, the ability to recover a defective secure card is a tremendous benefit for consumers and manufacturers alike.

図3は、前述したシステムを実行するメモリカード用の起動プロセスを示す。起動プロセスのさらなる情報に関しては、ミッキー・ホルツマンらによる同時係属出願中の米国特許出願第11/284,623号「メモリコントローラファームウェアのハードウェアドライバの完全性チェック方法」(代理人整理番号SNDK.408US1)(特許文献1)を参照されたい。この特許出願は、その全体が本願明細書において参照により援用されている。   FIG. 3 shows a boot process for a memory card that executes the system described above. For further information on the boot process, see Mickey Holtzman et al., Co-pending U.S. Patent Application No. 11 / 284,623, “How to Check Memory Driver Firmware Hardware Driver Integrity” (Attorney Docket No. SNDK.408US1). ) (Patent Document 1). This patent application is incorporated herein by reference in its entirety.

ステップ302において、システムは、暗号エンジン40および他の構成要素を含む暗号ハードウェアの準備が整っているかをチェックする。このシステムは、ハードウェアの準備が整うまで進行を待機する。ハードウェアの準備が整うと、システムは、ステップ304に進む。ステップ304において、システムは、カードが状態170、すなわち、無効化状態にあるかを確認するチェックを行う。カードが状態170にあれば、ステップ306において、システムは、フラッシュメモリ20からRAM11へ、最小量の始動コードである起動ローダ(「BLR」)をアップロードする。次に、ステップ308において、システムは、BLRが適切にアップロードされたかを確認するチェックを行う。アップロードされていれば、ステップ310において、システムは、非セキュアモードで走らせる必要のあるファームウェアをアップロードする(標準ファームウェアから暗号機能をなくす)。ステップ308において決定したように、BLRが適切にアップロードされていなければ、システムは、以下に説明するステップ324に進む。   In step 302, the system checks whether the cryptographic hardware including the cryptographic engine 40 and other components is ready. The system waits for progress until the hardware is ready. When the hardware is ready, the system proceeds to step 304. In step 304, the system checks to see if the card is in state 170, i.e., the disabled state. If the card is in state 170, in step 306, the system uploads the boot loader (“BLR”), which is the minimum amount of start code, from flash memory 20 to RAM 11. Next, in step 308, the system checks to see if the BLR has been properly uploaded. If so, in step 310, the system uploads the firmware that needs to be run in non-secure mode (removing the cryptographic function from the standard firmware). As determined in step 308, if the BLR has not been uploaded properly, the system proceeds to step 324 described below.

ステップ304において、システムが、カードが状態170にないと決定すれば、システムは、ステップ312において、RAMコンテンツをクリアする。その後、システムは、ステップ314においてカードがどの状態にあるかを確認するチェックを再度行う。カードが状態120、130、または140にあれば、BLRは、ステップ316においてアップロードされる。ステップ318において、システムは、BLRが適切にアップロードされたかを確認するチェックを行う。次に、ステップ320において、BLRコードの完全性チェックが実行される。この完全性チェックは、メッセージ認証コード(MAC)値を計算し、その値を参照値と比較することによって実行されるハードウェアベースのチェックである。完全性チェックの結果は、メモリに格納された単純なフラグである。ステップ322において、ファームウェアは、完全性がベリファイされたか否かを確認するためにフラグをチェックする。完全性が承認されれば、システムは、ステップ342において、セキュアモードで走らせるのに必要なファームウェアをアップロードし、これにより、非セキュアデータを格納し取り出せることができることは言うまでもない。完全性が、ステップ322において決定されるように承認されなければ、システムは、ステップ324によって現されているように、ホストからのある命令をダウンロードし実行するために、ホストからの診断コマンド(DLEコマンド)を待機する。ステップ326から分かるように、DLEコマンドが受信されれば、システムは、ステップ328において、DLEコードをRAMにロードするために進む。ステップ330において、DLEコードは、コントローラによって実行される。   If, at step 304, the system determines that the card is not in state 170, the system clears the RAM content at step 312. Thereafter, the system performs a check again in step 314 to confirm which state the card is in. If the card is in state 120, 130, or 140, the BLR is uploaded in step 316. In step 318, the system checks to see if the BLR has been uploaded properly. Next, in step 320, a BLR code integrity check is performed. This integrity check is a hardware-based check that is performed by calculating a message authentication code (MAC) value and comparing that value to a reference value. The result of the integrity check is a simple flag stored in memory. In step 322, the firmware checks the flag to see if the integrity has been verified. If integrity is approved, it will be appreciated that the system can upload the firmware necessary to run in secure mode in step 342, thereby storing and retrieving non-secure data. If the integrity is not approved as determined in step 322, the system will use a diagnostic command (DLE) from the host to download and execute certain instructions from the host, as represented by step 324. Command). As can be seen from step 326, if a DLE command is received, the system proceeds to load the DLE code into RAM at step 328. In step 330, the DLE code is executed by the controller.

ステップ314において、カードが状態120、130、または140にないことが決定されれば、システムは、ステップ332において、カードが状態150にあるかを確認するチェックを行う。この状態にあれば、システムは、ステップ334において、BLRをアップロードする。これは、ROMコードによって行われる。ステップ336で決定されるように、BLRのアップロードが承認されれば、ステップ338において、ステップ320において前述したようなハードウェアベースの完全性チェックが実行される。このハードウェアベースの完全性チェックの後、ステップ340において、別の完全性チェック、この場合は、ソフトウェアベースの完全性チェックが実行される。完全性が承認されれば、システムは、ステップ342において、セキュアモードにおいて走らせる必要のあるファームウェアをアップロードし、これにより、非セキュアデータを格納し取り出すことができることは言うまでもない。   If in step 314 it is determined that the card is not in state 120, 130, or 140, the system checks in step 332 to see if the card is in state 150. If so, the system uploads the BLR at step 334. This is done by ROM code. If the BLR upload is approved, as determined at step 336, at step 338, a hardware-based integrity check as described above at step 320 is performed. After this hardware-based integrity check, at step 340, another integrity check, in this case a software-based integrity check, is performed. If integrity is approved, it will be appreciated that the system can upload firmware that needs to be run in secure mode at step 342, thereby storing and retrieving non-secure data.

ステップ332において、カードが状態150にないことが決定されれば、システムは、カードの状態およびカードが状態160にあるかをチェックし、この状態にあれば、システムは、ステップ348によって表される診断コマンドを待機する。しかし、ステップ344において、カードが状態160にないことが決定されれば、システムは、ステップ346から分かるように、RMA状態160に進むためのコマンドを待機する。   If it is determined in step 332 that the card is not in state 150, the system checks the status of the card and whether the card is in state 160, and if so, the system is represented by step 348. Wait for a diagnostic command. However, if it is determined in step 344 that the card is not in state 160, the system waits for a command to proceed to RMA state 160, as can be seen from step 346.

本発明の1つの実施形態によるシステム10の概略図である。1 is a schematic diagram of a system 10 according to one embodiment of the invention. システム10の別の実施形態の概略図である。FIG. 2 is a schematic diagram of another embodiment of system 10. 本発明の1つの実施形態におけるさまざまなライフサイクルフェーズを示すフローチャートである。Figure 5 is a flow chart illustrating various life cycle phases in one embodiment of the present invention. さまざまなライフサイクルフェーズの表である。Table of various life cycle phases. 立ち上げプロセスおよびライフサイクルフェーズを示すフローチャートである。It is a flowchart which shows a starting process and a life cycle phase.

Claims (40)

メモリカードの製造方法において、
メモリダイにテストポートを設けるステップと、
セキュリティシステムを設けるステップであって、
暗号エンジンと、
暗号鍵と、
前記テストポートがハードウェアテスト用に利用可能であり、前記暗号エンジンの動作および前記メモリカードのソフトウェアのテストを有効化するソフトウェアテストルーチンが利用可能であるテスト状態と、
前記テストポートが利用不能であり、前記ソフトウェアテストルーチンが利用不能である動作状態と、を含むセキュリティシステムを設けるステップと、
前記テスト状態を利用することによって、前記メモリカードのソフトウェアをテストするステップと、
前記テスト状態から前記動作状態に前記カードを不可逆的に切り替えるコマンドを、ホストから前記カードへ提供するステップと、
を含む方法。
In the method of manufacturing a memory card,
Providing a test port on the memory die; and
A step of providing a security system,
A crypto engine,
An encryption key,
A test state in which the test port is available for hardware testing and a software test routine is available that enables operation of the cryptographic engine and software testing of the memory card;
Providing a security system comprising: an operating state in which the test port is unavailable and the software test routine is unavailable;
Testing the memory card software by utilizing the test state;
Providing a command from the host to the card to irreversibly switch the card from the test state to the operational state;
Including methods.
テストパッドを有する不揮発性メモリダイを含むメモリカードの機能性をテストする方法において、
任意のファームウェアがメモリダイにロードされる前、および前記メモリカードの一部になる前に、前記メモリダイをテストするステップと、
前記メモリダイの前記メモリに前記ファームウェアをロードするステップと、
前記メモリカードのハードウェアおよびソフトウェアのテストを可能にする第1のフェーズに、前記カードのフェーズを変更するステップと、
その後、前記メモリカードのハードウェアおよびソフトウェアをテストするステップと、
その後、前記メモリカードのハードウェアおよびソフトウェアのテストを不能にする第2のフェーズに、前記カードのフェーズを変更するステップと、
を含む方法。
In a method for testing functionality of a memory card including a non-volatile memory die having a test pad,
Testing the memory die before any firmware is loaded into the memory die and before becoming part of the memory card;
Loading the firmware into the memory of the memory die;
Changing the phase of the card to a first phase that allows testing of the hardware and software of the memory card;
Then testing the memory card hardware and software;
Then changing the phase of the card to a second phase that disables hardware and software testing of the memory card;
Including methods.
請求項2記載の方法において、
前記ダイが前記カードに実装されるとき、前記テストパッドが、前記メモリダイ上に存在したままである方法。
The method of claim 2, wherein
The method wherein the test pad remains on the memory die when the die is mounted on the card.
請求項2記載の方法において、
前記カードの故障後、故障解析を目的として前記メモリカードのソフトウェアおよびハードウェアのテストを可能にするフェーズに、前記カードのフェーズを変更するステップをさらに含み、前記フェーズに入った後、前記メモリカードが、前記フェーズに入る前に暗号化されたデータを復号化することができない方法。
The method of claim 2, wherein
After the failure of the card, the method further includes the step of changing the phase of the card into a phase that enables testing of the memory card software and hardware for the purpose of failure analysis, and after entering the phase, the memory card Can not decrypt the encrypted data before entering the phase.
請求項2記載の方法において、
前記フェーズのインジケータが、前記コントローラチップの不揮発性メモリに格納される方法。
The method of claim 2, wherein
The method wherein the phase indicator is stored in a non-volatile memory of the controller chip.
請求項2記載の方法において、
前記第2のフェーズにおいて、信号が、前記テストパッドに転送されず、前記テストパッドから転送されない方法。
The method of claim 2, wherein
In the second phase, no signal is transferred to and from the test pad.
メモリカードでのデータのセキュア記憶装置を設ける方法において、
前記メモリカード内にフラッシュメモリを設けるステップと、
前記フラッシュメモリに格納されたデータを暗号化および復号化する暗号化エンジンをコントローラチップに設けるステップと、
前記コントローラチップの不揮発性メモリ内に鍵を格納するステップと、
前記カードのデータファイルのユーザを、前記フラッシュメモリチップに前記ファイルが格納される前に、前記鍵で暗号化するステップと、
前記フラッシュメモリに前記暗号化されたデータファイルを格納するステップと、
カードテスト機構の使用が望ましければ、前記暗号化されたファイルを復号化できないように前記鍵の値を再生成するステップと、
を含む方法。
In a method of providing a secure storage device for data in a memory card,
Providing a flash memory in the memory card;
Providing a controller chip with an encryption engine for encrypting and decrypting data stored in the flash memory;
Storing a key in a non-volatile memory of the controller chip;
Encrypting a user of the data file of the card with the key before the file is stored in the flash memory chip;
Storing the encrypted data file in the flash memory;
Regenerating the key value so that the encrypted file cannot be decrypted if it is desired to use a card test mechanism;
Including methods.
セキュアカードまたはレギュラーカードのいずれかとして動作可能なメモリカードに実現されるセキュリティシステムにおいて、
前記カードに格納された情報を保護するために、情報を暗号化および復号化する暗号エンジンと、
前記暗号化および復号化用に使用される前記カードにある秘密鍵と、
テスト状態であって、
前記暗号化エンジンが有効化され、
テスト状態に入ると、前記秘密鍵が生成され、
前記カードのファームウェアがテストされてもよく、
前記カードのハードウェアがテストされてもよい、テスト状態と、
セキュア動作状態であって、
前記カードのファームウェアがテスト不能であり、
前記カードのハードウェアがテスト不能であり、
前記暗号化エンジンが有効化され、
情報を暗号化および復号化するために、前記秘密鍵が前記暗号化エンジンによって使用される、セキュア動作状態と、
バイパス動作状態であって、
前記暗号化エンジンが無効化され、
前記カードのハードウェアがテスト可能であり、
前記カードのファームウェアがテスト可能であり、
レギュラーカードとして動作していれば、バイパス動作状態が使用される、バイパス動作状態と、
を備えるシステム。
In a security system implemented in a memory card that can operate as either a secure card or a regular card,
A cryptographic engine that encrypts and decrypts information to protect the information stored on the card;
A secret key on the card used for the encryption and decryption; and
In a test state,
The encryption engine is activated,
When entering the test state, the secret key is generated,
The card firmware may be tested,
A test state in which the hardware of the card may be tested;
A secure operating state,
The card firmware is untestable,
The hardware of the card is untestable,
The encryption engine is activated,
A secure operating state in which the secret key is used by the encryption engine to encrypt and decrypt information;
In the bypass operation state,
The encryption engine is disabled,
The hardware of the card is testable;
The card firmware is testable,
If operating as a regular card, the bypass operating state is used,
A system comprising:
請求項8記載のシステムにおいて、
前記カードが、前記バイパス動作状態に構成された非セキュアカードとして最初に販売されるシステム。
The system of claim 8, wherein
A system in which the card is initially sold as a non-secure card configured in the bypass operational state.
請求項8記載のシステムにおいて、
前記カードが、前記セキュア動作状態に構成されたセキュアカードとして最初に販売されるシステム。
The system of claim 8, wherein
A system in which the card is initially sold as a secure card configured in the secure operating state.
請求項10記載のシステムにおいて、
セキュアカードとして最初に販売された前記カードが、製造業者に返品されると、前記バイパス動作状態にされるシステム。
The system of claim 10, wherein
A system that is placed in the bypass operation state when the card that was originally sold as a secure card is returned to the manufacturer.
請求項11記載のシステムにおいて、
前記バイパス状態にされた後、前記カードが非セキュアカードとして販売されるシステム。
The system of claim 11, wherein
A system in which the card is sold as a non-secure card after being placed in the bypass state.
請求項8記載のシステムにおいて、
前記暗号化エンジンが、ハードウェアベースのものであるシステム。
The system of claim 8, wherein
A system in which the encryption engine is hardware based.
請求項8記載のシステムにおいて、
前記秘密鍵が、前記暗号化エンジンの不揮発性メモリに格納されるシステム。
The system of claim 8, wherein
A system in which the secret key is stored in a non-volatile memory of the encryption engine.
請求項8記載のシステムにおいて、
前記カードのハードウェアがテスト可能であり、
前記カードのファームウェアがテスト可能であり、
故障解析状態において前記システムが起動されるたびに、前記秘密鍵が再生成される、故障解析動作状態をさらに含むシステム。
The system of claim 8, wherein
The hardware of the card is testable;
The card firmware is testable,
A system further comprising a failure analysis operating state, wherein the secret key is regenerated each time the system is activated in a failure analysis state.
請求項15記載のシステムにおいて、
前記故障解析動作状態に入った後、前記カードを前記セキュア動作状態で再度使用することができないシステム。
The system of claim 15, wherein
A system in which the card cannot be used again in the secure operation state after entering the failure analysis operation state.
請求項16記載のシステムにおいて、
前記故障解析動作状態が、前記バイパス状態に入る前に作動されるシステム。
The system of claim 16, wherein
A system that is activated before the failure analysis operating state enters the bypass state.
ファームウェアを有するメモリカードをテストするシステムにおいて、
集積回路ダイ上のテストポートと、
ファームウェアにあるテスト機構と、
セキュリティシステムと、を備え、前記セキュリティシステムが、
暗号エンジンと、
前記テストポートおよび前記ファームウェアにある前記テスト機構の使用を可能にする、前記カードのテスト中に利用可能な動作の1つ以上のテスト状態と、
前記テストポートおよび前記ファームウェアにある前記テスト機構の使用を禁止する、前記カードの通常使用中に利用可能な動作のセキュア状態と、
前記1つ以上のテスト状態のテスト状態と前記セキュア状態との間を切り替えるための論理であって、前記カードが前記セキュア状態に切り替えられると、前記1つ以上のテスト状態に再度アクセスすることはできず、前記ファームウェアにある前記テスト機構および前記テストポートへのアクセスを防ぐことによって、前記カード上のセキュアデータへのアクセスを禁止する、論理と、
を備えるシステム。
In a system for testing a memory card having firmware,
A test port on the integrated circuit die; and
A test mechanism in the firmware;
A security system, the security system comprising:
A crypto engine,
One or more test states of operations available during testing of the card that allow use of the test mechanism in the test port and the firmware;
A secure state of operation available during normal use of the card that prohibits the use of the test mechanism in the test port and the firmware;
Logic for switching between the test state of the one or more test states and the secure state, wherein when the card is switched to the secure state, accessing the one or more test states again Logic that prohibits access to secure data on the card by preventing access to the test mechanism and the test port in the firmware,
A system comprising:
請求項18記載のシステムにおいて、
前記セキュリティシステムが、バイパス動作状態をさらに含み、前記暗号エンジンが無効化されるシステム。
The system of claim 18, wherein
The system wherein the security system further includes a bypass operating state and the cryptographic engine is disabled.
請求項19記載のシステムにおいて、
前記バイパス状態が、非セキュアメモリカードを生産するために使用されるシステム。
The system of claim 19, wherein
A system in which the bypass condition is used to produce a non-secure memory card.
請求項19記載のシステムにおいて、
前記バイパス状態が、セキュアカードが点検用に返品されたときに作動されることで、前記セキュアカードを非セキュアカードに変形し、さらに使用するために前記カードを回収するシステム。
The system of claim 19, wherein
The bypass state is activated when the secure card is returned for inspection, thereby transforming the secure card into a non-secure card and collecting the card for further use.
請求項21記載のシステムにおいて、
変形後、前記非セキュアカードをセキュア状態で再度使用することができないシステム。
The system of claim 21, wherein
A system in which the non-secure card cannot be used again in a secure state after transformation.
請求項19記載のシステムにおいて、
故障解析状態をさらに備え、データを暗号化および復号化するために使用する新しい鍵が、起動時ごとに生成され、ある鍵で暗号化されたデータを、別の鍵で復号化することができないシステム。
The system of claim 19, wherein
A new key used for encrypting and decrypting data is also provided with a failure analysis state and is generated at startup, and data encrypted with one key cannot be decrypted with another key system.
請求項23記載のシステムにおいて、
前記バイパス状態に入る前に、前記故障解析状態に入るシステム。
24. The system of claim 23.
A system that enters the failure analysis state before entering the bypass state.
請求項18記載のシステムにおいて、
前記セキュア状態において使用される最終ファームウェアを前記カードにロードするように使用される最終鍵状態をさらに備え、前記ファームウェアにある前記テスト機構は、前記最終鍵状態において無効化されるシステム。
The system of claim 18, wherein
A system further comprising a final key state used to load final card used in the secure state into the card, wherein the test mechanism in the firmware is revoked in the final key state.
請求項25記載のシステムにおいて、
前記最終鍵状態において、前記テストポートとの通信が利用不能であるシステム。
The system of claim 25.
A system in which communication with the test port is not available in the final key state.
メモリカードにおいて、
セキュアカードまたは非セキュアカードのいずれかを生産するために使用可能な前記メモリカードに実現されるセキュリティシステムと、
前記カードに格納された情報を保護するために、情報を暗号化および復号化するように設計された暗号エンジンと、
テスト状態であって、
前記暗号化エンジンが有効化され、
前記カードのファームウェアがテストされてもよく、
前記カードのハードウェアがテストされてもよい、テスト状態と、
セキュア動作状態であって、
前記カードのファームウェアがテスト不能であり、
前記カードのハードウェアがテスト不能であり、
前記暗号化エンジンが有効化される、セキュア動作状態と、
前記暗号化エンジンが無効化されるバイパス動作状態と、
を備えるメモリカード。
In the memory card,
A security system implemented in the memory card that can be used to produce either a secure card or a non-secure card; and
A cryptographic engine designed to encrypt and decrypt information to protect the information stored on the card;
In a test state,
The encryption engine is activated,
The card firmware may be tested,
A test state in which the hardware of the card may be tested;
A secure operating state,
The card firmware is untestable,
The hardware of the card is untestable,
A secure operating state in which the encryption engine is enabled; and
A bypass operating state in which the encryption engine is disabled;
A memory card.
請求項27記載のメモリカードにおいて、
前記バイパス動作状態において、
前記カードのハードウェアがテスト可能であり、
前記カードのファームウェアがテスト可能であるメモリカード。
The memory card of claim 27,
In the bypass operation state,
The hardware of the card is testable;
A memory card whose firmware can be tested.
請求項27記載のメモリカードにおいて、
最終鍵状態をさらに備え、
前記セキュア動作状態で使用される最終鍵が、前記カードにおいて利用され、
前記カードが構成可能であり、
前記カードのハードウェアテスト機構がテスト不能であり、
前記カードのソフトウェアテスト機構がテスト不能であるメモリカード。
The memory card of claim 27,
A final key state,
The final key used in the secure operating state is utilized in the card;
The card is configurable;
The hardware test mechanism of the card is untestable;
A memory card whose software test mechanism is not testable.
フラッシュメモリカードにおいて、
セキュリティシステムを備え、前記セキュリティシステムが、
カードが一度に1つの動作状態において動作する、2つ以上の動作状態と、
前記カード内のデータを暗号化および復号化する手段と、
前記カードが前記動作状態の第1の状態にある間、前記カードをテストする手段と、
前期状態に前進した後に前の状態に再度入ることができないように、前記カードの状態を前進させる手段と、
前記2つ以上の動作状態の1つにおいて、前記データを暗号化および復号化する手段が利用可能であるが、前記カードをテストする手段が、前記動作状態において利用不能であることで、前記テストする手段を経由して、前記カード内のデータへの不正アクセスを防止するように、前記カードのデータへのアクセスを制御する手段と、
を備えるフラッシュメモリカード。
In flash memory card,
A security system, the security system comprising:
Two or more operating states in which the card operates in one operating state at a time;
Means for encrypting and decrypting data in the card;
Means for testing the card while the card is in the first state of the operating state;
Means for advancing the state of the card so that it cannot re-enter the previous state after having advanced to the previous state;
In one of the two or more operational states, means for encrypting and decrypting the data is available, but the means for testing the card is unavailable in the operational state, so that the test Means for controlling access to the data of the card so as to prevent unauthorized access to the data in the card via means for
With flash memory card.
フラッシュメモリカードにおいて、
セキュリティシステムを備え、前記セキュリティシステムが、
カードが一度に1つの動作状態において動作する、2つ以上の動作状態と、
前記カード内のデータを暗号化および復号化する暗号化エンジンと、
前記カードが前記動作状態の第1の状態にある間、利用可能なテスト機構と、
前記状態に前進した後に前の状態に再度入ることができないように、前記カードの状態を前進させる論理と、を備え、
前記状態の少なくとも1つにおいて暗号化されたデータが、引き続き入る状態において復号化できないフラッシュメモリカード。
In flash memory card,
A security system, the security system comprising:
Two or more operating states in which the card operates in one operating state at a time;
An encryption engine for encrypting and decrypting data in the card;
A test mechanism available while the card is in the first state of operation;
Logic to advance the state of the card so that it cannot re-enter the previous state after it has advanced to the state,
A flash memory card that cannot be decrypted when data encrypted in at least one of the states continues to enter.
フラッシュメモリカードにおいて、
大容量のデータファイル用の不揮発性フラッシュメモリを含む第1の集積回路ダイと、
第2の集積回路ダイであって、
マイクロプロセッサと、
データを暗号化および復号化する暗号化エンジンと、
不揮発性メモリと、
前記暗号化エンジンの動作を有効化し、前記第2の集積回路ダイの前記不揮発性メモリに格納された秘密鍵と、を備える第2の集積回路ダイと、を備え、
通常動作モードにおいて、前記メモリカードが、暗号化および復号化用の前記秘密鍵の第1の値を利用し、
テストモードにおいて、前記メモリカードが、暗号化および復号化用の前記秘密鍵の第2の値を利用し、
前記第2の値が、前記第1の値で暗号化されたデータを復号化するために使用できず、
前記第1の値が、前記第2の値で暗号化されたデータを復号化するために使用できないフラッシュメモリカード。
In flash memory card,
A first integrated circuit die including a non-volatile flash memory for a large capacity data file;
A second integrated circuit die,
A microprocessor;
An encryption engine that encrypts and decrypts data;
Non-volatile memory;
A second integrated circuit die that enables operation of the encryption engine and comprises a secret key stored in the non-volatile memory of the second integrated circuit die;
In the normal operation mode, the memory card uses the first value of the secret key for encryption and decryption,
In the test mode, the memory card uses a second value of the secret key for encryption and decryption,
The second value cannot be used to decrypt data encrypted with the first value;
A flash memory card in which the first value cannot be used to decrypt data encrypted with the second value.
フラッシュメモリカードにおいて、
前記カードに格納されたデータを暗号化および復号化する暗号化エンジンと、
前記暗号化エンジンを使用して暗号化および復号化を有効化する第1の鍵を生成する前記メモリカードをテストする第1の動作状態と、
前記カードに格納されたデータを暗号化および復号化するために第2の鍵を利用する前記メモリカードの消費者使用のための第2の動作状態と、を備え、
前記第1の鍵で暗号化されたデータが、前記第2の鍵で復号化できず、前記第2の鍵で暗号化されたデータが、前記第1の鍵で復号化できず、
前記暗号化エンジンが、前記第1の状態でテスト可能であるが、前記カードが前記第1の状態にある間に暗号化されたデータが、前記カードが前記第2の状態にある間に読み出し不能であるフラッシュメモリカード。
In flash memory card,
An encryption engine for encrypting and decrypting data stored in the card;
A first operating state that tests the memory card to generate a first key that enables encryption and decryption using the encryption engine;
A second operating state for consumer use of the memory card that utilizes a second key to encrypt and decrypt data stored on the card;
The data encrypted with the first key cannot be decrypted with the second key, the data encrypted with the second key cannot be decrypted with the first key,
The encryption engine is testable in the first state, but data encrypted while the card is in the first state is read while the card is in the second state. Flash memory card that is impossible.
請求項33記載のメモリカードにおいて、
前記第1の鍵の値が、前記メモリカードが起動されるたびに変更されるメモリカード。
34. The memory card according to claim 33.
A memory card in which the value of the first key is changed each time the memory card is activated.
請求項33記載のメモリカードにおいて、
前記第1の鍵の値が、一定であるメモリカード。
34. The memory card according to claim 33.
A memory card in which the value of the first key is constant.
請求項33記載のメモリカードにおいて、
前記第1の鍵の値が、前記第1の動作状態に入るたびに一度再生成されるメモリカード。
34. The memory card according to claim 33.
A memory card in which the value of the first key is regenerated once every time the first operating state is entered.
請求項33記載のメモリカードにおいて、
前記第2の鍵の値が一定であり、前記カードの不揮発性メモリに格納されるメモリカード。
34. The memory card according to claim 33.
A memory card in which the value of the second key is constant and stored in a non-volatile memory of the card.
請求項37記載のメモリカードにおいて、
前記第2の鍵の値が、前記第1の状態の間にメモリに最後に格納される前記第1の鍵の値と等しいメモリカード。
The memory card according to claim 37,
A memory card wherein the value of the second key is equal to the value of the first key stored last in memory during the first state.
請求項33記載のメモリカードにおいて、
前記第1の状態においてテストするために、ハードウェアおよびファームウェアテスト機構が利用可能であるメモリカード。
34. The memory card according to claim 33.
A memory card in which hardware and firmware test mechanisms are available for testing in the first state.
請求項33記載のメモリカードにおいて、
前記第2の状態においてテストするために、ハードウェアおよびファームウェアテスト機構が利用不能であるメモリカード。
34. The memory card according to claim 33.
A memory card in which hardware and firmware test mechanisms are not available for testing in the second state.
JP2007554249A 2005-02-07 2006-02-01 Secure memory card with life cycle phase Expired - Fee Related JP4787273B2 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US65112805P 2005-02-07 2005-02-07
US60/651,128 2005-02-07
US11/317,862 2005-12-22
US11/317,390 2005-12-22
US11/317,862 US8321686B2 (en) 2005-02-07 2005-12-22 Secure memory card with life cycle phases
US11/317,390 US8108691B2 (en) 2005-02-07 2005-12-22 Methods used in a secure memory card with life cycle phases
PCT/US2006/003876 WO2006086232A2 (en) 2005-02-07 2006-02-01 Secure memory card with life cycle phases

Publications (2)

Publication Number Publication Date
JP2008530659A true JP2008530659A (en) 2008-08-07
JP4787273B2 JP4787273B2 (en) 2011-10-05

Family

ID=36644859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007554249A Expired - Fee Related JP4787273B2 (en) 2005-02-07 2006-02-01 Secure memory card with life cycle phase

Country Status (7)

Country Link
EP (1) EP1846826A2 (en)
JP (1) JP4787273B2 (en)
KR (1) KR100972540B1 (en)
CN (1) CN101164048B (en)
IL (1) IL184793A0 (en)
TW (1) TWI402755B (en)
WO (1) WO2006086232A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6285616B1 (en) * 2015-01-30 2018-02-28 クアルコム,インコーポレイテッド Secure execution environment communication

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US7536540B2 (en) 2005-09-14 2009-05-19 Sandisk Corporation Method of hardware driver integrity check of memory card controller firmware
US8070057B2 (en) 2007-09-12 2011-12-06 Devicefidelity, Inc. Switching between internal and external antennas
US20090069049A1 (en) 2007-09-12 2009-03-12 Devicefidelity, Inc. Interfacing transaction cards with host devices
US9311766B2 (en) 2007-09-12 2016-04-12 Devicefidelity, Inc. Wireless communicating radio frequency signals
US8915447B2 (en) 2007-09-12 2014-12-23 Devicefidelity, Inc. Amplifying radio frequency signals
US9304555B2 (en) 2007-09-12 2016-04-05 Devicefidelity, Inc. Magnetically coupling radio frequency antennas

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198316A (en) * 1996-01-22 1997-07-31 Toshiba Corp Data protection circuit
JPH11161549A (en) * 1997-11-28 1999-06-18 Toshiba Corp Secret information management method and system in portable information equipment
JP2000172821A (en) * 1998-12-10 2000-06-23 Toshiba Corp Semiconductor device, data storage medium, data recorder, data reading-out device, and manufacture of semiconductor device
JP2003337749A (en) * 2002-03-13 2003-11-28 Matsushita Electric Ind Co Ltd Secure device
WO2005010808A2 (en) * 2003-07-17 2005-02-03 Sandisk Corporation Memory card with raised portion

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4243888A1 (en) * 1992-12-23 1994-06-30 Gao Ges Automation Org Data carrier and method for checking the authenticity of a data carrier
FR2716989B1 (en) 1994-03-04 1996-04-05 Gemplus Card Int Method of operation of a smart card.
EP1004992A3 (en) * 1997-03-24 2001-12-05 Visa International Service Association A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
WO1999064996A1 (en) * 1998-06-05 1999-12-16 Landis & Gyr Communications S.A.R.L. Preloaded ic-card and method for authenticating the same
EP0992809A1 (en) * 1998-09-28 2000-04-12 Siemens Aktiengesellschaft Circuit with deactivatable scan path
US7023996B2 (en) * 2001-05-04 2006-04-04 The Boeing Company Encryption for asymmetric data links
DE10162306A1 (en) * 2001-12-19 2003-07-03 Philips Intellectual Property Method and arrangement for verifying NV fuses as well as a corresponding computer program product and a corresponding computer-readable storage medium
US6912633B2 (en) * 2002-03-18 2005-06-28 Sun Microsystems, Inc. Enhanced memory management for portable devices
US6843423B2 (en) * 2003-03-13 2005-01-18 Stmicroelectronics, Inc. Smart card that can be configured for debugging and software development using secondary communication port
US6783078B1 (en) * 2003-05-09 2004-08-31 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having read back testing features and related system, integrated circuit, and methods
TW200501281A (en) * 2003-06-27 2005-01-01 Kingpak Tech Inc Manufacturing method of small memory card having display
TWI223974B (en) * 2003-11-20 2004-11-11 Advanced Semiconductor Eng Tiny memory card and method for manufacturing the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198316A (en) * 1996-01-22 1997-07-31 Toshiba Corp Data protection circuit
JPH11161549A (en) * 1997-11-28 1999-06-18 Toshiba Corp Secret information management method and system in portable information equipment
JP2000172821A (en) * 1998-12-10 2000-06-23 Toshiba Corp Semiconductor device, data storage medium, data recorder, data reading-out device, and manufacture of semiconductor device
JP2003337749A (en) * 2002-03-13 2003-11-28 Matsushita Electric Ind Co Ltd Secure device
WO2005010808A2 (en) * 2003-07-17 2005-02-03 Sandisk Corporation Memory card with raised portion

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6285616B1 (en) * 2015-01-30 2018-02-28 クアルコム,インコーポレイテッド Secure execution environment communication
JP2018509048A (en) * 2015-01-30 2018-03-29 クアルコム,インコーポレイテッド Secure execution environment communication

Also Published As

Publication number Publication date
JP4787273B2 (en) 2011-10-05
KR100972540B1 (en) 2010-07-28
WO2006086232A2 (en) 2006-08-17
IL184793A0 (en) 2008-01-20
TW200641696A (en) 2006-12-01
CN101164048B (en) 2010-06-16
TWI402755B (en) 2013-07-21
KR20070121642A (en) 2007-12-27
CN101164048A (en) 2008-04-16
EP1846826A2 (en) 2007-10-24
WO2006086232A3 (en) 2007-10-11

Similar Documents

Publication Publication Date Title
US8423788B2 (en) Secure memory card with life cycle phases
US8108691B2 (en) Methods used in a secure memory card with life cycle phases
US8321686B2 (en) Secure memory card with life cycle phases
CN108269605B (en) Security device state apparatus and method
JP4787273B2 (en) Secure memory card with life cycle phase
US8572410B1 (en) Virtualized protected storage
JP5984625B2 (en) Semiconductor device and encryption key writing method
KR101975027B1 (en) System on chip, operation method thereof, and devices having the same
US20080107275A1 (en) Method and system for encryption of information stored in an external nonvolatile memory
TWI483139B (en) Secure key storage using physically unclonable functions
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
CN101273363A (en) Secure yet flexible system architecture for secure devices with flash mass storage memory
JP2011522469A (en) Integrated circuit having protected software image and method therefor
JP2010509690A (en) Method and system for ensuring security of storage device
US9152576B2 (en) Mode-based secure microcontroller
CN110851886A (en) Storage device
US11481523B2 (en) Secure element
TW201508770A (en) Non-volatile memory to store resettable data
US8190920B2 (en) Security features in an electronic device
US10970232B2 (en) Virtual root of trust for data storage device
JP2001338271A (en) Ic card and ic card utilizing system
JP2006146608A (en) Memory information protection system and method
CN109583196B (en) Key generation method
CN104794373A (en) Software encryption lock
CN101763485A (en) Data protecting method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110119

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110315

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110419

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees