DE102004047080A1 - Data processing system e.g. internal combustion engine control, for motor vehicle, has ROM containing operational data, where part of unencrypted data has decryption key computing algorithm that is executed in runtime of system - Google Patents

Data processing system e.g. internal combustion engine control, for motor vehicle, has ROM containing operational data, where part of unencrypted data has decryption key computing algorithm that is executed in runtime of system Download PDF

Info

Publication number
DE102004047080A1
DE102004047080A1 DE200410047080 DE102004047080A DE102004047080A1 DE 102004047080 A1 DE102004047080 A1 DE 102004047080A1 DE 200410047080 DE200410047080 DE 200410047080 DE 102004047080 A DE102004047080 A DE 102004047080A DE 102004047080 A1 DE102004047080 A1 DE 102004047080A1
Authority
DE
Germany
Prior art keywords
data
memory
key
processing system
data processing
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.)
Withdrawn
Application number
DE200410047080
Other languages
German (de)
Inventor
Holger Ceskutti
Norbert Loechel
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200410047080 priority Critical patent/DE102004047080A1/en
Publication of DE102004047080A1 publication Critical patent/DE102004047080A1/en
Withdrawn legal-status Critical Current

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/2406Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using essentially read only memories
    • F02D41/2425Particular ways of programming the data
    • F02D41/2429Methods of calibrating or learning
    • F02D41/2432Methods of calibration
    • F02D41/2435Methods of calibration characterised by the writing medium, e.g. bar code
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The system has a read only memory (ROM) containing program instructions and parameters, which are referred as operational data, to be executed by a microcontroller module (1). A part of unencrypted operational data has a decrypting algorithm and an algorithm for computing a key required for decryption, which is executed in the runtime of the system. The key computing algorithm is stored in a memory integrated into the module. An independent claim is also included for a method for operating a data processing system.

Description

Stand der TechnikState of technology

Die vorliegende Erfindung betrifft ein Datenverarbeitungssystem mit einem Prozessorbaustein wie etwa einem Mikroprozessor oder Mikrocontroller und einem Festwertspeicher, der von dem Prozessorbaustein auszuführende Programmanweisungen und Parameter enthält, auf welche diese Programmanweisungen lesend zugreifen. Wenn solche Datenverarbeitungssysteme zur Steuerung einer Maschine wie etwa des Verbrennungsmotors eines Kraftfahrzeuges eingesetzt werden, besteht die Gefahr, dass die Betriebssicherheit und/oder die Lebensdauer einer solchen Maschine beeinträchtigt wird, wenn die Programmanweisungen und Parameter, die im Folgenden zusammenfassend als Betriebsdaten bezeichnet werden sollen, von unbefugter Seite manipuliert werden.The The present invention relates to a data processing system with a processor chip such as a microprocessor or microcontroller and a read-only memory, the program instructions to be executed by the processor module and Contains parameters, to which these program statements read read. If such Computer systems for controlling a machine such as the internal combustion engine of a motor vehicle are used, there is a risk that the operational safety and / or the lifetime such a machine is impaired, if the program statements and parameters, summarizing in the following to be designated as operating data, by an unauthorized party be manipulated.

Insbesondere bei den Motorsteuergeräten für Kraftfahrzeuge ist das Interesse von Unbefugten, solche Manipulationen vorzunehmen, sehr groß, weil sie es beispielsweise ermöglichen, die verfügbare Leistung des Verbrennungsmotors zu erhöhen. Folge solcher Manipulationen kann sein, dass langfristig der so gesteuerte Motor Schaden nimmt, dass gesetzliche Vorschriften über den Schadstoffgehalt der Abgase des Motors nicht mehr eingehalten werden, oder dass das Fahrzeug Geschwindigkeiten erreicht, für die sein Fahrwerk nicht ausgelegt ist und bei denen es nicht mehr sicher beherrschbar ist. Es besteht daher erheblicher Bedarf nach Techniken, die es Unbefugten unmöglich machen, die Betriebsdaten eines Datenverarbeitungssystems wie etwa eines Motorsteuergerätes zu manipulieren, oder die eine solche Manipulation doch zumindest so beschwerlich und arbeitsaufwendig machen, dass sie prohibitiv teuer wird.Especially in the engine control units for motor vehicles is the interest of unauthorized persons to make such manipulations, very large, because they allow, for example, the available power of the internal combustion engine. The consequence of such manipulations may be that in the long term the so controlled Motor damage takes legal regulations over the Pollutant content of the exhaust gases of the engine are no longer respected, or that the vehicle reaches speeds for which its suspension is not designed is and where it is no longer safe to control. It therefore exists significant need for techniques that make it impossible for unauthorized persons the operational data of a data processing system such as a Engine control unit to manipulate, or at least manipulate so cumbersome and laborious that they are prohibitive is expensive.

