JP2004266841A - ハードウェア変更の許容度を有するコンピュータシステムに秘密を結び付けるシステム - Google Patents
ハードウェア変更の許容度を有するコンピュータシステムに秘密を結び付けるシステム Download PDFInfo
- Publication number
- JP2004266841A JP2004266841A JP2004059841A JP2004059841A JP2004266841A JP 2004266841 A JP2004266841 A JP 2004266841A JP 2004059841 A JP2004059841 A JP 2004059841A JP 2004059841 A JP2004059841 A JP 2004059841A JP 2004266841 A JP2004266841 A JP 2004266841A
- Authority
- JP
- Japan
- Prior art keywords
- class
- component
- instance
- prime
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000008859 change Effects 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 70
- 238000012360 testing method Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 20
- 230000003287 optical effect Effects 0.000 description 12
- 238000001994 activation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000009434 installation Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 150000003839 salts Chemical class 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- D—TEXTILES; PAPER
- D01—NATURAL OR MAN-MADE THREADS OR FIBRES; SPINNING
- D01D—MECHANICAL METHODS OR APPARATUS IN THE MANUFACTURE OF ARTIFICIAL FILAMENTS, THREADS, FIBRES, BRISTLES OR RIBBONS
- D01D1/00—Treatment of filament-forming or like material
- D01D1/10—Filtering or de-aerating the spinning solution or melt
- D01D1/106—Filtering
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61P—SPECIFIC THERAPEUTIC ACTIVITY OF CHEMICAL COMPOUNDS OR MEDICINAL PREPARATIONS
- A61P31/00—Antiinfectives, i.e. antibiotics, antiseptics, chemotherapeutics
- A61P31/04—Antibacterial agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
- G06F21/126—Interacting with the operating system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00731—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction
- G11B20/00746—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number
- G11B20/00782—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number wherein the usage restriction limits the number of times a program can be installed
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Chemical & Material Sciences (AREA)
- Chemical & Material Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Pharmacology & Pharmacy (AREA)
- Organic Chemistry (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Medicinal Chemistry (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Oncology (AREA)
- Communicable Diseases (AREA)
- Textile Engineering (AREA)
- Mechanical Engineering (AREA)
- Storage Device Security (AREA)
- Emergency Protection Circuit Devices (AREA)
- Package Frames And Binding Bands (AREA)
- Joining Of Building Structures In Genera (AREA)
- Orthopedics, Nursing, And Contraception (AREA)
Abstract
【解決手段】 所与のコンピュータシステムの強いハードウェア識別(SHWID)を生成するシステムおよび方法も開示される。強いハードウェア識別(SHWID)は、結び付けられた秘密に結合される。強いハードウェア識別(SHWID)を使用して、コンピュータシステムへのハードウェア変更の程度に応じて当該コンピュータシステムでのソフトウェアの使用を制御することができる。
【選択図】 図1
Description
(1)秘密Sは、ハードウェア構成Hで計算することができる。
(2)秘密Sは、望まれる閾値量のコンポーネント変更以下の量のコンポーネント変更が行われたハードウェア構成Hであるハードウェア構成H1で計算することができる。
(3)秘密Sは、他のハードウェア構成H2では計算することが実質的に不可能である。
以下で図面を参照して本発明の例示的実施形態を説明するが、すべての図面で同様の要素は同様の参照符号によって表す。図1に、本発明を実施するための例示的な動作環境を示す。例示的動作環境は、従来のパーソナルコンピュータ20の形態の汎用コンピューティングデバイスを含む。一般に、パーソナルコンピュータ20は、処理装置21、システムメモリ22、およびシステムメモリ22を含む各種のシステム構成要素を処理装置21に結合するシステムバス23を含む。システムバス23は、各種のバスアーキテクチャの任意のものを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数タイプのバス構造のいずれでもよい。システムメモリは、読み取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。起動時などにパーソナルコンピュータ20内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム(BIOS)26は、ROM24に記憶される。
上述のように、コンピュータシステムは通例、複数のハードウェアコンポーネントクラスを備える。さらに、コンピュータシステムは、各ハードウェアコンポーネントのクラスに複数のコンポーネント(例えば2つのハードディスクドライブなど)を含む可能性がある。
所与のコンピュータシステムの強いハードウェア識別(SHWID)は、(1)ハードウェアコンポーネント、および(2)部分的秘密のコンポーネント、の2つの別個のコンポーネントからなる。これらのコンポーネントを決定する例示的方法を下記で説明する。この例示的方法のステップは、上記で図1を参照して説明したコンピュータ20と同様の顧客のコンピュータ上のソフトウェア製品のソフトウェアコードによって行うことができる。
本発明のSHWIDは、各ハードウェアコンポーネントクラスのクラスの積を含む。SHWIDのハードウェアコンポーネントは、図2に示すように決定することができる。
(b)xは、約65,000文字までの長さの任意のデータでよい。
(c)f(x)>2t。tは望ましくは約32より大きい整数。tは約64以上であることが望ましい。ただしtの値に制限はない。
(d)f(x)の結果は、xの値に基づいて決定性である。
本発明の強いハードウェア識別(SHWID)は、各ハードウェアコンポーネントクラスについての部分的な秘密のコンポーネントも含む。SHWIDの部分的秘密コンポーネントを決定する例示的方法を図3〜4に示す。この例示的方法のステップは、上記で図1を参照して説明したコンピュータ20と同様の顧客のコンピュータのソフトウェア製品中のソフトウェアコードによって行うことができる。
(b) g(rp)<2v。vはuより大きい整数。
(c) u+v=t
(d) g(rp)の結果は、rpの値に基づいて決定性である。
t=64
u=20
v=44
0<rp<2u(220=1,048,576)
2<g(rp)<2v
2<p2<p3<p1<p4<2v
dp=S mod Pp
pp=g(rp) ここで0<=rp<2u
取り出し時にg(rp)が得られればppはrpによって表すことができる
rpはuビットで表すことができる
dp=S mod pp
0<pp<2v
したがってdp<2v
これで、ステップ207で得たクラスの積cpとステップ310で得たクラスの部分的な秘密Ppを使用して強いハードウェア識別(SHWID)を構成することができる。図5のステップ401に示すように、クラスの強い識別(ID)Cpを各コンポーネントクラスに作成し、ここでCp=cp+Ppである。ステップ402で、コンポーネントクラスのすべてのクラスの強いID、Cpを組み合わせて強いハードウェア識別(SHWID)を形成する。得られたSHWIDは、将来の取り出しのために記憶する。SHWIDは、ローカルに(レジストリ、ファイルシステム、セキュアなストアなど)に記憶しても、アクセス可能な遠隔の場所(データベースなど)に記憶してもよい。
本発明はさらに、所与のコンピュータハードウェア構成から結び付けられた秘密Sを取り出す、または取り出しを試みる方法を対象とする。本発明の一実施形態では、所与のコンピュータハードウェア構成から結び付けられた秘密Sを取り出すことを試みる方法は、(i)ソフトウェア製品のインストール時、(ii)ハードウェア構成のあるコンポーネントにすでに存在するソフトウェアアプリケーションのロード時、あるいは(iii)その両方、に開始される。ハードウェア構成から結び付けられた秘密Sを取り出す例示的方法を図6〜7に示す。この例示的方法のステップは、図1を参照して上記で説明したコンピュータ20と同様の顧客のコンピュータのソフトウェア製品中のソフトウェアコードによって行うことができる。
上記の使用法に加えて、本発明の強いハードウェア識別(SHWID)を使用して、特定のハードウェア構成のみで使用するためにデータを暗号化/解読することができる。
21 処理装置
22 システムメモリ
23 システムバス
24 読み取り専用メモリ(ROM)
25 ランダムアクセスメモリ(RAM)
26 基本入出力システム(BIOS)
27 ハードディスク
28 磁気ディスクドライブ
29 取り外し可能磁気ディスク
30 光ディスクドライブ
31 取り外し可能光ディスク
32 ハードウェアディスクドライブインタフェース
33 磁気ディスクドライブインタフェース
34 光ディスクドライブインタフェース
35 オペレーティングシステム
37 プログラムモジュール
38 マニフェスト
40 キーボード
42 マウス
46 シリアルポートインタフェース
47 モニタ
48 ビデオアダプタ
49 リモートコンピュータサーバ
50 メモリ記憶装置
52 広域ネットワーク(WAN)
51 構内ネットワーク(LAN)
52 ワイドエリアネットワーク
53 ネットワークインタフェース
54 モデム
100 アプリケーションプログラム
105 ライブラリ
Claims (41)
- 第1のハードウェア構成を有する第1のコンピュータシステムの強いハードウェア識別(SHWID)を生成する方法であって、
前記第1のハードウェア構成中の各コンポーネントクラスを識別するステップであって、コンポーネントクラスの数はnに等しいステップと、
各コンポーネントクラスのクラスの積cpを求めるステップと、
各コンポーネントクラスのクラスの部分的秘密Ppを求めるステップと、
各コンポーネントクラスの前記クラスの積cpと前記部分的秘密Ppを足してn個の強いクラスIDを形成するステップと
を含み、
前記n個の強いクラスIDは、組み合わさって前記第1のコンピュータシステムの前記強いハードウェア識別(SHWID)を形成することを特徴とする方法。 - 前記nは約16までの整数であることを特徴とする請求項1に記載の方法。
- 前記各コンポーネントクラスのクラスの積cpは、
コンポーネントクラスの数nを選択するステップと、
前記n個のコンポーネントクラスを識別するステップと、
各コンポーネントクラス中のすべてのインスタンスを識別するステップと、
各コンポーネントインスタンスの識別ストリングを割り当てるステップと、
各コンポーネントインスタンスにインスタンス素数pp,qを生成するステップであって、各インスタンス素数は正の素数であり、pは1からnの範囲の所与のコンポーネントクラス番号を表し、qは、前記第1のハードウェア構成中でq番目のコンポーネントタイプを表すステップと、
各コンポーネントクラス中の前記インスタンス素数を乗算して、各コンポーネントクラスのクラスの積cpを形成するステップと
によって求められることを特徴とする請求項1に記載の方法。 - 前記インスタンス素数を生成するステップは、素数生成関数f(x)に各コンポーネントインスタンスの前記識別ストリングを入力するステップを含み、xは、約65,000文字までの長さの前記識別ストリングであることを特徴とする請求項3に記載の方法。
- 前記f(x)は、2tより大きい値の正の素数を生成し、tは約32から約2,048の範囲の整数であることを特徴とする請求項4に記載の方法。
- 各コンポーネントクラスの前記部分的な秘密Ppは、
各コンポーネントクラスについての乱数rpを生成するステップと、
各コンポーネントクラスについての素数ppを生成するステップであって、各クラスの素数は正の素数であるステップと、
必要とされるコンポーネントクラスの一致の数mを選択するステップであって、mはn以下であるステップと、
Nを決定するステップであって、Nはm個の最も小さなクラス素数ppの積に等しいステップと、
Mを決定するステップであって、Mは(m−1)個の最も大きなクラス素数ppの積に等しく、N未満であるステップと、
秘密の数Sを選択するステップであって、M<S<Nであるステップと、
各コンポーネントクラスのクラスの剰余dpを求めるステップであって、dpは、[S(mod pp)]に等しいステップと、
各コンポーネントクラスの第1の2進値を形成するステップであって、前記第1の2進値は、uビットまでの第1の2進値中に符号化された各クラスの前記クラスの素数ppであり、uはt未満であり、uとtはともに約2,048未満であるステップと、
各コンポーネントクラスの第2の2進値を形成するステップであって、前記第2の2進値は、vビットまでの第2の2進値中に符号化された各クラスのクラスの剰余dpであり、vはt未満であり、(u+v=t)であるステップと、
前記第1の2進値と第2の2進値を連結して、合計のビット数がtに等しい各コンポーネントクラスの部分的秘密Ppを形成するステップと
によって求められることを特徴とする請求項1に記載の方法。 - 前記rpは乱数生成器を使用して生成され、0から2u未満の範囲の値であることを特徴とする請求項6に記載の方法。
- 各コンポーネントクラスのクラス素数ppを生成する前記ステップは、素数生成関数g(x)に各コンポーネントクラスの前記乱数を入力するステップを含み、xは、約65,000文字までの長さを有する乱数であることを特徴とする請求項6に記載の方法。
- 前記g(x)は、2より大きく2v未満の範囲の値を有する正の素数を生成することを特徴とする請求項8に記載の方法。
- 前記方法は、前記第1のコンピュータシステムにソフトウェア製品をロードするステップ中に開始されることを特徴とする請求項1に記載の方法。
- 第2のハードウェア構成を有する第2のコンピュータシステムでソフトウェア製品を使用できるかどうかを判定する方法であって、前記第2のコンピュータシステムは前記第1のコンピュータシステムと同じであるか、または異なり、前記方法は、
請求項1に記載の方法によって生成される強いハードウェア識別(SHWID)を決定するのに使用される前記n個のコンポーネントクラスを識別するステップと、
前記第2のハードウェア構成の各コンポーネントクラス中のすべてのインスタンスを識別するステップと、
各個々のコンポーネントインスタンスを表す識別ストリングを取り出すステップと、
各コンポーネントインスタンスのインスタンス素数ip,qを生成するステップであって、各インスタンス素数は正の素数であり、pは1からnの範囲の所与のコンポーネントクラス番号を表し、qは前記第1のハードウェア構成または前記第2のハードウェア構成中でq番目のコンポーネントタイプを表すステップと、
可能なクラスの部分的秘密Pp,qを取り出し、
Pp,q=[Cp(mod ip,q)]
であるステップと、
前記可能なクラスの部分的秘密Pp,qから可能なクラス素数pp,qおよび可能なクラスの剰余dp,qを抽出するステップと、
前記可能なクラス素数と前記可能なクラス剰余の順列によって得られる合同式の集合を解いて、可能な秘密を生成するステップと、
所与の暗号文を復号することによって前記可能な秘密をテストし、暗号文に対応する知られる平文に照らして前記テストの結果をテストするステップと、
を含み、
前記復号された平文が前記知られる平文と一致する場合は、前記ソフトウェア製品を前記第2のコンピュータシステムにロードし、
前記復号された平文が前記知られる平文と一致しない場合は、前記ソフトウェア製品を前記第2のコンピュータシステムにロードすることを阻止することを特徴とする方法。 - 前記インスタンス素数を生成するステップは、素数生成関数f(x)に各個々のコンポーネントインスタンスを表す前記識別ストリングを入力するステップを含み、xは、約65,000文字までの長さの前記識別ストリングであることを特徴とする請求項11に記載の方法。
- 前記f(x)は、2tより大きい値の正の素数を生成し、tは約32から約2,048の範囲の整数であることを特徴とする請求項12に記載の方法。
- 当該コンピューティングシステムで使用することが可能な少なくとも1つのアプリケーションモジュールを含むコンピューティングシステムであって、前記少なくとも1つのアプリケーションモジュールは、請求項1に記載の方法を行うアプリケーションコードを含むことを特徴とするコンピューティングシステム。
- 請求項1に記載の方法を行うコンピュータ実行可能命令が格納されたことを特徴とするコンピュータ可読媒体。
- 第1のハードウェア構成を有する第1のコンピュータシステムの強いハードウェア識別(SHWID)を生成する方法を行うコンピュータ実行可能命令が格納されたコンピュータ可読媒体であって、前記方法は、
前記第1のハードウェア構成中の各コンポーネントクラスを識別するステップであって、コンポーネントクラスの数はnに等しいステップと、
各コンポーネントクラスのクラスの積cpを求めるステップと、
各コンポーネントクラスのクラスの部分的秘密Ppを求めるステップと、
各コンポーネントクラスの前記クラスの積cpと前記部分的秘密Ppを足してn個の強いクラスIDを形成するステップと
を含み、
前記n個の強いクラスIDは、組み合わさって前記第1のコンピュータシステムの前記強いハードウェア識別(SHWID)を形成することを特徴とするコンピュータ可読媒体。 - 前記nは約16までの整数であることを特徴とする請求項16に記載のコンピュータ可読媒体。
- 前記各コンポーネントクラスのクラスの積cpは、
コンポーネントクラスの数nを選択するステップと、
前記n個のコンポーネントクラスを識別するステップと、
各コンポーネントクラス中のすべてのインスタンスを識別するステップと、
各コンポーネントインスタンスの識別ストリングを割り当てるステップと、
各コンポーネントインスタンスにインスタンス素数pp,qを生成するステップであって、各インスタンス素数は正の素数であり、pは1からnの範囲の所与のコンポーネントクラス番号を表し、qは、前記第1のハードウェア構成中でq番目のコンポーネントタイプを表すステップと、
各コンポーネントクラス中の前記インスタンス素数を乗算して、各コンポーネントクラスのクラスの積cpを形成するステップと
によって求められることを特徴とする請求項16に記載のコンピュータ可読媒体。 - 前記インスタンス素数を生成するステップは、素数生成関数f(x)に各コンポーネントインスタンスの前記識別ストリングを入力するステップを含み、xは、約65,000文字までの長さの前記識別ストリングであることを特徴とする請求項18に記載のコンピュータ可読媒体。
- 前記f(x)は、2tより大きい値の正の素数を生成し、tは約32から約2,048の範囲の整数であることを特徴とする請求項19に記載のコンピュータ可読媒体。
- 各コンポーネントクラスの前記部分的な秘密Ppは、
各コンポーネントクラスについての乱数rpを生成するステップと、
各コンポーネントクラスについての素数ppを生成するステップであって、各クラスの素数は正の素数であるステップと、
必要とされるコンポーネントクラスの一致の数mを選択するステップであって、mはn以下であるステップと、
Nを決定するステップであって、Nはm個の最も小さなクラス素数ppの積に等しいステップと、
Mを決定するステップであって、Mは(m−1)個の最も大きなクラス素数ppの積に等しく、N未満であるステップと、
秘密の数Sを選択するステップであって、M<S<Nであるステップと、
各コンポーネントクラスのクラスの剰余dpを求めるステップであって、dpは、[S(mod pp)]に等しいステップと、
各コンポーネントクラスの第1の2進値を形成するステップであって、前記第1の2進値は、uビットまでの第1の2進値中に符号化された各クラスの前記クラスの素数ppであり、uはt未満であり、uとtはともに約2,048未満であるステップと、
各コンポーネントクラスの第2の2進値を形成するステップであって、前記第2の2進値は、vビットまでの第2の2進値中に符号化された各クラスのクラスの剰余dpであり、vはt未満であり、(u+v=t)であるステップと、
前記第1の2進値と第2の2進値を連結して、合計のビット数がtに等しい各コンポーネントクラスの部分的秘密Ppを形成するステップと
によって求められることを特徴とする請求項16に記載のコンピュータ可読媒体。 - 前記各乱数rpは乱数生成器を使用して生成され、0から2u未満の範囲の値であることを特徴とする請求項21に記載のコンピュータ可読媒体。
- 各コンポーネントクラスのクラス素数ppを生成する前記ステップは、素数生成関数g(x)中に各コンポーネントクラスの前記乱数を入力するステップを含み、xは、約65,000文字までの長さを有する乱数であることを特徴とする請求項21に記載のコンピュータ可読媒体。
- 前記g(x)は、2より大きく2v未満の範囲である値を有する正の素数を生成することを特徴とする請求項23に記載のコンピュータ可読媒体。
- 前記方法は、前記第1のコンピュータシステムにソフトウェア製品をロードするステップ中に開始されることを特徴とする請求項16に記載のコンピュータ可読媒体。
- 第2のハードウェア構成を有する第2のコンピュータシステムでソフトウェア製品を使用できるかどうかを判定する方法を行うコンピュータ実行可能命令が格納されたコンピュータ可読媒体であって、前記第2のコンピュータシステムは前記第1のコンピュータシステムと同じであるか、または異なり、前記方法は、
請求項16に記載の方法によって生成される強いハードウェア識別(SHWID)を決定するのに使用される前記n個のコンポーネントクラスを識別するステップと、
前記第2のハードウェア構成の各コンポーネントクラス中のすべてのインスタンスを識別するステップと、
各個々のコンポーネントインスタンスを表す識別ストリングを取り出すステップと、
各コンポーネントインスタンスのインスタンス素数ip,qを生成するステップであって、各インスタンス素数は正の素数であり、pは1からnの範囲の所与のコンポーネントクラス番号を表し、qは前記第1のハードウェア構成または前記第2のハードウェア構成中でq番目のコンポーネントタイプを表すステップと、
可能なクラスの部分的秘密Pp,qを取り出し、
Pp,q=[Cp(mod ip,q)]
であるステップと、
前記可能なクラスの部分的秘密Pp,qから可能なクラス素数pp,qおよび可能なクラスの剰余dp,qを抽出するステップと、
前記可能なクラス素数と前記可能なクラス剰余の順列によって得られる合同式の集合を解いて、可能な秘密を生成するステップと、
所与の暗号文を復号することによって前記可能な秘密をテストし、暗号文に対応する知られる平文に照らして前記テストの結果をテストするステップと、
を含み、
前記復号された平文が前記知られる平文と一致する場合は、前記ソフトウェア製品を前記第2のコンピュータシステムにロードし、
前記復号された平文が前記知られる平文と一致しない場合は、前記ソフトウェア製品を前記第2のコンピュータシステムにロードすることを阻止することを特徴とするコンピュータ可読媒体。 - 前記インスタンス素数を生成するステップは、素数生成関数f(x)に各個々のコンポーネントインスタンスを表す前記識別ストリングを入力するステップを含み、xは、約65,000文字までの長さの前記識別ストリングであることを特徴とする請求項26に記載のコンピュータ可読媒体。
- f(x)は、2tより大きい値の正の素数を生成し、tは約32から約2,048の範囲の整数であることを特徴とする請求項27に記載のコンピュータ可読媒体。
- 当該コンピューティングシステムで使用することが可能な少なくとも1つのアプリケーションモジュールを含むコンピューティングシステムであって、前記少なくとも1つのアプリケーションモジュールは、第1のハードウェア構成を有する第1のコンピュータシステムの強いハードウェア識別(SHWID)を生成する方法を行うアプリケーションコードを含み、前記方法は、
前記第1のハードウェア構成中の各コンポーネントクラスを識別するステップであって、前記コンポーネントクラスの数はnに等しいステップと、
各コンポーネントクラスのクラスの積cpを求めるステップと、
各コンポーネントクラスのクラスの部分的秘密Ppを求めるステップと、
各コンポーネントクラスの前記クラスの積cpと前記部分的秘密Ppを足してn個の強いクラスIDを形成するステップと
を含み、
前記n個の強いクラスIDは、組み合わさって前記第1のコンピュータシステムの前記強いハードウェア識別(SHWID)を形成することを特徴とするコンピューティングシステム。 - 前記nは約16までの整数であることを特徴とする請求項29に記載のコンピューティングシステム。
- 前記各コンポーネントクラスのクラスの積cpは、
コンポーネントクラスの数nを選択するステップと、
前記n個のコンポーネントクラスを識別するステップと、
各コンポーネントクラス中のすべてのインスタンスを識別するステップと、
各コンポーネントインスタンスの識別ストリングを割り当てるステップと、
各コンポーネントインスタンスにインスタンス素数pp,qを生成するステップであって、各インスタンス素数は正の素数であり、pは1からnの範囲の所与のコンポーネントクラス番号を表し、qは、前記第1のハードウェア構成中でq番目のコンポーネントタイプを表すステップと、
各コンポーネントクラス中の前記インスタンス素数を乗算して、各コンポーネントクラスのクラスの積cpを形成するステップと
によって求められることを特徴とする請求項29に記載のコンピューティングシステム。 - 前記インスタンス素数を生成するステップは、素数生成関数f(x)に各コンポーネントインスタンスの前記識別ストリングを入力するステップを含み、xは、約65,000文字までの長さの前記識別ストリングであることを特徴とする請求項31に記載のコンピューティングシステム。
- 前記f(x)は、2tより大きい値の正の素数を生成し、tは約32から約2,048の範囲の整数であることを特徴とする請求項32に記載のコンピューティングシステム。
- 各コンポーネントクラスの前記部分的な秘密Ppは、
各コンポーネントクラスについての乱数rpを生成するステップと、
各コンポーネントクラスについての素数ppを生成するステップであって、各クラスの素数は正の素数であるステップと、
必要とされるコンポーネントクラスの一致の数mを選択するステップであって、mはn以下であるステップと、
Nを決定するステップであって、Nはm個の最も小さなクラス素数ppの積に等しいステップと、
Mを決定するステップであって、Mは(m−1)個の最も大きなクラス素数ppの積に等しく、N未満であるステップと、
秘密の数Sを選択するステップであって、M<S<Nであるステップと、
各コンポーネントクラスのクラスの剰余dpを求めるステップであって、dpは、[S(mod pp)]に等しいステップと、
各コンポーネントクラスの第1の2進値を形成するステップであって、前記第1の2進値は、uビットまでの第1の2進値中に符号化された各クラスの前記クラスの素数ppであり、uはt未満であり、uとtはともに約2,048未満であるステップと、
各コンポーネントクラスの第2の2進値を形成するステップであって、前記第2の2進値は、vビットまでの第2の2進値中に符号化された各クラスのクラスの剰余dpであり、vはt未満であり、(u+v=t)であるステップと、
前記第1の2進値と第2の2進値を連結して、合計のビット数がtに等しい各コンポーネントクラスの部分的秘密Ppを形成するステップと
によって求められることを特徴とする請求項29に記載のコンピューティングシステム。 - 前記各乱数rpは乱数生成器を使用して生成され、0から2u未満の範囲の値であることを特徴とする請求項34に記載のコンピューティングシステム。
- 各コンポーネントクラスのクラス素数ppを生成する前記ステップは、素数生成関数g(x)中に各コンポーネントクラスの前記乱数を入力するステップを含み、xは、約65,000文字までの長さを有する乱数であることを特徴とする請求項34に記載のコンピューティングシステム。
- 前記g(x)は、2より大きく2v未満の範囲の値を有する正の素数を生成することを特徴とする請求項36に記載のコンピューティングシステム。
- 前記方法は、前記第1のコンピュータシステムにソフトウェア製品をロードするステップ中に開始されることを特徴とする請求項29に記載のコンピューティングシステム。
- 当該コンピューティングシステムで使用することが可能な少なくとも1つのアプリケーションモジュールを含むコンピューティングシステムであって、前記少なくとも1つのアプリケーションモジュールは、第2のハードウェア構成を有する第2のコンピュータシステムでソフトウェア製品を使用できるかどうかを判定する方法を行うアプリケーションコードを含み、前記第2のコンピュータシステムは、前記第1のコンピュータシステムと同じであるか、または異なり、前記方法は、
請求項29に記載の方法によって生成される強いハードウェア識別(SHWID)を決定するのに使用される前記n個のコンポーネントクラスを識別するステップと、
前記第2のハードウェア構成の各コンポーネントクラス中のすべてのインスタンスを識別するステップと、
各個々のコンポーネントインスタンスを表す識別ストリングを取り出すステップと、
各コンポーネントインスタンスのインスタンス素数ip,qを生成するステップであって、各インスタンス素数は正の素数であり、pは1からnの範囲の所与のコンポーネントクラス番号を表し、qは前記第1のハードウェア構成または前記第2のハードウェア構成中でq番目のコンポーネントタイプを表すステップと、
可能なクラスの部分的秘密Pp,qを取り出し、
Pp,q=[Cp(mod ip,q)]
であるステップと、
前記可能なクラスの部分的秘密Pp,qから可能なクラス素数pp,qおよび可能なクラスの剰余dp,qを抽出するステップと、
前記可能なクラス素数と前記可能なクラス剰余の順列によって得られる合同式の集合を解いて、可能な秘密を生成するステップと、
所与の暗号文を復号することによって前記可能な秘密をテストし、暗号文に対応する知られる平文に照らして前記テストの結果をテストするステップと、
を含み、
前記復号された平文が前記知られる平文と一致する場合は、前記ソフトウェア製品を前記第2のコンピュータシステムにロードし、
前記復号された平文が前記知られる平文と一致しない場合は、前記ソフトウェア製品を前記第2のコンピュータシステムにロードすることを阻止することを特徴とするコンピューティングシステム。 - 前記インスタンス素数を生成するステップは、素数生成関数f(x)に各個々のコンポーネントインスタンスを表す前記識別ストリングを入力するステップを含み、xは、約65,000文字までの長さの前記識別ストリングであることを特徴とする請求項39に記載のコンピューティングシステム。
- 前記f(x)は、2tより大きい値の正の素数を生成し、tは約32から約2,048の範囲の整数であることを特徴とする請求項40に記載のコンピューティングシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/378,224 US7296294B2 (en) | 2003-03-03 | 2003-03-03 | System for binding secrets to a computer system having tolerance for hardware changes |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004266841A true JP2004266841A (ja) | 2004-09-24 |
JP4599069B2 JP4599069B2 (ja) | 2010-12-15 |
Family
ID=32824752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004059841A Expired - Fee Related JP4599069B2 (ja) | 2003-03-03 | 2004-03-03 | ハードウェア変更の許容度を有するコンピュータシステムに秘密を結び付けるシステム |
Country Status (19)
Country | Link |
---|---|
US (2) | US7296294B2 (ja) |
EP (1) | EP1455257B1 (ja) |
JP (1) | JP4599069B2 (ja) |
KR (1) | KR101036701B1 (ja) |
CN (1) | CN100416445C (ja) |
AT (1) | ATE306101T1 (ja) |
AU (1) | AU2004200683B2 (ja) |
BR (1) | BRPI0400380A (ja) |
CA (1) | CA2459217A1 (ja) |
DE (1) | DE602004000106T8 (ja) |
DK (1) | DK1455257T3 (ja) |
ES (1) | ES2250932T3 (ja) |
HK (1) | HK1068697A1 (ja) |
MX (1) | MXPA04002024A (ja) |
MY (1) | MY134635A (ja) |
PL (1) | PL1455257T3 (ja) |
RU (1) | RU2348968C2 (ja) |
TW (1) | TWI319544B (ja) |
ZA (1) | ZA200401493B (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050027657A1 (en) * | 2003-08-01 | 2005-02-03 | Yuri Leontiev | Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers |
JP4699099B2 (ja) * | 2005-06-14 | 2011-06-08 | 富士通株式会社 | 通信制御装置および通信制御方法 |
FR2912529A1 (fr) * | 2007-02-13 | 2008-08-15 | France Telecom | Couplage d'un programme informatique ou de donnees a un systeme de reference et verification associee. |
US8620818B2 (en) * | 2007-06-25 | 2013-12-31 | Microsoft Corporation | Activation system architecture |
US20090119744A1 (en) * | 2007-11-01 | 2009-05-07 | Microsoft Corporation | Device component roll back protection scheme |
US9047458B2 (en) | 2009-06-19 | 2015-06-02 | Deviceauthority, Inc. | Network access protection |
US9047450B2 (en) * | 2009-06-19 | 2015-06-02 | Deviceauthority, Inc. | Identification of embedded system devices |
US20100332319A1 (en) * | 2009-06-24 | 2010-12-30 | Craig Stephen Etchegoyen | Methods and Systems for Dynamic Serving of Advertisements in a Game or Virtual Reality Environment |
US9495190B2 (en) * | 2009-08-24 | 2016-11-15 | Microsoft Technology Licensing, Llc | Entropy pools for virtual machines |
US8726407B2 (en) * | 2009-10-16 | 2014-05-13 | Deviceauthority, Inc. | Authentication of computing and communications hardware |
EP2686806B1 (en) * | 2011-03-15 | 2019-09-11 | Irdeto B.V. | Change-tolerant method of generating an identifier for a collection of assets in a computing environment using a secret sharing scheme |
US9967089B2 (en) * | 2011-03-15 | 2018-05-08 | Irdeto B.V. | Change-tolerant method for generating identifier for collection of assets in computing environment using error-correction code scheme |
AU2011101295B4 (en) | 2011-06-13 | 2012-08-02 | Device Authority Ltd | Hardware identity in multi-factor authentication layer |
AU2011101297B4 (en) | 2011-08-15 | 2012-06-14 | Uniloc Usa, Inc. | Remote recognition of an association between remote devices |
US9143496B2 (en) | 2013-03-13 | 2015-09-22 | Uniloc Luxembourg S.A. | Device authentication using device environment information |
US9286466B2 (en) | 2013-03-15 | 2016-03-15 | Uniloc Luxembourg S.A. | Registration and authentication of computing devices using a digital skeleton key |
US11093656B2 (en) * | 2018-11-14 | 2021-08-17 | Irdeto B.V. | Change-tolerant method of generating an identifier for a collection of assets in a computing environment |
CN114761940A (zh) * | 2019-08-28 | 2022-07-15 | 斯巴达系统公司 | 用于生成电子数据记录的审计跟踪的方法、设备和计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4796220A (en) * | 1986-12-15 | 1989-01-03 | Pride Software Development Corp. | Method of controlling the copying of software |
US5790783A (en) * | 1996-03-28 | 1998-08-04 | Advanced Micro Devices, Inc. | Method and apparatus for upgrading the software lock of microprocessor |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5113518A (en) * | 1988-06-03 | 1992-05-12 | Durst Jr Robert T | Method and system for preventing unauthorized use of software |
US5182770A (en) * | 1991-04-19 | 1993-01-26 | Geza Medveczky | System and apparatus for protecting computer software |
US5870543A (en) * | 1995-06-07 | 1999-02-09 | Digital River, Inc. | System for preventing unauthorized copying of active software |
US5826011A (en) * | 1995-12-26 | 1998-10-20 | Rainbow Technologies, Inc. | Method of metering and protecting computer software |
EP0881557B1 (en) * | 1997-05-28 | 2003-04-16 | Siemens Aktiengesellschaft | Computer system for protecting software and a method for protecting software |
US6134659A (en) * | 1998-01-07 | 2000-10-17 | Sprong; Katherine A. | Controlled usage software |
US6243468B1 (en) * | 1998-04-29 | 2001-06-05 | Microsoft Corporation | Software anti-piracy system that adapts to hardware upgrades |
US7503072B2 (en) | 1998-04-29 | 2009-03-10 | Microsoft Corporation | Hardware ID to prevent software piracy |
US20040107368A1 (en) * | 1998-06-04 | 2004-06-03 | Z4 Technologies, Inc. | Method for digital rights management including self activating/self authentication software |
CA2310032A1 (en) | 2000-06-09 | 2001-12-09 | Andre J. Brisson | Big soft brother |
JP3840399B2 (ja) | 2000-12-05 | 2006-11-01 | 健太 堀 | ソフトウエアの不正利用防止方法及びプログラム並びに記憶媒体 |
-
2003
- 2003-03-03 US US10/378,224 patent/US7296294B2/en not_active Expired - Fee Related
-
2004
- 2004-02-20 AU AU2004200683A patent/AU2004200683B2/en not_active Ceased
- 2004-02-24 ZA ZA200401493A patent/ZA200401493B/xx unknown
- 2004-02-27 TW TW093105188A patent/TWI319544B/zh not_active IP Right Cessation
- 2004-02-27 MY MYPI20040646A patent/MY134635A/en unknown
- 2004-03-01 CA CA002459217A patent/CA2459217A1/en not_active Abandoned
- 2004-03-02 DK DK04004847T patent/DK1455257T3/da active
- 2004-03-02 BR BR0400380-2A patent/BRPI0400380A/pt not_active IP Right Cessation
- 2004-03-02 RU RU2004106183/09A patent/RU2348968C2/ru not_active IP Right Cessation
- 2004-03-02 DE DE602004000106T patent/DE602004000106T8/de active Active
- 2004-03-02 EP EP04004847A patent/EP1455257B1/en not_active Expired - Lifetime
- 2004-03-02 PL PL04004847T patent/PL1455257T3/pl unknown
- 2004-03-02 ES ES04004847T patent/ES2250932T3/es not_active Expired - Lifetime
- 2004-03-02 AT AT04004847T patent/ATE306101T1/de active
- 2004-03-02 MX MXPA04002024A patent/MXPA04002024A/es active IP Right Grant
- 2004-03-03 JP JP2004059841A patent/JP4599069B2/ja not_active Expired - Fee Related
- 2004-03-03 KR KR1020040014430A patent/KR101036701B1/ko not_active IP Right Cessation
- 2004-03-03 CN CNB2004100286607A patent/CN100416445C/zh not_active Expired - Fee Related
-
2005
- 2005-02-03 HK HK05100910A patent/HK1068697A1/xx not_active IP Right Cessation
-
2007
- 2007-10-22 US US11/876,640 patent/US7647640B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4796220A (en) * | 1986-12-15 | 1989-01-03 | Pride Software Development Corp. | Method of controlling the copying of software |
US5790783A (en) * | 1996-03-28 | 1998-08-04 | Advanced Micro Devices, Inc. | Method and apparatus for upgrading the software lock of microprocessor |
Non-Patent Citations (1)
Title |
---|
JPN6010030867, Inside Windows Product Activation − A Fully Licensed Paper, 200107 * |
Also Published As
Publication number | Publication date |
---|---|
AU2004200683B2 (en) | 2009-08-13 |
DE602004000106D1 (de) | 2006-02-16 |
JP4599069B2 (ja) | 2010-12-15 |
US7647640B2 (en) | 2010-01-12 |
US20080098482A1 (en) | 2008-04-24 |
DE602004000106T8 (de) | 2006-06-08 |
AU2004200683A1 (en) | 2004-09-23 |
DE602004000106T2 (de) | 2006-03-23 |
US20040177255A1 (en) | 2004-09-09 |
RU2004106183A (ru) | 2005-08-10 |
TWI319544B (en) | 2010-01-11 |
CN1542583A (zh) | 2004-11-03 |
ES2250932T3 (es) | 2006-04-16 |
DK1455257T3 (da) | 2006-02-06 |
CN100416445C (zh) | 2008-09-03 |
KR20040078593A (ko) | 2004-09-10 |
ATE306101T1 (de) | 2005-10-15 |
PL1455257T3 (pl) | 2006-03-31 |
HK1068697A1 (en) | 2005-04-29 |
MY134635A (en) | 2007-12-31 |
CA2459217A1 (en) | 2004-09-03 |
EP1455257B1 (en) | 2005-10-05 |
RU2348968C2 (ru) | 2009-03-10 |
TW200422945A (en) | 2004-11-01 |
US7296294B2 (en) | 2007-11-13 |
MXPA04002024A (es) | 2005-02-17 |
BRPI0400380A (pt) | 2005-01-04 |
KR101036701B1 (ko) | 2011-05-24 |
ZA200401493B (en) | 2005-04-19 |
EP1455257A1 (en) | 2004-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7647640B2 (en) | System for binding secrets to a computer system having tolerance for hardware changes | |
JP4652701B2 (ja) | ハードウェア変更の許容度を有するコンピュータシステムにソフトウェアパッケージを結び付けるためのコンパクトハードウェア識別 | |
JP4652702B2 (ja) | ハードウェア変更の許容度を有するコンピュータシステムにソフトウェアパッケージを結び付けるための詳細ハードウェア識別 | |
US6961852B2 (en) | System and method for authenticating software using hidden intermediate keys | |
US7770021B2 (en) | Authenticating software using protected master key | |
US20080263366A1 (en) | Self-verifying software to prevent reverse engineering and piracy | |
US20070074038A1 (en) | Method, apparatus and program storage device for providing a secure password manager | |
US8600047B2 (en) | Exponent obfuscation | |
CN112514321A (zh) | 共享秘密建立 | |
JP2010517448A (ja) | セキュアファイル暗号化 | |
US7080249B1 (en) | Code integrity verification that includes one or more cycles | |
KR20100031106A (ko) | 데이터 보안 | |
EP2541456B1 (en) | Method for protecting the digital contents of a solid state memory | |
US20060224894A1 (en) | Methods, devices and computer programs for creating ciphertext, plaintext and a cryptographic key | |
JP5539024B2 (ja) | データ暗号化装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100604 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100903 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100921 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100927 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131001 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |