当前位置: 首页 > 专利查询>西门子公司专利>正文

防止未经授权重复使用计算机程序的方法技术

技术编号:2865848 阅读:189 留言:0更新日期:2012-04-11 18:40
防止未经授权重复使用经过翻译的计算机程序的方法,其中计算机程序通过编码算法来进行加密,其特征在于,对于加密计算机软件所需的编码算法(OE)的主要部分作为翻译器程序的组成部分来实现。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种防止未经授权地重复使用经过翻译的计算机程序的方法,其中计算机程序通过编码算法来加密。对计算机程序(软件)进行加密是保护其不受未经授权的使用的一种常用的优选方法。已知方法的薄弱之处在于,除了经过加密的软件之外,用于解码的密钥也必须以适当的形式随之一同交付。对于程序而言,认为交出机器码形式的、即由计算机直接理解为指令序列的二进制数字序列是毫无问题的,因为在这种情况下不能进行程序分析,也不能由此确定可替代使用的密钥。然而,在交付程序时交付密钥则会出现问题,所述程序通过所谓的翻译器程序(Interpreter)来执行,其中,当程序在一台目标计算机上以分步方式运行期间,首先从编程语言或者也可能是设计出的中间代码翻译成可执行的机器码,并且经过翻译的指令在翻译下一条指令之前执行。在这种情况下,密钥必须以技术人员能够容易阅读的编程语言或者同样容易阅读的中间代码的形式移交,因此可以比较容易地获得密钥,并由此进行解密。
技术实现思路
因此本专利技术的目的在于,在经过翻译的计算机程序中对加密进行改进,由此提高防止未经授权的使用的保护性能。根据本专利技术,该任务通过开始时所提到的方法来解决,在该方法中,对于计算机程序加密所需的编码算法的主要部分作为翻译器程序的组成部分来实现。通过捆绑了翻译器程序,要获得这个程序部分是非常困难的,这符合一般的安全要求,这种翻译器程序具有优点地用C++编程语言设计,被编译为机器码,并以这种形式交付。这种方法可以特别具有优点地应用于可翻译的计算机程序,这些程序以编程语言JAVA来实现。Java是一种编程语言,特别用于开发联网的系统,因此对互联网应用程序具有特别的意义。可以采用具有优点的对称加密算法(symmetrischeVerfahren),如所谓的“河豚鱼(Blowfish)”算法,作为加密方法。其中特别适用的是分组码(Blockchiffren),这里数据的编码和解码都以分组方式进行,例如以64位的码组来实现。为了保护程序,仅对与安全性相关的程序部分进行加密通常就足够了。从而可以加快对程序的翻译。借助于附图中以图示所表示的实施例更详细地说明本专利技术。作为示例的图解表示了根据本专利技术对JAVA程序的保护。其中典型地涉及到下面两种类型的程序应用程序(Applications)它们是完整的JAVA程序,包含了对于程序执行所需的所有组成部分,尤其是类,以及支程序(Applets)它们是小应用程序,在其要运行的客户端或目标计算机中已经预先设定为特定的软件类。JAVA专用于计算机网络,在分布于相应网络节点的资源中开发。因此它特别适用于客户端/服务器系统,并且特别适用于在客户端运行的应用程序。而这一应用领域对防止未经授权使用程序的有效保护有特别高的要求。现在根据本专利技术,一个特定的应用程序,即一个JAVA程序,由软件提供者S设计,并通过编译器转换为与平台无关的字节代码或P代码JC。这种代码与JAVA源代码相类似,对于本领域技术人员来说可以很容易地进行分析。这样,为了避免未经授权的使用,通过编码算法EP将整个程序或者至少程序中与安全性相关的部分转换为加密形式。经过加密或没有加密的字节代码转交给客户,或者传输到客户所操作的计算机系统JA上,在那里作为经过加密的字节代码JCE或没有加密的字节代码JCN被存储。在互联网应用中,应用程序也可以通过网络下载到客户端JA上。计算机系统或客户端JA包含翻译器程序JE,它将字节代码翻译成机器码JO。在互联网应用中,翻译器程序JE通常包含在客户端JA的WWW浏览器中。现在根据本专利技术,这个翻译器程序JE还包含对于经过加密的程序部分进行解码所必需的密码算法OE,即在一种对称加密算法中,如河豚鱼算法中,特别地包含长度为32至448字节的密钥。可选地,也可以采用其他加密方法,例如Diffie-Hellman方法。为此,软件提供者不仅需要将应用程序本身,而且还要将包含加密算法OE的翻译器程序JE一起交付给客户。JAVA应用程序基于其作为可翻译的软件的特性必须作为容易读取的字节代码转交,与此相反,翻译器程序软件JE以可直接执行的机器码的形式交付给客户C或计算机系统。因此在实际情况下要获得对于解码所需的密钥几乎是不可能的。优选地采用对称加密算法的好处是,算法的使用过程比较快,这样通过编码在翻译器程序工作过程中不会产生重大的延时。河豚鱼算法属于所谓的分组码类型,其中加密算法分别使用了具有固定长度的、在具体情况下长度为64位的数据组。因此,这种分组码特别适用于在通过翻译器程序分步执行程序的情况下对JAVA程序指令进行解码。权利要求1.防止未经授权重复使用经过翻译的计算机程序的方法,其中计算机程序通过编码算法来进行加密,其特征在于,对于加密计算机软件所需的编码算法(OE)的主要部分作为翻译器程序的组成部分来实现。2.如权利要求1所述的方法,其特征在于,经过翻译的计算机程序以编程语言JAVA来实现。3.如权利要求1至2中任一项所述的方法,其特征在于,采用一种对称加密算法作为加密方法(EP),其中对于数据的加密和解密使用了同样的密钥。4.如权利要求3所述的方法,其特征在于,采用一种分组码方法作为加密方法(EP),其中采用了64位码组的加密运算。5.如权利要求1至2中任一项所述的方法,其特征在于,采用了“河豚鱼”算法作为加密方法(EP)。6.如权利要求1至5中任一项所述的方法,其特征在于,只有要保护的计算机程序(JCE)的一部分被加密。7.如权利要求1至6中任一项所述的方法,其特征在于,翻译器程序(JE)以编程语言C++来实现,并以经过编译的形式作为机器码被交付。全文摘要本专利技术涉及一种防止未经授权重复使用经过翻译的计算机程序的方法,其中计算机程序通过编码算法来加密,其特征是对于加密计算机程序所需的编码算法的主要部分作为翻译器程序的组成部分来实现。本专利技术对于用程序语言JAVA所设计的程序特别具有意义,并用于有效保护程序,使其免受未经授权的重复使用。文档编号G06F21/12GK1581083SQ0315669公开日2005年2月16日 申请日期2003年9月8日 优先权日2003年8月6日专利技术者帕沃尔·伯邦库, 伊丽莎贝斯·祖克瑞格尔 申请人:西门子公司本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:帕沃尔·伯邦库伊丽莎贝斯·祖克瑞格尔
申请(专利权)人:西门子公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1