CN105530236B - 用于加密的方法、加密装置、解密装置及开发系统 - Google Patents

用于加密的方法、加密装置、解密装置及开发系统 Download PDF

Info

Publication number
CN105530236B
CN105530236B CN201510675496.7A CN201510675496A CN105530236B CN 105530236 B CN105530236 B CN 105530236B CN 201510675496 A CN201510675496 A CN 201510675496A CN 105530236 B CN105530236 B CN 105530236B
Authority
CN
China
Prior art keywords
key
software
component group
components
software model
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.)
Active
Application number
CN201510675496.7A
Other languages
English (en)
Other versions
CN105530236A (zh
Inventor
J·约赫海姆
K·克吕格尔
J·布勒穆尔
G·利斯克
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.)
Desbeth Co ltd
Original Assignee
Dspace Digital Signal Processing and Control Engineering GmbH
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 Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of CN105530236A publication Critical patent/CN105530236A/zh
Application granted granted Critical
Publication of CN105530236B publication Critical patent/CN105530236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • 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
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • H04L9/007Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Abstract

软件模型的保护。按照本发明的加密方法,借助于公共密钥(19)和解密结构(17)加密技术系统的包括软件组件(40)的软件模型(16),其中,后者的定义由软件模型(16)的组件组(42)所包括。解密结构(17)至少部分集成到加密的软件模型(22)中。相应地按照本发明的解密方法借助于同样包括组件组(42)的定义的私密的密钥(21)仅仅解密如下的组件组(42),所述组件组的定义包括与加密的软件模型(22)的定义相一致的私密的密钥(21)。按照一个优选实施形式,私密的密钥(21)的定义可以借助于密钥扩展(23)被事后扩展,从而借助于扩展的私密的密钥(37)可以解密另外的组件组(42)。

Description

用于加密的方法、加密装置、解密装置及开发系统
技术领域
本发明涉及技术系统的软件模型的加密和解密以及相应的加密装置和解密装置。此外本发明包括加密的软件模型和用于开发这样的软件模型的环境。
背景技术
术语软件模型涉及真实的技术系统或这样的系统的部分在例如以控制装置建模或控制装置架构建模、虚拟控制装置验证、硬件在环仿真(“Hardware-in-the-loop”)或“快速控制原型”(RCP)的形式的开发和仿真环境内计算机支持的开发、测试和模拟过程。软件模型在此代表涉及的真实技术系统的仅仅虚拟存在的原型并且在开发环境中部分或完全以其他软件模型或真实的技术(子)系统描绘该软件模型的技术特征、参数、状态和功能以及其接口和相互作用及通信可能性。原则上任意的技术系统可以是这样的软件模型的对象,其中开发过程至少部分也可以包括计算机支持的仿真、虚拟和/或基于软件的原型的创建和测试或者其他虚拟化的开发步骤。在该技术关联内,本发明特别是涉及控制装置的虚拟软件模型,所谓的“虚拟电子控制单元”(V-ECU),该虚拟软件模型控制或调节其他技术装置或系统,例如车辆发动机或类似物。
HIL仿真器和RCP测试装置的开发环境分别包括测试装置,在测试装置上,虚拟控制装置的软件模型以通过测试装置预定的方式实现。软件模型在此包括适合的输入/输出接口,以便将建模的控制装置与要控制的装置连接并且测试其控制功能性。在快速控制原型(RCP)中开发和测试要测试的控制装置的软件模型,该要测试的控制装置与要控制的技术装置连接。在HIL仿真中,与此相对地存在要控制的技术装置的软件模型,该要控制的技术装置与要测试的真实控制装置连接。在两种情况下提供用于测试控制装置的测试装置,其中,控制装置一方面作为模型被测试(RCP)并且一方面地作为可外部连接的硬件原型(HIL)。除此之外,本发明也涉及软件模型,该软件模型至少部分地不仅包括虚拟控制装置而且包括要控制的装置,例如如果不仅控制装置而且要控制的装置都没有完全作为硬件原型存在。
这样的软件模型包括多个以软件方式提供的功能、对象、模块和/或组件,它们根据选择的开发环境使用确定的数据结构并且通过复杂的方式相互作用并且在其特性方面相互影响。这样的软件模型经常由不同的开发者或开发团队在不同的地点处理,而中央主管部门例如开发协调者、项目领导或诸如此类协调分散的开发过程、给开发者或开发团队分配开发任务并且在使用适合的电子通信基础设施结构的情况下对于开发者作为与任务有关的数据记录的发送者。
就这点而言已知的是,在非对称密码学中,数据记录的发送者将所述数据记录以期望的接受者的公共加密密钥进行加密并且接收者可以以其对应的私密的解密密钥将加密的数据记录解密。不过在使用非对称密码学的情况下在分布式开发过程中产生如下问题,即不再存在如下可能,即将各个软件组件或组件组在完整的软件模型中单个地或者相比于相同软件模型的其他组件或组件组不同地加密。而是已知非对称加密仅仅提供如下可能,即由软件模型事先手动提取涉及的组件或组件组,那么似乎分解软件模型,并且将提取的组件或组件组以各个开发者的公共密钥单独地加密。中央主管部门在此必须具有和管理所有开发者和开发团队的公共密钥。
完全除了非对称密码学的巨大管理成本之外,出于技术原因难以可能的是,由软件模型隔离确定的软件组件或组件组并且仅仅提供这些确定的软件组件或组件组给涉及的开发者。与此相对,值得期望的是,给每个开发者提供完整的软件模型并且借助于特别的访问制度(Zugriffsregime)确定不同的权限和资格。
发明内容
就这点而言,本发明的任务在于,提出一种受保护的分布式开发过程,其中,对于每个开发者分别存在完整的软件模型,该开发者但是仅仅具有对该开发者有权处理的软件组件的访问。
该任务通过本发明的加密和解密方法以及电子数据记录和装置来解决。
按照本发明的加密方法,中央主管部门也就是例如开发协调者或项目领导在分布式开发过程中首先产生密码的主密钥和中央的公共的加密密钥,其中,软件模型可以借助于后者完全加密。此外中央主管部门将软件模型的各个组件分为组件组,不同的开发者或开发团队分别对于组件组的处理应是唯一负责的或有权限的。
出于简单的原因,术语开发者在下文中也表示由多个开发者组成的团队,只要这些开发者共同承担开发任务。术语组件组应理解为软件模型的部分数量的组件,其应理解为可以包括一个或多个组件。特别是一个组件也可以包含在多个组件组中,而各个组件组是不相交的。
基于软件组件这样地分为一个或多个组件组,中央主管部门产生解密结构,该解密结构提供以适合的数据结构形式的分组。解密结构包括所述一个或多个组件组的定义,并且一方面通过中央主管部门调节软件模型的加密并且另一方面通过分别有权限的开发者调节加密的软件模型的随后的解密。除了组件组的这些定义之外,解密结构还包括软件模型的各个组件的适合的编址,优选借助于分配属性给如下组件,基于所述组件可以逐组地对各组件编址并且定义组件组。解密结构那么相应于用于在完整的软件模型内按照预定的句法和语义加密组件组的调节机构并且通过这种方式提供区别化的访问制度,该区别化的访问制度给开发者单个地或逐组地分派对软件组件的适当访问。
在下一步骤中,借助于中央公共的密钥按照解密结构加密完整的软件模型。此外解密结构至少部分集成到加密的软件模型中,从而可以在解密中考虑访问制度,该访问制度借助于组件组的定义预定解密结构。在此将解密结构至少部分到软件模型中的集成可以涉及分配给各组件的属性和/或组件组基于这些属性的定义。优选地,属性对组件的分配集成到软件模型中,而建立在其上的组件组的定义、亦即关于要共同解密的组件的说明集成到私密的密钥中。
优选地将各组件单个地加密,但是不必须加密所有组件。而符合目的的可以是,如果个别的组件不需要保护,那么可以对这些组件不进行加密。软件模型也可以就这点而言仅仅部分地加密,从而加密的软件模型一方面可以包括加密的组件而另一方面包括未加密的组件。未加密的组件不必须被解密结构考虑。
通过解密结构至少部分集成到加密的软件模型中如此实现其加密,使得在解密结构中定义的组件组仅仅可以由如下的开发者解密,在所述开发者的私密的解密密钥中集成有正好该组件组的定义。其他的其定义没有被该私密的密钥所包括的组件组不能由该开发者解密。
通过这种方式,本发明一方面允许在唯一步骤中整个软件模型的完整加密,而另一方面允许按照之前确定的并且灵活的访问制度选择地解密各个组件组。不仅根据开发者的相应访问权限以各个组件组的单独的与开发者有关的加密为目标而手动分解软件模块不是必要的,而且耗费地管理和选择性使用开发者的个别公共密钥也不是需要的。而是为了加密仅仅需要唯一的公共密钥,这使得在中央主管部门这边上的管理成本最小化。访问制度作为解密结构直接集成到加密的软件模型中并且可以应用中央加密密钥。加密因此独立于开发者的个人的密码加密密钥。
为了确保按照解密结构的访问制度来解密加密的软件模块,中央主管部门借助于主密钥和对于每个开发者的解密结构产生个人的私密的解密密钥,借助于该个人的私密的解密密钥可以唯一地解密通过解密结构分配给开发者的组件组。因此按照一个优选实施形式,在产生私密的密钥时分别将由解密结构预定的这样的组件组的定义集成到涉及的私密的密钥中,对于这样的组件组的解密,相应的开发者是有权限的。按照一个备选的实施形式,由一个开发者要解密的组件组的定义也可以集成到加密的软件模型中。
在优选情况下,即由一个开发者要解密的组件组的定义集成到该组件组的私密的密钥中,按照本发明的解密方法对于每个加密的组件检验:应用的私密的密钥是否包括要解密的组件组的定义,该组件组包含涉及的组件。仅仅如此开发者才被视为有权限的并且仅仅如此才解密这些组件组。
本发明允许通过中央主管部门以解密结构形式的访问制度来进行中央创建和管理,并且确保访问制度在软件模型的解密时被考虑。每个开发者那么仅仅可以解密对于其存在的完全或部分加密的软件模型的如下组件,所述组件属于一个组件组,该开发者按照解密结构负责该组件组的处理。私密的密钥不与确定的公共的密钥对应,而是与通过解密结构预定的权限对应。此外本发明能实现:软件模型仅须在中央加密一次并且随后在没有安全限制的情况下可以传送给多个开发者。在此软件模型的部分、亦即组件和组件组可以在没有单独操作的情况下而配设有不同的权限。正如中央主管部门那样,开发者仅需要一个密钥,以便利用按照本发明的方法。
按照本发明的加密方法的结果或按照本发明的解密方法的应用对象是以电子数据记录形式的编码,该编码包括加密的软件模型以及至少部分地包括解密结构。虽然电子数据记录包括完整的加密的软件模型,但是软件模型或通过解密结构定义的组件组在其中优选地单独地并且与组件组的其他组件无关地加密。加密的组件组优选包括如下组件,该组件又与其他组件无关地单独地加密。加密的组件组通过应用私密的密钥是可解密的,该私密的密钥包括如下定义,该定义与在电子数据记录中解密结构的相应定义对应。
与本发明相联系地,可将术语“组件组”理解为软件模型的部分数量的如下组件,所述组件相互间具有确定的功能上的、组织上的或其他技术相关性并且因此应由开发者总是共同地解密,以便能实现该组件有意义的处理。这样的组件组的相应定义可以或者集成到解密结构中或者集成到涉及的开发者的私密的密钥中,或者不仅集成到解密结构中而且集成到私密的密钥中。
相应地以两个步骤、亦即优选如此地进行组件组的定义,使得中央主管部门首先基于所述关系确定组件组,并且接着将各个组件如此分配属性,使得每个确定的组件组的组件可以被逐组地编址或者共同描述。在最简单情况下,这可以通过如下方式实现,即,一个组件组的组件一致地带有这些属性中的一个或多个,其他组件组的组件不具有所述属性。优选地但是以如下方式分配属性,使得一个组件组的组件如此通过布尔运算符组合为命题逻辑(aussagenlogisch)的表达,使得仅仅期望的组件满足命题逻辑的表达。
原则上但是也可能的是,以相反的步骤顺序进行组件组的定义,亦即通过如下方式,即,中央主管部门首先给组件分配预定的属性并且随后在解密结构中根据期望的组件的属性定义组件组。即使在该变型中也可以借助于命题逻辑的表达定义组件组,该命题逻辑的表达由期望的组件的属性得以满足。
属性可以涉及开发者或软件组件的特性,或者是纯抽象的特征,所述特征仅仅用于区分组件。优选地,属性例如表示开发者在开发过程中的任务、责任或角色,或者组件的功能、安全等级或著作权,或者仅仅并且没有另外意义地对单个或多个组件编址。例如也可以给每个组件分配自身单独的属性。
通过这种方式给每个组件分配至少一个属性、然而优选多个属性。基于属性化的组件构建解密结构,优选作为列表来构建,该列表的列表条目分别定义组件组,其方法是所述组件组包含(aufgreifen)确定的属性。这样定义的组件组例如可以包括所有如下组件,该组件带有在所属条目中综合的属性中的至少之一。例如列表条目[ABC]按照或规则定义所有如下组件的组,所述组件带有属性A或者属性B或者属性C。备选地,也可以通过和规则定义组件组,从而组件组包括软件模型的如下组件,所述组件具有涉及的列表条目的所有属性。列表条目[ABC]那么也定义所有组件的组,所述组件带有属性A和B和C。原则上可以为了定义组件组而形成任意命题逻辑的表达,所述命题逻辑的表达也应用另外的布尔运算符,例如否、异或、或非、与非或诸如此类。
相应地,中央主管部门基于解密结构优选将至少一个列表条目集成到私密的密钥中,该至少一个列表条目定义如下的组件组,该组件组应借助于私密的密钥是可解密的。在私密的密钥中那么集成如下属性,所述属性定义在解密结构中涉及的组件组。
如果多个组件组应借助于一个私密的密钥来解密,那么涉及的列表条目可以相应地在句法上设计。按照或规则,那么列表条目[AB、CD]定义两个组件组,亦即一方面带有属性A或者属性B的组件的组而另一方面带有属性C或者属性D的组件的组。备选地,也可以通过多个列表条目定义多个由一个私密的密钥要解密的组件组,多个列表条目那么共同地集成到所述私密的密钥中。列表条目可以是任意的命题逻辑的表达,该命题逻辑的表达将属性与布尔运算符组合,只要这对于组件组的定义是适宜的。
一般地,软件模型的按照本发明的加密和解密那么一方面需要属性分配、亦即属性配置给各个组件,而另一方面需要组件组定义为共同可解锁的组件。后者通过各个属性、属性组合或适合组合的属性的说明来实现,例如以借助于布尔运算符的命题逻辑的表达的形式。不仅属性分配而且组件组的定义存放在解密结构中,该解密结构是本发明的中央数据结构。
在此存在将这两个结构集成到加密的软件模型和私密的密钥中的两个原理上的变型。在优选的并且在此主要描述的实施形式中,将属性化集成到软件模型中并且将组件组根据属性的定义集成到私密的密钥中。该变型也称为密钥策略(KP)。在称为密文策略(CP)的变型中是相反的,亦即属性化集成到私密的密钥中,而分别配置给私密的密钥——相应的组件组借助于该私密的密钥应是可解密的——的组件组的定义集成到加密的软件模型中。不仅KP变型而且CP变型被本发明所包括并且可以借助于本发明并且通过本发明来实现。
在加密的软件模型的解密中相应地两类地检测。一方面检测:集成到私密的密钥中的属性是否相应于在加密的软件模型中部分集成的解密结构的列表条目。假如这是这样的情况,那么确保:私密的密钥是有权限来解密由解密结构定义的组件组。在另一步骤中,那么对于加密的软件模型的每个加密的组件根据其属性检测:该组件是否是通过私密的密钥可解密的组件组的部分。假如这是该情况,那么将组件解密。
因此本发明的重要优点在于,软件模型被完全或部分加密,但是可以根据涉及的密钥的权限逐组件地解密。由此一方面避免不必要的管理成本而另一方面有效地阻止无权限的开发者可能访问软件组件。
软件组件可以在软件模型内具有与其他组件确定的功能上的、组织上的或其他关系。优选地,属性部分或完全地描绘这样的关系。假如组件的关系例如形成具有作为图的节点的组件的图、例如定向图(例如层级结构或树状结构),那么属性可以描绘该图结构,其方法是,在确定的关系中给存在的组件分别分配相同属性。
在软件组件之间的典型关系多次地已经从由开发环境预定的数据结构产生,在该开发环境中开发软件模型或虚拟技术系统。作为用于开头提及的控制装置和用于由所是控制装置控制或调节的系统的开发环境优选地考虑AUTOSAR(汽车开放系统架构)通用架构建模工具或基于模型的开发环境,例如用于开发控制装置的控制和调节算法的SIMULINK/MATLAB环境。但是本发明也可用于非AUTOSAR架构。在用于技术系统的建模和仿真的这样的开发环境中,模型的软件组件通过网络或图的节点代表,而在这些组件之间的关系、技术相关性或信号流通过在这些节点之间的定向连接来建模。
如果例如一个组件使用一个或多个上级组件的功能或程序库,那么这样的关系例如可以涉及软件技术相关性;或者如果例如在各组件之间存在定向的信号流,所述组件作为输入参数是需要的,那么这样的关系例如也可以涉及技术相关性。那么给这样的相互有关的组件优选分配相同的属性。另一方面在层级的树状结构中例如可能的是,给树的所有叶片分配不同属性并且给每个上级组件分配所有如下的叶片的全部属性,通过上级组件定义的子树具有这样的叶片。优选地,在一个层级的组件结构中给每个组件和在这每个组件上级的组件分配至少一个共同的属性。由此作为本发明的另一优点通过有权限的开发者确保对于解密的软件模型的可用性的必要的先决条件,亦即在借助于在解密结构中适合的条目形成组件组时考虑在各组件之间的功能上、组织上的、软件技术或其他的关系和关联。
软件组件的这样类型的属性化简化或甚至能实现有意义的组件组的形成。优选地,解密结构如此构成,使得组件组对于每个由组件组所包括的软件组件也包括层级方面在上级的软件组件。通过这种方式,形成在考虑各组件的组件组之间的技术上或组织上有意义的关系。假如需要,解密结构也可以如此构成,使得组件组对于每个由其所包括的软件组件也包括层级方面在下级的软件组件,亦即通过这些组件定义的子树。
在软件模型内可以给出如下组件,所述组件共同形成软件模型的独立的或可执行的或独立起作用的或技术上有意义的部分。软件模型的这样的独立的或可执行的部分例如代表一个子模型,该子模型尽可能地在没有与模型的其他部分相互作用的情况下实现建模的技术系统的确定的功能,该子模型在计算机支持的开发环境中可独立运行或者该子模型对技术系统的技术上有意义的子单元进行建模,例如可更换的模块、标准元件或诸如此类。因此,解密结构或其列表条目优选如此构成,使得这样的可独立执行的子模型的组件综合在一个组件组中。
同样可以在软件模型内也可以具有普通和/或必要的软件组件。普通的组件例如是这样的组件,所述组件在建模的系统中不具有技术相应性(Entsprechung)而是仅仅出于结构的原因而存在,例如以便使得非普通的组件置于适宜地分类的树状结构中或者以便综合技术上联系的组件。与此相对地,必要的组件如此对建模的系统的重要功能或方面进行建模,使得其对于多个子模型或多个组件组的处理是必要的。优选地,软件模型的属性或组件组的建立在其上的定义如此考虑普通和/或必要的组件,使得普通和/或必要的组件包含在每个组件组中或至少在每个如下的组件组中,所述组件组在树状结构中设置在涉及的普通和/或必要的组件之下。
按照本发明的一个特别优选的实施形式,开发者的私密的密钥是可扩展的。这表示,已经输出的私密的密钥——该已经输出的私密的密钥允许涉及的开发者将加密的软件模型的确定的组件组解密——借助于密钥扩展可以如此修改,使得借助于扩展的私密的密钥可解密另外的组件组。
在所述分布式开发过程中,这例如总是在如下情况下是有意义的,即如果中央主管部门想要给开发者给予另外的权限,或者如果对于确定的组件组的权限应由一个开发者传递给另一开发者。例如可能必要的是,一个开发者处理新的组件组,或者在产生私密的密钥之后才证实,该开发者应负责另外的组件组。
在此由中央主管部门基于软件模型的已经存在的属性化产生另一解密结构,该另一解密结构定义软件模型的至少另一组件组。紧接着,中央主管部门借助于主密钥和另外的解密结构产生用于私密的密钥的密钥扩展,该密钥扩展基于组件的存在的属性化包括另外的组件组的定义,该另外的组件组将来借助于相应扩展的私密的密钥应是可解密的。在产生密钥扩展中,中央主管部门应用关于要扩展的私密的密钥的信息,例如以下将阐明的识别特征,并且这些信息优选集成到密钥扩展中。
产生另外的解密结构的过程优选相似或甚至相同于产生原始的解密结构的过程并且可以基于该过程进行,例如其方法是另外的解密结构由初始的解密结构通过匹配或改型产生,优选其方法是承担初始的解密结构的属性化并且补充所述另一组件组的定义。优选地,然而另外的解密结构独立于初始的解密结构产生。同样地,由另外的解密结构产生密钥扩展的过程优选类似于或甚至相同于由原始的解密结构产生私密的密钥的过程。
另外的组件组在另外的解密结构以及密钥扩展中的定义优选借助于如下的组件的存在的属性发生,这样的组件综合在另外的组件组中。为了定义所述另外的组件组但是也可以应用至少另一属性,该另一属性单独地或结合另外的属性至今没有被用于要扩展的私密的密钥的定义中。所述至少另一属性那么适合地集成到密钥扩展中。
扩展的私密的密钥最后由这样的开发者产生,该开发者的私密的密钥是应扩展的。在此,密钥扩展集成到要扩展的私密的密钥中或者与之适合地组合或合并。所述至少另一组件组的由密钥扩展预定的定义、亦即定义该另外的组件组的属性和命题逻辑的表达优选集成到私密的密钥中或者集成到私密的密钥的定义中,从而借助于扩展的私密的密钥在将来也可以解密另外的组件组。扩展的私密的密钥的定义那么包括不仅私密的密钥的而且密钥扩展的定义和属性。
如果要扩展的私密的密钥例如包括定义[AB],该定义对所有组件的组进行定义,这些组件带有属性A和B中的至少之一,另外的解密结构和由此产生的密钥扩展可以例如包括另外的定义[BC],该另外的定义对所有组件的组进行定义,这些组件带有属性B和C中的至少之一。扩展了密钥扩展的私密的密钥那么对于涉及的开发者允许除了组件组[AB]之外也解密组件组[BC]。扩展的私密的密钥的相应的列表条目[AB、BC]那么定义两个组件组。两个组件组关于属性B重叠并不是障碍,因为本发明不需要无重叠地定义组件组。
在借助于扩展的私密的密钥解密加密的软件模型中,同样如在借助于原始的还没有扩展的私密的密钥来解密的情况那样对于加密的软件模型的每个组件附加地检测:这些组件是否是另外的组件组的部分,该组件组现在通过扩展的私密的密钥是可解密的。仅仅当这是这样的情况时,也解密另外的组件组。
在此取决如下,加密的软件模型的解密结构已经包括另外的组件组的定义,该另外的组件组应借助于扩展的私密的密钥附加地解密。假如另外的组件的定义已经在解密结构中设定并且在加密的软件模型中存在,例如因为另一开发者的私密的密钥已经可以解密该组件组,那么该软件模型不必须重新加密。然而假如另外的组件组借助于另外的解密结构重新被定义,如果那么另外的组件组的定义没有包含在初始的解密结构中,那么该软件模型必须借助于相应扩展的解密结构重新加密,以便另外的组件组可以借助于扩展的私密的密钥来解密,或者密钥扩展定义由原始的解密结构定义不可导出的组件组并且就这点而言不是私密的密钥的可允许的扩展。两个变型可以在技术上是有意义的并且由中央主管部门期望的。在首先提及的变型中亦即在借助于扩展的解密结构重新加密软件模型中,另外的解密结构集成到原始的解密结构中,或者在软件模型的加密中不仅考虑原始的解密结构而且考虑另外的解密结构。
备选地,代替单独的另外的解密结构也可以产生扩展的解密结构,该扩展的解密结构不仅包括至今已经可解密的组件组的定义而且包括另外的组件组的定义。该扩展的解密结构那么用于产生密钥扩展并且用于重新加密软件模型。
具有另外的组件组的定义的密钥扩展如此产生,使得另外的组件组仅仅可以由扩展的私密的密钥解密,特别是亦即不单独地通过密钥扩展。密钥扩展在结构、构造或通过单独的区别特征如此区别于私密的密钥,使得密钥扩展在加密的软件模型的解密中识别为这样的密钥扩展并且可以区别于私密的密钥。优选地,该区分通过密钥扩展的特别的结构进行,例如其方法是密钥扩展的句法区别于私密的密钥的句法。备选地,可以应用特定的区别特征,该区别特征在密钥扩展中附加地存在或者相对于私密的密钥缺失。
优选地,原始的私密的密钥以及密钥扩展分别包括识别特征。在私密的密钥或密钥扩展的产生中集成到其中的识别特征可以是随机数也或者带有对于涉及的开发者或私密的密钥的信息,例如以散列值的形式。识别特征也可以较复杂地构成并且编码另外的信息,也例如另外的组件组的定义。
为了确保扩展的组件组可以仅仅通过扩展的私密的密钥解密,那么检测:私密的密钥和密钥扩展的识别特征是否相互对应。该检测可以一方面在将私密的密钥扩展密钥扩展中发生,例如由此使得如果识别特征对应那么仅仅形成扩展的私密的密钥。如果识别特征不对应,那么扩展的私密的密钥在该变型中那么才甚至不形成。
优选地,扩展的私密的密钥然而独立于识别特征的对应性形成,并且针对对应性的检测仅仅在使用扩展的私密的密钥时才发生。在该变型中那么两个识别特征未经检测地接收到扩展的私密的密钥中并且加密的软件模型仅仅当所述两个识别特征对应时才被解密。特别优选地,扩展的私密的密钥的识别特征仅仅当另外的组件组应被解密时才针对对应性进行检测。已经可以通过原始的非扩展的私密的密钥解密的这样的组件组优选也通过扩展的私密的密钥没有限制地解密,即使密钥扩展的识别特征和私密的密钥的识别特征相互不对应。然而另外的组件组在识别特征缺少一致性时不被解密。
在按照本发明的方法中,所述步骤的执行顺序不限于在此所述的顺序。而是本发明包括所有技术上有意义的执行顺序和满足本发明目的的步骤组合。
本发明也包括加密装置,优选实施实现为软件解决方案,该软件解决方案为中央主管部门提供按照本发明的加密方法,例如以软件模块、程序或诸如此类的形式。特别是加密装置包括程序和相应的操作接口,用于产生主密钥和所属的公共的密钥(setup),用于产生解密结构和个人的私密的密钥(keygen),用于产生另外的解密结构和涉及的密钥扩展(extkey),以及用于加密软件模型(enc)。加密装置可以设计为独立的软件以用于实现按照本发明的密码方法,或者集成到开发环境中,在该开发环境内开发和处理软件模型。
此外本发明也包括解密装置,优选实施为软件解决方案,该软件解决方案给开发者提供按照本发明的解密方法,例如以软件模块、程序或诸如此类的形式。特别是解密装置包括程序和相应的操作接口,用于以私密的或扩展的私密的密钥将加密的软件模型解密(dec)。解密装置可以设计为独立的软件以用于实现按照本发明的密码方法,或者集成到开发环境中,在该开发环境内开发和处理软件模型。
附图说明
本发明另外的特征和优点由按照本发明的实施例以下描述以及另外的实施变型方案结合以下附图产生,图中:
图1示出按照本发明的装置的方框图;
图2示意地示出按照本发明的方法的步骤;
图3示出用于测试以软件模型形式的技术系统的环境的方框图;
图4示意地示出按照本发明的方法在软件模型的示例性的属性分配中的步骤;
图5示出具有组件组和属性的示例性的软件模型的视图;
图6示出具有普通软件组件的示例性的软件模型;以及
图7示意地示出用于产生和应用密钥扩展(Schlüsselerweiterung)的方法的步骤。
具体实施方式
本发明的以下描述的优选实施形式借助于软件模型的软件组件的特别是非对称的加密和解密能实现技术系统的软件模型的安全的分布式开发。原则上本发明适用于任意的基于组件的软件模型,不依赖于具体应用的编程语言和数据结构、开发环境或软件模型的其他实施方案。本发明同样少地局限于确定的技术系统的建模。在该背景下,本发明以下示例性地根据虚拟控制装置来描述(“虚拟电子控制单元”;V-ECU),如其例如可以借助于德国Paderborn的dSPACE有限公司的
Figure GDA0002576300980000141
或者
Figure GDA0002576300980000142
环境来开发和测试。
这样的软件模型在所应用的开发环境中例如作为SIMULINK或AUTOSAR通用模型以分层级地组织的多组件软件机构的形式实现。然而本发明不限于该示例性的情景,而是也普遍涉及其他适合的开发和仿真环境以及软件和硬件架构,特别是也涉及非AUTOSAR架构,以及任意的也非层级的软件结构,只要该软件结构逐组件地组织并且可作为视图显示。软件模型在选择的开发环境内借助于适合的描述语言描述,该描述语言可以是专有的
Figure GDA0002576300980000143
或者相应于软件标准,例如基于XML的语言或其他常用的表示语言和标记语言。
图1的示意性情景示出中央主管部门10和例如虚拟控制装置的多个可能的开发者工作位置30中之一,在这些开发者工作位置上共同地开发技术系统的一个软件模型16。在此以下可将术语“中央主管部门”根据上下文或者理解为在图1中以附图标记10表示的技术装置,或者理解为人员开发协调者,该人员开发协调者操作该装置。出于简化的原因,开发者工作位置30、即人员开发者的工作位置的按照硬件方式和软件方式的实施方案以下也直接称为“开发者”。按照上下文但是术语“开发者”也可以表示人员开发者,该人员开发者操作开发者工作位置30。
按照图1,中央主管部门10承担分布式开发过程的协调并且将开发任务发出给开发者30,所述开发者应该分别具有对软件模型16的确定的部分的单独的访问,例如访问结合其他附图所述的组件组42。虚拟控制装置的软件模型16通常包含敏感的数据和信息,特别是源代码、脚本代码、对象代码或者其他程序元素,例如关于建模的技术系统的技术设置或者关于建模的系统的算法、功能或例程。这些敏感的数据仅仅泄露给确定的开发者30并且不应可以由其他开发者30看到或篡改。
按照图1的布置结构和以该布置结构实现的按照图2的方法能实现分布式开发过程。在此中央主管部门10决定,各个开发者30具有哪些访问权限和许可。软件模型16为此通过密码如此受保护,使得该软件模型一方面可以以同样方式地转发给所有开发者30,使得开发者30然而仅仅具有对软件模型16的确定的部分的由中央主管部门10所允许的访问,例如对确定的组件组42的访问。
中央主管部门10由人员的开发协调者操作并且包括不同的以硬件方式和软件方式提供的机构和模块。特别是中央主管部门10包括加密装置11,该加密装置可以实现为独立的计算机或者开发协调者的工作环境的集成的组成部分。加密装置11包括多个软件模块,例如SETUP模块12,以便初始化按照本发明的方法,用于产生密码的密钥的KEYGEN模块13以及用于软件模型16的密码加密的ENC模块14。在存储器15中保存相关数据,例如未加密的软件模型16和解密结构17。在存储器15中也可以保存另外的数据,该另外的数据结合按照本发明的方法产生或应用,例如公共密钥19(pkey)或通过电信通道20发送给开发者30的数据,亦即例如私密的密钥21(skey)、加密的软件模型22(emod)和24(emod’)或密钥扩展23(ext)。
为了与开发者30通信,中央主管部门10包括通信接口18,该通信接口与开发者工作位置30的通信接口37通讯。数据21、22、23、24通过电信通道20受保护地传输。对于软件模型22、24这也总归适用于非单独受保护的电信通道20,因为这些软件模型在传输之前按照本发明加密。而且密钥扩展23原则上可以通过未经保护的通道20传输,因为密钥扩展对于入侵者在没有所属的私密的密钥21的情况下是无价值的。仅仅私密的密钥21必须强制地通过经防卫的通道20传输,以便阻止偷窥攻击并且确保整个方法的完整性。
开发者30与中央主管部门10通过通信接口37数据通信。开发者工作位置30特别是包括解密装置31,该解密装置例如可以以独立的计算机的形式存在或者集成到开发环境中。解密装置31在此包括多个按照软件方式实现的模块,特别是用于所加密的软件模型22、24的解密的DEC模块33以及MERGE模块34,该MERGE模块的功能将在以下描述。除此之外,开发者工作位置30也包括存储器32,在该存储器中保存相关的数据,例如加密的软件模型22(emod)、解密的软件模型35(dmod)或私密的密钥21(skey)和37(skey’)。此外可以在存储器32中在需要时也保存其他数据,例如加密的软件模型24(emod’)、解密的软件模型36(dmod’)或密钥扩展23(ext)。
模块12、13、14和33实现四个中心方法,借助于这四个模块实现本发明的一个特别的实施形式,其中最初由中央主管部门10确定开发者30的访问权限。在该基本的实施形式的一种优选扩展方案中,模块34能实现当最初的加密过程在中央主管部门10这边结束之后也扩展开发者30或其私密的密钥21的访问权利。
图2的步骤S1至S7阐明未加密的软件模型16的加密和解密的基本实施形式,而图2的步骤S8至S14涉及为最初给予开发者30的访问权利进行扩展的特别优选的实施形式。相应地,图4又涉及加密和解密的基本实施形式,而图7涉及访问权利的扩展。
按照图2的步骤S1至S6以及S8至S12由中央主管部门10(Z)执行,而步骤S4、S6、S7、S10和S12至S14由开发者30(X)执行。中央主管部门10在此用作密钥生成器并且例如位于在软件公司的IT或开发部分中。该中央主管部门借助于SETUP模块12在步骤S1中实施按照本发明的方法的初始化,其中在关联的步骤中产生私密的主密钥(mkey)和中央公共密钥19(pkey)[setup()=(mkey,pkey)]。备选地,按照本发明的方法的这两个基本密钥可以在初始化中也单个地产生,例如通过独立的例程[mkeygen=mkey;pkeygen=pkey]。同样可能的是,在初始化中仅仅产生中央管理密钥,该中央管理密钥相互统一主密钥和中央公共密钥19的功能。
主密钥用作中央主管部门10的中央私密的密钥,以便产生所有另外的私密的密钥和相关数据结构。公共密钥19代表中央主管部门10的中央加密密钥。公共密钥就这点而言可以保留在中央主管部门10中,但是也可以转发给开发者30,如果这些开发者在分布式软件开发范围中也应能加密。
除此之外,公共密钥19也可以根据常规非对称的密码学用作解密密钥,以便解密经加密的数据,该数据借助于对应的私密的密钥21加密。
为了加密软件模型16并且将期望的访问权利分配给开发者30,在步骤S2中产生解密结构17(dstr)[dstrgen=dstr]。解密结构17例如当开发者30要求个性化的私密的密钥21或者对于开发者30应提供私密的密钥21时产生。解密结构可以通过任意的适合的数据结构实现,结合所述示例性的实施形式然而一方面包括属性化、亦即属性41对软件模型16的各个组件的分配而另一方面包括列表,该列表的列表条目分别根据分配的属性41确定对加密的软件模型22的确定的部分的访问权利。列表条目在此由单个或多个借助于布尔运算符组合的属性41组成。以这种方式,列表条目确定:涉及的开发者30借助于其个人的私密的密钥21可以解密软件模型16的哪些部分。解密结构17在此考虑软件模型16的组件式构造并且根据属性41——该属性通过属性化配置给组件40——允许访问软件模型16的部分数量的组件40或者一个或多个组件组42。
在步骤S3中,通过解密结构17提供的解密或访问权利在产生个人私密的密钥21(skey)时集成到该私密的密钥中[skeygen(dstr)=skey]。如此例如适宜的是,开发者30——例如运行中央主管部门10的软件公司的协调合伙人的员工——仅仅可以访问软件模型16的这样的组件40或组件组42或者对它们进行解密,该组件或组件组相应于其功能、其技术部分或其任务领域。
在步骤S3中那么对于每个参与开发过程的开发者30产生自身的个人的私密的密钥21,该私密的密钥有别于其他开发者的私密的密钥。在此一方面考虑主密钥(mkey)而另一方面由解密结构17将访问权利与涉及的开发者30的私密的密钥21相联系或集成到其中。
在步骤S4中,产生的私密的密钥21由中央主管部门10通过电信通道20受密码保护地传输给涉及的开发者30。私密的密钥21为此例如借助于开发者30的公共密钥加密,该公共密钥与中央主管部门的按照本发明的公共密钥不同并且由开发者30借助于相应的私密的密钥再解密,该相应的私密的密钥又不同于按照本发明的私密的密钥21。但是对称的方法在此也是可用的,只要受保护地实现密钥交换。备选地,私密的密钥21也可以通过其他安全方式传送给开发者30,例如通过邮寄途径或亲自地。
在步骤S5中,软件模型16借助于中央公共密钥19加密[enc(mod,pkey,dstr)=emod]。在此来自解密结构17(dstr)的属性化亦即属性41对所基于的软件模型16的组件40的配置集成到产生的加密的软件模型22(emod)中,以便不同开发者30的集成到相应私密的密钥21中的访问权利随后可以根据加密的软件模型22来检测(参照步骤S7)。
在步骤S6中将加密的软件模型22(emod)由中央主管部门10传输给所有开发者30,而在步骤S7中将加密的软件模型22由开发者30借助于DEC模块33和之前接收的个人的私密的密钥21解密[dec(emod,skey)=dmod]。附加地可以在解密步骤S7中也应用公共密钥21(pkey),只要该公共密钥由中央主管部门10传输给开发者30,例如在传输步骤S4的范围中。
因为在步骤S7中产生的解密的软件模型35(dmod)在此不同于原始的未加密的软件模型16(mod),因为解密的软件模型35具有仅仅解密形式的软件模型16的如下组件40或组件组42,所述组件或组件组借助于个人的私密的密钥21根据解密结构17解密。解密的软件模型35的所有其他组件40和组件组42保持加密并且不受到开发者30的访问。
在解密步骤S7中,DEC模块33根据在步骤S5中集成到加密的软件模型22中的属性化检测:加密的软件模型22的哪些组件组42通过在步骤S3中集成到私密的密钥21中的列表条目详细说明。仅仅当对于私密的密钥21确保的访问权利相应于这样的访问权利时,该访问权利保存在对于该密钥21加密的软件模型22中,才解密涉及的组件40或组件组42并且产生解密的软件模型36。
在步骤S2中产生解密结构17(dstr)中,为所有开发者30产生一个共同的解密结构17,该共同的解密结构定义所有开发者30的访问权利。在步骤S5中属性化集成到加密的软件模型22中,而在步骤S3中将共同的解密结构17的这样的部分接纳到私密的密钥21中,该部分涉及如下开发者30的访问权利,该开发者的私密的密钥21被产生。备选地但是也可以对于每个开发者30产生自身个人的解密结构17,该解密结构仅仅定义这样的组件40和组件组42,该组件和组件组应可以由涉及的开发者30解密。在步骤S5中,加密的软件模型然而如此产生,使得该加密的软件模型涉及所有私密的密钥21的访问权利,以便可以将其相同地提供给所有开发者30。
按照步骤S1至S7的方法基于如下方案,即全部需要的访问权利最初在步骤S2中以包括属性41的列表条目的形式保存在解密结构17中并且根据要提供给相应的开发者30的访问权利各自集成到在步骤S3中产生的私密的密钥21中。在实践中然而发生,应给已经具有私密的密钥21的开发者30事后分配另外的访问权利。在步骤S3中最初产生的私密的密钥21那么必须扩展另外的访问权利;涉及的开发者30那么需要相应扩展的私密的密钥37(skey’)。私密的密钥21扩展另外的访问权利由中央主管部门10协调,因为各个开发者30不可能具有独立改变或扩展其私密的密钥21的权利。特别是私密的密钥21如此产生,使得对于开发者30不可能的是,组合两个存在的私密的密钥21及其访问权利。
只要开发者30需要对软件模型16的组件40或组件组42的另外的访问权利,那么中央主管部门在步骤S8中首先产生相应扩展的解密结构17(dstr’)。扩展的解密结构可以或者基于已经在步骤S2中产生的解密结构17,或者独立于该解密结构重新产生[dstrgen=dstr’]。在此仅仅改变或扩展通过列表条目预定的访问权利,软件模型16的属性化然而保持不变。在步骤S9中那么产生密钥扩展23(ext),该密钥扩展涉及这样的访问权利,该访问权利由扩展的解密结构17(dstr’)提供[extkey(dstr’)=ext]。
密钥扩展23优选同样如私密的密钥21那样通过KEYGEN模块13产生。同样为此但是也可以在中央主管部门10中提供独立的EXTKEY模块,因为私密的密钥21和密钥扩展23根据不同方法产生。这已经表明:密钥扩展23不是独立的私密的密钥并且就这点而言无问题可以用于解密经加密的软件模型22、24。对于密钥扩展23同样少地改变软件模型16的组件40的属性化。而密钥扩展23仅仅基于存在的属性分配传输另外的访问权利并且必须与已经存在的私密的密钥21适合地联系,以便另外的访问权利转移到原始的私密的密钥21。在密钥扩展23在步骤S10中传输给开发者30之后,该开发者在步骤S13中组合密钥扩展23与原始的私密的密钥21[mergekey(skey,ext)=skey’]并且产生扩展的私密的密钥37(skey’)。密钥扩展23与相应的私密的密钥21的组合借助于MERGE模块34实施。
假如扩展的私密的密钥37的扩展的访问权利不需要重新加密软件模型16,那么可以将对于开发者30已经存在的加密的软件模型22在步骤S14中重新解密,以便解密另外的组件40或组件组42。在图2中示出的情况下,即对于开发者30附加地要给予的访问权利没有在步骤S2中在初始的解密结构17中已经保存,例如因为所涉及的另外的组件组42至今还没有设定,则中央主管部门10在步骤S11中重新借助于中央公共密钥19和扩展的解密结构17(dstr’)加密软件模型16,以便如此产生修改的加密的软件模型24(emod’)[enc(mod,pkey,dstr’)=emod’]并且在步骤S12中传输给开发者30。
图2的步骤的具体顺序可仅仅示例性地理解,因为出于本发明目的实现的每个任意其他的步骤顺序同样由本发明所包括。如此例如步骤S3至S6可以以其他顺序执行,因为为了本发明目的不重要的是,是首先产生和传输私密的密钥21,还是首先产生和传输加密的软件模型22。特别是私密的密钥21和加密的软件模型22也可以在一个共同步骤中传输给开发者30。相应地例如也适用于步骤S9至S12和按照图4、5和7的方法。
按照本发明的一个特别优选的实施形式,结合图1和2所述的方法应用到技术系统的加密中,这些技术系统涉及虚拟控制装置和/或要控制或要调节的装置或系统,例如车辆发动机或类似物。相应软件模型16由多个组件40组成,所述组件分明层级式地构造,例如以树状结构或定向图的形式。本发明然而不限于这样构造的软件模型16,而是同样也用于每个任意的基于模型的软件模型16,其中各个组件40相互间具有技术上、组织上或其他关系。组件40在此代表确定的代码序列、程序模块、程序模型或建模的技术系统的描述,例如以XML文件或类似物的形式。在控制装置和/或要控制或要调节的技术装置或系统的逐组件分层级构造的软件模型16中,每个组件40可以包含一个或多个子组件,其中具有根组件,该根组件代表整个建模的技术系统或整个建模的控制装置。除了根组件以外,每个另外的软件组件是恰好另一上级软件组件的部分。
图4至7示出逐组件组织的软件模型16的示例性的树状结构,其中,图4和5的以K0表示的组件涉及虚拟控制装置,以K1和K2表示的组件40是该虚拟控制装置的模块,而以K3和K4表示的组件40又涉及软件组件K2的子模块或软件部分。各个软件组件40在此或者是纯软件架构技术的性质或者代表要建模的技术系统的可独立应用或技术上完成的部分,它们必要时可独立执行或应用。
就这点而言,图3示出HIL仿真器的测试环境102,该仿真器具有由真实控制装置120要控制的虚拟技术装置或系统的不同的软件模型108。附图标记104表示测试环境102用于通过接口电缆122连接真实的控制装置120的输入/输出接口。附图标记106表示测试环境102的输入/输出功能,所示输入/输出功能通过在接口104与不同的软件模型108之间的连接相耦合并且转换或变换如下信号,所述信号由真实的控制装置120定向到软件模型108并且反之亦然。借助于按照图3示例性的布置结构,根据与不同软件模型108的相互作用测试真实的控制装置120的功能。另一方面软件模型108如此进一步开发,使得软件模型对控制装置120的控制适合地反应。在此,那么通过仿真测试:控制装置120是否如期望那样运行并且如期望那样驱控要控制或要调节的技术系统的不同软件模型108。
相反也可能的是,软件模型108将控制装置建模并且要控制的真实系统通过电缆122连接到测试环境102。同样可能的是,不仅控制装置而且要控制的系统以软件模型108的形式保存在测试环境102中,以便在早的开发阶段中测试整个技术系统。为了在不同控制装置的配合作用中发现错误,也可以借助于测试环境102实施整体测试,其中多个控制装置120连接到HIL仿真器并且同时被测试。在这多个控制装置中那么典型地存在以软件模型108的形式的至少一个。
图3的布置结构代表典型的HIL仿真器,其中单个控制装置120受到实时仿真,而相反的情况代表典型的RCP测试环境,在该相反的情况下存在单个的控制装置作为软件模型108。除了具有多个连接在其上的控制装置120的HIL仿真器的之前表示的情景之外,在这些控制装置中的至少一个作为软件模型108存在,RCP测试情景提供另一种可能,即,测试作为软件模型108存在的控制装置120。
在每种情况下,要控制或要调节的技术系统可以是任意的技术装置或系统,也可以是另一存在的控制装置,该控制装置又连接到要控制的技术系统并且借助于其在测试环境102中可以测试或进一步开发控制功能。结合本发明,软件模型108由中央主管部门10加密并且传输给开发者30以用于在那里进一步开发。
图4阐明根据具有软件组件40的分层级组织的软件模型16的按照本发明的方法,所述软件组件表示为矩形,这些矩形形成一个网络(Graphen)并且以K0至K4表示。
受按照图2的方法的启发,在图4的步骤S100中执行初始化过程(setup),在其范围中产生主密钥以及中央公共密钥19。在初始化的范围内也产生解密结构17,该解密结构一方面包括软件模型16的属性分配(方框17的左侧)以及基于此另一方面以列表条目形式的访问权利(方框17的右侧),该访问权利定义组件组42,该组件组应对于开发者30借助于个人私密的密钥21是可解密的。在图2中的初始化步骤S1或在图4中的S100不必须对于每个要进一步加密的软件模型16重新执行,因为主密钥和公共密钥19通常可以重复使用,即使定义或应用另外的组件40和组件组42或属性41。
属性化分别给组件K0至K4分配一个或多个属性A、B和C。给根组件K0配置属性ABC,给第一层级的两个位于其下的组件K1和K2配置属性A和BC,而给第二层级的两个组件K3和K4配置属性B和C。该属性化用于将组件40简单分组为组件组42,对于组件组的处理给开发者30借助于列表给予访问权利。该列表又具有三个条目,亦即具有属性A的条目,具有属性B的条目和具有属性C的条目。所述条目中的每个条目定义组件组42,亦即其组件40至少带有分别给定的属性41的组件组。
如结合图2所述,个人私密的密钥21分别带有解密结构17自身中的至少一部分,亦即正好这样的部分,该部分能使得涉及的私密的密钥21正好解密相应于涉及的定义的组件40。在按照图4的实施例中,这是这样的列表条目,该列表条目能使得相应的私密的密钥21能够解密由中央主管部门10设定的组件组42。
在步骤S200(enc)中加密软件模型16之后,在步骤S300中分别产生用于三个不同开发者30的三个私密的密钥21(keygen),其中私密的密钥2中之一带有具有属性A的列表条目,从而借助于该密钥可以解密由这样的组件40组成的组件组42,这些组件至少带有属性A。另两个的私密的密钥21带有具有属性B和属性C的列表条目。中央主管部门10具有关于此的完整控制,即哪些软件组件40综合为一个组件组42并且释放给用于解密的有权限的开发者30。因此解密结构17也至少部分集成到加密的软件模型22中,以便随后可以实现调整,即,确定的私密的密钥21是否有权限用于确定的组件组42的解密。在按照图4的实施例中,这是组件40的属性化。产生的私密的密钥21除了加密的软件模型22之外最后在步骤S400中传输给相应的开发者X1、X2和X3。
根据所述步骤清楚的是,解密结构17的一部分集成到加密的软件模型22中,那么按照图4是属性化;而另一部分集成到私密的密钥21中,那么按照图4就是列表条目,所述列表条目定义可解密的组件组42。为了解密需要两个部分,亦即完整的解密结构17,其中属性化和列表条目与在图2和4中应用的密钥策略(KP)所不同地也正好是相反的,亦即按照密文策略(CP)可以集成到加密的软件模型22和私密的密钥32中。图2和4的实施形式也可以按照密文策略修改,而无需背离按照本发明的核心。
在步骤S500中,三个开发者30中的每个将加密的软件模型22借助于配置给其的个人的私密的密钥21解密,从而解密相应不同的组件组42(dec),依赖于:涉及的私密的密钥21带有哪些列表条目。开发者X1可以就这点而言仅仅解密这样的组件组42,该组件组的组件40至少带有属性A。相应地开发者X2和X3分别可以借助于其个人的私密的密钥21仅仅解密这样的组件组42,该组件组的组件40至少带有属性B和属性C。所述三个不同的解密的软件模型35那么仅仅具有以解密形式的由相应的私密的密钥21预定的组件组42,而所有其他不带有涉及的属性41的组件40保持加密。那么仅仅解密软件模型16的通过私密的密钥21定义的组件40。
图5示例性地示出了用于借助于适合的属性分配创建访问权利的策略。在分层级软件模型16的属性化中通常具有一些附加条件,特别要注意的是,如果确定的组件40对于一个开发者30应是可解密的,那么相应上级的组件40也必须由该开发者30是可解密的。这例如当上级的软件组件40是一个文件夹而附属于该文件夹的子组件40代表具有程序代码的文件时产生。在该情况下,下级的文件那么不可以由开发者30解密,如果文件夹也是不可解密的,这些文件保存在该文件夹中。
原则上用于产生解密结构17——该解密结构基于适合的属性化定义由中央主管部门10期望的组件组42——的策略由两个步骤组成,亦即首先通过组件40的技术上有意义或必要的综合来确定组件组42而紧接着将一个或多个属性41如此配置给软件模型16的各个组件40,使得之前确定的组件组42可以借助于这些属性41明确地描述,例如作为以命题逻辑的表达形式的列表条目。在解密结构17的列表中的条目那么分别明确地描述组件40的组,确定的开发者30应对于各个组件应共同地有权限访问或者出于技术原因必须如此。其他列表条目可以给相同的开发者30给予对另外的组件组42的访问权利。
为此中央主管部门10首先对于每个单个的软件组件40分析在其下级的组件40并且根据技术上的、安全相关的、组织上的或其他相关的标准决定:分层级的软件模型16中的哪些组件40应综合为组件组42。组件组42例如包括这样的软件组件40,所述软件组件必须总是由一个开发者30共同处理,以及所述组件组包括与这些组件有关的组件40。只要通过这种方式定义全部组件组42,那么可以给各个组件40如此分配属性41,使得组件组42的组件40在最简单情况下具有至少一个一致的属性41,所有其他组件组42的组件40不具有该属性。以复杂的方式也可以由此明确描述组件组42,使得其组件40具有属性41的确定的组合,该组件组不具有不应是该组件组42的组成部分的其他组件40。
普遍地,属性40可以以命题逻辑运算符,例如和、或、异或或者非相组合。组件组42那么通过这样的组件40形成,所述组件的属性41按照预定的命题逻辑的组合产生真的命题,也就是通过这样的组件40,所述组件的属性41满足该命题。例如组件组42可以包括所有组件40,该组件具有属性A,而另一组件组42可以包括具有属性B的组件40。第三组件组42那么例如可以包括所有这样的组件40,该组件或者具有属性A或者具有属性B,也就是所有这样的组件40,对于所述组件,命题“A或B”是真的。
按照图5的优选实施形式,组件组42在解密结构17内由此定义,使得正好这样的组件40属于涉及的组件组42,所述组件具有至少一个出于组件组42的定义的目的预定的属性或至少出于该目的预定的属性组合。
图5a的分层级的软件模型16包括根组件K0,该根组件代表虚拟控制装置;以及子组件K1至K4,所述子组件建模该虚拟控制装置的单个技术组成部分。给组件K0至K4分别配置不同的属性组合,所述属性组合由各个属性A、B、C、D、E和F中的一个或多个组成。根据树状结构清楚的是,组件组42的定义通过属性A综合组件K0和K1,也就是这样的组件40,该组件的属性41至少具有属性A。除了属性A还包括另外的属性41的组件40那么同样是通过属性A定义的组件组42的组成部分。相应地通过属性B定义的组件组42由组件K0、K1和K2组成,通过属性D定义的组件组42由组件K2和K3组成,而通过属性F定义的组件组42由组件K4组成。
图5b示出不同的组件组42,这些组件组通过解密结构17的列表条目定义,并且可以由四个不同的开发者30(X1、X2、X3、X4)借助于其个人私密的密钥21解密。四个提出的属性组合(A,D)、(B,F)、(BC)和(BCD)代表用于软件模型16的解密结构17的列表条目,这些列表条目集成到用于开发者X1、X2、X3、X4的私密的密钥21。在此属性组合(A,D)和(B,F)分别定义两个组件组42,而通过和运算而组合的属性组合(BC)和(BCD)分别定义一个组件组42。由解密结构的完整的列表[(A,D)、(B,F)、(BC)、(BCD)],在产生私密的密钥21时对于相应的开发者30那么分别在涉及的私密的密钥21中接纳这样的列表条目,涉及的开发者30应对该列表条目的组件组42进行访问。
图5再次阐明来自按照密钥策略的图4的解密结构17的两个部分,亦即一方面各个组件40的集成到软件模型16中的属性化(图5a)和集成到相应的私密的密钥23中的列表条目(图5b)。
按照图5b的该例子,开发者X1相应地具有对两个组件组42的访问,亦即对这样的通过单个属性A定义的并且由组件K0和K1组成的组件组访问,以及对这样的通过单个属性D定义的并且由组件K2和K3组成的组件组访问。相应地,开发者X2具有对所述两个组件组42的访问,这两个组件组分别通过单个属性B和F定义。开发者X3和X4分别仅仅具有对一个组件组42的访问,其中提出的属性组合(BC)和(BCD)表示这样的组件40,所述组件至少具有这样的属性组合。在此表明:两个开发者X3和X4仅仅具有对组件K2的访问,因为组件K2的属性40包括不仅属性组合(BC)而且属性组合(BCD)。
这样的解密结构17称为“单调的”,因为相应的组件40的解密已经当该组件40至少包括如下属性时是允许的,在解密结构17的列表中相应的条目说明该至少一个属性。定义组件组42的规则在此如下,即组件40一方面必须具有一个列表条目的定义的所有属性41,以便属于一个组件组42,而另一方面也可以是多个属性41。
备选于该和规则也可以应用或规则,该或规则那么表示:组件40仅须具有属性41之一,该属性说明解密结构17的列表条目的定义。根据图5b的软件模型16对于或规则的一个例子如下,即属性组合(AF)定义由组件K0、K1和K4组成的组件组42,因为这些组件或者具有属性A或者具有属性F。
如已经提及的那样,组件组42普遍地可以借助于逻辑命题定义,从而也可能的是,组件40的属性41通过由不同逻辑运算符组成的复杂的命题相组合并且如果该命题是真的那么将该组件40配置给涉及的组件组42。在图5b中应用的记录的背景下,列表条目(AB)那么可以解读为命题“A与B”并且列表条目(A,B)解读为命题“A或B”。列表条目(AB,C)那么代表命题“(A与B)或C”,该命题将所有组件40综合为一个组件组42,该组件组或者具有两个属性A和B或者具有属性C。相应地,例如命题逻辑的表达“NOT A XOR B”将组件K0、Kl、K3、K4综合为一个组件组42,因为这些组件或者具有两个属性A和B或者不具有这些属性。
图6结合软件模型16的特别复杂的层级结构阐明本发明的特别优选的实施形式。在宽广的组件结构中,位于在根组件附近的组件40经常是普通组件40,该普通组件不带有敏感的或技术相关的数据或信息,而是仅仅用于下级的技术相关组件40的构造。这样的普通组件40例如是文件夹,该文件夹下级的组件40提供文件形式的真实的功能或功能库。这样的普通组件40的突出之处在于,这样的普通组件一方面不带有技术相关的信息,但是另一方面通过开发者30必须是可解密的,以便获得对技术相关的下级组件的访问。图6的组件结构在虚线之上示出两个普通组件,亦即一方面根组件K0,其代表文件夹,该文件夹包含全部建模的技术系统;以及组件K1,该组件是具有技术相关组件的文件夹。
普通组件可以由中央主管部门10通过简单的方式手动或自动化地识别。其余组件、亦即那些在图6中在虚线之下的组件那么形成多个子树T1、T2、T3和T4,它们单独地并且相互独立地分配有属性41。对于每个子树产生独立的解密结构17,因为由于软件模型16的复杂性适宜的是,使得子树相互分离地配设有属性并且也构成独立的解密结构17。但是开发者30的访问权利在此可以涉及不同子树,其方法是其私密的密钥21具有由多个解密结构17组成的定义。
在对于子树T1至T4属性分配和解密结构17的创建中如此考虑普通组件K0和K1,使得这两个普通组件可以由每个开发者解密,例如其方法是给所有普通组件分配一个属性,该属性因此借助于每个私密的密钥21是可解密的。相应地,根组件K0带有所有出现的属性(ABCD),从而将子树T1、T2、T3和T4之一综合为一个组件组的每个定义也包括根组件K0。组件K1仅仅带有子树T1和T2的属性(AB),从而一方面将子树T1或T2综合为一个组件组的每个定义也包括普通组件K1。另一方面,将子树T3或T4综合为一个组件组的定义却不包括普通组件K1。通过相同方式可以不仅处理普通组件而且处理必要的组件,也就是这样的组件40,该组件带有如此重要的数据和信息,使得每个开发者30必须对其进行访问。
普通或必要组件的这样的识别以及由此产生的子树的分开的属性化可以用于软件模型16,该软件模型分层级地构成,特别是在控制装置和/或要控制的装置或系统的软件模型16上,这些软件模型按照AUTOSAR标准建模。就这点而言,例如文件夹、ARXML文件以及AR包视为普通组件,这些普通组件仅仅包含其他组件或参照这些其他组件。产生的子树又可以解读为独立的软件模型16,该软件模型分别位于在AR包中。结合AUTOSAR标准例如可以将“数据类型”、“数据类型特性”、“端口”、“软件组件”以及“实现”作为子树并且就这点而言作为独立的软件模型建模。这样的AUTOSAR软件对象可以与其余软件模型16分开地独立地并且根据适合的策略属性化。例如“数据类型”结合相应的“数据类型特性”分别视为配套的组件。同样可以对于“端口”创建组件组,该组件组包括所有涉及的变量或功能,或者“端口”或“数据类型”可以组合为较大的组件组。此外“软件组件”可以与相应的“端口”或另外的软件元素(例如“内部行为”)共同地形成组件组。在所述的“实现”中实现的功能可以以组件组的形式分组。因为“实现”例如以源代码或目标代码的形式实现确定任务,该确定的任务可以配置给不同平台,那么“实现”可以形成一个组件组,该组件组对于确定的平台实现或者满足确定的共同的任务。
结合图7最后描述本发明的一个特别优选的实施形式,该实施形式涉及已经输出的私密的密钥21的解密权利的扩展,如这已经根据图2的步骤S8至S14阐明过的那样。
为了扩展开发者30的权利,以便可以访问对于其已经存在的加密的软件模型22,需要如此扩展与涉及的私密的密钥21连接的访问权利,亦即由解密结构17集成的列表条目,使得开发者30可以解密一个或多个另外的组件组42。为此应用两个另外的方法或算法,亦即一方面用于产生密钥扩展23的EXTKEY方法而另一方面用于扩展已经存在的私密的密钥21密钥扩展23的权利的MERGEKEY方法。按照图1的布置结构,EXTKEY方法由中央主管部门10的KEYGEN模块13实现,而MERGEKEY方法由在开发者30这边的独立的MERGE模块34实现。
作为该实施形式的出发点在图7中在步骤S600开始时,对于开发者30存在其私密的密钥21和解密的软件模型35,其中通过属性A定义的组件组42是解密的,而所基于的加密的软件模型22的所有其他组件组42是加密的。开发者30现在例如需要访问另外的组件组42,该另外的组件组通过属性B定义。
按照图7的方法对于开发者30(X1)也能实现这些另外的组件组42的解密,而无需中央主管部门10(Z)对于开发者30产生另一个人的私密的密钥21并且将其提供给开发者30。该情景例如即当开发者30由中央主管部门10获得另外的或扩展的开发任务是而出现,该开发任务涉及另外的对于该开发者至今不允许访问的组件组42的开发。这例如是如下情况,即如果用于确定的组件组42的权限应由一个开发者30转移到另一开发者30,或者如果对于涉及的软件模型16在其开发过程中添加另一组件组42,该另一组件组现在应由开发者30(X1)处理。在首先提到的情况下足够的是,给开发者30的私密的密钥21扩展新的组件组42的定义,而在第二种情况下,也就是添加完全新的组件组42到软件模型16,除此之外需要的是,在中央主管部门10的这边上产生相应扩展的新的解密结构17并且将该扩展的软件模型16重新加密并且提供给开发者30。
在步骤S600中,开发者30向中央主管部门10提出请求扩展其私密的密钥21。在步骤S700中,中央主管部门10执行EXTKEY方法并且使用主密钥、关于开发者30要扩展的私密的密钥21的信息和扩展的解密结构(extkey)产生密钥扩展23。密钥扩展23在此与要扩展的私密的密钥21协调并且可以由开发者30仅仅当对于该开发者存在相应的私密的密钥21时应用。密钥扩展23那么不是独立的私密的密钥,而是仅仅是一个数据结构,该数据结构包括软件模型16的对于开发者30至今还不能访问的组件组42,在图7的例子中那么就是通过属性B定义的组件组42。
在中央主管部门10给开发者30提供密钥扩展23之后,开发者30在步骤S800中在输入过去的私密的密钥21和获得的密钥扩展23的情况下执行MERGEKEY方法(mergekey)。通过这种方式产生扩展的私密的密钥37,该扩展的私密的密钥现在不仅带有通过属性A表征的组件组42的定义而且带有通过属性B表征的组件组42的定义,也就是属性(A,B)。紧接着开发者30在步骤S900中以扩展的私密的密钥37解密对其已经存在的加密的软件模型22(dec),由此除了通过属性A定义的组件组42之外也解密软件模型16的通过属性B定义的组件组42。
因为密钥扩展23不是独立的私密的密钥21,而是仅仅可以用于扩展已经存在的私密的密钥21,所以密钥扩展23在步骤S700中不必需通过安全的通信通道传输给开发者30,如其在传输所属的私密的密钥21时需要的那样,例如按照图2的步骤S4或者按照图4的步骤S400。密钥扩展23在没有所属的私密的密钥21的情况下是无价值的。因此中央主管部门10也不必需在步骤S600中检测:开发者30——涉及的对扩展私密的密钥21的要求来自该开发者——是否也对于解密另外的组件组42是有权限的。而是中央主管部门10可以在步骤S700中产生密钥扩展23时独立决定:之前产生的私密的密钥21是否应扩展要求的访问权利。
在开发者30这边检测:密钥扩展23是否确定用于私密的密钥21,所述检测可以或者在步骤S800中在产生扩展的私密的密钥37(mergekey)时实现或者仅仅在步骤S900中应用扩展的私密的密钥37(dec)时才实现。为了能实现这样的检测,不仅私密的密钥21而且密钥扩展23包含特定的识别特征,私密的密钥和密钥扩展在步骤S800中或者仅仅在步骤S900中针对一致性或对应性进行检测。这样的识别特征直接或间接表示涉及的私密的密钥21并且其在密钥扩展23中的存在则说明这样的私密的密钥21,密钥扩展23确定用于该私密的密钥。
假如该检测在产生扩展的私密的密钥37时已经在步骤S800中(mergekey)实现,那么扩展的私密的密钥37仅当私密的密钥21和密钥扩展23的识别特征相互对应时才产生。备选并且优选地,私密的密钥21和密钥扩展23在步骤S800中但是在没有另外的检测的情况下相互合并并且仅仅在对加密的软件模型22进行解密时才在步骤S900(dec)中检测:其识别特征是否相互对应。假如在步骤S900中确定了识别特征对应,那么解密所有的组件组42,所述组件组的定义集成在原始的私密的密钥21中或者在密钥扩展23中。假如识别特征不对应,那么中断加密,因为不存在足够的权限或者此外仅仅解密这样的组件组42,所述组件组已经可以借助于原始的私密的密钥21解密。
识别特征可以通过多种方式设计和构造,例如作为随机数或散列值,或者也带有另外的信息,例如对于开发者、私密的密钥或另外的组件组,开发者应附加地有权限来将其解密。原则上,密钥扩展23和私密的密钥21的识别特征不必相同,而是仅仅是可证实的,亦即借助于适合的算法是可比较的。而且识别特征可以附加地集成到加密的软件模型22中,例如如此使得每个组件40带有识别特征的至少一部分。在该情况下可以在步骤S900中仅仅当该组件组42的所有组件40带有应用的私密的密钥21的识别特征的至少一部分时才解密该组件组42。
按照图7的方法那么允许扩展私密的密钥21的访问权限,而无需改变加密的软件模型22,只要密钥扩展23的定义已经在原始的解密结构17并且因此在加密的软件模型22中存在。假如定义软件模型16的完全新的组件组42,该组件组的定义带有密钥扩展23,那么软件模型16必须借助于相应新的或扩展的解密结构17重新加密并且提供给开发者。
本发明另外的优选的实施形式和实施备选在以下段落中提出:
1.用于加密控制装置和/或由控制装置控制或调节的系统的、包括分层级地相互联系的软件组件(40)的软件模型(16)的方法,该方法包括如下步骤:
-产生(S1;S100)公共密钥(19)和主密钥;
-通过如此分配属性(41)给软件组件(40)产生(S2)解密结构(17),使得属性(41)描述软件组件(40)的层级关系,并且定义包括如下的软件组件(40)的至少一个组件组(42),给该软件组件分配了至少一个确定的属性(41),如此使得解密结构(17)包括软件模型(16)的软件组件(40)的组件组(42)的至少一个定义;
-借助于主密钥和解密结构(17)产生(S3;S300)至少一个私密的密钥(21),其方法是至少一个确定的属性(41)如此集成到私密的密钥(21)中,使得私密的密钥(21)包括所述至少一个组件组(42)的定义;
-借助于公共密钥(19)至少部分加密(S5;S200)软件模型(16),其中,解密结构(17)如此至少部分集成到加密的软件模型(22)中,使得所述至少一个组件组(42)仅仅借助于所述私密的密钥(21)是可解密的。
2.根据段落1所述的方法,其中,给软件组件(40)如此分配属性(41),使得每个软件组件(40)具有至少一个与层级在上级的软件组件(40)共同的属性(41)。
3.根据段落1或2所述的方法,其中,解密结构(17)如此产生(S2),使得组件组(42)对于每个软件组件(40)也包括层级在上层的软件组件(40)。
4.根据段落1至3之一所述的方法,其中,解密结构(17)如此产生(S2),使得所述至少一个组件组(42)形成软件模型(16)的独立的部分。
5.根据段落1至4之一所述的方法,其中,软件模型(16)包括普通软件组件(40)和/或必要软件组件(40),其中,解密结构(17)如此产生(S2),使得所述至少一个组件组(42)包括所有普通软件组件(40)和/或所有必要软件组件(40)。
6.根据段落1至5之一所述的方法,其中,软件组件(40)按照AUTOSAR标准产生。
7.根据段落1至6之一所述的方法,其中,软件模型(16)按照基于属性的加密方法加密。
8.根据段落1至7之一所述的方法,其中,各软件组件(40)单个地加密。
9.根据段落1至8之一所述的方法,其中,解密结构(17)作为列表产生,其中,列表的每个列表条目通过至少一个属性(41)定义组件组(42)。
10.根据段落1至9之一所述的方法,其包括如下步骤:
-产生(S8)另外的解密结构(17),该另外的解密结构定义软件模型(16)的软件组件(40)的至少另一组件组(42),其中,所述至少另一组件组(42)由如下的软件组件(40)定义,给该软件组件分配了至少另一确定的属性(41);
-借助于主密钥和另外的解密结构产生(S9;S700)用于所述至少一个私密的密钥(21)的密钥扩展(23),其方法是至少另一确定的属性(41)如此集成到密钥扩展(23)中,使得密钥扩展(23)包括所述至少另一组件组(42)的定义并且所述至少另一组件组(42)仅仅可以由扩展的私密的密钥(37)解密,该扩展的私密的密钥由私密的密钥(21)和密钥扩展(23)形成。
11.根据段落10所述的方法,其中,在产生(S9;S700)密钥扩展(23)时私密的密钥(21)的识别特征集成到密钥扩展(23)中。
12.用于借助于私密的密钥(21)解密按照根据段落1至11之一所述的方法所加密的软件模型(16)的方法,其中检测:给加密的软件模型(22)的软件组件(40)是否至少分配至少一个预定的属性(41),该属性集成到私密的密钥(21)中,并且仅仅当至少部分集成到加密的软件模型(22)中的解密结构(17)定义所述至少一个组件组(42)并且私密的密钥(21)包括所述至少一个组件组(42)的定义时才解密(S7;S500)该至少一个组件组(42)。
13.根据段落12所述的方法,其中,解密结构(17)作为具有列表条目的列表存在,该列表分别通过至少一个属性(41)定义组件组(42),其中,仅仅当涉及的列表条目至少包括分配给组件组(42)的至少一个属性(41)时才解密(S7;S500)组件组(42)。
14.根据段落12或13所述的方法,其中,由私密的密钥(21)和借助于按照段落10或11所述的方法产生的密钥扩展(23)形成(S13;S800)扩展的私密的密钥(37),其方法是将所述至少另一确定的属性(41)集成到私密的密钥(21)中,其中,所述至少另一组件组(42)的定义如此集成到私密的密钥(21)中,使得如果至少部分集成到加密的软件模型(22;24)中的解密结构(17)定义所述至少另一组件组(42),那么所述至少另一组件组(42)可以借助于扩展的私密的密钥(37)解密。
15.根据段落14所述的方法,其中,在形成(S13;S800)扩展的私密的密钥(37)时密钥扩展(23)的识别特征和私密的密钥(21)的识别特征集成到扩展的私密的密钥(37)中,其中,所述至少一个组件组(42)借助于扩展的私密的密钥(37)仅仅当密钥扩展(23)的识别特征和私密的密钥(21)的识别特征相互对应时才被解密(S14;S900)。
16.电子数据记录(22;24),其包括具有分层级地相互联系的软件组件(40)的软件模型(16),该软件模型按照根据段落1至11所述的方法被加密;以及所述电子数据记录还包括解密结构(17),该解密结构定义软件模型(16)的软件组件(40)的至少一个组件组(42),其中,数据记录(22;24)如此设计,使得加密的软件模型(22)按照根据段落12至15之一所述的方法是可解密的。
17.根据段落16所述的数据记录,其中,解密结构(17)设计为具有列表条目的列表,所述列表条目分别通过至少一个属性(41)定义组件组(42)。
18.用于加密控制装置和/或由控制装置控制或调节的系统的、包括分层级相互联系的软件组件(40)的软件模型(16)的加密装置(11),所述加密装置包括:
-SETUP初始化模块(12),其设立为,产生(S1;S100)公共密钥(19)和主密钥;以及如此通过对软件组件(40)分配属性(41)来产生(S2)解密结构(17),使得属性(41)描述软件组件(40)的层级关系,并且通过定义包括如下的软件组件(40)的至少一个组件组(42),给所述软件组件分配至少一个确定的属性(41),如此使得解密结构(17)包括软件模型(16)的软件组件(40)的组件组(42)的至少一个定义;
-KEYGEN密钥产生模块(13),其设立为,借助于主密钥和解密结构(17)产生(S3;S300)至少一个私密的密钥(21),其方法是至少一个确定的属性(41)如此集成到私密的密钥(21)中,使得私密的密钥包括所述至少一个组件组(42)的定义;以及
-ENC加密模块(14),其设立为,借助于公共密钥(19)至少部分加密(S5;S200)软件模型(16),其中,解密结构(17)如此至少部分集成到加密的软件模型(22)中,使得至少一个组件组(42)仅仅借助于私密的密钥(21)是可解密的。
19.根据段落18所述的加密装置(11),所述加密装置设立为,按照根据段落1至11所述的方法加密包括软件组件(40)的软件模型(16)。
20.用于借助于私密的密钥(21)解密按照根据段落1至11之一所述的方法所加密的软件模型(16)的解密装置(31),所述解密装置包括DEC解密模块(33),其设立为,检测:给加密的软件模型(22)的软件组件(40)是否至少分配至少一个预定的属性(41),该属性集成到私密的密钥(21)中,并且仅仅当至少部分集成到加密的软件模型(22)中的解密结构(17)定义所述至少一个组件组(42)并且私密的密钥(21)包括所述至少一个组件组(42)的定义时才解密(S7;S500)该至少一个组件组(42)。
21.根据段落20所述的解密装置(31),所述解密装置设立为,按照根据段落12至15所述的方法解密包括软件组件(40)的加密的软件模型(22)。
22.根据段落18或19所述的加密装置(11)和/或根据段落20或21所述的解密装置(31),其中,各模块(12、13、14、33)构成为软件模块或软件程序。
23.用于开发包括分层级相互联系的软件组件(40)的软件模型(16)的开发环境(10、30),所述开发环境包括根据段落18、19和22之一所述的加密装置(11)和/或根据段落20至22之一所述的解密装置(31)。
24.用于加密技术系统、特别是控制装置和/或由控制装置控制的装置的包括软件组件(40)的软件模型(16)的加密装置(11),所述加密装置包括:
-SETUP初始化模块(12),其设立为,产生(S1;S100)公共密钥(19)和主密钥并且产生解密结构(17),所述解密结构包括由软件模型(16)的软件组件(40)组成的组件组(42)的至少一个定义;以及
-ENC加密模块(14),其设立为,借助于公共密钥(19)和解密结构(17)至少部分加密(S5;S200)软件模型(16),其中,解密结构(17)如此至少部分集成到加密的软件模型(22)中,使得所述至少一个组件组(42)仅仅借助于私密的密钥(21)是可解密的,所述私密的密钥包括所述至少一个组件组(42)的定义。
25.根据段落24所述的加密装置,所述加密装置包括KEYGEN密钥产生模块(13),其设立为,借助于主密钥和解密结构(17)如此产生(S3;S300)至少一个私密的密钥(21),使得私密的密钥(21)包括所述至少一个组件组(42)的定义。
26.根据段落24或25所述的加密装置(11),其中:
SETUP初始化模块(12)设立为,产生(S8)另一解密结构(17),所述另一解密结构定义由软件模型(16)的软件组件(40)组成的至少另一组件组(42);以及
KEYGEN密钥产生模块(13)设立为,借助于主密钥和所述另一解密结构如此产生(S9;S700)用于所述至少一个私密的密钥(21)的密钥扩展(23),使得密钥扩展(23)包括所述至少另一组件组(42)的定义。
27.用于解密借助于根据段落24至26之一所述的加密装置加密的软件模型(16)的解密装置(31),所述解密装置包括DEC解密模块(33),其设立为,仅仅当至少部分集成到加密的软件模型(22)中的解密结构(17)定义所述至少一个组件组(42)并且私密的密钥(21)包括所述至少一个组件组(42)的定义时才解密(S7;S500)该至少一个组件组(42)。
28.根据段落27所述的解密装置(31),所述解密装置包括MERGEKEY密钥产生模块(34),其设立为,由私密的密钥(21)和通过加密装置产生的密钥扩展(23)形成(S13;S800)扩展的私密的密钥(37),其方法是所述至少另一组件组(42)的定义如此集成到私密的密钥(21)中,使得当至少部分集成到加密的软件模型(22、24)中的解密结构(17)定义所述至少另一组件组(42)时,所述至少另一组件组(42)借助于扩展的私密的密钥(37)是可解密的。

Claims (20)

1.用于对技术系统的包括软件组件(40)的软件模型(16)加密的方法,其特征在于如下步骤:
-产生(S1;S100)公共密钥(19)和主密钥;
-产生(S3)解密结构(17),所述解密结构包括软件模型(16)的软件组件(40)的至少一个组件组(42)的至少一个定义;
-借助于主密钥和解密结构(17)产生至少一个私密的密钥(21),使得所述私密的密钥(21)包括所述至少一个组件组(42)的定义;
-借助于所述公共密钥(19)至少部分加密(S5;S200)所述软件模型(16);
-将所述解密结构(17)至少部分集成到经加密的软件模型(22)中,使得所述至少一个组件组(42)仅仅借助于私密的密钥(21)是可解密的,所述私密的密钥包括所述至少一个组件组(42)的定义。
2.根据权利要求1所述的方法,其特征在于,产生(S2)所述解密结构(17),其方法是将属性(41)分配给所述软件组件(40)并且定义至少一个组件组(42),所述组件组包括被分配了至少一个确定的属性(41)的软件组件(40)。
3.根据权利要求2所述的方法,其特征在于,所述软件组件(40)在软件模型(16)内分层级地相互联系,其中,给所述软件组件(40)分配属性(41),使得每个软件组件(40)具有至少一个与层级在上级的软件组件(40)共同的属性(41)。
4.根据权利要求1至3之一所述的方法,其特征在于,所述软件组件(40)在软件模型(16)内分层级地相互联系,其中,产生(S2)解密结构(17),使得对于每个软件组件(40)的组件组(42)也包括层级在上级的软件组件(40)。
5.根据权利要求1至3之一所述的方法,其特征在于,产生(S2)解密结构(17),使得所述至少一个组件组(42)形成软件模型(16)的独立部分。
6.根据权利要求1至3之一所述的方法,其特征在于,所述软件模型(16)包括普通的软件组件(40)和/或必要的软件组件(40),其中,产生(S2)解密结构(17),使得所述至少一个组件组(42)包括所有普通的软件组件(40)和/或所有必要的软件组件(40)。
7.根据权利要求1至3之一所述的方法,其特征在于,所述技术系统是控制装置和/或由控制装置控制或调节的系统。
8.根据权利要求2或3所述的方法,其特征在于,在产生所述私密的密钥(21)时将所述至少一个确定的属性(41)集成到所述私密的密钥(21)中。
9.根据权利要求1至3之一所述的方法,其特征在于如下步骤:
产生(S8)另一解密结构(17),所述另一解密结构定义软件模型(16)的软件组件(40)的至少另一组件组(42);
借助于所述主密钥和所述另一解密结构产生(S9;S700)用于所述至少一个私密的密钥(21)的密钥扩展(23),使得所述密钥扩展(23)包括所述至少另一组件组(42)的定义。
10.根据权利要求9所述的方法,其特征在于,通过定义由被分配了至少另一确定的属性(41)的软件组件(40)所组成的至少另一组件组(42)而产生(S8)所述另一解密结构;并且在产生(S9;S700)所述密钥扩展(23)时将所述至少另一确定的属性(41)集成到所述密钥扩展(23)中。
11.根据权利要求9所述的方法,其特征在于,在产生(S9;S700)所述密钥扩展(23)时将所述私密的密钥(21)的识别特征集成到所述密钥扩展(23)中。
12.根据权利要求9所述的方法,其特征在于,产生(S9;S700)所述密钥扩展(23),使得所述至少另一组件组(42)仅能由扩展的私密的密钥(37)解密,所述扩展的私密的密钥由所述私密的密钥(21)和所述密钥扩展(23)形成。
13.根据权利要求2或3所述的方法,其特征在于,借助于私密的密钥(21)解密经加密的软件模型(22),如果至少部分集成到所述加密的软件模型(22)中的解密结构(17)定义所述至少一个组件组(42)并且所述私密的密钥(21)包括所述至少一个组件组(42)的定义,那么仅仅解密(S7;S500)所述至少一个组件组(42)。
14.根据权利要求13所述的方法,其特征在于,为了解密(S7;S500)加密的软件模型(22),通过所述私密的密钥(21)检测:给所述加密的软件模型(22)的软件组件(40)是否至少分配至少一个预定的集成到所述私密的密钥(21)中的属性(41)。
15.根据权利要求14所述的方法,其特征在于,
产生(S8)另一解密结构(17),所述另一解密结构定义软件模型(16)的软件组件(40)的至少另一组件组(42);
借助于所述主密钥和所述另一解密结构产生(S9;S700)用于所述至少一个私密的密钥(21)的密钥扩展(23),使得所述密钥扩展(23)包括所述至少另一组件组(42)的定义;
由所述私密的密钥(21)和所述密钥扩展(23)形成(S13;S800)扩展的私密的密钥(37),其方法是所述至少另一组件组(42)的定义集成到所述私密的密钥(21)中,使得如果至少部分集成到所述加密的软件模型(22;24)中的解密结构(17)定义所述至少另一组件组(42),那么借助于所述扩展的私密的密钥(37)能够解密所述至少另一组件组(42)。
16.根据权利要求15所述的方法,其特征在于,在形成(S13;S800)所述扩展的私密的密钥(37)时,将至少另一确定的属性(41)集成到所述私密的密钥(21)中。
17.根据权利要求15所述的方法,其特征在于,在形成(S13;S800)所述扩展的私密的密钥(37)时,所述密钥扩展(23)的识别特征和所述私密的密钥(21)的识别特征集成到所述扩展的私密的密钥(37)中,其中,仅仅当所述密钥扩展(23)的识别特征和所述私密的密钥(21)的识别特征相互对应时借助于所述扩展的私密的密钥(37)来解密(S14;S900)所述至少一个组件组(42)。
18.加密装置(11),其设立为,按照根据权利要求1至12之一所述的方法加密包括软件组件(40)的软件模型(16)。
19.解密装置(31),其设立为,按照根据权利要求13至17之一所述的方法解密包括软件组件(40)的加密的软件模型(22)。
20.用于开发包括软件组件(40)的软件模型(16)的开发系统(10、30),所述开发系统包括根据权利要求18所述的加密装置(11)和/或根据权利要求19所述的解密装置(31)。
CN201510675496.7A 2014-10-20 2015-10-19 用于加密的方法、加密装置、解密装置及开发系统 Active CN105530236B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462066119P 2014-10-20 2014-10-20
US62/066,119 2014-10-20

Publications (2)

Publication Number Publication Date
CN105530236A CN105530236A (zh) 2016-04-27
CN105530236B true CN105530236B (zh) 2020-11-03

Family

ID=54359877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510675496.7A Active CN105530236B (zh) 2014-10-20 2015-10-19 用于加密的方法、加密装置、解密装置及开发系统

Country Status (4)

Country Link
US (1) US10554404B2 (zh)
EP (1) EP3012761B1 (zh)
CN (1) CN105530236B (zh)
DE (1) DE102015117727A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368711A (zh) * 2016-05-11 2017-11-21 徐国庆 一种可提供商业模式支持的代码保护系统的实现方法
US11541255B2 (en) * 2016-09-29 2023-01-03 Honeywell International Inc. Custom-controllable powered respirator face mask
CN113828180A (zh) 2016-11-02 2021-12-24 米拉基创新智库有限公司 用于生产输送到患者体内组织的冷料浆的设备及方法
US11324673B2 (en) 2016-11-18 2022-05-10 Miraki Innovation Think Tank Llc Cosmetic appearance of skin
US10951591B1 (en) * 2016-12-20 2021-03-16 Wells Fargo Bank, N.A. SSL encryption with reduced bandwidth
WO2018187573A1 (en) 2017-04-05 2018-10-11 Arctic Fox Biomedical, Inc. Point of delivery cold slurry generation
CN110913781A (zh) 2017-04-05 2020-03-24 米拉基创新智库有限责任公司 冷浆容纳物
WO2018231753A1 (en) * 2017-06-12 2018-12-20 Daniel Maurice Lerner Devices that utilize random tokens which direct dynamic random access
US10616192B2 (en) 2017-06-12 2020-04-07 Daniel Maurice Lerner Devices that utilize random tokens which direct dynamic random access
US10171435B1 (en) 2017-06-12 2019-01-01 Ironclad Encryption Corporation Devices that utilize random tokens which direct dynamic random access
US10500342B2 (en) 2017-08-21 2019-12-10 Miraki Innovation Think Tank Llc Cold slurry syringe
US11023140B2 (en) * 2017-12-21 2021-06-01 Micron Technology, Inc. NVDIMM with removable storage
CN110062014B (zh) * 2019-06-11 2021-08-20 思必驰科技股份有限公司 网络模型的加密、解密方法及系统
US11954070B2 (en) * 2020-12-18 2024-04-09 The Boeing Company Generation and distribution of technical model viewpoints
CN115577568B (zh) * 2022-11-17 2023-03-28 中国汽车技术研究中心有限公司 仿真模型的操作权限确定方法、设备和存储介质
CN115828287B (zh) * 2023-01-10 2023-05-23 湖州丽天智能科技有限公司 一种模型加密方法、模型解密方法、计算机及集成芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101084482A (zh) * 2004-09-17 2007-12-05 英华达股份有限公司 电子软件分配方法及使用以硬件识别为基础的数字权利管理方法的系统
CN101727545A (zh) * 2008-10-10 2010-06-09 中国科学院研究生院 一种安全操作系统强制访问控制机制的实施方法
CN101884188A (zh) * 2007-07-12 2010-11-10 创新投资有限责任公司 身份鉴别和受保护访问系统、组件和方法
CN103258151A (zh) * 2012-10-30 2013-08-21 中国科学院沈阳自动化研究所 一种实时授权的软件License控制方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912885B (zh) * 1995-02-13 2010-12-22 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
GB2378539B (en) * 2001-09-05 2003-07-02 Data Encryption Systems Ltd Apparatus for and method of controlling propagation of decryption keys
FR2843214B1 (fr) * 2002-07-30 2008-07-04 Bull Sa Procede de verification fonctionnelle d'un modele de circuit integre pour constituer une plate-forme de verification, equipement emulateur et plate-forme de verification.
JP4714482B2 (ja) * 2005-02-28 2011-06-29 株式会社日立製作所 暗号通信システムおよび方法
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
US8082301B2 (en) * 2006-11-10 2011-12-20 Virtual Agility, Inc. System for supporting collaborative activity
DE102007008948B4 (de) * 2007-02-21 2018-02-22 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und System zur Verfügungstellung digitaler Inhalte
US8423764B2 (en) * 2010-06-23 2013-04-16 Motorola Solutions, Inc. Method and apparatus for key revocation in an attribute-based encryption scheme
US8635464B2 (en) * 2010-12-03 2014-01-21 Yacov Yacobi Attribute-based access-controlled data-storage system
US8627508B2 (en) * 2011-06-17 2014-01-07 Microsoft Corporation Cloud key directory for federating data exchanges
IL213662A0 (en) * 2011-06-20 2011-11-30 Eliphaz Hibshoosh Key generation using multiple sets of secret shares
US8694771B2 (en) * 2012-02-10 2014-04-08 Connect In Private Panama Corp. Method and system for a certificate-less authenticated encryption scheme using identity-based encryption
US9209973B2 (en) * 2012-11-20 2015-12-08 Google Inc. Delegate authorization in cloud-based storage system
EP3079299A4 (en) * 2013-12-02 2017-07-19 Mitsubishi Electric Corporation Data processing system, encryption apparatus, decryption apparatus, and program
US20160330022A1 (en) * 2014-01-16 2016-11-10 Mitsubishi Electric Corporation Cryptographic system, key generation apparatus, re-encryption apparatus and user terminal
US9209974B1 (en) * 2015-05-03 2015-12-08 Zeutro, Llc Functional encryption key management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101084482A (zh) * 2004-09-17 2007-12-05 英华达股份有限公司 电子软件分配方法及使用以硬件识别为基础的数字权利管理方法的系统
CN101884188A (zh) * 2007-07-12 2010-11-10 创新投资有限责任公司 身份鉴别和受保护访问系统、组件和方法
CN101727545A (zh) * 2008-10-10 2010-06-09 中国科学院研究生院 一种安全操作系统强制访问控制机制的实施方法
CN103258151A (zh) * 2012-10-30 2013-08-21 中国科学院沈阳自动化研究所 一种实时授权的软件License控制方法

Also Published As

Publication number Publication date
CN105530236A (zh) 2016-04-27
DE102015117727A1 (de) 2016-04-21
US10554404B2 (en) 2020-02-04
EP3012761B1 (de) 2021-09-08
US20160112195A1 (en) 2016-04-21
EP3012761A1 (de) 2016-04-27

Similar Documents

Publication Publication Date Title
CN105530236B (zh) 用于加密的方法、加密装置、解密装置及开发系统
US10733329B1 (en) Robotic process automation system and method with secure credential vault
Geismann et al. Towards ensuring security by design in cyber-physical systems engineering processes
CN107526766B (zh) 数据组织方法和开发环境系统
Wegner et al. A new approach to cyberphysical security in industry 4.0
US8661419B2 (en) Method, system and simulation analysis model for data processing
CN103763313A (zh) 一种文档保护方法和系统
Björkqvist et al. Design and implementation of a key-lifecycle management system
Deubler et al. Sound development of secure service-based systems
CN102667791A (zh) 用于根据提供的权限信息访问控制数据的方法和装置
Geebelen et al. A MVC Framework for policy-based adaptation of workflow processes: a case study on confidentiality
KR102272928B1 (ko) 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치
Montanari et al. Flexible security policies for mobile agent systems
Bernardeschi et al. Modeling and generation of secure component communications in AUTOSAR
US20180129793A1 (en) Precompile and encrypt industrial intellectual property
Schmidt et al. A pattern-based method to develop secure software
Reed et al. Bulwark: A framework to store iot data in user accounts
Mahmoodi et al. Model-guided Security Analysis of Interconnected Embedded Systems.
Delange et al. Design, implementation and verification of MILS systems
White-Magner Usable security and verification for distributed robotic systems
US20220209961A1 (en) Method and system for securely providing data of an object over the entire life of the object
Gamble et al. Security policy foundations in context UNITY
Deubler et al. Tool supported development of service-based systems
US11188687B2 (en) Rule compliance checking and design generation with rule access security
Mezger et al. Protecting know-how in cross-organisational functional mock-up by a service-oriented approach with trust centres

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Paderborn, Germany

Patentee after: Desbeth Co.,Ltd.

Address before: Paderborn, Germany

Patentee before: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GmbH