(57)【要約】  暗号化機能を備えたセキュアメモリカードが、複数の状態のある状態においてカードのハードウェアおよびソフトウェアのテストを可能にするさまざまなライフサイクル状態を有する。テスト機構は、複数の状態のうちある他の状態において無効化されるため、セキュアデータおよび暗号鍵への潜在的な抜け穴が閉じられる。抜け穴にアクセスされたとしても、前に暗号化されたデータが復号化できないため、抜け穴が見つけられ、悪意をもって侵入されたとしても、価値がないものとなるように、データの暗号化および復号化に要求される鍵の利用可能性および生成が制御される。
2008530659.tif 000002
【特許請求の範囲】
【請求項１】
メモリカードの製造方法において、
メモリダイにテストポートを設けるステップと、
セキュリティシステムを設けるステップであって、
暗号エンジンと、
暗号鍵と、
前記テストポートがハードウェアテスト用に利用可能であり、前記暗号エンジンの動作および前記メモリカードのソフトウェアのテストを有効化するソフトウェアテストルーチンが利用可能であるテスト状態と、
前記テストポートが利用不能であり、前記ソフトウェアテストルーチンが利用不能である動作状態と、を含むセキュリティシステムを設けるステップと、
前記テスト状態を利用することによって、前記メモリカードのソフトウェアをテストするステップと、
前記テスト状態から前記動作状態に前記カードを不可逆的に切り替えるコマンドを、ホストから前記カードへ提供するステップと、
を含む方法。
【請求項２】
テストパッドを有する不揮発性メモリダイを含むメモリカードの機能性をテストする方法において、
任意のファームウェアがメモリダイにロードされる前、および前記メモリカードの一部になる前に、前記メモリダイをテストするステップと、
前記メモリダイの前記メモリに前記ファームウェアをロードするステップと、
前記メモリカードのハードウェアおよびソフトウェアのテストを可能にする第１のフェーズに、前記カードのフェーズを変更するステップと、
その後、前記メモリカードのハードウェアおよびソフトウェアをテストするステップと、
その後、前記メモリカードのハードウェアおよびソフトウェアのテストを不能にする第２のフェーズに、前記カードのフェーズを変更するステップと、
を含む方法。
【請求項３】
請求項２記載の方法において、
前記ダイが前記カードに実装されるとき、前記テストパッドが、前記メモリダイ上に存在したままである方法。
【請求項４】
請求項２記載の方法において、
前記カードの故障後、故障解析を目的として前記メモリカードのソフトウェアおよびハードウェアのテストを可能にするフェーズに、前記カードのフェーズを変更するステップをさらに含み、前記フェーズに入った後、前記メモリカードが、前記フェーズに入る前に暗号化されたデータを復号化することができない方法。
【請求項５】
請求項２記載の方法において、
前記フェーズのインジケータが、前記コントローラチップの不揮発性メモリに格納される方法。
【請求項６】
請求項２記載の方法において、
前記第２のフェーズにおいて、信号が、前記テストパッドに転送されず、前記テストパッドから転送されない方法。
【請求項７】
メモリカードでのデータのセキュア記憶装置を設ける方法において、
前記メモリカード内にフラッシュメモリを設けるステップと、
前記フラッシュメモリに格納されたデータを暗号化および復号化する暗号化エンジンをコントローラチップに設けるステップと、
前記コントローラチップの不揮発性メモリ内に鍵を格納するステップと、
前記カードのデータファイルのユーザを、前記フラッシュメモリチップに前記ファイルが格納される前に、前記鍵で暗号化するステップと、
前記フラッシュメモリに前記暗号化されたデータファイルを格納するステップと、
カードテスト機構の使用が望ましければ、前記暗号化されたファイルを復号化できないように前記鍵の値を再生成するステップと、
を含む方法。
【請求項８】
セキュアカードまたはレギュラーカードのいずれかとして動作可能なメモリカードに実現されるセキュリティシステムにおいて、
前記カードに格納された情報を保護するために、情報を暗号化および復号化する暗号エンジンと、
前記暗号化および復号化用に使用される前記カードにある秘密鍵と、
テスト状態であって、
前記暗号化エンジンが有効化され、
テスト状態に入ると、前記秘密鍵が生成され、
前記カードのファームウェアがテストされてもよく、
前記カードのハードウェアがテストされてもよい、テスト状態と、
セキュア動作状態であって、
前記カードのファームウェアがテスト不能であり、
前記カードのハードウェアがテスト不能であり、
前記暗号化エンジンが有効化され、
情報を暗号化および復号化するために、前記秘密鍵が前記暗号化エンジンによって使用される、セキュア動作状態と、
バイパス動作状態であって、
前記暗号化エンジンが無効化され、
前記カードのハードウェアがテスト可能であり、
前記カードのファームウェアがテスト可能であり、
レギュラーカードとして動作していれば、バイパス動作状態が使用される、バイパス動作状態と、
を備えるシステム。
【請求項９】
請求項８記載のシステムにおいて、
前記カードが、前記バイパス動作状態に構成された非セキュアカードとして最初に販売されるシステム。
【請求項１０】
請求項８記載のシステムにおいて、
前記カードが、前記セキュア動作状態に構成されたセキュアカードとして最初に販売されるシステム。
【請求項１１】
請求項１０記載のシステムにおいて、
セキュアカードとして最初に販売された前記カードが、製造業者に返品されると、前記バイパス動作状態にされるシステム。
【請求項１２】
請求項１１記載のシステムにおいて、
前記バイパス状態にされた後、前記カードが非セキュアカードとして販売されるシステム。
【請求項１３】
請求項８記載のシステムにおいて、
前記暗号化エンジンが、ハードウェアベースのものであるシステム。
【請求項１４】
請求項８記載のシステムにおいて、
前記秘密鍵が、前記暗号化エンジンの不揮発性メモリに格納されるシステム。
【請求項１５】
請求項８記載のシステムにおいて、
前記カードのハードウェアがテスト可能であり、
前記カードのファームウェアがテスト可能であり、
故障解析状態において前記システムが起動されるたびに、前記秘密鍵が再生成される、故障解析動作状態をさらに含むシステム。
【請求項１６】
請求項１５記載のシステムにおいて、
前記故障解析動作状態に入った後、前記カードを前記セキュア動作状態で再度使用することができないシステム。
【請求項１７】
請求項１６記載のシステムにおいて、
前記故障解析動作状態が、前記バイパス状態に入る前に作動されるシステム。
【請求項１８】
ファームウェアを有するメモリカードをテストするシステムにおいて、
集積回路ダイ上のテストポートと、
ファームウェアにあるテスト機構と、
セキュリティシステムと、を備え、前記セキュリティシステムが、
暗号エンジンと、
前記テストポートおよび前記ファームウェアにある前記テスト機構の使用を可能にする、前記カードのテスト中に利用可能な動作の１つ以上のテスト状態と、
前記テストポートおよび前記ファームウェアにある前記テスト機構の使用を禁止する、前記カードの通常使用中に利用可能な動作のセキュア状態と、
前記１つ以上のテスト状態のテスト状態と前記セキュア状態との間を切り替えるための論理であって、前記カードが前記セキュア状態に切り替えられると、前記１つ以上のテスト状態に再度アクセスすることはできず、前記ファームウェアにある前記テスト機構および前記テストポートへのアクセスを防ぐことによって、前記カード上のセキュアデータへのアクセスを禁止する、論理と、
を備えるシステム。
【請求項１９】
請求項１８記載のシステムにおいて、
前記セキュリティシステムが、バイパス動作状態をさらに含み、前記暗号エンジンが無効化されるシステム。
【請求項２０】
請求項１９記載のシステムにおいて、
前記バイパス状態が、非セキュアメモリカードを生産するために使用されるシステム。
【請求項２１】
請求項１９記載のシステムにおいて、
前記バイパス状態が、セキュアカードが点検用に返品されたときに作動されることで、前記セキュアカードを非セキュアカードに変形し、さらに使用するために前記カードを回収するシステム。
【請求項２２】
請求項２１記載のシステムにおいて、
変形後、前記非セキュアカードをセキュア状態で再度使用することができないシステム。
【請求項２３】
請求項１９記載のシステムにおいて、
故障解析状態をさらに備え、データを暗号化および復号化するために使用する新しい鍵が、起動時ごとに生成され、ある鍵で暗号化されたデータを、別の鍵で復号化することができないシステム。
【請求項２４】
請求項２３記載のシステムにおいて、
前記バイパス状態に入る前に、前記故障解析状態に入るシステム。
【請求項２５】
請求項１８記載のシステムにおいて、
前記セキュア状態において使用される最終ファームウェアを前記カードにロードするように使用される最終鍵状態をさらに備え、前記ファームウェアにある前記テスト機構は、前記最終鍵状態において無効化されるシステム。
【請求項２６】
請求項２５記載のシステムにおいて、
前記最終鍵状態において、前記テストポートとの通信が利用不能であるシステム。
【請求項２７】
メモリカードにおいて、
セキュアカードまたは非セキュアカードのいずれかを生産するために使用可能な前記メモリカードに実現されるセキュリティシステムと、
前記カードに格納された情報を保護するために、情報を暗号化および復号化するように設計された暗号エンジンと、
テスト状態であって、
前記暗号化エンジンが有効化され、
前記カードのファームウェアがテストされてもよく、
前記カードのハードウェアがテストされてもよい、テスト状態と、
セキュア動作状態であって、
前記カードのファームウェアがテスト不能であり、
前記カードのハードウェアがテスト不能であり、
前記暗号化エンジンが有効化される、セキュア動作状態と、
前記暗号化エンジンが無効化されるバイパス動作状態と、
を備えるメモリカード。
【請求項２８】
請求項２７記載のメモリカードにおいて、
前記バイパス動作状態において、
前記カードのハードウェアがテスト可能であり、
前記カードのファームウェアがテスト可能であるメモリカード。
【請求項２９】
請求項２７記載のメモリカードにおいて、
最終鍵状態をさらに備え、
前記セキュア動作状態で使用される最終鍵が、前記カードにおいて利用され、
前記カードが構成可能であり、
前記カードのハードウェアテスト機構がテスト不能であり、
前記カードのソフトウェアテスト機構がテスト不能であるメモリカード。
【請求項３０】
フラッシュメモリカードにおいて、
セキュリティシステムを備え、前記セキュリティシステムが、
カードが一度に１つの動作状態において動作する、２つ以上の動作状態と、
前記カード内のデータを暗号化および復号化する手段と、
前記カードが前記動作状態の第１の状態にある間、前記カードをテストする手段と、
前期状態に前進した後に前の状態に再度入ることができないように、前記カードの状態を前進させる手段と、
前記２つ以上の動作状態の１つにおいて、前記データを暗号化および復号化する手段が利用可能であるが、前記カードをテストする手段が、前記動作状態において利用不能であることで、前記テストする手段を経由して、前記カード内のデータへの不正アクセスを防止するように、前記カードのデータへのアクセスを制御する手段と、
を備えるフラッシュメモリカード。
【請求項３１】
フラッシュメモリカードにおいて、
セキュリティシステムを備え、前記セキュリティシステムが、
カードが一度に１つの動作状態において動作する、２つ以上の動作状態と、
前記カード内のデータを暗号化および復号化する暗号化エンジンと、
前記カードが前記動作状態の第１の状態にある間、利用可能なテスト機構と、
前記状態に前進した後に前の状態に再度入ることができないように、前記カードの状態を前進させる論理と、を備え、
前記状態の少なくとも１つにおいて暗号化されたデータが、引き続き入る状態において復号化できないフラッシュメモリカード。
【請求項３２】
フラッシュメモリカードにおいて、
大容量のデータファイル用の不揮発性フラッシュメモリを含む第１の集積回路ダイと、
第２の集積回路ダイであって、
マイクロプロセッサと、
データを暗号化および復号化する暗号化エンジンと、
不揮発性メモリと、
前記暗号化エンジンの動作を有効化し、前記第２の集積回路ダイの前記不揮発性メモリに格納された秘密鍵と、を備える第２の集積回路ダイと、を備え、
通常動作モードにおいて、前記メモリカードが、暗号化および復号化用の前記秘密鍵の第１の値を利用し、
テストモードにおいて、前記メモリカードが、暗号化および復号化用の前記秘密鍵の第２の値を利用し、
前記第２の値が、前記第１の値で暗号化されたデータを復号化するために使用できず、
前記第１の値が、前記第２の値で暗号化されたデータを復号化するために使用できないフラッシュメモリカード。
【請求項３３】
フラッシュメモリカードにおいて、
前記カードに格納されたデータを暗号化および復号化する暗号化エンジンと、
前記暗号化エンジンを使用して暗号化および復号化を有効化する第１の鍵を生成する前記メモリカードをテストする第１の動作状態と、
前記カードに格納されたデータを暗号化および復号化するために第２の鍵を利用する前記メモリカードの消費者使用のための第２の動作状態と、を備え、
前記第１の鍵で暗号化されたデータが、前記第２の鍵で復号化できず、前記第２の鍵で暗号化されたデータが、前記第１の鍵で復号化できず、
前記暗号化エンジンが、前記第１の状態でテスト可能であるが、前記カードが前記第１の状態にある間に暗号化されたデータが、前記カードが前記第２の状態にある間に読み出し不能であるフラッシュメモリカード。
【請求項３４】
請求項３３記載のメモリカードにおいて、
前記第１の鍵の値が、前記メモリカードが起動されるたびに変更されるメモリカード。
【請求項３５】
請求項３３記載のメモリカードにおいて、
前記第１の鍵の値が、一定であるメモリカード。
【請求項３６】
請求項３３記載のメモリカードにおいて、
前記第１の鍵の値が、前記第１の動作状態に入るたびに一度再生成されるメモリカード。
【請求項３７】
請求項３３記載のメモリカードにおいて、
前記第２の鍵の値が一定であり、前記カードの不揮発性メモリに格納されるメモリカード。
【請求項３８】
請求項３７記載のメモリカードにおいて、
前記第２の鍵の値が、前記第１の状態の間にメモリに最後に格納される前記第１の鍵の値と等しいメモリカード。
【請求項３９】
請求項３３記載のメモリカードにおいて、
前記第１の状態においてテストするために、ハードウェアおよびファームウェアテスト機構が利用可能であるメモリカード。
【請求項４０】
請求項３３記載のメモリカードにおいて、
前記第２の状態においてテストするために、ハードウェアおよびファームウェアテスト機構が利用不能であるメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、メモリカードおよび暗号化に関し、特に、カードのテスト機構によるセキュアデータおよび鍵へのアクセス排除に関する。
【背景技術】
【０００２】
開発からかなりの時が経過した、スマートカードと一般に呼ばれているインテリジェントメモリカードは、身分証明や支払いの形態で市場に受け入れられている。スマートカードは、ユーザの識別データの格納および取引関連データの格納用の少量のメモリを含む。また、スマートカードは、チップと呼ばれることも多く、日本では、国の身分証明書などのさまざまな形態や、クレジットカードやデビットカードのタイプとしてさまざまな場所で採用されている。なりすまし犯罪やその他の金銭上の詐欺を防止するために、カードおよびカードを利用するシステムに、さまざまなチップデザインおよび暗号化方式が採用されてきた。
【０００３】
任意のタイプのセキュアメモリカードの設計と製造には、２つの競合する利益が存在する。１つの利益は、カードのセキュリティを最大限に高めることであり、もう１つの利益は、カードの信頼性を最大限に高めることである。カードの信頼性を最大限に高めるには、工場からの出荷前に、場合によっては、工場からの出荷後であっても、故障解析を行うために、さまざまな製造段階でカードのソフトウェアおよびハードウェアをテストできることが重要である。カードのハードウェアとソフトウェアの両方をテストするために、チップ上のテストまたはコンタクトパッドに信号を入出力させてテストを行ってもよい。これらのテストルーチンおよびテストパッドは、品質制御を確保する必要があるが、セキュアデータ、アルゴリズム、およびカードの鍵にとって、潜在的な弱点、いわゆる「抜け穴」となる。このように、信頼性の最大化とセキュリティの最大化（に必要なテスト）の間には、ある程度の妥協が常に存在する。テスト完了後、この「抜け穴」を閉じるためのさまざまなアプローチがこれまで提案されてきた。しかし、さまざまな理由から、これまでの解決策にはそれぞれ、商業的および技術的欠点がある。
【０００４】
前述したスマートカードの作製に採用されると考えられる１つのアプローチにおいて、ウェハからメモリダイを個片化する前にカードのダイがテストされる。特定のダイ用のテストパッドは、ウェハの隣接するダイの上に設けられ、個片化プロセスは、テスト後に隣接するダイのすべての回路からテストパッドを切断する。したがって、個片化されたダイの上に存在するあらゆるテストパッドが完全に隔離され、最終メモリカードのセキュアデータへの潜在的な抜け穴として閉じられる。しかし、テストパッドを完全に除去することは、常に実用的なことでも、望ましいことでもない。例えば、使用可能なテストパッドがないと、ある量のハードウェアベースのメモリテストを引き続き行えなくなり、これにより、例えば、潜在的な故障解析方法を制限してしまう。
【０００５】
このアプローチは、典型的に、身分証明および取引データの保持に必要なメモリを少量しかもたないスマートカードには好ましいこともあるが、写真や音楽などの多数の大きなファイルを格納するのに使用する大容量メモリカードに採用された比較的大量のメモリおよび複雑なセキュリティルーチンをテストするには不十分である。これらの大容量メモリカードのいくつかの例は、コンパクトフラッシュカード、ＭＭＣカード、およびＳＤカードである。デジタルコンテンツの普及と、それに関連する著作権問題により、セキュリティの重要性が高まると同時に、カードのテストおよび信頼性が最も重要であることに変わりはない。セキュアな大容量メモリカードを製造、テスト、および動作させるより包括的かつ柔軟性のあるシステムが必要とされ、以下に説明する本発明によって提供される。
【０００６】
別の重要な態様はコストである。不揮発性メモリ、論理、揮発性メモリなどのいくつかの異なる技術が、単一の集積回路ダイ（チップ）上に作製されうる。しかし、１つのダイでさまざまな技術を混在させると、生産コストが著しく増大する。コストが主要な原動力である競合的な環境において、１つのダイに与えられる、異なる技術の数を制限することが非常に望ましい。しかし、複数のダイを使用するということは、つまり、最終製品の１つのダイから別のダイへ機密情報を渡す必要があるということにもなる。これは、適切な予防策を取り入れていなければ、ハッカーが利用できる別の潜在的な弱点となる。
【０００７】
特に、不揮発性メモリビットは、同じダイ内で論理と混在させるには高価である。スマートカードは、スマートカードを実行する論理と同じダイでデータ記憶を目的として不揮発性メモリを採用し、これは、セキュリティを最大限に高める１つの方法である。しかし、今日、本発明から利益を享受するメモリカードは、非常に大きな、音楽、写真、映像、および他のユーザファイルを格納しなければならない。このように、大量の情報（２００５年時点で数ギガバイト程度であるが、さらに増大）を格納可能な単一の集積回路ダイメモリカードの製造には法外なコストがかかり、複数のダイを採用するセキュアシステムの開発が必要である。特に、コントローラダイから分離され、アセンブリの前後に十分にテスト可能であるが、テスト機構を経由した攻撃を受けにくい１つ以上のディスクリート（コスト効率の良い）フラッシュメモリダイを利用したセキュアシステム（暗号化および復号化を採用）の作製が非常に望ましい。
【特許文献１】米国特許出願第１１／２８４，６２３号
【発明の開示】
【０００８】
コントローラの機能性と、今日のデジタルデバイスが要求する大容量記憶とを兼ね備えた単一チップを利用することは、過度にコストがかかるとともに、拡張性の点でも問題があるため、代替のシステムが開発されてきた。単一チップの解決策の場合、テスト機構、暗号化鍵、および暗号化されたコンテンツへアクセスしにくくする特有のチップデザインでセキュリティを確保できる。しかし、コンテンツが別個のメモリチップから、暗号化が生じるコントローラチップに渡される複数チップデザインの場合、暗号化鍵と暗号化されたコンテンツへのアクセス保護に特に注意を払わなければならない。さらに、組立て済みのシステムをテストできるように最終アセンブリに（好ましくは）依然としてテストパッドを備えたシステムでは、暗号化鍵およびコンテンツへの不正アクセスへの抜け穴となってしまいかねないソフトウェアおよびハードウェアの任意の機構に特に注意を払わなければならない。
【０００９】
本発明は、カードの寿命の間に入り通過する多数のライフサイクルフェーズを有する。フェーズに応じて、カードの論理は、暗号化エンジンを有効または無効にし、（ウェハの個片化およびカードの組み立ての前後での）ハードウェアおよびソフトウェアテスト機構へのアクセスを制御し、鍵生成を制御する。これらのフェーズは、（テストパッドを除去したスマートカードとは異なり）カードのハードウェアとソフトウェアの両方を製造の前後で徹底的にテストできるようになるだけでなく、カードがセキュアフェーズにあるとき、すなわち、カードがユーザに出荷されているときのカードの状態である動作フェーズにあるとき、暗号化された鍵、ひいては、暗号化されたコンテンツへ事実上アクセスできなくする。したがって、本発明により、十分にテスト可能であるが、カード内の保護データへの不正アクセスにも強いメモリカードが提供される。
【００１０】
さらに、セキュアな大容量メモリカードを製造、テスト、および動作させるより包括的かつ柔軟性のあるシステムが必要とされ、以下に説明する本発明により提供される。
【００１１】
本発明のさらなる態様、利点、および特徴は、添付の図面と関連して参照される本発明の例示的な実施例の以下の説明に含まれ、図面において、同じ特徴を説明するために同様の参照番号を使用している。本願明細書において参照したすべての特許、特許出願、論文、および他の刊行物は、あらゆる目的のためにその全体が本願明細書において参照により援用されている。
【発明を実施するための最良の形態】
【００１２】
（メモリシステム構造）
図１Ａのブロック図に、本発明のさまざまな態様が実施されてもよい例示的なメモリシステムを示す。図１Ａに示されているように、メモリシステム１０は、中央演算処理装置（ＣＰＵ）またはコントローラ１２と、バッファ管理ユニット（ＢＭＵ）１４と、ホストインターフェイスモジュール（ＨＩＭ）１６と、フラッシュインターフェイスモジュール（ＦＩＭ）１８と、フラッシュメモリ２０と、周辺アクセスモジュール２２とを含む。メモリシステム１０は、ホストインターフェイスバス２６およびポート２６ａを介してホストデバイス２４と通信する。ＮＡＮＤ形のものであってもよいフラッシュメモリ２０は、ホストデバイス２４にデータ記憶装置を提供する。また、ＣＰＵ１２のソフトウェアコードは、フラッシュメモリ２０に格納される。ＦＩＭ１８は、フラッシュインターフェイスバス２８を介して、場合によっては、フラッシュメモリ２０が取り外し可能な構成要素であれば、図に示されていないが、ポートを介してフラッシュメモリ２０に接続される。ＨＩＭ１６は、デジタルカメラ、パーソナルコンピュータ、個人用携帯情報端末（ＰＤＡ）およびＭＰ−３プレイヤ、携帯電話、または他のデジタルデバイスのようなホストシステムとの接続に適している。周辺アクセスモジュール２２は、ＣＰＵ１２との通信用のＦＩＭ、ＨＩＭ、およびＢＭＵなどの適切なコントローラモジュールを選択する。１つの実施形態において、点線で四角に囲んだシステム１０の構成要素はすべて、メモリカードなどの単一のユニットに封入されてもよく、好ましくは、カードに封入されてもよい。
【００１３】
バッファ管理ユニット１４は、ホストダイレクトメモリアクセスユニット（ＨＤＭＡ）３２と、フラッシュダイレクトメモリアクセスユニット（ＦＤＭＡ）３４と、アービタ３６と、ＣＰＵバスアービタ３５と、レジスタ３３と、バッファランダムアクセスメモリ（ＢＲＡＭ）３８と、暗号化エンジン４０とも呼ばれる暗号エンジン４０とを備える。アービタ３６は、１つのみのマスタまたはイニシエータ（ＨＤＭＡ３２、ＦＤＭＡ３４、またはＣＰＵ１２でありうる）が、常に活性であり、スレーブまたはターゲットがＢＲＡＭ３８になるような共有バスアービタである。アービタは、ＢＲＡＭ３８に適切なイニシエータのリクエストを通す責任を有する。ＨＤＭＡ３２およびＦＤＭＡ３４は、ＨＩＭ１６と、ＦＩＭ１８と、ＢＲＡＭ３８またはＲＡＭ１１との間で伝送されるデータに責任を有する。ＣＰＵバスアービタ３５は、暗号エンジン４０およびフラッシュＤＭＡ３４から、システムバス１５を経由して、ＲＡＭ１１へ直接データを転送でき、これは、例えば、暗号エンジンを経由しないことが望ましい場合などの状況下で使用される。ＨＤＭＡ３２およびＦＤＭＡ３４の動作は、従来のものであり、本願明細書で詳細に説明しない。ＢＲＡＭ３８は、ホストデバイス２４とフラッシュメモリ２０との間を通るデータを格納するために使用される。ＨＤＭＡ３２およびＦＤＭＡ３４は、ＨＩＭ１６／ＦＩＭ１８とＢＲＡＭ３８またはＣＰＵ  ＲＡＭ１２ａとの間でデータを転送したり、セクタの完了を示したりする責任を有する。
【００１４】
フラッシュメモリ２０からのデータがホストデバイス２４によって読み出されるとき、メモリ２０の暗号化データが、バス２８、ＦＩＭ１８、ＦＤＭＡ３４、および暗号エンジン４０を通って取り出され、暗号化データは復号化され、ＢＲＡＭ３８に格納される。次いで、復号化されたデータは、ＢＲＡＭ３８から、ＨＤＭＡ３２、ＨＩＭ１６、バス２６を通って、ホストデバイス２４に送信される。ＢＲＡＭ３８から取り出されたデータは、ホストデバイス２４に送信されたデータが再度暗号化されるようにＨＤＭＡ３２に渡される前に暗号エンジン４０を用いて再度暗号化されてもよいが、メモリ２０に格納されたデータが暗号化されたものと比較して異なった鍵および／またはアルゴリズムを用いて再度暗号化されてもよい。他の形態において、データが不正アクセスに脆弱になる可能性のある前述したプロセスにおいて、ＢＲＡＭ３８に復号化データを格納するのではなく、メモリ２０からのデータは、ＢＲＡＭ３８に送信される前に暗号エンジン４０によって再度復号化および暗号化されてもよい。次いで、ＢＲＡＭ３８の暗号化データは、前述したように、ホストデバイス２４に送信される。これは、読み出しプロセス中のデータストリームを示す。
【００１５】
データがホストデバイス２４によってメモリ２０に書き込まれると、データストリームの方向が反転する。例えば、暗号化されていないデータが、ホストデバイスによって、バス２６、ＨＩＭ１６、ＨＤＭＡ３２を通って、暗号エンジン４０に送信されれば、このようなデータは、ＢＲＡＭ３８に格納される前にエンジン４０によって暗号化されてもよい。他の形態において、暗号化されていないデータは、ＢＲＡＭ３８に格納されてもよい。次いで、データは、メモリ２０へ進む途中でＦＤＭＡ３４に送信される前に暗号化される。
【００１６】
（ライフサイクルフェーズ）
例えば、前述したもののようなメモリカードに実装される場合に特に有用であるセキュリティシステムまたはセキュアオペレーティングシステムには、異なるフェーズまたは状態がある。これらのフェーズは、１つのフェーズから次へと進んだ後、前のフェーズには再度入ることができないように、連続的に入ることが好ましい。したがって、これらのフェーズは、ライフサイクルフェーズと考えることができる。
【００１７】
フェーズについて詳細に説明する前に、別のシステムレベル図について簡単に説明する。図１Ｂは、システム１０の別の実施形態を示す。この図には、簡潔かつ明確に示すために、システム１０のある一定の構成要素しか示されていない。メモリシステム１０は、ハードウェアテスト入出力（Ｉ／Ｏ）５４とも呼ばれるテストパッドを備える。ハードウェアバス（ＨＷバス）５６は、テストパッド５４に接続されることが好ましい。これらのテストパッドおよびＨＷバス５６は、システム１０のさまざまなハードウェアおよび回路（図示せず）に接続され、システム１０のハードウェアおよび回路をテストするために使用される。ＪＴＡＧバス６２は、システムバス１５（図１Ａに示されている）に接続され、コントローラファームウェアを取り替え、システム１０の外側からハードウェアブロックを駆動するために使用できる。これは、レジスタの読み出し／書き込み動作を要求するハードウェアテスト用に使用される。ＪＴＡＧバス６２は、ＲＡＭおよびＲＯＭにアクセスできるため、システム１０のファームウェアをテストするためにも使用される。診断コマンドをシステム１０に送信するために、ホストバス２６が利用され、システムのファームウェアをテストするためにも使用される。
【００１８】
また、暗号化エンジン４０のＮＶＭ５０が示されている。ＮＶＭ５０内に格納されているものは、ライフサイクル状態７７および秘密鍵９９（の値）である。ＮＶＭテストポート５８は、暗号化エンジン４０内のＮＶＭをテストするために使用される。
【００１９】
状態インジケータヒューズ６６は、製品が、ＮＶＭコンテンツに依存するのではなく、（以下に説明する）ＮＶＭ状態１１０にあることを表示するために使用される。その理由は、作製中にＮＶＭに格納された初期値の信頼性を保証できないことが挙げられる。したがって、ヒューズなどの別のより信頼性の高いインジケータが使用される。このシステムは、ヒューズが設定されていれば、状態１１０にあることを決定する。システム１０がリセットされれば、状態を決定するために、ＮＶＭライフサイクル状態７７を見ることになる。
【００２０】
図２Ａは、さまざまな状態と、状態間の遷移の順序を示す。各状態は、図２Ｂにも再現している以下の表から分かるように、カードの製造の前後のカード（またはカードが実現されるシステム）のさまざまな挙動および能力を既定する。
2008530659.tif 000003
【００２１】
状態は、暗号化エンジンの不揮発性メモリ内に、３２ビット値として格納されることが好ましい。状態１２０〜１７０を表すために使用される大量の可能な（≒１０9 ）の組み合わせから、予め割り当てられた値が６つある。他のすべての値は、状態１１０を表す。これは、作製、組み立て、テスト、および出荷中のさまざまな処理動作が、メモリに格納された任意の値を変更してしまう可能性があるため、作製中に既定値を確実に格納し、その後に取り出すことが確保できないためである。
【００２２】
また、鍵の値は、暗号化エンジンの不揮発性メモリに、１２８ビットフィールドとして格納されることが好ましい。鍵の値は、通常、シードアルゴリズムによって、ランダムに生成される。鍵の再生成は、鍵の値を変更してしまう可能性が高いが、（擬似）乱数発生器が、実際、連続して同じ値を発生してしまうこともあるため、これは保証できない。しかし、再生成中に鍵の値が変更されないこともあるということが十分に理解されたものであっても、鍵の変更という用語は、本願明細書において、鍵の再生成という用語と交換可能に使用される。言うまでもなく、情報を暗号化するために使用する鍵の値は重要なものである。同じ鍵の値は、暗号化と復号化の両方で使用されなければならない。このように、鍵の値が、システムの起動時ごとに再生成されれば、起動前に暗号化されたデータは、新しい鍵では復号化できないため、事実上、価値のないものになる。データは、カードのメモリに物理的にまだ存在はするが、ロックを解除するための適切な鍵の値がなければ役に立たない。このように、ハッカーが、どうにかしてカードをセキュア状態１５０ではない状態に戻そうとしても、価値のある情報を得ることはできない。状態１１０および１６０において、起動時ごとに新しい鍵が生成され、状態１５０において情報をすでに格納するために使用した鍵は、その情報を復号化するために利用することはできない。状態１７０および１１０において、暗号化エンジンは、鍵の値に関係なく、単に利用不能である。
【００２３】
別のセキュリティ手段は、ファームウェアおよびハードウェアのテスト機構の利用を制限することを含む。このシステムは、この機構を有効化または無効化する論理を備える。前述したホストバスは、カードのファームウェアをテストするために使用される機構の１つである。ホストは、ファームウェアをテストするために、ホストバス上で診断コマンドを発行できる。また、ハードウェアは、これらのコマンドの実行時にテストされてもよい。また、ハードウェアは、ＪＴＡＧポートとともにハードウェアバス上で直接テストされ、これにより、システムのさまざまなメモリへの直接アクセスが得られる。状態１４０および１５０において、ＮＶＭテスト機構、ＨＷテスト機構、およびＦＷテスト機構がすべて無効化されていることに留意されたい。
【００２４】
以下、図２Ａに示されているような状態および状態間の推移について、さらに詳細に説明する。
【００２５】
状態１１０は、コントローラの不揮発性メモリ（ＮＶＭ）テストと呼ばれる。この状態は、メモリダイを作製した後の初期状態であり、ダイがメモリカードにパッケージ化され実装される前にコントローラダイの不揮発性メモリをテストするために使用される状態である。この状態で行われるテストは、ダイがウェハフォーマットと一体にある間の個片化前に実行されてもよく、または、他の形態において、個片化後に個々のダイに実行されてもよい。ＮＶＭがテストされると、そのコンテンツ（ＮＶＭテスタを使用）は、状態１２０を表示するために初期化され、ヒューズ６６が飛ばされる。この状態で、暗号化エンジン４０は無効化される。この状態には、カードのライフサイクルにおいて一度入るようにしか設計されておらず、システム内に、この状態に戻るための方法はない。しかし、前述したように、この状態は、ライフサイクル状態を既定するために使用される３２ビット値の多数の可能な組み合わせの６つの予め割り当てられた値以外のもので表示される。不正値が検出され、ヒューズが飛ばされれば（ＮＶＭ状態１１０にはいることができない）、暗号エンジンは、準備が整った状態にならず、システムが立ち上がらないか、または、図３を参照して以下に説明するステップ３０２を越えて進む。したがって、カードが起動され、この状態になるたびに、新しい鍵がランダムに生成され、すでに暗号化されたデータの復号化は不能である。暗号化エンジンが、このモードにおいて有効化されなくても、このモードが、作製中にウェハが完全な状態のままである間に使用されるように設計されているため、何らかの想定外の方法でこの状態に入り込み、さまざまなテストポートおよび機構を経由してカードのセキュアデータを探ろうとしているハッカーから保護するために、鍵は起動時ごとに再生成される。他の方法では、デザインによって、既存の状態１１０の後、ＮＶＭテスト機構は利用可能でなくなる。
【００２６】
状態１２０は一定の有効化状態と呼ばれる。この状態において、暗号化エンジン４０は有効化される。暗号化エンジンが使用する鍵は、乱数発生器によって生成されず、メモリに格納されないが、何らかの外部ソースに配線接続され、このフェーズ中、一定である。ハードウェアおよびソフトウェアテスト機構は、この状態において利用可能である。この状態には、ハードウェアテスタによって入る。
【００２７】
状態１３０は、ランダム有効化状態と呼ばれる。この状態は、状態１２０に類似しているが、秘密鍵は、状態１３０に入るとき、一定であり配線接続される代わりに、ランダム生成される（一度）。これは、メモリカードの最終テスト、特徴化、および資格付与用に使用される状態である。暗号化および復号化を含む暗号動作は、秘密鍵または秘密鍵から導き出される鍵を使用したファームウェアを用いて可能である。この状態には、ホストデバイス２４によってシステム１０内にロードされた後、システム１０によって実行されるコードによって入る。
【００２８】
状態１４０は、最終鍵状態と呼ばれる。この状態において、カードは、カードが出荷される最終秘密鍵を使用する。ハードウェアおよびソフトウェアテスト機構は、カード論理によって無効化され、アクセス不能である。これは、図１Ｂに示されているように、ハードウェアテストバスおよびテストパッドを含む。この状態は、製品の出荷時に使う鍵で保護される必要がある最終ファームウェアおよびコンフィギュレーションデータをカードにロードするために使用される。製品は、この状態において構成可能であるが、状態１５０ではできない。この状態には、ホストコマンドによって入る。コマンドは、ホストからダウンロードされ、カードによって実行されるコード（「ＤＬＥコード」）に含まれてもよい。コマンドは、他の形態において、ホストから直接発行されてもよい。これは、以下でＤＬＥコードという用語を利用するときは常に当てはまる。
【００２９】
状態１５０は、セキュア状態と呼ばれる。これは、工場からカードが出荷される状態である。ハードウェアおよびソフトウェアテスト機構は、カード論理によって無効化され、アクセス不能である。この状態には、製造現場での製品のテストおよびコンフィギュレーションの最後に入る。鍵は再生成されず、状態１４０中にメモリに格納された値が、状態１５０の間利用される。カードのさまざまな動作に派生的な鍵を利用してもよいが、鍵９９は、これらの鍵を導き出し、データを暗号化および復号化するのに常に必要なものである。この鍵は、セキュアカードの寿命の間（セキュアカードとして顧客の手にある間、その後は含まず）利用されることを意味する。カードのファームウェアは任意の動作に対して秘密鍵を使用することができない。カード内におけるすべての暗号化および復号化を実行する責任があるのは、暗号化エンジンのハードウェアである。この状態には、ＤＬＥコードによって入る。
【００３０】
状態１６０は、返品認可またはＲＭＡ状態と呼ばれる。この状態は、適切に作動しないという理由で消費者によって返品されたカードをテストできるように設計される。これは、カードの故障解析を実行可能な状態である。ソフトウェアおよびハードウェアテスト機構が再度利用可能である。この状態が、工場によってのみアクセス可能であることに留意することが重要である。さらに、ＲＭＡ状態に入った後は、セキュアカードとして再度カードを使用することができない。言い換えれば、カードは、状態１５０に再度入ることはできず、あるいは、他の点では、カードにある情報を復号化したり、またはカードに暗号化情報を保存したりするために使用することもできない。秘密鍵は、このモードに入るときと、カードがこの状態にある間に実行されるチップリセットごとの間に再生成される。復号化に暗号鍵を使用する動作は、起動時のみ有効化され、ファームウェアは、任意の動作に秘密鍵を使用することができない。この状態には、ホストコマンドの結果であるＲＯＭコードによって入る。
【００３１】
状態１７０は、無効化状態と呼ばれる。無効化状態において、暗号エンジン４０は、暗号機能のすべてを無効化したバイパスモードにある。カード内では、非セキュアアルゴリズムのみが使用される。ハードウェアおよびソフトウェアテスト機構は、暗号化エンジンがなければ、侵入する価値も、改竄する価値もないため、再度有効化される。任意の暗号化情報が復号化できず、無価値にされる。また、暗号化され、引き続き復号化されてもよい追加情報がない。この状態は、非セキュアまたは「レギュラー」カードを生産するために使用されてもよい。このようにして、同じシステムが、セキュアおよび非セキュアメモリカードの両方を生産するために使用できる。その違いは、非セキュアカードにおいて、カードのセキュリティシステムが無効化状態にあるとか、またはカードが、より一般に、状態１７０にあるとか言われることである。また、無効化状態は、故障解析用に工場に戻され、したがって、ＲＭＡ状態１６０にされた製品を再出荷するために使用できる。前述したように、カードは、ＲＭＡ状態１６０に入った後、それよりも前の状態のいずれにも戻ることはできず、セキュアカードとして再販することができない場合もある。しかし、機能できるか、または工場で再度機能できるようにしたカードが、無効化状態１７０に置かれ、非セキュアカードとして再販することもできる。このようにして、カードは回収でき、あらゆる集約的な目的で、新しい非セキュアまたは「レギュラー」カードと同じものとなる。回収された非セキュアカードと、新しい非セキュアカードの両方は、同じ状態で同じファームウェアを走らせることになる。
【００３２】
現在、圧倒的多数のカードは、非セキュアカードである。主に、コンテンツプロバイダの需要により、セキュアカードを市場に広めようとする動きが高まっているが、セキュアカードと非セキュアカードとの間での将来的なメモリカードの販売パーセンテージがどのようになるかは明確ではない。明確なことは、多数の非セキュアコンテンツが常にあり、したがって、非セキュアカードの需要があると予想されることである。本発明は、（許可された人によってのみ）セキュアカードのハードウェアおよびソフトウェアのすべてをテスト可能にするだけではなく、さまざまな非セキュア用の返品されたセキュアカードを回収することもできる。さらに、本発明のシステムにより、堅牢なセキュリティを備えているが、故障解析を実行するために、廃棄する必要もなく、またはセキュリティシステムを妥協する必要もないカードが得られる（アクセス可能な「抜け穴」に関して）。メモリカードを使用するデバイスが一般に普及していくことを考慮すれば、欠陥のあるセキュアカードとなったものを回収できることは、消費者にとっても、製造業者にとっても同様に多大な利益となる。
【００３３】
図３は、前述したシステムを実行するメモリカード用の起動プロセスを示す。起動プロセスのさらなる情報に関しては、ミッキー・ホルツマンらによる同時係属出願中の米国特許出願第１１／２８４，６２３号「メモリコントローラファームウェアのハードウェアドライバの完全性チェック方法」（代理人整理番号ＳＮＤＫ．４０８ＵＳ１）（特許文献１）を参照されたい。この特許出願は、その全体が本願明細書において参照により援用されている。
【００３４】
ステップ３０２において、システムは、暗号エンジン４０および他の構成要素を含む暗号ハードウェアの準備が整っているかをチェックする。このシステムは、ハードウェアの準備が整うまで進行を待機する。ハードウェアの準備が整うと、システムは、ステップ３０４に進む。ステップ３０４において、システムは、カードが状態１７０、すなわち、無効化状態にあるかを確認するチェックを行う。カードが状態１７０にあれば、ステップ３０６において、システムは、フラッシュメモリ２０からＲＡＭ１１へ、最小量の始動コードである起動ローダ（「ＢＬＲ」）をアップロードする。次に、ステップ３０８において、システムは、ＢＬＲが適切にアップロードされたかを確認するチェックを行う。アップロードされていれば、ステップ３１０において、システムは、非セキュアモードで走らせる必要のあるファームウェアをアップロードする（標準ファームウェアから暗号機能をなくす）。ステップ３０８において決定したように、ＢＬＲが適切にアップロードされていなければ、システムは、以下に説明するステップ３２４に進む。
【００３５】
ステップ３０４において、システムが、カードが状態１７０にないと決定すれば、システムは、ステップ３１２において、ＲＡＭコンテンツをクリアする。その後、システムは、ステップ３１４においてカードがどの状態にあるかを確認するチェックを再度行う。カードが状態１２０、１３０、または１４０にあれば、ＢＬＲは、ステップ３１６においてアップロードされる。ステップ３１８において、システムは、ＢＬＲが適切にアップロードされたかを確認するチェックを行う。次に、ステップ３２０において、ＢＬＲコードの完全性チェックが実行される。この完全性チェックは、メッセージ認証コード（ＭＡＣ）値を計算し、その値を参照値と比較することによって実行されるハードウェアベースのチェックである。完全性チェックの結果は、メモリに格納された単純なフラグである。ステップ３２２において、ファームウェアは、完全性がベリファイされたか否かを確認するためにフラグをチェックする。完全性が承認されれば、システムは、ステップ３４２において、セキュアモードで走らせるのに必要なファームウェアをアップロードし、これにより、非セキュアデータを格納し取り出せることができることは言うまでもない。完全性が、ステップ３２２において決定されるように承認されなければ、システムは、ステップ３２４によって現されているように、ホストからのある命令をダウンロードし実行するために、ホストからの診断コマンド（ＤＬＥコマンド）を待機する。ステップ３２６から分かるように、ＤＬＥコマンドが受信されれば、システムは、ステップ３２８において、ＤＬＥコードをＲＡＭにロードするために進む。ステップ３３０において、ＤＬＥコードは、コントローラによって実行される。
【００３６】
ステップ３１４において、カードが状態１２０、１３０、または１４０にないことが決定されれば、システムは、ステップ３３２において、カードが状態１５０にあるかを確認するチェックを行う。この状態にあれば、システムは、ステップ３３４において、ＢＬＲをアップロードする。これは、ＲＯＭコードによって行われる。ステップ３３６で決定されるように、ＢＬＲのアップロードが承認されれば、ステップ３３８において、ステップ３２０において前述したようなハードウェアベースの完全性チェックが実行される。このハードウェアベースの完全性チェックの後、ステップ３４０において、別の完全性チェック、この場合は、ソフトウェアベースの完全性チェックが実行される。完全性が承認されれば、システムは、ステップ３４２において、セキュアモードにおいて走らせる必要のあるファームウェアをアップロードし、これにより、非セキュアデータを格納し取り出すことができることは言うまでもない。
【００３７】
ステップ３３２において、カードが状態１５０にないことが決定されれば、システムは、カードの状態およびカードが状態１６０にあるかをチェックし、この状態にあれば、システムは、ステップ３４８によって表される診断コマンドを待機する。しかし、ステップ３４４において、カードが状態１６０にないことが決定されれば、システムは、ステップ３４６から分かるように、ＲＭＡ状態１６０に進むためのコマンドを待機する。
【図面の簡単な説明】
【００３８】
【図１Ａ】本発明の１つの実施形態によるシステム１０の概略図である。
【図１Ｂ】システム１０の別の実施形態の概略図である。
【図２Ａ】本発明の１つの実施形態におけるさまざまなライフサイクルフェーズを示すフローチャートである。
【図２Ｂ】さまざまなライフサイクルフェーズの表である。
【図３】立ち上げプロセスおよびライフサイクルフェーズを示すフローチャートである。
【図１Ａ】
2008530659.tif 000004
【図１Ｂ】
2008530659.tif 000005
【図２Ａ】
2008530659.tif 000006
【図２Ｂ】
2008530659.tif 000007
【図３】
2008530659.tif 000008
【国際調査報告】
2008530659.tif 000009
2008530659.tif 000010
2008530659.tif 000011
2008530659.tif 000012
2008530659.tif 000013