用于解决名称冲突的方法和系统的制作方法

文档序号:6351081阅读:194来源:国知局
专利名称:用于解决名称冲突的方法和系统的制作方法
技术领域
本发明涉及一种用于在加密的软件组件中解决名称冲突的方法和一种用于名称无冲突地集成来自于不同的软件组件制造商OEM (OriginalEquipment Manufacturer原始设备制造商)的软件组件的系统。
背景技术
在应用加密的软件或者软件组件的情况下,可能出现名称冲突。由于相应的软件组件仅仅加密地存在,因此在常用的系统中不容易解决这种名称冲突。如果例如由不同的软件组件制造商OEM生成或者说生成了软件组件或者软件包,并且随后对其加密,则在以后集成软件组件时不能排除名称冲突。如果例如两个软件包在功能名称相同的情况下调用特定的功能,然而该功能在两个软件组件中以不同的子程序或者说Subroutine命名,则存在名称冲突。由于对于两个软件包或者说软件组件的用户而言,源代码并不以未加密的形式存在,因此其不能解决名称冲突。

发明内容
因此本发明的目的在于,提出用于在加密的软件组件中解决名称冲突的一种方法和一种系统。该目的根据本发明通过一种具有根据权利要求1所述的特征的方法来实现。本发明提出了一种用于在加密的软件组件中解决名称冲突的方法,包括以下步骤(a)在加密的软件组件(ENC-SWK)中识别名称冲突;(b)利用用于解决名称冲突的名称冲突解决规则来扩展其中一个识别了名称冲突的加密的软件组件(ENC-SWK);(c)在将加密的软件组件传输至目标系统装置和在目标系统装置上对其进行解密之后,根据一同传输的名称冲突解决规则解决名称冲突。在根据本发明的方法的一个实施方式中,当软件组件具有至少一个用于功能调用、常量、变量、数据类型或其它数据对象的名称与不同的功能、常量、变量、数据类型或其它对象的名称相同时,则识别在两个加密的软件组件之间的名称冲突。在根据本发明的方法的一个可能的实施方式中,根据相应的加密的软件组件的未加密的头数据识别在加密的软件组件之间的名称冲突。在根据本发明的方法的一个可替换的实施方式中,根据在加密的软件组件中所应用的、用于软件组件调用、常量、变量、数据类型或对象的名称的表格识别在加密的软件组件之间的名称冲突。在根据本发明的方法的一个可能的实施方式中,在两个软件组件之一中,在对该软件组件进行针对所有包含在软件组件中的、应用那个引起名称冲突的名称的功能调用和访问解密之后,通过替代该名称来替换那个引起该名称冲突的名称,以解决在两个加密的软件组件之间的名称冲突。在根据本发明的方法的一个可能的实施方式中,替代名称包含在一同传输的名称冲突解决规则中。在一个可替换的实施方式中,替代名称在目标系统装置中生成。在根据本发明的方法的一个可能的实施方式中,替代名称由生成的随机数或者由计数值构成。在根据本发明的方法的一个可能的实施方式中,用于另一个软件组件的功能调用、常量、变量、数据类型或者其它对象的名称包括一系列符号、字母和数字。在根据本发明的方法的一个可能的实施方式中,被开发软件组件在应用混合加密方法时利用公开的密钥加密。在根据本发明的方法的一个可能的实施方式中,加密的软件组件在应用混合加密方法时利用私人密钥解密,该私人密钥集成在目标系统装置中。在根据本发明的方法的一个实施方式中,公开密钥和私人密钥作为密钥对通过目标系统装置的制造商生成。在根据本发明的方法的一个可能的实施方式中,目标系统装置由程序存储控制器构成。在根据本发明的方法的一个可能的实施方式中,自动地执行名称冲突识别、利用名称冲突解决规则来扩展加密的软件组件以及解决名称冲突。本发明还提出了一种用于名称无冲突地集成来自于不同的软件组件制造商的软件组件的系统,具有不同的软件组件制造商的软件开发装置,其制造软件组件并且利用其相应的带密码的密钥进行加密,其中在集成加密的软件组件时出现名称冲突的情况下,利用名称冲突解决规则来扩展其中出现了名称冲突的至少一个加密的软件组件,和传输装置,用于将加密的软件组件连同通过名称冲突解决规则扩展的加密的软件组件传输至目标系统装置,其在接收到传输的加密的软件组件之后首先将其解密并且随后根据一同传输的名称冲突解决规则自动地解决出现的名称冲突。在根据本发明的系统的一个可能的实施方式中,传输装置具有数据网。在根据本发明的系统的一个可替换的实施方式中,传输装置由数据载体或者存储器构成。本发明还提出了一种目标系统装置,用于解决软件组件中的名称冲突,具有用于接收加密的软件组件的接口,其中,当利用名称冲突解决规则来扩展至少一个接收的加密的软件组件时,目标系统装置在对加密的软件组件解密之后,根据接收的名称冲突解决规则自动地解决出现的名称冲突。