So ist es zum Beispiel bekannt, von in einem Festwertspeicher gespeicherten Betriebsdaten eines solchen Datenverarbeitungssystems wie etwa von Kennkurven für die Motorsteuerung einen Integritätsprüfwert zu berechnen, das heißt einen Datenwert, der sich mit jeder Änderung in einem einzelnen Speicherplatz der Betriebsdaten ändert, und diesen zusammen mit den Betriebsdaten in dem Festwertspeicher abzulegen. Eine Manipulation der Betriebsdaten führt dann mit einer hohen, von der Bitzahl des Integritätsprüfwert abhängigen Wahrscheinlichkeit dazu, dass ein bei einem Systemstart vom Prozessorbaustein berechneter Integritätsprüfwert nicht mit dem in dem Festwertspeicher gespeicherten Wert übereinstimmt, so dass der Prozessorbaustein in der Lage ist, die Manipulation zu erkennen und den Betrieb zu verweigern. Sofern allerdings ein Unbefugter die Vorschrift kennt, nach der der Integritätsprüfwert berechnet wird, ist er in der Lage, passend zu manipulierten Betriebsdaten auch ei nen geänderten Integritätsprüfwert in den Festwertspeicher zu schreiben, so dass die Manipulation nicht mehr erkannt werden kann.So For example, it is known to be stored in a read-only memory Operating data of such a data processing system such as characteristic curves for the Motor control to an integrity check value calculate, that is a data value that deals with every change in a single Memory location of the operating data changes, and this together with the operating data in the read-only memory store. A manipulation of the operating data then leads to a high, of the bit count of the integrity check value dependent probability in addition to that a processor module calculated at a system startup Integrity check value not matches the value stored in the read-only memory, so that the processor chip is capable of manipulation to recognize and refuse to operate. However, if one Unauthorized person knows the rule according to which the integrity check value is calculated is, he is able, due to manipulated operating data also a changed one Integrity check value in to write the read-only memory, so that the manipulation is not more can be recognized.

Ein anderer bekannter Ansatz ist, sicherheitsrelevante Betriebsdaten in verschlüsselter Form in dem Festwertspeicher abzulegen und sie nur während des Betriebs des Datenverarbeitungssystems zu entschlüsseln. Der Schlüssel selber ist üblicherweise in unverschlüsselter Form in demselben Speicherbaustein abgelegt wie die verschlüsselten Betriebsdaten. Es ist daher möglich, zum Beispiel durch Auslöten des die Daten enthaltenden Speicherbausteins, den Schlüssel und die verschlüsselten Daten auszulesen. Ein Unbefugter kann somit, wenn er den Verschlüsselungsalgorithmus kennt, die Betriebsdaten entschlüsseln, manipulieren, wieder verschlüsseln und die verschlüsselten manipulierten Betriebsdaten in den Speicherbaustein zurückschreiben, ohne dass es möglich ist, dies zu erkennen.One Another known approach is safety-relevant operating data in encrypted Form in the read only memory store and only during the Decrypting operation of the data processing system. Of the key itself is customary in unencrypted Form stored in the same memory block as the encrypted operating data. It is therefore possible for example by desoldering of the memory module containing the data, the key and the encrypted Read data. An unauthorized person can thus if he uses the encryption algorithm knows, decode the operating data, manipulate, re-encrypt and the encrypted write manipulated operating data back to the memory module, without it possible is to recognize this.

Vorteile der ErfindungAdvantages of invention

Durch die vorliegende Erfindung, wie in Anspruch 1 definiert, wird ein Datenverarbeitungssystem geschaffen, das mit einfachen Mitteln den unbefugten Zugriff auf Betriebsdaten des Datenverarbeitungssystems erheblich erschwert.By The present invention as defined in claim 1 will be Data processing system created by simple means the unauthorized access to operating data of the data processing system considerably more difficult.

Dieser Vorteil wird im Wesentlichen dadurch erreicht, dass das erfindungsgemäße Datenverarbeitungssystem im Gegensatz zu herkömmlichen, eine Verschlüsselung der Betriebsdaten verwendenden Sys temen ohne einen aus einem Festwertspeicher lesbaren Schlüssel auskommt. Statt dessen verwendet das erfindungsgemäße System einen Schlüssel, der erst während der Laufzeit des Systems berechnet wird. Dadurch entfällt die Notwendigkeit, den Schlüssel dauerhaft in einem Speicher zu speichern, der von einem Unbefugten missbräuchlich gelesen werden könnte. Um die Betriebsdaten eines erfindungsgemäßen Datenverarbeitungssystems zu manipulieren, muss der Unbefugte daher nicht nur den Entschlüsselungsalgorithmus der Betriebsdaten kennen, sondern auch den Algorithmus, mit welchem der Prozessorbaustein des Datenverarbeitungssystems diesen Schlüssel aus den Inhalten der Schlüsselspeicherplätze berechnet.This Advantage is essentially achieved in that the data processing system according to the invention unlike conventional, an encryption the operating data using Sys temen without readable from a read-only memory key gets along. Instead, the system of the invention uses a key that only during the running time of the system is calculated. This eliminates the Necessity, the key permanently stored in a memory by an unauthorized person abusively could be read. To the operating data of a data processing system according to the invention To manipulate, the unauthorized person therefore does not need only the decryption algorithm the operating data, but also the algorithm with which the processor module of the data processing system from this key the contents of the key locations.

