(57)【要約】      （修正有）【課題】暗号化ソフトウェアを処理する中央処理装置の提供。【解決手段】暗号化ソフトウェア部は管理キーＭＫで暗号化され、ＭＫは暗号化ＭＫとしてデバイス・キーＤＫで暗号化される。中央処理装置は処理・キャッシュ装置と暗号化ユニットとを備える。暗号化ユニットはＤＫを記憶するためのデバイス・キー記憶装置と、ＭＫを記憶しそれぞれが管理キー索引ＭＫＩに対応する複数の管理キー記憶装置と、復号化装置とを備える。復号化装置は暗号化ＭＫを前記ＤＫで復号化してＭＫを取得しＭＫを管理キー記憶装置に記憶して、管理キー記憶装置に対応するＭＫＩを出力する。ＭＫＩはこのようにして暗号化ソフトウェア部に対応するために使用される。復号化装置はＭＫＩに従って対応するＭＫを呼び出し暗号化ソフトウェア部を復号化して、復号化されたソフトウェア・コード又はソフトウェア・データあるいはその両方を直接、前記処理・キャッシュ装置へ転送する。【選択図】  図１
2008033457.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの暗号化ソフトウェアを処理するための中央処理装置であって、前記暗号化ソフトウェアは少なくとも１つの暗号化ソフトウェア部を備え、前記暗号化ソフトウェア部は管理キー（ＭＫ）で暗号化され、前記管理キー（ＭＫ）は暗号化ＭＫとしてデバイス・キー（ＤＫ）で暗号化される、中央処理装置であって、
処理・キャッシュ装置と、
前記ＤＫを記憶するためのデバイス・キー記憶装置と、
各々が管理キー索引（ＭＫＩ）に対応している、ＭＫを記憶する複数の管理キー記憶装置と、
暗号化ＭＫを前記ＤＫで復号化してＭＫを取得し、前記ＭＫを管理キー記憶装置に記憶して前記管理キー記憶装置に対応するＭＫＩを出力し、前記ＭＫＩは前記暗号化ソフトウェア部に対応するために使用される復号化装置と、
を備える暗号化ユニットと、
前記復号化装置は前記ＭＫＩに係る対応するＭＫを呼び出して前記暗号化ソフトウェア部を復号化し、前記復号化されたソフトウェア・コード又はソフトウェア・データあるいはその両方を直接、前記処理・キャッシュ装置へ転送する、
中央処理装置。
【請求項２】
前記復号化装置は前記復号化ソフトウェア・コード又はソフトウェア・データあるいはその両方をＭＫＩと共に直接、対応する前記処理・キャッシュ装置へ転送し、前記処理・キャッシュ装置は前記ＭＫＩに従って、前記復号化ソフトウェア・コード又はソフトウェア・データあるいはその両方を処理する、請求項１に記載の中央処理装置。
【請求項３】
前記処理・キャッシュ装置は、前記処理されたソフトウェア・コード又はソフトウェア・データあるいはその両方を対応するＭＫＩと共に前記暗号装置へさらに転送し、
前記暗号装置は、前記ＭＫＩに従って前記対応するＭＫを呼び出す暗号化装置をさらに備えて、前記処理されたソフトウェア・コード又はソフトウェア・データあるいはその両方を暗号化し、前記暗号化されたソフトウェア・コード又はソフトウェア・データあるいはその両方を前記対応するＭＫＩと共に出力する、
請求項２に記載の中央処理装置。
【請求項４】
複数の暗号化ソフトウェアを処理するようにさらに構成されており、各暗号化ソフトウェアは別々のＭＫで暗号化され、別々のＭＫはそれぞれ前記ＤＫで暗号化され、
前記復号化装置は、前記暗号化ＭＫを復号化してＭＫを取得し、および前記ＭＫを前記管理キー記憶装置に記憶して、前記管理キー記憶装置に対応するＭＫＩを出力するようにさらに構成され、それによって前記ＭＫＩがそれぞれ前記複数の暗号化ソフトウェアに関連付けられる、
請求項１ないし３のいずれかに記載の中央処理装置。
【請求項５】
前記復号化装置は所定の手段に基づいて管理キー記憶装置及びＭＫＩをＭＫに配置し、前記処理・キャッシュ装置は所定の手順に基づいて前記復号化ソフトウェア・コード又はソフトウェア・データあるいはその両方を処理する、請求項４に記載の中央処理装置。
【請求項６】
前記所定の手順は
ＭＫＩに関連付けられたコード又はデータあるいはその両方が同一のＭＫＩを有するコードのみによってアクセスできること、あるいは、
ＭＫＩに関連付けられたコード又はデータあるいはその両方が、前記手段に従ってあるＭＫＩを有するコードのみによってアクセスできること
から構成される、請求項５に記載の中央処理装置。
【請求項７】
前記処理・キャッシュ装置は秘密レジスタ・セットをさらに備え、前記所定の手順は
前記秘密レジスタ・セットに記憶されてＭＫＩに関連付けられたコード又はデータあるいはその両方が同一のＭＫＩを有するコードのみによってアクセスできること、あるいは、
前記秘密レジスタ・セットに記憶されてＭＫＩに関連付けられたコード又はデータあるいはその両方が前記手段に従ってあるＭＫＩを有するコードのみによってアクセスできること、
から構成される、請求項５に記載の中央処理装置。
【請求項８】
少なくとも１つの暗号化ソフトウェアを中央処理装置で処理する方法であって、
前記中央処理装置は処理・キャッシュ装置と暗号装置とを備え、前記暗号装置は復号化装置とデバイス・キー（ＤＫ）を記憶するデバイス・キー記憶装置と管理キー（ＭＫ）を記憶する複数の管理キー記憶装置とを備え、各管理キー記憶装置は管理キー索引（ＭＫＩ）に対応し、前記暗号化ソフトウェアはＭＫで暗号化され、前記ＭＫは暗号化ＭＫとしてＤＫで暗号化される方法であって、
前記暗号化ソフトウェアに対応する前記暗号化ＭＫを前記暗号装置に記憶するステップと、
復号化装置が暗号化ＭＫを前記ＤＫで復号化してＭＫを取得するステップと、
前記ＭＫを管理キー記憶装置に記憶して前記管理キー記憶装置に対応するＭＫＩを取得するステップと、
前記ＭＫＩを前記暗号化ソフトウェアと関連付けるステップと、
前記ＭＫＩに従って対応するＭＫを呼び出して前記暗号装置内で前記暗号化ソフトウェアを前記ＭＫで復号化するステップと、
前記復号化されたソフトウェア・コード又はソフトウェア・データあるいはその両方を直接、前記処理・キャッシュ装置へ転送して前記復号化ソフトウェアを前記処理・キャッシュ装置で処理するステップと、
から構成される方法。
【請求項９】
前記復号化装置は前記復号化ソフトウェア・コード又はソフトウェア・データあるいはその両方を対応するＭＫＩと共に直接前記処理・キャッシュ装置へ転送し、前記処理・キャッシュ装置は前記ＭＫＩに従って前記復号化ソフトウェア・コード又はソフトウェア・データあるいはその両方を処理する、請求項８に記載の方法。
【請求項１０】
前記処理・キャッシュ装置は前記処理されたソフトウェア・コード又はソフトウェア・データあるいはその両方を対応するＭＫＩと共に前記暗号装置へさらに転送し、前記暗号装置はさらに前記ＭＫＩに従って前記対応するＭＫを呼び出して前記処理されたソフトウェア・コード又はソフトウェア・データあるいはその両方を暗号化するとともに、前記暗号化ソフトウェア・コード又はソフトウェア・データあるいはその両方を前記対応するＭＫＩと共に出力する暗号化装置を備える、請求項９に記載の方法。
【請求項１１】
請求項８ないし１０のいずれかに記載の前記方法は複数の暗号化ソフトウェアをさらに処理し、各暗号化ソフトウェアは別のＭＫで暗号化され、別のＭＫはそれぞれ前記ＤＫで暗号化される方法であり、
前記復号化装置は前記暗号化ＭＫを前記ＤＫで復号化してＭＫを取得し、前記ＭＫを前記管理キー記憶装置に記憶して前記管理キー記憶装置に対応するＭＫＩを出力し、それによって前記ＭＫＩはそれぞれ前記複数の暗号化ソフトウェアに関連付けられることから構成されている。
【請求項１２】
前記復号化装置は所定の手段に基づいて管理キー記憶装置及びＭＫＩをＭＫに配置し、前記処理・キャッシュ装置は所定の手段に基づいて前記復号化ソフトウェア・コード又はソフトウェア・データあるいはその両方を処理する、請求項１１に記載の方法。
【請求項１３】
前記所定の手段はＭＫＩに関連付けられたコード又はデータあるいはその両方が、同一のＭＫＩを有するコードのみによってアクセスできること、あるいはＭＫＩに関連付けられたコード又はデータあるいはその両方が前記手段に従ってあるＭＫＩを有するコードのみによってアクセスできることから構成される、請求項１２に記載の方法。
【請求項１４】
前記処理・キャッシュ装置は秘密レジスタ・セットをさらに備えるとともに、前記所定の手段は前記秘密レジスタ・セットに記憶されてＭＫＩに関連付けられたコード又はデータあるいはその両方が同一のＭＫＩを有するコードのみによってアクセスできること、あるいは前記秘密レジスタ・セットに記憶されてＭＫＩに関連付けられたコード又はデータあるいはその両方が前記手段に従ってあるＭＫＩを有するコードのみによってアクセスできることから構成されている、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報セキュリティ技術に関し、より詳細には暗号化ソフトウェアを処理する方法及び中央処理装置に関する。
【背景技術】
【０００２】
一般的に改ざん防止技術は不安定な環境において物理的又は物理的以外の攻撃手段による改変又は破壊からデバイスを保護する。前記ソフトウェアについて、前記改ざん防止技術は悪意のあるユーザが秘密、例えば秘密鍵、専用アルゴリズムなどをソフトウェア・プログラムを解析又は改ざんすることによって取り出すことを防止する。主なアプリケーション・シナリオは不利な環境下で極秘データ／コードを持つ前記ソフトウェア・コンテンツを保護することである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のソフトウェア改ざん防止技術のほとんどはソフトウェアの手法に基づいている。これらの方法はソフトウェアの極秘データ／コードを暗号化して悪意のあるユーザが前記秘密を盗むのを阻む障壁を強化することである。しかし前記ソフトウェアの暗号化手法によると、すべての暗号化データ／コードは最終的には何らかのソフトウェア・ルーチンによって簡単な方式に復号化されＣＰＵに移動するはずである。悪意のあるユーザは簡単な方式の前記ソフトウェアを傍受して情報を取得することができる。
【０００４】
前記改ざん防止ソフトウェアを実現するためにいくつかのハードウェアを基盤とした手法も提案されているが、これらはすべて専用アーキテクチャに基づいており、コプロセッサとして動作するものである。典型的なアーキテクチャは別個のプロセッサと揮発性記憶装置（例えば、ＲＡＭ）と不揮発性記憶装置（例えば、フラッシュ・メモリ）と暗号エンジンとを１つの筐体内に詰め、コプロセッサとして外部バスを介してメイン・コンピュータと通信する。このアーキテクチャは特定の目的のソフトウェア、例えばＡＴＭソフトウェアなどに適している。しかし保護されたプログラムは上記のアーキテクチャを有するＣＰＵ上ではなく前記コプロセッサ上で動かさなければならず、それはソフトウェアの動作、開発、配備、配布を大幅に制約することになるので、改ざん防止性を有する一般的な目的のソフトウェアを開発することは困難である。
【課題を解決するための手段】
【０００５】
前記既存技術の欠点を考慮すれば、本発明によって解決されるべき１つの課題は復号化データ又は復号化コードあるいはその両方が直接処理される改良型の中央処理装置ＣＰＵを提供することである。
【０００６】
一態様によれば、本発明は少なくとも１つの暗号化ソフトウェアを処理する中央処理装置を提供する。前記暗号化ソフトウェアは少なくとも１つの暗号化ソフトウェア部を備える。前記暗号化ソフトウェア部は管理キーMKで暗号化され、前記ＭＫは暗号化ＭＫとしてデバイス・キーDKで暗号化される。前記中央処理装置は処理・キャッシュ装置（ｐｒｏｃｅｓｓｉｎｇ  ａｎｄ  ｃａｃｈｅ  ｕｎｉｔ）と暗号化ユニットとを備える。前記暗号化ユニットは前記ＤＫを記憶するためのデバイス・キー記憶装置と、各管理キー記憶装置が管理キー索引MKIに対応しているＭＫ記憶用の複数の管理キー記憶装置と、復号化装置とを備えている。前記復号化装置は暗号化ＭＫを前記ＤＫで復号化してＭＫを取得し、前記ＭＫを管理キー記憶装置に記憶して前記管理キー記憶装置に対応するＭＫＩを出力し、前記ＭＫＩはかくして暗号化ソフトウェア部に対応するために使用される。この場合、前記復号化装置はＭＫＩに従って対応するＭＫを呼び出して前記暗号化ソフトウェア部を復号化し、前記復号化されたソフトウェア・コード又はソフトウェア・データあるいはその両方を直接前記処理・キャッシュ装置へ転送する。
【０００７】
別の態様によれば、本発明は少なくとも１つの暗号化ソフトウェアを中央処理装置で処理する方法を提供する。前記中央処理装置は処理・キャッシュ装置と暗号装置とを備える。前記暗号装置は復号化装置と、デバイス・キーDKを記憶するデバイス・キー記憶装置と、管理キーMKを記憶する複数の管理キー記憶装置とを備える。各管理キー記憶装置は管理キー索引MKIに対応しており、前記暗号化ソフトウェアはＭＫで暗号化され、前記ＭＫは暗号化ＭＫとしてＤＫで暗号化される。前記方法においては、前記暗号化ソフトウェアに対応する前記暗号化ＭＫは前記暗号装置内に記憶される。前記復号化装置は暗号化ＭＫをＤＫで復号化してＭＫを取得する。次いで前記ＭＫを管理キー記憶装置内に記憶して前記管理キー記憶装置に対応するＭＫＩを取得する。こうして前記ＭＫＩは前記暗号化ソフトウェアと関連付けられる。対応するＭＫは前記ＭＫＩに従って呼び出され、前記暗号化ソフトウェアは前記暗号装置内の前記ＭＫで復号化される。前記復号化されたソフトウェア・コード又はソフトウェア・データあるいはその両方は直接、前記処理・キャッシュ装置へ転送される。前記処理・キャッシュ装置は前記復号化ソフトウェアを処理する。
【発明を実施するための最良の形態】
【０００８】
本発明による好ましい実施形態の詳細な説明を以下の通り添付の図面を用いて説明する。
【０００９】
図１は本発明の一実施形態に係るブロック図である。前記中央処理装置ＣＰＵ１００は少なくとも１つの暗号化ソフトウェアを処理するためのものである。前記暗号化ソフトウェアは少なくとも１つの暗号化ソフトウェア部を備える。例えば、フラッシュ・メモリ１３０に記憶された前記ソフトウェアは複数の暗号化部と複数の非暗号化部とを備える。暗号化ページは前記ソフトウェアの前記暗号化部を記憶し、普通のページは前記非暗号化部を記憶する。前記暗号化ソフトウェア部は管理キーＭＫで暗号化される。前記ＭＫは暗号化ＭＫとして前記ＣＰＵと関係付けられたデバイス・キーＤＫで暗号化される。前記デバイス・キーによって暗号化された前記管理キーは前記図表ではＭＫ−ＤＫと表示されている。
【００１０】
前記中央処理装置は処理・キャッシュ装置１１０と暗号装置１２０とを備える。前記暗号装置１２０は前記ＣＰＵに対応する前記ＤＫを記憶するデバイス・キー記憶装置と、ＭＫを記憶する複数の管理キー記憶装置であってその各々が管理キー索引ＭＫＩに対応する記憶装置と、暗号化ＭＫを前記ＤＫで復号化してＭＫを取得し前記ＭＫを管理キー記憶装置に記憶して前記管理キー記憶装置に対応するＭＫＩであって前記暗号化ソフトウェア部に対応させるために使用されるＭＫＩを出力する、復号化装置とを備える。そこでは前記復号化装置が前記ＭＫＩに従って対応するＭＫを呼び出し、前記暗号化ソフトウェア部を復号化して前記復号化ソフトウェア・コード又は復号化ソフトウェア・データあるいはその両方を直接、前記処理・キャッシュ装置１１０へ転送する。
【００１１】
さらにすべての管理キー記憶装置は必要に応じて１つ以上の管理キー索引ＭＫＩに対応することができる。
【００１２】
処理するソフトウェアに関して、まず前記ソフトウェアに対応するデバイス・キーで暗号化された前記管理キーＭＫ−ＤＫが前記暗号装置１２０に記憶される。次いで前記暗号化管理キーＭＫ−ＤＫが前記デバイス・キーＤＫで復号化されて前記管理キーＭＫを取得する。
【００１３】
前記管理キーＭＫを管理キー記憶装置に記憶し前記管理キー記憶装置の前記対応する管理キー索引ＭＫＩを取得する。そこではすべての管理キー記憶装置は対応する管理キー索引を有する。次いで前記ＭＫＩは前記暗号化ソフトウェア部と関連付けられる。
【００１４】
したがって、前記中央処理装置がＭＫＩと関連付けられた前記暗号化ソフトウェア部を処理する必要がある場合、前記対応するＭＫを前記ＭＫＩに基づいて取得することができる。前記暗号化ソフトウェア部は前記暗号装置内で前記管理キーによって復号化される。前記復号化ソフトウェア・コード又は復号化ソフトウェア・データあるいはその両方は直接前記処理・キャッシュ装置へ転送されそこで処理される。
【００１５】
本発明によれば、前記保護されたコード又はデータあるいはその両方はソフトウェア・ルーチンによって復号化されることもなければ、ユーザに利用しやすい記憶手段、例えばメモリやハード・ディスクなどに記憶されることもない。反対に本発明による前記ハードウェア復号化装置は中央処理装置ＣＰＵに組み込まれ、暗号化コード又は暗号化データあるいはその両方は復号化されて直接ＣＰＵへ供給される。ユーザは保護されたコンテンツの普通のコード又はデータあるいはその両方にアクセスできず、例えば普通の方式のコード又はデータあるいはその両方がユーザに利用しやすい記憶手段に現れることは決してないということから、悪意のあるユーザによるこれらのコンテンツの傍受が効果的に回避される。
【００１６】
後述するある所定の手段によれば、前記保護されたコンテンツへのアクセスはさらに認証コードのみに限定することもできる。かくしてこれらの保護されたコンテンツが悪意のあるユーザによって傍受されることがさらに効果的に回避される。
【００１７】
しかしながら、本目的は既存の保護方法、特にソフトウェアに基づく保護方法によって達成されることはほとんどない。
【００１８】
図１に表示する暗号化部を有するソフトウェアの処理について、前記ソフトウェアはページを用いてメモリに記憶できる。前記暗号化部及び非暗号化部はそれぞれ暗号化ページ内及び普通のページ内に記憶できる。ページ・テーブル１５０を作成することもできるし、必要に応じて暗号化ページのページ・アドレス及び普通のページのアドレスを復号化ＭＫのＭＫＩと関連付けることもできる。かくしてＣＰＵは、前記関連付けられたＭＫＩに従って暗号化ソフトウェア部と非暗号化ソフトウェア部とを別々に処理することになる。当業者ならＭＫＩを暗号化ソフトウェア部と関連付けるために他の方法を使用できること、例えばヘッダを暗号化ソフトウェア部に追加してその対応するＭＫＩを表示できることを、理解することができたであろう。前記ＣＰＵが複数の暗号化ソフトウェアを処理する環境下では、それぞれのＭＫに対応する前記ＭＫＩを別個に前記ソフトウェアと関連付けすることができる。
【００１９】
管理キーと暗号化ソフトウェア部を関連付けすることにより、本発明に係る中央処理装置が複数の暗号化ソフトウェア又は暗号化部を有する複数のソフトウェアを処理することが可能になる。
【００２０】
本発明の別の態様によれば、復号化装置は復号化ソフトウェア・コード又はデータあるいはその両方を対応するＭＫＩと共に直接、前記処理・キャッシュ装置へ転送し、前記処理・キャッシュ装置は前記ＭＫＩに従って前記復号化ソフトウェア・コード又はデータあるいはその両方を処理する。
【００２１】
本発明に係る前記ＣＰＵ及び方法について、前記処理・キャッシュ装置はさらに前記処理されたソフトウェア・コード又はデータあるいはその両方を対応するＭＫＩと共に暗号装置へ転送することができ、前記暗号化装置は前記ＭＫＩに従って前記対応するＭＫを呼び出し、前記処理されたソフトウェア・コード又はデータあるいはその両方を暗号化して、前記暗号化されたソフトウェア・コード又はデータあるいはその両方を前記対応するＭＫＩと共に出力する、暗号化装置をさらに有する。
【００２２】
本発明に係る前記ＣＰＵ及び方法について、前記中央処理装置はさらに複数の暗号化されたソフトウェアを処理するように構成することもでき、各暗号化されたソフトウェアは別のＭＫで暗号化され、別のＭＫはそれぞれ前記ＤＫで暗号化される。前記復号化装置はさらにＭＫを取得するために前記暗号化されたＭＫを復号化し、前記ＭＫを管理キー記憶装置に記憶して前記管理キー記憶装置に対応するＭＫＩを出力するように構成され、これによって前記ＭＫＩはそれぞれ前記複数の暗号化ソフトウェアに関連付けられる。かくして同一のソフトウェアの暗号化部又は同一の暗号化ソフトウェアが同一のＭＫＩに関連付けられるか、あるいは同一のＭＫで暗号化されたソフトウェアが同一のＭＫＩに関連付けられる。
【００２３】
本発明に係る前記ＣＰＵ及び方法について、前記復号化装置は所定の手段に基づいて管理キー記憶装置及びＭＫＩをＭＫに配置してもよく、前記処理・キャッシュ装置は所定の手段に基づいて前記復号化ソフトウェア・コード又はデータあるいはその両方を処理する。前記所定の手段は、ＭＫＩと関連付けられたコード又はデータあるいはその両方が同じＭＫＩを有するコードだけでアクセスできること、あるいはＭＫＩに関連付けられたコード又はデータあるいはその両方が前記手段に従ってあるＭＫＩを有するコードだけでアクセスできること等から構成されている。例えばある範囲内で対応するＭＫＩを有するコードは互いにアクセスすることができる。しかしながら、別のＭＫＩを有するコード又はＭＫＩを有していないコードもお互いを呼び出すことができてもよい。
【００２４】
本願では、ＭＫＩと関連付けられたコード又はデータあるいはその両方は次のもの、すなわちＭＫＩと関連付けられた暗号化コード又はデータあるいはその両方、ＭＫＩと関連付けられた復号化されたコード又はデータあるいはその両方、及びＭＫＩと関連付けられた中間処理コード又はデータあるいはその両方から得られたコード又はデータあるいはその両方、のうちの１つ又はそれ以上であってもよい。ＭＫＩに関連付けられたコード又はデータあるいはその両方は復号化される前は自分のＭＫＩ識別子を維持することしかできない。好ましい一実施形態としては、ＭＫＩに関係付けられたコード又はデータあるいはその両方がキャッシュ内又は前記中央処理装置の別の部内で、自身のＭＫＩ識別子を維持することができる場合もある。
【００２５】
本発明に係るＣＰＵ及び方法について、前記処理・キャッシュ装置はさらに秘密レジスタ・セット（ｓｅｃｒｅｔ  ｒｅｇｉｓｔｅｒ  ｓｅｔ）を備えていてもよく、前記所定の手段は、前記秘密レジスタ・セット内に記憶されＭＫＩと関連付けられたコード又はデータあるいはその両方に同一のＭＫＩを有するコードだけでアクセスできること、あるいは前記秘密レジスタ・セット内に記憶されＭＫＩと関連付けられたコード又はデータあるいはその両方に前記手段に従って、あるＭＫＩを有するコードだけでアクセスできること、例えばある範囲内で対応するＭＫＩを有するコードが互いにアクセスできること等から構成されている。
【００２６】
図１に示されるように必要とされるＣＰＵについて、前記処理・キャッシュ装置は処理部とキャッシュ部とから構成されている。前記キャッシュ部は制御装置とキャッシュ・ラインに対応するＭＫＩ識別子部とから構成されている。前記処理部は実行装置と、現行の命令レジスタ及びそれに対応するＭＫＩ記憶部と、秘密レジスタ・セットと、レジスタ（前記レジスタは、対応するＭＫＩ識別子部又は記憶部を有していてもよいし有していなくてもよい）と、他の部門とから構成されていてもよい。当業者ならば、前記処理・キャッシュ部は本発明及びＣＰＵの他の要件に従って、前記発明から逸脱することなく他の構成を使用できることを、理解することができたはずである。例えば、前記処理・キャッシュ部はＭＫＩ及び秘密レジスタ・セットを使用しなくてもよい。かくして前後で説明しているように、前記暗号装置は前記暗号化ソフトウェアを分離して保護することになる。
【００２７】
本発明によれば、前記暗号装置及び他の保護装置はＣＰＵ内に組み込まれている。この構成はプログラムの実行を保護するすべての装置を１つのコプロセッサに統合している既存の技術とは異なっている。それ故前記ＣＰＵ及びコンピュータはその既存の構造を維持しているが、前記既存の構造はオペレーティング・システムとアプリケーションを含む従来のソフトウェアには見えない。前記従来のソフトウェアは前記ハードウェア向け改ざん防止機構を認識しないであろう。この改ざん防止機能に対応するために、例えばソフトウェアを記憶するオペレーティング・システムの場合、オペレーティング・システムは暗号化部と非暗号化部とを別々に記憶することになる。こうすることによって、暗号化部をＭＫＩと関連付けすることがより容易になる。したがってソフトウェアの前記元の動作、展開、配置、配布を維持しながら、アプリケーションが改ざん防止技術を実施することがより容易になる。
【００２８】
上述したように、ソフトウェアに基づく従来の改ざん防止技術は傍受をより難しくするためにソフトウェアの機密データ又はコードあるいはその両方を暗号化する。ハードウェアに基づく従来の改ざん防止技術は改ざん防止に関わるすべての前記部門を別のコプロセッサ内に統合し、前記保護されたソフトウェアを前記コプロセッサ内で作動させるものである。
【００２９】
本発明では、暗号装置及び他の保護装置はＣＰＵ内に組み込まれ、ＭＫＩで管理される。図１は本発明の一実施形態に係る構造を示している。前記暗号装置はＣＰＵ内で、ＣＰＵのデータ列の最外部に配置されている。一般的に前記暗号装置はキャッシュと外部データ・バスの間に配置することもできる。
【００３０】
前記保護されたソフトウェア部（データ又はコードあるいはその両方）はＣＰＵの外部に記憶される場合には常に暗号化される。ＣＰＵが前記暗号化されたコンテンツを読み出す場合には、復号化装置が前記コンテンツをＣＰＵによる処理に適した通常のテキストになるように復号化する。ＣＰＵが暗号化部の前記コンテンツをメモリ又は記憶手段に書き込もうとする場合は、それらのコンテンツがＣＰＵに送信される前に暗号化装置が前記コンテンツを暗号化する。本発明では、前記保護されたコンテンツ（データ又はコードあるいはその両方）は前記保護されたコンテンツがＣＰＵの外部にある場合には、常に暗号化される。前記保護されたコンテンツへのアクセス権は認証コードに限定されている。
【００３１】
図１は本発明の一実施形態に係る暗号化ＣＰＵ（ｅｎｃｒｙｐｔｉｏｎ  ＣＰＵ）を示している。前記暗号化ＣＰＵは必ずしもそれだけに限定されるわけではないが、次の特徴を有している。
【００３２】
１．あらゆるＣＰＵには保護されたソフトウェアへの条件付（認証付）アクセスのためのデバイス・キーDKが１つ又は数個与えられている。
【００３３】
２．前記ソフトウェア保護部は管理キーMKによって暗号化される。一般に前記ＭＫは配布が容易な故にＤＫとは異なっている。ＭＫは前記アプリケーションが配布される場合、各アプリケーション毎に任意に作り出すことができる。
【００３４】
３．前記ＭＫは選択されたＤＫで暗号化され、前記アプリケーションと共にあるいは前記ＤＫとは別のＭＫが選択された場合には別に、配布される。一般的に放送暗号化、例えば媒体鍵ブロックＭＫＢ（Ｍｅｄｉａ  Ｋｅｙ  Ｂｌｏｃｋ）と簡易公開鍵基盤ＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）はいずれもＭＫ配布の選択肢である。
【００３５】
４．ＣＰＵ内の前記暗号装置はすべての作動アプリケーション用ＭＫの内蔵リストを保存することができる。
【００３６】
５．保護されたアプリケーションと共に配布される前記ＭＫは適切なＤＫで復号化され、前記内蔵ＭＫリストから使用可能な項目が前記アプリケーションＭＫを記憶するために配置される。一般的に前記オペレーティング・システムはＣＰＵを呼び出して前記アプリケーションが読み込まれる前に本プロセスを完了させるとともに、前記ＭＫ自体ではなく前記内蔵ＭＫリストの前記ＭＫ索引MKIが前記オペレーティング・システムに戻される。
【００３７】
６．前記ＭＫＩは保護されたアプリケーションの実行のためのデータ構造を構築するのに利用される。一般的に前記オペレーティング・システムは、前記ページ・テーブルに前記対応するＭＫＩを適切に構築する必要がある。
【００３８】
７．前記暗号化装置／復号化装置は前記関連付けられたＭＫＩに従って、前記保護部を適切に暗号化／復号化する。
【００３９】
８．保護されたコンテンツにアクセスする特権は前記認証コードに限定される。典型的な選択肢は、前記同一のＭＫＩを有する前記保護部のコードのみが前記保護されたコンテンツの読出し・書き込みを行うことができるように限定することである。非認証コードは前記保護されたコンテンツを読み出すことしかできない。
【００４０】
９．特定の秘密レジスタ・セットは前記レジスタの使用を制限するために特定のアクセス手段で実行することができる。アクセス手段の典型的な選択肢は、前記同一のＭＫＩを有するコードのみが同一のＭＫＩを有するレジスタ内の前記プレーン・フォーム値の読出し、書き込みを行うことができるように限定することである。他のコードはレジスタ内の暗号化された（同じＭＫＩを有するＭＫによって暗号化された）値の読み出し、書き込みができるだけである。
【００４１】
１０．オペレーティング・システムが業務間で切換わる場合は、前記現行のレジスタ・セット内のコンテンツがメモリに保存され処理すべき前記業務のレジスタ・セットに関するコンテンツがメモリから読み込まれる。前記レジスタ・セットが秘密レジスタ・セットである場合メモリ内の前記値は暗号化された値になる。
【００４２】
本発明の好ましい実施形態が詳細に説明された。しかし当業者は前記好ましい実施形態は説明のために提示されているだけであって、本発明をそれに限定すると解釈すべきではないことを理解するであろう。当発明はソフトウェア又はハードウェア又はそれら２つの組合せによって実施することができる。当業者なら本発明に様々な修正、変更を施すことができるが、それらの修正、変更はすべて添付の特許請求範囲で定義されている本発明の前記請求範囲と趣旨に沿って行われる。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態によるブロック図である。
【符号の説明】
【００４４】
１００  中央処理装置
１１０  処理・キャッシュ装置
１２０  暗号装置
１３０  フラッシュ・メモリ
１５０  ページ・テーブル
【図１】
2008033457.tif 000003
【外国語明細書】
2008033457000001.pdf
2008033457000002.pdf
2008033457000003.pdf
2008033457000004.pdf