"動作を開始するとともにメモリ記憶装置を動作するための方法であって、前記メモリ記憶装置の大容量記憶ユニット内に前記メモリ記憶装置のファームウェアを設けるステップと、前記ファームウェアを前記メモリ記憶装置のハードウェアで実施される暗号化エンジンに通すステップと、前記ファームウェアについてのハッシュ値を前記ハードウェアで実施される暗号化エンジンで計算するステップと、計算されたハッシュ値を記憶されたハッシュ値と比較するステップと、前記計算されたハッシュ値が前記記憶されたハッシュ値と一致する場合に、前記ファームウェアを実行するステップと、を含む方法。メモリ記憶装置の動作を開始するための方法であって、前記メモリ記憶装置の大容量記憶ユニット内に、前記メモリ記憶装置の動作を制御するファームウェアを設けるステップと、前記ファームウェアを前記メモリ記憶装置の大容量記憶ユニットから前記メモリ記憶装置のランダムアクセスメモリへコピーする、読み出し専用メモリ内の第1の命令セットを実行するステップと、前記ファームウェアを前記大容量記憶ユニットから前記メモリ記憶装置のメモリコントローラ内のハードウェアで実施される暗号化エンジンに通すときに、ファームウェアの完全性をベリファイするステップと、完全性がベリファイされた後に、ランダムアクセスメモリからファームウェアをマイクロプロセッサで実行するステップと、を含む方法。請求項2記載の方法において、前記ファームウェアは、前記大容量記憶ユニットからさらなるファームウェアをフェッチするための命令を含む方法。請求項3記載の方法において、さらなるファームウェアを実行するステップをさらに含む方法。請求項1記載の方法において、前記ファームウェアを設けるステップは、複数のファームウェアオーバーレイを設けることを含む方法。請求項5記載の方法において、複数のファームウェアオーバーレイのそれぞれのオーバーレイ内に、ハッシュを備えるオーバーレイを含む多数のファームウェアの計算されたハッシュ値に等しいことを期待されたハッシュ値を記憶するステップをさらに含む方法。請求項6記載の方法において、読み出される多数のファームウェアの計算されたハッシュ値は、期待されたハッシュ値を含むセクタが読み出されたときに、期待されたハッシュ値だけに対応し得る方法。請求項6記載の方法において、前記期待されたハッシュ値を含むセクタブロックまたはページ以外のセクタブロックまたはページ上の誤った肯定一致を無視するステップをさらに含む方法。請求項1記載の方法において、前記ハッシュ値を計算するステップは、MAC[0...i]=MAC[MAC[0...i-1],blocki]でブロックiについてのMAC値が計算されることを含むが、結果生じたMAC値はブロック0からiまでを対象として含む方法。請求項9記載の方法において、前記メモリ記憶装置のメモリコントローラの、前記大容量記憶ユニット内にはないレジスタ内にブロックiについての計算されたMAC値を記憶するステップをさらに含む方法。請求項9記載の方法において、結果生じたMAC値がブロック0からiまでを対象として含むMAC[0...i]=MAC[MAC[0...i-1],blocki]で前記ブロックiについてのハッシュ値を計算するステップは、前記ファームウェアのブートローダに対して行われる方法。請求項9記載の方法において、結果生じたMAC値がブロック0からiまでを対象として含むMAC[0...i]=MAC[MAC[0...i-1],blocki]で前記ブロックiについてのハッシュ値を計算するステップは、前記ファームウェアのブートローダに対して行われるが、前記ファームウェア全体に対しては行われない方法。請求項9記載の方法において、結果生じたMAC値がブロック0からiまでを対象として含むMAC[0...i]=MAC[MAC[0...i-1],blocki]で前記ブロックiについてのハッシュ値を計算するステップは、前記ファームウェア全体に対して行われる方法。メッセージ認証コードMACは、何らかのコンテンツまたは、メッセージから計算されるコンテンツの完全性を証明するために使用される数である。その目的は、コンテンツが変更されたかどうかを検出することである。メッセージ認証コードは、メッセージおよび何らかの秘密データから計算されるハッシュである。秘密データを知らなければ、偽造することは困難である。MACは、秘密鍵を使用するDESまたはAES暗号に基づくアルゴリズムを使用して計算される。その後、MACは、メッセージと共に記憶または送られる。受信者は、同一のアルゴリズムおよび秘密鍵を使用してMACを再計算し、それを記憶または送られたものと比較する。それらが同一であれば、コンテンツまたはメッセージは改変されていないものとされる。DESデータ暗号化標準は、56ビットキーを使用するNIST標準の暗号化暗号である。NISTによって1977年に採用されたが、2001年にはAESが公式標準として取って代わった。DESは、4つの異なる動作モードにおける64ビットのブロックを処理する対称ブロック暗号であって、電子コードブックECBが最も一般的である。トリプルDESは、いくつかの複数パス方法を追加することによって安全性を増強した。例えば、1つの鍵で暗号化し、その結果を第2の鍵で復号化し、それを再び第3の鍵で暗号化する。しかし、追加のパスは、多大な計算時間を処理に追加する。DESは、最強のセキュリティを必要としないアプリケーションにおいて今でも使用されている。改良形暗号化標準AdvancedEncryptionStandardAESは、NIST標準の暗号化暗号であって、128ビットのブロック長と、128,192,または256ビットのキー長とを使用する。2001年にトリプルDES方法に公式に取って代わったAESは、ベルギーのヨアンダーメンおよびビンセントライメンによって開発されたラインダールアルゴリズムを使用する。AESは、3つに変わって1つのパスで暗号化でき、そのキーサイズは、トリプルDESの168ビットより大きい。セキュアハッシュアルゴリズムSHA-1は、20バイトの出力を生じさせる。NISTおよびNSAは、これをデジタル署名標準と共に使用するように設計し、現在幅広く使用されている。MD5は、本発明と共に使用されるような他のハッシュ関数である。前述した標準および様々な他のアルゴリズムは、本発明と共に使用されるようなハッシュ関数および値の例示的な例である。今日利用可能かつ将来開発される他の形のハッシュ関数および値も、本発明と共に使用できる。前述した規格および様々な他のアルゴリズムおよび/または標準は、暗号化技術における当業者に周知であるが、以下の出版物は有益であり、その全体が本願明細書において参照により援用されている。これら出版物とは、シーラフランケルによるRFC3566-AES-XCBC-MAC-96アルゴリズムおよびIPsecを伴うその使用,アメリカ合衆国、メリーランド、20899、ゲイザースブルグ、820ウエストダイアモンドアベニュー、ルーム677にあるNIST-国立標準技術研究所、ハワードMヘイズおよびRベンカテザンによるインターネットプロトコルセキュリティIPSECのためのメッセージ認証コードMACアルゴリズムの性能比較AlgorithmsfortheInternetProtocolSecurity,電気およびコンピュータエンジニアリング,ニューファンドランドのメモリアル大学カナダ、A1B3S7、ニューファンドランド、セントジョンズhttpwwwengrmuncahowardPAPERSnecec2003bpdf非特許文献2、およびリノにあるネバダ大学のジョンブラック、カリフォルニア大学デービス校のフィリップロガウェイによるAES動作モードに関するNISTに対するコメント:CBCMACを使用する任意長メッセージのハンドリングについての提言,とも称される暗号エンジン40とを備える。アービタ36は、1つのマスタまたはイニシエータHDMA32、FDMA34、またはCPU12であってもよいだけが任意のときにアクティブであることができ、かつ、スレーブまたはターゲットはBRAM38であるような共有バスアービタである。アービタは、適切なイニシエータの要求をBRAM38へ振り向ける役割を担う。HDMA32およびFDMA34は、HIM16、FIM18、およびBRAM38またはRAM11間で搬送されるデータを担当する。CPUバスアービタ35は、例えば暗号エンジンを迂回したい場合のような所定の状況において使用されるシステムバス15を通じた暗号エンジン40およびフラッシュDMA34からRAM11への直接データ搬送を可能にする。HDMA32の動作およびFDMA34の動作は従来どおりであり、本願明細書において詳述する必要はない。BRAM38は、ホスト装置24およびフラッシュメモリ20間を通るデータを記憶するために使用される。HDMA32およびFDMA34は、HIM16/FIM18およびBRAM38またはCPURAM12a間のデータの転送と、セクタ完了の指摘という役割を担う。フラッシュメモリ20からのデータがホスト装置24によって読み出されると、メモリ20内の暗号化されたデータは、バス28、FIM18、FDMA34、および暗号エンジン40を通じてフェッチされ、暗号化されたデータは、BRAM38において復号化および記憶される。その後、復号化されたデータは、BRAM38からHDMA32、HIM16、およびバス26を通じてホスト装置24へ送られる。BRAM38からフェッチされたデータは、HDMA32へ渡される前に、暗号エンジン40によって暗号化されてもよく、ホスト装置24へ送られるデータは、メモリ20に記憶されたデータを暗号化したものと比べて異なるキーおよび/またはアルゴリズムによって再び暗号化される。前述した処理において復号化されたデータをBRAM38に記憶すると、権限のないアクセスに対してデータが脆弱となりうるが、その代わりに、BRAM38へ送る前に、メモリ20からのデータを復号化して、暗号エンジン40によって再び暗号化してもよい。その後、BRAM38内の暗号化されたデータは、以前のようにホスト装置24へ送られる。これは、読み出し処理中のデータストリームを示すものである。データがホスト装置24によってメモリ20に書き込まれると、データストリームの方向が逆となる。例えば、暗号化されていないデータがホスト装置によってバス26、HIM16、HDMA32を介して暗号エンジン40へ送られると、そのようなデータは、BRAM38に記憶される前に、エンジン40によって暗号化されてもよい。代わりに、暗号化されていないデータは、BRAM38に記憶されてもよい。その後、データは、メモリ20へ向かう途中でFDMA34へ送られる前に暗号化される。図1Bは、システム10の他の実施形態を示す。この好ましい実施形態において、暗号化エンジン40およびファームウェア完全性回路31は、コントローラ12の一部として示されている。これらの要素は、コントローラの一部であるのが好ましいが、ある実施形態において、コントローラのパッケージ内に統合されていなくてもよい。前述したように、RAM11、フラッシュメモリ20、およびコントローラ12は、すべてシステムバス15に接続されている。ホストインターフェイスバス26は、ホスト装置24図示せずと通信する。ファームウェアの完全性ベリファイ図2は、システム10を実行するファームウェア200を含むフラッシュメモリのメモリ空間の図である。システムファームウェア200は、フラッシュメモリ20内に常駐して変更不可能なのが好ましいブートローダBLR部200aと、フラッシュメモリ20内に常駐して必要に応じて変更可能なシステムファームウェア200bとを備える。ある実施形態において、直接またはシャドウイングされたコピーから実行される場合にBLR部200aをポイントする追加のファームウェアがROM13内にあってもよい。システムファームウェア200のサイズは、実行元であるRAMモジュールよりも大きいので、システムファームウェアは、オーバーレイと称されるより小さい部分に分割される。好ましい実施形態におけるBLRの完全性ベリファイは、固有のその場の計算を使用し、当該計算において、期待値がデータ自身に記憶され、コピーがフラッシュメモリ20以外のメモリ内のレジスタに一時的に記憶される。しかし、ある実施形態において、BLRの完全性をベリファイするために使用される手法は、システムファームウェア200bの完全性をベリファイするためにも使用可能である。前述したように、任意のハッシュ値およびハッシュ手法を使用可能であるが、MACまたはSHA-1の値が現時点においては好ましく、簡素化のために、好ましい一実施形態において、一方または他方の使用について説明する。通常、SHA-1のダイジェストをMAC値の代わりに使用してもよく、その逆であってもよい。MAC値を使用する利点として、MAC値が、ハードウェアと、MACを作成したハードウェアのキーとに関連していることが挙げられる。SHA-1値は、単にデータ自体に基づいて所定のデータセットのために作成可能だが、MAC値は、キーなしでは再作成することは不可能であり、したがって、より強固なセキュリティを提供する。特定的には、MAC値を作成するには、暗号化エンジン40の不揮発性メモリに記憶されたキー99を使用しなければならないが、MAC値を再作成するには、他のプロセッサを使用することができない。例えば、ハッカーは、ファームウェアおよび関連するMAC値を複製するために、システム外部から他のプロセッサを使用することはできない。同じくフラッシュメモリに記憶されるのは、様々なユーザデータファイル204である。図に示していない様々な他のプログラムおよびデータがフラッシュメモリ図示せず内に記憶されてもよい。これらのファイルは、暗号化されてもよく、その完全性は、同様または他のやり方でベリファイされてもよい。図3は、完全性チェックモードの場合のシステム10によって使用されるいつかのデータセクタの構造を示す。特に、BLRは、この構造を使用するのが好ましい。BLRコード307自体は、他のデータ間に挟まれるようにしてBLR201aを構成している。BLRコード307がロードされる前に、いくつかの構成情報がロードされる。構成情報は、ファイル識別FIDセクタ1および7に含まれている。BLRコード307に続いて、メッセージ認証コードセクタ309がある。MACセクタ309内には、BLRコード307の対応する部分についてのMAC値がある。これが、より詳細に以下に説明する、図5において計算された値と比較されるMAC値である。MACセクタは、様々な長さのデータを収容するためにゼロで埋められて、セクタの最終128ビットをMACが常に占めるようにする。BLRコード307は、BLR部分200a内のフラッシュメモリ20に記憶され、構成情報もフラッシュメモリ20に記憶されてもよい。図4は、BLRコードおよびファームウェアの完全性をベリファイすることを含む、システム10をブートおよび実行する処理を示す。特に、図4は、ファームウェア200のBLR部分200aに関するような完全性ベリファイ処理の概観を含む。好ましい一実施形態において、システムファームウェア200bおよびアプリケーションファームウェアのベリファイは、BLRのベリファイとは別個のものであり、かつ、当該ベリファイの後に生じる。注目すべきなのは、ファームウェアは、BLRによって一度に全てロードされるわけではないということである。BLRは、いつかのモジュールのみRAM常駐ファームウェアをロードし、他のモジュールオーバーレイは、必要に応じてロードされ、RAM内の複数の同じ位置へスワップされる。システム10が起動すると、ステップ404に示すように、完全性チェックモードで起動することになる。一般的に、このモードにおいて、暗号エンジン40は、前述した説明および図5に詳細に示すように、すべての入力データのMAC値を計算している。この処理は、入力データが可変長であり得、かつ、NANDフラッシュメモリ20内の任意の位置に記憶されうることを保証するものである。好ましい実施形態において、データは、書き込まれたのと同一の順序で読み出され、最終のブロックの読み出しにはMACが含まれることになる。MAC比較の結果は、ファームウェアがいつでもチェックするのに利用可能である。ここで、図4に示す個々のステップを説明する。ステップ410において、システムは、同じく図5のフローチャートに詳しく見受けられる処理に従って、BLRの完全性をチェックする。これは、システムが完全性チェックモードにある際にフラッシュメモリ20からの他のデータがベリファイされたのと同じやり方でBLRが暗号エンジン40を通ることで行われる。ステップ420において、システムは、ステップ410において行われた完全性チェックの結果をチェックする。これは、図5に見受けられる処理200の完全性チェックのステップ270で記憶された、問題があるかないかを示す結果フラグまたは他の指標をチェックすることによって行われる。BLRがOKでない場合、システムは、ステップ430に見受けられるようなホストコマンドを待って、返品許可RMA状態として知られる障害分析状態へシステムを送ることになる。この動作状態および他の動作状態またはモードについてのさらなる詳細については、ホルツマンらの同時継続中の米国特許出願第11/053,273号ライフサイクルフェーズを有するセキュアメモリカード特許文献1を参照されたい。この特許出願は、その全体が本願明細書において参照により援用されている。しかし、BLRがOKの場合、システムは、ステップ440において、BLRを実行することになる。ブートが完了すると、システムは、図4のステップ440に見受けられるように、BLR自身に含まれる命令に基づいて、完全性チェックモードを去ることになる。BLRは、数多くの命令またはステップを含む。そのうちの1つは、ステップ440aであって、BLRは、暗号エンジン40を通常モードに再構築し、言い換えれば、完全性チェックモードから暗号エンジン40を抜け出させる。BLRは、ステップ440bに示すように、システムにシステムファームウェア200bの完全性をチェックさせる命令も含む。図5は、図4に関して説明したような完全性ベリファイ処理410のフローチャートである。これは、システムが完全性チェックモードにある場合に、フラッシュメモリ20に記憶されたデータを読み出しおよびハッシュする一般的な処理を示す。NAND形フラッシュメモリの読み出しを例示の目的のために説明するものであるが、本発明は、大容量記憶の目的のために使用される任意の種類のメモリまたは媒体と共に使用することができる。繰り返すが、MAC値の使用を例示し、かつ説明するが、他のハッシュ値を使用してもよい。図2Bの表は、一般的に、対応する開始バイトと、バイト数とをエントリ毎に含むことになる図示せず。一般的に、好ましい実施形態において、処理全体は、NANDの完全性をページ毎ベースでベリファイするために使用される。この処理は、NANDに記憶された任意のデータの完全性をベリファイすることになる。データがたまたまファームウェアの場合には、ファームウェアの完全性をベリファイする。このようなページ毎の比較が好ましいが、より小さな単位またはより大きな単位での比較を行ってもよい。好ましい一実施形態における完全性ベリファイ処理は、図5に示すような固有の計算と制御ループとを使用する。ループは、連続する計算および比較動作を伴う。典型的には、ベリファイ手法において、何らかの種類の正しい値または期待値が予め記憶され、計算された値と比較される。図5に示す処理を有する好ましい一実施形態において、正しい値または期待値が、被テストデータ内に記憶される。それは、特定的には、前述した好ましい実施形態において、データブロックの最終128ビット内にある。読み出し中のセクタの最終128ビットは、実際上の目的のためには、正しいセクタが読み出された際に、記憶されたMACまたは他のハッシュ値といったん対応するだけとなる。誤った肯定一致が最終以外のページで生じるであろう確率は非常に小さいので、これは実際上の目的では無視できる。ステップ210において、NANDブロックiが読み出される。次に、ステップ215において、ブロックがチェックされて、必要があれば、ECC回路でオプションで訂正される。ECCは周知であり、データ内の物理的な誤りを訂正するために使用できる。完全性ベリファイ処理と共にECCを使用することが好ましいが、これは必須ではなく、完全性は、ステップ215を含んでも含まなくてもベリファイされる。ステップ220において、ハッシュ値が計算され、好ましい一実施形態において、MAC値が好ましい。ブロックiについてのMACが計算されるが、完全性ベリファイ処理410において、結果生じたMACは、ブロック0からiまでを対象として含み、数学的には以下のように表現できる。MAC[0...i]=MAC[MAC[0...i-1],blocki]ステップ220での計算後、ステップ260において比較が行われる。ステップ260において、コントローラのハードウェア、特にFWIC31が、ブロックiの最終128ビットを以前記憶されたMAC、すなわちMAC[0...i-1]と比較する。ステップ270において、比較結果がシステムのメモリに記憶される。ステップ260の比較が最初に行われる際には、MACレジスタに記憶された値は、実際には、適切な記憶済みMAC値ではないことになるが、どんな値であれたまたまレジスタ内にあることになり、よって、ランダムであると考えられる。その後、ステップ270において、比較結果は記憶されることになる。第1のブロックについて、比較はチェックされないことになる。ステップ230において、ステップ220において計算されたMAC値は、コントローラのレジスタ内、好ましくはFWIC31のレジスタ内に記憶されることになる。次に、ステップ235において、iの値が1増分されるようにカウンタが増分され、次のブロックがまたステップ210で読み出されることになる。ループは、ブロックiが読み出されるまで継続することになる。最終ブロックが読み出されて暗号化エンジンによって処理されると、ステップ230で記憶されたMACと最終128ビットが一致すれば、比較は一致を生じさせて、ステップ270において記憶された結果は、完全性がハードウェアによってベリファイされたことを反映することになる。BLRの最終ページが読み出された場合にのみ、完全性がベリファイされたことを示すために一致が使用されることになる。これまでのすべての一致誤った真の値は、無視されることになる。値が異なる場合には、データの完全性に問題があることを示すこととなる。逆に、値が同一の場合には、データの完全性が確実となる。一致が生じた後に、ステップ230において、MAC値は再び更新されることになるが、これは影響を及ぼさない、ループの冗長動作である。この連続計算処理によって、ハードウェアは、不確定なコンテンツのサイズをベリファイすることができる。言い換えれば、MAC値を適切に計算することができ、ブロックからなるファイルのブロック数またはサイズをまず確認する必要なく、完全性をハードウェアによってベリファイすることができる。前述した処理は、メモリカードのフラッシュメモリ20内に常駐する任意のデータについて、ある動作状態またはモード、特に完全性チェックモードにおいて使用される。本発明によるメモリカードの好ましい一実施形態において、当該データのいくらかは、実行されるとメモリカードを実行するファームウェアである。特に、システム10の電源投入の際に、システムがその通常の動作状態またはテスト状態である場合に、暗号エンジン40は、任意の入力データの完全性をベリファイするために、完全性チェックモードにおいて開始することによって暗号エンジン40自体を初期化する。データがたまたまファームウェアである場合には、BMU14および特に暗号エンジン40を通る際にファームウェアの完全性がベリファイされる。記憶された結果完全性自体ではないは、一実施形態において、ROM13に記憶されたコード内の命令を伴うソフトウェアによってチェックできる。注意すべきなのは、ROM13に記憶されたコードは結果をチェックするものの、データのフローを開始してもよく、これはフラッシュメモリ内のファームウェアの完全性をベリファイする際には含まれないということである。言い換えれば、コードは、ベリファイするためにファームウェアの数値計算もデータ操作も行う役割はない。ファームウェアの完全性をベリファイするのは、コントローラ12またはBMU14、FWIC31、および暗号エンジン40のハードウェアであり、これには、ブートローダBLR部分と、ある実施形態において、ファームウェアの他の部分も含まれる。図5で説明した処理は、ハードウェアHWとファームウェアFWとの両方が関与する。前述したように、ハードウェアが完全性チェックを行うのに対して、ファームウェアは、HW完全性チェックの末尾のフラグセットを単にチェックするだけである。HWおよびSWの機能またはループを、それぞれ図6および図7にさらに詳細に示す。図6を参照すると、ステップ320において、システムに電源が投入される。ステップ322において、コントローラのハードウェアが、FW完全性モードを開始する。これは、2つの中心的な行為を備える。第1は、図1のFWIC31を作動させることである。いったん作動されたFWIC31は、図6の残りのステップをうまくまとめあげ、これによって、暗号エンジン40と共に、ファームウェアのBLR部分の完全性をチェックする。第2の行為には、暗号エンジン40によって使用される暗号アルゴリズムを選択することが含まれる。前述したように、暗号エンジン40のハードウェアは、様々な互いに異なるアルゴリズムでデータを暗号化および復号化するように構成されている。ステップ328において、コントローラのハードウェアは、入力ブロックのダイジェストを計算する。この計算は、暗号エンジン40によって行われる。次に、ステップ330において、ステップ328において計算されたダイジェストを、以前のダイジェストの値と比較する。前述したように、値を保持するレジスタがチェックされて、ループの反復毎に比較されるが、最初の反復の際には、レジスタ内の値はランダムである。その後、完全性を示すフラグが、ステップ332において設定される。HWがファームウェアのBLR部分の完全性をベリファイしたかを確認するために、このフラグがシステムのファームウェアによってチェックされることになる。図7は、図6においてHWが完全性をチェックする一方で生じるファームウェアのループを示す。ステップ320においてシステムに電源が投入された後に、ステップ340においてCPUが初期化される。その後、ステップ342において、構成データ好ましい一実施形態において、図3のFID1が最初の有効ページに読み出される。次に、ステップ344において、システムは、BLR201Aの開始および終了ページを抽出する。これがいったんわかると、BLRページのすべてが読み出される。各ページが読み出されるにつれて、誤り訂正符号ECCが生成される。前述したように、ECC回路動作は周知であり、データ内の物理的な誤りをある一定の限界まで訂正するために使用することができる。完全性ベリファイ処理と共にECCを使用することが好ましいが、これは必須ではなく、完全性は、ECCを使用してもしなくてもベリファイされる。ページが読み出された後に、ステップ348においてECC回路でチェックされ、OKでない場合には、ページはECC訂正機構で訂正されるか、またはステップ352において代替のページが取り出されることになる。訂正または新規のページがOKであるとステップ354において判断されると、システムは、ステップ350において、読み出されるべきページがさらにあるかどうかをチェックする。そうである場合には、システムはステップ346へ戻り、他のページを読み出す。ステップ354において訂正されたまたは代替コピーがOKではないとステップ354が示す場合には、失敗状態がステップ356において示されることになる。ステップ350においてこれ以上ページがないと判断されると、失敗は示されず、システムは、完全性フラグ図6に示すようにハードウェアによって設定されているをステップ360においてチェックすることになる。ステップ360において、BLRがOKであるとフラグが示す場合には、HWによってベリファイされたので、ステップ362においてBLRが実行されることになる。この実行は、図4のステップ440において示したのと同じである。この完全性チェックは、ファームウェアの一部分、すなわちBLRについてのみ行われるが、ファームウェアのすべてもこのようにチェックすることができ、また、この説明はファームウェアのブートスラップを使用する好ましい実施形態に関することが理解されるべきである。加えて、本願において使用されるようなメモリカードという用語は、USBフラッシュドライブの形式要因をも含んでいるつもりである。本発明の様々な態様についてそれらの例示の実施形態に関して説明してきたが、本発明が、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。"