Um einem Unbefugten das Herausfinden dieses Berechnungsalgorithmus zu erschweren, ist Letzterer vorzugsweise in einem Speicherbereich des Datenverarbeitungssystems abgelegt, der in den Prozessorbaustein integriert ist und daher, wenn überhaupt, nur mit erheblichem technischen Aufwand von einem Unbefugten gelesen werden kann. Die Schlüsselspeicherplätze hingegen, deren Zahl wesentlich größer sein kann als der zum Ablegen des Berechnungsalgorithmus benötigte Speicherbereich, befinden sich vorzugsweise wenigstens zum Teil in dem von dem Prozessorbaustein getrennten Speicherbaustein, da der Speicherplatz dort in der Regel preiswerter ist.To make it difficult for an unauthorized person to find out this calculation algorithm, the latter is preferably stored in a memory area of the data processing system which is integrated into the processor module and therefore, if at all, can only be read by an unauthorized person with considerable technical effort. The key memory locations, on the other hand, whose number can be substantially larger than the memory area required to store the calculation algorithm, are preferably located at least partially in the memory module separate from the processor module, since the memory space there is generally less expensive.

Vorzugsweise bilden die Schlüsselspeicherplätze wenigstens einen zusammenhängenden Adressbereich des Festwertspeichers, insbesondere des Speicherbausteins.Preferably at least make the key locations a contiguous address range the read-only memory, in particular the memory module.

Wenn es sich bei dem Datenverarbeitungssystem um ein Motorsteuergerät handelt, so enthält dieser zusammenhängende Adressbereich vorzugsweise Betriebsdaten, das heißt Code und Parameter, eines Motorsteueralgorithmus, deren unbemerkte Manipulation durch einen Unbefugten es zu verhindern gilt. Allgemeiner gesagt sollten die Inhalte einer Mehrheit der Schlüsselspeicherplätze Betriebsdaten eines dritten Algorithmus sein, der weder mit dem Schlüsselberechnungs- noch mit dem Entschlüsselungsalgorithmus übereinstimmt.If the data processing system is an engine control unit, so contains this related Address range preferably operating data, that is code and parameters, an engine control algorithm, their unnoticed manipulation it must be prevented by an unauthorized person. More generally The contents of a majority of key storage locations should have operational data of one third algorithm that works neither with the key calculation nor with the Decryption algorithm matches.

Grundsätzlich wäre es möglich, dass alle Schlüsselspeicherplätze Betriebsdaten dieses dritten Algorithmus sind. Dies hätte allerdings zur Folge, dass, auch wenn befugt Änderungen an diesen Betriebsdaten vorgenommen werden, der vom Schlüsselberechnungsalgorithmus berechnete Schlüssel sich ändert und infolge dessen die Entschlüsselung der schlüsselgesicherten Betriebsdaten scheitert. Um dies zu vermeiden, muss wenigstens ein Schlüsselspeicherplatz vorhanden sein, dessen Inhalt nicht zu den Betriebsdaten des dritten Algorithmus gehört, so dass nach einer Änderung dieser Betriebsdaten der Inhalt dieses Speicherplatzes so angepasst werden kann, dass der Schlüsselberechnungsalgorithmus weiterhin den korrekten Schlüssel liefert.Basically it would be possible that all key storage operating data this third algorithm are. However, this would mean that, even if authorized changes be performed on this operating data, that of the key calculation algorithm calculated key changes and as a result, the decoding of the key-secured Operating data fails. To avoid this, at least one must Key space be present, its contents are not the operating data of the third Algorithm belongs, so that after a change this operating data, the content of this storage space is adjusted that can be the key calculation algorithm continue the correct key supplies.

Vorzugsweise ist wenigstens ein Teil der an den Schlüsselspeicherplätzen gespeicherten Betriebsdaten des dritten Algorithmus verschlüsselt. Die Berechnung des Schlüssels findet dann anhand der noch verschlüsselten Inhalte dieser Speicherplätze statt, während zur Ausführung des dritten Algorithmus die zwischenzeitlich entschlüsselten Betriebsdaten verwendet werden.Preferably is at least part of the stored at the key locations Operating data of the third algorithm is encrypted. The calculation of the key finds then on the basis of the still encrypted Contents of these memory locations take place, while for execution of the third algorithm which has been decrypted in the meantime Operating data can be used.

Das Datenverarbeitungssystem sollte zweckmäßigerweise zum Aufnehmen der aus den verschlüsselten Betriebsdaten erhaltenen entschlüsselten Betriebsdaten einen flüchtigen Schreib-Lesespeicher aufweisen, auf den während des Betriebs des Datenverarbeitungssystems anstelle des Festwertspeichers zugegriffen wird. Da auf diesem flüchtigen Speicher die entschlüsselten Betriebsdaten nur während der Laufzeit des Datenverarbeitungssystems zur Verfügung stehen, ist einem Unbefugten auch der Zugriff auf sie erschwert.The Data processing system should expediently for recording the from the encrypted Operating data obtained decrypted Operating data a volatile Have read-write memory, during the operation of the data processing system instead of the read-only memory is accessed. Because on this fleeting Store the decrypted Operating data only during the duration of the data processing system are available, Unauthorized access to them is also difficult.

Gegenstand der Erfindung ist auch ein Betriebsverfahren für ein Datenverarbeitungssystem der oben beschriebenen Art, bei welchem zunächst der Schlüsselberechnungsalgorithmus ausgeführt wird, um den Schlüssel zu erhalten, und dieser Schlüssel in einem flüchtigen Speicher gespeichert wird, dann der Entschlüsselungsalgorithmus ausgeführt wird, um einen benötigten Teil der Betriebsdaten zu entschlüsseln, und bei dem, bevor damit begonnen wird, mit den entschlüsselten Betriebsdaten zu arbeiten, der dann nicht mehr benötigte Schlüssel gelöscht wird, so dass er für einen Unbefugten nicht mehr zugreifbar ist.object The invention is also an operating method for a data processing system of described above, in which first the key calculation algorithm is performed, around the key to get, and this key in a fleeting Memory is stored, then the decryption algorithm is executed, a needed one Part of the operational data to decrypt, and before, with it is started, with the decrypted Operating data, which then deletes unneeded keys, so he for an unauthorized person is no longer accessible.

