CN1155866C - 防止在计算机中未经批准地使用软件的方法和设备 - Google Patents

防止在计算机中未经批准地使用软件的方法和设备 Download PDF

Info

Publication number
CN1155866C
CN1155866C CNB96196247XA CN96196247A CN1155866C CN 1155866 C CN1155866 C CN 1155866C CN B96196247X A CNB96196247X A CN B96196247XA CN 96196247 A CN96196247 A CN 96196247A CN 1155866 C CN1155866 C CN 1155866C
Authority
CN
China
Prior art keywords
software
algorithm
key
code
external component
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.)
Expired - Fee Related
Application number
CNB96196247XA
Other languages
English (en)
Other versions
CN1192814A (zh
Inventor
�Ͷ��¡�Լ��ɭ
西格德·西格比约恩森
¡
马格纳·艾德·哈格伦德
�ס�A���������
弗拉迪米·A·奥利查克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SOSPITAAS
Original Assignee
SOSPITAAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SOSPITAAS filed Critical SOSPITAAS
Publication of CN1192814A publication Critical patent/CN1192814A/zh
Application granted granted Critical
Publication of CN1155866C publication Critical patent/CN1155866C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Abstract

一种对软件尤其是免费分发的应用软件在未得到版权拥有者许可下防止使用的办法。通过使用不同于解密中使用的密钥(k2)的密钥(k1)加密该软件,当把解密密钥保持为对用户是保密的时,得到更好地对未经批准的使用的防止。通过对使用该软件的计算机和存储解密密钥的外部部件之间的通信执行附加的编码-去编码得到进一步提高的安全性。此外,该外部部件设置成向主机回送它对从主机接收的数据的处理结果,然后把该结果用在相应程序的进一步执行中。

Description

防止在计算机中未经批准地使用软件的方法和设备
技术领域
本发明涉及防止软件(尤其是免费分发的应用软件)未经版权拥有者同意下的使用,本发明尤其涉及一种预防在计算机上未经批准地使用软件的方法;一种准备软件以便仅当得到相应的授权后在计算机上使用的方法和设备;以及一种在计算机上允许批准使用按照本发明的一个方面准备的软件的方法和设备。
对于软件,尤其是对于适用于在个人计算机上运行的软件的非法复制对软件销售商是一个广泛的问题,每年耗费他们大量费用。例如通过为安装或者运行一个专用计算机程序或程序包设置口令的常规防止未经批准使用软件的方法不能提供足够的保护。因此,一种有可能仅当真正存在着版权拥有者的许可才使用某计算机程序或者计算机程序包的办法是非常重要的。
背景技术
已经进行了数种尝试来建立在其中仅靠简单地键入所需的口令并不足以进入程序的办法。例如,为了有可能使用给定的程序已提出需要把专用硬件部件和计算机连接起来的系统。该部件例如可采取盲插头(blind plug)(还称为“dongle”)的形式,其和计算机的输入-输出端子中的一个直接连接,并且在内部存储器中存储着的固定表、识别号等,当出于本文的目的包含在所考虑的应用程序中的一个程控辅助例程提出请求时从该内部存储器读出信息。该部件也可采用读卡机等的形式,以在其中插入卡,卡上存储的内容原则上类似于上面的盲插头中的内容。检验过程通常涉及使程序的辅助例程例如直接对比程序标识以及存储表中存在的相应信息条目。
在已公开的DE专利申请44 19 115中说明这种办法的一个例子,其中读出存储在一个芯片卡中的内容,并且若存在所期望的内容,则把该事实看作是使用该程序的足够识别证明,可以在安装一个程序或者在其使用期间进行检验。已公开的DE专利申请42 39 865公开一种类似的系统,其附加地提供一种记录对软件进行安装的次数的办法,从而有可能限制对它的安装次数。
在软件中必须包括该辅助例程造成所有这样的已知部件的主要缺点。通过简单地去掉这样的例程软件会正常地运行,并且失掉对未经批准使用的防止。而且,在计算机的处理器和该部件的存储器或者卡之间的数据交换期间,有可能观察到信息,并且因为每次使用该程序该信息交换的过程是相同的,还有可能揭露存储在该外部存储器内的内容。即使以某种方法加密该存储器的内容,在通信接口上的这种重复有可能例如模拟对应的硬件部件,或者通过相对适度的计算能力“破译代码”。
在已公开的GB专利申请2 163 577中所说明的办法里,通过采取某些密码技术以及通过把其自身的几个存储装置以及处理器容纳在防篡改外壳内防止上述类型的硬件部件的一些缺陷。在外壳里的处理器利用存储在外壳内的译码密钥以及也存储在外壳内的指令由它本身对从和该外壳连接的主计算机所传送的加密应用程序或程序模块进行解密并执行。关于密码技术,根据GB专利申请2 163 577号的办法利用所谓的DES算法(DES-数据加密标准,美国标准局,1977)对应用软件加密,并且采用对应的逆DES算法对同一软件解密,从而对加密和解密使用一个相同的密钥。这里,DES标准是对称的,安全性仅在于密钥本身。因此,为了不失去其安全性,在该GB专利申请中还提出DES密钥自身的加密。出于这个目的,它采用所谓的RSA算法(RSA-Rivest,shamir,Adleman),该算法具有两个不同的密钥,即一个用于加密和另一个用于解密,并且从一个密钥推出另一个密钥在实际上是不可能的。因此,RSA密码系统是一个不对称的双密钥系统(也称为公用密钥/专用密钥密码系统)。并且在根据GB专利申请2 163 577号的办法的情况中,一个本身可知的密钥(公用密钥)仅用于加密DES密钥,而另一个不让用户知道的密钥(专用密钥或保密密钥)用于解密DES密钥。后一个密钥,即保密密钥,存储在防窜改外壳中的一个存储器里并且当需要解密加密的DES密钥时由该外壳中的处理器取出,每个保密密钥各属于一个加密的应用程序,用于可执行该应用程序的目的。
但是,在根据GB专利申请2 163 577的办法中,仍有可能监视该外部部件和主计算机之间的通信,并且每次执行相同的加密程序模块时的通信过程是相同的。因为全部的程序模块是加密的并且这些模块构成软件的相当大的部分,在通信接口上这种可预计的重复有助于识别有关程序模块,并且然后可容易地和软件的其余部分分离,以便出于对该加密程序模块解密一次的和再也不必解密的目的例如以脱机方式进行处理。此外,对全部应用程序模块的外部解密、存储和执行会需要难以接受的长的时间阶段,除非外壳中的电路具有足够高的数据处理能力并且这些程序模块引起的与主机的通信非常快。
本发明的一个目的是对软件的供应商和/或所有者提供一种可改进防止其产品的未许可使用的可能性的密码办法,并且以软件可以不受限制地复制和散发但除非存在必要的许可才可使用的方式从而不再具有现有技术的缺点。
本发明的另一个目的是提供一种通用性质的密码办法,其不仅可适应单个的软件模块而且可适应整个程序包,其中可按不同的等级,例如程序包的选定部分,指定使用许可。
从下面参照附图对本发明的最佳实施方式的例子的说明这些和其他目的将更为清楚。
发明内容
本发明的第一个方面涉及一种在计算机中防止未经许可使用软件的方法,该方法包括步骤:
-按照第一算法至少加密所述软件的一部分,以及
-按照第二算法解密该软件的加密部分,该第二算法和一个密钥存储在适应于和所述计算机连接的一个外部部件里,在对该软件的加密部分解密时使用该密钥,该外部部件包括至少一个计算机可读的存储媒体和一个它自己的处理器,
该方法的特征在于,按照第二算法的所述解密是通过使用存储在所述外部部件的第二密钥进行的,第二密钥不同于按照第一算法对软件的所述部分执行加密中所使用的第一密钥。
本发明的另一个方面涉及一种准备软件的方法,尤其是准备打算免费分发的软件的方法,以便仅当相应授权下才可在计算机上使用,该方法包括按照第一算法加密所述软件的至少一部分并当在所述计算机中使用时对其按照第二算法解密,该方法特征在于在按照第一算法的所述加密中所使用的一个密钥是第一密钥,第一密钥不同于当按照第二算法执行对按照第一算法和第一密钥加密的软件部分的解密中所使用的第二密钥。
在该第二方面中,本发明还涉及一种用于准备,仅当相应授权下才能在计算机上使用的软件、尤其是打算免费分发的软件的设备,该设备包括:
-实现按照第一算法和第一密钥对所述软件的至少一部分加密的密码装置,以及
-一个适应于和所述计算机连接的外部部件,该外部部件至少包括一个自身的处理器和一个用于存储第二算法和一个密钥的计算机可读的存储媒体并且用于按照所述第二算法和所述密钥对软件的加密部件执行解密,
该设备的特征在于,它还包括发生器装置,以提供打算在按照第二算法的所述解密中使用的所述第二算法和第二密钥,第二密钥不同于在按照第一算法执行软件的所述部件的加密中由所述密码装置使用的第一密钥。
本发明的第三方面涉及一种在计算机中使软件、尤其是免费分发的软件能授权使用的方法,软件是按本发明的第二方面的方式准备的,该方法包括把一个外部部件和所述计算机连接,该外部部件至少包括一个计算机可读的存储媒体和一个它自身的处理器,并且在所述外部部件中存储在对软件的加密部分解密中所使用的第二算法和一个密钥。根据本发明该方法的特征在于,当计算机对按照第一算法加密的软件部分执行中遇到一个调用序列或者一条类似的指令时会造成转移到所述附加目标码的相应进入点,该计算机利用该目标码建立一条对该外部部件的通信信道,通过该信道该软件的加密部分按第一传送对话传送到该外部部件,以由该部件自身的处理器按照都存储在所述外部部件中的第二算法和第二密钥进行解密,该第二密钥不同于在按照第一算法对该软件的所述部分执行加密中所使用的第一密钥,其特征还在于接着在该外部部件中处理解密后的软件部分并且经过该通信信道以相反方向按第二传送对话传送结果以供该计算机中的进一步使用。
本发明的该第三方面中还涉及一种使通过由根据本发明的第二方面的设备准备过的软件,尤其是免费分发的软件,能授权使用的设备,该设备包括一个适应于充当一个外部部件的主计算机的计算机,该外部部件至少包括一个其自身的处理器和一个计算机可读的存储媒体,该外部部件预定和该主机连接以进行通信。根据本发明该设备的特征在于,所述外部部件包括适应于按照所述发生器装置产生的所述第二算法和所述第二密钥执行解密的解密装置,该第二密钥不同于所述密码装置在按照第一算法对该软件的所述部分执行加密时所使用的第一密钥。
通过根据本发明的方法和设备,得到一种如果不存在版权拥有者的许可特别难以使用例如计算机程序或计算机程序包形式的软件。如从下述说明以及本专利权利要求所显示的,根据本发明对非经批准的使用的阻止可以做成是更为可靠的,因此,如果没有必要的授权想要使用按照本发明的各种特性处理过的软件几乎是不可能的。
附图说明
下面的说明参照下述附图。
图1表示根据本发明的最佳硬件配置,
图2表示简化的根据本发明的总软件图,
图3示意说明如何在不加密下生成普通的命令或执行文件(.EXE文件),
图4和图5示意说明根据本发明如何可在源代码层上进行加密,
图6示意说明将软件分别划分到磁存储盘和随机存取存储器(RAM)上,
图7示意说明在计算机上使用受保护的软件,
图8表示图4和图5中所示类型的加密处理的一个例子,
图9示意说明在计算机上使用受保护的软件,
图10示意说明一个包含着访问检查或授权的应用区,以及
图11是一个流程图,示意说明包括着根据本发明的最佳实施方式的加密-解密以及加扰(scrambling)-解扰的处理过程。
具体实施方式
首先参照图1,图中说明本发明的最佳硬件配置,图中表示一个根据本发明的以工作站或个人计算机(PC)为形式的充当主机的计算机。该图中,一个根据本发明的外部部件表示成以读卡机或者处理器的形式,尤其是用于智能卡的带有商业上可买到的集成微处理器如CCA12103类型的读卡机,该部件包含在所示的计算机内或者设置为一个通过串行或并行连接和该计算机连接的分离设备部件。
图1还示出现在可通过和计算机建立连接的不同类型的数据网络如广域网(WAN)、局域网以及尤其是国际互联网分发安全的软件。此外,实际上可以在软盘和/或CD-ROM(只读压缩光盘)上分发软件。在任何情况下,可以不受限制地复制和安装该软件。
因为该软件是得到免受非经批准的使用的保护的,因此不需要任何类型的如在其它情况下的软件复制保护。这里,授权是固定在智能卡里的,除了自己把必要的解密算法和密钥设置在卡上的供应商之外任何人都不能得到该授权。因此,对某计算机程序的使用许可是在卡上得到的,而不是在各个程序中或者软件的其它部分上得到的。
图2表示一个简化的总图,可以看出根据本发明的办法包括:
1.防止非经批准使用的软件(但该保护不涉及对它的复制),
2.含有用于对所涉及的软件进行解密的算法和密钥的智能卡(或类似物),以及
3.用于在受保护的软件(1)和智能卡(2)之间通信的专用软件(即,权利要求书中所规定的附加目标码)。
该保护是通过在软件的不同位置处插入对智能卡或者对设置在卡上的专用软件的程序调用,以便得到为正确地继续执行受保护的程序所需的信息来提供的。例如,该信息可以是程序执行时所使用的某些参数,并且该信息是由希望保护他们的软件的人确定的。因为它们对于软件的正常工作是必需的,不能取消这样的程序调用。
被保护程序和智能卡的交互作用是由加密原始程序时进入到该程序的数据文件库的专用软件(目标码)控制的。该专用软件也可为计算机和智能卡之间的通信提供加扰。
图3表示不加密下如何生成普通的命令或执行文件(.EXE文件);而图4和5各以自己方式表示根据本发明如何在源码级上实现加密。
图6表示软件本身放在磁存储盘上,而该专用程序(目标码或数据文件库)提供到计算机的随机存取存储器(RAM)中。
图7和9表示当在计算机上使用该受保护的软件时所发生的处理。
图8表示一个图4和5中所示类型的加密处理的一个例子。这里,假定源码是在高级程度设计语言例如Pascal、C、Modula等下出现的。源码是要被加密的,从而防止所谓的未经批准的使用的。在源码中选出一些参数以通过加密函数g加密。例如,未保护的源码中的一个命令中出现的表达式x:=y+10可以表示为:
C:=decrypt(g(10)+t),
x:=y+(C-T),
其中,g(10)是一个加密的参数,以及
T是一个变量,在本情况下它的随机值从智能卡中取出。
为了得到x的正确值,被保护的程序必须“达到”C值,该值必须等于10+T。解密程序位于该“专用软件”(附加的目标码)之中,后者是被保护软件的一部分(见图5)。该专用软件还包括加扰和解扰函数,在本文中这些函数用f和f′表示,该专用软件还包括用于和智能卡(见图7)通信的程序。在和智能卡通信时,函数f和f′使用从智能卡中取出的密钥,智能卡本身包括:
-数字发生器,用于产生位于被保护软件中的变量T的随机值,
-用于解密函数g-1的安全密钥,
-用于解密函数g-1的算法,以及
-用于函数f和f′的一个或多个密钥。
请注意重要的是加密函数g和解密函数g-1代表一个不对称的公用密钥密码系统。这意味着加密函数g使用一个可以知道的公用密钥,但是,该密钥并不足以得到解密函数g-1(既不能得到其算法也不能得到其密钥)。这样,解密函数g-1的算法和密钥是放在决不从中传送的智能卡上的。
要求函数f、f-1、g、g-1是可交换的(即,它们可不改变值地互换)。这意味着它们必须具有下述性质:
f′(g-1(f(g(x))))=x
一旦在计算机里使用一个以这种方式保护的程序时,按通常那样地启动该程序的执行(图7)。通过和智能卡的通信,变量T的值和用于函数f或f′的密钥进入该软件。接着按通常地继续程序的执行。当执行到一个加密参数(该所示例子中的g(10))时,值(g(10)+T)被送到该专用软件,专用软件进行向智能卡传送f(g(10)+T-T)。在智能卡中计算g-1((10)+T-T)的值,并将该值回送给专用软件。通过专用软件接着计算f′(g-1((10)+T)-T))),这等于x和x+T,并把该结果作为参数C提供给被保护的程序供在该程序中使用。
具有根据本发明的这种类型的加密-解密办法,实现了下述优点和可能性:
-通过使用智能卡得到的巨大灵活性,
-可由软件生产商雇用的进口商或代理商提供智能卡(即用户)的许可。从而一个智能卡可以含有在具有相同授权格式和算法的不同软件包的几个等级上的许可证或者准许。
-第一级加密采用非对称的双密钥加密办法(公用密钥/专用密钥密码系统),例如RSA密码系统,从而公用密钥只能由软件生产商得到,而专用密钥是一个保密密钥,它是由智能卡的制造商根据软件生产商给出的技术要求输入到智能卡的只读存储器(ROM)里的。对于每个程序包专用密钥可以是不同的。
-一个非对称加密的授权密钥当开始运行受保护的软件时被传送到智能卡中并在智能卡中通过0号专用密钥解密来启动智能卡中的授权处理。
-在源码级上的加密,它使本办法和操作系统无关。通过只加密例如命令文件的文件的小部分或者文件的片段,使得在对这些部分以种种方式施以破坏下难以辨别出正被加密的那部分软件。并且,容易把解密算法和密钥输入到智能卡上。
-利用第二级加密使得主机和智能卡之间的通信变成通过对它的记录难以从通信中跟踪出有意义的内容。所使用的算法位于被保护的软件以及智能卡中,并且加密密钥和解密密钥都位于智能卡中,即用户是不知道的。对于不同类型的软件,加密算法和密钥可以是不同的。
图10用于表明根据本发明的办法的应用范围还可扩展到包括例如访问检验或授权以及其它的可能性。在本发明的该实施方式中,被保护的软件可以带有一个利用所谓的公用密钥加密的授权密钥和一个用于所涉及的软件包的标识号。从而,例如智能卡的外部部件会含有最好被屏蔽编程的用于解密授权密钥的解密算法和0号专用密钥(在ROM中),以及包括可以按如下的表构造的访问表或授权表。
  PID(程序识别号)   AcL(访问等级)   PK(专用密钥)
    PID(1)     AcL(1)     PK(1)
    PID(2)     AcL(2)     PK(1)
    PID(3)     AcL(3)     PK(3)
    ……     ……     ……
    PID(n)     AcL(n)     PK(n)
