説明

コンピュータ・デバイス上でのソフトウェアの利用を制御するためのシステム及び方法

コンピュータ・デバイス上でのソフトウェアの利用を制御するための方法及びシステムに関する。認可鍵は、デバイスに記憶されるユニーク文字列であるデバイス文字列と、デバイス上での使用が認可されたソフトウェアに記憶されるユニーク文字列であるソフトウェア文字列との関数として生成される。認可鍵は秘密鍵を用いて暗号化され、デバイスに記憶される。デバイス上でソフトウェアを使用するという要求に応答して、秘密鍵に対応する公開鍵を用いて認可鍵が解読される。試験鍵はデバイス文字列と、使用が要求されたソフトウェアに記憶されたユニーク文字列である要求ソフトウェア文字列の関数として生成される。認可鍵は試験鍵と比較される。試験鍵が認可鍵と一致する時、要求されたソフトウェアの利用が許可される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ・デバイス上でのソフトウェアの利用を制御するための方法及びシステムに関する。
【背景技術】
【0002】
従来のコンピュータ・デバイスでは、日々の動作において広範な種々のソフトウェア・パッケージが利用されている。現在、ソフトウェアの配布は主に、使用許諾、アクセスコード、CDキーなどにより管理されているが、そうしたセキュリティ予防策は未認可の第3者による操作を受け易い。
【発明の開示】
【発明が解決しようとする課題】
【0003】
したがって、特定のコンピュータ・デバイス上でのソフトウェアの利用を認可するための、よりセキュアな手段が必要である。
【課題を解決するための手段】
【0004】
認可鍵はデバイス文字列及びソフトウェア文字列の関数として生成される。デバイス文字列はデバイスに記憶されているユニーク文字列である。ソフトウェア文字列は、デバイス上での使用が認可されたソフトウェアに記憶されているユニーク文字列である。認可鍵は秘密鍵を用いて暗号化され、デバイスに記憶される。
【0005】
デバイス上でソフトウェアを使用するという要求に応答して、秘密鍵に対応する公開鍵を用いて認可鍵が解読される。試験鍵はデバイス文字列及び要求ソフトウェア文字列の関数として生成される。要求ソフトウェア文字列は、使用が要求されたソフトウェアに記憶されているユニーク文字列である。認可鍵は試験鍵と比較される。試験鍵が認可鍵と一致する時、デバイス上で使用が要求されたソフトウェアの利用は許可される。
【発明を実施するための最良の形態】
【0006】
添付の図面は本発明のさらなる理解を提供するためのものであり、明細書に組み込まれてその一部を構成し、本発明の幾つかの実施形態を例示し、明細書の記載とともに本発明の実施例を説明するように働く。
【0007】
図1には、コンピュータ・デバイス上でのソフトウェアの利用を制御するための例示的なシステムを示す。このシステムにおいては、ソフトウェア4の使用は特定のプラットフォーム2a,2dにのみ認められている。プラットフォーム2a〜2dは、複数のオペレーティングシステム(例えば、ウィンドウズ(登録商標)、ユニックス(登録商標)、Apple(登録商標)OS)のうちの1つにて動作する、任意のコンピュータ・デバイス(例えば、パーソナル・コンピュータ、ハンドヘルドデバイス、PDAなど)であってよい。ソフトウェア4は、その使用の制限がハードウェア/ソフトウェアの製造者により所望される任意のプログラム/コード(例えば、オフィス・パッケージソフトウェア(suite)、画像認識ソフトウェアなど)であってよい。
【0008】
特定のプラットフォーム2a,2dに対するソフトウェア4の制限は、このソフトウェアに対する認可鍵14a,14dを作成し、対応するプラットフォームのレジストリ16a,16dに記憶することにより達成され得る。レジストリ16a〜16dの各々は、特定のプラットフォーム2a〜2dに関する情報(例えば、製造日、製造者など)を格納し
得る、コンピュータ・デバイスのディジタル記憶領域(例えば、ROM、ハードディスクなど)である。
【0009】
以下でより詳細に説明する通り、図2,4に示すソフトウェア4に記憶された第2の文字列10と共に、それぞれプラットフォーム2a,2dに記憶された第1の文字列6a,6dを用いて認可鍵14a,14dを作成する場合、プラットフォーム2a,2dのみがソフトウェアを利用し得る。第1の文字列6a,6d及び第2の文字列10は、それぞれプラットフォーム2a,2d及びソフトウェア4に対しユニークであり、且つ特異的である。第1の文字列6a〜6dは製造工程中に製造者により作成され、プラットフォーム2a〜2dに記憶され得る。第2の文字列10も同様に作成されソフトウェア4に記憶され得る。プラットフォームの文字列6は、相手先商標製品製造業者(OEM)の文字列及び製品名の文字列の組み合わせなど、プラットフォーム2に存在する文字列を組み合わせることにより形成されてよい。第1の文字列6a,6d及び第2の文字列10は、製造工程後、ユーザにより変更されてもよい。第1の文字列6a,6d及び第2の文字列10はユニークであるという性質のため、並びに利用可能な変更手段が存在しないため、それらの文字列はプラットフォーム2a,2d及びソフトウェア4を識別及び認可する目的に適する。
【0010】
図1に示すように、プラットフォーム2a,2dのみが適正な認可鍵14a,14dを有するので、それらのプラットフォームのみにソフトウェア4を実行することが認められる。認可鍵14a,14dは、それぞれプラットフォーム2a,2dに記憶された第1の文字列6a,6dと、第2の文字列10とを用いて作成される。認可鍵14a,14dを作成する際にプラットフォーム2a,2dが用いられるため、それらのプラットフォームのみがソフトウェア4を実行することが可能である。反対に、プラットフォーム2b,2cは必要な認可鍵を有さない。したがって、これらのプラットフォーム2b、2cがソフトウェア4を利用することは不可能である。
【0011】
図2には、それぞれプラットフォーム2及びソフトウェア4に記憶された第1の文字列6及び第2の文字列10を用いた認可鍵14の生成を示す。上述のように、第1の文字列6及び第2の文字列10は、それらの文字列の存在場所(即ち、プラットフォーム2及びソフトウェア4)に対し特異的、且つユニークである。
【0012】
図4には認可鍵14を作成するための方法を示す。認可鍵14は、プラットフォーム2にソフトウェア4の利用が認められているか否かを判定するために、続いてプラットフォーム2により用いられ得る。工程32にて、第1の文字列6及び第2の文字列10を利用し、第3の文字列8を生成する。例えば、第1の文字列6及び第2の文字列10を組み合わせること、又は連結すること(concatenating)により、第3の文字列8が形成されてよい。この工程はユニークな認可鍵14の作成のために重要である。第1の文字列6はプラットフォーム2に対しユニークであり、第2の文字列はソフトウェア4に対しユニークであるため、結果として得られる第3の文字列8は、第3の文字列8の作成に用いられるプラットフォーム2及びソフトウェア4の組み合わせに対してのみ特異的である。
【0013】
工程34にて、第1の暗号鍵12を形成するために第3の文字列8をハッシュ化(hash)してもよい。詳細には、従来のハッシュ化アルゴリズムを用いて第3の文字列8のハッシュ値を生成してよい。この目的のために、複数のハッシュ化アルゴリズム(例えば、MD2,MD4,MD5,SHA−1など)のうちの任意の1つを用いてよいことを、当業者は認めるであろう。ハッシュ化アルゴリズムはハッシュ化関数の一部であり、1組のデータ(即ち、第3の文字列8)を、より計算処理に適切な別の形態(即ち、暗号鍵12)へ変形する。逆にハッシュ化しない限り、ハッシュ化されたデータを利用して元のデ
ータ(即ち、第3の文字列8)を取得することは不可能であるため、第3の文字列8をハッシュ化することにより、別のレベルのセキュリティも提供され得る。
【0014】
第3の文字列8をハッシュ化した後、結果として得られる第1の暗号鍵12を、工程36にて、複数の暗号スキームのうちの1つを用いて暗号化し、認可鍵14を形成する。例えば、秘密鍵/公開鍵ペアのうちの秘密鍵を用いて第1の暗号鍵12を暗号化してよい。秘密鍵/公開鍵ペアのアルゴリズムは従来のPGPシステムと同様であり、秘密鍵はメッセージ(例えば、電子メール)を暗号化するために用いられ、公開鍵は以前に暗号化したメッセージを解読するために用いられる。PGPシステムは以下の方式で動作され得る。即ち、メッセージの作成者は秘密鍵/公開鍵ペアのうち片方の鍵を所有し、その鍵を用いてメッセージを暗号化し、他方の鍵は作成者により送信されたメッセージを解読する必要のある者へ配布される。本発明においては、秘密鍵/公開鍵ペアを実質的にPGPシステムと同様の方式で用いてよく、暗号鍵12は、秘密鍵を用いて暗号化されるバイナリ・ラージ・オブジェクト(blob)に出力される。blobとは、1つ以上の固定長ヘッダ構造とコンテキストに特異的なデータとを含むビット・シーケンスの総称である。続いて、このblobを認可鍵14としてレジストリ16に記憶してもよい。
【0015】
工程38にて、認可鍵14をプラットフォーム2のレジストリ16に記憶する。認可鍵14は、例えば、ファイルへ出力され、プラットフォーム2の任意数のコンピュータ・デバイスにコピーされ得るblobの形態であってもよい。結果として、プラットフォーム2のコンピュータ・デバイスの全てがソフトウェア4を動作することが可能となり、これにより認可鍵14の量産における困難は非常に減少される。
【0016】
図3には、プラットフォーム2上でのソフトウェア4の利用を認可するためのシステムを示す。プラットフォーム2は、図2,4に示した方法を用いて作成された後に認可鍵14が記憶されるレジストリ16を備える。プラットフォーム2上でのソフトウェア4の動作に先立ち、プラットフォーム2上での実行が認可されるか否かを認可鍵14を用いることによりソフトウェア4が判定する必要がある。
【0017】
図5には、ソフトウェア4にプラットフォーム2上での実行が認可されているか否かを判定するための方法を示す。工程42にて、認可鍵14をレジストリ16から抽出するとともに、第1の暗号鍵12を取得するために認可鍵14を解読する。この解読は、図3の工程36にて用いたのと同一の秘密鍵/公開鍵ペアの公開鍵を用いることにより達成され得る。この工程はPGPシステムにおける解読処理と同様であり、公開鍵は、秘密鍵を用いて暗号化されたメッセージを解読するために用いられる。認可鍵14を解読するために用いた公開鍵が、第1の暗号鍵12を暗号化するために用いた秘密鍵と同一の秘密鍵/公開鍵ペアに由来する場合、この解読の結果として生成される第2の暗号鍵28は第1の暗号鍵12と同一である。
【0018】
工程44,46にて、プラットフォーム2及びソフトウェア4は、第4の文字列20及び第5の文字列26から第2の暗号鍵28を作成する。これらの文字列は、それぞれプラットフォーム2及びソフトウェア4に配置されている。工程44にて、第4の文字列20及び第5の文字列26が組み合わせて、第6の文字列24を形成する。ソフトウェア4の使用に対する認可は、最終的には第3の文字列8と第6の文字列24との比較に基づくため、連結又は他の方法のいずれであれ、工程32にて第1の文字列6及び第2の文字列10を組み合わせて第3の文字列8を形成したのと同じ方式で、第4の文字列20及び第5の文字列26を組み合わせることが重要である。工程32,44にて異なる組み合わせ方法を用いた場合、第3の文字列8と第6の文字列24とが同一となることはなく、ソフトウェアの使用に対する認可が付与されることはない。工程46にて、第6の文字列24をハッシュ化し、第2の暗号鍵28を形成する。
【0019】
図5に示した方法において、第6の文字列24と第3の文字列8とを比較することにより、プラットフォーム2での実行が認可されるか否かをソフトウェア4が判定することが可能となる。第6の文字列24と第3の文字列8とが同一である場合、プラットフォーム2にソフトウェア4の利用が認可される。したがって、ソフトウェア4により第6の文字列24及び第3の文字列8が適正に解析されることを保証するため、工程46にて用いられるハッシュ化アルゴリズムは工程34にて用いられるハッシュ化アルゴリズムと正確に同一である必要がある。工程46,34にて用いられるハッシュ化関数が異なる場合、第6の文字列24と第3の文字列8が同一であっても、それらのハッシュ化関数により結果として得られるハッシュ化の結果は2つの文字列で異なる。ハッシュ化の結果における差により、今度は、第1の暗号鍵12とは異なる第2の暗号鍵28が生成される。図5に示した方法において、主な試験は第1の暗号鍵12と第2の暗号鍵28との比較によるため、2つの鍵の間に差が存在すると、実際にはソフトウェア4は認可されていたにもかかわらず、ソフトウェア2に対する認可が拒否される。
【0020】
工程48〜54にて、第1の暗号鍵12及び第2の暗号鍵28を利用しデータを解析することにより、認可鍵14を作成するために実際にプラットフォーム2と共にソフトウェア4が用いられたか否かが判定される。データは、プラットフォーム2又はソフトウェア4に記憶されている任意のファイル、コード、又は変数であり得る(例えば、第1の文字列6、第2の文字列10、第3の文字列8など)。以下で説明するように、データは暗号鍵12,28の行う試験のための単なるサンプルを提供することから、データの含む情報は重要ではない。工程48にて、第1の暗号鍵48を用いて第1のデータを暗号化し、第2のデータを生成する。工程50にて、第2の暗号鍵12を用いて第2のデータを解読し、第3のデータを生成する。
【0021】
工程52にて、ソフトウェア4は第1のデータを第3のデータ(即ち、第1のデータを暗号化し解読した結果)と比較する。第1のデータと第3のデータとが同一(即ち、暗号化処理と解読処理が可逆)である場合、第1の暗号鍵12と第2の暗号鍵28とは同一である。第1の暗号鍵12及び第2の暗号鍵28が正確に同一であるため、第3の文字列8及び第6の文字列24は同じソースから取得されたことになる(即ち、認可鍵14を作成するために、実際にプラットフォーム2及びソフトウェア4が用いられた)。この場合、工程56にて、ソフトウェア4にプラットフォーム2上での実行が認可される。
【0022】
しかしながら、第1のデータのサンプルと第3のデータのサンプルとが異なる場合には、認可鍵14の作成においてソフトウェア4が用いられなかったことを意味している。換言すると、第3の文字列8と第6の文字列24とが異なるのは、認可鍵14の作成において用いられたのとは異なるプラットフォーム2及びソフトウェア4に記憶されているためである。結果として、工程54にて、ソフトウェア4にはプラットフォーム2上での動作が禁止される。
【0023】
本発明により、一定のソフトウェアのみが特定のプラットフォーム又はコンピュータ・デバイス上で実行されることを、製造者又はソフトウェア制作者に保証することが可能となる。ソフトウェア及びプラットフォームに対するユニーク文字列を用いて認可鍵を作成するため、1つのプラットフォームから別のプラットフォームへ認可鍵をコピーすることは無効である。これにより、ソフトウェア及びプラットフォームは動作に先立ち、そのソフトウェア及びプラットフォームが実際に用いられ認可鍵が作成されたかを照合する必要があるため、1つのプラットフォームから別のプラットフォームへ認可鍵をコピーすることが阻止される。
【0024】
本発明は、1つの特定の種類のソフトウェアを実行するのみのコンピュータ・デバイス
(例えば、ハンドヘルド・スキャナ及びイメージャ(imager)など)における未認可ソフトウェアの使用の防止に、特に有用である。それらのデバイスにおいては、通常、デバイスの製造に加え、そのデバイスに必要なソフトウェアの提供も、1つの業者が行う。本発明以前においては、元の製造者の許可なくして第3者が元のデバイスを複製し、そのデバイス上で元のソフトウェアを使用することが可能であった。本発明により、複製デバイスは第3者に対し有用でなくなる。複製デバイスは必要な認可コードを有さないため、元のソフトウェアを動作させることは不可能となる。
【0025】
セキュリティ性能の限定された一部のオペレーティングシステムにおける制限を克服するために、本発明が有利に利用され得る。例えば、一部のオペレーティングシステム(例えば、ウィンドウズ(登録商標)CE)は一般データの公開鍵/秘密鍵暗号化をサポートしていない。しかしながら、それらのオペレーティングシステムは「セッション」鍵の入出力における特定の目的においては、そうした暗号化をサポートしている。本発明は、比較されるデータを鍵に組み合わせることにより、この限定された暗号化性能を利用する。プラットフォーム2及びソフトウェア4の両者に由来するデータを組合せることにより鍵を形成し、続いてそれらの鍵により、そうしたオペレーティングシステムにおいて公開鍵/秘密鍵機能を利用することが可能である。この方式にて、本発明は、そうしたオペレーティングシステムにおけるセキュリティ性能を拡張する必要を免除することにより、実装コストを減少させる。
【0026】
一般データの公開鍵/秘密鍵暗号化をサポートする他のオペレーティングシステムにおいて、本発明が利用されてもよい。本発明による方法は、不明化(obfuscation)及びセキュリティのレイヤを追加する。
【0027】
当業者には明らかであるように、ソフトウェア4が市場に公開された後にも、本発明により、プラットフォーム2にソフトウェア4の実行を装備させることが可能である。ユーザがプラットフォーム2上でのソフトウェア4の実行を試行する時、認可鍵14を形成するために必要な文字列をプラットフォーム2に対し伝送することにより、このことが達成され得る。
【0028】
本発明の精神及び範囲から逸脱することなく、本発明の構造及び構成において種々の修正及び変形がなされ得ることが、当業者には明らかであろう。したがって、添付の特許請求の範囲及びその均等物の範囲の内にある限り、本発明は本発明の修正形態及び変形形態を包含することが意図される。
【図面の簡単な説明】
【0029】
【図1】本発明によりソフトウェアの利用を制御するための例示的なシステムの図。
【図2】本発明によりソフトウェア認可鍵を作成及び記憶するための例示的なシステムの図。
【図3】本発明により特定のコンピュータ・デバイス上でのソフトウェアの実行が可能か否かを照合するための例示的なシステムの図。
【図4】本発明によりソフトウェア認可鍵を作成及び記憶するための方法の例示的な一実施形態の図。
【図5】本発明により特定のコンピュータ・デバイス上でのソフトウェアの実行が可能か否かを照合するための方法の例示的な一実施形態の図。

【特許請求の範囲】
【請求項1】
コンピュータ・デバイス上でのソフトウェアの利用を制御するための方法において、
(a)デバイスに記憶されたユニーク文字列であるデバイス文字列と、デバイス上での使用が認可されるソフトウェアに記憶されたユニーク文字列であるソフトウェア文字列との関数として認可鍵を生成する工程と、
(b)秘密鍵を用いて認可鍵を暗号化する工程と、
(c)デバイスに認可鍵を記憶する工程と、
(d)デバイス上でソフトウェアを使用するという要求に応答して、
(i)秘密鍵に対応する公開鍵を用いて認可鍵を解読する工程と、
(ii)使用が要求されたソフトウェアに記憶されたユニーク文字列である要求ソフトウェア文字列と、デバイス文字列との関数として試験鍵を生成する工程と、
(iii )解読された認可鍵を試験鍵と比較する工程と、
を実行する工程と、
(e)試験鍵が解読された認可鍵と一致する時、デバイス上での使用が要求されたソフトウェアの利用を許可する工程とからなる方法。
【請求項2】
工程(a)は、
デバイス文字列とソフトウェア文字列との組み合わせ及び連結のうちの少なくとも一方を実行することにより結果の文字列を作成する工程と、
結果の文字列をハッシュ化することにより認可鍵を生成する工程とを含む請求項1に記載の方法。
【請求項3】
工程(b)は、
認可鍵をバイナリ・ラージ・オブジェクトへ変換する工程と、
秘密鍵を用いてバイナリ・ラージ・オブジェクトを暗号化することにより、暗号化された認可鍵を生成する工程とを含む請求項2に記載の方法。
【請求項4】
工程(c)はデバイスのレジストリに認可鍵を記憶する工程を含む請求項1に記載の方法。
【請求項5】
工程(d)の(iii )は、
試験鍵を用いて第1のサンプルデータを暗号化することにより第2のデータを生成する工程と、
認可鍵を用いて第2のデータを解読することにより第3のデータを生成する工程と、
第1のデータを第3のデータと比較する工程と、
第1のデータが第3のデータと実質的に同一である時、試験鍵は認可鍵と一致することとを含む請求項1に記載の方法。
【請求項6】
工程(d)の(ii)は、
デバイス文字列と要求ソフトウェア文字列との組み合わせ及び連結のうちの少なくとも一方を実行することにより、さらなる結果の文字列を作成する工程と、
さらなる結果の文字列をハッシュ化することにより試験鍵を生成する工程とを含む請求項1に記載の方法。
【請求項7】
公開鍵はソフトウェアと共に提供される請求項1に記載の方法。
【請求項8】
ソフトウェアの利用を制御することが可能なコンピュータ・デバイスにおいて、
プロセッサと、
予め読み込まれた認可鍵と、ユニーク文字列であるデバイス文字列とを記憶するメモリ
構成とからなり、
認可鍵はデバイス文字列と、ソフトウェア文字列との関数として生成されることと、
ソフトウェア文字列はデバイス上での使用が認可されるソフトウェアに記憶されたユニーク文字列であることと、
認可鍵は秘密鍵を用いて暗号化されることと、
デバイス上でソフトウェアを使用するという要求に応答して、プロセッサが、
秘密鍵に対応する公開鍵を用いて認可鍵を解読することと、
使用が要求されたソフトウェアに記憶されたユニーク文字列である要求ソフトウェア文字列と、デバイス文字列との関数として試験鍵を生成することと、
認可鍵を試験鍵と比較することと、
試験鍵が認可鍵と一致する時、デバイス上での使用が要求されたソフトウェアの利用を許可することとを含むコンピュータ・デバイス。
【請求項9】
コンピュータ・デバイスはウィンドウズ(登録商標)CEオペレーティングシステムを用いるポータブル・コンピュータ・デバイスを含み、
ソフトウェアはウィンドウズ(登録商標)CE互換ソフトウェアを含む請求項8に記載のコンピュータ・デバイス。
【請求項10】
結果の文字列を作成するためのデバイス文字列とソフトウェア文字列との組み合わせ及び連結のうちの少なくとも一方により認可鍵が生成されることと、
結果の文字列はハッシュ化されて認可鍵を生成することとを含む請求項8に記載のコンピュータ・デバイス。
【請求項11】
認可鍵がメモリに記憶される前に、認可鍵はバイナリ・ラージ・オブジェクトへ変換されることと、バイナリ・ラージ・オブジェクトは暗号化された認可鍵を生成するために秘密鍵を用いて暗号化されることとを含む請求項10に記載のコンピュータ・デバイス。
【請求項12】
プロセッサは試験鍵を用いて第1のサンプルデータを暗号化して第2のデータを生成することと、認可鍵を用いて第2のデータを解読して第3のデータを生成することと、第1のデータを第3のデータと比較することとにより試験鍵と認可鍵とを比較することと、
第1のデータが第3のデータと実質的に同一である時、試験鍵は認可鍵と一致することとを含む請求項8に記載のコンピュータ・デバイス。
【請求項13】
公開鍵はソフトウェアと共に提供される請求項8に記載の方法。
【請求項14】
さらなるコンピュータ・デバイス上でのソフトウェアの利用を制御するためのコンピュータ・デバイスにおいて、
メモリ構成と、
さらなるデバイス文字列と、ソフトウェア文字列との関数として認可鍵を生成するプロセッサとからなり、
ソフトウェア文字列はさらなるデバイス上での使用が認可されるソフトウェアに記憶されたユニーク文字列であることと、
さらなるデバイス文字列はさらなるデバイスに記憶されたユニーク文字列であることと、
認可鍵は秘密鍵を用いて暗号化されることと、
プロセッサは認可鍵と、秘密鍵に対応する公開鍵とを記憶することと、
さらなるデバイス上でソフトウェアを使用するという要求に応答して、さらなるデバイスが、
公開鍵を用いて認可鍵を解読することと、
使用が要求されたソフトウェアに記憶されたユニーク文字列である要求ソフトウェア文
字列と、さらなるデバイス文字列との関数として試験鍵を生成することと、
認可鍵を試験鍵と比較することと、
試験鍵が認可鍵と一致する時、使用が要求されたソフトウェアの利用を許可することとを含むコンピュータ・デバイス。
【請求項15】
さらなるデバイスはウィンドウズ(登録商標)CEオペレーティングシステムを用いるポータブル・コンピュータ・デバイスを含み、
ソフトウェアはウィンドウズ(登録商標)CE互換ソフトウェアを含む請求項14に記載のコンピュータ・デバイス。
【請求項16】
プロセッサに実行されることによりコンピュータ・デバイス上でのソフトウェアの利用を制御することが可能な命令のセットを記憶するコンピュータ可読記憶媒体において、
命令のセットは、
(a)デバイスに記憶されたユニーク文字列であるデバイス文字列と、デバイス上での使用が認可されるソフトウェアに記憶されたユニーク文字列であるソフトウェア文字列との関数として認可鍵を生成することと、
(b)秘密鍵を用いて認可鍵を暗号化することと、
(c)デバイスに認可鍵を記憶することと、
(d)デバイス上でソフトウェアを使用するという要求に応答して、
(i)秘密鍵に対応する公開鍵を用いて認可鍵を解読することと、
(ii)使用が要求されたソフトウェアに記憶されたユニーク文字列である要求ソフトウェア文字列と、デバイス文字列との関数として試験鍵を生成することと、
(iii )認可鍵を試験鍵と比較することと、
を実行することと、
(e)試験鍵が認可鍵と一致する時、デバイス上での使用が要求されたソフトウェアの利用を許可することとを実行する命令のセットであるコンピュータ可読記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2007−527561(P2007−527561A)
【公表日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願番号】特願2006−517581(P2006−517581)
【出願日】平成16年6月24日(2004.6.24)
【国際出願番号】PCT/US2004/020142
【国際公開番号】WO2005/001650
【国際公開日】平成17年1月6日(2005.1.6)
【出願人】(599101597)シンボル テクノロジーズ インコーポレイテッド (68)
【Fターム(参考)】