保护软件的计算机系统及一种保护软件的方法

文档序号:6414306阅读:196来源:国知局
专利名称:保护软件的计算机系统及一种保护软件的方法
技术领域
本发明涉及防止软件被非法使用尤其是防止非法的拷贝和违反许可的装置。
商业软件联盟估计1995年因软件侵权造成的财政损失为商业用软件81亿美元、全部软件152亿美元。
提出的解决方法有两个方面-改进知识产权(IPR)的法规,-加强电拷贝和许可保护(ECP)装置。
在许多国家都改进了IPR法规及其实施,但这在全世界另外一部分地区仍存在重大障碍。结果,一些软件销售商广泛地采用重新鉴定ECP。
一些例子可能大约需要ECP装置是安全的,这种条件被罗列如下-非法用户应当被禁止使用受保护的软件。
-没有有效许可,用户应被禁止运行软件。
-用户不应被禁止做备份。
-所述ECP装置应对用户界面产生的冲击最小。可视冲击应仅被限定在对所述操作系统/或智能卡的第一次登录中。
-假定仅能制作标准的硬件和软件。比如,尽管硬件dongles提供拷贝保护服务,许多销售商仍不希望把软件销售限定在具有或希望安装dongle的用户群中。
-所述ECP装置不应将受保护软件的执行限定在有限的机器群中。当一个用户合法地购买了软件,不论机器的所有权是谁,该用户应能在任何机器上运行该软件。该用户应能任意地许可在多台机器上同时运行所述软件。
-所述ECP装置应没有所需网络依赖性,以便能执行已购买的受保护程序。
-应允许销售商将受保护软件的同一版本分发给所有用户。这种需求允许将受保护的软件通过正常渠道例如CD-ROM、软盘或网络公告板进行分发。
-对潜在的软件盗版,不修改受保护的程序而绕过ECP装置将是很困难的及/或估计是不能实现的。因为如果盗版者散发一个原始程序的修改版,由销售商提供的数字签字就不再合法,所以这种条件用做病毒防范测量。
-所述ECP装置不应向销售商公开私人密钥资料、任何由销售商产生的程序或任何潜在的特洛伊马程序。虽然原始的功能是保护软件销售商,但任何人也不能这样作而让用户承担这种费用。
-所述ECP装置在仅有软件版本中同在有辅助硬件的版本中应是一样有效的,比如使用智能卡以保证广泛的市场认可。
在[1]中,推荐使用一种装置,其中只有通过一个特殊配置的观测程序才能看到受保护的文件,该观测程序仅在用户向显示器提供了该用户的私人密钥资料时,才允许用户观看该文件。因为这样做会向他人泄露他或她的私人密钥,所以能防置该用户散发所述观测程序的越权拷贝。然而,因为这种装置需要观测程序能访问私人密钥资料,所以破坏了如上所述条件中的一个。另外,这种装置可能不与为避免泄露私人密钥资料而设置的智能卡一起连用。
可在[2]中看到例如RSA方案中的非对称加密、对称加密及例如布卢姆-古德沃瑟(Blum-Goldwasser)概率公共密钥加密方案的概率编码的概述。
可在[2]中看到数字标记方案(例如,Ribest-Shamir-Adleman等)(RSA)和数字标记的形式数学定义。
报文摘要函数(或者另称为单向散列函数)的例子为MD5[6]。计算报文摘要的倒数估计是不可实现的或非常困难的。
在[3]中说明了奇-斯奎尔(Chi-Square)测试、科尔莫戈洛夫-斯米诺夫(Kolmogorov-Smimov)测试及连续的相关测试。
在[4]中,说明了由磁盘驱动器中空气扰动引起的密码的随机性。
可在[2]中看到不同的概率实验方案例如零知识证明方案(例如Feige-Fiat-Shamir方案、Fuillou-Quisquater方案、Blum-Feldmann-Micali方案、Brassard方案、Crepau方案等)或隐藏证据实验方案(例如Feige-Shamir方案等)的概述。
本发明的目的是提供一个改进了的ECP装置,如果并非满足所有如上所述的例子的条件时,该装置能够最安全。
一个存储装置是任一种可存储数据,接着提供该数据或与该数据有关的信息的装置。实际存储装置的例子是智能卡、CD-ROM、数字视频盘及软盘。
在[2]中讨论了验证、验证分层、链验证、验证拓补、验证路径及验证权限。一个根验证(另外一种说法是验证权限证明)是一种保持验证权限的公共密钥的证明。典型地,根验证是带符号的,它使用了验证权限的私人密钥。后继验证是能通过验证路径由根验证到达(有效)的一种验证。
经过许可的软件可根据该软件许可而仅使用资源。例如,一个软件许可可允许软件实际驻留在公用存储设备上,还阻止在多台机器上同时运行该软件。在这种情况下,所述“资源”是一种运行所述软件的机器。资源的另一个例子是文件。在这种情况下,许可服务器可大概地修改特殊文件的存取控制列表,以便允许特许程序以存取所述特殊文件的能力。
一个程序的二进制数包括当计算机执行所述程序时,该计算机将操作的一系列指令。
一个选择明文攻击(chosen-plaintext attack)是一个对手选择明文接着给出相应的加密文本的地方。接着,所述对手使用推导出的任一信息,以便覆盖与预先看不见的加密文本相应的明文。
一种自适应的选择明文攻击是这样一种选择明文攻击,其中对明文的选择可依赖于由预先的结果得到的加密文本[2]。
一个零知识证明协议是一种非对称方法,其特别适用于拷贝保护及许可。一个零知识证明不会因为被重复使用[且零知识证明存在]选择明文攻击而使安全性降低。因为这些特性对私人密钥资料提供了极好的保护,所以它们尤其适合拷贝保护及许可的要求。假定例如,上述私人密钥资料被存储在一个智能卡上。在这种情况下,该用户应使这张智能卡对机器是可行的,而不用考虑由特洛伊马或具有不良意向的其它程序得到的攻击。例如一个特洛伊马,不可以为达到在后来的密码分析中得到有用信息的目的而使用选择询问反复询问所述智能卡。
一个零知识证明协议既存在于选择明文攻击中又存在于自适应选择明文攻击中。
作为一个零知识证明的例子,考虑到Guillou-Quisquater(GQ)零知识证明协议,它包括两个资料A和B,其中A具有B不能访问的所述私人密钥资料。A向B证明了A能访问所述私人密钥资料。下面将对所述GQ验证协议予以说明在下面,我们假定一个如[2]中定义的RSA密钥对。在以下说明中,我们使用由[2]得到的注释。这种注释的一些内容为所述RSA公共密钥为(n,e),所述RSA私人密钥为d,gcd(e,Φ)=1,Φ=(p-1)(q-1)及n=p·q。
计算系统参数a.使用主要的因子式,p和q适于用在类似RSA密钥对的计算中计算n=p·q和Φ=(p-1)(q-1)b.A定义gcd(υ,Φ)=1且公共指数υ≥3,其中Φ和gcd是所述最大公约数。
c.A计算私人指数s=υ-1(modΦ)d.作为公共密钥资料的系统参数(υ,Φ)被设置为有效的。
计算用户参数a.A使用一个公知的冗余函数f选择和公开了一个众所周知的单位元素I及满足1<J<n的冗余元素J=f(I)。所述冗余函数f的例子是ISO/IEC 9796的预处理阶段的冗余映射[6]。
b.作为私人密钥资料SA=J-s(mod n)而保留A。
所述GQ密钥对是(私人密钥=SA)和(公共密钥=(υ,n))。A能由B、I、f和J=f(I)识别。B使J=f(I)有效(框33)。
所述GQ证明协议的协议信息表述如下·A→B:I,x=rυ(mod n)(1)·B→A:e(其中1≤e≤υ)(2)·A→B:Y=r.seA(mod n)(3)由t执行的以下步骤,证明A和B是等同的,其中仅在所有t的执行都是成功时(框34),B接收A的身份。
a.A选择一个随机秘密整数r(约定),1≤r≤n-1,并计算(所述证据)X=rυ(mod n)。
b.A传送给B的一对整数(I,x)。
c.B选择并传送给A一个随机整数e(所述询问),1≤e≤υd.A计算并传送给B(所述应答)y=r.SeA(mod n),B接收y,使用f由I构造J,计算Z=Je.yυ(modn)及如果z=x和z≠0都满足时,接收A的同一性的证明。
Zn是整数模n的集合。
Zn*={x∈Zn|gcd(x,n)=1}本发明利用了应用非对称加密方法的协议。非对称加密方法的例子是非对称加密、数字签字及概率证明。
一个非对称加密方法包括公共密钥资料及相应的私人密钥资料。当给出的信息不比相应的公共密钥资料多时,估计计算所述私人密钥资料是不可能的。在本发明中,我们在两个资料A和B之间使用相互非对称加密。A向B证明它能够访问私人密钥资料而B使该证据生效。A不能向B公开所述私人密钥资料。
以下将说明非对称加密方法的一些例子。
数字签字是手写签字的电子模拟。数字签字证明包括至少两部分,A和B。当将他或她的公共密钥资料记入一个公用位置后,A使用所述私人密钥资料对信息加密。因为任何人都能访问所述公共密钥资料,所以不存在信息秘密。因为A是仅有的能访问所述私人密钥资料的用户,所以没有其他人能通过执行所述加密而“伪造A的签字”。任何人可通过使用公共密钥资料而使A的签字生效。
非对称加密证明包括至少两部分,A和B。A控制私人密钥资料,而B则是除非B公开所述私人密钥本身(这是B不能做的),否则B不能访问A的私人密钥资料。一开始,A和B都没有共享的秘密。而在这种方法中,A和B知道了共享的秘密。
一个非对称机密证明的例子是公共密钥加密。如以下将要举例说明的非对称机密协议。A向B证明A知道所述私人密钥资料。
A←B:h(r),B,PA(r,B)A→B:r上面说明的协议方案使用了如下注释·A→B表明A向B发送信息;而B→A表明B向A发送信息。
·r表明暂时使用的随机数·h(r)是一个暂时的报文摘要。
·PA(r,B)是使用A的公用密钥对暂时数和B的身份加密。
这里,B产生一个暂时数并使用A的私人密钥资料对暂时数(与B本身一起)编码,例如PA(r,B)。
另外,B计算暂时的报文摘要h(r)。
B如上所述向A传送信息,以及B的身份。
接下来,A使用其私人密钥资料对得到r,B的PA(r,B)进行解密。A计算已解密随机值的报文摘要、r及比较阻止由B得到的h(r)的结果。在这一点上,该随机数是一个由A和B都知道的共享秘密。
为完成该协议,A将所述随机数反还给B,以便证明A知道该秘密。当然,一旦A提供了该秘密,就丧失了所述随机数的秘密。B通过检查B原先产生的由A返回的秘密使A的验证生效。
非对称机密性证明协议的第二个例子是概率加密方案,例如,Blum-Goldwasser概率公共密钥加密方案。这里,加密或解密装置使用了随机数或其它概率装置。不应拒绝用例如零知识证明的概率证明的概率公共密钥加密。在第一种情况中,使用概率装置执行加密算法。在第二种情况中,使用概率装置定义保证的级别。对概率证明说明如下一个概率证明包括至少两部分,A和B。A控制私人密钥资料,而B在不公开所述私人密钥资料身份时不能访问A的私人密钥资料。因为B强迫A提供证据以证明A大概能访问所述私人密钥资料,所以A的证明与其说是绝对的,不如说是概率的。
对概率证明的变化有两种a)零知识证明。这是可证明的,除非这样一个事实即A控制所述私人密钥资料,否则B或其它任何证据的观测者都不能从该证据中得到任何东西。
b)证据询问应答证明。它包括以下顺序的4要素1.A向B传送信息,该信息不能在该证明的所有过程中为常数。
该信息被称作证据。对许多协议,所述证据是随机地产生的,并永远不会重复。
2.B向A传送被叫做询问的信息。对许多协议,所述询问是随机地产生的。
3.A向B传送一个应答。
4.B通过执行包括所述证据的所述询问及所述应答的计算验证A是否真的知道所述私人密钥资料。
实际上,许多零知识证明是证据-询问-应答-证明。
零知识证明方案例如是Feige-Fiat-Shamir方案或所述Guillou-Quisquater方案,还可以是单向零知识证明方案例如是所述Blum-Geldmann-Micali方案,或统计零知识证明方案,例如是所述Brassard方案或是所述Crepau方案等。
证据隐藏证明方案例如是所述Feige-Shamir方案等。
以下将说明一个零知识协议可能的通用结构(CP[2])。出于解释目的,这个通用结构也可以是证据-询问-应答-证明格式。
所述协议包括两部分,A和B。
1.所述证据声称A由预先定义的集合中选择一个随机元素作为它的秘密约定(提供隐藏随机性),并从这里计算出一个相关(公共)证据。这可以提供由其它协议运作而变化的初始随机性,并定义了一套所有证明声明为可回答的问题,因此先验情况强迫他或她的即将到来的应答。只有具有A秘密知识的合法资料,A才真正有能力回答所有问题,且对上述这些情况中的任何一个答案将不提供有关A长远秘密的信息。
2.B后来的询问选择这些问题中的一个。
3.A提供其答案。
4.B检查这些答案的正确性。
可将所述协议迭加,以改善限制成功行骗的能力的约束。
每个用户可将他或她的公共密钥资料传递到一个公共存取目录,而不用兼顾相应的私人密钥资料。所述用户通常应将他或她的私人密钥资料当作最紧要的机密予以保护,否则,所述密码系统可能不会保证其正确性。最常见的用于保护个人私人密钥资料中的装置是通过使用智能卡。在这种情况下,所述智能卡是一种不带用于透露私人密钥资料(以一种无加密保护方式)界面的器件。
虽然智能卡提供了最好的保护,但电子商务的社会因素也可提供一种保护私人密钥资料保护的作用。与非对称加密服务相关的最大困难是鉴别。比如,如果A将他或她的公共密钥资料传送到公共目录中,接下来B如何有效地访问它呢?这即是,一个盗版者试图伪装成A但却传送所述私人密钥资料。一些商务组织通过作为认证当局(CA)提供对这个问题的解决方法。对于(可能的)付费,由潜在用户的所述CA例如驾驶员的驾驶证或口令请求识别资料。在确认所述识别资料有效后,所述CA将所述用户的公共密钥资料传送到一个公共目录中,且所述CA在证件上作标记(用所述CA的私人密钥使用数字签字)以拥有所述用户的公共密钥资料。可采用标准化服务,例如X.500,以帮助简化对包括公共密钥资料的索引的使用。
一旦一个用户将他或她的公共密钥资料传送到所述CA,该用户应努力保护他或她的私人密钥资料。在这种情况下,如果准备泄露所述用户的私人密钥资料,则就不再能以有效方式使用所述私人密钥资料。对一些非对称密钥,如果在无意中泄露了所述用户的私人密钥资料,则所述用户将会引起明显的关注。例如,在可用于数字签字的RSA密钥的情况中,已成为网络的销售商大概会允许电子商务交易。
根据本发明,提供了包含一个用来保护软件的保护装置的计算机系统,所述保护装置包括至少三条,其中至少有一个询问装置和第一应答装置及第二应答装置,其中所述询问装置与软件保护条目有关,所述第一应答装置是具有能访问一非对称密钥对的私人密钥资料及能与所述询问装置通信,所述第二应答资料能与所述询问装置通信,其中,a)上述这个询问装置不能访问由第一应答装置访问的所述私人密钥资料,b)上述这个询问装置包括一些装置,这些装置用来分别使所述第一应答装置的非对称证明有效及使所述第二应答装置的n个证明有效而不要求所述第一应答装置公开其私人密钥资料,c)上述这个询问装置包括一些装置,除非所述任何一个认证有效或两个认证都有效,否则这些装置会禁止受保护程序的运行。
在下文中,我们可交换地使用检索词应答装置及非对称应答装置,以便表述非对称应答装置。当讨论对称应答装置时,我们明显地使用作为一个整体的检索词。
根据本发明,提供一个能访问所述私人密钥资料的方式并不重要。例如可使用如上所述的任一个原理,例如非对称机密性证明、数字签字证明或概率证明。
根据本发明另一方面,可提供一个包括用来保护软件的保护装置的计算机系统。所述保护装置包括至少四条,其中至少有一个第一询问装置,一个第一应答装置及一个第二应答装置,所述第一询问装置是和软件保护项目相关,所述第一应答装置能访问非对称密钥对的私人密钥资料,并能与所述第一询问装置通信,所述第二应答装置能访问与所述第二询问装置相连的秘密密钥资料,并能与第二询问装置通信,其中,a)上述该第一询问装置不能访问所述第一应答装置访问的所述私人密钥资料,b)上述该第一询问装置证明所述第一应答装置的非对称证明有效,即所述第一应答装置不要求所述第一应答装置公开其私人密钥资料就可访问该私人密钥资料,c)所述第二询问装置认定所述第二应答装置的证明是有效的,即上述第二应答装置能访问所述机密密钥资料,d)所述第一询问装置认定所述第二应答装置禁止使用软件的所述受保护项目或禁止以不受限制的方式使用上述软件,除非认定上述认证中的一个有效或两个都有效。
根据本发明另一方面,提供了一个包含一些装置的计算机系统,该装置用来输入一受保护的程序,及用来嵌入至少三个项目,其中这些项目中至少有一个询问装置、一个第一应答装置及一个第二应答装置,而该询问装置和软件保护的项目有关,该第一应答装置能访问非对称密钥对的私人密钥资料且能和所述询问装置通信,第二应答装置能和所述询问装置通信,其中,a)所述询问装置不能访问由所述第一应答装置访问过的所述私人密钥资料,b)所述询问装置包括一些装置,这些装置用来分别认证所述第一应答装置的非对称证明及所述第二应答装置的证明是有效的而不要求所述第一应答装置公开其私人密钥资料,c)所述询问装置包括一些装置,这些装置用来禁止受保护的程序运行,除非能认定任何一个所述认证有效或两个认证都有效。
根据本发明另一方面,提供了一个包括一些装置的计算机系统,所述装置用来输入一个受保护的程序,并用作嵌入至少四个项目,这些项目至少有一个第一询问装置、第二询问装置、一个第一应答装置和一个第二应答装置,所述第一询问装置和软件的受保护项目有关,所述第一应答装置能访问一非对称密钥对的私人密钥资料,并能与第一询问装置通信,所述第二应答装置能访问机密密钥资料,并能与第二应答装置通信,其中,a)所述第一询问装置不能访问该第一应答装置访问的所述私人密钥资料,b)所述第一询问装置不要求所述应答装置公开其私人密钥资料就能认证所述第一应答装置的非对称证明有效,即所述第一应答装置能访问所述私人密钥资料,c)所述第二询问装置认证所述第二应答装置有效,即该第二应答装置能访问所述机密密钥资料,d)所述第一询问装置或所述第二询问装置禁止使用所述软件或禁止以不受限制的方式使用所述软件,除非能认定所述认证中的一个有效或两个都有效。
根据本发明另一方面,提供了一种将软件分配该许多用户的方法,其中每一个都有一台如权利要求1的计算机系统,且其中每个用户接收对所述受保护程序和所述询问装置的相同的拷贝。
根据本发明另一方面,提供了一种保护包含一保护装置的软件项目的方法,其中所述保护装置是用来保护软件的,所述保护装置包括至少三条,其中至少有一个询问装置、一个第一应答装置及一个第二应答装置,其中所述询问装置与软件受保护的项目有关,而第一应答装置能访问非对称密钥对的私人密钥资料,并能与所述询问装置通信,所述第二应答装置能与所述询问装置通信,其中,a)所述询问装置不能分别访问所述第一应答装置和所述第二应答装置访问的所述私人密钥资料,b)所述询问装置不要求所述第一应答装置或所述第二装置分别公开其私人密钥资料就能认证所述第一应答装置的非对称证明及所述第二应答装置的非对称证明是有效的,c)所述询问禁止一受保护的程序运行,除非认定认证中的一个有效或两个都有效。
根据本发明另一方面,本发明提供了一种用来保护软件项目的方法,该软件包括一用来保护软件的保护装置,所述保护装置包括至少四项,其中至少有一个第一询问装置、第二询问装置、一个第一应答装置及一个第二应答装置,所述第一询问装置与软件的受保护项目有关,所述第一应答装置能访问非对称密钥对的私人密钥资料,并能与所述第一询问装置通信,所述第二应答装置能访问密密钥资料,并能与所述第二询问装置通信,其中a)所述第一询问装置不能访问由所述第一应答装置访问的私人密钥资料,b)所述第一询问装置不要求所述第一应答装置公开所述私人密钥资料就可认证所述第一应答装置有效,即所述第一应答装置可访问所述私人密钥资料,
c)所述第二询问装置认证所述第二应答装置有效,即所述第二应答装置可访问机密密钥资料,d)所述第一询问装置或所述第二询问装置禁止使用所述软件的受保护的项目或禁止以不受限制的方式使用所述软件,除非认定所述认证中的一个有效或两个都有效。
根据本发明另一方面,本发明很可能在为实现所述随机询问的安全性而重复地向设备存取发出定时应答所产生的随机询问中发挥了优势。虽然可潜在地向所述各种设备中的一个发出定时应答,但在本例中我们设想这是一张磁盘(通常认为是一张硬盘,有时也认为是一直接存取设备)。因此,不可能向许多不同的设备询问何时产生一个特殊的随机值。
根据本发明另一方面,为进一步实现所述随机询问的安全性,在产生随机询问的同时,可以这种方式将新线索分叉,即关于通过操作所述操作系统的调度程序内的不可预见性而将附加的随机度插入所述随机询问中。
根据本发明另一方面,为进一步实现所述随机询问的安全性,可执行一个统计测试以确定由每一个所述磁盘存取得到的随机比特的数目,并由此重复地对磁盘访问直到获得了预定的随机比特数目。
根据本发明另一方面,包括一个由所述询问装置访问并确定的一个根认证是有益的。所述根认证的目的在于鉴定一个特殊的后继认证。所述后继认证存储了公共密钥资料,该资料用来认证由一应答装置提供的所述证据有效。在一些情况下,使用多种根认证是有益的,这些根认证例如拥有与每一组多种应答装置所访问的所述私人密钥资料相对应的所述公共密钥资料。
除所述计算机系统外,所述方法也可用来拷贝保护软件及/或许可软件。
在多道询问装置或被嵌入一单道程序或被嵌入一多道程序的情况下,所述相应的询问装置可加入证据,该证据用来证明或是所述相同的私人密钥资料的存在或是可能的不同的私人密钥资料。


图1是当一用户希望购买软件时的一个购买协议流程图。该软件是根据本发明而由一保护装置保护的。
图2是显示了,需要安装在所述用户的机器中使所述用户能运行所述受保护软件的一软件成分的框图。
图3是显示了保护装置在受保护软件中的操作。
图4显示了用来产生暂时数的一随机数发生器的操作的流程图。
图5显示了根据本发明的一个认证基础结构。
现在将参照所述附图通过举例来说明根据本发明的一个保护装置。
购买协议图1显示了当用户102希望购买软件是所使用的一购买协议,其中根据本发明由一个ECP装置对所述软件进行保护。所述销售商101具有用作数字签字的公共及私人密钥资料;并且每个潜在的用户102具有用于非对称验证协议的公共的和私人的密钥资料。每个用户使其公共密钥资料也可由其它用户使用,但对其私人密钥资料保守秘密。
在步骤1中,所述用户102由销售商101处得到受保护软件103,这是通过由一个网络公告板上下载文件而实现的。后面将会更详细地说明一个询问装置24(参见图2),该装置被以这种方式嵌入所述受保护软件103,以至一潜在攻击者不能轻易地将所述询问装置24由所述受保护软件103中分离出来。所述攻击者需要解开所述代码,且需要手工拆除所述询问装置。所述询问装置24具有嵌入其中的销售商的公共密钥资料。正如所要说明的,所述询问装置24防止所述用户在这一阶段运行所述软件。这个完全受保护的程序包括使用所述销售商的私人密钥密钥资料签字的询问装置。
在步骤2中,所述用户102由电子邮件向所述销售商101发出一个注册软件包104。所述注册软件包104保留一个对包括掌握所述用户公共密钥资料的一个公共目录的参考。
在步骤3中,所述软件销售商101找到所述用户的公共密钥资料并将所述用户的公共密钥资料嵌入一个密钥文件105,并将该密钥文件105通过电子邮件传送给用户102。一旦所述用户102安装了所述密钥文件,所述保护装置允许所述用户102运行所述受保护软件103,这样所述用户就能保证他或她可访问所述用户的私人密钥资料。在软件被许可的情况下,所述软件需要由许可服务器获取资源以便以一种不受限制的方式运行。
所述密钥文件105的建立是由一密钥文件发生器执行的,其中所述密钥文件发生器是在所述销售商的设备上运行的一个程序。该销售商101必须细心防护好这个程序。
在使用所述密钥文件发生器时,操作员填入以下信息
销售商姓名销售商姓名是该销售商所在公司的名字。
销售商口令销售商口令是开启所述销售公司私人密钥的口令。不知道该口令的公司雇员不能产生密钥文件。
用户姓名所述用户姓名是为其产生一个密钥文件的用户可识别名(在[7]中定义)。所述姓名被记入公共密钥资料的数据库中。
密钥文件名所述密钥文件是一个新密钥文件的名称。
当获取这一信息后,所述密钥文件发生器建立一个包括所述用户公共密钥资料的密钥文件105。所述密钥文件105的一部分对所述用户102来说象一个值的完全的随机序列。
建立所述密钥文件105包括以下操作。
首先,所述密钥文件发生器创建一个文件,并将所述用户的公开密钥资料及上千的假目标比特一起插进该文件中。在当前的例子中,每个密钥文件105大约包括480,000个假目标比特。这种比特数表明了假目标部件的一个有效数量,这种比特数也可适合于一个标准的电子邮件信息。
每个密钥文件105可在不同的位置存储所述用户的公共密钥资料。另外,每个密钥文件105都不用公开所需加密密钥而对嵌入其中的用户信息加密。这一被加密的用户信息允许软件销售商在一种情况下能容易地识别一密钥文件105的所有人,这种情况是指所述密钥文件105出现在公共场合例如是公告板中的情况。接着所述密钥文件发生器使用不同算法对所述密钥文件(或密钥文件的一部分)多次进行加密及再加密,最终,所述密钥文件发生器利用一数字签字算法而使用所述销售商的私人密钥资料对所述密钥文件作标记。
如果所述询问装置使用了存储在所述询问装置二进制数中公共密钥资料认证销售商的签字有效,且该询问装置能访问存储在所述密钥文件中的被加密的公共密钥资料,则该密钥文件就被称作有效的。
大量的许可服务器图5显示了当使用了许多许可服务器时可能有用的认证基础。或者,很可能当使用一个单个的许可服务器时,定时地改变密钥资料。
所述询问装置访问一个有效的密钥文件510。在所述验证过程中,所述询问装置由所述受保护程序的二进制数中提取所述销售商的公共密钥资料,并使用该销售商的公共密钥资料以使所述密钥文件的签字512有效。我们称这个密钥文件为认证当局密钥文件,即CAKF 510。使用存储在所述CAKF 511中的所述CA的公共密钥,所述询问装置认证所述认证当局的认证(CAC)520的签字522是有效的。
所述CAC 520包括至少一个公共密钥512和所述完整CAC的数字签字522。当这个数字签字生效后,我们就说该CAC是有效的。
所述受保护程序103为存储在文件系统中的许可服务器的鉴定(LSi,i=1厖n)搜寻所述文件系统。在当前的例子中,假定LSi是530。
每一个许可服务器的认证LSi包括至少所述许可销售商531的所述公共密钥(许可服务器的公共密钥),及一个完整LSi 532的数字签字。
当所述受保护程序103设置在一许可服务器的鉴定LSi 530上时,所述受保护程序103检查所述有用信息,以确定是否可使用所述许可服务器的鉴定LSi。
接着,如[2]中说明的那样当这条链最终到达有效的CAC之前,所述受保护程序103根据鉴定链一直认证所述LSi的数字签字有效。注意所述链中的每个鉴定必须由所述询问装置发现。还要注意在图5中,因为所述CA直接对每个所述许可服务器的鉴定532作记号,所以所述链是短的。
如果完成了所述认证,受保护程序103接收所述许可服务器的鉴定LSi。我们称这个LSi鉴定了一个有效的许可服务器鉴定(VLSC)。
所述VLSC的公共密钥资料531接下来可被用作认定所述许可服务器有效。
对所述许可服务器的鉴定为达到所述受保护文件103及一个许可服务器Li之间的相互鉴别,所述受保护程序103认证它与正确的许可服务器Li通信,并且该许可服务器Li认证其能与所述正确的受保护程序103通信。
至少两个认证中的一个必须执行使用非对称加密方法的协议。在本例中,两种认证都使用了所述GQ证明,一种具有零知识特性的非对称加密方法(如前所述)。
认证所述许可服务器首先,所述受保护文件利用如上所述的方法获得(包括认证)一许可服务器鉴定VLSC。公共密钥VLSCPK 531是存储在所述许可服务器鉴定VLSC中的所述公共密钥VLSCPK 531。
根据上文的所述GQ证明协议的说明,所述许可服务器Li(作为部件A)向所述询问装置24(作为部件B)证明所述许可服务器Li能访问私人密钥资料LSPVTK。所述询问装置在所述GQ证明认证中使用所述公共密钥VLSCPK531。
如果询问装置24认证所述证明有效,则所述受保护程序103以不受限制的模式运行,这种模式是不受拷贝保护或许可系统约束或限制的。
如果所述询问装置24不能认证所述证明有效,则所述受保护程序103停止运行、以有限的模式运行或采取其它合适的操作。
有可能受保护程序103嵌入一个单独的询问装置中,其中所述询问装置以如上所述的方式与多个服务器通信。另外,多个可能以上述方式与多个许可服务器通信。
所述受保护程序和所述许可服务器间的相互鉴定(框31)(与图3比较)首先所述受保护程序103利用如上所述的装置认证所述许可服务器Li有效。接着,所述许可服务器Li认证如下文所述的受保护程序103有效。
所述受保护程序103包括一个嵌入的应答装置。该应答装置包括嵌入的私人密钥资料PPPVTK,这里的所述私人密钥资料PPPVTK与所述许可服务器中的私人密钥资料LSPVTK不同。
(框32)所述许可服务器Li得到并认证一程序的密钥文件PPKF有效。所述认证过程是对所述CAKF认证过程的模拟。在该认证过程中,所述许可服务器用该服务器的公共密钥资料认证所述PPKF的数字签字有效。
应当注意所述受保护程序的密钥文件PPKF不是所述许可服务器的密钥文件CAKF。
(框33)所述许可服务器Li通过执行如需要的多重加密从PPKF中抽取公共密钥资料。
(框34)所述受保护程序103向所述许可服务器Li证明该受保护程序103能使用一个GQ证明协议访问私人密钥资料PPPVTK,所述服务器使用由所述程序的密钥文件PPKF提取的公共密钥来认证该证明。
如果所述许可服务器的认证成功,则所述许可服务器同意所述受保护程序资源允许所述受保护程序103以潜在的不受限制的方式运行。否则所述受保护程序103要以受限方式运行。
作为如上所述的方法的一种替换,所述许可服务器可使用对称密钥资料认证所述受保护程序有效。
在执行所述协议之前,所述许可服务器(由B表示)中的所述询问装置及所述受保护程序(由A表示)中所述应答装置每个都能访问所述相同的对称密钥资料k。在下述协议中,所述应答装置向所述询问装置证明该应答装置能访问该对称密钥资料。
A←B:rB(1)A→B:h(k,rBB)(2)步骤(1)首先,所述许可服务器的询问装置产生一个随机数rB,并将该随机数rB送到A。
步骤(2)接着,所述受保护程序的应答装置提取到共享的密钥资料k,所述随机数rB及所述许可服务器B的唯一身份。所述应答装置以下述顺序连在一起k、rB、B。接下来,使用报文摘要函数h,例如MD5,所述应答装置计算h(k,rB,B)。
最后,所述应答装置执行一认证过程,这一过程首先是通过回忆起共享密钥资料k、所述在步骤(1)中产生的随机数rB及所述许可服务器的身份B而实现的。所述询问装置计算h(k,rB,B)并对照在步骤(2)中收到的相应值比较所述结果(为同一生)。如果所述同一性的检查成功,则所述询问装置接收该证明;否则,所述询问装置拒绝该证明。
可由相互鉴定的两种方法中看出,所述应答装置能访问所述秘密密钥资料。
在非对称加密的情况下,所述秘密密钥资料是一非对称密钥资料的所述私人密钥资料。在对称装置的情况下,所述秘密密钥资料是一个共享的密钥。注意在这种情况下,我们说对称装置既包括对称加密算法也包括其它算法,该对称加密算法例如可以是所述数据加密标准(DES),在其它算法中所述加密密钥是由解密密钥导出的,反之亦然。对称装置另外包括报文摘要或其它加密装置,所述报文摘要例如可以是MD5,所述其它加密装置中两部分都共享通用密钥资料。
鉴定及认定一第二许可服务器有效在嵌入有询问装置的受保护程序与两个或多个应答装置通信的情况下,所述通信的装置及方法是相同的。所述询问装置使用如上所述的装置和方法认证第一个应答装置,接着认证其它装置。可用所述第一询问装置构成两个应答装置都需要的或也许仅仅是一个应答装置需要的认证。在任何一种情况下,在成功地认证之后,所述受保护程序可以以一种不受限制的方式运行。否则,所述受保护程序停止运行,或以一种受限方式运行。
所述询问装置使用一个非对称协议潜在地与所述第一应答装置通信,并且使用一个对称协议潜在地与所述第二应答装置通信。或者,是两种协议都是对称的情况。
用户软件图2显示了需要安装在所述用户机器中的所述软件成分,一台计算机在相互鉴定后使所述用户能够运行所述受保护软件103。这些构成了许可服务器20、所述密钥文件105、所述受保护软件103及所述认证(未示出)。所述被保护软件103包括一个询问装置24和一个可能的应答装置(未示出)。该许可服务器访问私人密钥资料(未示出)。在所述受保护程序包括一个应答装置的情况下,则所述受保护程序的应答装置选取秘密密钥资料。
所述许可服务器20是在系统刚一开始引导时,所述用户102运行的程序。所述用户102通过插入一个包含该用户私人密钥资料的智能卡而使该系统工作。所述许可服务器20于是为用来使所述智能卡有效的口令而提醒该用户102。如果所述用户不能提供打开该智能卡的正确口令,则不执行所述许可软件。所述许可服务器不能访问存储在该智能卡上的所述私人密钥资料。所述许可服务器20则在背景下运行。
临时发生器临时数的产生是由包含在所述询问装置24中的临时发生器执行的。临时发生器的操作如下。
首先,所述临时发生器需要大量的系统参数,例如系统时间、在所述表中为空白的空间量、逻辑磁盘驱动器的数目、所述操作系统目录中的文件名等。
接下来,所述临时发生器使用随机数发生器建立了一个随机数。所述随机数发生器由两根处理线索构成,在这里指线索1和线索2。图4显示了线索1的操作,这是所述随机数发生器的主线索。
(框51)线索1首先创建一个数据结构值表,以保持计数器值表。该表一开始是空的。
(框52)线索1将一当前计数器值设定为零,并将完成测试的标志设置为FALSE。
(框53)线索1接着将线索2分叉。线索2传递一个异步磁盘存取,然后在所述磁盘存取结束前一直处于休眠状态。当所述磁盘存取结束时,线索2将完成测试的标志设为TRUE。注意线索1和线索2共享完成测试标志。
(框54)线索1的计数器值加1。
(框55)接着线索1测试所述完成测试标志现在是否为TRUE,该状态表明由线索2初始化的所述磁盘存取已结束。。如果完成测试标志为FALSE,则线索返回到框54。这样可看出,当等待对所述磁盘的存取结束时,线索1不断地增加所述计数器值。
(框56)当完成测试标志为TRUE,线索1终止线索2,并在值表中的第一空白区保存所述计数器值。
(框57)接着线索1调用Statstest函数,该函数估算存在值表中的所述计数器值(或计数器值的一部分,例如低阶位)的随机度。这一函数可使用如[3]中说明的所述Chi-Squre测试、所述Kolmogorov-Smimov测试或串联修正测试。可优化所述Statstest函数以保证对每一次磁盘存取不会重复复杂的计算。所述Statstest函数返回一个值,该值表明有多少每个被存储的计数器值的低位被认为是随机的。
(框58)线索1在与所述值表的长度合并时,将由Statstest函数返回的所述值与一预定阀值比较,以确定是否已产生了足够的随机位。如果还未产生足够的随机位,所述处理返回上述框52,以产生并存储另一计数器值。
(框59)当己产生了所需数目的随机位时,线索1由所述值表的每个计数器值中提取特定数目的低阶位,并将这个位序列作为输出随机数返回。
总之,可看出所述随机数发生器利用一系列磁盘存取定时的所述不确定性作为临时数的产生中的随机源(看[4])。通过对每个磁盘存取的新线索分叉,所述随机数发生器也利用所述操作系统过程中操作的不确定性作为一第一随机源。
所述由Statstest函数执行的分析通过计算返回的每个被存储的计数器值的低阶位的数目,而允许所述随机数发生器对任意速度的处理器和磁盘进行自调谐。例如,具有高方差磁盘存取时间的系统对每张磁盘存取的随机位比具有低方差磁盘存取时间的系统要多。例如,对定量为1080s的磁盘(平均写时间为6ms),及一个486 66MHz的处理器,所述系统大约产生每秒45比特。可替换地,可对每个磁盘存取的比特数目进行硬编码并使用去变形技术以保证随机度。
所述临时发生器也会询问所述操作系统以确保其能向一张有效磁盘上传送每次磁盘存取。所述最终输出的临时数是通过将由所述随机数发生器输出的随机数与使用一报文摘要询问如上所述的系统参数而得的结果合并形成的。
如上所述的临时发生器在向磁盘提供了直接存取的操作系统例如Windows95或Windows NT 4.0时,工作状态最好。在这种操作系统中,在用户空间中执行的程序可采用特殊操作系统调用,以允许程序绕过所述操作系统的内部缓冲装置并直接写磁盘。因为这些特殊操作系统调用相对效率较低及使用困难,所以许多程序不会利用它们。在Windows 95及Windows NT,如果程序存取数据是所述磁盘扇区大小的数倍时,该程序可通过询问所述操作系统而仅仅使用这些特定调用。
如果所述操作系统不向所述磁盘提供直接存取,则所述询问装置24将仍使用磁盘定时随机数发生器。另外,在这种情况下,所产生值的数量将大大依赖于所述操作系统调度程序的不确定性,而与对所述磁盘存取时间的固有变化相反。
如上所述本发明的所述实施例保证了所述操作系统允许一程序在一单个的地址空间内分成许多线索。另外,所述发明的该实施例保证所述操作系统允许线索存取同步变量例如信号量。许多现代的操作系统提供这种服务。本发明的实施例使用多重线索以实现确定每张磁盘存取时间的装置。但是,如对本发明的完成是在未提供多重线索或同步变量的系统上运行的,则临时发生器将替换其它装置,例如询问一个物理锁。
所需用户不需由网络公告板上下载所述软件而获取所述软件。所述用户也可由一张软盘或在PC存储器上的CD-ROM、Internet或另外一些分配装置上得到软件。
进一步地,智能卡可被用来存储所述用户或销售商的私人密钥资料。在这种智能卡使用配置中,盗版者不能由该智能卡上提取出私人密钥资料,该智能卡甚至可强力防御侵袭。
可能将私人密钥资料存储在不安全的存储设备例如软盘中。在这种情况下,该私人密钥资料应加密。一应答装置不应能执行解密步骤,除非一用户首先提供一个口令。在这种情况下,所述应答装置能访问所述私人密钥资料但不在其地址空间外泄露所述私人密钥资料。
我们可随意地扩展本发明,这可通过加入一内部定时器例如一计数线索,或一外部定时器例如一个时钟来构造所述询问装置而实现的。如果在完成所述概率证明协议之前事先定义门限值,则自动舍弃所述认证。
多重程序可具有被嵌入的并与相同的应答装置通信的询问装置。在这种情况下,所述应答装置大概会使用相同的智能卡存储所述私人密钥资料,该部件是在该应答装置和所有相应的询问装置间的相互影响中使用。可选择地,可将所述程序配置好以便所述应答装置在其与每个相应的询问装置间相互作用时使用相同的私人密钥资料。
一个包括至少两个应答装置的计算机系统大约可包括一个依赖非对称加密的应答装置和一个不依赖非对称加密的第二应答装置。不使用非对称加密的应答装置的例子是依赖于对称加密的Dongle。在这种情况下,所述Dongle不能访问非对称私人密钥。
除了完成拷贝保护外,如上所述的装置还可用作追踪软件盗版者。所述装置提供了极好的跟踪能力,而不需要每个用户仅得到该程序唯一的一个版本。
可在大量不同的结构中采用所述许可服务器20、所述询问装置24及如上所述的保护软件103。
例如-所述许可服务器20可存在于一个地址空间、所述询问装置24,所述受保护软件103可存在于单一机器的不同地址空间中。
-所述许可服务器20可存在于一个机器的一个地址空间、所述询问装置24,所述受保护软件103可存在于不同于机器的不同地址空间中。
更进一步,每个多重用户都具有关于软件的受保护项目的自己的拷贝,这些用户可分享响应来自所有这些拷贝的询问的通用许可服务器20。
另一处可替换的是多重用户可共享通用私人密钥资料。例如,在构造多用户许可函数性时,一个公司可使用这些被采用项目中的一个或更多。
在另一种可能的变化中,所述密钥文件105可包括与涉及对所述受保护程序103的服务进行选择触发的隐含信息。例如,所述密钥文件105可表示所述受保护程序103能允许打印服务的运行但不能运行磁盘保存服务。作为另一个例子,所述密钥文件105可包括一个截止数,该数说明特殊服务可实现的最后一个数。所述受保护程序103可读所述密钥文件105,以确定所述受保护文件应该运行的操作。一个用户应能通过向所述销售商询问另一密钥文件,而有获得运行更多操作的能力。如果一个许可服务器没有能鉴定一个程序,则所述许可服务器可拒绝向该程序提供资源。除非得到了充足的资源,该程序可能会根据自身的判断而拒绝执行某种操作。
在本文中引用了以下的出版物[1]Choudhury等,计算机网上电子出版物的版权保护,IEEE网络,1995年5月/6月,第12-20页。A.Menezes等,应用密码术手册,CRC Press,Inc.ISBN 0-8493-8523-7,S.405-424,1997[3]D.Knuth,计算机编程技巧,Addison-Wesley出版公司,MA读本,第二版,1981年,第38-72页,ISBN 0-201-03822-6[4]P.Fenster macher et al,从磁盘驱动器中空气涡流得到的加密随机性,密码术的增强Crypto’94,第114-120页,Springer-Verlag,1994年。ISO/IEC 9796,“信息技术-安全技术-能给出信息再生的数字签字方案”,国际标准化组织,日内瓦,瑞士,1991年(第一版)[6]R.Rivest,MD5报文摘要算法,RFC 1321,1992年4月[7]ISO/IEC 9594-1,“信息技术-开放系统互连-目录概念样机及服务综述”。国际标准化组织,日内瓦,瑞士,1995(与ITU-TRec X.509,1993相等)
权利要求
1.一个包括用来保护软件的保护装置的计算机系统,所述受保护装置包括至少三项,其中至少包括一询问装置、一个第一应答装置及一个第二应答装置,所述询问装置与软件的受保护项目有关,所述第一应答装置能访问非对称密钥对的私人密钥资料并能与所述询问装置通信,所述第二应答装置能与所述询问装置通信,其中a)该询问装置不能访问由该第一应答装置访问的私人密钥资料,b)所述询问装置包括一些装置,这些装置用来分别认证所述第一应答装置的非对称证明和所述第二应答装置的证明有效,而不需要所述的第一应答装置公开其私人密钥资料,c)所述应答装置包括一些装置,这些装置禁止受保护程序运行,除非所述认证中的一个有效或两个都有效。
2.如权利要求1的计算机系统,其特征在于所述第一应答装置和所述第二应答装置访问由同一存储设备掌握的私人密钥资料。
3.一个包括用来保护软件的保护装置的计算机系统,所述保护装置包括至少四项其中至少有一个第一询问装置、一个第二询问装置、一第一应答装置及一第二应答装置,所述第一询问装置和软件的受保护项目有关,所述第一应答装置能使用非对称密钥对的私人密钥资料,且能和所述第一询问装置通信,所述第二应答装置能访问机密密钥资料,且能与所述第二装置通信,其中a)所述第一询问装置不能使用所述第一应答装置访问的所述私人密钥资料,b)所述一个询问装置认证该第一应答装置的非对称证明有效,即不需该第一应答装置公开其私人密钥资料就可使该第一应答装置能访问该私人密钥资料,c)所述第二询问装置认证该第二应答装置的证明有效,即该第二应答装置能访问该机密密钥资料,d)所述第一询问装置或所述第二询问装置禁止使用所述软件或禁止以不受限制的方式使用所述软件,除非所述认证中的一个有效或两个都有效。
4.一个包括用来输入受保护程序及用来嵌入至少三个项目的计算机系统,其中至少有一个询问装置、一第一应答装置及一第二应答装置,所述询问装置与软件的受保护项目相关,所述第一应答装置能访问非对称密钥对的私人密钥资料,且能和所述询问装置通信,所述第二应答装置能和所述询问装置通信,其中a)该询问装置不能访问由该第一应答装置访问的所述私人密钥资料,b)所述询问装置包括一些装置,这些装置用来分别认证所述第一应答装置的非对称证明和所述第二应答装置的对称证明有效,而不需要该第一应答装置公开其私人密钥资料,c)该询问装置包括一个装置,这些装置用来禁止受保护程序的运行,除非认证中的一个有效或两个都有效。
5.一个包括用来用来输入受保护程序及嵌入至少四个项目的装置的计算机系统,其特征在于包括至少一第一询问装置、一个第二询问装置、一第一应答装置和一第二应答装置,所述第一询问装置和软件的受保护条目有关,所述第一应答装置能访问非对称密钥对的私人密钥资料,并能与所述第一询问装置通信,所述第二应答装置能访问可机密密钥资料,并能与所述第二询问装置通信,其中,a)所述第一询问装置能访问由该第一应答装置访问的所述私人密钥资料,b)所述第一询问装置认证所述第一应答装置的非对称证明有效,即该第一应答装置能访问该私人密钥资料,而不需要所述第一应答装置公开所述私人密钥资料,c)所述第二询问装置认证该第二应答装置的证明有效,即该第二应答装置能访问该机密密钥资料,d)所述第一询问装置或所述第二询问装置禁止使用所述软件或禁止以不受限制的方式使用所述软件,除非所述认证中的一个有效或两个都有效。
6.根据权利要求3或5的一个计算机系统,其特征在于所述机密密钥资料是一个第二非对称密钥对的私人密钥资料。
7.根据权利要求3或5的一个计算机系统,其特征在于第二应答装置的所述机密密钥资料是非对称密钥对的密钥资料。
8.根据权利要求1至7中之一的一个计算机系统,其特征在于掌握一部分或全部所述私人密钥资料的一存储系统通过一抵制选择明文攻击的协议而相互影响。
9.根据权利要求1至8之一的一种计算机系统,其特征在于掌握一部分或全部所述私人密钥资料的一存储系统通过一抵制自适应选择明文攻击的协议而相互影响。
10.根据权利要求1至9之一的计算机系统,-其特征在于在所述第一应答装置中第一私人密钥资料是被访问过的,-其特征在于在所述第二应答装置中第一私人密钥资料是被访问过的。
11.根据权利要求1至10中之一的计算机系统,-其特征在于同一私人密钥资料由两个应答装置访问过。
12.根据权利要求1至10中之一的计算机系统,-其特征在于在至少两个应答装置中许可服务器的私人密钥分别被访问过。
13.根据权利要求1至12中之一的计算机系统,其特征在于使用了以下类型证明中的一个-数字签字,-非对称机密性,-概率证明。
14.根据权利要求13的一个计算机系统,其特征在于所述非对称机密性方案是Blum-Goldwasser方案。
15.根据权利要求13的一个计算机系统,其特征在于所述概率证明方案是零知识证明方案。
16.根据权利要求13的计算机系统,其特征在于所述概率证明方案是证据隐藏证明方案。
17.根据权利要求1至16之一的计算机系统,其特征在于-所述第一询问装置或所述第二询问装置包括用来产生一随机询问的装置,且-所述信息包括所述随机询问。
18.根据权利要求17的计算机系统,其特征在于用来产生随机询问的所述装置包括对设备存取重复进行定时应答而产生一随机询问的装置。
19.根据权利要求18的计算机系统,其特征在于所述用来产生一随机询问的装置包括以一种方式将新线索分叉的装置,该方式利用所述操作系统调度程序中的不确定性,以便将附加随机度引入该随机询问。
20.根据权利要求18的计算机系统,其特征在于所述用来产生一随机询问的装置包括一执行统计测试的装置及另一些装置,所述执行统计测试的装置确定由每次磁盘访问得到的随机比特的数目,所述另一些装置用来引发设备反复存取直到获得预定的随机比特数目。
21.根据权利要求1到20之一的一种计算机系统,其特征在于所述询问装置被嵌入所述受保护项目中。
22.根据权利要求1到21之一的计算机系统,其特征在于所述询问装置为认证-证明而使用所述第一公共密钥资料。
23.根据权利要求1到22之一的计算机系统,其特征在于所述系统包括一用来掌握所述第一公共密钥资料的密钥文件。
24.根据权利要求23的计算机系统,其特征在于掌握在所述密钥文件中的所述第一公共密钥资料是安全加密的,从而若不更换所述询问装置,不可能替换所述密钥文件的任何一部分,包括所述第一公共密钥资料。
25.根据权利要求24的计算机系统,其特征在于该密钥文件包括确定软件所述受保护项目支持的用户的信息。
26.根据权利要求24的计算机系统,其特征在于该密钥文件包括在其中保留的用以假扮为第一公共密钥资料的假比特。
27.根据权利要求24的计算机系统,其特征在于该密钥文件或该询问装置及/或软件的所述受保护项目包括与软件的所述受保护项目服务的选择开启有关。
28.根据权利要求27的计算机系统,其特征在于决定是否选择地开启一特殊的设备特别依赖于所述询问装置是否认证所述应答装置有效。
29.根据权利要求1至28之一的一种计算机系统,包括软件的许多受保护项目,每个都有自己的询问装置、单应答装置,这些装置在所有所述受保护项目间是共享的。
30.根据权利要求1至29的一种计算机系统,包括至少一个根证明,用来认证子证明有效,所述证明包括至少一个用于应答装置的公共密钥资料。
31.根据权利要求30的一种计算机系统,包括至少两个根证明,每个分别用于相应的应答装置。
32.根据权利要求1至31之一的一种计算机系统,用于拷贝防护软件及/或许可软件。
33.一种对许多用户分配软件的方法,其特征在于每个用户都有一台如权利要求1的计算机系统,且其中每个用户接收所述受保护程序和所述询问装置的同一拷贝。
34.一种保护软件项目的方法,包括一种保护软件的保护装置,所述保护装置包括至少三项,其中至少有一询问装置、一个第一应答装置及一个第二应答装置,所述询问装置与软件的受保护项目有关,所述第一应答装置能访问非对称密钥对的私人密钥资料并能与所述询问装置通信,所述第二应答装置能与所述询问装置通信,其中a)该询问装置不能访问由该第一应答装置及该第二应答装置分别访问的私人密钥资料,b)所述询问装置不需所述第一应答装置公开其私人密钥资料,就可分别地认证该第一应答装置的证明及第二应答装置的证明有效,c)所述询问装置禁止受保护程序运行,除非所述认证中的一个有效或两个都有效。
35.如权利要求34的一种方法,其特征在于所述第一应答装置和所述第二应答装置访问由同一存储设备掌握的私人密钥资料。
36.一种保护软件项目的方法,包括一个保护软件的保护装置,该保护装置包括至少四个项目,其中至少有一个第一询问装置、一个第二询问装置、一第一应答装置及一第二应答装置,所述第一询问装置和软件的受保护项目有关,所述第一应答装置能使用非对称密钥对的私人密钥资料,且能和所述第一询问装置通信,所述第二应答装置能访问机密密钥资料,并能与所述第二询问装置通信,其中a)所述第一询问装置不能使用所述第一应答装置访问的所述私人密钥资料,b)所述一个询问装置认证所述第一应答装置的非对称证明有效,即不需所述第一应答装置公开其私人密钥资料就可使该第一应答装置能使用该私人密钥资料,c)所述第二询问装置认证该第二应答装置的证明有效,即该第二应答装置能访问该机密密钥资料,d)所述第一询问装置或所述第二询问装置禁止使用所述软件或禁止以不受限制的方式使用所述软件,除非所述认证中的一个有效或两个都有效。
37.根据权利要求34至36中之一的方法,其特征在于所述机密密钥资料是第二非对称密钥对的私人密钥资料。
38.根据权利要求34至36中之一的方法,其特征在于所述机密密钥资料是一对称密钥对的密钥资料。
39.根据权利要求34至38中之一的方法,其特征在于掌握一部分或全部私人密钥资料的一个存储系统通过一抵制选择明文攻击的协议相互影响。
40.根据权利要求34到39中之一的方法,其特征在于掌握一部分或全部私人密钥资料的一个存储系统通过一抵制自适应选择明文攻击的协议相互影响。
41.根据权利要求34到40中之一的一种方法,其特征在于-第一应答装置中,访问的是一第一私人密钥资料,且-第二应答装置中,访问的是一第二私人密钥资料。
42.根据权利要求34到41中之一的一种方法,其特征在于至少第二询问装置不能使用并不知道存储在至少两个应答装置的任意一个中的所述私人密钥资料。
43.根据权利要求34至42中之一的一种方法,其特征在于至少在两个应答装置中,许可服务器的私人密钥是被分别安全存储的。
44.根据权利要求34至43中之一的一种方法,其特征在于至少使用以下方法中的一种标记信息-数字签字,-非对称保密性,-概率证明。
45.根据权利要求44的一种方法,其特征在于所述非对称保密方案是Blum-Goldwasser方案。
46.根据权利要求44的一种方法,其特征在于概率证明方案为零知识证明方案。
47.根据权利要求44的一种方法,其特征在于概率证明方案为隐藏证据证明方案。
48.根据权利要求34至47中之一的一种方法,其特征在于-所述询问装置包括产生一随机询问的装置,且-所述信息包括所述随机询问。
49.根据权利要求48的一种方法,其特征在于-所述用来产生一随机询问的装置包括由重复地对磁盘访问进行定时应答而产生一随机询问的装置。
50.根据权利要求49的一种方法,其特征在于用来产生一随机询问的所述装置包括用作以一种方式对新线索索进行分叉的装置,这种方式通过利用所述操作系统调度程序中的不可预见性向所述随机询问引入附加的随机度。
51.根据权利要求49所述的一种方法,其特征在于用来产生一随机询问的装置包括一些执行统计测试的装置及另一些装置,所述执行统计测试的装置是用来确定由每次所述磁盘访问而得到随机比特的数目,所述另一些装置用来引发磁盘反复存取直到得到了预定数目的随机比特。
52.根据权利要求34至51的一种方法,其特征在于所述询问装置是嵌入软件的所述受保护条目中的。
53.根据权利要求34至52的一种方法,其特征在于所述询问装置使用第一公共密钥资料对所述信息加密。
54.根据权利要求34至53的一种方法,其特征在于所述系统包括一个掌握所述第一公共密钥资料的密钥文件。
55.根据权利要求54的一种方法,其特征在于由所述密钥文件掌握的所述第一公共密钥资料在加密上是安全的,从而若不更换所述询问装置,则不可能更换所述密钥文件中的任何一部分,包括所述第一公共密钥资料。
56.根据权利要求55的一种方法,其特征在于所述密钥文件包括确定软件的所述受保护项目支持的用户的信息。
57.根据权利要求55的一种方法,其特征在于所述密钥文件包括假扮为其中掌握的所述第一公共密钥资料的假比特。
58.根据权利要求55的一种方法,其特征在于所述密钥文件包括与软件受保护项目的服务的选择开启相关的信息。
59.根据权利要求34至58之一的一种方法,包括至少两个根证明,其中一个分别对应每个应答装置,用来证明子证明有效,所述证明包括至少一个公共密钥资料,该部件是分别对应每个应答装置。
60.根据权利要求34至59之一的一种方法,用在拷贝防护软件和/或许可软件。
全文摘要
一种保护软件的一个项目的方法,其中至少一个第一询问装置与所述软件的受保护项目有关,且至少一第一应答装置访问一私人密钥资料。至少一第三装置(或是询问装置或是应答装置也可存在)。所述第一询问装置不能使用所述私人密钥资料。所述第一应答装置向所述第一询问装置证明该第一应答装置能使用所述私人密钥资料。所述第一询问装置使用相应于所述第一应答装置的私人密钥资料的所述公共密钥资料证明所述证明有效。
文档编号G06F21/10GK1207530SQ98115420
公开日1999年2月10日 申请日期1998年5月27日 优先权日1997年5月28日
发明者G·本森 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1