在该表中,PID代表软件的识别号,从而例如不同的程序赋有不一样的识别号,识别号还可以包含每个软件产品的版本号等。AcL代表访问等级或状态,例如:
-二个不同的等级,即允许访问和不允许访问。
-运行每个程序的有限次数。
-使用程序的时间限制,例如许可期满日期。
-仅访问该程序的缩短版本,例如所谓的演示版本。
该表的访问等级栏AcL中的项目例如是由该软件产品的进口商或代理商负责的。
在专用密钥PK栏中,软件生产商规定在对加密片段的解密中根据软件的识别号PID采用的保密密钥。在智能卡中这些保密密钥是屏蔽编程的并且其他人是不能得到的。
图11是一个流程图,示意说明根据本发明的最佳实施方式的主要的完整处理过程,步骤是:
-对源码进行加密(g1,k1),
-对加密数据进行加扰(g3,k3),
-把加扰的加密数据传送到外部部件并对其解扰(g4,k4),
-对所传送的并解扰的数据进行解密(g2,k2),
-处理解密数据,对结果进行加扰(g5,k5),
-向主机传送加扰结果,并对其解扰(g6,k6),以及
-输出解密结果供进一步使用。
在所示的本发明的实施方式的各个例子中,智能卡构成后面的权利要求书中指出的外部部件的最佳实现。这是非常简单的,因为智能卡技术被认为是算法、密钥、安全工作区的最佳“防窜改”保护,根据本文附属的权利要求书必须把它们存储在外部部件或分离的物件中。世界上这种卡的制造商是少量的并且大量的这种卡(尤其是以支付交易卡的形式的卡)是广泛使用的,有力地构成这样的事实,即对于那些具有不道德意图的人不能容易地得到伪造这种智能卡所需的知识。但是,这并不阻碍可能去发展适合于本发明的目的的同样的或更好的新技术。从而,本发明的权利要求书意味着还覆盖着至少能提供和当前优选的智能卡相同安全度的在权利要求书中指出的那些未来的外部部件和分离物件。

