CN1192814A - 防止软件的未许可使用 - Google Patents

防止软件的未许可使用 Download PDF

Info

Publication number
CN1192814A
CN1192814A CN96196247A CN96196247A CN1192814A CN 1192814 A CN1192814 A CN 1192814A CN 96196247 A CN96196247 A CN 96196247A CN 96196247 A CN96196247 A CN 96196247A CN 1192814 A CN1192814 A CN 1192814A
Authority
CN
China
Prior art keywords
algorithm
key
software
external component
encryption
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
Application number
CN96196247A
Other languages
English (en)
Other versions
CN1155866C (zh
Inventor
西格德·西格比约恩森
马格纳·艾德·哈格伦德
弗拉迪米·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
Individual
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 Individual filed Critical Individual
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)
  • Emergency Protection Circuit Devices (AREA)
  • Devices For Executing Special Programs (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Moving Of Heads (AREA)
  • Orthopedics, Nursing, And Contraception (AREA)

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 (27)

1.一种防止在计算机中未经批准地使用软件的方法,该方法包括:
-按照第一算法加密所述软件的至少一部分,以及
-按照第二算法解密该软件的加密部分,在解密该软件的加密部分中所使用的第二算法以及密钥存储在适应于和所述计算机连接的一个外部部件中,该外部部件包括至少一个计算机可读的存储媒体和一个该部件自己的处理器,
其特征在于按照第二算法(g2)的所述解密是通过使用存储在所述外部部件中的第二密钥(k2)执行的,第二密钥不同于按照第一算法(g1)执行对该软件的所述部分加密中所使用的第一密钥(k1)。
2.按照权利要求1的方法,其特征在于,按照第一算法(g1)的对该软件的所述部分的加密是在编译和链接之前或者在生成可执行程序的类似处理步骤期间对相应软件的源码执行的,并且同时依靠和该外部部件的通信在可执行程序的数据文件库中增添目标码。
3.按照权利要求1或2的方法,其特征在于,按照第二算法(g2)对该软件的加密部分执行所述解密是当计算机在执行所述软件遇到造成转移到相应进入点的对所述附加的目标码的调用序列或类似的指令时发生的,从而通过利用该附加的目标码建立该计算机和该外部部件之间的一条通信信道,通过该通信信道在第一传送对话中把该软件的加密部分传送到该外部部件以由该部件自己的处理器解密,在该外部部件中处理该解密后的软件部分,并在第二传送对话中经该通信信道反向地传送处理结果以供在该计算机中的进一步使用。
4.按照权利要求3的方法,其特征在于,该方法还包括:
-在所述第一传送对话之前对按照第一算法(g1)加密的所述软件部分按照第三算法(g3)和第三密钥(k3)进行编码的步骤,所述第三密钥(k3)是基于为每次传送对话随机选出的并且最好是由该外部部件生成的一个数字的,以及
-对按照第一算法(g1)加密的和按照所述第三算法(g3)编码的并且在所述第一传送对话中传送到该外部部件的所述软件部分在该外部部件中按照第四算法(g4)和第四密钥(k4)进行去编码的步骤,所述第四密钥(k4)基于为所述第三密钥(k3)选出的所述随机数,并且所述第四算法(g4)是所述第三算法(g3)的逆算法。
5.按照权利要求3和4的方法,其特征在于,该方法还包括:
-在所述第二传送对话之前,对在该外部部件中基于按照所述第二算法(g2)解密后的软件部分所生成的所述结果按照第五算法(g5)和第五密钥(k5)进行编码的步骤,所述第五密钥(k5)基于为每次传送对话随机选出的并且最好是由该外部部件提供的一个数字,以及
-对在该外部部件中基于按照所述第二算法(g2)解密的软件部分产生的和按照所述第五算法(g5)编码的并且在所述第二传送对话中传送到该计算机的结果在该计算机中按照第六算法(g6)和第六密钥(k6)进行去编码的步骤,所述第六密钥(k6)基于为所述第五密钥(k5)选出的所述随机数,并且所述第六算法(g6)是所述第五算法(g5)的逆算法。
6.按照权利要求4和5的方法,其特征在于,为第三和第四密钥(k3,k4)选出的所述随机数和为第五和第六密钥(k5,k6)选出的所述随机数是相同的数字。
7.一种准备软件尤其是打算自由分发的软件,以便仅当得到相应的授权才能在计算机上使用的方法,该方法包括按照第一算法加密所述软件的至少一部分,当由所述计算机使用时按照第二算法对该部分软件进行解密,
该方法特征在于,在按照第一算法(g1)的所述加密中所使用的密钥是第一密钥(k1),第一密钥(k1)不同于按照第二算法(g2)对按照第一算法和第一密钥加密的软件部分执行解密时所使用的第二密钥(k2)。
8.按照权利要求7的方法,其特征在于,按照第一算法(g1)的对该软件的所述部分的所述加密是在对可执行的程序编译和链接之前或者在生成可执行程序的类似处理步骤期间对相应软件的源码本身执行的,并且同时依靠和一个适应于和所述计算机连接的外部部件的通信在可执行程序的数据文件库中增添目标码。
9.按照权利要求7或8的方法,其特征在于,在源码编译和/或链接成可执行程序中或者在生成可执行程序的类似处理步骤中插入在计算机中执行该可执行程序中可引起转移到相应进入点的对所述附加的目标码的调用序列或类似的指令,该附加的目标码用于在该计算机和一个在其中发生按照第二算法(g2)的所述解密的外部部件之间建立一条通信信道。
10.按照权利要求9的方法,其特征在于,还包括一个在按照第一算法(g1)加密的所述软件部分中插入第三密钥(k3)的步骤,所述第三密钥(k3)供用于在向所述外部部件传送前对所述软件部分进行编码的第三算法(g3)使用。
11.一种使按照权利要求9准备的软件尤其是免费分发的软件,在计算机上能被授权利用的方法,该方法包括把一个包括至少一个计算机可读的存储媒体以及其自身的处理器的外部部件连接到所述计算机,并且解密该软件的加密部分中所使用的第二算法和一个密钥存储在所述外部部件里,该方法特征在于,
当该计算机在执行按照第一算法(g1)加密的软件部分中遇到产生对所述附加的目标码的对应进入点的转移的调用序列或类似的指令时,该计算机利用该目标码建立和该外部部件的通信信道,通过该信道在第一传送对话中把该软件的加密部分传送到该外部部件,以便按照都存储在所述外部部件中的第二算法(g2)和第二密钥(k2)由该部件自己的处理器解密,该第二密钥(k2)不同于按照第一算法(g1)执行对所述软件部分的加密中所使用的第一密钥(k1),并且接着在该外部部件中处理解密后的软件以及在第二传送对话中通过该通信信道按相反方向传送结果供在计算机中进一步使用。
12.按照权利要求11的方法,该方法使按照权利要求10准备的软件可授权使用,其特征在于:
-在对已连接的外部部件的所述第一传送对话之前,对按照第一算法(g1)加密的软件部分按照所述第三算法(g3)和所述第三密钥(k3)编码,第三密钥(k3)基于一个为每次传送对话随机选出的并且最好是由该外部部件提供的数字,以及
-对按照第一算法(g1)加密的和按照所述第三算法(g3)编码的并且在所述第一传送对话中传送到该外部部件的所述软件部分在该外部部件中按照第四算法(g4)和第四密钥进行去编码,所述第四密钥(k4)基于为所述第三密钥(k3)选出的所述随机数,并且所述第四算法(g4)是所述第三算法(g3)的逆算法。
13.按照权利要求12的方法,其特征在于,该方法还包括:
-在所述第二传送对话之前,对在该外部部件中基于按照所述第二算法(g2)解密后的软件部分所生成的所述结果按照第五算法(g5)和第二密钥(k5)进行编码的步骤,所述第五密钥(k5)基于为每次传送对话随机选出的并且最好是由该外部部件提供的一个数字,以及
-对在该外部部件中基于按照所述第二算法(g2)解密的软件部分产生的和按照所述第五算法(g5)编码的并且在所述第二传送对话中传送到该计算机的所述结果在该计算机中按照第六算法(g6)和第六密钥(k6)进行去编码的步骤,所述第六密钥(k6)基于为所述第五密钥(k5)选出的所述随机数,并且所述第六算法(g6)是所述第五算法(g5)的逆算法。
14.按照上述任一权利要求的方法,其特征在于,所述第一和第二算法(g1,g2)以及所述第一和第二密钥(k1,k2)是根据例如RSA密码系统的非对称、双密钥密码办法(公用密钥/专用密钥密码系统)确定的,第一密钥(k1)最好是已知的密钥(公用密钥)而第二密钥(k2)是该密码办法的保密密钥(专用密钥)。
15.按照上述任一权利要求的方法,其特征在于,被按照所述第一算法(g1)加密的该软件的所述部分是通过对于在计算机使用该软件完全是决定性的来选择的,并且最好包括一个命令或执行文件中,例如.C0M或.EXE文件中的一条或多条指令。
16.一种用于准备软件尤其是打算自由分发的软件以便仅当得到相应的授权才能在计算机上使用的设备,该设备包括:
-对所述软件的至少一部分按照第一算法和第一密钥实施加密的密码装置,以及
-一个适应于和所述计算机连接的外部部件,该外部部件至少包括一个其自己的处理器和一个用于存储第二算法及一个密钥的计算机可读的存储媒体,该部件预定按照所述第二算法和所述密钥对该软件的加密部分执行解密,
其特征在于,该设备还包括提供所述第二算法(g2)和第二密钥(k2)以便由按照第二算法的所述解密使用的发生器装置,第二密钥不同于所述密码装置在按照第一算法(g1)执行对所述软件部分加密中所使用的第一密钥(k1)。
17.按照权利要求16的设备,其特征在于,所述密码装置适应于在相应软件被编译和链接之前或者以任何方式转移成可执行的程序之中对该软件的源码本身按照第一算法(g1)执行对所述软件部分的所述加密,其特征还在于,所述密码装置同时依靠和所述外部部件的通信实施向该可执行程序的数据文件库增添目标码。
18.按照权利要求16或17的设备,其特征在于,所述密码装置适应于在把源码编译和/或链接成可执行程序的期间或者在类似的产生可执行程序的处理期间插入调用序列或类似的指令,在所述计算机内执行该可执行程序中调用序列或类似的指令提供向所述附加的目标码的进入点的转移,然后该计算机利用所述的附加目标码建立对已连接的该外部部件的通信信道。
19.按照权利要求18的设备,其特征在于,所述密码装置适应于输入按照第一算法(g1)加密的所述软件部分和第三密钥(k3),第三密钥由在把所述软件部分转送到所述外部部件之前对所述软件部分进行扰编的第三算法(g3)使用。
20.一种使通过按照权利要求16的设备准备的软件尤其是免费分发的软件可授权使用的设备,该设备包括一个适应于充当一个外部部件的主机的计算机,该外部部件至少包括一个其自身的处理器和一个计算机可读的存储媒体并且用于和该主机连接以进行通信,该设备特征在于,所述外部部件包括适应于按照所述发生器装置生成的所述第二算法(g2)和所述第二密钥(k2)执行解密的解密装置,该第二密钥不同于所述密码装置按照第一算法(g1)执行对所述软件部分执行加密中使用的第一密钥(k1)。
21.按照权利要求20的设备,其特征在于,所述解密装置适应于当所述主机在执行按照第一算法(g1)加密的软件部分中遇到造成对所述附加目标码的相应进入口的转移的调用序列等时执行按照第二算法(g2)的解密,从而主机接着利用该目标码建立对该外部部件的通信信道,通过该通信信道主机实施把加密的软件部分在第一传送对话中传送到该外部部件并且进行所述的解密,其特征在于,所述外部部件自身的处理器适应于处理解密后的软件部分并且实施通过该通信信道在第二传送对话中按反方向传送结果以在计算机中进一步使用该结果。
22.按照权利要求21的并且适应于使利用按照权利要求19的设备的准备的软件能授权使用的设备,其特征在于,该外部部件包括按照第四算法(g4)和第四密钥(k4)对按照第一算法(g1)加密的所述软件部分去编码的去编码装置,该加密的所述软件部分在第一传送对话之前由主机按照所述第三算法(g3)编码并且在所述第一传送对话中传送到该外部部件,主机在编码中使用的所述第三密钥(k3)是基于为每次传送对话随机选出的并且最好是由该外部部件中的数字发生器提供的一个数字,并且由该外部部件的去编码装置使用的所述第四密钥(k4)基于相同的用于所述第三密钥(k3)的选出随机数,所述第四算法(g4)是所述第三算法(g3)的逆算法。
23.按照权利要求21或22的设备,其特征在于,该外部部件还包括编码器装置,用于在第二传送对话之前按照第五算法(g5)和第五密钥(k5)对在该外部部件中基于该部件按照所述第二算法(g2)解密该软件部分生成的所述结果进行编码,该编码中编码器装置使用的所述第五密钥(k5)基于为各次传送对话随机选出的并且最好是由该外部部件中的数字发生器产生的一个数字,主机能够按照第六算法(g6)和第六密钥(k6)对该外部部件中生成的结果去编码以在主机中进一步使用,该结果在所述第二传送对话之前由该外部部件中的编码器装置根据第五算法(g5)编码并在该第二传送对话中传送到该计算机中,所述第六密钥(k6)基于相同的用于第五密钥(k5)的选出的随机数,并且所述第六算法(g6)是所述第五算法(g5)的逆算法。
24.按照权利要求16至23中任一权利要求的设备,其特征在于,所述外部部件包括适配器装置和一个分离的物件,最好是防窜改的,其内或其上设置着至少包括该外部部件的处理器和计算机可读的存储器的电路,并且构造成当把该物件插入到该适配器的槽中或者以任何其它方式和该适配器连接时可以在该分离物件的电路和所述主机之间建立通信信道,所述第二算法(g2)和所述第二密钥(k2)最好以除该分离物件的处理器之外的其它装置都不读出并且决不能在该分离物件之外得到的方式存储在所述存储器中。
25.按照权利要求24的设备,其特征在于,所述分离物件采取小基片板例如塑料卡的形式,具有普通信用卡或智能卡的尺寸,从而适配器装置包括用于所述基片板的读卡机,读卡机可以和该主机或者与主机连接的外围部件相结合。
26.按照权利要求24的设备,其特征在于,所述分离的物件采取电子电路卡的形式,其适应于放置到主机中的扩展卡所设置的卡位或卡槽中,在便携式主机情况下该电路卡是按照这种可插入卡设计的各种标准中的一种,例如PCMCIA标准,构形的。
27.按照权利要求24的设备,其特征在于,所述分离物件采取电子盲插头等的形式,而所述适配器装置包括主机的输入-输出端子。
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 true CN1192814A (zh) 1998-09-09
CN1155866C 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) HK1048674A1 (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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100373376C (zh) * 2005-01-21 2008-03-05 深圳市致芯微电子有限公司 加密芯片、利用该加密芯片的cpu程序加密方法和系统
CN100405249C (zh) * 2005-08-30 2008-07-23 富士通株式会社 信息处理装置及信息处理方法
CN100446016C (zh) * 2005-11-17 2008-12-24 北京兆维电子(集团)有限责任公司 一种实现数据安全保护的系统
CN100558033C (zh) * 2001-12-21 2009-11-04 索尼计算机娱乐公司 用于安全分配程序内容的方法和装置
CN103797489A (zh) * 2011-03-21 2014-05-14 耶德托公司 用于安全地将程序执行绑定到且节点锁定到受信任的签名授权机构的系统和方法
WO2014187345A1 (zh) * 2013-05-23 2014-11-27 Dong Limay 一种软件万变链接设备、系统和方法
CN107683581A (zh) * 2015-06-09 2018-02-09 株式会社电装 软件防复制系统

Families Citing this family (113)

* 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
US7117369B1 (en) * 1999-05-03 2006-10-03 Microsoft Corporation Portable smart card secured memory system for porting user profiles and documents
US7036738B1 (en) 1999-05-03 2006-05-02 Microsoft Corporation PCMCIA-compliant smart card secured memory assembly 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
JPWO2002005203A1 (ja) * 2000-07-07 2004-01-08 富士通株式会社 Icカード端末装置
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 株式会社東芝 プログラム配布システム
JP2004537095A (ja) * 2001-04-24 2004-12-09 ヒューレット・パッカード・カンパニー 情報セキュリティシステム
WO2002093365A1 (en) 2001-05-11 2002-11-21 Sospita As Sequence numbering mechanism to ensure execution order integrity of inter-dependent smart card applications
CN1442005A (zh) * 2001-05-15 2003-09-10 三菱电机株式会社 内容再生装置、内容分发服务器和内容分发系统
US7895616B2 (en) 2001-06-06 2011-02-22 Sony Corporation Reconstitution of program streams split across multiple packet identifiers
US7747853B2 (en) 2001-06-06 2010-06-29 Sony Corporation IP delivery of secure digital content
US7151831B2 (en) 2001-06-06 2006-12-19 Sony Corporation Partial encryption and PID mapping
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 주식회사 휴맥스 디지털 방송 프로그램에서의 데이터 암호화 기록 방법
WO2003023577A1 (en) * 2001-11-12 2003-03-20 Network Research Lab Limited Method and device for protecting information against unauthorised use
CA2363795A1 (en) * 2001-11-26 2003-05-26 Cloakware Corporation Computer system protection by communication diversity
KR20030055713A (ko) * 2001-12-27 2003-07-04 한국전자통신연구원 디지털 컨텐츠 저작권 보호 장치 및 방법
US7823174B2 (en) 2002-01-02 2010-10-26 Sony Corporation Macro-block based content replacement by PID mapping
US7765567B2 (en) 2002-01-02 2010-07-27 Sony Corporation 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
AU2003268037A1 (en) * 2002-07-30 2004-02-16 Digital Interactive Streams, Inc. Digital content security system and method
EP1615100B1 (en) * 2002-08-01 2007-07-04 Matsushita Electric Industrial Co., Ltd. Encrypted - program generating apparatus
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
DE50302771D1 (de) * 2003-01-14 2006-05-18 Aladdin Knowledge Systems Gmbh Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
CA2536502A1 (en) * 2003-08-29 2005-03-10 Tgbw Inc. Flash memory distribution of digital content
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
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
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
US7853980B2 (en) 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
CN1898623A (zh) * 2003-12-22 2007-01-17 皇家飞利浦电子股份有限公司 使用动态实体的软件执行保护
US20050216548A1 (en) * 2004-03-04 2005-09-29 Brian Wormington Method and system for digital content distribution
FR2867635B1 (fr) * 2004-03-11 2006-09-22 Oberthur Card Syst Sa Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
CN101023433A (zh) * 2004-07-02 2007-08-22 皇家飞利浦电子股份有限公司 安全单元和保护数据的方法
US20060020552A1 (en) * 2004-07-26 2006-01-26 James Sloan Copy-restriction system for digitally recorded, computer disk-based music recordings
US7895617B2 (en) 2004-12-15 2011-02-22 Sony Corporation Content substitution editor
US8041190B2 (en) 2004-12-15 2011-10-18 Sony Corporation System and method for the creation, synchronization and delivery of alternate content
US20060137016A1 (en) * 2004-12-20 2006-06-22 Dany Margalit Method for blocking unauthorized use of a software application
EP1866825A1 (en) 2005-03-22 2007-12-19 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
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
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 ソニー株式会社 デジタル放送受信システム及びデジタル放送受信装置
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 에스케이 텔레콤주식회사 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체
US20130283396A1 (en) * 2009-07-30 2013-10-24 Rascalim Software Security Ltd. System and method for limiting execution of software to authorized users
DE112012004661T5 (de) 2011-08-05 2014-09-11 Kpit Technologies Ltd. System zum Schutz von eingebettetem Software-Code
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
CN104462990B (zh) * 2013-09-13 2019-02-26 腾讯科技(深圳)有限公司 字符串加解密方法和装置
US9881142B2 (en) * 2015-09-11 2018-01-30 Patrick Robert Koren Method and apparatus for preventing and investigating software piracy
US11829454B2 (en) * 2018-03-09 2023-11-28 Patrick Robert Koren Method and apparatus for preventing and investigating software piracy
KR102052489B1 (ko) * 2017-06-23 2019-12-05 미쓰비시덴키 가부시키가이샤 래더 프로그램 부정 이용 방지 시스템, 래더 프로그램 부정 이용 방지 방법, 및 엔지니어링 툴
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100558033C (zh) * 2001-12-21 2009-11-04 索尼计算机娱乐公司 用于安全分配程序内容的方法和装置
CN100373376C (zh) * 2005-01-21 2008-03-05 深圳市致芯微电子有限公司 加密芯片、利用该加密芯片的cpu程序加密方法和系统
CN100405249C (zh) * 2005-08-30 2008-07-23 富士通株式会社 信息处理装置及信息处理方法
CN100446016C (zh) * 2005-11-17 2008-12-24 北京兆维电子(集团)有限责任公司 一种实现数据安全保护的系统
CN103797489A (zh) * 2011-03-21 2014-05-14 耶德托公司 用于安全地将程序执行绑定到且节点锁定到受信任的签名授权机构的系统和方法
CN103797489B (zh) * 2011-03-21 2017-12-12 爱迪德技术有限公司 用于安全地将程序执行绑定到且节点锁定到受信任的签名授权机构的系统和方法
WO2014187345A1 (zh) * 2013-05-23 2014-11-27 Dong Limay 一种软件万变链接设备、系统和方法
CN107683581A (zh) * 2015-06-09 2018-02-09 株式会社电装 软件防复制系统

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1155866C (zh) 防止在计算机中未经批准地使用软件的方法和设备
CN1328634C (zh) 防止未被授权使用软件的方法
CN100421102C (zh) 便携式存储装置和使用该便携式存储装置的内容管理方法
CN1220121C (zh) 程序分发设备、客户设备、程序分发系统和程序分发方法
CN100452075C (zh) 软件保护装置数据传输过程的安全控制方法及其设备
JP4461145B2 (ja) Sim装置用コンピュータシステム及び方法
US6871192B2 (en) System and method for preventing unauthorized use of protected software utilizing a portable security device
JP4773723B2 (ja) 半導体メモリ装置によるデータセキュリティの記憶およびアルゴリズムの記憶を実現する方法
EP1754164A1 (en) Apparatus and method for sending and receiving digital rights objects in converted format between device and portable storage
CN1679273A (zh) 用于数字权利管理的集成电路
CN1786867A (zh) 文档加密、解密的方法及其安全管理存储设备和系统方法
CN1961301A (zh) 在便携式存储装置和数字装置之间运行多个应用的设备和方法
CN1609810A (zh) 向有高保证执行环境的系统的可信代理提供安全输入/输出
CN101140610A (zh) 使用drm卡的内容解密方法
AU778380B2 (en) Portable authorization device for authorizing use of protected information and associated method
EP1471405A1 (en) Method and device for protecting information against unauthorised use
CN1193151A (zh) Ic卡系统及ic卡系统的安全方法
CN1091902C (zh) 一种通用计算机的访问控制和软件版权保护装置及方法
CN100410828C (zh) 对访问基于计算机的对象的授权
CA2226386C (en) Protection of software against use without permit
KR20030010240A (ko) 아이씨칩내장카드를 이용한 소프트웨어불법복제방지방법과그 소프트웨어 복제방지용 아이씨칩내장카드
CN116167020A (zh) 一种软件授权方法及系统
CN1295682A (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
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