Schlüsselberechnung und Entschlüsselung können jeweils einmal beim Start des Datenverarbeitungssystems ausgeführt werden, um sämtliche für den Betrieb des Systems benötigten Betriebsdaten zu ent schlüsseln; es kann aber auch vorgesehen werden, dass jeweils nur ein Teil der Betriebsdaten entschlüsselt wird, und dass während des Betriebs des Systems immer dann, wenn noch nicht entschlüsselte Betriebsdaten benötigt werden, die Berechnung des Schlüssels wiederholt wird.key calculation and decryption can each run once at the start of the data processing system, around all for the Operation of the system needed To decrypt operating data; but it can also be provided that only a part of the Operating data decrypted will, and that while the operation of the system whenever operating data not yet decrypted needed be, the calculation of the key is repeated.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der Beschreibung von Ausführungsbeispielen unter Bezugnahme auf die beigefügten Figuren.Further Features and advantages of the invention will become apparent from the description of exemplary embodiments with reference to the attached Characters.

Figurencharacters

Es zeigen:It demonstrate:

1 ein Blockdiagramm eines erfindungsgemäßen Datenverarbeitungssystems; und 1 a block diagram of a data processing system according to the invention; and

2 ein Flussdiagramm eines Arbeitsverfahrens des Datenverarbeitungssystems aus 1. 2 a flowchart of a working method of the data processing system 1 ,

Beschreibung der Ausführungsbeispieledescription the embodiments

Das in 1 gezeigte Datenverarbeitungssystem umfasst einen Mikrocontrollerbaustein 1, in welchem eine Prozessoreinheit 2, ein Festwertspeicherbereich 3 und ein Speicherbereich mit wahlfreiem Zugriff 4 auf einem gemeinsamen Halbleitersubstrat integriert sind. Prozessoreinheit 2 und Speicherbereiche 3, 4 kommunizieren über einen internen Bus 5 des Bausteins 1, der Daten- und Adressleitungen umfasst.This in 1 The data processing system shown comprises a microcontroller module 1 in which a processor unit 2 , a read-only memory area 3 and a random access memory area 4 integrated on a common semiconductor substrate. processor unit 2 and storage areas 3 . 4 communicate via an internal bus 5 of the building block 1 comprising data and address lines.

Der Mikrocontrollerbaustein 1 kommuniziert ferner über einen externen Bus 6 mit einem Festwertspeicherbaustein 7, zum Beispiel einem Flash-IC, und einem flüchtigen Speicherbaustein mit wahlfreiem Zugriff oder RAM 8.The microcontroller module 1 also communicates via an external bus 6 with a read-only memory module 7 , for example, a flash IC, and a volatile memory device with optional em access or RAM 8th ,

Die Datenleitungen des internen Busses 5 und des externen Busses 6 sind innerhalb des Mikrocontrollerbausteins 1 voneinander galvanisch getrennt, so dass Daten, die über den internen Bus 5 zwischen der Prozessoreinheit 2 und den internen Speicherbereichen 3, 4 ausgetauscht werden, außerhalb des Mikrocontrollerbausteins nicht abgreifbar sind. Um die Inhalte der internen Speicherbereiche 3, 4 herauszufinden, ist ein Unbefugter daher gezwungen, das Gehäuse des Mikrocontrollerbausteins zu öffnen und ihn, sofern er das Öffnen übersteht, zu betreiben, um die Signale auf den internen Busleitungen abzugreifen und daraus auf die Speicherinhalte rückzuschließen.The data lines of the internal bus 5 and the external bus 6 are inside the microcontroller chip 1 galvanically isolated from each other, leaving data over the internal bus 5 between the processor unit 2 and the internal memory areas 3 . 4 be exchanged, outside the microcontroller module can not be tapped. To the contents of the internal memory areas 3 . 4 Therefore, an unauthorized person is therefore forced to open the housing of the microcontroller module and, if it survives the opening, operate it in order to pick up the signals on the internal bus lines and to deduce the memory contents therefrom.

Die Adressleitungen der Busse 5, 6 können zumindest im Prinzip galvanisch verbunden sein, sofern beide Busse das gleiche Zeitverhalten aufweisen und die internen Speicherbereiche 3, 4 und die externen Speicherbausteine 7, 8 einen gemeinsamen Adressraum verwenden.The address lines of the buses 5 . 6 can be galvanically connected, at least in principle, if both buses have the same timing and the internal memory areas 3 . 4 and the external memory devices 7 . 8th use a common address space.