Claims (58)

1.一种防止在计算机中未经批准地使用软件的方法,该方法包括:
-按照第一算法加密所述软件的至少一部分,以及
-按照第二算法解密该软件的加密部分,在解密该软件的加密部分中所使用的第二算法以及密钥存储在适应于和所述计算机连接的一个外部部件中,该外部部件包括至少一个计算机可读的存储装置和一个该部件自己的处理器,
其特征在于按照第二算法的所述解密是通过使用存储在所述外部部件中的第二密钥执行的,第二密钥不同于按照第一算法执行对该软件的所述部分加密中所使用的第一密钥。
2.按照权利要求1的方法,其特征在于,按照第一算法的对该软件的所述部分的加密是在生成可执行程序的处理步骤之前对相应软件的源码执行的,并且同时相对于和该外部部件的通信在可执行程序的数据文件库中增添目标码,其中所述生成可执行程序的处理步骤包括编译和/或链接。
3.按照权利要求1或2的方法,其特征在于,按照第二算法对该软件的加密部分执行所述解密是当计算机在执行所述软件时遇到造成到所述增添的目标码的一个跳转或功能调用的指令时发生的,从而通过利用该增添的目标码建立该计算机和该外部部件之间的一条通信信道,通过该通信信道在第一传送对话中把该软件的加密部分传送到该外部部件以由该部件自己的处理器解密,然后该解密后的软件部分在该外部部件中处理,并且处理结果在第二传送对话中经该通信信道反向地传送以供在该计算机中的进一步使用;其中所述指令包括调用序列。
4.按照权利要求3的方法,其特征在于,该方法还包括:
-在所述第一传送对话之前使按照第一算法加密的所述软件部分按照第三算法和第三密钥进行加扰的步骤,所述第三密钥基于一个数字,所述数字针对各传送对话随机选择并由所述外部部件生成,以及
-使按照第一算法加密、按照所述第三算法加扰并且在所述第一传送对话中传送到该外部部件的所述软件部分在该外部部件中按照第四算法和第四密钥进行解扰的步骤,所述第四密钥基于用于所述第三密钥的所述随机选择的数字,并且所述第四算法是所述第三算法的逆算法。
5.按照权利要求3的方法,其特征在于,该方法还包括:
-在所述第二传送对话之前,使在该外部部件中基于按照所述第二算法解密后的软件部分所生成的所述结果按照第五算法和第五密钥进行加扰的步骤,所述第五密钥基于一个数字,所述数字针对各传送对话随机选择并由所述外部部件提供;以及
-使在该外部部件中基于按照所述第二算法解密的软件部分产生、按照所述第五算法加扰并且在所述第二传送对话中传送到该计算机的结果在该计算机中按照第六算法和第六密钥进行解扰的步骤,所述第六密钥基于用于所述第五密钥的所述随机选择的数字,并且所述第六算法是所述第五算法的逆算法。
6.按照权利要求4或5的方法,其特征在于,用于第三和第四密钥的所述随机选择的数字和用于第五和第六密钥的所述随机选择的数字是相同的数字。
7.按照权利要求1的方法,其特征在于,所述第一和第二算法以及所述第一和第二密钥是根据非对称、双密钥密码办法,使用公用密钥/专用密钥密码系统确定的,第一密钥是已知的密钥,即公用密钥,而第二密钥是该密码办法的保密密钥,即专用密钥,或者是根据对称单密钥密码办法确定的,其中密钥(K1,K2)为密码办法的保密密钥。
8.根据权利要求7所述的方法,其中所述非对称、双密钥密码办法是RSA密码系统,所述对称单密钥密码办法是DES或AES。
9.按照权利要求1的方法,其特征在于,通过对计算机使用相应软件完全是决定性的来选择要按照所述第一算法加密的该软件的所述部分,并且包括一个命令或执行文件中的一条或多条指令。
10.一种在计算机上使软件的授权利用成为可能的方法,所述软件按如下方式准备:
按照一个第一算法加密所述软件的至少一个部分,当在所述计算机中使用时按照第二算法解密,其中按照第一算法的所述加密中所使用的密钥是第一密钥,所述第一密钥不同于按照第二算法对按照第一算法和第一密钥加密的软件部分执行解密时使用的第二密钥,
其中按照第一算法的对该软件的所述部分的所述加密是在生成可执行程序的处理步骤之前对相应软件的源码本身执行的,并且同时相对于和一个适应于和所述计算机连接的外部部件的通信在可执行程序的数据文件库中增添目标码,
并且其中在生成可执行程序的处理步骤中插入在计算机中执行该可执行程序中可引起到所述增添的目标码的跳转或功能调用的指令,该增添的目标码用于在该计算机和一个在其中发生按照第二算法的所述解密的外部部件之间建立一条通信信道;
该方法包括把一个外部部件连接到所述计算机,所述外部部件至少包括一个计算机可读的存储装置以及其自身的处理器,并且解密该软件的加密部分中所使用的第二算法和一个密钥存储在所述外部部件里,该方法特征在于,
当该计算机在执行按照第一算法加密的该软件部分中遇到产生对所述增添的目标码的跳转或功能调用的指令时,该计算机利用该目标码建立和该外部部件的通信信道,通过该信道在第一传送对话中把该软件的加密部分传送到该外部部件,以便按照都存储在所述外部部件中的第二算法和第二密钥由该部件自己的处理器解密,该第二密钥不同于按照第一算法执行对所述软件部分的加密中所使用的第一密钥,并且接着在该外部部件中处理解密后的软件,并在第二传送对话中通过该通信信道按相反方向传送结果以供在计算机中进一步使用。
11.按照权利要求10所述的方法,其中所述软件是旨在自由分发的软件,所述产生可执行文件的处理步骤包括编译和/或链接,并且所述指令包括调用序列。
12.按照权利要求10或11的方法,其中准备软件的过程还包括在按照第一算法加密的所述软件部分中插入第三密钥的步骤,所述第三密钥供在向所述外部部件传送前用于对所述软件部分进行加扰的第三算法使用,该方法的特征在于:
-在与相连接的外部部件的所述第一传送对话之前,使按照第一算法加密的软件部分按照所述第三算法和所述第三密钥加扰,第三密钥基于一个数字,所述数字针对各传送对话随机选择并由外部单元提供,以及
-使按照第一算法加密、按照所述第三算法加扰并且在所述第一传送对话中传送到该外部部件的所述软件部分在该外部部件中按照第四算法和第四密钥进行解扰,所述第四密钥基于用于所述第三密钥的所述随机选择的数字,并且所述第四算法是所述第三算法的逆算法。
13.按照权利要求12的方法,其特征在于,该方法还包括:
-在所述第二传送对话之前,使在该外部部件中基于按照所述第二算法解密后的软件部分所生成的所述结果按照第五算法和第五密钥进行加扰的步骤,所述第五密钥基于一个数字,所述数字针对各传送对话随机选择并由该外部部件提供,以及
-使在该外部部件中基于按照所述第二算法解密的软件部分产生、按照所述第五算法加扰并且在所述第二传送对话中传送到该计算机的所述结果在该计算机中按照第六算法和第六密钥进行解扰的步骤,所述第六密钥基于用于所述第五密钥的所述随机选择的数字,并且所述第六算法是所述第五算法的逆算法。
14.一种用于准备软件以便仅当得到相应的授权才能在计算机上使用的设备,该设备包括:
-对所述软件的至少一部分按照第一算法和第一密钥实施加密的密码装置,以及
-一个适应于和所述计算机连接的外部部件,该外部部件至少包括一个其自己的处理器和一个用于存储第二算法及第二密钥的计算机可读的存储装置,该部件被配置以按照所述第二算法和第二密钥对该软件的加密部分执行解密,
其特征在于,该设备还包括提供所述第二算法和要由按照第二算法的所述解密使用的第二密钥的发生器装置,第二密钥不同于所述密码装置在按照第一算法执行对所述软件部分加密中所使用的第一密钥。
15.按照权利要求14的设备,其中所述软件是自由分发软件。
16.按照权利要求15的设备,其特征在于,所述密码装置适应于在所述软件被转换成可执行的程序之前对该软件的源码本身按照第一算法执行对所述软件部分的所述加密,并且所述密码装置同时相对于和所述外部部件的通信实施向该可执行程序的数据文件库增添目标码,其中转换成可执行的程序包括编译和/或链接。
17.按照权利要求14,15或16的设备,其特征在于,所述密码装置适应于在产生可执行程序的处理期间插入指令,所述指令将在所述计算机内执行该可执行程序中提供到所述增添的目标码的跳转或功能调用,然后该计算机利用所述增添的目标码建立对已连接的该外部部件的通信信道,其中所述指令包括调用序列。
18.按照权利要求17的设备,其特征在于,所述密码装置适应于在按照第一算法加密的所述软件部分输入第三密钥,第三密钥用于在把所述软件部分传送到所述外部部件之前对所述软件部分进行加扰的第三算法。
19.一种使通过按照权利要求14的设备准备的软件的授权使用成为可能的设备,该设备包括一个适应于充当一个外部部件的主机的计算机,该外部部件至少包括一个其自身的处理器和一个计算机可读的存储装置并且用于和该主机连接以进行通信,该设备特征在于,所述外部部件包括适应于按照所述发生器装置生成的所述第二算法和所述第二密钥执行解密的解密装置,该第二密钥不同于所述密码装置按照第一算法执行对所述软件部分执行加密中使用的第一密钥。
20.按照权利要求19的设备,其中所述软件是自由分发软件。
21.按照权利要求19的设备,其特征在于,当所述主机在执行按照第一算法加密的软件部分中遇到提供到所述增添的目标码的跳转或功能调用,由此该主机利用该目标码建立对该外部部件的通信信道,通过该通信信道主机计算机实施把加密的软件部分在第一传送对话中传送到该外部部件并进行所述的解密时,所述解密装置适应于按照第二算法执行解密,并且所述外部部件自身的处理器适应于处理解密后的软件部分并且实施在第二传送对话中通过该通信信道反方向传送结果以在计算机中进一步使用该结果。
22.按照权利要求21所述并且适应于使利用按照权利要求18的设备准备的软件的授权使用成为可能的设备,其特征在于,该外部部件包括按照第四算法和第四密钥对按照第一算法加密的所述软件部分解扰的解扰装置,该加密的所述软件部分在第一传送对话之前由主机按照所述第三算法加扰并且在所述第一传送对话中传送到该外部部件,主机在加扰中使用的所述第三密钥基于一个数字,所述数字针对各传送对话随机选择并由该外部部件中的数字发生器提供,并且由该外部部件的解扰装置使用的所述第四密钥基于用于所述第三密钥的相同的随机选择的数字,所述第四算法是所述第三算法的逆算法。
23.按照权利要求21或22的设备,其特征在于,该外部部件还包括加扰装置,用于在第二传送对话之前按照第五算法和第五密钥对在该外部部件中基于该部件按照所述第二算法解密的该软件部分生成的所述结果进行加扰,在加扰中加扰装置使用的所述第五密钥基于一个数字,所述数字针对各传送对话随机选择并且由该外部部件中的数字发生器产生,主机计算机能够按照第六算法和第六密钥对该外部部件中生成的结果解扰以在主机计算机中进一步使用,该结果在所述第二传送对话之前由该外部部件中的加扰装置根据第五算法加扰并在该第二传送对话中传送到该计算机中,所述第六密钥基于用于第五密钥的相同的随机选择的数字,并且所述第六算法是所述第五算法的逆算法。
24.按照权利要求14或19的设备,其特征在于,所述外部部件包括适配器装置和一个防窜改的分离组件,其内或其上设置有至少包括该外部部件的处理器和计算机可读的存储器的电子电路,并且构造成当把该组件插入到该适配器装置的槽中或者以任何其它方式和该适配器连接时可以在该分离组件的电路和所述主机计算机之间建立通信信道,所述第二算法和所述第二密钥以除该分离组件的处理器之外的其它装置不能读出并且在该分离组件之外绝不可用的方式存储在所述存储器中。
25.按照权利要求24的设备,其特征在于,所述分离组件采取具有普通信用卡和智能卡的尺寸的基片板的形式,适配器装置包括用于所述基片板的读卡机,读卡机可以和该主机或者与主机连接的外围部件相结合。
26.按照权利要求24的设备,其特征在于,所述分离组件采取电子电路卡的形式,其适应于放置到主机中为扩展卡所设置的卡位或卡槽中,在便携式主机计算机的情况下该电路卡被配置为遵从用于这种可插入卡标准设计之一,其中所述标准设计之一可以是PCMCIA标准。
27.按照权利要求24的设备,其特征在于,所述分离组件采取电子盲插头的形式,而所述适配器装置包括主机计算机输入-输出端子。
28.在多处理器计算机环境中执行至少一个软件程序的代码的方法,每个软件程序包括(i)要在计算机中执行的第一部分软件代码,以及(ii)包括软件程序的一个或多个代码片段的第二部分软件代码,该方法包括在与计算机通信的一个或多个外部设备中执行第二部分代码。
29.根据权利要求28所述的方法,其中第二部分代码被加密,该方法还包括将第二部分代码传送到一个防窜改的计算机环境中,并且在执行之前在一个或多个外部设备中对第二部分代码解密。
30.根据权利要求29所述的方法,其中一个或多个外部设备是包括用于执行第二部分代码的处理器的智能卡,该智能卡是该防窜改的计算机环境。
31.根据权利要求28所述的方法,其中代码片段散布在第一部分代码内。
32.根据权利要求28所述的方法,其中第二部分代码存储在计算机中,该方法还包括在执行前将第二部分代码下载到一个或多个外部设备中。
33.根据权利要求28所述的方法,其中有多个软件程序,并且第二部分包括来自多个软件程序的片段。
34.根据权利要求28所述的方法,其中一个或多个外部设备是智能卡。
35.在一个多处理器计算机环境中执行至少一个软件程序的代码的装置,每个软件程序包括(i)第一部分软件代码,以及(ii)包括软件程序的一个或多个代码片段的第二部分软件代码,该装置包括:
(a)执行第一部分软件代码的第一计算机;和
(b)与执行第二部分软件代码的计算机通信的外部单元。
36.根据权利要求35所述的装置,其中第二部分代码被加密,该装置还包括:
(c)将第二部分代码传送到一个防窜改的计算机环境中的装置;和
(d)在执行之前在一个或多个外部设备中对第二部分代码解密的装置。
37.根据权利要求36所述的装置,其中一个或多个外部设备是包括用于执行第二部分代码的处理器的智能卡,该智能卡是该防窜改的计算机环境。
38.根据权利要求35所述的装置,其中第二部分代码存储在计算机中,该装置还包括:
(e)在执行前将第二部分代码下载到一个或多个外部设备中的装置。
39.根据权利要求35所述的装置,其中一个或多个外部设备是智能卡。
40.一种转换包括软件代码的计算机程序的方法,该方法包括:
(a)识别软件代码的一个或多个片段;
(b)使程序调用与每个被识别的片段相关联;以及
(c)将程序调用插入软件代码中,由此转换软件程序,其中当到达一个程序调用时,软件代码的相应片段被执行。
41.根据权利要求40所述的方法还包括:
(d)加密与被识别的片段相关联的软件代码;以及
(e)用软件代码的加密版本替换所述片段。
42.一种执行包括软件代码的计算机程序的方法,软件代码具有(i)第一部分,以及(ii)第二部分,第二部分包括软件代码的一个或多个片段以及与每个片段相关联的程序调用,该方法包括:
(a)执行第一部分;以及
(b)当到达第二部分中的程序调用时,执行相关联的片段。
43.根据权利要求42所述的方法,其中第一部分在计算机中执行,第二部分在相对于该计算机的外部设备上执行,并且步骤(b)还包括在到达相关联片段的程序调用时,将片段发送给外部设备,并在外部设备中执行该片段。
44.根据权利要求43所述的方法,其中步骤(b)还包括当在外部设备中执行片段时生成结果,该结果在后续执行计算机程序时使用。
45.根据权利要求43所述的方法,其中外部设备是智能卡。
46.根据权利要求42所述的方法,其中一个或多个片段是加密的代码,该方法还包括:
(c)在执行一个或多个片段前先对其解密。
47.一种执行包括软件代码的计算机程序的装置,软件代码具有(i)第一部分,以及(ii)第二部分,第二部分包括软件代码的一个或多个片段以及与每个片段相关联的程序调用,该装置包括:
(a)执行第一部分的装置;以及
(b)当到达第二部分中的程序调用时执行相关联的片段的装置。
48.根据权利要求47所述的装置,其中用于执行第一部分的装置在计算机中,用于执行相关联的片段的装置在相对于该计算机的外部设备中,并且在到达相关联片段的程序调用时,片段被发送给外部设备,并且在外部设备中执行。
49.根据权利要求48所述的装置,其中外部设备是智能卡。
50.根据权利要求47所述的装置,其中一个或多个片段是加密的代码,该装置还包括:
(d)在执行一个或多个片段前先对其解密的装置。
51.一种软件代码的访问控制的方法,该软件代码在与主机计算机通信的智能卡上执行,该智能卡中存储了用于被识别的软件代码的访问控制参数,该方法包括:
(a)主机计算机将软件代码及其身份数据上载到智能卡;以及
(b)智能卡使用访问控制参数和身份数据来确定对于上载的软件代码是否许可访问,其中仅当访问被允许时才可执行软件。
52.根据权利要求51所述的方法,其中软件代码包括在主机计算机上执行的软件程序的软件代码的一个或多个片段。
53.根据权利要求51所述的方法,其中访问控制参数包括许可状态、运行次数数据、时间数据以及程序变体数据中的一个或多个。
54.根据权利要求51所述的方法还包括:
(c)在访问控制参数的初始存储之后修改至少一个访问控制参数。
55.在外部单元上执行软件程序的多个软件代码片段的方法,其中外部单元与计算机相连,外部单元包括一个处理器和一个存储器,该方法包括:
(a)在每个软件代码片段的执行时间,自动将相应的软件代码片段上载到外部单元的存储器中;以及
(b)仅使用外部单元的处理器和存储器在外部单元中执行相应的软件代码片段。
56.根据权利要求55所述的方法,其中软件代码片段被加密,该方法还包括:
(c)在步骤(a)之后和步骤(b)之前,对软件代码片段解密。
57.一种准备软件程序的代码的方法,该软件程序包括(i)要由第一处理器执行的第一部分源代码,以及(ii)要由第二处理器执行的第二部分源代码,第二部分源代码包括软件程序的一个或多个代码片段,该方法包括在编译该软件程序前,仅对第二部分源代码加密。
58.根据权利要求57所述的方法,其中第二处理器是智能卡。
CNB96196247XA 1995-07-13 1996-07-10 防止在计算机中未经批准地使用软件的方法和设备 Expired - Fee Related CN1155866C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NO952795A NO302388B1 (no) 1995-07-13 1995-07-13 Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
NO952795 1995-07-13