下面参照

根据本发明的方法和根据本发明的系统的实施方式。其示出图1是流程图,用于说明根据本发明的用于在加密的软件组件中解决名称冲突的方法的一个可能的实施方式;图2是框图,用于说明根据本发明的用于名称无冲突地集成软件组件的系统的一个可能的实施方式。
具体实施例方式如在图1中可识别出地,根据本发明的用于在加密的软件组件中解决名称冲突的方法基本上具有三个步骤Si,S2,S3。在第一步骤Sl中,首先识别或者说探测了在加密的软件组件中出现名称冲突的情况,该软件组件来自于相同的或者不同的软件组件制造商OEM。在此,特别当软件组件具有至少一个用于功能调用、常量、变量、数据类型或其它对象的名称与或者不同的功能、常量、变量、数据类型的其它对象的名称相同时,则识别了在加密的软件组件之间的名称冲突。如果例如两个软件组件在针对不同的功能的功能调用中具有相同的名称,则存在名称冲突,该名称冲突在步骤Sl中被识别。在一个可能的实施变体中可以根据相应的加密的软件组件的未加密的头数据来识别该名称冲突。在一个可替换的实施方式中,根据在加密的软件组件中所应用的、用于软件组件调用、常量、变量、数据类型或对象的名称的表格识别了在加密的软件组件之间的名称冲突。一旦在步骤Sl中识别了名称冲突,则在步骤S2中进行对加密的软件组件中任一个的扩展,其中利用用于解决名称冲突的名称冲突解决规则来识别名称冲突。最后,在步骤S3中将加密的软件组件传输至目标系统装置。在传输之后才在目标系统装置上对软件组件行解密之后,根据一同传输的对于目标系统装置在明文中可读取的名称冲突解决规则解决名称冲突。因此,在第三方不会看到软件组件制造商OEM的源代码的情况下解决名称冲突。在两个软件组件之一中,在对软件组件进行针对所有包含在软件组件中的、应用那个引起名称冲突的名称的功能调用和访问解密之后,通过替代该名称来替换那个引起名称冲突的名称,以解决在两个所述加密的软件组件之间的名称冲突。在根据本发明的方法的一个可能的实施方式中,替代名称包含在一同传输的名称冲突解决规则中。名称冲突解决规则因此例如称为通过“替代名称”替换软件组件χ的“功能名称”。可替换地,替代名称也可以通过目标系统装置生成。替代名称例如可以是生成的随机数或通过计数器形成的计数值。用于功能调用、常量、变量、数据类型或其它对象或者说数据对象的名称例如可以是一系列符号,该符号包括字母和数字。在根据本发明的方法的一个可能的实施方式中,通过软件组件制造商OEM开发的软件组件SWK在应用混合加密方法时利用公开密钥Kpub加密。在从发射装置传输至接收装置之后,在接收侧在应用混合加密方法的情况下利用私人密钥Kphv对加密的软件组件ENC-SffK解密,该私人密钥可以集成在目标系统装置中。在此,私人密钥Kphv优选地防人为篡改地存储在目标系统装置中。在根据本发明的方法的一个可能的实施方式中,公开密钥Kpub和私人密钥作为密钥对通过目标系统装置的制造商生成,其中目标系统装置可以是程序存储控制器SPS。
图2示出了框图,用于说明根据本发明的用于名称无冲突地集成软件组件SWK的系统1的一个可能的实施方式,该系统可以来自于不同的软件组件制造商OEM。在图2中示出的实例中,两个不同的软件组件制造商OEMa* OEMb例如借助于相应的开发工具生成两个不同的软件组件SWKa和SWKB。软件开发装置2A,2B利用相应的软件组件制造商OEMa和OEMb的相应带有密码的密钥Kra对软件组件SWK加密。软件组件SWK例如可以是程序或子程序,但也可以是其他软件模块,例如文件。软件组件SWK利用相应的开发工具首先被生成或者说编程,并且作为资源或者说源代码存在。为了保护软件组件SWK不被不期望的未被授权的第三方访问,该软件组件或者说源代码借助于带有密码的密钥Kcjema或者Kmb通过加密单元在软件开发装置2A,2B内被相应地加密,并且随后以被加密的形式存在。在图2中示出的实施例中随后将两个加密的软件组件ENC-SWKa和ENC-SWKb例如通过第三软件组件制造商C集成在软件开发装置2C或软件集成装置中。在图2中示出的实例中,两个软件组件制造商OEMa和OEMb例如是另一个软件组件制造商OEM。的供应商。在第三软件组件制造商OEMc的装置2C中,当集成两个加密的软件组件ENC-SWKa, ENC-SWKb时出现名称冲突时,其中出现了名称冲突的两个加密的软件组件中的至少一个利用名称冲突解决规则来扩展。在完成对两个加密的软件组件中的一个、例如加密的软件组件ENC-SWKb的扩展之后,两个加密的软件组件通过传输装置3被传输至目标系统装置4。在此,实现了将加密的软件组件连同通过名称冲突解决规则来扩展的加密的软件组件一起传输。在图2中示出的实施例中,传输装置3是数据线或数据网。在一个可替换的实施方式中,传输装置是数据载体或者说存储器。在通过数据网进行传输时,传输可以有线地但也可以无线地进行。在目标系统装置4的一侧上,在接收到传输的加密的软件组件之后首先对其进行解密并且随后根据一同传输的名称冲突解决规则,在接收侧自动解决出现的名称冲突。随后执行软件组件。目标系统装置4例如可以是可编程存储控制器SPS。在根据本发明的方法和系统中,目标系统装置4接收到信息,该信息是有关于需替换的功能调用,用于根据一同传输的名称冲突解决规则解决名称冲突。根据本发明的系统使得用户可以灵活地重新命名加密地提供的软件或者说软件组件的调用的功能。在此,尽管为了解决名称冲突可以存在重新命名的可能性,但是也可以被保护相应的软件组件制造商OEM的技术秘密(Know-how),使第三方无法对其访问,这是因为用户可以在其目标系统上解密之后在目标系统装置4上执行加密的软件,然而不能以未加密的形式知晓。根据本发明的方法和系统对于各种类型制成的软件组件SWK或者说软件模块是通用可替换的。根据本发明的方法也可以应用在不同软件组件的多级的集成中。在一个可能的实施方式中,可用于解决名称冲突的替代名称包含在一同传输的名称冲突解决规则中。在一个可替换的实施方式中,替代名称在用户的目标系统装置4中生成。在此涉及生成的随机数、生成的计数值或者生成的一系列字母。替代名称的字宽可以变化或预设。在一个可能的实施方式中进行安全性检查,即替代名称是否就其而言解决了名称冲突。在这种情况下,例如借助于随机发生器或计数器生成了另一个替代名称。
权利要求
1.一种用于在加密的软件组件(ENC-SWK)中解决名称冲突的方法,包括以下步骤(a)在所述加密的软件组件(ENC-SWK)中识别(Si)名称冲突;(b)利用用于解决名称冲突的名称冲突解决规则来扩展(S2)其中一个识别了所述名称冲突的所述加密的软件组件(ENC-SWK);(c)在将所述加密的软件组件(ENC-SWK)传输至目标系统装置(4)和在所述目标系统装置(4)上对所述加密的软件组件进行解密之后,根据一同传输的所述名称冲突解决规则解决(S3)所述名称冲突。
2.根据权利要求1所述的方法,其中当所述软件组件(SWK)具有的至少ー个用于功能调用、常量、变量、数据类型或其它对象的名称与不同的功能、常量、变量、数据类型或其它对象的名称相同时,则识别在所述加密的软件组件(ENC-SWK)之间的名称冲突。
3.根据权利要求1或2所述的方法,其中根据相应的所述加密的软件组件(ENC-SWK) 的未加密的头数据识别在所述加密的软件组件(ENC-SWK)之间的名称冲突。
4.根据权利要求1或2所述的方法,其中根据在所述加密的软件组件(ENC-SWK)中所应用的、用于软件组件调用、常量、变量、数据类型或对象的名称的表格识别在所述加密的软件组件(ENC-SWK)之间的名称冲突。
5.根据权利要求1-4所述的方法,其中在两个所述软件组件之一中,在对所述软件组件进行针对所有包含在软件组件中的、应用那个引起所述名称冲突的名称的功能调用和访问解密之后,通过替代所述名称来替换那个引起所述名称冲突的名称,以解决在两个所述加密的软件组件(ENC-SWK)之间的名称冲突。
6.根据权利要求5所述的方法,其中所述替代名称包含在所述一同传输的名称冲突解决规则中,或者在所述目标系统装置(4)中生成。
7.根据权利要求6所述的方法,其中所述替代名称由生成的随机数或者由计数值构成。
8.根据权利要求1-7所述的方法,其中用于另ー个软件组件的功能调用、常量、变量、 数据类型或者其它对象的名称包括一系列符号,所述符号包括字母和数字。
9.根据权利要求1-8所述的方法,其中被开发软件组件(SWK)在应用混合加密方法时利用公开密钥(Kpub)加密。
10.根据权利要求1-9所述的方法,其中所述加密的软件组件(ENC-SWK)在应用混合加密方法时利用私人密钥(κ_ν)解密,所述私人密钥集成在所述目标系统装置(4)中。
11.根据权利要求1-10所述的方法,其中所述公开密钥(Kpub)和私人密钥(Kphv)作为密钥对通过所述目标系统装置(4)的制造商生成。
12.根据权利要求11所述的方法,其中所述目标系统装置(4)由程序存储控制器构成。
13.根据权利要求1-12所述的方法,其中自动地执行所述名称冲突识别、利用所述名称冲突解决规则来扩展所述加密的软件组件(ENC-SWK)以及解决所述名称冲突。
14.一种用于名称无冲突地集成来自于软件组件制造商(OEM)的软件组件的系统(1), 具有不同的软件组件制造商(OEMA,OEMB)的软件开发装置(2A,2B),所述软件开发装置制造软件组件(SWKA, SffKB)并且利用所述软件组件的相应的带密码的密钥(KOEMA,KOEMB)进行加密,其中在集成所述加密的软件组件(ENC-SWK)时出现名称冲突的情况下,利用名称冲突解决规则来扩展其中出现所述名称冲突的至少一个加密的软件组件(ENC-SWKA,ENC-SffKB),^P传输装置(3),用于将所述加密的软件组件(ENC-SWK)连同通过所述名称冲突解决规则扩展的所述加密的软件组件(ENC-SWKA,ENC-SffKB)传输至目标系统装置(4),所述目标系统装置在接收到传输的所述加密的软件组件(ENC-SWKA,ENC-SWKB)之后首先将所述加密的软件组件解密,并且随后根据一同传输的所述名称冲突解决规则自动地解决出现的所述名称冲突。
15.根据权利要求14所述的系统,其中,所述传输装置(3)具有数据网或者数据载体。
16.一种目标系统装置(4),用于解决特别用于根据权利要求14或15所述的系统(1)的软件组件中的名称冲突,具有用于接收加密的软件组件(ENC-SWK)的接口,其中,当利用名称冲突解决规则来扩展至少一个接收的所述加密的软件组件(ENC-SffK)时,所述目标系统装置(4)在对所述加密的软件组件(ENC-SWKA, ENC-SffKB)解密之后,根据接收的所述名称冲突解决规则自动地解决出现的名称冲突。
17.一种计算机程序,具有用于实施根据权利要求1-13所述的方法的程序指令。
18.一种数据载体,所述数据载体存储根据权利要求17所述的计算机程序。
全文摘要
本发明涉及用于名称无冲突地集成来自于软件组件制造商(OEM)的软件组件的一种方法和一种系统,具有制造软件组件(SWK)并利用其相应的带密码的密钥进行加密的不同软件组件制造商(OEM)的软件开发装置,其中在集成加密的软件组件(ENC-SWK)时出现名称冲突的情况下,利用名称冲突解决规则来扩展其中出现了名称冲突的至少一个加密的软件组件(ENC-SWK);并且具有传输装置,用于将加密的软件组件(ENC-SWK)连同通过名称冲突解决规则扩展的加密的软件组件传输至目标系统装置,其在接收到传输的加密的软件组件(ENC-SWK)之后首先将其解密并且随后根据一同传输的名称冲突解决规则自动地解决出现的名称冲突。本发明实现了解决在可能来自于不同的软件组件制造商的软件组件加密时的名称冲突,而第三方不会看到软件组件的源代码。
文档编号G06F9/445GK102598013SQ201080050757
公开日2012年7月18日 申请日期2010年10月6日 优先权日2009年11月9日
发明者贝恩德·迈尔, 迈克尔·布劳恩, 马库斯·迪希特 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1