Beschreibungdescription
Verfahren zum Betreiben einer Datenverarbeitungseinheit sowie Datenverarbeitungssystem zur Durchführung des VerfahrensMethod for operating a data processing unit and data processing system for performing the method
Die Erfindung betrifft ein Verfahren zum Betreiben einer Datenverarbeitungseinheit, die bedarfsweise unter Rückgriff auf spezifisch hinterlegte Zieladressen Daten aus einer zugeordneten Speichereinheit einliest . Sie bezieht sich weiter auf ein Datenverarbeitungssystem, insbesondere zur Durchführung eines derartigen Verfahrens mit einer derartigen Datenverarbeitungseinheit .The invention relates to a method for operating a data processing unit which, if necessary, reads in data from an assigned storage unit using specifically stored destination addresses. It further relates to a data processing system, in particular for performing such a method with such a data processing unit.
In Datenverarbeitungssystemen kommen üblicherweise Datenverarbeitungseinheiten wie beispielsweise μ.-Controller, μ-Pro- zessoren oder allgemein Prozessoren, zum Einsatz, in denen eingespeicherte Funktionsabläufe nach einem vorgegebenen Ablaufplan abgearbeitet werden. Dazu greift die jeweilige Datenverarbeitungseinheit üblicherweise auf in einer zugeordneten Speichereinheit hinterlegte Informationen zu, wobei beispielsweise einzelne Programmfunktionen oder auch Datensätze zur weiteren Be- oder Verarbeitung eingelesen werden. Beim bedarfsweisen Zugriff der Datenverarbeitungseinheit auf die jeweilige Speichereinheit wird dabei üblicherweise in der Art eines Indexpunkts oder Startpunkts für die folgende, einzulesende Information eine geeignete Zieladresse von der Datenverarbeitungseinheit an die Speichereinheit übermittelt, wobei anhand der solchermaßen vorgegebenen Zieladresse der Startpunkt für die einzulesenden Informationen vorgegeben wird.In data processing systems, data processing units such as, for example, μ controllers, μ processors or generally processors are used, in which stored functional sequences are processed according to a predefined flow chart. For this purpose, the respective data processing unit usually accesses information stored in an assigned storage unit, for example individual program functions or data records being read in for further processing. When the data processing unit accesses the respective storage unit as required, a suitable destination address is usually transmitted from the data processing unit to the storage unit in the manner of an index point or starting point for the following information to be read in, the starting point for the information to be read in being predefined on the basis of the destination address thus specified ,
Bei einem derartigen System können jedoch im Allgemeinen die jeweiligen Speicherinhalte direkt lesbar sein, so dass ein eingelesenes Informationselement unmittelbar auch einem auszuführenden Informationselement entspricht. Dadurch ist es bei unauthorisiertem Zugriff auf ein Speicherabbild, beispielsweise durch unauthorisiertes Auslesen des Programmspei-
chers, Röntgenmethoden oder Abschleifen des Gehäuses, grundsätzlich möglich, dass das in der Datenverarbeitungseinheit oder dem übergeordneten Datenverarbeitungssystem hinterlegte Programm oder Arbeitsprogramm anhand der Speicheradressen und -inhalte in der Art einer Rekompilierung wiederherzustellen oder zu rekonstruieren. Insbesondere kann somit das komplette Programm nebst zugehöriger Konstantwerte und möglicher Applikationsdaten wiederhergestellt werden, so dass auch bei eigentlich geheim zu haltenden Programmen oder Funktionen eine Entschlüsselung denkbar wäre.In such a system, however, the respective memory contents can generally be read directly, so that an information element that is read in corresponds directly to an information element to be executed. This makes it unauthorized to access a memory image, for example by unauthorized reading of the program memory. chers, X-ray methods or grinding the housing, in principle it is possible for the program or work program stored in the data processing unit or the higher-level data processing system to be restored or reconstructed in the manner of a recompilation on the basis of the memory addresses and contents. In particular, the complete program along with the associated constant values and possible application data can thus be restored, so that decryption would also be conceivable even for programs or functions that are actually to be kept secret.
Gerade bei geheimhaltungsbedürftigen Programmabläufen oder Informationsinhalten ist somit eine Absicherung gegen unberechtigten Zugriff nur bedingt möglich.Protection against unauthorized access is therefore only possible to a limited extent, particularly in the case of program sequences or information content requiring confidentiality.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zum Betreiben einer Datenverarbeitungseinheit der oben genannten Art anzugeben, mit dem in der Art einer zuverlässigen Geheimhaltung eine besonders günstige Absicherung gegen un- authorisiertes Entschlüsseln von auf der Datenverarbeitungseinheit hinterlegten Programmen möglich ist. Zudem soll ein für die Durchführung des Verfahrens besonders geeignetes Datenverarbeitungssystem mit einer derartigen Datenverarbeitungseinheit angegeben werden.The invention is therefore based on the object of specifying a method for operating a data processing unit of the type mentioned above, with which, in the manner of reliable secrecy, it is possible to provide particularly favorable protection against unauthorized decryption of programs stored on the data processing unit. In addition, a data processing system with such a data processing unit that is particularly suitable for carrying out the method is to be specified.
Bezüglich des Verfahrens wird diese Aufgabe erfindungsgemäß gelöst, indem vor einem Zugriff der Datenverarbeitungseinheit auf die Speichereinheit die von der Datenverarbeitungseinheit jeweils ausgegebene Zieladresse über einen hinterlegten Ver- schlüsselungsalgorithmus in eine tatsächliche Zieladresse umgesetzt wird.With regard to the method, this object is achieved according to the invention in that, before the data processing unit accesses the storage unit, the destination address output by the data processing unit is converted into an actual destination address using a stored encryption algorithm.
Die Erfindung geht dabei von der Überlegung aus, dass für die Datenverarbeitungseinheit eine besonders wirkungsvolle Absi- cherung gegen die Rekonstruktion hinterlegter Programme erreichbar ist, indem die für eine Rekompilierung erforderliche systematische Zusammenfügung einzelner Programmbausteine und
Dateninhalte systematisch erschwert wird. Dazu sollte eine geeignete Verschleierung von Querverknüpfungen zwischen einzelnen Bestandteilen oder Elementen der hinterlegten Programme oder Dateninhalte vorgesehen sein. Als ein besonders geeigneter Ansatzpunkt hierfür ist eine gezielte Verschleierung der Zieladressen vorgesehen, über die die Datenverarbeitungseinheit selektiv auf die Speichereinheit zugreift. Mit einer derartigen Verschlüsselung der Zieladressen ist somit ein konsistentes Zusammenfügen einzelner Programmelemente ohne Kenntnis des für die Verschleierung verwendeten Verschlüsselungsalgorithmus weitgehend ausgeschlossen. Mit der Verschlüsselung wird insbesondere die sogenannte Einsprungs- tabelle oder Interrupt-Vektor-Tabelle geeignet modifiziert, in der insbesondere die Zieladressen für die Initialisierung von Unterfunktionen oder Unterprogrammen auf der Speichereinheit hinterlegt sind.The invention is based on the consideration that a particularly effective protection against the reconstruction of stored programs can be achieved for the data processing unit by the systematic combination of individual program modules and necessary for recompilation Systematically complicates data content. For this purpose, a suitable concealment of cross-links between individual components or elements of the stored programs or data content should be provided. A particularly suitable starting point for this is a targeted concealment of the target addresses via which the data processing unit selectively accesses the memory unit. With such an encryption of the destination addresses, a consistent joining together of individual program elements without knowledge of the encryption algorithm used for the obfuscation is largely ruled out. The encryption, in particular, suitably modifies the so-called entry table or interrupt vector table, in which in particular the destination addresses for the initialization of subfunctions or subroutines are stored on the memory unit.
Zur Verschlüsselung kann ein geeigneter Verschlüsselungsalgorithmus wie beispielsweise DES, Triple DES o.a. eingesetzt sein. Eine besonders wirksame Verschleierung der verwendeten Zieladressen ist dabei auf einfache Weise erreichbar, indem vorteilhafterweise zur Umsetzung der Zieladresse in die tatsächliche Zieladresse ein Verschlüsselungsalgorithmus auf Basis eines CRC ("Cyclic Redundancy Check" ) -Polynoms verwendet wird.A suitable encryption algorithm such as DES, Triple DES or the like can be used for encryption. be used. A particularly effective concealment of the destination addresses used can be achieved in a simple manner by advantageously using an encryption algorithm based on a CRC ("Cyclic Redundancy Check") polynomial to convert the destination address into the actual destination address.
Für eine besonders hohe Absicherung gegen unauthorisierte Entschlüsselung hinterlegter Programme ist zudem vorgesehen, dass eine Übertragung von bei der Analyse einer Datenverar- beitungseinheit gewonnenen Erkenntnissen auf eine baugleiche, andere Datenverarbeitungseinheit grundsätzlich unmöglich ist. Dazu wird vorteilhafterweise selbst für den Fall, dass eine Herstellung der jeweiligen Datenverarbeitungseinheit in vergleichsweise großen Stückzahlen vorgesehen ist, für jede in- dividuelle Datenverarbeitungseinheit spezifisch ein eigener, nicht auf eine baugleiche andere Datenverarbeitungseinheit übertragbarer Verschlüsselungsalgorithmus verwendet. Damit
ist selbst für den Fall, dass in der Art eines unauthorisier- ten Zugriffs durch Demontage der Datenverarbeitungseinheit von deren sämtlichen Komponenten inklusive den für die Speicherung des Verschlüsselungsalgorithmus vorgesehenen Elemβn- ten ein komplettes Speicherabbild beschafft wird, die Nutzung von daraus gewonnenen Erkenntnissen für die unauthorisierte Entschlüsselung baugleicher, anderer Datenverarbeitungseinheiten ausgeschlossen.For a particularly high level of security against unauthorized decryption of stored programs, it is also provided that it is fundamentally impossible to transfer the knowledge gained in the analysis of a data processing unit to an identical, different data processing unit. For this purpose, even in the event that the respective data processing unit is to be manufactured in comparatively large numbers, an individual encryption algorithm is used specifically for each individual data processing unit that cannot be transferred to an identical data processing unit. In order to Even in the event that a type of unauthorized access is obtained by dismantling the data processing unit from all of its components, including the elements provided for storing the encryption algorithm, a complete memory image is used, the knowledge gained from this is used for the unauthorized decryption identical, other data processing units excluded.
Bezüglich des Datenverarbeitungssystems wird die genannteWith regard to the data processing system, the aforementioned
Aufgabe gelöst mit einem datenseitig zwischen die Datenverarbeitungseinheit und die Speichereinheit geschalteten Codiermodul, das bei einem Zugriff auf die Speichereinheit die von der Datenverarbeitungseinheit jeweils ausgegebene Zieladresse in eine tatsächliche Zieladresse umsetzt.The object is achieved with a coding module which is connected on the data side between the data processing unit and the storage unit and which converts the destination address output by the data processing unit into an actual destination address when the storage unit is accessed.
Vorteilhafterweise greift das Codiermodul dabei zur Umsetzung der Zieladressen auf ein CRC-Polynom zurück. In weiterer vorteilhafter Ausgestaltung ist das CRC-Polynom dabei individu- eil für die jeweilige Datenverarbeitungseinheit erzeugt, so dass eine spezifisch auf die jeweilige Datenverarbeitungseinheit zugeschnittene, nicht übertragbare Codierung erreichbar ist.The coding module advantageously uses a CRC polynomial to convert the target addresses. In a further advantageous embodiment, the CRC polynomial is generated individually for the respective data processing unit, so that a non-transferable coding that is specifically tailored to the respective data processing unit can be achieved.
Eine weitere Absicherung insbesondere im Hinblick auf unauthorisierte analytische Zugriffe auf die jeweilige Datenverarbeitungseinheit ist erreichbar, indem das Datenverarbeitungssystem vorteilhafterweise ein Controllermodul umfasst, das die Zugriffe auf die Speichereinheit steuert, wobei die das Codiermodul bildenden Elemente, insbesondere die für die Verschlüsselung der Zieladressen verwendeten funktionalen Bestandteile, dezentral hinterlegt sind. Durch eine derartige dezentrale Hinterlegung ist nämlich eine geschlossene, konsistente Entschlüsselung des insgesamt verwendeten Verschlüs- selungsverfahrens nicht ohne weiteres möglich.
Um dabei auch eine besonders gute Absicherung gegen eine Informationsbeschaffung durch destruktive und/oder invasive Maßnahmen in die Hardwarekomponenten zu erreichen, sind die das Codiermodul bildenden Elemente in weiterer vorteilhafter Ausgestaltung in einem räumlich schwer zugänglichen Bereich des Controllermoduls hinterlegt. Als räumlich schwer zugänglicher Bereich kommt dabei insbesondere ein in der Hardwarearchitektur des Controllermoduls vergleichsweise tief- oder innenliegender Bereich in Betracht, der destruktiv oder inva- siv lediglich nach Abtrag anderer wesentlicher Bestandteile des Controllermoduls zugänglich ist.A further safeguard, in particular with regard to unauthorized analytical access to the respective data processing unit, can be achieved by the data processing system advantageously comprising a controller module that controls access to the storage unit, the elements forming the coding module, in particular the functional components used for the encryption of the destination addresses , are stored decentrally. Such a decentralized deposit does not allow closed, consistent decryption of the encryption method used overall. In order to achieve particularly good protection against information acquisition by destructive and / or invasive measures in the hardware components, the elements forming the coding module are stored in a further advantageous embodiment in an area of the controller module that is difficult to access. An area that is difficult to access in spatial terms is, in particular, an area that is comparatively deep or internal in the hardware architecture of the controller module and that is accessible destructively or invasively only after removal of other essential components of the controller module.
Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass gerade durch die Verschlüsselung der Ziela- dressen beim bedarfsweisen Zugriff der Datenverarbeitungseinheit auf die Speichereinheit bei einem unauthorisierten Zugriff auf die Speicherinhalte eine konsistente Rekonstruktion der hinterlegten Programme oder Funktionseinheiten weitgehend ausgeschlossen ist. Die Programm- und Dateninhalte sind somit nicht ohne weiteres auslesbar, wobei insbesondere möglicherweise unauthorisiert gewonnenes Datenmaterial ohne Kenntnis des bei der Verschlüsselung verwendeten Verfahrens und seiner Parameter nicht verwertet werden kann. Gerade das solchermaßen mögliche "Verstecken" oder "Verbergen" der Einsprung- oder Interrupt-Vektor-Tabelle auf der Speichereinheit unterbindet vergleichsweise wirkungsvoll ein Redesign von programmierter Software. Durch eine zusätzliche generische Abwandlung des Codes bei der individuellen Programmierung des Controllers oder der Datenverarbeitungseinheit lasen sich auch bei der Übertragung von Erkenntnissen zwischen Datenverarbeitungseinheiten gleichen Typs keine Rückschlüsse mehr auf die Struktur von dort hinterlegten Programmen ziehen.The advantages achieved by the invention consist in particular in that the encryption of the target addresses when the data processing unit accesses the memory unit as required, in the event of unauthorized access to the memory contents, largely precludes a consistent reconstruction of the stored programs or functional units. The program and data contents are therefore not readily readable, and in particular data material that may have been obtained without authorization cannot be used without knowledge of the method used for the encryption and its parameters. The "hiding" or "hiding" of the entry or interrupt vector table on the memory unit that is possible in this way comparatively effectively prevents a redesign of programmed software. An additional generic modification of the code in the individual programming of the controller or the data processing unit means that no more conclusions can be drawn about the structure of programs stored there, even when knowledge is transferred between data processing units of the same type.
Ein Ausführungsbeispiel der Erfindung wird anhand einer Zeichnung näher erläutert. Darin zeigt die Figur schematisch ein Datenverarbeitungssystem.
Das Datenverarbeitungssystem 1 gemäß der Figur umfasst eine Datenverarbeitungseinheit 2, die bestimmungs- und funktionsabhängig nach vorgegebenen Ablaufplänen Berechnungs- oder Steuerungsaufgaben abwickelt. Dazu werden bei der Programmie- rung der Datenverarbeitungseinheit 2 geeignete Programme oder Module hinterlegt, die für sich genommen oder in ihrem Zusammenspiel die vorgegebenen Funktionsabläufe erfüllen.An embodiment of the invention is explained in more detail with reference to a drawing. The figure schematically shows a data processing system. The data processing system 1 according to the figure comprises a data processing unit 2 which, depending on the determination and function, handles calculation or control tasks according to predetermined flow charts. For this purpose, suitable programs or modules are stored in the programming of the data processing unit 2, which, taken on their own or in their interaction, fulfill the specified functional sequences.
Beispielsweise zur Initialisierung weiterer Unterfunktionen oder auch zur Beschaffung notwendiger Zwischen- oder Zusatzdaten greift die Datenverarbeitungseinheit 2 bedarfsweise auf eine zugeordnete Speichereinheit 4 zu. Dabei löst das in der Datenverarbeitungseinheit jeweils gerade ablaufende Programm oder Modul zur bedarfsweisen Beschaffung weiterer Informatio- nen oder zum bedarfsweisen Aufruf weiterer Funktionen den Zugriff auf die Speichereinheit 4 aus, wobei zum Auffinden der korrekten jeweils benötigten Daten auf der Speichereinheit 4 auf eine zugeordnete, den jeweils genutzten Speicherbereich charakterisierende Zieladresse zurückgegriffen wird. Diese Zieladresse wird von der Datenverarbeitungseinheit 2 mit an die Speichereinheit 4 ausgegeben, so dass der Aufruf der korrekten jeweils benötigten Daten sichergestellt ist.For example, for the initialization of further sub-functions or also for the acquisition of necessary intermediate or additional data, the data processing unit 2 accesses an assigned storage unit 4 as required. The program or module that is currently running in the data processing unit triggers access to the storage unit 4 to obtain additional information as required or to call up additional functions as required, with an associated, the target address characterizing the memory area used is used. This destination address is also output by the data processing unit 2 to the storage unit 4, so that the call up of the correct data required in each case is ensured.
Allerdings könnte bei einem unauthorisierten Zugriff auf die Speicherinhalte in der Datenverarbeitungseinheit 2 und der Speichereinheit 4 bei Kenntnis der die einzelnen Segmente miteinander verknüpfenden Zieladressen eine Entschlüsselung der in ihrer Gesamtheit im Datenverarbeitungssystem 2 ablaufenden Programme durch geeignete Rekonstruktion der einzelnen Bestandteile möglich sein. Das Datenverarbeitungssystem 1 ist jedoch dafür ausgelegt, einen derartigen unauthorisierten Eingriff zur Entschlüsselung möglicherweise geheimnisrelevanter Informationen sicher zu unterbinden.However, in the event of unauthorized access to the memory contents in the data processing unit 2 and the memory unit 4, if the destination addresses linking the individual segments are known, the programs running in their entirety in the data processing system 2 can be decrypted by suitable reconstruction of the individual components. However, the data processing system 1 is designed to reliably prevent such an unauthorized intervention for decrypting information that may be secret.
Dazu ist datenseitig zwischen die Datenverarbeitungseinheit 2 und die Speichereinheit 4 ein Codiermodul 6 geschaltet. Das Codiermodul 6 setzt dabei unter Rückgriff auf ein CRC-Polynom
in der Art einer Verschlüsselung die bei einem Zugriff der Datenverarbeitungseinheit 2 auf die Speichereinheit 4 eintreffenden, zur Charakterisierung des Speicherorts für die jeweiligen Daten mitgelieferten Zieladressen in tatsächliche Zieladressen um. Dabei wird beispielsweise die sogenannteFor this purpose, a coding module 6 is connected on the data side between the data processing unit 2 and the storage unit 4. The coding module 6 uses a CRC polynomial in the manner of an encryption, the destination addresses which arrive when the data processing unit 2 accesses the storage unit 4 and which are used to characterize the storage location for the respective data are converted into actual destination addresses. For example, the so-called
Einsprungs- oder Interrupt-Vektor-Tabelle durch Verschlüsselung auf der Grundlage des CRC-Polynoms geeignet modifiziert. Anschließend gibt das Codiermodul 6 die solchermaßen umgesetzten tatsächlich genutzten Zieladressen gemeinsam mit mög- licherweise zusätzlich benötigten Daten an die Speichereinheit 4 weiter, so dass das Auslesen der angeforderten Daten anhand der im Codiermodul generierten, tatsächlichen Zieladressen erfolgt . Die solchermaßen ausgelesenen Daten werden unter Umgehung des Codiermoduls 6 über eine Datenleitung 8 an die Datenverarbeitungseinheit 2 zurückgegeben.Entry or interrupt vector table appropriately modified by encryption based on the CRC polynomial. The coding module 6 then forwards the actually used target addresses converted in this way, together with any additional data which may be required, to the memory unit 4, so that the requested data are read out on the basis of the actual target addresses generated in the coding module. The data read in this way are returned to the data processing unit 2 bypassing the coding module 6 via a data line 8.
Hardewareseitig umfasst das DatenverarbeitungsSystem 1 ein im schematischen Aufbau nach der Figur nicht mehr dargestelltes Controllermodul, das physikalisch die einzelnen Zugriffe der Datenverarbeitungseinheit 2 auf die Speichereinheit 4 steuert. In diesem Controllermodul sind die in ihrer Gesamtheit das Codiermodul 6 bildenden Elemente dezentral und zudem an einer räumlich schwer zugänglichen Stelle hinterlegt, so dass auch bei destruktiven oder invasiven Eingriffen in das Controllermodul eine Rekonstruktion der verwendeten Verschlüsselungsverfahren nicht möglich ist.
On the hardware side, the data processing system 1 comprises a controller module, which is no longer shown in the schematic structure according to the figure, and which physically controls the individual accesses of the data processing unit 2 to the memory unit 4. In this controller module, the elements that form the coding module 6 in their entirety are decentralized and also stored in a location that is difficult to access in space, so that even in the event of destructive or invasive interventions in the controller module, it is not possible to reconstruct the encryption methods used.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
1 DatenverarbeitungsSystem1 data processing system
2 Datenverarbeitungseinheit 4 Speichereinheit2 data processing unit 4 storage unit
6 Codiermodul 8 Datenleitung
6 coding module 8 data line