Publications (2)

Publication Number Publication Date
CN1192814A CN1192814A (zh) 1998-09-09
CN1155866C true CN1155866C (zh) 2004-06-30

Family

ID=19898393

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB96196247XA Expired - Fee Related CN1155866C (zh) 1995-07-13 1996-07-10 防止在计算机中未经批准地使用软件的方法和设备

Country Status (17)

Country Link
US (3) US6266416B1 (zh)
EP (2) EP0855052B1 (zh)
JP (1) JP4267065B2 (zh)
KR (1) KR19990028931A (zh)
CN (1) CN1155866C (zh)
AT (1) ATE233916T1 (zh)
AU (1) AU713872B2 (zh)
DE (1) DE69626530T2 (zh)
DK (1) DK0855052T3 (zh)
ES (1) ES2194109T3 (zh)
HK (2) HK1009533A1 (zh)
IL (1) IL122888A (zh)
NO (1) NO302388B1 (zh)
NZ (1) NZ313319A (zh)
PL (1) PL187088B1 (zh)
PT (1) PT855052E (zh)
WO (1) WO1997003398A1 (zh)

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US6523119B2 (en) 1996-12-04 2003-02-18 Rainbow Technologies, Inc. Software protection device and method
FR2760871B1 (fr) * 1997-03-13 1999-04-16 Bull Cp8 Procede de stockage et d'exploitation d'une information sensible dans un module de securite, et module de securite associe
SG67401A1 (en) * 1997-07-07 1999-09-21 Low Huan Khing A method and system for protecting intellectual property products distributed in mass market
US6442276B1 (en) 1997-07-21 2002-08-27 Assure Systems, Inc. Verification of authenticity of goods by use of random numbers
US6643775B1 (en) * 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
DE69830834T2 (de) 1998-01-20 2006-01-26 Fujitsu Ltd., Kawasaki Datenspeicheranordnung und Steuerverfahren dafür
EP1004979A1 (en) * 1998-11-24 2000-05-31 CANAL+ Société Anonyme Portable electronic card
US7140005B2 (en) * 1998-12-21 2006-11-21 Intel Corporation Method and apparatus to test an instruction sequence
US7730300B2 (en) 1999-03-30 2010-06-01 Sony Corporation Method and apparatus for protecting the transfer of data
US6697489B1 (en) 1999-03-30 2004-02-24 Sony Corporation Method and apparatus for securing control words
JP2001016195A (ja) * 1999-04-27 2001-01-19 Matsushita Electric Ind Co Ltd 情報利用制御装置
FR2793050B1 (fr) * 1999-04-28 2001-08-17 Fingerprint Procede pour securiser un logiciel d'utilisation a partir d'une unite de traitement et de memorisation d'un secret et systeme en faisant application
US7036738B1 (en) 1999-05-03 2006-05-02 Microsoft Corporation PCMCIA-compliant smart card secured memory assembly for porting user profiles and documents
US7117369B1 (en) * 1999-05-03 2006-10-03 Microsoft Corporation Portable smart card secured memory system for porting user profiles and documents
US6681214B1 (en) * 1999-06-29 2004-01-20 Assure Systems, Inc. Secure system for printing authenticating digital signatures
JP4127587B2 (ja) * 1999-07-09 2008-07-30 株式会社東芝 コンテンツ管理方法およびコンテンツ管理装置および記録媒体
US7351919B1 (en) * 1999-07-15 2008-04-01 Thomson Licensing Port cover for limiting transfer of electromagnetic radiation from a port defined in a host device
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
GB9922665D0 (en) 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
US6912513B1 (en) * 1999-10-29 2005-06-28 Sony Corporation Copy-protecting management using a user scrambling key
US7039614B1 (en) 1999-11-09 2006-05-02 Sony Corporation Method for simulcrypting scrambled data to a plurality of conditional access devices
US6304972B1 (en) * 2000-01-03 2001-10-16 Massachusetts Institute Of Technology Secure software system and related techniques
DE10003086A1 (de) * 2000-01-25 2001-08-02 Infineon Technologies Ag Datenverarbeitungssystem
SE0000871L (sv) * 2000-03-13 2001-09-14 Oerjan Vestgoete Ett förfarande och system för att vid elektronisk handel förhindra ej auktoriserad användning av programvara
KR20000053933A (ko) * 2000-05-10 2000-09-05 류종렬 소프트웨어의 정품인증시스템 및 그 방법
DE10023820B4 (de) * 2000-05-15 2006-10-19 Siemens Ag Software-Schutzmechanismus
WO2001088732A1 (en) * 2000-05-17 2001-11-22 Smart Modular Technologies, (Ma) Inc. Programming a memory based on information obtained from a remote location
EP1308882A4 (en) * 2000-07-07 2004-03-24 Fujitsu Ltd TERMINAL DEVICE FOR INTEGRATED CIRCUIT CARD
MD1871G2 (ro) * 2000-07-28 2002-08-31 Компания ДЕКАРТ с ограниченной ответственностью Procedeu de protecţie contra copierii bazelor de date şi a programelor pentru calculator
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
EP1384126A2 (en) * 2001-04-24 2004-01-28 Hewlett-Packard Company An information security system
ES2201038T3 (es) 2001-05-11 2004-03-16 Sospita As Mecanismo de enumeracion secuencial para asegurar la integridad del orden de ejecucion de aplicaciones de tarjetas interdependientes.
EP1296477A1 (en) * 2001-05-15 2003-03-26 Mitsubishi Denki Kabushiki Kaisha Content reproduction apparatus, content distribution server, and content distribution system
US7747853B2 (en) 2001-06-06 2010-06-29 Sony Corporation IP delivery of secure digital content
US7895616B2 (en) 2001-06-06 2011-02-22 Sony Corporation Reconstitution of program streams split across multiple packet identifiers
US7139398B2 (en) 2001-06-06 2006-11-21 Sony Corporation Time division partial encryption
US7146340B1 (en) * 2001-07-25 2006-12-05 Novell, Inc. Method and systems for licensing electronic data
KR100435918B1 (ko) * 2001-11-09 2004-06-16 주식회사 휴맥스 디지털 방송 프로그램에서의 데이터 암호화 기록 방법
CN1559026A (zh) * 2001-11-12 2004-12-29 �����о�ʵ�������޹�˾ 防止非法使用信息的方法和装置
CA2363795A1 (en) * 2001-11-26 2003-05-26 Cloakware Corporation Computer system protection by communication diversity
ATE542325T1 (de) * 2001-12-21 2012-02-15 Sony Computer Entertainment Inc Verfahren und vorrichtungen zur sicheren verteilung von programminhalt
KR20030055713A (ko) * 2001-12-27 2003-07-04 한국전자통신연구원 디지털 컨텐츠 저작권 보호 장치 및 방법
US7765567B2 (en) 2002-01-02 2010-07-27 Sony Corporation Content replacement by PID mapping
US7823174B2 (en) 2002-01-02 2010-10-26 Sony Corporation Macro-block based content replacement by PID mapping
JP2003280754A (ja) * 2002-03-25 2003-10-02 Nec Corp 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US20030200449A1 (en) * 2002-04-17 2003-10-23 International Business Machines Corporation Method of accessing a shared subroutine of computer system
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
US7093119B2 (en) 2002-07-16 2006-08-15 International Business Machines Corporation Methods and computer program products for protecting source code of an interpreted programming language
WO2004012378A2 (en) * 2002-07-30 2004-02-05 Digital Interactive Streams, Inc. Digital content security system and method
DE60301782T2 (de) * 2002-08-01 2006-05-24 Matsushita Electric Industrial Co., Ltd., Kadoma Apparate und verfahren zum entschüsseln von verschlüsselten datenblöcken und zum lokalisieren der verschlüsselten datenblöcke im für die ausführung verwendeten speicherbereich
GB2392262A (en) * 2002-08-23 2004-02-25 Hewlett Packard Co A method of controlling the processing of data
US8818896B2 (en) 2002-09-09 2014-08-26 Sony Corporation Selective encryption with coverage encryption
US8572408B2 (en) 2002-11-05 2013-10-29 Sony Corporation Digital rights management of a digital device
US7724907B2 (en) * 2002-11-05 2010-05-25 Sony Corporation Mechanism for protecting the transfer of digital content
AR042599A1 (es) * 2002-11-19 2005-06-29 Schiavoni Juan Jose Metodo de proteccion de programas y equipo para realizarlo
JP2004171367A (ja) * 2002-11-21 2004-06-17 Matsushita Electric Ind Co Ltd 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム
JP3878542B2 (ja) * 2002-11-29 2007-02-07 株式会社東芝 記録装置
US8645988B2 (en) 2002-12-13 2014-02-04 Sony Corporation Content personalization for digital content
US8667525B2 (en) 2002-12-13 2014-03-04 Sony Corporation Targeted advertisement selection from a digital stream
EP1439446B1 (de) * 2003-01-14 2006-03-29 Aladdin Knowledge Systems GmbH& Co. KG Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
US7536558B2 (en) 2003-08-29 2009-05-19 Tgbw Inc. Flash memory distribution of digital content
US8220058B2 (en) * 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
US7853980B2 (en) 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
WO2005064433A1 (en) * 2003-12-22 2005-07-14 Koninklijke Philips Electronics N.V. Software execution protection using an active entity
US20050204405A1 (en) * 2004-03-04 2005-09-15 Brian Wormington Method and system for digital rights management
FR2867635B1 (fr) * 2004-03-11 2006-09-22 Oberthur Card Syst Sa Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
WO2006003632A2 (en) * 2004-07-02 2006-01-12 Philips Intellectual Property & Standards Gmbh Security unit and method for protecting data
US20060020552A1 (en) * 2004-07-26 2006-01-26 James Sloan Copy-restriction system for digitally recorded, computer disk-based music recordings
US8041190B2 (en) 2004-12-15 2011-10-18 Sony Corporation System and method for the creation, synchronization and delivery of alternate content
US7895617B2 (en) 2004-12-15 2011-02-22 Sony Corporation Content substitution editor
US20060137016A1 (en) * 2004-12-20 2006-06-22 Dany Margalit Method for blocking unauthorized use of a software application
CN100373376C (zh) * 2005-01-21 2008-03-05 深圳市致芯微电子有限公司 加密芯片、利用该加密芯片的cpu程序加密方法和系统
JP4732508B2 (ja) 2005-03-22 2011-07-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. トラステッドデータのための方法、デバイス、およびデータ構造体
EP1717723A1 (en) 2005-04-29 2006-11-02 ST Incard S.r.l. Improved virtual machine or hardware processor for IC-card portable electronic devices
JP2007065850A (ja) * 2005-08-30 2007-03-15 Fujitsu Ltd 情報処理装置、情報処理方法およびプログラム
US20070074050A1 (en) * 2005-09-14 2007-03-29 Noam Camiel System and method for software and data copy protection
JP4631658B2 (ja) * 2005-11-09 2011-02-16 ソニー株式会社 デジタル放送受信システム及びデジタル放送受信装置
CN100446016C (zh) * 2005-11-17 2008-12-24 北京兆维电子(集团)有限责任公司 一种实现数据安全保护的系统
US7991159B2 (en) * 2005-12-09 2011-08-02 Alcatel-Lucent Usa Inc. Layered mobile application security system
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
EP1798653B1 (de) * 2005-12-16 2011-08-03 Aladdin Europe GmbH Verfahren, Computerprogrammprodukt und Vorrichtung zum Schützen eines einen Funktionsblock aufweisenden Programms
US8185921B2 (en) 2006-02-28 2012-05-22 Sony Corporation Parental control of displayed content using closed captioning
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
RU2296363C1 (ru) * 2006-04-27 2007-03-27 Общество с ограниченной ответственностью "АСТРОМА" Способ и средство защиты программного обеспечения от несанкционированного использования
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
CN100428262C (zh) * 2006-09-22 2008-10-22 中山大学 一种基于改进的一次一密乱码本的软件保护方法
US20080133419A1 (en) * 2006-12-05 2008-06-05 Brian Wormington Secure financial transaction system and method
US8479020B2 (en) * 2007-07-25 2013-07-02 Motorola Mobility Llc Method and apparatus for providing an asymmetric encrypted cookie for product data storage
DE102007059798B3 (de) * 2007-12-11 2009-04-09 Ascolab Gmbh Verfahren zur Verschlüsselung von ausführbarem Programmcode, insbesondere als Schutz gegen unautorisierte Vervielfältigung, Manipulation und unautorisierten Betrieb
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
JP5037422B2 (ja) * 2008-04-30 2012-09-26 株式会社リコー 画像形成装置、アクセス制御方法、及びアクセス制御プログラム
KR101224717B1 (ko) * 2008-12-26 2013-01-21 에스케이플래닛 주식회사 소프트웨어 라이센스 보호 방법과 그를 위한 시스템, 서버,단말기 및 컴퓨터로 읽을 수 있는 기록매체
KR101049718B1 (ko) * 2008-12-29 2011-07-19 에스케이 텔레콤주식회사 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체
EP2460068A1 (en) * 2009-07-30 2012-06-06 Rascalim Software Security Ltd. System and method for limiting execution of software to authorized users
US9754115B2 (en) 2011-03-21 2017-09-05 Irdeto B.V. System and method for securely binding and node-locking program execution to a trusted signature authority
KR20140054158A (ko) 2011-08-05 2014-05-08 케이피아이티 테크놀로지스 엘티디. 임베디드 소프트웨어 코드의 보호를 위한 시스템
US9489541B2 (en) * 2011-09-09 2016-11-08 Nvidia Corporation Content protection via online servers and code execution in a secure operating system
ITMI20120561A1 (it) 2012-04-05 2013-10-06 St Microelectronics Srl Metodo per proteggere un programma applicativo
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
CN103324871A (zh) * 2013-05-23 2013-09-25 董礼貌 一种软件万变链接设备、系统和方法
CN104462990B (zh) * 2013-09-13 2019-02-26 腾讯科技(深圳)有限公司 字符串加解密方法和装置
JP6287964B2 (ja) * 2015-06-09 2018-03-07 株式会社デンソー ソフトウェア複製防止システム
US11829454B2 (en) * 2018-03-09 2023-11-28 Patrick Robert Koren Method and apparatus for preventing and investigating software piracy
US9881142B2 (en) * 2015-09-11 2018-01-30 Patrick Robert Koren Method and apparatus for preventing and investigating software piracy
JP6381857B1 (ja) * 2017-06-23 2018-08-29 三菱電機株式会社 ラダープログラム不正利用防止システム、ラダープログラム不正利用防止方法、およびエンジニアリングツール
US20220374512A1 (en) * 2021-05-21 2022-11-24 Vmware, Inc. Software-based hardware security module (hsm) for a virtualized computing environment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2523745B1 (fr) * 1982-03-18 1987-06-26 Bull Sa Procede et dispositif de protection d'un logiciel livre par un fournisseur a un utilisateur
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US4799258A (en) * 1984-02-13 1989-01-17 National Research Development Corporation Apparatus and methods for granting access to computers
GB2163577B (en) * 1984-08-23 1988-01-13 Nat Res Dev Software protection device
GB8423784D0 (en) * 1984-09-20 1984-10-24 Fifield K J Processing device
CA1238427A (en) * 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
US5109413A (en) * 1986-11-05 1992-04-28 International Business Machines Corporation Manipulating rights-to-execute in connection with a software copy protection mechanism
US4817140A (en) * 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
EP0266748B1 (en) * 1986-11-05 1995-02-08 International Business Machines Corporation A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US5081676A (en) * 1990-10-04 1992-01-14 Chou Wayne W Method and apparatus for protecting multiple copies of computer software from unauthorized use
US5410717A (en) * 1991-03-22 1995-04-25 Allen-Bradley Company, Inc. Removable function card for a programmable controller processor
US5485519A (en) * 1991-06-07 1996-01-16 Security Dynamics Technologies, Inc. Enhanced security for a secure token code
US5222133A (en) * 1991-10-17 1993-06-22 Wayne W. Chou Method of protecting computer software from unauthorized execution using multiple keys
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
DE4239865A1 (de) 1992-11-27 1994-06-01 Heinz Johann Verfahren zur Verhinderung der Anwendung eines unberechtigt auf einen Datenträger kopierten Programms und Vorrichtung zur Durchführung des Verfahrens
US5319704A (en) * 1993-06-17 1994-06-07 Exar Corporation Control circuit for voltage controlled attenuator for speakerphones
US5337357A (en) * 1993-06-17 1994-08-09 Software Security, Inc. Method of software distribution protection
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5398285A (en) * 1993-12-30 1995-03-14 Motorola, Inc. Method for generating a password using public key cryptography
DE4419115A1 (de) 1994-06-01 1994-10-20 Michael Doelker Verfahren zum hochwirksamen Schutz vor unauthorisierter Benutzung von Softwarekopien
US5651068A (en) * 1995-03-08 1997-07-22 Hewlett-Packard Company International cryptography framework
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse

Also Published As

Publication number Publication date
JP4267065B2 (ja) 2009-05-27
EP0855052B1 (en) 2003-03-05
NO952795L (no) 1997-01-14
PT855052E (pt) 2003-06-30
US20040193987A1 (en) 2004-09-30
DK0855052T3 (da) 2003-07-07
US20030190043A1 (en) 2003-10-09
NZ313319A (en) 1999-10-28
HK1048674A1 (zh) 2003-04-11
MX9800385A (es) 1998-09-30
PL187088B1 (pl) 2004-05-31
EP1253503A3 (en) 2004-07-14
WO1997003398A1 (en) 1997-01-30
IL122888A0 (en) 1998-08-16
EP0855052A1 (en) 1998-07-29
AU6535796A (en) 1997-02-10
HK1009533A1 (en) 1999-06-04
NO302388B1 (no) 1998-02-23
IL122888A (en) 2000-10-31
ES2194109T3 (es) 2003-11-16
DE69626530T2 (de) 2003-11-13
JPH11509023A (ja) 1999-08-03
ATE233916T1 (de) 2003-03-15
NO952795D0 (no) 1995-07-13
PL324525A1 (en) 1998-06-08
DE69626530D1 (de) 2003-04-10
US6266416B1 (en) 2001-07-24
AU713872B2 (en) 1999-12-09
EP1253503A2 (en) 2002-10-30
KR19990028931A (ko) 1999-04-15
CN1192814A (zh) 1998-09-09

Similar Documents

Publication Publication Date Title
CN1155866C (zh) 防止在计算机中未经批准地使用软件的方法和设备
CN100480946C (zh) 用于在计算机系统内为sim设备提供受信通道的方法和装置
US7313828B2 (en) Method and apparatus for protecting software against unauthorized use
CN1220121C (zh) 程序分发设备、客户设备、程序分发系统和程序分发方法
US6871192B2 (en) System and method for preventing unauthorized use of protected software utilizing a portable security device
US8799654B2 (en) Methods and apparatus for authenticating data as originating from a storage and processing device and for securing software and data stored on the storage and processing device
CN1679273A (zh) 用于数字权利管理的集成电路
CN1609810A (zh) 向有高保证执行环境的系统的可信代理提供安全输入/输出
CN1961301A (zh) 在便携式存储装置和数字装置之间运行多个应用的设备和方法
CN101140610B (zh) 使用drm卡的内容解密方法
EP1471405A1 (en) Method and device for protecting information against unauthorised use
CN1193151A (zh) Ic卡系统及ic卡系统的安全方法
US8452986B2 (en) Security unit and protection system comprising such security unit as well as method for protecting data
CN1864118A (zh) 用于识别和/或验证设备中以及与设备合作的数据载体中的硬件和/或软件的电路及方法
CN100410828C (zh) 对访问基于计算机的对象的授权
CA2226386C (en) Protection of software against use without permit
CN1221915A (zh) 一种通用计算机的访问控制和软件版权保护装置及方法
JP2002244925A (ja) 半導体回路およびデータ処理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SOSPITA CO., LTD.

Free format text: FORMER OWNER: SIGURD SIGBJORNSEN

Effective date: 20011123

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20011123

Address after: Norway, Arendal

Applicant after: Sospitaas

Address before: Norway Feiweike

Applicant before: Sigurd Sigbjornsen

C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee