Method and device for processing data associated with a software component for a product
By supplementing software components with domain-specific meta-information and generating resistant code, the method addresses the challenges of efficiently processing software components in automotive development environments, ensuring safety and security compliance and resistance to side-channel attacks.
Patent Information
- Application Number
- PCT/EP2025/054447
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-23
- Filing Date
- 2025-02-19
- Publication Date
- 2025-08-28
AI Technical Summary
Existing methods for processing software components in development environments, particularly in the automotive domain, face challenges in efficiently handling domain-specific information for compliance with safety and security requirements, such as ASIL and defense against side-channel attacks, while maintaining modular development processes.
The method involves providing domain-specific information as meta-information to supplement software components, which is then processed through a development environment, including a compiler system like LLVM, to enhance the processing stages with forward-looking annotations, ensuring compliance with safety and security objectives, and generating code resistant to side-channel attacks.
This approach enables efficient and secure processing of software components, facilitating compliance with safety standards like ASIL and enhancing resistance to side-channel attacks, thereby supporting modular and flexible development processes.
Smart Images

Figure EP2025054447_28082025_PF_FP_ABST
Abstract
Description
[0001] Description
[0002] title
[0003] Method and apparatus for processing data associated with a software component for a product
[0004] State of the art
[0005] The disclosure relates to a method for processing data associated with a software component for a product.
[0006] The disclosure further relates to an apparatus for processing data associated with a software component for a product.
[0007] Disclosure of the invention
[0008] Some examples relate to a method, for example a computer-implemented method, for processing data associated with a software component for a product, comprising: providing first information characterizing at least one aspect associated with the software component, for example specific to a domain of the product, and, optionally, supplementing the software component with the first information.
[0009] In some examples, providing the first information enables efficient processing of the software component, for example, in one or more stages of a development environment. In some examples, for example, a comparatively modular development environment, e.g., based on an LLVM compiler system, can be used, and providing the first information enables, for example, supplementing a modular development process, e.g., based on the LLVM compiler system, with a forward-looking annotation, such as can be characterized or formed, for example, by the first information.
[0010] In some examples, the annotation, which can be understood as meta-information, can, for example, supplement an intermediate representation of an LLVM system by passing domain-specific information to a backend, for example. In some examples, the domain-specific information relates to an automotive (e.g., motor vehicle) area.
[0011] In some examples, the software component characterizes at least one of the following elements: a) source code, for example in a high-level language such as C or C++, or b) bytecode, for example virtual bytecode, or c) for example platform-independent representation, for example so-called intermediate representation, for example according to the "LLVM Project", see e.g. www.llvm.org, or d) machine code, for example executable on a computing device.
[0012] In some examples, the method comprises providing at least part of the first information in the form of meta information, for example for at least one stage of a development process associated with the software component, for example for a backend of a compiler.
[0013] In some examples, the method comprises using the first information for at least one processing step and / or for at least one stage of a development process associated with the software component.
[0014] In some examples, the using comprises: passing at least a portion of the first information to a backend of a development environment for the software component, for example to a backend of a compiler for the software component.
[0015] In some examples, the development environment comprises at least one compiler having a frontend and a backend, wherein the method comprises at least one of the following elements: a) providing at least a portion of the first information to the frontend of the compiler, or b) providing at least a portion of the first information to the backend of the compiler.
[0016] In some examples, it is provided that the first information comprises at least one of the following elements: a) information relating to freedom from interference, for example associated with at least one integrity objective, for example according to Automotive Safety Integrity Level, ASIL, or b) information characterizing an integrity objective, or c) information for defending against side-channel attacks, d) information for generating code for generating profiling information.
[0017] In some examples, the method comprises generating code for increasing resistance to side-channel attacks, for example in a or the backend of a or the compiler, and, optionally, using the code for increasing resistance to side-channel attacks.
[0018] Some examples relate to an apparatus for carrying out the method according to the disclosure.
[0019] Some examples relate to a computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to perform the method according to the disclosure.
[0020] Some examples relate to a computer program comprising instructions that, when executed by a computer, cause the computer to carry out the method according to the disclosure.
[0021] Some examples relate to a data carrier signal that characterizes and / or transmits the computer program according to the disclosure.
[0022] Some examples relate to a use of the method according to the disclosure and / or the device according to the disclosure and / or the computer-readable storage medium according to the disclosure and / or the computer program according to the disclosure and / or the data carrier signal according to the disclosure for at least one of the following elements: a) annotating at least part of the software component, for example by means of application-specific information, or b) providing, for example, application-specific information for a backend of a compiler, or c) increasing a security of, for example, the software component.
[0023] Further features, possible applications, and advantages of the invention will become apparent from the following description of examples of the invention, which are illustrated in the figures of the drawing. All described or illustrated features, individually or in any combination, constitute the subject matter of the invention, regardless of their summary in the claims or their references, as well as regardless of their wording or representation in the description or drawing.
[0024] The drawing shows:
[0025] Fig. 1 schematically shows a simplified flow diagram,
[0026] Fig. 2 schematically shows a simplified flow diagram,
[0027] Fig. 3 schematically shows a simplified flow diagram,
[0028] Fig. 4 schematically shows a simplified block diagram,
[0029] Fig. 5 schematically shows a simplified block diagram,
[0030] Fig. 6 schematically shows a simplified block diagram,
[0031] Fig. 7 schematically shows a simplified block diagram,
[0032] Fig. 8 schematically shows a simplified block diagram,
[0033] Fig. 9 schematically shows examples of uses. Some examples, Fig. 1 , relate to a method, for example a computer-implemented method, for processing data associated with a software component SW-KOMP (Fig. 7) for a product 1, 10, comprising: providing 100 (Fig. 1) first information 1-1 that characterizes at least one aspect ASP-1 associated with the software component SW-KOMP, for example specific to a domain DOM (see Fig. 7) of the product 1, 10, and, optionally, supplementing 102 the software component SW-KOMP with the first information 1-1. In some examples, this enables efficient processing of the software component SW-KOMP, for example in one or more stages of a development environment EU (see Fig. 6, 8).
[0034] In some examples, the software component SW-KOMP characterizes at least one of the following elements: a) source code, for example in a high-level language such as C or C++, or b) bytecode, for example virtual bytecode, or c) for example platform-independent representation, for example so-called intermediate representation, for example according to the "LLVM Project", see e.g. www.llvm.org, or d) machine code, for example executable on a computing device.
[0035] In some examples, Fig. 7, the product is, for example, a vehicle, for example a motor vehicle, 1 , or a control device 10 for a vehicle, for example a motor vehicle, 1.
[0036] In some examples, Fig. 2, it is provided that the method comprises: providing 110 at least a part of the first information 1-1 in the form of meta information, for example for at least one stage of a development process associated with the software component SW-KOMP, for example for a backend 12b (Fig. 6) of a compiler 12.
[0037] In some examples, Fig. 2, it is provided that the method comprises: using 120 the first information 1-1 for at least one processing step and / or for at least one stage of a development process associated with the software component SW-KOMP. In some examples, Fig. 2, it is provided that the using 120 comprises: forwarding 120a at least a portion of the first information 1-1 to a backend 12b (Fig. 6) of a development environment EU for the software component SW-KOMP, for example to a backend 12b of a compiler 12 for the software component SW-KOMP.
[0038] In some examples, Fig. 3, 6, it is provided that the development environment EU has at least one compiler 12 with a frontend 12a and a backend 12b, wherein the method comprises at least one of the following elements: a) providing 130 at least a part of the first information 1-1 for the frontend 12a of the compiler 12, or b) providing 132 at least a part of the first information 1-1 for the backend 12b of the compiler 12.
[0039] In some examples, Fig. 4, it is provided that the first information 1-1 comprises at least one of the following elements: a) information l-RWF relating to freedom from feedback, for example associated with at least one integrity objective, for example according to Automotive Safety Integrity Level, ASIL, or b) information l-INT characterizing an integrity objective, or c) information l-SCA for defense against side-channel attacks, d) information I-PROF for generating code for generating profiling information.
[0040] In some examples, one or more of the following aspects are considered, for example, for the information l-RWF regarding freedom from interference. In some examples, the first information l-1 can be used to achieve freedom from interference (e.g., freedom from interference) of different integrity objectives (e.g., according to ASIL), for example, to comply with safety requirements.
[0041] In some examples, the first information 1-1 can be used, for example, to create a configuration for memory protection measures, e.g., for at least one memory protection device, for example, automatically, i.e., e.g., without manual interaction. In some examples, the first information 1-1 can be used, for example, to automatically implement non-reactive behavior. Optionally, in some examples, the configuration for the memory protection measures can be reviewed by a human expert.
[0042] In some examples, one or more of the following aspects are considered, for example for the information l-INT that characterizes an integrity objective. In some examples, comparatively high safety objectives (e.g. ASIL-C / D) require redundancy, e.g. to achieve a required error detection rate as risk minimization (e.g. 99% detection of single errors with ASIL-D). If, for example, an ASIL classification were known in a backend 12b, targeted redundancy could be implemented, for example with coded processing. In some examples, the first information 1-1, for example the information l-INT that characterizes an integrity objective, can be used to inform the backend 12b about the ASIL classification.
[0043] In some examples, one or more of the following aspects are considered, for example for the information l-SCA to defend against side-channel attacks.
[0044] In some examples, automatic code generation, e.g., in a backend 12b, can increase resistance to side-channel attacks. In some examples, the goal may be to ensure the integrity and / or confidentiality of a piece of data or a computational step.
[0045] In some examples, the software component SW-KOMP (Fig. 7), e.g. a code, can be enriched with the following information, for example meta-information, which characterizes at least one of the following elements: • A piece of data does not physically leave a secured area (protection goal: confidentiality), • The integrity of a piece of data must be ensured (protection goal: integrity), • A calculation must be carried out redundantly for security reasons (protection goal: integrity), • Power consumption must be kept constant (preventing SPA / DPA analysis, protection goal: confidentiality), • The processing time of a calculation step must be kept constant (protection goal: confidentiality), • A calculation operation must be calculated in such a way that no conclusions can be drawn from the electromagnetic radiation (protection goal: confidentiality), • A calculation operation must be physically distributed across the area of the processor, e.g.so that targeted placement of probes becomes difficult. (Protection goal: confidentiality). • Sound analysis should not be possible. (Protection goal: confidentiality). In other words, in some examples, the first information 1-1 may include at least one of the information 1-SCA mentioned above as an example, or any combination thereof.
[0046] In some examples, the first information 1-1 can characterize how to react in the event of an attack (e.g., on a product having the software component SW-KOMP or on a product associated with the software component SW-KOMP 1 , 10) (e.g., the integrity of a data item is not correct, a glitch attack has been detected, etc.). For example: a) in the event of a detected attack, one (e.g., the product) could abort the calculation operation and enter a defined error state, or b) one (e.g., the product) could repeat the calculation operation, or c) one (e.g., the product) could repeat the calculation operation n times and then abort, or d) one (e.g., the product) could repeat calculations on another device (e.g., "device"), etc.In other words, in some examples, the first information 1-1 may comprise at least one of the information mentioned above as an example or any combination thereof, on the basis of which the product may, for example, react to an attack.
[0047] In some examples, one or more of the following aspects are considered, for example for the information l-PROF for the generation of code for the generation of profiling information. For example, the software component SW-KOMP (Fig. 7) can be enriched with at least one annotation which, for example, generates code that generates profiling information in at least one downstream process step. In some examples, the profiling information can comprise at least one of the following elements: a) time information, or b) data, for example statistical data, about function calls, or c) memory consumption, or d) information about caches (e.g. cache hits / misses), or e) temperature development, or f) power consumption, or g) idle cycles, or h) code coverage, etc. In some examples, Fig.5, it is provided that the method comprises: generating 140 code COD-SCA for increasing resistance against side-channel attacks, for example in a or the backend 12b of a or the compiler 12, and, optionally, using 142 the code COD-SCA for increasing the resistance against side-channel attacks.
[0048] Some examples, Fig. 6, relate to an apparatus 200 for carrying out the method according to the disclosure.
[0049] In further examples Fig. 6, it is provided that the device 200 comprises: a computing device ("computer") 202 having at least one computing core 202a, a memory device 204 assigned to the computing device 202 for at least temporarily storing at least one of the following elements: a) data DAT (e.g. data associated with the software component SW-KOMP and / or data associated with the first information 1-1 and / or data associated with the development environment EU), b) computer program PRG, for example for carrying out the method according to the embodiments.
[0050] In further examples, the storage device 204 comprises a volatile memory (e.g., random access memory (RAM)) 204a, and / or a non-volatile (NVM) memory (e.g., flash EEPROM) 204b, or a combination thereof or with other memory types not explicitly mentioned.
[0051] Further examples relate to a computer-readable storage medium SM comprising instructions PRG which, when executed by a computer 202, cause the computer 202 to carry out the method according to the embodiments.
[0052] Further examples relate to a computer program PRG comprising instructions which, when the program PRG is executed by a computer 202, cause the computer 202 to carry out the method according to the embodiments.
[0053] Further examples relate to a data carrier signal DCS that characterizes and / or transmits the computer program PRG according to the embodiments. The data carrier signal DCS can be received, for example, via an optional data interface 206 of the device 200.
[0054] Fig. 8 schematically shows a simplified block diagram with aspects of a development environment EU in which aspects can be used according to the examples. Element E12a' symbolizes aspects of one or more frontends, and element E12b' symbolizes aspects of one or more backends according to some examples.
[0055] Element E1 symbolizes a frontend, for example an LLVM frontend, which in some examples may be part of the development environment EU for software components, e.g., having an LLVM compiler system. Element E2 symbolizes further optional frontends, for example of the AST type, or Clang, etc. Element E3a symbolizes an intermediate representation (e.g., a machine-level intermediate language), for example an intermediate representation (IR), for example an LLVM IR, which is associated, for example, with the frontend E1. Element E3b symbolizes an intermediate representation (IR), for example an LLVM IR, which is associated, for example, with the frontend(s) E2. Elements E4 and E5 each symbolize aspects of corresponding backends.
[0056] Element E6 symbolizes input data for frontend E1, e.g., in the form of code, represented, for example, in a computer programming language such as C or C++. Similarly, element E7 symbolizes input data for at least one other frontend E2.
[0057] Element E8 symbolizes a program code, for example machine code, as in some examples can be formed by the backend E4, e.g. based at least on the input data E6.
[0058] Element E9 symbolizes a program code, for example machine code, as can be formed in some examples by the optional backend(s) E5, e.g. based at least on the input data E7.
[0059] Element IT symbolizes at least a portion of the first information 1-1 according to the disclosure, which in some examples can be used, for example, to annotate at least some of the input data E6, E7 (and / or data derived therefrom, see, for example, blocks E3a, E3b), and which can be used, for example, evaluated, in later stages E3a, E3b, E4, E5. As a result, in some examples, at least one domain-specific aspect ASP-1 can advantageously be taken into account, which is associated with a software component SW-KOMP that can be processed by the configuration according to Fig. 8.
[0060] Some examples, Fig. 9, relate to a use 300 of the method according to the disclosure and / or the device 200 according to the disclosure and / or the computer-readable storage medium SM according to the disclosure and / or the computer program PRG according to the disclosure and / or the data carrier signal DCS according to the disclosure for at least one of the following elements: a) annotating 301 at least a part of the software component SW-KOMP, for example by means of application-specific information, or b) providing 302 for example application-specific information for a backend 12b of a compiler 12, or c) increasing 303 a security for example of the software component SW-KOMP.
[0061] In some examples, using the principle according to the disclosure, an effort for developing software components, for example for control units, for example for motor vehicles, can be reduced, for example although a comparatively modular configuration, for example according to Fig. 8, is used.
[0062] In some examples, using the principle according to the disclosure, software development can be efficiently designed or supported, for example, for the automotive sector and / or other sectors in which, for example, there is a comparatively high variance in projects with, for example, very different computing machines, for example SoC (System-on-Chip).
[0063] In some examples, using the principle according to the disclosure, for example, safety requirements, e.g., according to ISO26262, can be implemented, for example, fulfilled. In some examples, using the principle according to the disclosure, for example, optimizations for specific use cases can be performed, wherein, for example, domain-specific information relating to the specific use cases can be characterized using the first information 1-1.
[0064] In some examples, cyber security requirements, e.g. for the automotive sector, can be implemented, for example fulfilled, using the principle according to the disclosure.
[0065] In some examples, the principle according to the disclosure can be used, for example, for developing driver assistance applications for motor vehicles. In some examples, such a development can, for example, have at least three phases: 1) Concept phase, e.g., using hardware other than the target hardware for the software component SW-KOMP, 2) Embedded phase, where the software component SW-KOMP, e.g., an application, is brought onto the actual target hardware, e.g., an SoC, 3) Series. For example, for the series phase, in addition to porting the software component SW-KOMP to the target hardware (see, for example, phase: Embedded), all safety and / or security requirements are also implemented and taken into account, which can result in a comparatively large variance in the hardware used. By enriching the processing steps during the development of the software components, e.g.,With domain-specific properties, e.g. based on the principle according to the disclosure, the development of e.g. driver assistance applications for motor vehicles can be made efficient and flexible.
[0066] In some examples, the principle according to the disclosure can be used, for example, for developing software components for ADAS (Advanced Driver Assistance Systems) central control units and / or for vehicle computers, for example vehicle computers.
[0067] In some examples, the principle according to the disclosure can be advantageously used for target systems implemented with chiplet technology.
Claims
Claims 1 . A computer-implemented method for processing data associated with a software component (SW-KOMP) for a product (1, 10), comprising: providing (100) first information (1-1) characterizing at least one aspect (ASP-1) associated with the software component (SW-KOMP) and specific to a domain (DOM) of the product (10), and supplementing (102) the software component (SW-KOMP) with the first information (1-1).
2. The method according to claim 1, wherein the method comprises: providing (110) at least part of the first information (1-1) in the form of meta information, for example for at least one stage of a development process associated with the software component (SW-KOMP).
3. Method according to at least one of the preceding claims, comprising: using (120) the first information (1-1) for at least one processing step and / or for at least one stage of a development process associated with the software component (SW-KOMP).
4. The method according to claim 3, wherein the using (120) comprises: forwarding (120a) at least part of the first information (1-1) to a backend (12b; 12b') of a development environment (EU) for the software component (SW-KOMP), for example to a backend of a compiler (12) for the software component (SW-KOMP).
5. The method according to at least one of the preceding claims, wherein the development environment (EU) has at least one compiler (12) with a frontend (12a) and a backend (12b), the method comprising at least one of the following elements: a) providing (130) at least part of the first information (1-1) for the frontend (12a) of the compiler (12), or b) providing (132) at least part of the first information (1-1) for the backend (12b) of the compiler (12).
6. The method according to at least one of the preceding claims, wherein the first information (1-1) comprises at least one of the following elements: a) information (l-RWF) relating to freedom from retroactivity, for example associated with at least one integrity objective, for example according to Automotive Safety Integrity Level, ASIL, or b) information (l-INT) characterizing an integrity objective, or e) information (l-SCA) for defending against side-channel attacks, d) information (l-PROF) for generating code for generating profiling information.
7. Method according to at least one of the preceding claims, comprising: generating (140) code (COD-SCA) for increasing resistance against side-channel attacks, for example in a or the backend (12b) of a or the compiler (12), and, optionally, using (142) the code (COD-SCA) for increasing resistance against side-channel attacks.
8. Device (200) for carrying out the method according to at least one of the preceding claims.
9. Computer-readable storage medium (SM) comprising instructions (PRG) which, when executed by a computer (202), cause the computer to carry out the method according to at least one of claims 1 to 7.
10. Computer program (PRG) comprising instructions which, when the computer program (PRG) is executed by a computer (202), cause the computer to carry out the method according to at least one of claims 1 to 7.
11. Data carrier signal (DCS) that characterizes and / or transmits the computer program (PRG) according to claim 10.
12. Use (300) of the method according to at least one of claims 1 to 7 and / or the device (200) according to claim 8 and / or the computer-readable storage medium (SM) according to claim 9 and / or the computer program (PRG) according to claim 10 and / or the data carrier signal (DCS) according to claim 11 for at least one of the following elements: a) annotating (301) at least part of the Software component (SW-KOMP), for example by means of application-specific information, or b) providing (302) for example application-specific information for a backend (12b) of a compiler (12), or c) increasing (303) a security for example of the software component (SW-KOMP).
Citation Information
Patent Citations
Underwater CCTV camera for having rgbw LED
KR102380791B1