CN1542583A - 用于将机密捆绑到具有硬件变化容限的计算机系统的系统 - Google Patents
用于将机密捆绑到具有硬件变化容限的计算机系统的系统 Download PDFInfo
- Publication number
- CN1542583A CN1542583A CNA2004100286607A CN200410028660A CN1542583A CN 1542583 A CN1542583 A CN 1542583A CN A2004100286607 A CNA2004100286607 A CN A2004100286607A CN 200410028660 A CN200410028660 A CN 200410028660A CN 1542583 A CN1542583 A CN 1542583A
- Authority
- CN
- China
- Prior art keywords
- class
- prime number
- component
- secret
- computer system
- 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
- 238000000034 method Methods 0.000 claims abstract description 73
- 230000008878 coupling Effects 0.000 claims description 20
- 238000010168 coupling process Methods 0.000 claims description 20
- 238000005859 coupling reaction Methods 0.000 claims description 20
- 230000015556 catabolic process Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000000295 complement effect Effects 0.000 claims 3
- 230000006870 function Effects 0.000 description 19
- 230000015654 memory Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 150000003839 salts Chemical class 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003389 potentiating effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method 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)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Organic Chemistry (AREA)
- General Chemical & Material Sciences (AREA)
- Veterinary Medicine (AREA)
- General Health & Medical Sciences (AREA)
- Mechanical Engineering (AREA)
- Textile Engineering (AREA)
- Animal Behavior & Ethology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Pharmacology & Pharmacy (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Medicinal Chemistry (AREA)
- Public Health (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Chemical & Material Sciences (AREA)
- Oncology (AREA)
- Communicable Diseases (AREA)
- Storage Device Security (AREA)
- Emergency Protection Circuit Devices (AREA)
- Joining Of Building Structures In Genera (AREA)
- Package Frames And Binding Bands (AREA)
- Orthopedics, Nursing, And Contraception (AREA)
Abstract
揭示了用于将一机密捆绑到计算机系统的系统和方法。还揭示了用于生成给定计算机系统的强硬件标识(SHWID)的系统和方法。强硬件标识(SHWID)耦合到捆绑的机密。取决于对计算机系统的硬件改变程度,强硬件标识(SHWID)可能用于控制给定计算机上的软件使用。
Description
本发明的领域
本发明涉及用于将机密捆绑到给定计算机系统的系统和方法。本发明还涉及用于对给定计算机系统生成强硬件标识,强硬件标识的一个组件耦合到捆绑的机密。取决于对计算机系统的硬件改变程度,产生的强硬件标识可能用于控制在给定计算机系统上的软件使用。
本发明背景
近些年来在防止或最小化计算机软件的非法使用上作出了相当大的努力。由于其可复制性以及发行的简易性,经常发生超出许可证协议范围的计算机软件的盗版以及其非法使用,这严重影响了软件制造商的利益。
已经研发了减少超出许可证协议范围的计算机软件盗版及其非法使用的发生的方法。然而,该种方法经常会导致合法的软件购买者和用户使用的不便。例如,将其计算机升级的用户应能合法地在升级后的计算机上重装该软件产品。然而,现今可用的方法可能或是(i)使得软件不能被载入,或(ii)迫使(不满意的)用户打电话给软件制造商以寻求帮助。
相应地,需要改进的技术方案以防止盗版和非法使用,但还需要能考虑并适应合法软件购买者和用户的权益。
本发明的概述
本发明通过一种将机密捆绑到给定计算机系统并将改进的硬件标识耦合到机密上的方法解决以上提出的一些难点和问题。本发明的硬件标识提供了一种最小化或防止超出许可证协议范围的计算机软件盗版和非法使用的方法,同时允许合法软件用户更新机器。
本发明的硬件标识,在此称为“强硬件标识”(SHWID),包括两个分开的分量:(1)硬件标识分量,以及(2)部分机密分量。通过将(1)硬件标识分量与(2)部分机密分量组合,生成对于给定计算机系统更安全可靠的强硬件标识(SHWID)。
强硬件标识(SHWID)可能用于在将软件产品载入到计算机上时标识给定的硬件配置。强硬件标识(SHWID)可能被存储以备将来使用,诸如(1)当同一软件产生在同一计算机或同一计算机的变体上被启动,或(ii)当同一软件产品被重新载入到同一计算机的变体或完全不同的计算机上。例如当同一软件产品在同一计算机或同一计算机的变体上启动时,要确定耦合到原来的强硬件标识(SHWID)的机密是否能被生成。如果能生成机密,则本发明的方法允许软件产品被启动。然而,如果不能生成机密,则本发明的产品由于原来硬件系统的改变超出了期望的阀值而不允许启动软件产品。
相应地,本发明是关于将机密捆绑到给定的计算机系统,并将强硬件标识(SHWID)耦合到该机密。本发明进一步还关于如果在计算机系统上不能提取原来的强硬件标识(SHWID),则防止软件在计算机系统上使用的方法。
本发明的这些以及其它的特征在揭示的实施例的所附的权利要求书的详细描述后会变得更清楚。
附图的简要说明
图1是用于实现本发明的实例操作环境的一些主要组件的流程图;
图2是示出确定强硬件标识(SHWID)的硬件标识分量的示例步骤的流程图;
图3和4是示出确定强硬件标识(SHWID)的部分机密分量的示例步骤的流程图;
图5是示出将强硬件标识(SHWID)的硬件标识分量和部分机密分量组合的示例步骤的流程图;
图6和7是示出根据是否能提取捆绑的机密作为软件产品能用因子从而确定一软件产品能否在计算机硬件系统上使用的示例步骤的流程图。
本发明的详细说明
为增强对本发明的原理的理解,以下本发明的特定实施例的描述以及特定的语言适用于描述特定实施例的。然而,可以理解的是使用特定的语言不是为了限制本发明的范围。本发明属于的领域内的普通技术人员还可以考虑本发明的原理的进一步修改以及应用。
本发明是关于将机密捆绑到给定的计算机系统以及耦合到机密的强硬件标识(SHWID)的方法。该机密一般包括随机选择的整个数。机密最好有以下特征:
(1)机密S,在硬件配置H上可计算;
(2)机密S,在硬件配置H1上可计算,H1是在一定量的分量的改变直到分量改变的期望阀值量内后的硬件配置H;以及
(3)机密S,实际上不可能在任何其它硬件配置H2上计算。
机密可以用于对包括多种硬件组件的给定计算机系统生成强硬件标识(SHWID)。示例计算机系统可能包括多个硬件组件类,包括但不限于:硬盘驱动、光盘驱动诸如CD-ROM、网卡、显示适配器、只读存储器(ROM)、随机访问存储器(RAM)以及基本输入/输出系统(BIOS)。以下描述实现本发明的示例计算机系统和示例操作环境。
示例操作环境
本发明的示例实施例在以后会参考附图进行描述,其中在几幅附图内类似的标号标识类似的元件。图1说明实现本发明的示例操作环境。示例操作环境包括常规个人计算机20形式的通用计算设备。一般,个人计算机20包括处理单元21、系统存储器22以及耦合各种系统组件的系统总线23,诸如将系统存储器22耦合到处理单元21。系统总线23可能是任何总线结构类型,包括存储器总线或存储器控制器、外围总线以及使用任何一种总线结构的局部总线。系统存储器包括只读存储器(ROM)24和随机访问存储器(RAM)25。基本输入/输出系统(BIOS)26存储在ROM 24内,它包括帮助将信息(诸如在启动时)在个人计算机20内的元件间传输的基本程序。
个人计算机20还包括硬盘驱动27(未示出)-用于从硬盘读出和写入、磁盘驱动28-用于从可移动磁盘29读出或写入以及光盘驱动30-用于从可移动光盘31(诸如CD-ROM或其它光媒质)读出或写入。硬盘驱动27、磁盘驱动28以及光盘驱动30通过相应的硬盘驱动接口32、磁盘驱动接口33以及光盘驱动接口34连到系统总线23。虽然在此描述的示例环境使用硬盘27、可移动磁盘29以及可移动光盘31,本领域内的技术人员可以理解其它类型的计算机可读媒体,即可以存储计算机可访问的数据的介质,诸如磁带、闪存卡、数字视频盘、Bernouilli卡盒、RAM、ROM以及类似的,也可以用于示例操作环境。驱动器以及与其相关的计算机可读介质提供了计算机可执行指令、数据结构、程序模块以及个人计算机20的其它数据的非易失性存储。例如,一个或多个数据文件60(未示出)可能存储在RAM 25以及/或个人计算机20的硬驱动27内。
可以在硬盘27、磁盘29、光盘31、ROM 24或RAM 25上存储多个程序模块,包括操作系统35、应用程序模块36、其它程序模块37以及程序数据38。程序模块包括但不限于:例行程序、子程序、程序、对象、组件、数据结构等,它们实现特定任务或实现特定的抽象数据类型。本发明的方面可能实现为应用程序模块36的整体部分或是作为另一程序模块37的一部分。
用户可能通过输入设备在个人计算机20内输入命令和信息,诸如通过键盘40和指示设备42。其它输入设备(未示出)可能包括麦克风、操纵杆、游戏键盘、卫星式转盘、扫描仪等。这些和其它的输入设备经常通过耦合到系统总线23的串行端口接口46连接到处理单元22,但可能由其它接口连接,诸如并行端口、游戏端口、通用串行总线(USB)等。监视器47或其它类型的显示设备还可能通过接口连接到系统总线23,诸如视频适配器48。除监视器外,个人计算机一般包括其它外围输出设备(未示出),诸如扬声器和打印机。
个人计算机20可能通过到一个或多个远程计算机49的逻辑连接在网络环境内操作。远程计算机49可能是另一台个人计算机、服务器、客户机、路由器、网络PC、对等设备或其它公共网络节点。而远程计算机49一般包括许多或所有的以上与个人计算机20相关的元件,在图1中只说明了存储器设备50。图1描述的逻辑连接包括本地局域网(LAN)51以及广域网(WAN)52。该种网络环境在办公室、企业范围的计算机网络、企业内部网和因特网中都很常见。
当用于LAN网络环境时,个人计算机20通过网络接口或适配器53连到本地局域网51。当用于WAN网络环境时,个人计算机20一般包括调制解调器54或其它用于在WAN 52上建立通信(诸如因特网)的装置。调制解调器54可能是外置或内置的,通过串行端口接口46连到系统总线23上。在网络环境中,相关于个人计算机20描述的程序模块或其一部分可能存储在远程存储设备50内。可以理解示出的网络连接是示例的,还可能使用其它建立计算机间通信链路的装置。
而且,本领域内的技术人员可以理解本发明可以在其它计算机系统配置中实现,包括手持设备、微处理器系统、基于微处理器或可编程的消费类电子产品、网络个人计算机、微型计算机、大型计算机等。本发明还可以在分布式计算环境中应用,其中任务是由通过通信网络链接的远程处理设备实现的。在分布式计算环境中,程序模块可能位于本地和远程存储设备内。
本发明的示范实施例的实现
如上所述,计算机系统一般包括多类硬件组件。另外,计算机系统可能在每类硬件组件内包括多个组件(例如两个硬盘驱动器)。本发明的强硬件标识(SHWID)考虑每类硬件组件内的每个组件(在此也称为“实例”)。本发明的强硬件标识(SHWID)还考虑机密S,它是与给定计算机硬件系统捆绑的。
以下给出本发明的生成强硬件标识(SHWID)的示例方法。另外还描述了一种使用强硬件标识(SHWID)作为反盗版工具的方法。
I.为A计算机系统生成强硬件标识(SHWID)
给定计算机系统的强硬件标识(SHWID)包括两个不同的分量:(1)硬件分量,以及(2)部分机密分量。以下描述了确定这些分量的示例方法。示例方法的步骤可以由用户计算机上的软件产品内的软件代码实现,该计算机类似以上参考图1描述的计算机20。
A.确定SHWID的硬件分量
本发明的SHWID包括硬件分量的每个类的类积。SHWID的硬件分量可以入图2示出的确定。
如图2示出,一示例的SHWID的硬件分量的确定开始于步骤201,其中组件类的数目n,被选来用于标识给定的计算机系统。如上所述,给定的计算机系统可能包括各种硬件组件和硬件组件类。示例硬件组件类包括但不限于硬盘驱动、光盘驱动、网卡、声卡、显示适配器、只读存储器(ROM)、随机访问存储器(RAM)以及BIOS系统。最好硬件组件类的个数n为大致2到大致16间的整个数。一般,n最好越大越好,为了(i)更精确地标识给定的计算机系统,(ii)更准确地测量给定计算机系统的容限以及(iii)使得机密S能有更高的安全级。
在步骤201选择了组件类的个数n后,在步骤202标识每个组件类。组件类可能包括以上描述的任何组件类,诸如硬盘驱动器类。组件类的示例列表在以下表1中给出。
表1.硬件组件类的示例列表
组件类号 | 类描述 | 类标识符 |
1 | CdRom | CdRom设备标识符 |
2 | 硬盘驱动器 | 驱动器分区序列号 |
3 | 网卡 | MAC地址 |
4 | 显示适配设备 | 标识符 |
如表1示出,在该实例中,n等于4以及标识的硬件组件类为:(1)CdRom类;(2)硬盘驱动器类:(3)网卡类;(4)显示适配设备类。
在步骤202标识了每个组件类后,每个硬件组件类内的所有实例在步骤203处经标识。最好,特定组件类内的每个实例由与实例相关联的最唯一的标识字符串表示。例如,硬件配置可能包含NEC公司生产的CdRom驱动器,并带有“NECCDRW24 S15”的标识字符串。可以在本发明内使用任何可用的确定给定实例最唯一的标识字符串的方法,包括设备查询以及操作系统API功能呼叫。计算机硬件配置和每个硬件组件类内的实例的例子在表2中示出。
表2.每个组件类的实例组件实例
组件类号 | 类描述 | 类组件实例 |
1 | CdRom | {“NEC CDRW24 S15”,“TOSHIBA DVDR ASK-1425”} |
2 | 硬盘驱动器 | {1bcdff1922,7da90024} |
3 | 网卡 | {00b0c31b5923} |
4 | 显示适配设备 | {“Nvidia GeForce2 DDR”} |
如以上表2示出,类1,CdRom类包含两个组件实例;类2硬盘驱动类包含两个组件实例;类3网卡类包含一个实例;以及类4显示适配设备类,包含一个实例。
在步骤205,使用质数生成函数f(x)为每个组件实例生成实例质数。最好函数f(x)具有以下特征:
(a)f(x)的结果是正质数;
(b)x可以是任何长度长达65000个字符的数据;以及
(c)f(x)>2t,其中t是最好大于32的整个数。最好t等于或大于64。
然而,t的值没有任何限制。
(d)f(x)的结果根据x值是确定性的。
可以在本发明中使用任何质数生成函数f(x)以为每个组件实例生成质数。如上所述,质数生成函数f(x)最好具有以上特征。合适的质数生成函数f(x)包括但不限于基于Rabin-Miller算法的质数生成函数f(x),在Bruce Schneier的
Applied Cryptography,第二版有揭示,页数259-260,其揭示在此全部被引入作为参考。
表3提供了示例硬件配置的组件实例的实例质数ip,q的列表。
表3.组件实例的示例实例质数
组件类号 | 类描述 | 组件实例的实例质数 |
1 | CdRom | {f(“NEC CDRW24 S15”)=i1,1,f(“TOSHIBA DVDRASK-1425”)=i1,2} |
2 | 硬盘驱动器 | {f(1bcdff1922)=i2,1,f(7da90024)=i2,2} |
3 | 网卡 | {f(00b0c31b5923)=i3,1} |
4 | 显示适配设备 | {f(“Nvidia GeForce2 DDR”)=i4,1} |
如上使用的,实例质数ip,q用于为给定类p内的给定的组件实例q指定实例质数。例如实例质数i1,2用于标识组件类1(例如p=1)内的组件实例的实例质数,且尤其是组件类1和计算机硬件配置内的第二组件实例(q=2)。
在本发明的一实施例内,可以在为给定的组件实例生成实例质数前向组件实例标识符加入一“盐值”。在该实施例中,加入一盐值使得能基于相同计算机硬件配置生成不同的SHWID。从应用代码或用户身份导出的盐值使得能实现对不同应用或在相同硬件配置上的用户有不同SHWID,这对于实现特定应用或用户的数据安全是有益的。
一实例质数为每个组件实例生成,在步骤206为每个组件类生成类积cp。类积cp通过将给定类内的实例质数和另一个相乘而生成。实例类积c1到c4在表4中给出。
表4.每个组件类的实例类积
组件类号 | 类描述 | 组件实例的实例质数 |
1 | CdRom | c1=(i1,1)×(i1,2) |
2 | 硬盘驱动器 | c2=(i2,1)×(i2,2) |
3 | 网卡 | c3=i3,1 |
4 | 显示适配设备 | c4=i4,1 |
如图4示出,硬件组件类CdRom的类积c1等于两个实例i1,1和i1,2的乘积。值得注意的是从单个实例质数生成的类积,诸如类积c3可以乘以附加的非实例质数以增加对给定类积分解的难度。这在由单个实例质数组成的类积内特别有用,诸如以上表4示出的类积c3或类积c4。当附加的非实例质数用于增加类积值时,最好附加的非实例质数在大于2但小于2t的范围内,其中t是如上所述的任意的整个数。这缓解了与来自不同硬件配置的实例质数不必要的冲突的概率。
在步骤207,存储每个类积cp用于输入到每个组件类的强类标识Cp,如下所述。另外,如下描述的,每个类的强类标识Cp的组合用于生成给定计算机硬件系统的强硬件标识(SHWID)。类积cp表示给定计算机硬件系统的强硬件标识(SHWID)的硬件组件。
B.确定SHWID的部分机密分量
本发明的强硬件标识(SHWID)还包括每个硬件组件类的部分机密分量。确定SHWID的部分机密分量的实例方法在图3和4示出。实例方法的步骤可能由用户的计算机内的软件产品内的软件代码实现,该计算机类似于图1描述的计算机20。
在图3内示出的步骤301,使用随机数发生器为每个组件类生成随机数rp。任何常规的随机数发生器都可以用于生成随机数rp。合适的随机数发生器包括但不限于Crandell和Pemerance在
Prime Numbers的第8章内揭示的随机数发生器,在此完全引入作为参考。随机数rp最好从等于或大于0到小于2u,其中u小于以上描述的t。一般u大致等于t除3。
在步骤301为每个生成的硬件组件类使用随机数rp,在步骤302使用质数生成函数g(rp)生成类质数pp。最好质数生成函数g(rp)具有以下特征:
(a)g(rp)的结果是正质数;
(b)g(rp)是小于2v的,其中v是大于u的整数;且
(c)u+v=t;
(d)g(rp)的结果基于rp的值是确定性的。
如用上述的质数生成函数f(x),可以在本发明内使用任何质数生成函数g(x)以为每个组件类随机数rp生成一质数。如上所述,质数生成函数g(x)最好具有上述特征。合适的质数生成函数g(x)包括但不限于在Bruce Schneier的Applied Cryptography,第二版有揭示的质数生成函数g(x),页数259-260,其揭示在此全部被引入作为参考。
以下给出g(rp)、t、u和v间的关系的示例。
t=64
u=20
v=44
0<rp<2u(220=1,048,576)
2<g(rp)<2v
实例计算机系统的n个类(n=4)的每个的类质数pp的示例列表在以下的表5示出。
表5.每个组件类的实例类质数
组件类号 | 类描述 | 每个组件类的类质数 |
1 | CdRom | p1=g(r1):0<r1<2u |
2 | 硬盘驱动器 | p2=g(r2):0<r2<2u |
3 | 网卡 | p3=g(r3):0<r3<2u |
4 | 显示适配设备 | p4=g(r4):0<r4<2u |
显示给定硬件配置的类质数间关系的采样输出可以给出为:
2<p2<p3<p1<p4<2v
在步骤303,要求的组件类匹配的数目m是根据硬件配置组件变化的容限而选择的。要求的组件类匹配数目m可能与组件类的总数n一样大,也可以小到为一。随着m的增加,计算机硬件配置变化的可容许度减小。例如,如果组件类的总数n等于4,m等于3,则为了能提取机密S四个总组件类中的三个必须匹配至少一个组件实例,这使得能载入或运行软件产品。如果组件类匹配个数小于三,则机密S不会被提取,软件产品不能运行或载入到计算机硬件配置上。
要求的组件类匹配数目m可能由软件制造商预定并编码入本发明的SHWID生成方法内。一旦选择了m,则附加的参数如步骤304和305示出的经确定。
在步骤304,确定参数N,其中N等于m个最小类质数pp的乘积。例如,在以上描述的示例类质数输出内,两个最小的类质数为p2和p3。如果m等于2,则N等于(p2)×(p3)。
在步骤305,确定参数M,其中M等于(m-1)个最大类质数pp的积。例如,在以上给出的示例类质数输出中,p4是最大的类质数。如果m等于2,则M等于单个最大类质数的积p4(即(M-1)=1)。要注意的是M必须小于N以保证给定的类质数集合有阀值m。这实现的是基于阀值机密共享方案,在S.C.Coutinho的
The Mathematics of Ciphers的第7章内有所描述,其揭示在此完全引入作为参考。
一旦确定了参数N和M,则在步骤306选择了机密S。机密S大于M但小于N。另外,机密S是M和N间的任意随机数。
在步骤307,类余数dp使用以下等式进行计算:
dp=S mod pp
类余数dp的示例集合在以下表6内示出。
表6.每个组件类的示例类余数
组件类号 | 类描述 | 每个组件类的类余数 |
1 | CdRom | d1=S mod p1 |
2 | 硬盘驱动器 | d2=S mod p2 |
3 | 网卡 | d3=S mod p3 |
4 | 显示适配设备 | d4=S mod p4 |
在图4的步骤308内,每个组件类的类质数pp被编码为每个组件类的第一二进制值。第一二进制值的每个有u个比特。值得注意的是每个类质数pp由于以下关系而由u个比特表示:
pp=g(rp),其中0≤rp<2u,
则pp可以由rp表示,如果g(rp)在提取时间可用,rp可以用u个比特表示。
如果质数生成函数g( )由于以下理由已知,且如果g(rp)在提取时间可用则pp可能用rp标识。当pp等于g(rp)且质数生成函数g( )为已知,则知道rp足以通过用参数rp执行g( )从而重新生成pp。对rp编码要求u比特(或上例中为20比特),而pp要求v比特(或上例中的44比特)。通过将pp表示为rp可以节约需要的比特数。
在步骤309,每个类余数dp为每个组件类编码为第二二进制值。第二二进制值可以用v个比特标识。值得注意的是类余数dp可以根据以下关系的结果用v比特表示:
dp=S mod pp
0<pp<2v
因此,dp<2v
在步骤310,在步骤308生成的第一二进制值与步骤309生成的第二二进制值相串接以形成编码后的组件类部分机密Pp,总比特数为t(即t=u+v)。为每个组件类生成组件类部分机密Pp。
值得注意的是给定组件类的类部分机密Pp可能包含不使用的比特z,这是因为第二二进制值带有比v少的比特。在该情况下,未使用的比特z可能用随机噪声填充以防止攻击者,因为攻击者可能在知道g(rp)的质量时评估编码后的类部分机密Pp以试图确定类部分机密Pp。例如,当Pp的范围为2到2v时,dp总小于pp。如果pp远小于2v,则dp会需要远小于v比特以进行编码。攻击者可以根据dp的值猜到pp的大小。用随机噪声填充未使用的dp的[v-(dp大小)]比特能帮助掩盖pp的大小。
C.一计算机系统的SHWID
现在可以使用步骤207获得的类积cp和步骤310内获得的部分机密Pp配置强硬件标识(SHWID)。如图5的步骤401内示出的,为每个组件类建立类有效标识(ID)Cp,其中Cp=cp+Pp。在步骤402,所有的组件类的类强效IDs,Cp经组合以形成强硬件标识(SHWID)。产生的SHWID经存储以作将来提取使用。SHWID可以经本地存储(例如,在寄存器、文件系统或安全存储)或在可访问的远程位置(例如数据库)。
II.使用强硬件标识(SHWID)从一计算机系统提取一机密
本发明还关于从给定计算机硬件配置提取或试图提取捆绑的机密S的方法。在本发明的一实施例中,试图从给定计算机硬件配置提取捆绑的机密S的方法被起动,这发生在(i)软件产品的安装时,(ii)在载入已存在于硬件配置的组件上的软件应用程序时,或(iii)两者。图6和7描述了从硬件配置提取捆绑的机密S的方法。实例方法的步骤可能由用户计算机上的软件产品内的软件代码执行,该计算机类似于图1说明的计算机20。
在如图6示出的步骤501内,强硬件标识(SHWID)的强类ID Cp为给定计算机硬件配置而被标识。为说明本发明,从三个分离的硬件配置(H、H1和H2)提取捆绑的机密S的方法的描述会使用先前存储的从硬件配置H确定的强硬件标识(SHWID)。这三个不同的硬件配置包括(i)SHWID产生时所用的准确的硬件配置H;(ii)硬件配置H1,包括具有在可接受容许水平内的一个或多个组件改变的硬件配置H;以及(iii)硬件配置H2,代表了具有足够硬件变化的硬件配置H使得硬件配置H2与硬件配置H相比超出容许范围外的硬件配置。
硬件配置H、H1和H2的强类ID的实例集合在表7内给出。
表7.A硬件配置的实例强类ID
组件类号 | 类描述 | 强类ID |
1 | CdRom | C1 |
2 | 硬盘驱动器 | C2 |
3 | 网卡 | C3 |
4 | 显示适配设备 | C4 |
在步骤502,标识给定硬件配置的每个组件类内的所有实例。如上所述,可以使用任何常规的方法以标识每个组件实例。一般,组件实例由该组件的最唯一标识字符串标识。示例配置H、H1和H2内的每个组件实例的示例标识字符串在表8到10内示出。
表8.硬件配置H的实例组件实例
配置H | ||
组件类号 | 类描述 | 组件实例 |
1 | CdRom | {“NEC CDRW24 S15”,“TOSHIBA DVDR ASK-1425”} |
2 | 硬盘驱动器 | {1bcdff1922,7da90024} |
3 | 网卡 | {00b0c31b5923} |
4 | 显示适配设备 | {“Nvidia GeForce2 DDR”} |
表9.硬件配置H1的实例组件实例
配置H1 | ||
组件类号 | 类描述 | 组件实例 |
1 | CdRom | {“NEC CDRW24 S15”,“SONY DVD 1221”} |
2 | 硬盘驱动 | {8146af92} |
3 | 网卡 | {00c0c21b5933} |
4 | 显示适配设备 | {“Nvidia GeForce2 DDR”} |
表10.硬件配置H2的实例组件实例
配置H2 | ||
组件类号 | 类描述 | 组件实例 |
1 | CdRom | {“SONY DVD 1221”} |
2 | 硬盘驱动器 | {8146af92} |
3 | 网卡 | {00c0c21b5933} |
4 | 显示适配设备 | {“Nvidia GeForce2 DDR”} |
一旦给定硬件配置的每个组件类内的所有实例经标识,如步骤503示出提取每个实例最唯一的标识字符串。每个实例的标识字符串用于使用质数生成函数f(组件实例标识符)生成每个组件实例的实例质数,如步骤504所示。质数生成函数f(组件实例标识符)可能是任何以上描述的领域内技术人员已知的质数生成函数。表11到13提供了示例硬件配置H、H1和H2内的每个组件实例的示例实例质数。
表11.示例硬件配置H的示例实例质数ip,q
配置H | ||
组件类号 | 类描述 | 实例质数 |
1 | CdRom | {f(“NEC CDRW24 S15”)=i1,1,f(“TOSHIBADVDR ASK-1425”)=i1,2} |
2 | 硬盘驱动器 | {f(1bcdff1922)=i2,1,f(7da90024)=i2,2} |
3 | 网卡 | {f(00b0c31b5923)=i3,1} |
4 | 显示适配设备 | {f(“Nvidia GeForce2 DDR”)=i4,1} |
表12.示例硬件配置H1的示例实例质数ip,q
配置H1 | ||
组件类号 | 类描述 | 实例质数 |
1 | CdRom | {f(“NEC CDRW24 S15”)=i1,1,f(“SONY DVD1221”)=i1,2} |
2 | 硬盘驱动 | {f(8146af92)=i2,3} |
3 | 网卡 | {f(00c0c21b5933)=i3,1} |
4 | 显示适配设备 | {f(“Nvidia GeForce2 DDR”)=i4,1} |
表13.示例硬件配置H2的示例实例质数ip,q
配置H2 | ||
组件类号 | 类描述 | 实例质数 |
1 | CdRom | {f(“SONY DVD 1221”)=i1,3} |
2 | 硬盘驱动器 | {f(8146af92)=i2,3} |
3 | 网卡 | {f(00c0c21b5933)=i3,2} |
4 | 显示适配设备 | {f(“Nvidia GeForce2 DDR”)=i4,1} |
值得注意的是组件实例{f(“SONY DVD 1221”)}被指定为i1,3,给定该类型的CdRom是以上硬件配置内(即H、H1和H2)考虑的第三种类型。
在步骤505,所有可能的类部分机密Pp,q经确定,其中Pp,q等于Cp mod ip,q。如上所述,每个组件类的强类ID Cp来自类积cp和每个类的类部分机密Pp。如果强类ID,Cp,用实例质数ip,q来除,该实例质数存在于强硬件ID(SHWID)基于的原来的硬件配置H内,则(mod)操作后的余数提供了可能的类部分机密Pp,q。示例硬件配置H、H1和H2的示例可能类部分机密Pp,q在表14到16内给出。
表14.在示例硬件配置H内的每个组件实例的示例可能类部分机密Pp,q
配置H | ||
组件类号 | 类描述 | 可能类部分机密 |
1 | CdRom | P1,1=C1 mod i1,1,P1,2=C1 mod i1,2 |
2 | 硬盘驱动器 | P2,1=C2 mod i2,1,P1,2=C2 mod i2,2 |
3 | 网卡 | P3,1=C3 mod i3,1 |
4 | 显示适配设备 | P4,1=C4 mod i4,1 |
表15.在示例硬件配置H1内的每个组件实例的示例可能类部分机密Pp,q
配置H1 | ||
组件类号 | 类描述 | 可能类部分机密 |
1 | CdRom | P1,1=C1 mod i1,1,P1,3=C1 mod i1,3 |
2 | 硬盘驱动器 | P2,3=C2 mod i2,3 |
3 | 网卡 | P3,2=C3 mod i3,2 |
4 | 显示适配设备 | P4,1=C4 mod i4,1 |
表14.在示例硬件配置H2内的每个组件实例的示例可能类部分机密Pp,q
配置H1 | ||
组件类号 | 类描述 | 可能类部分机密 |
1 | CdRom | P1,3=C1 mod i1,3 |
2 | 硬盘驱动器 | P2,3=C2 mod i2,3 |
3 | 网卡 | P3,2=C3 mod i3,2 |
4 | 显示适配设备 | P4,1=C4 mod i4,1 |
从每个可能的类部分机密Pp,q,随机数rp和类余数dp可能如步骤506示出的被抽取。如上所述,类质数Pp,q可以从类部分机密Pp,q的最后v个比特而提取。示例硬件配置H、H1和H2的所有可能的类质数pp,q的示例列表以及类余数dp,q在表17到19内给出。
表17.示例硬件配置H的每个可能的类部分机密Pp,q的示例类质数Pp,q和类余数dp,q
配置H | ||
组件类号 | 类描述 | 可能的类质数pp,q以及类余数dp,q |
1 | CdRom | P1,1p1,1,d1,1,P1,2p1,2,d1,2 |
2 | 硬盘驱动器 | P2,1p2,1,d2,1,P2,2p2,2,d2,2 |
3 | 网卡 | P3,1p3,1,d3,1 |
4 | 显示适配设备 | P4,1p4,1,d4,1 |
表17.示例硬件配置H1的每个可能的类部分机密Pp,q的示例类质数Pp,q和类余数dp,q
配置H1 | ||
组件类号 | 类描述 | 可能的类质数pp,q以及类余数dp,q |
1 | CdRom | P1,1p1,1,d1,1,P1,3p1,3,d1,3 |
2 | 硬盘驱动 | P2,3p2,3,d2,3 |
3 | 网卡 | P3,2p3,2,d3,2 |
4 | 显示适配设备 | P4,1p4,1,d4,1 |
表17.示例硬件配置H2的每个可能的类部分机密Pp,q的示例类质数Pp,q和类余数dp,q
配置H2 | ||
组件类号 | 类描述 | 可能的类质数pp,q以及类余数dp,q |
1 | CdRom | P1,3p1,3,d1,3 |
2 | 硬盘驱动 | P2,3p2,3,d2,3 |
3 | 网卡 | P3,2p3,2,d3,2 |
4 | 显示适配设备 | P4,1p4,1,d4,1 |
一旦所有可能的类质数和类余数在步骤506被确定,它们表示多个同余集合。S是较大的数,当被可能的类质数pp,q除时产生给定同余集合的类余数dp,q。由于S是经仔细选择的(即S在M和N之间),且所有的除数为质数,所以使用在M和N间的可能的类质数和类余数的同余集合的解肯定为S。步骤306内S的仔细选择保证了只要求同余集合的N个匹配元素用于生成S的正确值。这是经典的基于阀值的机密共享方案,如在S.C.Coutinho的
The Mathematics of Ciphers的第7章内有所描述,其揭示在此完全引入作为参考。
不可能事先确定哪个(如果有的话)可能的类质数和余数与期望的硬件配置匹配,所以必须在步骤507内通过每次排列求解出现同余离散集合而为每个可能的类质数和类余数的排列生成可能的机密。如步骤508示出,产生的可能的机密可以使用为验证目的而建立的密文而被测试。该处理在以下描述。
在本发明内,已知的明文使用机密S作为密钥以形成密文。一般,加密的消息(即密文)伴有验证令牌,使得解密器知道消息已被成功解密。这一般是消息明文的散列或一些选择的明文。在本发明中,为简洁最好使用选择的明文。所以当生成SHWID时,选择的明文(例如“这是选择的明文”)使用S(即作为密钥)经加密以生成密文。解码器知道选择的明文和密文。
在以上的情况下,S的候选的有效性(即每个产生的可能的机密)可以通过使用S的候选(即每个产生的可能的机密)作为密钥对密文进行解密而进行验证。如果产生的明文与选择的明文匹配,则S的候选(即一个产生的可能的机密)实际上是S。如果产生的明文不与选择的明文匹配,则S的候选(即一个产生的可能的机密)实际上不是S。
如图7示出,如果已知的明文由使用可能的机密对密文解码而揭示,则机密S已被找到,且方法进行到步骤510,其中程序允许给定的软件产品载入或安装到给定的计算机硬件配置。否则,方法进行到步骤509。如果存储更多还未经测试的排列,则方法会到步骤507。否则,SHWID不匹配且方法进到步骤511,它防止软件产品的载入或安装。
表20到22给出了示例配置H、H1和的示例结果。
表20.示出示例硬件配置H的可能机密Sp,q和实际机密S的匹配数目的示例结果
配置H | ||
组件类号 | 类描述 | 可能机密Sp,q和实际机密S间的可能匹配 |
1 | CdRom | S=d1,1(mod P1,1)ORS=d1,2(mod p1,2) |
2 | 硬盘驱动器 | S=d2,1(mod p2,1)ORS=d2,2(mod p2,2) |
3 | 网卡 | S=d3,1(mod p3,1) |
4 | 显示适配设备 | S=d4,1(mod p4,1) |
结果-单一解,四个中四个匹配=S |
表21.示出示例硬件配置H1的可能机密Sp,q和实际机密S的匹配数目的示例结果
配置H1 | ||
组件类号 | 类描述 | 可能机密Sp,q和实际机密S间的可能匹配 |
1 | CdRom | S=d1,1(mod p1,1)ORS=d1,3(mod p1,3) |
2 | 硬盘驱动器 | S=d2,3(mod p2,3) |
3 | 网卡 | S=d3,2(mod p3,2) |
4 | 显示适配设备 | S=d4,1(mod p4,1) |
结果-两个可能解,取决于d1,1(四个中两个匹配,找到S)或d1,3(四个中一个匹配,找到Z1)的使用 |
表22.示出示例硬件配置H2的可能机密Sp,q和实际机密S的匹配数目的示例结果
配置H2 | ||
组件类号 | 类描述 | 可能机密Sp,q和实际机密S间的可能匹配 |
1 | CdRom | S=d1,3(mod p1,3) |
2 | 硬盘驱动器 | S=d2,3(mod p2,3) |
3 | 网卡 | S=d3,2(mod p3,2) |
4 | 显示适配设备 | S=d4,1(mod p4,1) |
结果-单一解,四个中一个匹配,找到Z1 |
如以上表20示出,原来的硬件配置H在可能机密Sp,q和实际机密S间从四个匹配中产生四个匹配。如以上表21示出,硬件配置H1取决于采用哪个类余数dp,q用于确定可能的机密S最多在四个可能的匹配中有两个匹配。在该示例硬件配置中,如果m等于2,则程序允许提取捆绑的机密S并允许在硬件配置H1上载入或安装软件产品。然而,在以上表22示出的硬件配置H2中,只能发生四个中一个匹配。如果m等于2,假的非机密Z1经生成,该方法防止特定软件产品在硬件配置H2上载入或安装。
以上描述并在图2、3-4和6-7内说明的方法步骤可以本地或在远程位置实现。一般,用户购买可以在给定计算机上运行的软件产品,诸如图1内示出的计算机20。软件产品可能是带有存储在可运送的计算机可读介质上的软件程序的用收缩性薄膜包装的产品,诸如CD-ROM或软盘。或者,软件产品可以在网络上以电子方式发送,诸如本地局域网(LAN)51或广域网(WAN)52。用户将软件产品载入计算机20,作为存储在系统存储器22内的程序。
在软件产品安装中,用户一般被提示输入软件产品的软件产品标识(PID)的一部分到计算机20。PID可能是例如印在收缩薄膜包装的标签上的CD密钥。用户输入PID,它与软件产品的软件程序相关联。PID本地存储在计算机20上以及/或远程地位于可访问位置,或是在具有诸如激活授权当局的第三方的局域网(LAN)51或广域网(WAN)52上。
如上所述,在软件产品的安装期间,强硬件标识(SHWID)还使用软件产品内的代码生成或由软件产品的安装触发。用本发明的方法生成的强硬件标识(SHWID)与软件产品标识(PID)相关联,并连同软件产品标识(PID)一起存储在本地计算机20上以及/或远程地位于可访问位置,或是在具有诸如激活授权当局的第三方的局域网(LAN)51或广域网(WAN)52上。
如安装过程的一部分,用户可能被要求与激活授权当局一起激活软件产品。该授权当局可能是例如产品制造商或授权的第三方。该激活过程用于迫使用户激活软件产品(i)为安装和在特定计算机上使用或(ii)根据产品授权协议的条件安装和使用。该种激活过程在转让给微软公司(Redmond,WA)的美国专利号6243468内有详细描述,其内容在此引入作为参考。
由本发明的方法生成的强硬件标识(SHWID)以及软件产品标识(PID)可以本地存储在计算机20上以及/或远程地位于可访问位置,或是在具有有激活授权当局局域网(LAN)51或广域网(WAN)52上。最好,软件产品在第一次启用时自动显示图形用户界面(UI)对话窗,它提示用户起动与激活服务器的连接以激活自己。激活服务器维持一数据库以存储接收到的强硬件标识(SHWID)以及其相关联的软件产品标识(PID)。
强硬件标识(SHWID)以及相关联的给定软件产品的产品标识(PID)可能被存储无限长的时间直到软件产品被重新安装到另一电脑或在第一台电脑(即在初始安装间使用的电脑)上被启动。当同一软件产品被重新安装到另一计算机或在第一计算机上被启动,在软件产品上的代码起动一方法,该方法根据本发明确定软件产品是否可以在计算机系统上使用。软件产品或是从本地计算机20或是从远程位置通过本地局域网(LAN)51或广域网(WAN)52提取先前存储的与软件产品标识(PID)相关联的强硬件标识(SHWID)。使用先前存储的强硬件标识(SHWID)确定软件产品是否可以如上述在计算机硬件配置上使用。
当由于第一台计算机(即在初始安装间使用的电脑)的硬件配置有重大改变而拒绝了软件产品的使用时,可能提供给用户对话框,指明软件产品的使用被拒绝了,且关于软件产品的将来使用的进一步信息可以从给定的来源获得。
III.强硬件标识(SHWID)的其它使用
除以上描述的使用外,本发明的强硬件标识(SHWID)可用于只在特定硬件配置内的加密/解密数据。
虽然用特定实施例详细描述了本说明,可以理解本领域的技术人员,在获得以上的理解后,可以考虑这些实施例的变化、变体和等价。相应地,本发明的范围应视为是所附的要求书和其等价所声明的。
Claims (41)
1.一种为带有第一硬件配置的第一计算机系统生成强硬件标识(SHWID)的方法,其特征在于包括:
标识第一硬件配置内的每个组件类,其中组件类的数目等于n;
为每个组件类确定类积cp;
为每个组件类确定部分机密Pp;以及
为每个组件类将类积cp和部分机密Pp相加以形成n个强类ID,
其中n个强类ID的组合形成了第一计算机系统的强硬件标识(SHWID)。
2.如权利要求1所述的方法,其特征在于n是最大为16的整个数。
3.如权利要求1所述的方法,其特征在于每个组件类的类积cp是由以下步骤确定的:
选择组件类n的数目;
标识n个组件类;
标识每个组件类内的所有实例;
分配每个组件实例的标识字符串;
为每个组件实例生成实例质数pp,q,其中每个实例质数为正质数,且其中p表示从1到n的给定组件类号,且q表示第一硬件配置内的第q个组件类型;以及
将每个组件类内的实例质数相乘以形成每个组件类的类积cp。
4.如权利要求3所述的方法,其特征在于生成实例质数的步骤包括将每个组件实例的标识字符串输入质数生成函数f(x),其中x是带有长度多达65000个字符的标识字符串。
5.如权利要求4所述的方法,其特征在于f(x)生成带有值大于2t的正质数,其中t是从32到大致2048的整个数。
6.如权利要求1所述的方法,其特征在于每个组件类的部分机密Pp的确定的步骤如下:
为每个组件类生成随机数rp;
为每个组件类生成类质数pp,其中每个类质数为正质数;
选择一个要求的组件类匹配个数m,其中m小于或等于n;
确定N,其中N等于m个最小类质数pp的积;
确定M,其中M等于(m-1)个最大类质数pp的积,且M小于N;
选择机密数S,其中M<S<N;
为每个组件类确定类余数dp,其中dp等于[S(mod pp)];
为每个组件类形成第一二进制值,其中第一二进制值是每个类的类质数pp经编码为带有u比特的第一二进制数,其中u小于t且u和t都小于2048;
形成每个组件类的第二二进制值,其中第二二进制值是每个类的类余数dp经编码称为带有v比特的第二二进制数,其中v小于t,且(u+v=t);以及
将第一二进制值和第二二进制值相串接以形成每个带有总比特数等于t的组件类的部分机密Pp。
7.如权利要求6所述的方法,其特征在于每个随机数rp使用随机数发生器生成,且其值为0到小于2u。
8.如权利要求6所述的方法,其特征在于生成每个组件类的类质数pp的步骤包括将每个组件类的随机数输入到质数生成函数g(x),其中x是带有长度最长达65000字符的随机数。
9.如权利要求8所述的方法,其特征在于其中g(x)生成带有从大于2到小于2v的值的正质数。
10.如权利要求1所述的方法,其特征在于所述方法在将软件产品载入到第一计算机系统的步骤期间被启用。
11.一种确定软件产品能否在具有第二硬件配置的第二计算机系统上使用的方法,其特征在于第二计算机系统与第一计算机系统相同或不同,其中该方法包括:
标识n个组件类,所述类用于确定如权利要求1所述的方法生成的强硬件标识(SHWID);
标识第二硬件配置的每个组件类内的所有实例;
提取代表每个单个组件实例的标识字符串;
为每个组件实例生成实例质数ip,q,其中每个实例质数是正质数,且其中p表示从1到n的给定组件类号,且q代表第一硬件配置或第二硬件配置内的第q类型的组件;
提取可能的类部分机密Pp,q,其中:
Pp,q=[Cp(mod ip,q)];
从可能的类部分机密Pp,q抽取可能的类质数pp,q以及可能的类余数dp,q;
通过对可能类质数和可能的类余数的排列提供的求解同余集进行以生成可能的机密;以及
通过对给定的密文解码而测试可能的机密并将测试结果对对应的已知明文进行测试;
其中:
如果产生的明文与已知的明文匹配,则将软件产品载入第二计算机系统;以及
如果产生的明文不匹配已知的明文,防止软件产品被载入第二计算机系统。
12.如权利要求11所述的方法,其特征在于生成实例质数的步骤包括将表示每个单个组件实例的标识字符串输入质数生成函数f(x),其中x是带有长度最长达约65000个字符的标识字符串。
13.如权利要求12所述的方法,其特征在于f(x)生成带有值大于2t的正质数,其中t是从大致32到大致2048的整个数。
14.一种计算机系统,包含至少一个计算机系统上可用的应用模块,其特征在于所述的至少一个应用模块包括实现权利要求1所述的方法的计算机可执行指令。
15.一种计算机可读介质,具有存储在其上的用于执行权利要求1方法的计算机可执行指令。
16.一种存储有计算机可执行指令的计算机可读介质,用于实现生成一种带有第一硬件配置的第一计算机系统的强硬件标识(SHWID)的方法,其特征在于所述方法包括:
标识第一硬件配置内的每个组件类,其中组件类的数目等于n;
为每个组件类确定类积cp;
为每个组件类确定部分机密Pp;以及
为每个组件类将类积类积cp和部分机密Pp相加以形成n个强类ID,
其中n个强类ID的组合形成了第一计算机系统的强硬件标识(SHWID)。。
17.如权利要求16所述的计算机可读介质,其特征在于n是最大约为16的整数。
18.如权利要求16所述的计算机可读介质,其特征在于每个组件类的类积cp由以下步骤确定:
选择组件类的个数n;
标识n个组件类;
标识每个组件类内的所有实例;
为每个组件实例分配标识字符串;
为每个组件实例生成实例质数pp,q,其中每个实例质数是一个正质数,且其中p表示从1到n的给定组件类号,且q代表第一硬件配置内的第q类型的组件,以及
将每个组件类内的实例质数相乘以形成每个组件类的类积cp。
19.如权利要求18所述的计算机可读介质,其特征在于生成实例质数的步骤包括将表示每个组件实例的标识字符串输入质数生成函数f(x),其中x是带有长度最长达约65000个字符的标识字符串。
20.如权利要求19所述的计算机可读介质,其特征在于f(x)生成带有值大于2t的正质数,其中t是从大致32到大致2048的整个数。。
21.如权利要求16所述的计算机可读介质,其特征在于每个组件类的部分机密Pp由以下步骤确定:
为每个组件类生成随机数rp;
为每个组件类生成类质数pp,其中每个类质数为正质数;
选择一个要求的组件类匹配个数m,其中m小于或等于n;
确定N,其中N等于m个最小类质数pp的积;
确定M,其中M等于(m一1)个最大类质数pp的积,且M小于N;
选择机密数S,其中M<S<N;
为每个组件类确定类余数dp,其中dp等于[S(mod pp)];
为每个组件类形成第一二进制值,其中第一二进制值是每个类的类质数pp经编码为带有u比特的第一二进制数,其中u小于t且u和t大致都小于2048;
形成每个组件类的第二二进制值,其中第二二进制值是每个类的类余数dp经编码称为带有v比特的第二二进制数,其中v小于t,且(u+v=t);以及
将第一二进制值和第二二进制值相串接以形成每个带有总比特数等于t的组件类的部分机密Pp。
22.如权利要求21所述的计算机可读介质,其特征在于每个随机数rp使用随机数发生器生成,且其值为0到小于2u。
23.如权利要求21所述的计算机可读介质,其特征在于生成每个组件类的类质数pp的步骤包括将每个组件类的随机数输入到质数生成函数g(x),其中x是带有长度最长达约65000字符的随机数。
24.如权利要求23所述的计算机可读介质,其特征在于其中g(x)生成带有从大于2到小于2v的值的正质数。
25.如权利要求16所述的计算机可读介质,其特征在于所述方法在将软件产品载入到第一计算机系统的步骤期间被启用。
26.一种存储有计算机可执行指令用于实现一种方法的计算机可读介质,所述方法确定软件产品能否在带有第二硬件配置的第二计算机系统上使用,其特征在于第二计算机系统与第一计算机系统相同或不同,其中该方法包括:
标识n个组件类,所述n个组件类用于确定如权利要求16所述的方法生成的强硬件标识(SHWID);
标识第二硬件配置的每个组件类内的所有实例;
提取代表每个单个组件实例的标识字符串;
为每个组件实例生成实例质数ip,q,其中每个实例质数是正质数,且其中p表示从1到n的给定组件类号,且q代表第一硬件配置或第二硬件配置内的第q类型的组件;
提取可能的类部分机密Pp,q,其中:
Pp,q=[Cp(mod ip,q)];
从可能的类部分机密Pp,q抽取可能的类质数pp,q以及可能的类余数dp,q;
通过对可能类质数和可能的类余数的排列提供的同余集进行求解以生成可能的机密;以及
通过对给定的密文解码而测试可能的机密并将测试结果对对应的已知明文进行测试;
其中:
如果产生的明文与已知的明文匹配,则将软件产品载入第二计算机系统;以及
如果产生的明文不匹配已知的明文,防止软件产品被载入第二计算机系统。
27.如权利要求26所述的计算机可读介质,其特征在于生成实例质数的步骤包括将表示每个单个组件实例的标识字符串输入质数生成函数f(x),其中x是带有长度最长达约65000个字符的标识字符串。
28.如权利要求27所述的计算机可读介质,其特征在于f(x)生成带有值大于2t的正质数,其中t是从大致32到大致2048的整个数。
29.一种计算系统,包含至少一个计算机系统上可用的应用模块,其特征在于所述的至少一个应用模块包括实现一种方法的程序代码,所述方法生成带有第一硬件配置的第一计算机系统的强硬件标识(SHWID),其特征在于该方法包括:
标识第一硬件配置内的每个组件类,其中组件类数等于n;
为每个组件类确定类积cp;
为每个组件类确定部分机密Pp;以及
为每个组件类将类积类积cp和部分机密Pp相加以形成n个强类ID,
其中n个强类ID的组合形成了第一计算机系统的强硬件标识(SHWID)。
30.如权利要求29所述的计算系统,其特征在于n是最大约为16的整个数。
31.如权利要求29所述的计算系统,其特征在于每个组件类的类积cp是由以下步骤确定的:
选择组件类n的数目;
标识n个组件类;
标识每个组件类内的所有实例;
分配每个组件实例的标识字符串;
为每个组件实例生成实例质数pp,q,其中每个实例质数为正质数,且其中p表示从1到n的给定组件类号,且q表示第一硬件配置内的第q个组件类型;以及
将每个组件类内的实例质数相乘以形成每个组件类的类积cp。
32.如权利要求31所述的计算系统,其特征在于生成实例质数的步骤包括将每个组件实例的标识字符串输入质数生成函数f(x),其中x是带有长度多达约65000个字符的标识字符串。
33.如权利要求32所述的计算系统,其特征在于f(x)生成带有值大于2t的正质数,其中t是从大致32到大致2048的整个数。
34.如权利要求29所述的计算系统,其特征在于每个组件类的部分机密Pp的确定的步骤如下:
为每个组件类生成随机数rp;
为每个组件类生成类质数pp,其中每个类质数为正质数;
选择一个要求的组件类匹配个数m,其中m小于或等于n;
确定N,其中N等于m个最小类质数pp的积;
确定M,其中M等于(m-1)个最大类质数pp的积,且M小于N;
选择机密数S,其中M<S<N;?
为每个组件类确定类余数dp,其中dp等于[S(mod pp)];
为每个组件类形成第一二进制值,其中第一二进制值是每个类的类质数pp经编码为带有u比特的第一二进制数,其中u小于t且u和t都小于大约2048;
形成每个组件类的第二二进制值,其中第二二进制值是每个类的类余数dp经编码称为带有v比特的第二二进制数,其中v小于t,且(u+v=t);以及
将第一二进制值和第二二进制值相串接以形成每个带有总比特数等于t的组件类的部分机密Pp。
35.如权利要求34所述的计算系统,其特征在于每个随机数rp使用随机数发生器生成,且其值为0到小于2u。
36.如权利要求34所述的计算方法,其特征在于生成每个组件类的类质数pp的步骤包括将每个组件类的随机数输入到质数生成函数g(x),其中x是带有长度最长达约65000字符的随机数。
37.如权利要求36所述的计算系统,其特征在于其中g(x)生成带有从大于2到小于2v的值的正质数。
38.如权利要求29所述的计算系统,其特征在于所述方法在将软件产品载入到第一计算机系统的步骤期间被启用。
39.一种计算系统,包含至少一个计算机系统上可用的应用模块,其特征在于所述的至少一个应用模块包括实现一种方法的程序代码,所述方法确定软件产品能否在带有第二硬件配置的第二计算机系统上使用,其特征在于第二计算机系统与第一计算机系统相同或不同,其中该方法包括:
标识n个组件类,所述n个组件类用于确定如权利要求29所述的方法生成的强硬件标识(SHWID);
标识第二硬件配置的每个组件类内的所有实例;
提取代表每个单个组件实例的标识字符串;
为每个组件实例生成实例质数ip,q,其中每个实例质数是正质数,且其中p表示从1到n的给定组件类号,且q代表第一硬件配置或第二硬件配置内的第q类型的组件;
提取可能的类部分机密Pp,q,其中:
Pp,q=[Cp(mod ip,q)];
从可能的类部分机密Pp,q抽取可能的类质数pp,q以及可能的类余数dp,q;
通过对可能类质数和可能的类余数的排列提供的同余集求解以生成可能的机密;以及
通过对给定的密文解码测试可能的机密并将测试结果对对应的已知明文进行测试;
其中:
如果产生的明文与已知的明文匹配,则将软件产品载入第二计算机系统;以及
如果产生的明文不匹配已知的明文,防止软件产品被载入第二计算机系统。
40.如权利要求39所述的计算系统,其特征在于生成实例质数的步骤包括将表示每个单个组件实例的标识字符串输入质数生成函数f(x),其中x是带有长度最长达约65000个字符的标识字符串。
41.如权利要求40所述的计算系统,其特征在于f(x)生成带有值大于2t的正质数,其中t是从大致32到大致2048的整数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/378,224 | 2003-03-03 | ||
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 |
---|---|
CN1542583A true CN1542583A (zh) | 2004-11-03 |
CN100416445C CN100416445C (zh) | 2008-09-03 |
Family
ID=32824752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100286607A Expired - Fee Related CN100416445C (zh) | 2003-03-03 | 2004-03-03 | 用于将机密捆绑到具有硬件变化容限的计算机系统的系统 |
Country Status (19)
Country | Link |
---|---|
US (2) | US7296294B2 (zh) |
EP (1) | EP1455257B1 (zh) |
JP (1) | JP4599069B2 (zh) |
KR (1) | KR101036701B1 (zh) |
CN (1) | CN100416445C (zh) |
AT (1) | ATE306101T1 (zh) |
AU (1) | AU2004200683B2 (zh) |
BR (1) | BRPI0400380A (zh) |
CA (1) | CA2459217A1 (zh) |
DE (1) | DE602004000106T8 (zh) |
DK (1) | DK1455257T3 (zh) |
ES (1) | ES2250932T3 (zh) |
HK (1) | HK1068697A1 (zh) |
MX (1) | MXPA04002024A (zh) |
MY (1) | MY134635A (zh) |
PL (1) | PL1455257T3 (zh) |
RU (1) | RU2348968C2 (zh) |
TW (1) | TWI319544B (zh) |
ZA (1) | ZA200401493B (zh) |
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 |
US9047450B2 (en) * | 2009-06-19 | 2015-06-02 | Deviceauthority, Inc. | Identification of embedded system devices |
US9047458B2 (en) | 2009-06-19 | 2015-06-02 | Deviceauthority, Inc. | Network access protection |
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 |
CN103797490B (zh) | 2011-03-15 | 2017-04-26 | 爱迪德技术有限公司 | 在使用秘密共享方案的计算环境中生成用于资产集合的标识符的容忍变化方法 |
EP2686767B1 (en) * | 2011-03-15 | 2019-06-05 | 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 |
EP4022470A4 (en) * | 2019-08-28 | 2023-05-31 | Sparta Systems, Inc. | METHOD, APPARATUS AND COMPUTER READABLE MEDIUM FOR GENERATING AN AUDIT TRAIL OF AN ELECTRONIC DATA RECORD |
Family Cites Families (13)
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 |
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 |
US5790783A (en) * | 1996-03-28 | 1998-08-04 | Advanced Micro Devices, Inc. | Method and apparatus for upgrading the software lock of microprocessor |
DE69720971T2 (de) * | 1997-05-28 | 2003-10-30 | Siemens Ag | Computersystem und Verfahren zum Schutz von 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 MY MYPI20040646A patent/MY134635A/en unknown
- 2004-02-27 TW TW093105188A patent/TWI319544B/zh not_active IP Right Cessation
- 2004-03-01 CA CA002459217A patent/CA2459217A1/en not_active Abandoned
- 2004-03-02 DK DK04004847T patent/DK1455257T3/da active
- 2004-03-02 ES ES04004847T patent/ES2250932T3/es not_active Expired - Lifetime
- 2004-03-02 AT AT04004847T patent/ATE306101T1/de active
- 2004-03-02 DE DE602004000106T patent/DE602004000106T8/de active Active
- 2004-03-02 RU RU2004106183/09A patent/RU2348968C2/ru not_active IP Right Cessation
- 2004-03-02 PL PL04004847T patent/PL1455257T3/pl unknown
- 2004-03-02 BR BR0400380-2A patent/BRPI0400380A/pt not_active IP Right Cessation
- 2004-03-02 MX MXPA04002024A patent/MXPA04002024A/es active IP Right Grant
- 2004-03-02 EP EP04004847A patent/EP1455257B1/en not_active Expired - Lifetime
- 2004-03-03 KR KR1020040014430A patent/KR101036701B1/ko not_active IP Right Cessation
- 2004-03-03 JP JP2004059841A patent/JP4599069B2/ja not_active Expired - Fee Related
- 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
Also Published As
Publication number | Publication date |
---|---|
MY134635A (en) | 2007-12-31 |
BRPI0400380A (pt) | 2005-01-04 |
DE602004000106T8 (de) | 2006-06-08 |
TWI319544B (en) | 2010-01-11 |
RU2004106183A (ru) | 2005-08-10 |
ATE306101T1 (de) | 2005-10-15 |
US20040177255A1 (en) | 2004-09-09 |
EP1455257B1 (en) | 2005-10-05 |
CN100416445C (zh) | 2008-09-03 |
KR20040078593A (ko) | 2004-09-10 |
JP4599069B2 (ja) | 2010-12-15 |
KR101036701B1 (ko) | 2011-05-24 |
AU2004200683B2 (en) | 2009-08-13 |
US7296294B2 (en) | 2007-11-13 |
ZA200401493B (en) | 2005-04-19 |
ES2250932T3 (es) | 2006-04-16 |
EP1455257A1 (en) | 2004-09-08 |
HK1068697A1 (en) | 2005-04-29 |
MXPA04002024A (es) | 2005-02-17 |
DK1455257T3 (da) | 2006-02-06 |
JP2004266841A (ja) | 2004-09-24 |
TW200422945A (en) | 2004-11-01 |
US20080098482A1 (en) | 2008-04-24 |
DE602004000106D1 (de) | 2006-02-16 |
US7647640B2 (en) | 2010-01-12 |
CA2459217A1 (en) | 2004-09-03 |
AU2004200683A1 (en) | 2004-09-23 |
RU2348968C2 (ru) | 2009-03-10 |
DE602004000106T2 (de) | 2006-03-23 |
PL1455257T3 (pl) | 2006-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1542583A (zh) | 用于将机密捆绑到具有硬件变化容限的计算机系统的系统 | |
CN1314220C (zh) | 信息视听系统以及信息播放机器及信息提供装置 | |
CN1165855C (zh) | 用于发布数据的系统、方法、设备以及数据再现设备 | |
CN1188857C (zh) | 根据作为电子水印埋入在著作物中的复制属性,在记录媒体上记录著作物的复制品的记录装置,进行对记录的复制 | |
CN1860471A (zh) | 数字权限管理结构、便携式存储装置以及使用该便携式存储装置的内容管理方法 | |
CN100346629C (zh) | 信息处理装置、信息处理方法、信息处理程序以及记录介质 | |
CN1530790A (zh) | 将软件包绑定到对允许硬件改变的计算机系统的简明硬件标识 | |
CN1760788A (zh) | 传输并再现由各种数字权限管理系统处理的内容的方法 | |
CN1216377C (zh) | 加扰用户数据且记录该数据的记录装置和方法 | |
CN1602600A (zh) | 内容处理装置与内容保护程序 | |
CN101030243A (zh) | 便携式存储器及其管理数据的方法 | |
CN1961311A (zh) | 在装置和便携式存储器之间传输权限对象信息的方法和设备 | |
CN1682205A (zh) | 用于加密和解密元数据的方法和用于管理元数据的方法及其系统 | |
CN1874218A (zh) | 一种许可证管理方法、系统及装置 | |
CN101038612A (zh) | 产生证书的方法以及使用证书提供内容的方法和设备 | |
CN1529985A (zh) | 信息提供系统和信息处理装置及方法 | |
CN101036193A (zh) | 用于安全地存储数据的设备和方法 | |
US20080118060A1 (en) | Method of decoding/encoding content file | |
CN1710507A (zh) | 内容再现设备及方法、内容管理设备及方法和计算机程序 | |
CN1645500A (zh) | 信息记录/再现处理设备和方法,记录介质和计算机程序 | |
CN100347659C (zh) | 打印装置、打印系统及签名验证方法 | |
CN1313937C (zh) | 信息视听系统 | |
CN1831994A (zh) | 利用介质id加密的内容数据记录设备 | |
CN1694398A (zh) | 随机化信号变换及其应用 | |
CN100343775C (zh) | 一种许可证文件生成方法及软件产品保护方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080903 Termination date: 20130303 |