Der Festwert-Speicherbaustein 7 enthält einen unverschlüsselten Speicherbereich 9, in dem wenigstens ein Teil eines von der Prozessoreinheit 2 auszuführenden Betriebsprogramms gespeichert ist, einen sensiblen Bereich 10, dessen Manipulation durch Unbefugte es zu verhindern gilt, einen Offsetbereich 11 und ggf. einen Bereich 12, der weitere Daten enthält. Der sensible Bereich 10 enthält insbesondere Konstanten, auf welche die Prozessoreinheit 2 beim Abarbeiten des Betriebsprogramms zugreift. Wenn beispielsweise das Datenverarbeitungssystem ein Motorsteuergerät ist, können in dem sensiblen Bereich 10 für die Motorsteuerung verwendete Kennkurven abgelegt sein, die von dem Steuergerät am Motor einzustellende Zusammenhänge zwischen verschiedenen Betriebsgrößen wie etwa ein einzustellendes Luft-Kraftstoff-Verhältnis, Ventil-Öffnungs- und -schließwinkel, Zündwinkel oder dergleichen als Funktion von Motorlast und/oder -drehzahl etc. spezifizieren. Der sensible Bereich 10 kann aber auch Teile des Betriebsprogramms enthalten.The read-only memory module 7 contains an unencrypted memory area 9 in which at least part of one of the processor unit 2 stored operating program is a sensitive area 10 whose manipulation by unauthorized persons is to be prevented, an offset area 11 and possibly an area 12 which contains more data. The sensitive area 10 contains in particular constants to which the processor unit 2 accessing the operating program. For example, if the data processing system is an engine control unit, in the sensitive area 10 be used for the engine control characteristics used to be set by the control unit on the engine relationships between different operating variables such as an air-fuel ratio to be adjusted, valve opening and closing angle, ignition angle or the like as a function of engine load and / or speed etc .. specify. The sensitive area 10 but can also contain parts of the operating program.

Der Inhalt des sensiblen Bereiches 10 ist in dem Festwert-Speicherbaustein 7 in verschlüsselter Form abgelegt und daher ohne vorherige Entschlüsselung nicht als Betriebsprogramm oder durch das Betriebsprogramm nutzbar.The content of the sensitive area 10 is in the read-only memory device 7 stored in encrypted form and therefore can not be used as an operating program or by the operating program without prior decryption.

Ein Algorithmus zur Entschlüsselung des Inhaltes des sensiblen Bereiches 10 ist Teil des Betriebsprogramms; er ist im nicht verschlüsselten Speicherbereich 9 abgelegt.An algorithm for decrypting the content of the sensitive area 10 is part of the operating program; he is in the unencrypted storage area 9 stored.

Der interne Festwertspeicherbereich 3 des Mikrocontrollerbausteins 1 enthält einen Algorithmus zur Berechnung eines vom Entschlüsselungsalgorithmus benötigten Schlüssels aus dem Inhalt des sensiblen Bereiches 10 und einem im Offsetbereich 11 gespeicherten Offset.The internal read-only memory area 3 of the microcontroller module 1 contains an algorithm for calculating a key required by the decryption algorithm from the content of the sensitive area 10 and one in the offset area 11 stored offset.

Der Schlüsselberechnungsalgorithmus entspricht zum großen Teil herkömmlichen Integritätsprüfalgorithmen zum Erkennen von Manipulationen in einem Datensatz. Derartige Integritätsprüfalgorithmen umfassen jeweils die Berechnung einer Funktion eines zu überprüfenden Datensatzes und anschließend den Vergleich des an einer zu überprüfenden Version des Datensatzes berechneten Funktionswertes mit dem bekannten Wert, den die Funktion für den Originaldatensatz hat. Bei der zu berechnenden Funktion kann es sich im einfachsten Falle um die Parität oder eine Prüfsumme des zu überprüfenden Datensatzes handeln. Die Funktion könnte im anderen Extremfall auch eine Datenkompressionsfunktion sein, d. h. eine Funktion, deren Ergebnis weniger Bits umfasst als der zu überprüfende Datensatz, aber dessen gesamte Information enthält. Eine solche Funktion würde die Gewissheit bieten, dass jede Manipulation zu einer Veränderung des Ergebnisses führt und erkannt wird. In der Praxis wird man meist ein Funktion verwenden, bei der die Bitzahl des Ergebnisses der einfachen oder doppelten Breite des Datenbusses entspricht. Mit einer Bitzahl von 16 ist die Wahrscheinlichkeit, dass eine Manipulation nicht zu einer Änderung des Funktionsergebnisses führt, mit im besten Fall 2–16 vernachlässigbar gering.The key calculation algorithm is largely consistent with conventional integrity checking algorithms for detecting manipulations in a data set. Such integrity checking algorithms each comprise the calculation of a function of a data set to be checked and then the comparison of the function value calculated on a version of the data record to be checked with the known value that the function has for the original data record. In the simplest case, the function to be calculated may be the parity or a checksum of the record to be checked. In the other extreme case, the function could also be a data compression function, ie a function whose result comprises fewer bits than the data record to be checked but contains all its information. Such a function would provide the certainty that any manipulation will result in a change in the outcome and be recognized. In practice, one will usually use a function in which the bit number of the result corresponds to the single or double width of the data bus. With a bit count of 16, the probability that a manipulation does not lead to a change in the functional result is negligible, in the best case 2 -16 .

Das erfindungsgegenständliche Schlüsselberechnungsverfahren beschränkt sich auf die Berechnung des Funktionswertes, wobei die Daten des sensiblen Bereiches 10 als Argument der Funktion verwendet werden; ein Vergleich des so erhaltenen Funktionswertes mit einem erwarteten Wert findet jedoch – an ders als bei einer herkömmlichen Integritätsprüfung – nicht statt.The inventive key calculation method is limited to the calculation of the function value, wherein the data of the sensitive area 10 be used as an argument of the function; However, a comparison of the function value thus obtained with an expected value does not take place - in contrast to a conventional integrity check.

