(57)【要約】【課題】データをメディア・カードから不安全なＰＣＩバスを介して安全に読み取るための安全なドライバを提供する。【解決手段】安全なコンピュータ・ドライバはハード・ドライブ１２６上に記憶された暗号化済みの命令を用いる。ＣＰＵ１０２は暗号化済みの命令のコードを１行ずつ検索し、ＢＩＯＳメモリ１０４内に記憶された解読命令を用いて、ＣＰＵの安全領域内で解読する。ＣＰＵはこの解読済みの命令を実行する。【選択図】図２
2004199688.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置内に記憶され、予め第１の暗号化機能を用いて暗号化されて第１の暗号化済みの命令を形成する、一連の第１の命令と、
前記第１の暗号化済みの命令を解読するための命令を有するメモリ・デバイスと、
ＣＰＵであって、前記記憶装置と前記メモリ・デバイスとに結合し、前記第１の暗号化済みの命令を前記ＣＰＵの保護領域内で解読して第１の解読済みの命令を形成する、ＣＰＵと、
を備えたコンピュータ・システム。
【請求項２】
ＣＰＵと周辺装置との間で不安全なバスを介して安全な送信を行う方法であって、
ＢＩＯＳ内に記憶された第２の命令を用いて前記ＣＰＵを動作させて、第１の暗号化済みの命令を記憶装置から検索し、
前記第２の命令の制御の下に前記第１の暗号化済みの命令を前記ＣＰＵの保護領域内で解読して第１の解読済みの命令を生成し、
前記ＣＰＵを制御する前記第１の解読済みの命令を用いて前記周辺装置へのコマンドを生成する、
前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータのドライバに関するもので、より特定すると、ＰＣＩバスに接続するメディア・カードのためのコマンドを生成するコンピュータのドライバに関するものである。
【背景技術】
【０００２】
フラッシュ・メディア・カードは交換する情報を記憶する一般的な方法になりつつあり、メモリのメガビット当たりのカードの価格が低下するに従ってこの傾向は高まるであろう。したがって、コンパクト・ディスク（ＣＤ）やＤＶＤを用いる代わりにこのメディアを用いてオーディオやビデオの記録などのデータを配布することは経済的に可能である。メディア・カード上に記憶されるデータは、許可なしに情報にアクセスすることを防ぐために、暗号化機能を用いて暗号化される。
【０００３】
関連出願の相互参照の項に示す同時継続出願は不安全なコンピュータ・バスを介してメモリ・カードを読み取ることに関するもので、より特定すると、安全化されたデータをフラッシュ・メディア・カードから不安全なＰＣＩバスを介して読み取る安全な方法に関するものである。本発明の方法は、コマンド構造の生成をフラッシュ・メディア・コアから、メディア・カードを差し込むコンピュータ・システムのＣＰＵに移すことである。この方法は、コマンドをドライバ内で暗号化し、暗号化済みのコマンドをＰＣＩバスを介して暗号化／解読モジュールに送って解読し、解読済みのコマンドをフラッシュ・メディア・カードに送るという手続きにより、安全化されたコマンドをＰＣＩバスで与える。
【０００４】
メディア・カードがその中に記憶した暗号化済みのデータを与えるとき、暗号化済みのデータはＰＣＩバスでＣＰＵに送られる。ドライバは情報を二重暗号化済みの形で（この場合は暗号化／解読モジュールを経てフラッシュ・メディア・コアに）、または元の暗号化済みの形で（この場合は暗号化／解読モジュールをバイパスしてフラッシュ・メディア・コアに）、ＰＣＩバスを介して返す。フラッシュ・メディア・コアはフラッシュ・メディア・カード上に記憶されたデータを専有の解読機能を用いて解読し、これを暗号化／解読モジュールに送って第２の暗号化機能を用いて暗号化し、これを暗号化済みの形でＰＣＩバスを介してＣＰＵに送る。ＣＰＵは第２の暗号化機能からの情報を解読し、データをサウンドおよび／またはビデオ・カードなどの利用装置に送る。このようにＰＣＩバスを通る全ての情報は少なくとも１つの暗号化済みの形にされるので、許可なしのアクセスを防ぐことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この方法の潜在的な問題はコンピュータ・ドライバ自体の実現方法にある。通常、コンピュータ・ドライバのための命令はハード・ドライブ内に記憶されている。もちろん、命令は不揮発性集積回路メモリ内に記憶してもよい。どちらの場合も、命令はドライバの動作中にまたはオフラインで記憶装置から読み取られる。コマンドの構造が分かると、許可されていない人でもメディア・カード上に記憶されている暗号化情報にアクセスすることができる。したがって、コンピュータ・ドライバを安全にする方法があれば、かかる許可のないアクセスを防ぎまたは困難にすることができる。
【課題を解決するための手段】
【０００６】
本発明の一般的な目的は安全なコンピュータ・ドライバを提供することである。
かかる目的と特徴は、本発明の１つの形態に係るコンピュータ・システムにより提供することができる。このコンピュータ・システムは記憶装置内に記憶された一連の第１の命令を含む。この命令は予め第１の暗号化機能を用いて暗号化され、第１の暗号化済みの命令を形成する。メモリ・デバイスは第１の暗号化済みの命令を解読するための命令を有する。ＣＰＵは記憶装置とメモリ・デバイスとに結合して、第１の暗号化済みの命令をＣＰＵの保護領域内で解読して第１の解読済みの命令を形成する。
【０００７】
本発明の別の形態は、暗号化済みのデータまたはコマンドをＣＰＵと周辺装置との間で不安全なバスを介して転送する安全な送信経路を含む。コンピュータ・ドライバは、一連の第１の命令であって、記憶装置内に記憶され、予め第１の暗号化機能を用いて暗号化されて第１の暗号化済みの命令を形成する一連の第１の命令と、一連の第２の命令であって、メモリ・デバイス内に記憶され、第１の暗号化済みの命令を解読して第１の解読済みの命令を生成する一連の第２の命令と、で構成し、第１の解読済みの命令はＣＰＵを動作させて周辺装置からデータまたは命令を受けまたは周辺装置にデータまたは命令を送り、ただし不安全なバスで送られる全てのデータとコマンドとは暗号化される。
【０００８】
本発明の更に別の形態は、ＣＰＵと周辺装置との間で不安全なバスを介して安全な送信を行う方法を提供する。ＢＩＯＳ内に記憶された第２の命令を用いてＣＰＵを動作させて、第１の暗号化済みの命令を記憶装置から検索する。第２の命令の制御の下に第１の暗号化済みの命令をＣＰＵの保護領域内で解読して第１の解読済みの命令を生成する。ＣＰＵを制御する第１の解読済みの命令を用いて周辺装置へのコマンドを生成する。
【実施例】
【０００９】
図１は、一般に１００で示す本発明に係るコンピュータ・システムのブロック図を示す。ＣＰＵはＬ２キャッシュを有し、コンピュータ・チップ・セットは、この技術で周知のように、バス１１４でＣＰＵに結合する「北ブリッジ」１１２と、シリアル・バス１２０で北ブリッジに結合する「南ブリッジ」１２２とを含む。ＲＡＭメモリ１０８はバス１１０で北ブリッジに結合し、利用装置１１８（ここではビデオ・チップ・セットとして示しているが、オーディオまたはオーディオ／ビデオ・チップ・セットでもよい）はバス１１６で北ブリッジに接続する。コンピュータ・システムのハード・ドライブはＡＴＡハード・ドライブ１２６として示されており、ＡＴＡバス１２４で南ブリッジに結合する。南ブリッジはバス１３４でポート（ＵＳＢポートや、パラレルまたはシリアル・ポート（図にレガシイ・ポート１３８として示す）など）に結合する。ＰＣＩバス１３０はバス１２８を介して南ブリッジ１２２に結合する。ＰＣＩバス１３０はバス１３２で既知のカード・バス１３６に結合し、カード・バス１３６はバス１４０でメディア・カード１４２に結合してよい。同時継続出願に示されているシステムでは、メディア・カードはＰＣＩバスに直接接続する。したがって、カード・バス１３６は点線で示されている。メディア・カード１４２は同時継続出願に示されているメディア・カード・インターフェースおよび解読回路と、ＰＣＩバスとインターフェースするのに必要な回路とを含む。メディア・カード・インターフェース回路にフラッシュ・メモリ１４６が結合する。フラッシュ・メモリ１４６は、同時継続出願に関して用いられる暗号化／解読機能に必要なキーを含む。
【００１０】
ＣＰＵ１０２は、一般にフラッシュ・メモリ内に記憶されるＢＩＯＳ１０４にバス１０６で結合するので、更新されたバージョンを必要に応じてＢＩＯＳを再ロードすることができる。
要素１３２，１３６，１４０、１４２，１４４，１４６を除くと、図１に示すシステムは一般に用いられるコンピュータ・アーキテクチャであって既知である。カード・バス１３６などのカード・バス・インターフェースも既知である。メディア・カードおよびそのインターフェースと暗号化／解読回路の動作は、フラッシュ・メモリ１４６の利用を含めて、同時継続出願に詳細に記述されている。同時継続出願では、フラッシュ・メモリ１４６はＥＥＰＲＯＭ２５４に対応する。
【００１１】
この一般に用いられるコンピュータ・アーキテクチャのＣＰＵは、起動するとフラッシュ・メモリ１０４内に記憶されているＢＩＯＳから命令をロードする。また、ＣＰＵはデバイス内に「保護領域」を有する。これにより、チップ外から動作を読み取ろうとする試みに対して動作を安全に実行することができる。この情報を読み取ろうとしていることをチップが検出した場合は、ＣＰＵはチップの機能を停止して情報を保護する。本発明はこの機能を用いる。
【００１２】
本発明では、以下に述べるドライバは暗号化済みの形でハード・ドライブ内に記憶する。ドライバをＲＡＭメモリ内に記憶することも可能であるが、一般にこれは行わない。なぜなら、ＲＡＭメモリは揮発性メモリであって、コンピュータを停止するとその内容が失われるからである。既知のデータ暗号化標準（ＤＥＳ）機能の１つ（同時継続出願で用いられているＤＥＳ暗号化機能など）を用いて、ハード・ドライブ内に記憶されるドライバを暗号化してよい。暗号化により、許可されていないユーザがメディア・ドライバの命令にアクセスしてメディア・カード上に記憶された暗号化済みの内容にアクセスすることは非常に困難になる。しかし動作するためには、ＣＰＵは暗号化されていない命令を有する必要がある。
【００１３】
本発明の動作について、図１と図２を参照して以下に説明する。図２でシステムを起動すると、ステップ２０４で、ＢＩＯＳは初期動作命令をＣＰＵにロードし、解読命令と、解読命令と共に用いられるキー（詳細は同時継続出願を参照）とがＣＰＵ集積回路上のＬ２キャッシュに記憶される。ステップ２０６で、メディア・カードのためのコマンド（カードが暗号化済みの内容をＰＣＩバスでＣＰＵに送るコマンドなど）を生成する必要があるときは、ＣＰＵはハード・ドライブ１２６上に記憶された暗号化済みのドライバ内の命令の次の１行を要求する。この命令の１行はハード・ドライブから南ブリッジと北ブリッジとを経てＣＰＵに送られる。所定の時刻にコードの１行だけが送られるので、許可されていない人がドライバ全体にアクセスするのは非常に困難になる。
【００１４】
ＣＰＵはＬ２キャッシュ内に記憶された命令を用いて、ＣＰＵの保護領域内でドライバ・コードの１行を解読する。解読はＣＰＵの保護領域内で行われるので、許可なしのアクセスに対して安全である。ＣＰＵのこの保護領域内で許可なしにコードを読み取ろうとした場合は、ＣＰＵは機能を停止する。これをステップ２０８に示す。命令の解読が終わると、ＣＰＵは命令が暗号化されていなかったかのように解読済みの命令を実行する。図２のブロック２１０に示すように、ＣＰＵはコンピュータ・コードの１行を実行してメディア・カード・コマンドを生成する。当業者に周知のように、コードの１行から２コマンド以上が生成されることがあり、また１コマンドを生成するのに複数行のコードが必要なこともある。次に、ＣＰＵは生成されたコマンドを、第２の暗号化機能（すなわち、第２のＤＥＳ暗号化機能）を用いて暗号化する。この暗号化機能は、同時継続出願に詳しく述べられているように、メディア・カード回路１４２が用いる暗号化機能と調和しなければならない。次に、この第２の暗号化済みのコマンドをＰＣＩバスでメディア・カード・インターフェース回路１４２に送る。コードの１行を暗号化して実行し終わると、ＣＰＵはハード・ドライブ１２６に暗号化済みのドライバ・コードの次の１行を要求して受ける。
【００１５】
ハード・ドライブ１２６上に記憶された暗号化済みのドライバを用い、ＢＩＯＳを含むフラッシュ・メモリ１０４内に記憶されたコードで解読して（これは安全と考えられる）、ＣＰＵ１０２の保護領域内で暗号化機能を実行することが機密保護技術を構成する。これにより、許可されていないユーザがメディア・カードへの機能コマンドを生成する命令にアクセスすることは困難になる。
【００１６】
メディア・カード読取り装置の動作については同時継続出願に詳しく述べられている。以下に簡単に説明する。ＣＰＵはコマンドを生成し、次に、メディア・カード・インターフェース回路の暗号化／解読回路が用いるものと同じＤＥＳ暗号化機能を用いてこれを暗号化する。北ブリッジと南ブリッジとを介して暗号化済みのコマンドをＰＣＩバスに送り、更に、ＤＥＳ暗号化／解読回路を含むメディア・カード・インターフェース回路に送る。ここで暗号化済みのコマンドを解読し、これを用いて所定の機能を実行するようメディア・カードに命じる。この機能は、例えば、カード上に記憶された暗号化済みのデータを提供することである。次に、暗号化済みのデータをＰＣＩバスに直接送り、南ブリッジと北ブリッジとを介してＣＰＵに送る。データはすでに暗号化済みの形になっているので、更に暗号化する必要はない。この時点で、ＣＰＵは２つの経路のどちらかをとる。メディア・カード上に記憶されたデータはすでに暗号化されているので、ＣＰＵは北ブリッジと南ブリッジとを介してデータをＰＣＩバスに戻し、更に、メディア・カード・インターフェース回路のメディア・コア（カード上に記憶されたデータを解読するハードウエア解読回路）に戻す。
【００１７】
または、ＣＰＵは暗号化済みのデータを暗号化して二重暗号化済みのデータを作り、北ブリッジと南ブリッジとを介してこれをＰＣＩバスに送り、更に、メディア・カード・インターフェース回路１４２内の暗号化／解読回路に送ってよい。暗号化／解読回路は二重暗号化済みのデータを解読してＤＥＳ暗号化を取り除く。得られたデータはまだメディア・カード暗号化による暗号化済みの形であり、メディア・コアでこれを解読する。これで解読済みのデータが得られる。すなわち、メディア・カードの内容が暗号化されていない形で利用できる。メディア・コアは暗号化されていないデータを暗号化／解読回路に送り、ＤＥＳ暗号化機能を用いてデータを暗号化し、ＰＣＩバスを介して、また南ブリッジと北ブリッジとを介してＣＰＵに送る。ＣＰＵはＤＥＳ解読機能を用いてデータを解読し、北ブリッジを介して解読済みのデータをビデオ・チップ・セット１１８などの利用回路に送る。このように、ＰＣＩバスを流れる全ての情報は暗号化済みの形である。
【００１８】
本発明について好ましい実施の形態を参照して特に図示し説明したが、当業者が理解するように、クレームに定義された本発明の精神と範囲から逸れることなく本発明に種々の変更や修正を行うことができる。例えば、本発明はここに説明したＰＣＩバスなどの特定のバス標準に限定されるものでなく、また特定の記憶装置または特定のコンピュータ・アーキテクチャに限定されるものでもない。ＤＥＳ機能以外の暗号化方式を、ハードウエア・ドライブ上に記憶されたドライバ・コードの暗号化にもＰＣＩバスで用いられる暗号化にも用いることができる。
【００１９】
以上の説明に関して更に以下の項を開示する。
（１）コンピュータ・システムであって、
一連の第１の命令であって、記憶装置内に記憶され、予め第１の暗号化機能を用いて暗号化されて第１の暗号化済みの命令を形成する、一連の第１の命令と、
前記第１の暗号化済みの命令を解読するための命令を有するメモリ・デバイスと、
ＣＰＵであって、前記記憶装置と前記メモリ・デバイスとに結合し、前記第１の暗号化済みの命令を前記ＣＰＵの保護領域内で解読して第１の解読済みの命令を形成する、ＣＰＵと、
で構成するコンピュータ・システム。
【００２０】
（２）  第２の暗号化機能を用いて前記ＣＰＵ内で前記第１の解読済みの命令を暗号化する一連の第２の命令を更に含む、第１項記載のコンピュータ・システム。
（３）  前記第１の暗号化機能は第１のＤＥＳ暗号化である、第１項記載のコンピュータ・システム。
（４）  前記第２の暗号化機能は第２のＤＥＳ暗号化である、第2項記載のコンピュータ・システム。
【００２１】
（５）  前記記憶装置はハードディスク・ドライブである、第１項記載のコンピュータ・システム。
（６）  前記メモリ・デバイスはフラッシュ・メモリＢＩＯＳ集積回路である、第１項記載のコンピュータ・システム。
（７）  前記ＣＰＵは周辺装置から第１の暗号化済みのデータを受け、
前記第２の暗号化機能を用いて前記第１の暗号化済みのデータを暗号化して第２の暗号化済みのデータを形成する、
第2項記載のコンピュータ・システム。
【００２２】
（８）  前記ＣＰＵは前記第２の暗号化済みのデータを不安全なバスで送る、第７項記載のコンピュータ・システム。
（９）  前記第２の暗号化機能はＤＥＳ機能であり、前記バスはＰＣＩバスである、第８項記載のコンピュータ・システム。
（１０）  前記第１の暗号化命令は一度に１行という方法で解読する、第１項記載のコンピュータ・システム。
【００２３】
（１１）  暗号化済みのデータまたはコマンドをＣＰＵと周辺装置との間で不安全なバスを介して転送する安全な送信経路において、コンピュータ・ドライバであって、
一連の第１の命令であって、記憶装置内に記憶され、予め第１の暗号化機能を用いて暗号化されて第１の暗号化済みの命令を形成する、一連の第１の命令と、
一連の第２の命令であって、メモリ・デバイス内に記憶され、前記第１の暗号化済みの命令を解読して第１の解読済みの命令を生成し、前記第１の解読済みの命令は前記ＣＰＵを動作させて前記周辺装置からデータまたは命令を受けまたは前記周辺装置にデータまたは命令を送り、ただし前記不安全なバスで送られる全てのデータとコマンドとは暗号化される、一連の第２の命令と、
で構成するコンピュータ・ドライバ。
【００２４】
（１２）  前記第１の命令はＤＥＳ暗号化機能を用いて暗号化する、第１１項記載のコンピュータ・ドライバ。
（１３）  前記一連の第２の命令はＢＩＯＳ内に記憶される、第１１項記載のコンピュータ・ドライバ。
（１４）  前記一連の第２の命令は前記ＣＰＵの安全な部分内で動作する、第１１項記載のコンピュータ・ドライバ。
【００２５】
（１５）  前記一連の第１の命令はコマンドを生成して前記周辺装置を動作させる、第１４項記載のコンピュータ・ドライバ。
（１６）  前記一連の第１の命令はコマンドを生成してメディア・カードを動作させる、第１１項記載のコンピュータ・ドライバ。
（１７）  前記一連の第１の命令はＣＰＵを動作させて前記メディア・カードから暗号化済みのデータを受け、前記暗号化済みのデータを解読回路に送る、第１６項記載のコンピュータ・ドライバ。
【００２６】
（１８）  ＣＰＵと周辺装置との間で不安全なバスを介して安全な送信を行う方法であって、
ＢＩＯＳ内に記憶された第２の命令を用いて前記ＣＰＵを動作させて、第１の暗号化済みの命令を記憶装置から検索し、
前記第２の命令の制御の下に前記第１の暗号化済みの命令を前記ＣＰＵの保護領域内で解読して第１の解読済みの命令を生成し、
前記ＣＰＵを制御する前記第１の解読済みの命令を用いて前記周辺装置へのコマンドを生成する、
安全な送信を行う方法。
【００２７】
（１９）  第２の暗号化機能を用いて前記コマンドを暗号化して第２の暗号化済みの命令を生成することを更に含む、第１８項記載の安全な送信を行う方法。
（２０）  前記周辺装置から前記ＣＰＵ内に暗号化済みのデータを受け、
暗号化済みのデータを解読回路に送る、
ことを更に含む、第１８項記載の安全な送信を行う方法。
【００２８】
（２１）  安全なコンピュータ・ドライバはハード・ドライブ上に記憶された暗号化済みの命令を用いる。暗号化済みの命令のコードは１行ずつ検索され、ＢＩＯＳメモリ１０４内に記憶された解読命令を用いて、ＣＰＵの安全領域内で解読される。
【００２９】
（関連出願の相互参照）
この出願は、同日出願でここに援用する共有の同時継続出願第１０／３２１，３１５号（Ｔ３５３０４）、「不安全なＰＣＩバスでの安全なメディア・カードの運用(SECURE MEDIA CARD OPERATION OVER AN UNSECURED PCI BUS)」に関係する。
【図面の簡単な説明】
【００３０】
【図１】本発明を組み込んだコンピュータ・システムのブロック図である。
【図２】本発明の安全なドライバを実現するコンピュータ・プログラムの流れ図である。
【符号の説明】
【００３１】
１０２  ＣＰＵ
１０４  ＢＩＯＳ
１２６  ハード・ドライブ
【図１】
2004199688.tif 000003
【図２】
2004199688.tif 000004