Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR TRANSFERRING AT LEAST ONE TRANSFER VALUE, METHOD FOR TRANSFERRING AT LEAST ONE TRANSFER VALUE FROM A FIRST PROGRAM TO A SECOND PROGRAM, METHOD FOR TESTING THE OPERABILITY OF A PROGRAM, AND TEST UNITS FOR SAID METHODS
Document Type and Number:
WIPO Patent Application WO/2017/076774
Kind Code:
A1
Abstract:
Disclosed is a method for transferring at least one transfer value from a first program to a second program. Said method can involve: having the first program generate the at least one transfer value; having the first program provide at least one execution signature for the generation process, said at least one execution signature being associated with the transfer value; transmitting the execution signature to a test entity; providing a reference signature representing the smooth execution of the generation process; having the test entity verify the execution signature on the basis of the reference signature; having the test entity provide a confirmation code if the verification of the execution signature has yielded a positive result; transmitting at least the transfer value and the confirmation code to the second program; providing a reference code representing the smooth execution of the verification of the execution signature; having the second program verify the confirmation code on the basis of the reference code; and having the second program process the transfer value if at least the verification of the confirmation code has yielded a positive result.

Inventors:
FETZER CHRISTOF (DE)
Application Number:
PCT/EP2016/076113
Publication Date:
May 11, 2017
Filing Date:
October 28, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV DRESDEN TECH (DE)
International Classes:
G06F11/10; G06F11/28
Foreign References:
US5974529A1999-10-26
US20120233446A12012-09-13
Other References:
None
Attorney, Agent or Firm:
VIERING, JENTSCHURA & PARTNER MBB (DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur Übergabe zumindest eines Übergabewerts von einem ersten Programm an ein zweites Programm, wobei das Verfahren aufweist :

• Erzeugen des zumindest einen Übergäbewerts mittels des ersten Programms ;

• Bereitstellen zumindest einer AblaufSignatur des

Erzeugens , welche dem zumindest einen Übergäbewert zugeordnet ist , mittels des ersten Programms ;

• Übermitteln zumindest der zumindest einen

AblaufSignatur an eine Überprüfungsinstanz ;

• Bereitstellen zumindest einer Referenz Signatur,

welche einen störungsfreien Ablauf des Erzeugens repräsentiert ;

• Überprüfen der zumindest einen AblaufSignatur auf Grundlage der zumindest einen Referenz Signatur mittels der Überprüfungsinstanz ;

• Bereitstellen eines Bestätigungscodes mittels der Überprüfungsinstanz , wenn das Überprüfen der zumindest einen AblaufSignatur ein positives Ergebnis liefert ;

• Übermitteln zumindest des Übergäbewerts und des

Bestatigungscodes an das zweite Programm;

• Bereitstellen eines Referenzcodes , welcher einen

störungsfreien Ablauf des Überprüfens der zumindest einen AblaufSignatur repräsentiert ;

• Überprüfen des Bestätigungscodes auf Grundlage des Referenzcodes durch das zweite Programm; und

• Verarbeiten des zumindest einen Übergäbewerts

mittels des zweiten Programms , wenn zumindest das Überprüfen des zumindest einen Bestätigungscodes ein positives Ergebnis liefert .

2. Verfahren gemäß Anspruch 1 ,

wobei das Übermitteln der AblaufSignatur an die

Überprüfungsinstanz mittels einer ersten DatenVerbindung erfolgt, die das erste Programm mit der

Überprüfungsinstanz verbindet, wobei optional die erste DatenVerbindung eine verschlüsselte DatenVerbindung ist .

3. Verfahren gemäß Anspruch 2 ,

wobei die erste Datenverbindung eine Verbindung zwischen einer ersten Recheneinheit , die das erste Programm ausführt , und einer Überprüfungseinheit , die von der ersten Recheneinheit verschieden ist und die die

Überprüfungsinstanz ausführt , aufweist .

Verfahren gemäß einem der vorhergehenden Ansprüche , wobei das Übermitteln des Übergäbewerts an das zweite Programm mittels einer zweiten DatenVerbindung erfolgt , die das erste Programm mit dem zweiten Programm

verbindet , wobei optional die zweite DatenVerbindung eine verschlüsselte DatenVerbindung ist .

5. Verfahren gemäß Anspruch 4 ,

wobei die zweite DatenVerbindung eine Verbindung

zwischen einer ersten Recheneinheit , die das erste

Programm ausführt , und einer zweiten Recheneinheit , die von der ersten Recheneinheit verschieden ist und die das zweite Programm ausführt , aufweist .

6. Verfahren gemäß den Ansprüchen 2 und 4 ,

wobei das Übermitteln des Bestätigungscodes von der Überprüfungsinstanz zum zweiten Programm mittels der ersten und zweiten DatenVerbindung erfolgt .

Verfahren gemäß einem der vorhergehenden Ansprüche , wobei das Übermitteln zumindest der AblaufSignatur an die Überprüfungseinheit ein Übermitteln zumindest einer Kenngröße des zumindest einen Übergäbewerts aufweist , wobei optional die zumindest eine Kenngröße eine

Kodierung des zumindest einen Übergäbewerts mittels eines ersten Schlüssels und zumindest einer ersten

Kodierungsfunktion umfasst.

8. Verfahren gemäß Anspruch 7 ,

wobei der Bestätigungscode mittels Kodierens zumindest der Kenngröße mittels eines zweiten Schlüssels und einer zweiten Kodierungsfunktion bereitgestellt wird .

Verfahren gemäß einem der vorhergehenden Ansprüche , wobei das Erzeugen des zumindest einen Übergäbewerts i Abhängigkeit von zumindest einem Eingangswert erfolgt .

Verfahren gemäß einem der vorhergehenden Ansprüche , ferner aufweisend :

Reinitialisieren des ersten Programms , wenn das

Überprüfen der zumindest einen AblaufSignatur ein negatives Ergebnis liefert ;

wobei optional das Verfahren ferner aufweist :

• Speichern einer Zustandskenngröße des ersten

Programms in der Überprüfungsinstanz , wenn das

Überprüfen der zumindest einen AblaufSignatur ein positives Ergebnis liefert ;

• Übermitteln der gespeicherten Zustandskenngröße an das erste Programm nach erfolgtem Reinitialisieren des ersten Programms .

11. Verfahren gemäß einem der vorhergehenden Ansprüche ,

ferner aufweisend :

Verwerfen des Übergabewerts , wenn das Überprüfen des zumindest einen Bestätigungscodes ein negatives Ergebnis liefert .

Verfahren gemäß einem der vorhergehenden Ansprüche , wobei das Übermitteln des Bestätigungscodes an das zweite Programm ein Übermitteln eines durch die

Überprüfungseinheit generierten ersten Zeitstempeis aufweist ; wobei optional das Verfahren ferner aufweist ein

Verwerfen des Übergabewerts, wenn der erste Zeitstempel älter ist als ein zuvor empfangener ZeitStempel .

Verfahren gemäß einem der vorhergehenden Ansprüche , ferner aufweisend :

• Festlegen eines ersten Referenz Zeitpunkts , zu dem eine Übermittlung der AblaufSignatur vom ersten Programm zur Überprüfungsinstanz erfolgt sein soll ; und

• Bereitstellen von zusätzlichen Ressourcen zur

Ausführung des ersten Programms , wenn zum ersten Referenz Zeitpunkt keine AblaufSignatur empfangen wurde .

Verfahren gemäß einem der Ansprüche 1 bis 12 , ferner aufweisend :

• Festlegen eines zweiten Referenz Zeitpunkts , zu dem eine Übermittlung der AblaufSignatur vom ersten Programm zur Überprüfungsinstanz erfolgt sein soll ,

• Reinitialisieren des ersten Programms , wenn zum

zweiten Referenz Zeitpunkt keine AblaufSignatur empfangen wurde .

Verfahren gemäß einem der Ansprüche 1 bis 12 , ferner aufweisend :

• Festlegen eines ersten Referenz Zeitpunkts , zu dem eine Übermittlung der AblaufSignatur vom ersten Programm zur Überprüfungsinstanz erfolgt sein soll ,

• Bereitstellen von zusätzlichen Ressourcen zur

Ausführung des ersten Programms und Festlegen eines zweiten Referenz Zeitpunkts , zu dem eine Übermittlung der AblaufSignatur vom ersten Programm zur

Überprüfungsinstanz erfolgt sein soll , wenn zum ersten Referenz Zeitpunkt keine AblaufSignatur empfangen wurde ; und • Reinitialisieren des ersten Programms , wenn zum zweiten Referenz Zeitpunkt keine AblaufSignatur empfangen wurde .

Verfahren zur Übergabe von zumindest einem Übergabewert , wobei das Verfahren aufweist :

• Erzeugen zumindest des einen Übergabewerts ;

• Bereitstellen zumindest einer AblaufSignatur des

Erzeugens , welche dem zumindest einen Übergäbewert zugeordnet ist ;

• Bereitstellen zumindest einer Referenzsignatur,

welche einen störungsfreien Ablauf des Erzeugens repräsentiert ;

• Überprüfen der zumindest einen AblaufSignatur auf Grundlage der zumindest einen Referenz Signatur mittels der Überprüfungsinstanz ;

• Bereitstellen eines Bestätigungscodes , wenn das

Überprüfen der zumindest einen AblaufSignatur ein positives Ergebnis liefert ;

• Bereitstellen eines Referenzcodes , welcher einen

störungsfreien Ablauf des Überprüfens der zumindest einen AblaufSignatur repräsentiert ;

• Überprüfen des Bestätigungscodes auf Grundlage des Referenzcodes ; und

• Verarbeiten des zumindest einen Übergabewerts , wenn das Überprüfen des zumindest einen Bestätigungscodes ein positives Ergebnis liefert .

Überprüfungseinheit , aufweisend :

zumindest eine Recheneinheit die eingerichtet ist eine Überprüfungsinstanz auszuführen zur Durchführung des Verfahrens gemäß einem der Ansprüche 1 bis 16.

Überprüfungseinheit gemäß Anspruch 17,

wobei die Recheneinheit eingerichtet ist , die

Überprüfungsinstanz in einer Enklave aus zuführen . Überprüfungseinheit, aufweisend:

• eine Recheneinheit ; und

• eine Kommunikationseinheit , die eingerichtet ist , eine Kommunikation zwischen der Recheneinheit und zumindest einem ersten Programm herzustellen und eine Kommunikation zwischen der Recheneinheit und zumindest einem zweiten Programm herzustellen;

• wobei die Recheneinheit eingerichtet ist , für das erste Programm eine erste Überprüfungsinstanz auszuführen, die eingerichtet ist , einen korrekten Programmablauf des ersten Programms zu überprüfen und unabhängig von der zweiten Überprüfungsinstanz eine zweite Überprüfungsinstanz auszuführen, die eingerichtet ist , einen korrekten Programmablauf des zweiten Programms zu überprüfen .

Überprüfungseinheit gemäß Anspruch 19 , ferner

aufweisend :

zumindest ein Zertifikat , das zumindest beim Aufbau der Kommunikation zwischen der Recheneinheit und dem ersten Programm und/oder dem zweiten Programm, die

Kommunikation authentifiziert .

21. Verfahren zur Überprüfung der Funktionstüchtigkeit eines Programms , wobei das Verfahren aufweist :

• Festlegen eines Referenz Zeitpunkts , zu dem eine

Ausgabe mittels des Programms erfolgt sein soll ;

• Überwachen des Programms zumindest auf einen

Zeitpunkt der Ausgabe ; und

• Bereitstellen von zusätzlichen Ressourcen zur

Ausführung des Programms , wenn beim Überwachen festgestellt wird, dass zum Referenz Zeitpunkt noch keine Ausgabe von dem Programm erfolgt ist .

22. Überprüfungseinheit , aufweisend :

zumindest eine Steuereinheit , die eingerichtet ist : eine AblaufSignatur zu empfangen, die von einem

Programm gesendet wurde, das auf einer weiteren

Steuereinheit ausgeführt wird;

eine Gültigkeitsprüfung der AblaufSignatur

durchzuführen, wenn diese empfangen wurde ;

die weitere Steuereinheit aufzufordern, das Programm zu reinitialisieren, wenn die Gültigkeitsprüfung negativ ausfiel ;

einen ersten Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll ; und

die weitere Steuereinheit aufzufordern, zusätzliche Ressourcen zur Ausführung des Programms

bereitzustellen, wenn zum ersten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde .

Überprüfungseinheit , aufweisend:

zumindest eine Steuerschnittstelle; und

zumindest eine Steuereinheit , die eingerichtet ist :

• eine AblaufSignatur zu empfangen, die von einem

Programm gesendet wird, das auf einer weiteren Steuereinheit ausgeführt wird;

• einen Empfang eines Steuersignals , das von der

Steuereinheit , mittels des Programms , ermittelt und ausgegeben wird, an einem Eingang der

Steuerschnittstelle zu detektieren;

• eine Gültigkeitsprüfung der AblaufSignatur

durchzuführen wenn diese empfangen wurde ;

• die weitere Steuereinheit aufzufordern, das Programm zu reinitialisieren, wenn die Gültigkeitsprüfung negativ ausfiel ;

• einen zweiten Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll ;

• das Steuersignal an einem Ausgang der

Steuerschnittstelle auszugeben, wenn die

Gültigkeitsprüfung positiv ausfällt ; und

• an dem Ausgang der Steuerschnittstelle ein

SicherheitsSteuersignal anstatt des Steuersignals auszugeben, wenn die Gültigkeitsprüfung negativ ausfällt oder wenn zum zweiten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde .

Überprüfungseinhert , aufweisend :

zumindest eine Steuerschnittstelle; und

zumindest eine Steuereinheit , die eingerichtet ist :

• eine AblaufSignatur zu empfangen, die von einem

Programm gesendet wird, das auf einer weiteren Steuereinheit ausgeführt wird;

• einen Empfang eines Steuersignals , das von der

Steuereinheit , mittels des Programms , ermittelt und ausgegeben wird, an einem Eingang der

Steuerschnittstelle zu detektieren;

• einen ersten Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll ;

• die weitere Steuereinheit aufzufordern, zusätzliche Ressourcen zur Ausführung des Programms

bereitzustellen und einen zweiten Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll , wenn zum ersten Referenz zeitpunk noch keine AblaufSignatur empfangen wurde ;

• eine Gültigkeitsprüfung der AblaufSignatur

durchzuführen wenn diese empfangen wurde ;

• die weitere Steuereinheit aufzufordern, das Programm zu reinitialisieren, wenn die Gültigkeitsprüfung negativ ausfällt oder bis zum zweiten

Referenz zeitpunk keine AblaufSignatur empfangen wurde ;

• das Steuersignal an einem Ausgang der

Steuerschnittstelle auszugeben, wenn die

Gültigkeitsprüfung positiv ausfällt ; und

• an dem Ausgang der Steuerschnittstelle ein

SicherheitsSteuersignal anstatt des Steuersignals auszugeben, wenn die Gültigkeitsprüfung negativ ausfällt oder wenn zum zweiten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde .

Description:
Besehreibung

Verfahren zur Übergabe von zumindest einem Übergabewert ,

Verfahren zur Übergabe zumindest eines Übergabewerts von einem ersten Programm an ein zweites Programm, Verfahren zur Überprüfung der Funktionstüchtigkeit eines Programms und Überprüfungseinheiten für diese Verfahren

Die Erfindung betrifft Verfahren zur Übergabe von zumindest einem Übergabewert, Verfahren zur Übergabe zumindest eines Übergabewerts von einem ersten Programm an ein zweites

Programm, Verfahren zur Überprüfung der Funktionstüchtigkeit eines Programms und Überprüfungseinherten für diese

Verfahren .

Es ist bekannt, Überprüfungseinheiten (Watchdogs ) ,

einzusetzen, um Programme auf ihren korrekten Programmablauf hin zu überprüfen und diese gegebenenfalls zu

reinitialisieren (neu zu starten und/oder auf alternative Hardware zu verlegen) oder Warnmeldungen zu erzeugen . In Umgebungen, in denen eine Kette von Programmen, die

beispielsweise auf unterschiedlichen Recheneinheiten (oder Steuereinheiten) ausgeführt werden, in Abhängigkeit

voneinander laufen, wobei beispielsweise zumindest eines der Programme Ausgäbewerte erzeugt , die von zumindest einem anderen der Programme für eine weitere Verarbeitung genutzt werden, ist es bekannt , einen einzelnen Watchdog einzusetzen, der eingerichtet ist , die Gruppe von Programmen gemeinsam mittels einer einzigen Überprüfung auf einen korrekten

Programmablauf hin zu überprüfen .

Verschiedene Ausführungsbeispiele stellen eine zuverlässige Überprüfung der Funktionsfähigkeit und/oder Sicherheit von verketteten Programmen bereit . Weiter können verschiedene Ausführungsbeispiele eine hohe Flexibilität ermöglichen . In verschiedenen Ausführungsbeispielen sind die Programme kodiert, beispielsweise gemäß dem so genannten AN--Code oder dem so genannten ANB-Code oder einem anderen geeigneten Code, beispielsweise dem so genannten Delta-Code. Alle

beschriebenen Verfahren können auf solchermaßen kodierte Programme ausgeführt werden.

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zur Übergabe zumindest eines Übergäbewerts von einem ersten

Programm an ein zweites Programm bereitgestellt , wobei das Verfahren aufweist : Erzeugen des zumindest einen

Übergabewerts mittels des ersten Programms ; Bereitstellen zumindest einer AblaufSignatur des Erzeugens , welche dem zumindest einen Übergäbewert zugeordnet ist , mittels des ersten Programms ; Übermitteln zumindest der zumindest einen AblaufSignatur an eine Überprüfungsinstanz ; Bereitstellen zumindest einer Referenzsignatur, welche einen störungsfreien Ablauf des Erzeugens repräsentiert ; Überprüfen der zumindest einen AblaufSignatur auf Grundlage der zumindest einen

Referenz Signatur mittels der Überprüfungsinstanz ;

Bereitstellen eines Bestätigungscodes mittels der

Überprüfungsinstanz , wenn das Überprüfen der zumindest einen ProgrammablaufSignatur ein positives Ergebnis liefert ;

Übermitteln zumindest des Übergäbewerts und des

Bestätigungscodes an das zweite Programm; Bereitstellen eines Referenzcodes , welcher einen störungsfreien Ablauf des

Überprüfens der zumindest einen AblaufSignatur repräsentiert ; Überprüfen des Bestätigungscodes auf Grundlage des

Referenzcodes durch das zweite Programm; Verarbeiten des zumindest einen Übergäbewerts mittels des zweiten Programms , wenn das Überprüfen des zumindest einen Bestätigungscodes ein positives Ergebnis liefert .

Unter einem „Programm" (beispielsweise erstes und zweites Programm) kann beispielsweise eine Anwendung, eine

Applikation oder ein Steuerprogramm verstanden werden .

Beispielsweise weist das Programm zumindest eine Rechenanweisung (Multiplikation, Division, Addition,

Subtraktion, Modulusbildung, usw . ) auf. Das Programm kann softwareimplementiert , beispielsweise in Form von Anweisungen (insbesondere Rechenanweisungen) in einem Speicher, die mittels einer Vielzweck-Recheneinheit (beispielsweise mittels einer CPU oder Multi-purpose-CPU) ausgeführt werden, oder hardwareimplementiert , beispielsweise in Form einer Spezial ¬ Recheneinheit , in der aus zuführende Anweisungen, insbesondere Rechenanweisungen, fest vorgegeben sind (beispielsweise mittels einer Anwendungsspezifischen integrierten Schaltung - einem ASIC) , sein . Beispielsweise ist das Programm

eingerichtet , bei seiner Ausführung zumindest einen

anwendungsspezifischen Startwert , beispielsweise zumindest einen Eingangswert ( Input , bspw . Übergäbewert anderer

Programme ) und/oder zumindest einen internen, beispielsweise zufälligen, Wert , zu verarbeiten und zumindest einen

anwendungsspezifischen Endwert (Output , bspw . Übergäbewert an andere Programme ) zu erzeugen . Unter einer Ausführung von Aktionen „mittels" eines Programms kann beispielsweise verstanden werden, dass zur Ausführung der Aktion das

Programm von einer Recheneinheit ausgeführt wird .

Beispielsweise erfolgt das Erzeugen des zumindest einen

Übergabewerts in Abhängigkeit von zumindest einem

Eingangswert .

Unter einer „Recheneinheit" kann beispielsweise eine Einheit verstanden werden, die dazu eingerichtet ist , Startwerte (bspw . Eingangswerte) zu verarbeiten, beispielsweise auf Basis der Startwerte Endwerte zu erzeugen ( zu generieren, zu berechnen) . Beispielsweise ist die Recheneinheit als eine

Steuereinheit zur Steuerung und/oder Regelung zumindest einer externen Vorrichtung (beispielsweise Maschine , insbesondere Motor, Getriebe, Bremse, Kupplung, oder Digital-Analog- Wandler...) eingerichtet . Beispielsweise weist die

Recheneinheit zumindest eine Prozessoreinheit (beispielsweise CPU oder ASIC) zur Durchführung zumindest einer

Rechenoperation auf . Beispielsweise weist die Recheneinheit zumindest eine Speichereinheit zur Ablage von Daten auf.

Beispielsweise ist das Programm zumindest zu einer Ausführung in der Speichereinheit abgelegt . Beispielsweise wird das erste Programm von einer ersten Recheneinheit und das zweite Programm von einer zweiten Recheneinheit ausgeführt .

Beispielsweise sind die erste und zweite Recheneinheit verschieden voneinander . Beispielsweise wird das erste und/oder die zweite Programm in einer Enklave ausgeführt . Unter einer „Überprüfungsinstanz" kann beispielsweise ein Programm verstanden werden, das eingerichtet ist , ein

Verfahren zur Überprüfung des Ablaufs eines anderen Programms auszuführen . Beispielsweise wird die Überprüfungsinstanz von einer Überprüfungseinheit ausgeführt . Unter einer

„Überprüfungseinheit" kann beispielsweise eine Recheneinheit verstanden werden, die eingerichtet ist , eine

Überprüfungsinstanz aus zuführen . Beispielsweise ist die

Überprüfungseinheit eingerichtet , mit einer Recheneinheit , die das zu überprüfende Programm ausführt zu kommuni z ieren . Beispielsweise ist die Überprüfungseinheit eingerichtet , der Recheneinheit Anweisungen zu übermitteln, die einen Ablauf des Programms beeinflussen . Beispielsweise ist die

Überprüfungseinheit eingerichtet , die Ausführung des

Programms auf eine veränderte Hardware (insbesondere komplett andere Recheneinheit ) zu verschieben . Beispielsweise ist die erste Recheneinheit verschieden von der Überprüfungseinheit . Beispielsweise ist die zweite Recheneinheit verschieden von der Überprüfungseinheit . Gemäß einer weiteren Ausgestaltung werden die Überprüfungsinstanz und zumindest das erste

Programm von einer gleichen Recheneinheit ausgeführt .

Beispielsweise wird zumindest die Überprüfungsinstanz in einer Enklave (bspw . Intel SGX-Enclave) ausgeführt .

Beispielsweise wird die Überprüfungsinstanz von einem Field Programmable Gate Array (FPGA) ausgeführt . Beispielsweise ist das FPGA Teil einer Viel-Zweck-Prozesseinheit (CPU) . Unter einer „Enklave" kann beispielsweise ein Teil einer Recheneinheit verstanden werden, der zumindest einen

geschützten Speicherbereich aufweist . Beispielsweise ist ein Programm (das erste Programm, das zweite Programm, die

Überprüfungsinstanz ) in dem geschützten Speicherbereich hinterlegt . Beispielsweise hat selbst die Prozesseinheit der Recheneinheit lediglich dann Zugriff auf den geschützten Speicherbereich, wenn dieser Zugriff von Anweisungen verlangt wird, die innerhalb des geschützten Speicherbereichs ihren Ursprung haben . Der geschützte Speicherbereich kann

beispielsweise lediglich durch einen Befehl , der in dem geschützten Speicherbereich seinen Ursprung hat , von seinem Schutz befreit werden . Beispielsweise wird der

Speicherbereich durch eine Anweisung der Überprüfungsinstanz , beispielsweise bei einer Initialisierung des Programms geschützt . Es kann beispielsweise eine hohe Resistenz gegen Störereingriffe erreicht werden .

Unter einer „AblaufSignatur" des Erzeugens eines Werts mittels eines Programms kann beispielsweise eine Kenngröße des Ablaufs des Programms verstanden werden . Beispielsweise entspricht zumindest eine AblaufSignatur einer gezählten Anzahl an von der Recheneinheit bei Ausführung des Programms ausgeführten Anweisungen . Beispielsweise entspricht die

AblaufSignatur einem Wert oder einer Gruppe von Werten .

Beispielsweise ist das (erste) Programm eingerichtet ,

parallel zur Verarbeitung zumindest eines Eingangswerts zur Erzeugung des zumindest einen Endwerts einen vorgegeben

Initialwert zu verarbeiten, um die AblaufSignatur

bereitzustellen. Beispielsweise ist die Verarbeitung des Initialwerts mit der Verarbeitung des zumindest einen

Startwerts derart verknüpft , dass bei einer korrekten

Berechnung des zumindest einen Endwerts , beispielsweise durch korrekte Abarbeitung des Programms und/oder fehlerfreiem arbeiten der Recheneinheit (bspw . defektfreier Prozessor und defektfreie Speichereinheit ) , der Initialwert selbst als AblaufSignatur bereitgestellt wird, und dass bei fehlerbehafteter Berechnung des zumindest einen Endwerts ein vom Initialwert verschiedener Wert als AblaufSignatur bereitgestellt wird. Beispielsweise ist das erste Programm eingerichtet , eine Gruppe von Übergäbewerten zu Erzeugen . Beispielsweise ist das erste Programm eingerichtet , für jeden der Übergäbewerte der Gruppe eine separate AblaufSignatur bereitzustellen. Beispielsweise ist das erste Programm eingerichtet , für die Gruppe von Übergäbewerten eine einzelne AblaufSignatur bereitzustellen.

Die Referenz Signatur kann von der Überprüfungsinstanz bereitgestellt werden . Beispielsweise sind das erste Programm und die Überprüfungsinstanz eingerichtet , bei einer

Initialisierung einer DatenVerbindung zwischen diesen, die Referenz Signaturen auszuhandeln . Beispielsweise ist das erste Programm eingerichtet , der Überprüfungsinstanz zumindest eine Referenz Signatur und/oder eine Liste von Referenz Signaturen zu übermitteln, anhand derer die Überprüfungseinheit die zumindest eine AblaufSignatur überprüft . Beispielsweise ist die Überprüfungsinstanz eingerichtet , dem ersten Programm eine Reihe geeigneter Bereitstellungsvorschriften zur

Bereitstellung von Referenz Signaturen zur Auswahl zu stellen oder umgekehrt . Beispielsweise sind dem ersten Programm und der Überprüfungsinstanz jeweils eine Menge von

Bereitstellungsvorschriften zur Bereitstellung der

Referenz Signaturen bekannt und das erste Programm und die Überprüfungsinstanz sind eingerichtet , zufällig eine der Bereitstellungsvorschriften die in beiden Mengen vorliegt zu bestimmen, die für die Bereitstellung der zumindest einen Referenz Signatur verwendet wird . Beispielsweise ist das erste Programm eingerichtet , den Initialwert anhand der

Bereitstellungsvorschrift zur Erzeugung der Referenz Signatur festzulegen . Das erste Programm kann als Bereitschaffsprogramm

eingerichtet sein . Beispielsweise ist das erste Programm dazu eingerichtet , wiederholt , beispielsweise bei Empfang neuer Startwerte und/oder periodisch, Endwerte (Übergabewerte) zu erzeugen. So kann das erste Programm einen Programmabschnitt aufweisen, der zur Erzeugung des zumindest einen Endwerts (Übergabewerts ) eingerichtet ist . Beispielsweise ist die Bereitstellungsvorschrift eingerichtet , für wiederholte Ausführungen des Programmabschnitts unterschiedliche

Referenz Signaturen bereitzustellen . Beispielsweise ist eine ausgehandelte Bereitstellungsvorschrift zur Erzeugung von Referenz Signaturen eine iterative Bereitstellungsvorschrift , die beispielsweise die Referenz Signatur einer vorangegangen Ausführung des Programmabschnitts als Basiswert für eine Berechnung der Referenz Signatur für eine aktuelle Ausführung des Programmabschnitts verwendet . Beispielsweise ist das erste Programm eingerichtet , gemeinsam mit der zumindest einen AblaufSignatur zumindest einen Index zu übermitteln, der mit jeder weiteren Übermittlung, insbesondere um 1 , erhöht wird . Insbesondere ist mittels des Index und der Bereitstellungsvorschrift die Referenz Signatur eindeutig festgelegt .

Hierdurch kann beispielsweise eine erhöhte Sicherheit gegenüber einem Störereingriff (Hackerangriff) erreicht werden, da beispielsweise eine Erzeugung einer gefälschten AblaufSignatur erschwert wird .

Beispielsweise ist die Überprüfungsinstanz eingerichtet , den Bestätigungscode bereitzustellen, wenn die Referenz Signatur mit der AblaufSignatur übereinstimmt . Gemäß einer Ausgestaltung erfolgt das Übermitteln der

AblaufSignatur an die Überprüfungsinstanz mittels einer ersten DatenVerbindung, die das erste Programm mit der

Überprüfungsinstanz verbindet . Beispielsweise weisen eine Recheneinheit , die das erste Programm ausführt und die

Überprüfungseinheit , die die Überprüfungsinstanz ausführt , jeweils zumindest eine Kommunikationsschnittstelle auf .

Beispielsweise ist die erste DatenVerbindung eine verschlüsselte Datenverbindung. Beispielsweise ist die erste DatenVerbindung mittels eines symmetrischen

VerschlüsselungsVerfahrens verschlüsselt . Beispielsweise ist das erste Programm eingerichtet , eine Initialisierung der DatenVerbindung mit der Überprüfungseinheit durchzuführen . Beispielsweise wird während der Initialisierung ein Diffie- Hellman-Schlüsselaustausch durchgeführt . Beispielsweise ist die erste DatenVerbindung zumindest während der

Initialisierung zumindest in eine Richtung, beispielsweise in Richtung der Überprüfungsinstanz , mittels eines

asymmetrischen VerschlüsselungsVerfahrens verschlüsselt .

Beispielsweise wird ein Schlüssel für eine symmetrische

Verschlüsselung während der Initialisierung ausgehandelt . Hierdurch können Ressourcen gespart werden, da beispielsweise eine asymmetrische Verschlüsselung ressourcenintensiver ist als eine symmetrische Verschlüsselung . Beispielsweise weist zumindest die Überprüfungsinstanz ein Schlüsselzertifikat für eine asymmetrische Verschlüsselung auf . Beispielsweise ist das Schlüsselzertifikat in einer öffentlichen

Zertifizierungsstelle registriert . In einer alternativen Ausgestaltung wird ein asymmetrisches

Verschlüsselungsverfahren für sämtliche Kommunikation über die erste DatenVerbindung verwendet . Beispielsweise umfasst die erste DatenVerbindung zumindest eines von den folgenden : NetzwerkVerbindung (z.B. TCP ) , Systembusverbindung,

SystemperipherieVerbindung (z.B. USB) ,

Interprozesskommunikation (IPC), gemeinsamer Speicher ( shared Memory) , ZeroMQ-Verbindung . Es kann insbesondere eine hohe Sicherheit gegenüber Störereingriffen und/oder eine hohe Vertraulichkeit erreicht werden .

Gemäß einer weiteren Ausgestaltung wird vorgeschlagen, dass das Übermitteln des Übergäbewerts an das zweite Programm mittels einer zweiten DatenVerbindung erfolgt , die das erste Programm mit dem zweiten Programm verbindet . Beispielsweise weist die zweite DatenVerbindung zumindest eine der folgenden Arten von Verbindungen auf : Net zwerkVerbindung (z.B. TCP ) , Systembusverbindung, Systemperipherieverbindung (z.B. USB), Interprozesskommunikation ( IPC) , gemeinsamer Speicher ( shared Memory) , ZeroMQ-Verbindung . Beispielsweise ist die zweite DatenVerbindung eine verschlüsselte Datenverbindung . Das erste und das zweite Programm können eingerichtet sein, bei einer Initialisierung der zweiten DatenVerbindung eine

Verschlüsselungsmethode und/oder einen Schlüssel

auszuhandeln . Beispielsweise wird während der Initialisierung ein Diffie-Hellman-Schlüsselaustausch durchgeführt . Es kann auf diese Weise eine hohe Sicherheit gegenüber

Störereingriffen und/oder eine hohe Vertraulichkeit erreicht werden .

Gemäß einer Ausgestaltung erfolgt das Übermitteln des

Bestätigungscodes von der Überprüfungsinstanz zum zweiten Programm mittels der ersten DatenVerbindung und der zweiten Datenverbindung . Beispielsweise übermittelt die

Überprüfungsinstanz zumindest den Bestätigungscode an das erste Programm mittels der ersten Datenverbindung . Das erste Programm kann den Übergäbewert gemeinsam mit dem zumindest einen Bestätigungscode an das zweite Programm mittels der zweiten DatenVerbindung übermitteln . Es kann eine

Erreichbarkeit der Überprüfungsinstanz sichergestellt werden . Weiterhin kann vermieden werden, dass Übergäbewert und

Bestätigungscode einander nicht zuordenbar sind, wenn diese gemeinsam übermittelt werden . Gemäß einer alternativen

Ausgestaltung wird vorgeschlagen, dass die

Überprüfungsinstanz und das zweite Programm eingerichtet sind, eine dritte DatenVerbindung herzustellen, über die zumindest der Bestätigungscode übermittelt wird .

Gemäß einer weiteren Ausgestaltung weist das Übermitteln zumindest der AblaufSignatur an die Überprüfungseinhert ein Übermitteln zumindest einer Kenngröße des zumindest einen Übergabewerts auf . So kann die Kenngröße der Übergäbewert selbst sein . Beispielsweise ist die Kenngröße ein Hash-Wert des Übergabewerts . Beispielsweise ist die Kenngröße das Resultat eines Kodierens des zumindest einen Übergabewerts mittels eines ersten Schlüssels und zumindest einer ersten Kodierungsfunktion . Beispielsweise ist der erste Schlüssel ein Schlüssel der zweiten Daten erbindung (beispielsweise der symmetrische Schlüssel der zweiten DatenVerbindung) .

Beispielsweise ist die erste Kodierungsfunktion eine

Verschlüsselungsfunktion und/oder eine Hashfunktion,

beispielsweise eine Blockverschlüsselung . Beispielsweise ist die Kenngröße ein Nachrichtenauthentifizierungscode (Message Authentication Code/MAC) des Übergabewerts . Durch Vermeiden der Übermittlung des Übergäbewerts an sich kann

beispielsweise eine hohe Vertraulichkeit hergestellt werden . Weiterhin kann eine geringere Nachrichtenlänge erreicht werden .

Gemäß einer weiteren Ausgestaltung wird der Bestätigungscode mittels Kodierens zumindest der Kenngröße mittels eines zweiten Schlüssels und einer zweiten Kodierungsfunktion bereitgestellt . So kann der zweite Schlüssel ein Schlüssel sein, der zwischen der Überprüfungsinstanz und dem zweiten Programm ausgehandelt wurde . Beispielsweise ist die zweite Kodierungsfunktion eine Verschlüsselungsfunktion und/oder eine Hashfunktion, beispielsweise eine

Blockverschlüsselungsfunktion . Beispielsweise ist der

Bestätigungscode ein Nachrichtenauthentifizierungscode

(Message Authentication Code/MAC) zumindest der Kenngröße . Es kann auf diese Weise eine geringere Nachrichtenlänge erreicht werden . Dem zweiten Programm kann bekannt sein, welche erste und zweite Kodierungsfunktionen und welche ersten Schlüssel und zweiten Schlüssel verwenden wurden . Beispielsweise umfasst das Überprüfen des Bestätigungscodes zumindest ein Anwenden der ersten Kodierungsfunktion und der zweiten

Kodierungsfunktion zumindest auf den Übergabewert . Weiterhin kann zwischen der Überprüfungsinstanz und dem zweiten

Programm eine Signatursequenz , beispielsweise mittels einer iterativen Bereitstellungsvorschrift , ausgehandelt werden, wobei die Überprüfungsinstanz eingerichtet ist, ein Element der Signatursequenz als Bestätigungscode zu übermitteln .

Beispielsweise umfasst das Übermitteln des zumindest einen Übergabewerts an das zweite Programm ein Übermitteln der zumindest einen Kenngröße . Es kann eine vereinfachte

Überprüfung des Bestätigungscodes erreicht werden . Es kann eine erhöhte Sicherheit , beispielsweise gegenüber einem

Störereingriff, erreicht werden .

Ferner kann das Verfahren ferner aufweisen : Reinitialisieren des ersten Programms , wenn das Überprüfen der zumindest einen ProgrammablaufSignatur ein negatives Ergebnis liefert .

Beispielsweise wird das erste Programm auf derselben

Recheneinheit , auf der es zuvor ausgeführt wurde, neu

gestartet . So kann das Reinitialisieren ein Neu-Starten des ersten Programms auf einer veränderten Recheneinheit

beinhalten . Beispielsweise ist die erste Recheneinheit eingerichtet , Ressourcen, beispielsweise Speicherbereiche und/oder Prozessorkerne einer Prozesseinheit , zu sperren, wenn festgestellt wurde, dass eine Ausführung des ersten Programms auf dieses Ressourcen, beispielsweise einmalig oder beispielsweise reproduzierbar, zu einem Bereitstellen von ungültigen AblaufSignaturen führt . Beispielsweise ist die Überprüfungsinstanz (die Überprüfungseinheit ) eingerichtet , das erste Programm auf einer Ersat zrecheneinheit neu zu starten, die die erste Recheneinheit ersetzt . Das erste

Programm kann eingerichtet sein, beispielsweise in

regelmäßigen Abständen, einen Programmzustand, beispielsweise ein Speicherabbild des Programms , abzuspeichern . Das erste Programm kann eingerichtet sein, den Programmzustand nach einer Reinitialisierung anhand des abgespeicherten

Programmzustands wieder herzustellen . Es kann auf diese Weise eine hohe Zuverlässigkeit erreicht werden .

Das Verfahren kann ferner aufweisen : Speichern einer

Zustandskenngröße, beispielsweise das Speicherbild oder eine Versionsnummer des Speicherabbilds, des ersten Programms in der Überprüfungsinstanz , wenn das Überprüfen der zumindest einen ProgrammablaufSignatur ein positives Ergebnis liefert und Übermittlung der gespeicherten Zustandskenngroße an das erste Programm nach erfolgtem Reinitialisieren des ersten Programms . Das erste Programm kann eingerichtet sein, die Zustandskenngroße mit dem gespeicherten Speicherabbild zu vergleichen . Das erste Programm kann ferner eingerichtet sein, auf eine Wiederherstellung des Speicherabbilds zu verzichten, wenn anhand der Zustandskenngroße erkannt wird, dass das Speicherabbild veraltet ist . Es kann beispielsweise ein Störereingriff (beispielsweise Roll-Back-Attacke) erkannt werden . Das zweite Programm kann eingerichtet sein, den Übergäbewert zu verwerfen, wenn das Überprüfen des zumindest einen

Bestätigungscodes ein negatives Ergebnis liefert .

Beispielsweise kann eine verbesserte Sicherheit erreicht werden, da Übertragungsfehler und/oder Störereingriffe erkannt werden können . Weiterhin kann das zweite Programm eingerichtet sein, den Übergäbewert zu verwerfen, wenn dieser ohne zugehörigen Bestätigungscode erhalten wurde .

Ferner kann das Übermitteln des Bestätigungscodes an das zweite Programm eine Übermittlung eines durch die

Überprüfungseinheit generierten ersten Zeitstempeis

aufweisen . Das Verfahren kann ferner aufweisen ein Verwerfen des Übergabewerts , wenn der erste ZeitStempel älter ist als ein zuvor empfangener ZeitStempel , oder auch als ein

vorgegebener (absoluter oder relativer) Zeitwert . Auf diese Weise kann eine gewisse Aktualität des Bestätigungscodes gewährleistet werden und ein Angriff basierend auf einem „Einschleusen" eines „veralteten" und somit nicht mehr gültigen Bestätigungscodes wirksam abgewehrt werden .

Das Verfahren kann ferner aufweisen ein Festlegen eines ersten Referenz Zeitpunkts , zu dem eine Übermittlung der AblaufSignatur vom ersten Programm zur Überprüfungsinstanz erfolgt sein soll ; und ein Bereitstellen von zusätzlichen Ressourcen zur Ausführung des ersten Programms , wenn zum ersten Referenz Zeitpunkt keine AblaufSignatur empfangen wurde . Dies ermöglicht eine äußerst bedarfsangepasste

RessourcenVerteilung der verfügbaren Hardware an die

Abarbeitung der Programme und der Erzeugung der

AblaufSignatur (en) .

Das Verfahren kann ferner aufweisen ein Festlegen eines zweiten Referenz Zeitpunkts , zu dem eine Übermittlung der AblaufSignatur vom ersten Programm zur Überprüfungsinstanz erfolgt sein soll ; und ein Reinitialisieren des ersten

Programms , wenn zum zweiten Referenz Zeitpunkt keine

AblaufSignatur empfangen wurde . Auch diese Ausgestaltung dient der Gewährleistung der Aktualität der

Programmüberprüfung und der zeitnahen Überprüfung der

AblaufSignatur . Als zusätzliche Sicherheitsmaßnahme kann das Reinitialisieren des ersten Programms vorgesehen sein .

Das Verfahren kann ferner aufweisen ein Festlegen eines ersten Referenz Zeitpunkts , zu dem eine Übermittlung der

AblaufSignatur vom ersten Programm zur Überprüfungsinstanz erfolgt sein soll ; ein Bereitstellen von zusätzlichen

Ressourcen zur Ausführung des ersten Programms und Festlegen eines zweiten Referenz Zeitpunkts , zu dem eine Übermittlung der AblaufSignatur vom ersten Programm zur

Überprüfungsinstanz erfolgt sein soll , wenn zum ersten

Referenz Zeitpunkt keine AblaufSignatur empfangen wurde ; und ein Reinitialisieren des ersten Programms , wenn zum zweiten Referenz Zeitpunkt keine AblaufSignatur empfangen wurde .

In verschiedenen Ausführungsformen wird ein Verfahren zur Übergabe von zumindest einem Übergäbewert bereitgestellt . Das Verfahren kann aufweisen : Erzeugen zumindest des einen

Übergabewerts ; Bereitstellen zumindest einer AblaufSignatur des Erzeugens , welche dem zumindest einen Übergäbewert zugeordnet ist; Bereitstellen zumindest einer

Referenzsignatur, welche einen störungsfreien Ablauf des Erzeugens repräsentiert ; Überprüfen der zumindest einen AblaufSignatur auf Grundlage der zumindest einen

Referenz Signatur mittels der Überprüfungsinstanz ;

Bereitstellen eines Bestätigungscodes, wenn das Überprüfen der zumindest einen ProgrammablaufSignatur ein positives Ergebnis liefert ; Bereitstellen eines Referenzcodes , welcher einen störungsfreien Ablauf des Überprüfens der zumindest einen AblaufSignatur repräsentiert ; und Überprüfen des Bestätigungscodes auf Grundlage des Referenzcodes ;

Verarbeiten des zumindest einen Übergabewerts , wenn das Überprüfen des zumindest einen Bestätigungscodes ein

positives Ergebnis liefert .

In verschiedenen Ausführungsformen wird eine

Überprüfungseinheit bereitgestellt , aufweisend : zumindest eine Recheneinheit , die eingerichtet ist , eine

Überprüfungsinstanz aus zuführen zur Durchführung des

Verfahrens , wie es oben beschrieben wurde oder im Folgenden noch erläutert wird .

Die Recheneinheit kann eingerichtet sein, die

Überprüfungsinstanz in einer Enklave aus zuführen . Damit kann die Sicherheit der Überprüfungseinheit und der damit

verknüpften Programmüberprüfung weiter erhöht werden .

In verschiedenen Ausführungsformen wird eine

Überprüfungseinheit bereitgestellt mit einer Recheneinheit und einer Kommunikationseinheit , die eingerichtet ist , eine Kommunikation zwischen der Recheneinheit und zumindest einem ersten Programm herzustellen und eine Kommunikation zwischen der Recheneinheit und zumindest einem zweiten Programm herzustellen, wobei die Recheneinheit eingerichtet ist , für das erste Programm eine erste Überprüfungsinstanz

auszuführen, die eingerichtet ist , einen korrekten

Programmablauf des ersten Programms zu überprüfen und unabhängig von der zweiten Überprüfungsinstanz eine zweite Überprüfungsinstanz auszuführen, die eingerichtet ist , einen korrekten Programmablauf des zweiten Programms zu überprüfen .

In einer Ausgestaltung kann die Überprüfungseinheit zumindest ein Zertifikat aufweisen, das zumindest beim Aufbau der

Kommunikation zwischen der Recheneinheit und dem ersten

Programm und/oder dem zweiten Programm, die Kommunikation authentifiziert . Auf diese Weise wird die kryptographische Sicherheit der Programmüberprüfung weiter erhöht .

In verschiedenen Ausführungsformen wird ein Verfahren zur Überprüfung der Funktionstüchtigkeit eines Programms

bereitgestellt . Das Verfahren kann aufweisen : ein Festlegen eines Referenz Zeitpunkts , zu dem eine Ausgabe mittels des Programms erfolgt sein soll ; ein Überwachen des Programms zumindest auf einen Zeitpunkt der Ausgabe ; und ein

Bereitstellen von zusätzlichen Ressourcen zur Ausführung des Programms , wenn die Überwachung feststellt , das zum

Referenz Zeitpunkt noch keine Ausgabe von dem Programm erfolgt ist .

In verschiedenen Ausführungsformen wird eine

Überprüfungseinheit mit zumindest einer Steuereinheit

bereitgestellt , die eingerichtet ist : eine AblaufSignatur zu empfangen, die von einem Programm gesendet wird, das auf einer weiteren Steuereinheit ausgeführt wird; eine

Gültigkeitsprüfung der AblaufSignatur durchzuführen wenn diese empfangen wurde ; die weitere Steuereinheit

aufzufordern, das Programm zu reinitialisieren, wenn die Gültigkeitsprüfung negativ ausfiel ; einen ersten

Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll ; und die weitere Steuereinheit

aufzufordern, zusätzliche Ressourcen zur Ausführung des

Programms bereitzustellen, wenn zum ersten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde . In verschiedenen Ausführungsformen wird eine

Überprüfungseinheit mit zumindest einer Steuerschnittstelle, und zumindest einer Steuereinheit bereitgestellt , die

eingerichtet ist : eine AblaufSignatur zu empfangen, die von einem Programm gesendet wird, das auf einer weiteren

Steuereinheit ausgeführt wird; einen Empfang eines

Steuersignals , das von der Steuereinheit , mittels des

Programms , ermittelt und ausgegeben wird, an einem Eingang der Steuerschnittstelle zu detektieren; eine

Gültigkeitsprüfung der AblaufSignatur durchzuführen wenn diese empfangen wurde ; die weitere Steuereinheit

aufzufordern, das Programm zu reinitialisieren, wenn die Gültigkeitsprüfung negativ ausfiel ; einen zweiten

Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll ; das Steuersignal an einem Ausgang der Steuerschnittstelle auszugeben, wenn die Gültigkeitsprüfung positiv ausfällt ; an dem Ausgang der Steuerschnittstelle ein SicherheitsSteuersignal anstatt des Steuersignals auszugeben, wenn die Gültigkeitsprüfung negativ ausfällt oder wenn zum zweiten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde .

In verschiedenen Ausführungsformen wird eine

Überprüfungseinheit mit zumindest einer Steuerschnittstelle und zumindest einer Steuereinheit bereitgestellt , die

eingerichtet ist : eine AblaufSignatur zu empfangen, die von einem Programm gesendet wird, das auf einer weiteren

Steuereinheit ausgeführt wird; einen Empfang eines

Steuersignals , das von der Steuereinheit , mittels des

Programms , ermittelt und ausgegeben wird, an einem Eingang der Steuerschnittstelle zu detektieren; einen ersten

Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll ; die weitere Steuereinheit aufzufordern, zusätzliche Ressourcen zur Ausführung des Programms

bereitzustellen und einen zweiten Referenz Zeitpunkt

festzulegen, zu dem die AblaufSignatur empfangen sein soll , wenn zum ersten Referenz zeitpunk noch keine AblaufSignatur empfangen wurde; eine Gültigkeitsprüfung der AblaufSignatur durchzuführen wenn diese empfangen wurde; die weitere

Steuereinheit aufzufordern, das Programm zu reinitialisieren, wenn die Gültigkeitsprüfung negativ ausfällt oder bis zum zweiten Referenz zeitpunk keine AblaufSignatur empfangen wurde ; das Steuersignal an einem Ausgang der

Steuerschnittstelle auszugeben, wenn die Gültigkeitsprüfung positiv ausfällt ; an dem Ausgang der Steuerschnittstelle ein SicherheitsSteuersignal anstatt des Steuersignals auszugeben, wenn die Gültigkeitsprüfung negativ ausfällt oder wenn zum zweiten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde .

Die Steuereinheit kann ferner eingerichtet sein, an dem

Ausgang der Steuerschnittstelle ein SicherheitsSteuersignal anstatt des Steuersignals auszugeben, wenn bis zum zweiten Referenz Zeitpunkt keine Veränderung des Steuersignals

detektiert wird . Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert .

Es zeigen Figur 1 eine erste Überprüfungseinheit (auch bezeichnet als „Guardian" ) zur Überprüfung von Programmen, die auf einer Recheneinheit separat zur Überprüfungseinheit ausgeführt werden; Figur 2 eine zweite Überprüfungseinheit zur Überprüfung von

Programmen, die auf einer Recheneinheit ausgeführt werden, die Teil der Überprüfungseinheit ist ;

Figur 3 eine dritte Überprüfungseinheit , implementiert

mittels eines Field Programmable Gate Array einer Prozessoreinheit ; Figur 4 eine vierte Überprüfungseinheit;

Figur 5 eine Übermittlung eines Übergäbewerten zwischen zwei

Programmen unter Verwendung einer fünften

Überprüfungseinheit ; und

Figur 6 eine sechste Überprüfungseinheit zur sicheren

Weitergabe von Steuersignalen . In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die Teil dieser bilden und in denen zur Veranschaulichung spezifische

Ausführungsformen gezeigt sind, in denen die Erfindung ausgeübt werden kann. In dieser Hinsicht wird

Riehtungsterminologie wie etwa „oben" , „unten" , „vorne" , „hinten" , „vorderes" , „hinteres" , usw . mit Bezug auf die Orientierung der beschriebenen Figur (en) verwendet . Da

Komponenten von Ausführungsformen in einer Anzahl

verschiedener Orientierungen positioniert werden können, dient die Riehtungsterminologie zur Veranschaulichung und ist auf keinerlei Weise einschränkend . Es versteht sich, dass andere Ausführungsformen benutzt und strukturelle oder logische Änderungen vorgenommen werden können, ohne von dem Schut zumfang der vorliegenden Erfindung abzuweichen . Es versteht sich, dass die Merkmale der hierin beschriebenen verschiedenen beispielhaften Ausführungsformen miteinander kombiniert werden können, sofern nicht spezifisch anders angegeben . Die folgende ausführliche Beschreibung ist deshalb nicht in einschränkendem Sinne aufzufassen, und der

Schut zumfang der vorliegenden Erfindung wird durch die angefügten Ansprüche definiert .

Im Rahmen dieser Beschreibung werden die Begriffe

"verbunden" , "angeschlossen" sowie "gekoppelt " verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung . In den Figuren werden identische oder ähnliche Elemente mit identischen Bezugs zeichen versehen, soweit dies zweckmäßig ist .

Fig.1 zeigt beispielhaft eine erste Überprüfungseinheit 100. Die Überprüfungseinheit 100 weist eine Recheneinheit 110 und eine Kommunikationseinheit auf, die eingerichtet ist , eine Kommunikation zwischen der Recheneinheit 110 und zumindest zwei , beispielsweise zumindest vier, beispielsweise beliebig vielen, Programmen (beispielsweise Applikationsprogrammen) 101, 102, 103, 104 herzustellen . Die Kommunikationseinheit ist eingerichtet , eine Kommunikation zwischen der

Recheneinheit 110 und einem ersten Programm 101, einem zweiten Programm 102, einem dritten Programm 103, und einem vierten Programm 104 herzustellen . Die Recheneinheit 110 ist eingerichtet , für das erste Programm 101 eine erste

Überprüfungsinstanz III auszuführen, die eingerichtet ist , einen korrekten Programmablauf des ersten Programms 101 zu überprüfen . Die erste Überprüfungsinstanz 101 ist dazu eingerichtet , erste AblaufSignaturen 121 (auch bezeichnet als erste ProgrammablaufSignaturen) des ersten Programms 101 zu empfangen und mit Referenz Signaturen zu vergleichen . Die Recheneinheit 110 ist eingerichtet unabhängig von der ersten Überprüfungsinstanz III eine zweite Überprüfungsinstanz 112 auszuführen, die eingerichtet ist , einen korrekten

Programmablauf des zweiten Programms 102 zu überprüfen . Die zweite Überprüfungsinstanz 102 ist dazu eingerichtet , zweite AblaufSignaturen 122 (auch bezeichnet als zweite

ProgrammablaufSignaturen) des zweiten Programms 101 zu empfangen und mit Referenz Signaturen zu vergleichen . Die Überprüfungseinheit 100 ist eingerichtet , unabhängig von der ersten Überprüfungsinstanz III und der zweiten

Überprüfungsinstanzen 112 eine dritte und eine vierte

Überprüfungsinstanz 113, 114 unabhängig voneinander

auszuführen . Die dritte und vierte Überprüfungsinstanz 113, 114 sind jeweils eingerichtet , das dritte, respektive vierte Programm 103, 104 auf einen korrekten Programmablauf hin zu überprüfen . Die dritte und vierte Überprüfungsinstanz 103, 104 sind jeweils eingerichtet, dritte bzw. vierte

AblaufSignaturen 123, 124 (auch bezeichnet als dritte bzw . vierte ProgrammablaufSignaturen) des jeweiligen Programms 103, 104 zu empfangen und mit Referenz Signaturen zu

vergleichen . Die Programme 101, 102, 103, 104 werden von einer ersten Recheneinheit 105 ausgeführt . Die erste

Recheneinheit 105 ist separat von der Überprüfungseinheit 100 ausgebildet . Die erste Recheneinheit 105 kann als Prozessor und Arbeitsspeicher eines Personal Computers (PCs )

ausgestaltet sein, während die Überprüfungseinheit 100 von einem Controller bereitgestellt wird, der mittels eines

Systembusses (beispielsweise PCI/PCIe) mit der Recheneinheit

105 gekoppelt ist . Alternativ kann die erste Recheneinheit 105 ein PC oder ein spezieller Controller ( Steuereinheit , beispielsweise ein Kraftfahrzeugcontroller) sein, während die Überprüfungseinheit 100 als speziell mit der Recheneinheit gekoppelte Peripherieeinheit (beispielsweise Verbunden mittels TCP , USB, IPC, ZeroMQ...) ausgestaltet ist . Alternativ kann die erste Recheneinheit 105 ein PC oder ein spezieller Controller ( Steuereinheit , beispielsweise ein

Kraftfahrzeugcontroller) sein, während die

Überprüfungseinheit 100 als Server ausgestaltet ist wobei die Überprüfungsinstanzen III, 112, 113, 114 als dezentralisierte Anwendungen (in einer Cloud) ausgeführt werden, wobei die Überprüfungseinheit 100 beispielsweise eingerichtet ist , mittels einer Net zwerkVerbindung (LAN, WLAN, Virtual LAN, Internet...) mit der ersten Recheneinheit 105 zu kommunizieren .

In verschiedenen Ausführungsbeispielen sind die Programme kodiert , beispielsweise gemäß dem so genannten AN-Code oder dem so genannten ANB-Code oder einem anderen geeigneten Code, beispielsweise dem so genannten Delta-Code . Alle

beschriebenen Verfahren können auf solchermaßen kodierte Programme ausgeführt werden .

Die Überprüfungsinstanzen III, 112, 113, 114 sind jeweils eingerichtet , die erste Recheneinheit 105 aufzufordern, das jeweilige Programm 101, 102, 103, 104 neu zu starten, wenn ein unkorrekter Programmablauf erkannt wird. Die

Überprüfungsinstanzen III, 112, 113, 114 sind beispielsweise eingerichtet , ein Betriebssystem, unter dem die Programme 101, 102, 103, 104 ausgeführt werden, dazu aufzufordern, das jeweilige Programm neu zu starten .

Die Überprüfungseinheit 100 ist eingerichtet , auf

(beispielsweise genau) eine (empfangene) Anforderung des jeweiligen Programms 101, 102, 103, 104, hin eine

Überprüfungsinstanz III, 112, 113, 114 bereitzustellen . Eine jeweilige Anforderung wird bei einer Initialisierung des jeweiligen Programms 101, 102, 103, 104 an die

Überprüfungseinheit 100 gesendet . Die jeweilige Anforderung wird von der Überprüfungseinheit 100 verarbeitet und dem jeweiligen Programm 101, 102, 103, 104 wird eine

Überprüfungsinstanz III, 112, 113, 114 bereitgestellt .

Beispielsweise weist jede der Überprüfungsinstanzen III, 112, 113, 114, alternativ die Überprüfungseinheit 100, ein

eindeutiges (asymmetrisches ) Verschlüsselungs Zertifikat auf, das insbesondere von einer zentralen Zertifikatsagentur bestätigt (signiert ) ist . Die Überprüfungsinstanzen III, 112, 113, 114 sind eingerichtet , eine verschlüsselte Kommunikation mit dem zugeordneten Programm 101, 102, 103, 104

herzustellen . Die Programme 101, 102, 103, 104 sind

eingerichtet , unter Verwendung des

Verschlüsselungszertifikats einen symmetrischen Schlüssel auszuhandeln, um eine ressourcenschonende Verschlüsselung zu ermöglichen .

Fig.2 zeigt beispielhaft eine zweite Überprüfungseinheit 200 mit einer Recheneinheit und mit einer Kommunikationseinheit . Die Recheneinheit der Überprüfungseinheit 200 ist

eingerichtet , Programme 201, 202, 203, 204 aus zuführen . Die Recheneinheit ist eingerichtet , ist , für jedes der Programme 201, 202, 203, 204 eine Überprüfungsinstanz 211, 212, 213, 214 auszuführen, die eingerichtet ist , einen korrekten Programmablauf des jeweiligen Programms 201, 202, 203, 204 unabhängig voneinander zu überprüfen. Die Programme

(beispielsweise Applikationsprogramme) 201, 202, 203, 204 und die Überprüfungsinstanzen 211, 212, 213, 214 werden auf unterschiedlichen Speicherbereichen einer Speichereinheit (Arbeitsspeicher) der Recheneinheit und von einer gleichen Prozessoreinheit (beispielsweise einer zentralen

Prozessoreinheit , CPU) ausgeführt . Die Überprüfungsinstanzen 211, 212, 213, 214 sind jeweils eingerichtet , mittels eines gemeinsamen Speichers (geteiltem Speicher) zu kommuni z ieren .

Die Überprüfungseinhert 200 ist eingerichtet , auf

(beispielsweise genau) eine (empfangene) Anforderung des jeweiligen Programms 201, 202, 203, 204, hin eine

Überprüfungsinstanz 211, 212, 213, 214 bereitzustellen . Eine jeweilige Anforderung wird bei einer Initialisierung des jeweiligen Programms 201, 202, 203, 204 an die

Überprüfungseinheit 200 gesendet . Die jeweilige Anforderung wird von der Überprüfungseinheit 200 verarbeitet und dem jeweiligen Programm 201, 202, 203, 204 wird eine

Überprüfungsinstanz 211, 212, 213, 214 bereitgestellt .

Beispielsweise weist jede der Überprüfungsinstanzen 211, 212, 213, 214, alternativ die Überprüfungseinheit 200, ein

eindeutiges (asymmetrisches ) Verschlüsselungs Zertifikat auf, das beispielsweise von einer zentralen Zertifikatsagentur bestätigt (kryptographisch (digital ) signiert ) ist . Die

Überprüfungsinstanzen 211, 212, 213, 214 sind eingerichtet , eine verschlüsselte Kommunikation mit dem zugeordneten

Programm 201, 202, 203, 204 herzustellen . Die Programme 201, 202, 203, 204 sind eingerichtet , unter Verwendung des

Verschlüsselungszertifikats einen symmetrischen Schlüssel auszuhandeln, um eine ressourcenschonende Verschlüsselung zu ermöglichen .

Beispielsweise weist die Prozessoreinheit der Recheneinheit ein Verschlüsselungszertifikat auf . Beispielsweise ist die Prozessoreinheit eingerichtet, Programme und/oder

Überprüfungsinstanzen in Enklaven (beispielsweise gemäß Intel SGX oder SGX2 , etc . ) auszuführen. Beispielsweise ist die Recheneinheit eingerichtet , das erstes Programm 201 und die das erste Programm 201 überprüfende Überprüfungsinstanz 211 jeweils in einer Enklave auszuführen . Beispielsweise ist die Recheneinheit eingerichtet , das zweite Programm 202 in einer Enklave auszuführen, während die das zweite Programm 202 überprüfende zweite Überprüfungsinstanz 212 auf einem

ungeschützten Speicher ausgeführt wird . Beispielsweise ist die Recheneinheit eingerichtet , das dritte Programm 203 auf einem ungeschützten Speicher auszuführen, während die das dritte Programm 203 überprüfende dritte Überprüfungsinstanz 213 in einer Enklave ausgeführt wird . Beispielsweise ist die Recheneinheit eingerichtet , das vierte Programm 204 und die das vierte Programm 201 überprüfende vierte

Überprüfungsinstanz 214 jeweils auf einem ungeschützten

Speicher auszuführen . Fig.3 zeigt eine dritte Überprüfungseinheit 300. Die

Überprüfungseinheit 300 ist eingerichtet eine

Überprüfungsinstanz zur Überprüfung eines auf einer

Recheneinheit 305 ausgeführten Programms auszuführen . Die Überprüfungseinheit 300 ist als Struktur innerhalb eines Field Programmable Gate Array (FPGA) der Recheneinheit 305 eingerichtet . Beispielsweise weist die Recheneinheit 305 eine Prozessoreinheit auf, die das Field Programmable Gate Array (FPGA) aufweist . Die Überprüfungseinheiten 100, 200, 300 sind jeweils

eingerichtet (beispielsweise in einem separaten

Betriebsmodus ) mit lediglich einem einzelnen Programm 101, 201 zu kommunizieren, beispielsweise genau eine

Überprüfungsinstanz III, 211 aus zuführen . Beispielsweise sind die Überprüfungseinheiten 100, 200, 300 eingerichtet , lediglich dann Überprüfungsinstanzen auszuführen, wenn diese angefordert werden . Gemäß einer weiteren Ausgestaltung sind die Überprüfungseinheiten 100, 200, 300 eingerichtet, unabhängig von einer Anzahl angeforderter

Überprüfungs instanzen, eine konstante Anzahl an

Überprüfungsinstanzen bereit zuhalten und/ oder aus zuführen und diese einem jeweiligen Programm bei Anforderung zuzuordnen .

Fig.4 zeigt einen Betriebsmodus einer Überprüfungseinheit 400. Die Überprüfungseinheit 400 ist eingerichtet , eine

Überprüfungs instanz zur Überwachung eines Programms 401 auszuführen . Die Überprüfungs instanz (und/ oder die

Überprüfungseinheit 400) weist ein Verschlüsselungs- und/ oder Identifizierungs Zertifikat auf, das es dem Programm 401 ermöglicht , festzustellen, mit welcher Überprüfungs instanz es verbunden ist . Weiterhin ermöglicht das VerSchlüsselungs- und/ oder Identifizierungs Zertifikat , eine sichere

Kommunikation zwischen dem Programm 401 und der

Überprüfungs instanz .

Die Überprüfungs instanz ist eingerichtet , einen ersten

Unterbrechungsbefehl 407 (Soft Interrupt ) an das Programm zu senden . Beispielsweise ist das Programm 401 eingerichtet , bei Erhalt des ersten Unterbrechungsbefehls 407 einen zuletzt ausgeführten Programmabschnitt (eine zuletzt ausgeführte Berechnung) zu wiederholen, beispielsweise wenn die

Überprüfungs instanz einen Fehler bei der Überprüfung

feststellt , der auf zufällige Ereignisse

(Übermitt lungs fehler , Bit flip, ...) zurückführbar ist .

Beispielsweise dient der erste Unterbrechungsbefehl 407 dem setzten eine Zeit limit s , zu dem eine aktuell laufender

Programmabschnitt abgeschlossen sein soll , beispielsweise wenn die Überprüfungs instanz feststellt , dass ein aktuell laufender Programmabschnitt noch nicht abgeschlossen ist .

Die Überprüfungs instanz ist eingerichtet , einen zweiten

Unterbrechungsbefehl 408 (Hard Interrupt ) an eine das

Programm 401 ausführende Recheneinheit zu senden .

Beispielsweise ist die Recheneinheit 401 (und/ oder ein auf der Recheneinheit laufendes Betriebssystem) eingerichtet, bei Erhalt des zweiten Unterbrechungsbefehls 408 das Programm neu zu starten und/oder eine Hardwarekonfiguration auf der das Programm ausgeführt wird, anzupassen, beispielsweise wenn die Überprüfungsinstanz einen Fehler bei der Überprüfung

feststellt (beispielsweise erneuter Fehler nachdem ein erster Unterbrechungsbefehl gesendet wurde) , der auf Störereingriff (z.B. Hackerangriff) und/oder Hardwarefehler zurückführbar ist . Beispielsweise dient der zweite Unterbrechungsbefehl 407 dem Neustart des Programms nach einem vorgegeben maximalen Zeitinterval , beispielsweise wenn die Überprüfungsinstanz feststellt , dass ein aktuell laufender Programmabschnitt noch nicht abgeschlossen ist und vermutet werden muss , dass eine Ausführung des Programms unterbrochen wurde .

Beispielsweise ist die Überprüfungsinstanz den ersten

Unterbrechungsbefehl zumindest einmal zu senden, bevor der zweite Unterbrechungsbefehl gesendet wird . Beispielsweise kann hierdurch Zeit gespart werden, die für einen Neustart und/oder eine Hardwareumstrukturierung nötig wäre .

Fig . 5 zeigt die Übergabe (Übermittlung) eines Übergäbewerts 520 (EK (Output ) ) von einem ersten Programm 501 an ein zweites Programm 502. Das erste Programm 501 verarbeitet hierbei Eingangswerte 521 zur Erzeugung des Übergäbewerts

520. Das erste Programm 501 erzeugt fortlaufend Übergäbewerte 520 zur Übermittlung an das zweite Programm 502. Weiterhin stellt das erste Programm eine AblaufSignatur 522 des

Erzeugens bereit , welche dem Übergäbewert 520 zugeordnet ist .

Das erste Programm übermittelt die AblaufSignatur 522 an eine Überprüfungsinstanz 511. Das Übermitteln der AblaufSignatur 522 an die Überprüfungsinstanz 511 erfolgt mittels einer ersten DatenVerbindung 524 , die das erste Programm mit der Überprüfungsinstanz verbindet . Die erste DatenVerbindung 524 ist eine verschlüsselte Datenverbindung . Die

Überprüfungsinstanz 511 weist ein asymmetrisches Verschlüsselungszertifikat auf. Bei einer Initialisierung des ersten Programms 501, wird die erste Datenverbindung 524 mit der Überprüfungsinstanz 511 hergestellt . Das erste Programm 501 verwendet einen öffentlichen Teil des asymmetrischen Verschlüsselungs Zertifikats um der Überprüfungsinstanz 511 einen symmetrischen Schlüssel für weitere Kommunikation zu übermitteln . Die erste DatenVerbindung 524 umfasst eine

Verbindung zwischen einer ersten Recheneinheit 505 (Node A) , die das erste Programm 501 ausführt , und einer

Überprüfungseinheit , die von der ersten Recheneinheit 505 verschieden ist und die die Überprüfungsinstanz 511 ausführt .

Das Übermitteln der AblaufSignatur 522 an die

Überprüfungseinheit 511 umfasst ein Übermitteln einer

Kenngröße 526 ( ACI, MAC1) des Übergabewerts 520. Die

Kenngröße umfasst ein Kodieren des zumindest einen

Übergabewerts mittels eines ersten Schlüssels (K) und eine erste Kodierungsfunktion (Nachrichtenauthentifizierungscode, Message Authentication Code, MAC) .

Bei der Initialisierung des ersten Programms 501, erfolgt eine Aushandlung der Referenz Signaturen zwischen dem ersten Programm 501 und der Überprüfungsinstanz 511. Die

Überprüfungsinstanz 511 stellt dem ersten Programm 501 eine Reihe von Signaturfunktionen (Bereitstellungsvorschriften) bereit (bspw . f]_, f2 , ... fk) · Die Signaturfunktionen weisen eine rekursive Bildungsvorschrift auf . Z . B : f (0) = crc ( j, cj) f (i+1) = crc (j, i+1, f (i) ) (1) fk ( 0 ) = md5 (k, ck) fk ( i+1 ) = md5 (k, i+1 , fk ( i ) ) (2 )

Weiterhin wird während der Initialisierung ein Startparameter (cj , ck) festgelegt , der für die Berechnung des nullten

Folgegliedes verwendet wird . Der Startparameter weist

beispielsweise eine Länge von zumindest 64 Bit auf . Der

Startparameter wird beispielsweise aus einer Zufallszahl bestimmt . Ein Index der Referenz Signatur wird bei jeder Übermittlung der AblaufSignatur 522 an die

Überprüfungsinstanz 511 erhöht. Zur besseren

Nachvollziehbarkeit (beispielsweise bei Verlust einer

Übermittlung) wird der Index ( i ) gemeinsam mit der

AblaufSignatur 522 zur Überprüfungseinheit übermittelt .

Die Überprüfungsinstanz 511 überprüft die AblaufSignatur 522 auf Grundlage der Referenz Signatur . Hierzu berechnet die Überprüfungseinheit anhand der Bereitstellungsvorschrift und dem Index und/oder der zulet zt empfangen AblaufSignatur, die aktuelle Referenz Signatur .

Die Überprüfungsinstanz 511 stellt einen Bestatigungscode 523 bereit , wenn das Überprüfen der AblaufSignatur 522 ein positives Ergebnis liefert . Weiterhin ist die

Überprüfungsinstanz 511 eingerichtet , einen ZeitStempel (T) bereitzustellen. Der ZeitStempel (T) ist eine Echt Zeitangabe . Alternativ ist der ZeitStempel (T) eine lediglich aufwärts zählende Zählvariable, die beispielsweise an einen Takt einer Prozessoreinheit der Überprüfungseinheit 500 gekoppelt ist .

Der Bestätigungscode 523 wird mittels Kodierens der Kenngröße 526, des Index ( i ) und des Zeitstempeis mittels eines zweiten Schlüssels und einer zweiten Kodierungsfunktion

bereitgestellt .

Wenn das Überprüfen der zumindest einen AblaufSignatur 522 ein negatives Ergebnis liefert , wird das erste Programm 501 reinitialisiert. Der Übergabewert 520 und der Bestätigungscode 523 werden an das zweite Programm übermittelt . Weiterhin wird die Kenngröße 526 vom ersten Programm 501 an das zweite Programm 502 übermittelt . Die Überprüfungsinstant 511 übermittelt den Bestätigungscode 523 zuvor an das erste Programm 501. Die Kenngröße 526 wird gemeinsam mit dem Bestätigungscode 523 und dem Übergabewert 520 vom ersten Programm übermittelt . Das Übermitteln des Bestätigungscodes 523 an das zweite Programm 502 umfasst eine Übermittlung des durch die

Überprüfungsinstanz generierten Zeitstempeis (T) . Das

Übermitteln des Übergäbewerts 520 an das zweite Programm 502 erfolgt mittels einer zweiten DatenVerbindung 525, die das erste Programm 501 mit dem zweiten Programm 502 verbindet . Bei der Initialisierung des ersten Programms 501 wird die zweite DatenVerbindung 525 mit dem zweiten Programm 502 hergestellt . Die zweite DatenVerbindung 525 ist eine

verschlüsselte DatenVerbindung die mit dem ersten Schlüssel verschlüsselt ist . Die zweite DatenVerbindung 525 umfasst eine Verbindung zwischen der ersten Recheneinheit 505 und einer zweiten Recheneinheit 506 (Node B) , die von der ersten Recheneinheit 505 verschieden ist und die das zweite Programm 502 ausführt . Das Übermitteln des Bestätigungscodes 523 von der Überprüfungsinstanz 511 zum zweiten Programm 502 erfolgt mittels der ersten und zweiten DatenVerbindung 524 , 525. Das zweite Programm 502 verfügt über ein asymmetrisches

Verschlüsselungszertifikat . Nach Herstellung der zweiten DatenVerbindung 525 bei Initialisierung des ersten Programms 501, übermittelt das zweite Programm 502 Parameter zur

Aushandlung eines Schlüssels für eine Kommunikation über die zweite DatenVerbindung an das erste Programm 501. Die

Parameter umfassen einen öffentlichen Teil des asymmetrischen Verschlüsselungs Zertifikats des zweiten Programms 502 und eine Zufallszahl . Das erste Programm 501 leitet die Parameter weiter zur ÜberprüfungsInstanz 511. Die Überprüfungsinstanz 511 ermittelt einen Schlüssel . Der ermittelte Schlüssel wird mittels des öffentlichen Teils des asymmetrischen

Verschlüsselungs Zertifikats verschlüsselt und an das erste Programm 501 übertragen . Das erste Programm 501 gibt den Schlüssel weiter an das zweite Programm 502 mittels der zweiten Datenverbindung .

Ein erster Referenzcode wird durch Anwendung der ersten

Kodierungsfunktion mit dem ersten Schlüssel auf den

Übergäbewert ermittelt . Ein zweiter Referenzcode wird mittels Anwenden der zweiten Kodierungsfunktion auf den ersten Referenzcode bzw. auf die Kenngröße 526, ermittelt. Das zweite Programm 502 überprüft den Bestätigungscodes 523 auf Grundlage der Referenzcodes. Das zweite Programm 502

überprüft Identität des ersten Referenzcodes mit der

Kenngröße 526. Das zweite Programm 502 überprüft Identität des zweiten Referenzcodes mit dem Bestätigungscode 523.

Das zweite Programm verarbeitet den Übergäbewert 520, wenn zumindest das Überprüfen des Bestätigungscodes ein positives Ergebnis liefert .

Das zweite Programm verwirft den Übergabewerts , wenn das Überprüfen des zumindest einen Bestätigungscodes ein

negatives Ergebnis liefert .

Das zweite Programm verwirft den Übergabewerts , wenn der ZeitStempel älter ist als ein zuvor empfangener ZeitStempel .

Weiterhin wird eine Zustandskenngröße des ersten Programms 501 in der Überprüfungsinstanz 511 gespeichert , wenn das Überprüfen der ProgrammablaufSignatur 522 ein positives Ergebnis liefert . Die Zustandskenngröße des ersten Programms 501 wird nach Übermittlung des Bestätigungscodes 523 vom ersten Programm 501 an die Überprüfungsinstanz 511 gesendet . Gemäß einer alternativen Ausgestaltung ist die ZuStandsgroße von der AblaufSignatur selbst gebildet und wird somit nicht separat übermittelt .

Sollte eine ReInitialisierung des ersten Programms 501 erforderlich geworden sein, erfolgt eine Übermittlung der gespeicherten Zustandskenngröße an das erste Programm nach erfolgtem Reinitialisieren des ersten Programms 501. Stimmt die Zustandskenngröße mit einer im ersten Programm 501 hinterlegten Zustandskenngröße überein, wird das erste

Programm auf den Zustand zurückversetzt, den es vor der ReInitialisierung besaß .. Weiterhin legt die Überprüfungsinstanz 511 einen ersten

Referenz Zeitpunkt fest , zu dem eine Übermittlung der

AblaufSignatur 522 vom ersten Programm 501 zur

Überprüfungsinstanz 511 erfolgt sein soll . Wenn zum ersten Referenz zeitpunk keine AblaufSignatur 522 empfangen wurde , fordert die Überprüfungsinstanz 511 die erste Recheneinheit 505 auf, zusätzliche Ressourcen zur Ausführung des ersten Programms 501 bereitzustellen. Die Überprüfungsinstanz 511 legt ferner einen zweiten Referenz Zeitpunkts fest , zu dem eine Übermittlung der AblaufSignatur 522 vom ersten Programm zur Überprüfungsinstanz 511 erfolgt sein soll . Wenn zum zweiten Referenz Zeitpunkt keine AblaufSignatur empfangen wurde, fordert die Überprüfungsinstanz 511 die erste

Recheneinheit 505 auf, das erste Programm neu zu starten .

Fig.6 zeigt beispielhaft ein System 630 zur Steuerung einer Vorrichtung 631. Die Vorrichtung 631 ist beispielsweise eine Kupplung . Das System 630 umfasst eine Überprüfungseinheit 600 mit einer Steuereinheit . Die Steuereinheit ist eingerichtet , eine AblaufSignatur zu empfangen, die von einem Programm 601 gesendet wird, das auf einer weiteren Steuereinheit

ausgeführt wird . Die weitere Steuereinheit ist eingerichtet , mittels des Programms 601 Stellwerte zu berechnen, die von einem Aktuator 632 ( Stellglied) in Steuersignale 633

umgewandelt werden . Die Steuereinheit weist weiterhin eine

Steuerschnittstelle auf, die mit dem Aktuator gekoppelt ist . Die Steuereinheit ist eingerichtet , einen Empfang der

Steuersignale zu detektieren . Die Steuereinheit ist eingerichtet , eine Gültigkeitsprüfung der AblaufSignatur durchzuführen wenn diese empfangen wurde . Die Steuereinheit ist eingerichtet , die weitere Steuereinheit aufzufordern, das Programm 601 zu reinitialisieren, wenn die Gültigkeitsprüfung negativ ausfiel . Die Steuereinheit ist eingerichtet , einen ersten Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll . Die Steuereinheit ist eingerichtet , die weitere Steuereinheit aufzufordern, zusätzliche Ressourcen zur Ausführung des Programms 601 bereitzustellen, wenn zum ersten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde . Die Steuereinheit ist eingerichtet , einen zweiten

Referenz Zeitpunkt festzulegen, zu dem die AblaufSignatur empfangen sein soll .

Die Steuereinheit ist eingerichtet , das Steuersignal an einem Ausgang der Steuerschnittstelle auszugeben, wenn die

Gültigkeitsprüfung positiv ausfällt .

Die Steuereinheit ist eingerichtet , an dem Ausgang der

Steuerschnittstelle ein SicherheitsSteuersignal anstatt des Steuersignals auszugeben, wenn die Gültigkeitsprüfung negativ ausfällt oder wenn zum zweiten Referenz Zeitpunkt noch keine AblaufSignatur empfangen wurde .

Die Steuereinheit ist ferner eingerichtet , an dem Ausgang der Steuerschnittstelle ein SicherheitsSteuersignal anstatt des Steuersignals auszugeben, wenn bis zum zweiten

Referenz Zeitpunkt keine Veränderung des Steuersignals detektiert wird .




 
Previous Patent: TRANSPIRED SOLAR COLLECTOR

Next Patent: VALVE