2 zeigt anhand eines schematischen Flussdiagramms den Ablauf der Verarbeitung in dem Datenverarbeitungssystem der 1, der jeweils auf den Start des Systems folgt. 2 shows on the basis of a schematic flow chart the flow of processing in the data processing system of 1 which follows at the start of the system.

Der erste Teil der Verarbeitung mit den Schritten S1 und S2 ist die Schlüsselberechnung. Die zu ihrer Durchführung benötigten Programmanweisungen liest die Prozessoreinheit 2 aus dem internen Speicherbereich 3. In Schritt S1 berechnet sie die oben erläuterte Integritätsprüffunktion mit dem Inhalt des sensiblen Bereiches 10 als Argument. Zum Funktionsergebnis addiert sie in Schritt S2 den Inhalt des Offsetbereichs 11 hinzu. Bei dem Offsetbereich 11 handelt es sich um eine Speicheradresse, deren Inhalt – im Gegensatz zu dem des sensiblen Bereiches 10 – ausschließlich für die Schlüsselberechnung genutzt wird. Den so erhaltenen Schlüssel legt die Prozessoreinheit 2 im internen wahlfreien Speicherbereich 4 des Bausteines 1 ab (S3).The first part of the processing with steps S1 and S2 is the key calculation. The program instructions required for their execution are read by the processor unit 2 from the internal memory area 3 , In step S1, it computes the integrity checking function explained above with the content of the sensitive area 10 as an argument. For the function result, it adds the content of the offset range in step S2 11 added. At the offset area 11 it is a memory address whose contents - in contrast to the sensitive area 10 - is used exclusively for the key calculation. The key thus obtained is placed by the processor unit 2 in the internal random memory area 4 of the building block 1 from (S3).

Anschließend führt die Prozessoreinheit 2 in Schritt S4 die im Speicherbereich 9 abgelegten Anweisungen des Entschlüsselungsalgorithmus unter Verwendung des im Speicherbereich 4 gespeicherten Schlüssels aus, um den Inhalt des sensiblen Bereiches 10 zu entschlüsseln und in das RAM 8 zu schreiben. Wenn dies geschehen ist, wird in Schritt S5 der Schlüssel im Speicherbereich 4 gelöscht, und die Prozessoreinheit 2 beginnt, in Schritt S6 einen anderen Algorithmus auszuführen, der der eigentli chen Aufgabe des Datenverarbeitungssystems wie etwa der Steuerung eines Verbrennungsmotors entspricht. Dieser Algorithmus verwendet die in das RAM 8 geschriebenen entschlüsselten Daten als Parameter oder eventuell sogar als Programmanweisungen. Wenn der in Schritt S2 berechnete Schlüssel korrekt gewesen ist, so sind auch die in den Speicher 8 geschriebenen entschlüsselten Daten korrekt, und das System kann seine Aufgabe korrekt ausführen. Wenn jedoch der Inhalt des sensiblen Bereiches 10 von einem Unbefugten manipuliert wurde, dann ist auch der in Schritt S2 erhaltene Schlüssel falsch, und die Entschlüsselung der Daten des sensiblen Bereiches 10 anhand des falschen Schlüssels führt zu sinnlosen Ergebnissen. Ein Versuch, das System anhand dieser Ergebnisse zu betreiben, führt daher zum Absturz (Schritt S7). Der Betrieb des Systems ist im Falle einer Manipulation somit effektiv gesperrt, ohne dass überhaupt ein Vergleich des in Schritt S2 berechneten Schlüssels mit einem erwarteten Schlüssel stattfinden muss. Ein solcher erwarteter Schlüssel braucht daher auch nicht in irgendeiner Weise in dem Festwertspeicherbaustein 7 versteckt zu werden, so dass ein Unbefugter auch nicht die Möglichkeit hat, ihn zu finden und bei seinen Manipulationen, in welcher Weise auch immer, zu berücksichtigen. So wird auf einfache Weise ein sehr hohes Maß an Manipulationssicherheit erreicht.Subsequently, the processor unit leads 2 in step S4, the memory area 9 stored instructions of the decryption algorithm using the in memory area 4 saved key to the contents of the sensitive area 10 to decrypt and into the RAM 8th to write. If this is done, the key is in the memory area in step S5 4 deleted, and the processor unit 2 begins to execute in step S6 another algorithm that corresponds to the eigentli Chen task of the data processing system such as the control of an internal combustion engine. This algorithm uses the in the RAM 8th written decrypted data as parameters or possibly even as program instructions. If the key calculated in step S2 has been correct, then those are also in the memory 8th written decrypted data correctly, and the system can perform its task correctly. However, if the content of the sensitive area 10 has been manipulated by an unauthorized person, then the key obtained in step S2 is also wrong, and the decryption of the data of the sensitive area 10 The wrong key leads to meaningless results. An attempt to operate the system on the basis of these results therefore leads to a crash (step S7). The operation of the system is thus effectively blocked in the event of a manipulation, without the need to even compare the key calculated in step S2 with an expected key. Therefore, such an expected key does not need in any way in the read only memory device 7 so that an unauthorized person also does not have the opportunity to find him and to be taken into account in his manipulation, in whatever way. Thus, a very high degree of manipulation security is achieved in a simple manner.

Eine Änderung der Daten des sensiblen Bereiches 10 durch einen Befugten, der den korrekten Schlüssel und den im Speicherbereich 3 unzugänglich abgelegten Schlüsselberechnungsalgorithmus kennt, ist jedoch völlig unproblematisch. Der Befugte kann eine beliebige Änderung der Daten des sensiblen Bereiches 10 vornehmen, den neuen Wert der Integritätsprüffunktion für diese geänderten Daten berechnen und in den Offsetbereich 11 denjenigen Zahlenwert eintragen, der, zum aus den geänderten Daten resultierenden Ergebnis der Integritätsprüffunktion hinzuaddiert, den alten Schlüssel ergibt.A change in the data of the sensitive area 10 by an authorized person holding the correct key and in the memory area 3 is inaccessible stored key calculation algorithm, but is completely unproblematic. The authorized person can change any data of the sensitive area 10 to calculate the new value of the Integrity Checker for this changed data and into the offset range 11 Enter the numeric value that adds to the old key resulting to the result of the integrity check function resulting from the changed data.

Claims (10)

Datenverarbeitungssystem mit einem Prozessorbaustein (1) und einem Festwertspeicher (3, 7), der von dem Prozessorbaustein (1) auszuführende Programmanweisungen und Parameter enthält, auf welche diese Programmanweisungen lesend zugreifen, gemeinsam als Betriebsdaten bezeichnet, wobei ein Teil dieser Betriebsdaten in verschlüsselter Form gespeichert ist und ein unverschlüsselter Teil dieser Betriebsdaten einen ersten Algorithmus zum Entschlüsseln des verschlüsselten Teils umfasst, dadurch gekennzeichnet, dass der unverschlüsselte Teil ferner einen zweiten Algorithmus zum Berechnen eines zum Entschlüsseln benötigten Schlüssels aus dem Inhalt einer Vielzahl von Speicherplätzen des Festwertspeichers (3, 7), als Schlüsselspeicherplätze (10, 11) bezeichnet, umfasst.Data processing system with a processor module ( 1 ) and a read-only memory ( 3 . 7 ) generated by the processor module ( 1 ) program instructions and parameters to which these program instructions access, collectively referred to as operating data, a portion of said operating data being stored in encrypted form and an unencrypted portion of said operating data comprising a first algorithm for decrypting the encrypted portion, characterized in that unencrypted part further comprises a second algorithm for calculating a key required for decryption from the contents of a plurality of memory locations of the read-only memory ( 3 . 7 ), as key storage locations ( 10 . 11 ). Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass der Festwertspeicher wenigstens einen vom Prozessorbaustein (1) getrennten Speicherbaustein (7) und einen in den Prozessorbaustein (1) integrierten Speicherbereich (3) umfasst, und dass der zweite Algorithmus in dem Speicherbereich (3) abgelegt ist und die Schlüsselspeicherplätze (10) sich wenigstens zum Teil in dem Speicherbaustein (7) befinden.Data processing system according to claim 1, characterized in that the read-only memory at least one of the processor module ( 1 ) separate memory module ( 7 ) and one in the processor chip ( 1 ) integrated memory area ( 3 ) and that the second algorithm in the memory area ( 3 ) and the key storage locations ( 10 ) at least partially in the memory device ( 7 ) are located. Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Schlüsselspeicherplätze (10, 11) wenigstens einen zusammenhängenden Adressbereich (10) des Festwertspeichers (3, 7) bilden.Data processing system according to claim 1 or 2, characterized in that the key memory locations ( 10 . 11 ) at least one contiguous address range ( 10 ) of the read-only memory ( 3 . 7 ) form. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Inhalte einer Mehrheit (10) der Schlüsselspeicherplätze Betriebsdaten eines dritten Algorithmus sind.Data processing system according to one of the preceding claims, characterized in that the contents of a majority ( 10 ) of the key storage locations are operational data of a third algorithm. Datenverarbeitungssystem nach Anspruch 4, dadurch gekennzeichnet, dass die Inhalte aller Schlüsselspeicherplätze bis auf einen (11) Betriebsdaten des dritten Algorithmus sind.Data processing system according to claim 4, characterized characterized in that the contents of all keystores until to one (11) operating data of the third algorithm. Datenverarbeitungssystem nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass wenigstens ein Teil der an den Schlüsselspeicherplätzen gespeicherten Betriebsdaten des dritten Algorithmus verschlüsselt ist.Data processing system according to claim 4 or 5, characterized in that at least a portion of the stored at the key memory locations Operating data of the third algorithm is encrypted. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, gekennzeichnet durch einen flüchtigen Schreib-Lesespeicher (8) zum Aufnehmen der aus den verschlüsselten Betriebsdaten erhaltenen entschlüsselten Betriebsdaten.Data processing system according to one of the preceding claims, characterized by a volatile random access memory ( 8th ) for receiving the decrypted operating data obtained from the encrypted operating data. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es ein Motorsteuergerät istData processing system according to one of the preceding Claims, characterized in that it is an engine control unit Datenverarbeitungssystem nach Anspruch 8, dadurch gekennzeichnet, dass die Schlüsselspeicherplätze (10) zur Steuerung eines angeschlossenen Motors benötigte Kennkurven enthalten.Data processing system according to claim 8, characterized in that the key memory locations ( 10 ) contain required characteristic curves for controlling a connected motor. Betriebsverfahren für ein Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, mit den Schritten: a) Ausführen des zweiten Algorithmus, um den Schlüssel zu erhalten (S1, S2) und Speichern des Schlüssels in einem flüchtigen Speicher (S3); b) Durchführen des zweiten Algorithmus, um einen benötigten Teil der Betriebsdaten zu entschlüsseln (S4); c) Löschen des Schlüssels (S5); und d) Arbeiten mit den Betriebsdaten (S6).Operating procedure for data processing A system according to any one of the preceding claims, comprising the steps of: a) executing the second algorithm to obtain the key (S1, S2) and storing the key in a volatile memory (S3); b) performing the second algorithm to decrypt a required portion of the operating data (S4); c) deleting the key (S5); and d) working with the operating data (S6).
DE200410047080 2004-09-29 2004-09-29 Data processing system e.g. internal combustion engine control, for motor vehicle, has ROM containing operational data, where part of unencrypted data has decryption key computing algorithm that is executed in runtime of system Withdrawn DE102004047080A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200410047080 DE102004047080A1 (en) 2004-09-29 2004-09-29 Data processing system e.g. internal combustion engine control, for motor vehicle, has ROM containing operational data, where part of unencrypted data has decryption key computing algorithm that is executed in runtime of system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410047080 DE102004047080A1 (en) 2004-09-29 2004-09-29 Data processing system e.g. internal combustion engine control, for motor vehicle, has ROM containing operational data, where part of unencrypted data has decryption key computing algorithm that is executed in runtime of system

Publications (1)

Publication Number Publication Date
DE102004047080A1 true DE102004047080A1 (en) 2006-04-06

Family

ID=36062024

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410047080 Withdrawn DE102004047080A1 (en) 2004-09-29 2004-09-29 Data processing system e.g. internal combustion engine control, for motor vehicle, has ROM containing operational data, where part of unencrypted data has decryption key computing algorithm that is executed in runtime of system

Country Status (1)

Country Link
DE (1) DE102004047080A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010102883A1 (en) * 2009-03-11 2010-09-16 Continental Automotive Gmbh Method and device for generating authorization information for an authorization system
DE102010040115A1 (en) * 2010-09-01 2012-03-01 Robert Bosch Gmbh Method for providing information to a controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010102883A1 (en) * 2009-03-11 2010-09-16 Continental Automotive Gmbh Method and device for generating authorization information for an authorization system
DE102010040115A1 (en) * 2010-09-01 2012-03-01 Robert Bosch Gmbh Method for providing information to a controller
WO2012028391A1 (en) * 2010-09-01 2012-03-08 Robert Bosch Gmbh Method for providing information for a controller

Similar Documents

Publication Publication Date Title
DE102008006759A1 (en) Processor arrangements, processor, method for operating a processor arrangement
DE102006055830A1 (en) Digital circuit/micro-controller protection method for internal combustion engine of motor vehicle, involves decoding data by key sets using cryptographic functions, and accessing functions on assigned key sets over key switch
EP3254227B1 (en) Method for protecting security-relevant data in a cache memory
DE102014208855A1 (en) Method for carrying out communication between control units
DE19723332A1 (en) Microprocessor program manipulation protection method
DE102013225445A1 (en) Method and system for bypassing authenticity checks for protected control modules
EP0280035B1 (en) Method for the programme securing and for integrity checking of a secured programme
DE102016210788A1 (en) Component for processing a worthy of protection date and method for implementing a security function to protect a worthy of protection date in such a component
EP3811260B1 (en) Cryptography module and method for operating same
DE102005039128A1 (en) Safety device for electronic devices
EP3655876A1 (en) Single-chip system, method for operating a single-chip system, and motor vehicle
EP1248200A1 (en) Locking circuit for preventing unauthorized access to a memory of a processor
DE10002203B4 (en) Method for protecting a microcomputer system against manipulation of data stored in a memory arrangement of the microcomputer system
EP3924807A1 (en) Method and apparatus for processing data stored in a storage device
DE102004047080A1 (en) Data processing system e.g. internal combustion engine control, for motor vehicle, has ROM containing operational data, where part of unencrypted data has decryption key computing algorithm that is executed in runtime of system
DE10131577A1 (en) Process for protecting a microcomputer system against manipulation of its program
EP1293858B1 (en) Method for protecting a microcomputer system against software manipulation
EP1428105A2 (en) Programme-controlled unit
EP1643405A1 (en) tamper-proof microprocessor system and method of operation thereof
DE10238094B4 (en) Method for protection against manipulation in a control unit for at least one motor vehicle component and control unit
WO2004042592A2 (en) Method for the secure checking of a memory region of a microcontroller in a control device and control device with a protected mikrocontroller
DE10127194A1 (en) Control method for logic address mapping uses virtual memory addressing for masking out non-serviceable memory cells
DE19612439C2 (en) Semiconductor memory device
DE60216106T2 (en) PROTECTED READING OF COMPUTER COMMANDS IN A DATA PROCESSING SYSTEM
DE10311249A1 (en) Protection of road vehicle electronic controllers against change of units unless identification code is produced

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20110810

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009440000

Ipc: G06F0021620000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee