-
Die
vorliegende Erfindung bezieht sich auf Kommunikationssysteme und
Verfahren zur Übermittlung
von Daten, wie sie insbesondere im Zusammenhang mit Bussystemen
eingesetzt werden können,
die eine Online-Fehlererkennung erfordern.
-
Busverbindungen
werden eingesetzt, um zwei oder mehrere Systemmodule miteinander
zu verbinden und so eine Kommunikation zwischen diesen Modulen zu
ermöglichen.
-
Beispielsweise
können
zwei Chips über
einen Bus verbunden werden, der systembedingt nicht physikalisch
geschützt
werden kann oder soll. Bei den Chips kann es sich um einen Security-Controller und einen
externen Speicherchip handeln, die miteinander verbunden sind. Die
Verbindung muss, um eine hohe Sicherheitsstufe zu erreichen, gegen
Fehlerangriffe geschützt
werden. Dabei ist es nicht ausreichend, die zu speichernden Daten
auf dem Controller zu verschlüsseln
beziehungsweise zu entschlüsseln
und diese verschlüsselt
im Speicher abzulegen. Hierdurch wird nur die Geheimhaltung, also die
Privacy der Daten gewährleistet,
nicht jedoch die Integrität,
also die Integrity. Genauso wenig hilft eine Busverschlüsselung,
beispielsweise mit einer Stromchiffre um die Integrität zu gewährleisten.
Dies würde nur
die Möglichkeit
einer gezielten Manipulation oder einer Replay-Attacke vereiteln.
-
Zwei
Chips können
auch mit einer spezifischen face-to-face Technologie, beispielsweise
einer Infineon spezifischen F2F Technologie verbunden werden. Unter
der Annahme, dass die face-to-face Verbindung nicht physikalisch
sicher vor Manipulationen der Bitleitungen des Busses schützt, entsteht
die gleiche Situation wie im Falle von zwei separaten Chips.
-
Des
weiteren können
zwei oder mehrere Hardwaremodule auf einen Chip über Busleitungen verbunden
werden. In dem Fall, dass die Module selbst bereits durch bestimmte
Maßnahmen,
wie beispielsweise RSA oder AES für Crypto-Coprozessoren, geschützt sind,
müssen
Maßnahmen
zur Sicherung in der Übertragung
getroffen werden.
-
So
genannte Fehlerangriffe, also fault attacks stellen eine ernste
Bedrohung für
die Implementierung von kryptografischen Algorithmen dar oder im
Allgemeinen von Systemen, die geheime Daten verarbeiten. Das ist
unabhängig
davon, ob der Algorithmus in Software oder als Hardwaremodul implementiert
ist. Ist ein Angreifer in der Lage den Algorithmus während der
Abarbeitung so zu stören,
dass interne Zwischenergebnisse, beispielsweise Runden-Schlüssel oder
Zwischenergebnisse von runden, Einbit-Fehler oder Mehrbit-Fehler
aufweisen, führen diese
Fehler zu falschen Verschlüsselungsergebnissen
oder Entschlüsselungsergebnissen.
Aus einer nur geringen Zahl von solchen Ergebnissen kann in einer
kryptografischen Analyse der geheime Schlüssel berechnet werden. Dabei
ist es nicht einmal nötig die
Bitfehler an gezielten Positionen zu injizieren. Nach C. Giraud,
DFA on AES, Eprint IACR 2003-008, http://eprint.iacr.org/2003/008.ps.
genügen
beispielsweise beim AES-128 bereits 50 falsche Resultate bei Einbit-Fehlern
oder etwa 250 falsche Resultate bei Byte-Fehlern.
-
Auch
kann die Einstreuung von Fehlern unmittelbar den Programmablauf
stören,
sodass das Programm falschen Verzweigungen bei Sprüngen folgt
oder der Programmzähler
wird dabei so modifiziert, dass das Programm an einer falschen Stelle fortgesetzt
wird.
-
Eine
Maßnahme
zur Sicherung der Übertragung
gegen Fehlerangriffe in den bereits beschriebenen Verbindungsfällen stellen
fehlererkennende Codes (EDC; EDC = fehlererkennende Codes) dar.
Für jeden über den
Bus übertragenen
Block M wird ein Kontrollwort P berechnet und dieses zusammen mit dem
Block M als so genanntes Codewort C = (M, P) übertragen. Hier wird zur Vereinfachung
ein systematischer Code angenommen.
-
Wird
beispielsweise ein 32-bit Datenwort M übertragen und eine Wahrscheinlichkeit
der nicht Erkennung eines Fehlers von <= 2–32 gefordert,
muss auch das Kontrollwort P eine Länge von >= 32 Bit haben. Das bedeutet also eine
Overhead von >= 100%. Bei
beispielsweise 128 Bit Datenblocklänge und 32 Bit Kontrollwortlänge beträgt der Overhead
noch >= 25%. Für die Busübertragung
bedeutet dies eine Bandbreitenreduktion von 100% beziehungsweise 25%.
-
Es
sind Lösungen
bekannt, mit denen Fehler in Schaltungen erkannt werden können. Dabei
erfordert Fehlererkennung immer Redundanz. Gegenmaßnahmen
gegenüber
Fehlerangriffen sind beispielsweise in H. Bar El, H. Choukri, D.
Naccache, M. Tunstall, C. Whelan, The Sourceres Apprentice Guide
to Fault Attacks, Eprint IACR 2004-100, http://eprint.iacr.org/2004/100.pdf
beschrieben. Shu Lin, Daniel J. Costello, Error Control Coding,
Second Edition Prentice Hall; 2nd edition (April 1, 2004), ISBN:
0130426725 beschreibt die Verwendung von Codes die zusammen mit
dem Nutzdaten verarbeitet und übertragen
werden. Eine Lösung
des Bandbreitenreduktionsproblems durch die Redundanz ist jedoch
nicht bekannt.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Kommunikationsvorrichtung,
sowie ein Kommunikationssystem und ein Kommunikationsverfahren zu
schaffen, die eine sicherere Übertragung
von Daten ermöglichen.
-
Diese
Aufgabe wird durch eine Kommunikationsvorrichtung gemäß Anspruch
1, Kommunikationssystemen gemäß den Ansprüchen 16
und 17 sowie einen Verfahren zur Kommunikation gemäß Anspruch
14 gelöst.
-
Eine
Kommunikationsvorrichtung zum Übertragen
von Daten an eine Kommunikationspartnervorrichtung, die von der
Kommunikationsvorrichtung getrennt angeordnet ist, umfasst gemäß der vorliegenden
Erfindung eine Sendeeinrichtung zum Senden von Sendedaten an die
Kommunikationspartnervorrichtung, eine Bestimmungseinrichtung, die
ausgebildet ist, um aus den Sendedaten gemäß einer Bestimmungsvorschrift
einen KV-Kontrollwert zu bestimmen, eine Empfangseinrichtung zum
Empfangen eines KVP-Überprüfungswertes
von der Kommunikationspartnervorrichtung und eine Kontrolleinrichtung zum
Vergleichen des KV-Kontrollwertes
und des KVP-Überprüfungswertes
und zum Bereistellen eines Fehlersignals, abhängig von dem Vergleich.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung umfasst ein Kommunikationssystem zwei
oder mehrere Kommunikationsvorrichtungen, die über ein Bussystem miteinander
gekoppelt sind.
-
Gemäß der vorliegenden
Erfindung umfasst ein Kommunikationsverfahren zum Übertragen
von Daten an eine Kommunikationspartnervorrichtung, die von der
Kommunikationsvorrichtung getrennt angeordnet ist, die Schritte
des Sendens von Sendedaten an die Kommunikationspartnervorrichtung,
einen Schritt des Bestimmens eines KV-Kontrollwertes gemäß einer
Bestimmungsvorschrift auf den Sendedaten, einen Schritt des Empfangens
eines KVP-Überprüfungswertes
von der Kommunikationspartnervorrichtung und einen Schritt des Vergleichens
des KV-Kontrollwertes
und des KVP-Überprüfungswertes und
einen Schritt des Bereitstellens eines Fehleranzeigesignals abhängig von
dem Vergleichsergebnis.
-
Der
vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass sich
das Bandbreitenproblem, das entsteht, wenn zusätzlich zu den Nutzdaten weitere
Redundanzdaten übertragen
werden, vermeiden lässt,
indem ein Sender in Form einer Kommunikationsvorrichtung lediglich
die Nutzdaten in Form der Sendedaten zu dem Empfänger überträgt, die Redundanzdaten in Form des
Kontrollwertes jedoch im Sender abgespeichert werden und nicht zum
Empfänger
in Form einer Kommunikationspartnervorrichtung übertragen werden brauchen.
Um zu überprüfen, dass
der Empfänger
die Nutzdaten korrekt erhalten hat, ermittelt der Empfänger aus
den empfangenen Nutzdaten weitere Redundanzdaten und überträgt diese
zum Sender. Der Sender vergleicht die Redundanzdaten, die der Sender
von dem Empfänger
empfangen hat, mit den im Sender gespeicherten Redundanzdaten. Stimmen
die Redundanzdaten überein,
so kann davon ausgegangen werden, dass die Nutzdaten korrekt vom
Sender zum Empfänger übertragen
wurden. Indem die Redundanzdaten, bezogen auf die Übertragungsrichtung
der Nutzdaten, in der entgegengesetzten Richtung übertragen
werden, führen
sie nicht zu einer Bandbreitenreduktion in Übertragungsrichtung der Nutzdaten.
Somit kann eine Bandbreitenreduktion vollständig vermieden werden, ohne
dabei das Sicherheitsniveau, im Vergleich zu bekannten Lösungen,
bei denen die Redundanzdaten zusammen mit den Nutzdaten übertragen werden,
zu verringern. Die Redundanzdaten können in einer Speichereinrichtung
im der Kommunikationsvorrichtung gespeichert werden.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung wird eine Verbindung zwischen Modulen
durch unidirektionale Busse realisiert. Eine solche Topologie ist
im Allgemeinen design-technisch ohnehin bevorzugt. Das Vorhandensein
jeweils einer Verbindung in die jeweils umgekehrte Richtung kann
genutzt werden, um die Bandbreitenreduktion zu umgehen. Der erfindungsgemäße Ansatz
hat dabei mehrere Vorteile. Der erfindungsgemäße Ansatz ermöglicht eine
Erkennung einer fehlerhaften Datenübertragung ohne dass dabei
eine Verringerung des maximal möglichen
Datendurchsatzes erfolgt. Ferner ist ein Hardware-technischer Zusatzaufwand
zur Realisierung der erfindungsgemäßen Lösung sehr gering. Ferner gibt
es keinen so genannten single point of failure mehr und gleiche
Fehler in zwei Datenpfaden können
prinzipbedingt nur mehr mit sehr kleiner Wahrscheinlichkeit auftreten.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
-
Es
zeigen:
-
1 ein
Kommunikationssystem gemäß der vorliegenden
Erfindung;
-
2 ein
Kommunikationssystem gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung;
-
3 ein
Kommunikationsverfahren gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
4 ein
Kommunikationssystem gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung; und
-
5 eine
schematische Darstellung eines Kommunikationssystems gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung.
-
In
der nachfolgenden Beschreibung der bevorzugten Ausführungsbeispiele
der vorliegenden Erfindung werden für in den verschiedenen Zeichnungen
dargestellten und ähnlich
wirkenden Elemente gleiche oder ähnliche
Bezugszeichen verwendet, wobei eine wiederholte Beschreibung dieser
Elemente weggelassen wird.
-
1 und 2 zeigen
eine Mehrzahl von Kommunikationsvorrichtungen und Kommunikationspartnervorrichtungen,
die jeweils unterschiedliche Funktionalitäten aufweisen. Die Funktionalitäten der
einzelnen Kommunikationsvorrichtungen können miteinander kombiniert
werden, wie es beispielsweise in 4 gezeigt
ist.
-
1 zeigt
eine Kommunikationsvorrichtung 100 und eine Kommunikationspartnervorrichtung 200.
Die Kommunikationsvorrichtung 100 und die Kommunikationspartnervorrichtung 200 sind
getrennt voneinander angeordnet und mittels einem Übertragungskanal
miteinander verbunden. Die Kommunikationseinrichtung 100 weist
eine Schreibfunktionalität
auf, mittels der Nutzdaten von der Kommunikationseinrichtung 100 an
die Kommunikationspartnervorrichtung 200 übertragen
werden können. Die
Kommunikationspartnervorrichtung 200 weist eine Schreib-Empfangs-Funktionalität auf, mittels
der Nutzdaten, die von der Kommunikationseinrichtung 100,
während
eines Schreibvorganges an die Kommunikationspartnervorrichtung 200 gesendet
werden, empfangen werden können.
Die Kommunikationspartnervorrichtung 200 ist ferner ausgebildet,
um aus den empfangenen Nutzdaten ein Kontrollwort zu ermitteln und
das Kontrollwort an die Kommunikationsvorrichtung 100 zu übermitteln.
Die Kommunikationseinrichtung 100 ist ferner ausgebildet,
um aus den zu übertragenden
Nutzdaten ein weiteres Kontrollwort zu ermitteln und dieses mit
den empfangenen Kontrollwort der Kommunikationspartnervorrichtung 200 zu
vergleichen und abhängig
von dem Vergleichergebnis zu erkennen, ob die Nutzdaten korrekt
von der Kommunikationspartnervorrichtung 200 empfangen
wurden.
-
Die
Kommunikationsvorrichtung 100 weist eine Sendeeinrichtung 102,
eine Bestimmungseinrichtung 104, eine Kontrolleinrichtung 106 und
eine Empfangseinrichtung 108 auf. Die Sendeeinrichtung 102 ist
ausgebildet, um zu übertragende
Sendedaten 112 an einen Übertragungskanal, beispielsweise
einen unidirektionalen Bus auszugeben, sodass die Sendedaten 112 an
die Kommunikationspartnervorrichtung 200 übertragen
werden. Die Sendeeinrichtung 102 ist ferner ausgebildet,
um die Sendedaten 112 an die Bestimmungseinrichtung 104 bereitzustellen.
Die Bestimmungseinrichtung 104 ist ausgebildet, um aus
den Sendedaten 112 einen KV-Kontrollwert 114 zu
ermitteln. Die Bestimmung des KV-Kontrollwertes 114 erfolgt
in der Bestimmungseinrichtung 104 gemäß einer Bestimmungsvorschrift.
Die Bestimmungseinrichtung 104 stellt den KV-Kontrollwert 114 an
die Kontrolleinrichtung 105 bereit. Die Empfangseinrichtung 108 ist
ausgebildet, um einen KVP-Überprüfungswert 116 von
der Kommunikationspartnervorrichtung 200 zu empfangen und
an die Kontrolleinrichtung 106 bereitzustellen. Der KVP-Überprüfungswert 116 wurde
in der Kommunikationspartnervorrichtung 200 aus den von
der Kommunikationspartnervorrichtung 200 empfangenen Sendedaten,
gemäß derselben
Bestimmungsvorschrift bestimmt, mit der der KV-Kontrollwert 114 in der
Bestimmungseinrichtung 104 bestimmt wurde. Bei einer fehlerfreien Übertragung
stimmt der KV-Kontrollwert 114 mit dem KVP-Überprüfungswert 116 überein.
Der Vergleich der Kontrollwerte 114, 116 wird
in der Kontrolleinrichtung 106 durchgeführt. Die Kontrolleinrichtung 106 ist
ausgebildet, um die Kontrollwerte 114, 116 miteinander
zu vergleichen. In diesem Ausführungsbeispiel
wird bei einer Nichtübereinstimmung
ein Fehleranzeigesignal 118 generiert, das einen Übertragungsfehler
signalisiert. Alternativ kann das Fehleranzeigesignal 118 auch
eine korrekte Übertragung
anzeigen.
-
Die
Kommunikationspartnervorrichtung 200 weist eine Empfangseinrichtung 108,
eine Bestimmungseinrichtung 104 und eine Sendeeinrichtung 102 auf,
die den Einrichtungen der Kommunikationsvorrichtung 100 entsprechen,
jedoch zusätzliche Funktonalitäten aufweisen.
Alternativ kann es sich bei den Einrichtungen der Kommunikationspartnervorrichtung 200 auch
um Einrichtungen handeln, die nicht die Funktionalitäten aufweisen,
die anhand der Kommunikationsvorrichtung 100 beschrieben
wurden, sondern lediglich die im Folgenden bezüglich der Kommunikationspartnervorrichtung 200 beschriebenen
Funktionalitäten
aufweisen. Die Empfangseinrichtung 108 der Kommunikationspartnervorrichtung 200 ist
ausgebildet, um Empfangsdaten 212 zu empfangen und an die
Bestimmungseinrichtung 104 bereitzustellen. Ist bei der Übertragung
zwischen Kommunikationseinrichtung 100 und Kommunikationspartnervorrichtung 200 kein
Fehler aufgetreten, so handelt es sich bei dem Empfangsdaten 212 um
die Sendedaten 112 der Kommunikationsvorrichtung 100.
Die Bestimmungseinrichtung 104 der Kommunikationspartnervorrichtung 200 ist
ausgebildet, um gemäß der Bestimmungsvorschrift,
gemäß der auch
der KV-Kontrollwert in der Kommunikationsvorrichtung 100 bestimmt
wurde, einen KPV-Überprüfungswert 116 aus
den Empfangsdaten 112 zu bestimmen. Die Bestimmungseinrichtung 104 der
Kommunikationspartnervorrichtung 200 ist ausgebildet, um
KPV-Überprüfungswert 116 an
die Sendeinrichtung 102 bereitzustellen, die wiederum ausgebildet ist,
um den KPV-Überprüfungswert 116 auf
einen Übertragungskanal,
beispielsweise einen weiteren unidirektionalen Bus auszugeben, sodass
der KPV-Überprüfungswert 116 an
die Kommunikationsvorrichtung 100 übertragen wird.
-
Bei
den Sendedaten 112 kann es sich um ein einzelnes Datenbit
oder um mehrere Datenpakete handeln. Beispielsweise können zuerst
Adressdaten übertragen
werden, die der Kommunikationspartnervorrichtung 200 anzeigen,
an welche Stellen nachfolgende Datenpakete gespeichert beziehungsweise weitergeleitet
werden sollen. Handelt es sich bei den Sendedaten 112 um
eine Mehrzahl von Paketen, so können
die Bestimmungseinrichtungen 104 ausgebildet sein, um gemeinsame
Kontrollwerte 114, 116 aus allen Datenpaketen,
separate Kontrollwerte 114, 116 aus einzelnen
Datenpakten oder auch nur bestimmte Kontrollwerte 114, 116 aus
vorbestimmten Datenpaketen zu bestimmen.
-
Gemäß einem
Ausführungsbeispiel
können die
Bestimmungseinrichtung 104 einen fehlererkennenden Code
aufweisen, mittels dem die Kontrollwerte 114, 116 aus
den Daten 112, 212 berechnet werden.
-
Die
Sendedaten 112 können
unverschlüsselt oder
verschlüsselt
von der Kommunikationseinrichtung 100 an die Kommunikationspartnervorrichtung 200 übertragen
werden. Sollen die Sendedaten 112 verschlüsselt übertragen
werden, so weist die Kommunikationsvorrichtung 100 zusätzlich eine
Verschlüsselungseinrichtung
(nicht gezeigt in 1) auf, die ausgebildet ist,
um interne zu sendende Daten gemäß einer
Verschlüsselungsvor schrift
zu verschlüsseln
und als Sendedaten an die Sendeeinrichtung 102 und die
Bestimmungseinrichtung 104 bereitzustellen. Ebenso weist
in diesem Fall die Kommunikationspartnervorrichtung 200 eine
Entschlüsselungseinrichtung
(nicht gezeigt in 1) auf, die ausgebildet ist,
um die Empfangsdaten 212 gemäß der Verschlüsselungsvorschrift
zu entschlüsseln
und als interne empfangene Daten bereitzustellen. Wurde der KV-Kontrollwert 114 in
der Kommunikationsvorrichtung 100 aus den verschlüsselten
Sendedaten 112 gebildet, so wird der KPV-Überprüfungswert 116 in der
Kommunikationspartnervorrichtung 200 ebenfalls aus den
verschlüsselten
Empfangsdaten 212 bestimmt. Alternativ können die
Kontrollwerte 114, 116 auch aus den unverschlüsselten
Sendedaten 112 beziehungsweise Empfangsdaten 212 ermittelt werden.
In diesem Fall werden in der Kommunikationsvorrichtung 100 die
internen zu sendenden Daten an die Bestimmungseinrichtung 104 weitergeleitet und
die entschlüsselten
internen empfangenen Daten in der Kommunikationspartnervorrichtung 200 an die
Bestimmungseinrichtung 104 weitergeleitet.
-
Bei
dem Fehleranzeigesignal 118 kann es sich um ein Signal
handeln, das intern in der Kommunikationsvorrichtung 100 weiterverarbeitet
oder dessen Wert intern gespeichert wird oder um ein Signal handeln,
das extern ausgegeben wird, und beispielsweise von der Kommunikationspartnervorrichtung 200 empfangen
wird. Signalisiert das Fehleranzeigesignal 118 einen Fehler,
so kann je nach Sicherheitsanforderung beispielsweise eine erneute Übertragung
der Sendedaten 112 stattfinden und der Kommunikationspartnervorrichtung 200 mitgeteilt
werden, dass die zuvor empfangenen Empfangsdaten 212 fehlerhaft
sind, es kann ein Alarm ausgelöst
werden, der beispielsweise das in 1 gezeigte
Kommunikationssystem in einen sicheren Modus führt oder es kann beispielsweise
die Kommunikationsvorrichtung 100 abgeschaltet werden,
um sicherzustellen, dass ein vermeintlicher Angreifer keine weiteren Informationen
erhalten kann. Ferner kann die Kommunikationsvorrichtung 100 eine
Rücksetzeinrichtung
(nicht gezeigt in den Figuren) aufweisen, die ein Rücksetzen
der Schaltung, also ein RESET, im erkannten Fehlerfall durchführt. Ferner
ist es möglich, die
Vorrichtung im Fehlerfall totzustellen bzw. zu deaktivieren, damit
die Schaltung an der Kommunikation nicht mehr teilnimmt.
-
2 zeigt
ein weiteres Ausführungsbeispiel eines
Kommunikationssystems gemäß der vorliegenden
Erfindung mit einer Kommunikationsvorrichtung 300 und einer
Kommunikationspartnervorrichtung 400. Die Kommunikationsvorrichtung 300 kann
einen Lesevorgang ausführen,
bei dem zu lesende Nutzdaten von der Kommunikationspartnervorrichtung 400 zusammen
mit einen Kontrollwert empfangen werden, das von der Kommunikationspartnervorrichtung 400 aus
den angeforderten Nutzdaten bestimmt wurden. Die Kommunikationsvorrichtung 300 ist
ferner ausgebildet, um aus den empfangenen Nutzdaten ein weiteres
Kontrollwort zu bestimmen und dieses mit den empfangenen Kontrollwort
zu vergleichen. Abhängig
von dem Vergleich kann die Kommunikationsvorrichtung 300 eine
fehlerhafte oder eine korrekte Übertragung
der Nutzdaten anzeigen.
-
Die
Kommunikationsvorrichtung 300 weist eine Sendeeinrichtung 102,
eine Bestimmungseinrichtung 104, eine Kontrolleinrichtung 106 und
eine Empfangseinrichtung 108 auf. Die Kommunikationspartnervorrichtung 400 weist
ebenfalls eine Empfangseinrichtung 108, eine Bestimmungseinrichtung 104 sowie
eine Sendeeinrichtung 102 auf. Bei den Einrichtungen der
Kommunikationsvorrichtung 300 sowie der Kommunikationspartnervorrichtung 400 kann
es sich um die anhand von 1 beschriebenen
Einrichtungen handeln, die mit einer zusätzlichen Funktionalität versehen
sind oder um Einrichtungen handeln, die lediglich die Funktionalität aufweisen,
die anhand der 2 im Folgenden beschrieben sind.
Handelt es sich bei den Einrichtungen um Einrichtungen, die nur
die folgenden anhand der 2 beschriebenen Funktionalitäten aufweisen,
so ist für
die Kommunikationseinrichtung 300 die Sendeeinrichtung 102 nicht
erforderlich und für
die Kommunikationspartnervorrichtung 400 die Empfangseinrichtung 108 nicht
erforderlich.
-
Die
Kommunikationsvorrichtung 300 ist ausgebildet, um, beispielsweise
bei einem Lesezyklus angeforderte Empfangsdaten 322 zusammen
mit einem KVP-Kontrollwert 324 zu empfangen. Die angeforderten
Empfangsdaten 322 sowie der KVP-Kontrollwert 324 werden
von der Kommunikationspartnervorrichtung 400 bereitgestellt.
Die Empfangseinrichtung 108 der Kommunikationsvorrichtung 300 ist ausgebildet,
um die angeforderten Empfangsdaten 322 an die Bestimmungseinrichtung 104 und
den empfangenen KVP-Kontrollwert 324 an die Kontrolleinrichtung 106 bereitzustellen.
Die Bestimmungseinrichtung 104 ist ausgebildet, um aus
den angeforderten Empfangsdaten 322 gemäß der Bestimmungsvorschrift
einen KV-Überprüfungswert 326 zu bestimmen
und an die Kontrolleinrichtung 106 bereitzustellen. Die
Kontrolleinrichtung 106 ist ausgebildet, um die Überprüfungswerte 324, 326 miteinander
zu vergleichen und, um abhängig
von dem Vergleichsergebnis ein weiteres Fehleranzeigesignal 318 bereitzustellen.
-
Die
Kommunikationspartnervorrichtung 400 ist ausgebildet, um
beispielweise bei einem Lesevorgang, die von der Kommunikationsvorrichtung 300 angeforderten
Sendedaten 422 auszugeben. Dazu ist die Sendeeinrichtung 102 der
Kommunikationspartnervorrichtung 400 ausgebildet, um die
Sendedaten 422 beispielsweise auf einen unidirektionalen Bus
auszugeben und an die Empfangseinrichtung 108 der Kommunikationsvorrichtung 300 zu übermitteln.
Tritt bei der Übertragung
kein Fehler auf, so entsprechen die angeforderten Empfangsdaten 322 der Kommunikationsvorrichtung 300 den
angeforderten Sendedaten 422 der Kommunikationspartnervorrichtung 400.
Die Sendeeinrichtung 102 der Kommunikationspartnervorrichtung 400 ist
ferner ausgebildet, um die angeforderten Sendedaten 422 an
die Bestimmungseinrichtung 104 bereitzustellen. Die Bestimmungseinrichtung 104 ist
wiederum ausgebildet, um gemäß der Bestimmungsvorschrift
aus den angeforderten Sendedaten 422 den KVP-Kontrollwert 324 an
die Sendeeinrichtung 102 bereitzustellen, die den KVP-Kontrollwert 324 ebenfalls,
beispielsweise über den
unidirektionalen Bus an die Kommunikationseinrichtung 300 ausgibt.
Der KVP-Kontrollwert 324 kann über den gleichen Bus übertragen
werden, über
den auch die angeforderten Sendedaten 422 übertragen werden.
Alternativ kann dazu ein getrennter Bus eingesetzt werden.
-
Werden
Kontrollwert 324 und Sendedaten 422 über den
gleichen Übertragungskanal übertragen,
so kann die Sendeeinrichtung 102 einen Umschalter aufweisen,
der entweder die angeforderten Sendedaten 422 oder den
KVP-Kontrollwert 324 auf den Übertragungskanal durchschalten,
sodass es zu einer Überschneidung
zwischen den angeforderten Sendedaten 422 und den KVP-Kontrollwert 324 kommt.
-
Weisen
die Einrichtungen der Kommunikationsvorrichtung 100 ebenfalls
die Merkmale der Einrichtungen der Kommunikationspartnervorrichtung 200 auf,
so können
zwei Solcher Kommunikationsvorrichtungen gekoppelt werden, wie es
beispielsweise in 4 gezeigt ist. Eine solche Kopplung
ist ebenfalls möglich,
wenn die in 2 gezeigte Kommunikationsvorrichtung 300 ebenfalls
die Merkmale der Kommunikationspartnervorrichtung 400 aufweist. In
diesem Fall können
zwei solche Kommunikationsvorrichtungen miteinander gekoppelt werden.
Weiterhin kann eine Kommunikationsvorrichtung die Merkmale der Einrichtungen
der Kommunikationsvorrichtungen 100, 300 sowie
der Kommunikationspartnervorrichtungen 200, 400 in
kombinierter Form aufweisen, wie dies in dem in 4 geschriebenen
Ausführung
zum Beispiel dargestellt ist.
-
3 stellt
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ein Verfahren zur Übertragung von Daten zwischen
einem Modul A und einem Modul B dar, die über zwei unidirektionale Busse
A > B und B > A verbunden sind. 3 zeigt zwei
typische aufeinander folgende Buszugriffe. Dabei führt Modul
A nacheinander einen, beispielsweise Schreibzugriff und einen, beispielsweise
Lesezugriff auf Modul B aus.
-
In
einem ersten Taktzyklus erfolgt eine Adressübertragung von Modul A zu Modul
B.
-
In
einem zweiten Taktzyklus erfolgt eine Datenübertragung der Daten D von
dem Modul A an das Modul B. Gleichzeitig wird im Modul A ein EDC
(EDC; EDC = fehlererkennender Code) und Kontrollwort c1 = f(A, D) über die
gesendeten Daten D und optional die Adressen A berechnet. Das Modul
B berechnet ein EDC-Kontrollwort.
C2 = f(A, D) über
die empfangenen Daten D und optional die Adresse A.
-
In
einem dritten Taktzyklus erfolgt eine Adressübertragung des nächsten Buszyklusses
von Modul A an Modul B. Ferner überträgt das Modul
B über
den freien Bus B > A
das Kontrollwort c2 zurück an
Modul A. Modul A vergleicht die Kontrollworte c1 und c2. Bei Mismatch
wird ein Fehler erkannt und signalisiert.
-
Aus 3 geht
hervor, dass für
die Fehlercodeberechnung und die Fehlercodeübertragung kein zusätzlicher
time slot auf den Bus benötigt
wird, der die Performance reduzieren würde. Das heißt das Beispielsprotokoll
benötigt
trotz der Fehlercodeübertragung
weiterhin nur zwei Buszyklen, da die Fehlercodeübertragung über den entgegengesetzter Richtung
verlaufenden Bus B > A
erfolgt.
-
In
einem konventionellen Protokoll würde sequenziell nach Adresse
und Datum das Kontrollwort übertragen
werden und die Gegenseite würde
den Vergleich durchführen.
Hierdurch würden
3 Buszyklen benötigt,
was die Performance um den Faktor 1,5 verringern würde.
-
Der
in 3 in den Takten 1, 2 und 3 gezeigte Schreibvorgang
kann beispielsweise von einem Kommunikationssystem gemäß 1 ausgeführt werden.
Dabei entspricht die Kommunikationsvorrichtung 100 dem
Modul A und die Kommunikationspartnervorrichtung 200 dem
Modul B. Der Bus A > B entspricht
Verbin dungsleitungen, die die Sendeeinrichtung der Kommunikationsvorrichtung 100 mit
der Empfangseinrichtung der Kommunikationspartnervorrichtung verbindet.
Der Bus B > A entspricht
Verbindungsleitungen, die die Sendeeinrichtung der Kommunikationspartnervorrichtung 200 mit
der Empfangseinrichtung der Kommunikationsvorrichtung 100 verbinden.
In diesem Fall bestehen die Sendedaten 112 aus den Paketen
Addr write und Write_DATA. In der Kommunikationsvorrichtung 100 wird
aus dem Adresspaket A und dem Datenpaket D der Kontrollwert 114 gebildet
und dies ist in 3 als Aktion A durch die Funktion
f(A, D) dargestellt, wobei f der Bestimmungsvorschrift entspricht.
Ebenso wird im Modul B der Überprüfungswert 116 bestimmt.
Dies ist in 3 bei der Aktion B als f(A,
D) dargestellt. Der Überprüfungswert 116 wird
anschließend über den Bus
B > A an das Modul
A übertragen
und der Überprüfungswert 116 wird
mit dem Kontrollwert 114 verglichen. Der Vergleich, der
im Modul A stattfindet, ist unter Aktion A als Check bezeichnet.
-
Ein
Lesevorgang wie er in 3 in den Taktzyklen 3, 4 und
5 dargestellt ist, kann beispielsweise von dem in 2 gezeigten
Kommunikationssystem durchgeführt
werden. Da gemäß 3 die
Adresse der zu lesenden Daten als Paket Addr_read von dem Modul
A das Modul B übertragen
wird, benötigt
die in 2 gezeigte Kommunikationsvorrichtung 300 die Sendeeinrichtung 102,
um das Adresspaket an die Empfangseinrichtung 108 der Kommunikationspartnervorrichtung 400 zu übertragen.
Ferner ist es erforderlich, dass die Sendeeinrichtung 102 der
Kommunikationsvorrichtung 300 ausgebildet ist, um die Adressdaten
an die Bestimmungseinrichtung 104 zu übertragen und die Empfangseinrichtung 108 der Kommunikationspartnervorrichtung 400 ausgebildet ist,
um die empfangenen Adressdaten an die Bestimmungseinrichtung 104 zu übertragen.
Das in Taktzyklus 4 gezeigte Datenpaket Read_DATA entspricht den
angeforderten Sendedaten 422 in 2. In diesem
Ausführungsbeispiel
ist die Kommunikationspartnervorrichtung 400 ausgebildet,
um in der Bestimmungseinrichtung 104 aus den empfangenen Adressda ten
und den angeforderten Sendedaten 422 den KVP-Kontrollwert 324 zu
bestimmen. Dies ist in 3 und der Aktion B als f(A,
D) gezeigt. Der Kontrollwert 324 wird anschließend über den
Bus B > A an das Modul
A also die Kommunikationsvorrichtung 300 übertragen.
Sobald die Kommunikationsvorrichtung 300 das Datenpaket
in Form der angeforderten Empfangsdaten 322 empfangen hat,
kann die Bestimmungseinrichtung 104 aus dem Adresspaket sowie
den empfangenen Datenpaket den Überprüfungswert 326 bestimmen.
Dies ist in 3 und der Aktion A als f(A,
D) dargestellt. Der Vergleich in der Kontrolleinrichtung 106 der
Kommunikationsvorrichtung 300 zwischen dem Überprüfungswert 326 und dem
Kontrollwert 324 ist in 3 und der
Aktion A als Check dargestellt.
-
4 zeigt
eine schematische Darstellung eines weiteren Ausführungsbeispieles
eines Kommunikationssystems gemäß der vorliegenden
Erfindung. Das in 4 gezeigte Kommunikationssystem weist
eine erste Kommunikationsvorrichtung 500a in Form eines
Bottomchips und einer zweiten Kommunikationsvorrichtung 500b in
Form eines Topchips auf. Gemäß diesem
Ausführungsbeispiel
sind die Kommunikationsvorrichtungen 500a, b identisch
und über
zwei unidirektionale Busse 550a, 550b miteinander
verbunden. Im Folgenden wird die Architektur der Kommunikationsvorrichtungen 500a,
b anhand der Kommunikationsvorrichtung 500a beschrieben. Die
Kommunikationsvorrichtung 500a weist eine Sendeeinrichtung
auf, die es ermöglicht
Ausgangsdaten Data OUT über
einen Umschalter 552 auf den unidirektionalen Bus 550a auszugeben.
Die Ausgangsdaten werden zusätzlich über einen
weiteren Umschalter 554 an eine Vergleichs- und Kontrolleinrichtung
EDC + check 556 bereitgestellt. Ferner weist die Kommunikationsvorrichtung 500a eine
Empfangseinrichtung auf, die ausgebildet ist, um empfangene Daten
Data IN von dem unidirektionalen Bus 550b zu empfangen.
Die empfangenen Daten von dem unidirektionalen Bus 550b werden
ebenfalls der Vergleichs- und Kontrolleinrichtung 556 über den weiteren
Umschalter 554 zugeführt.
Die Vergleichs- und
Kontrolleinrichtung 556 ist ausgebildet, um auf den Aus gangsdaten
ein Kontrollwort zu ermitteln und über den Umschalter 552 auf
den unidirektionalen Bus 550a auszugeben. Ferner ist die
Vergleichs- und Kontrolleinrichtung 556 ausgebildet, um
das an den unidirektionalen Bus 550a ausgegebenes Kontrollwort
zu speichern und mit einem über
den unidirektionalen Bus 550b empfangenen weiteren Kontrollwort zu
vergleichen und abhängig
von dem Vergleich ein Fehleranzeigesignal bereitzustellen. Das Fehleranzeigesignal
kann beispielsweise ebenfalls über
den Umschalter 552 auf den unidirektionalen Bus 550a ausgegeben
werden und somit der Kommunikationsvorrichtung 500b zur
Verfügung
bereitgestellt werden.
-
Da
die in 4 gezeigte Kommunikationsvorrichtungen 500a, 500b die
Merkmale der in den 1 und 2 beschriebenen
Kommunikationsvorrichtungen 100, 300 und Kommunikationspartnervorrichtungen 200, 400 kombinieren,
kann das in 4 gezeigte System sowohl Schreibzugriffe
als auch Lesezugriffe durchführen,
wie sie in 3 beschrieben sind. Dabei können beide
Kommunikationsvorrichtungen 500a, 500b als Initiator
der Kommunikationsvorgänge
auftreten, da beide Kommunikationsvorrichtungen 500a, 500b eine
Vergleichs- und Kontrolleinrichtung 556 aufweisen. Im Gegensatz
dazu können
die in den 1 und 2 gezeigten
Kommunikationspartnervorrichtungen 200, 400 nicht
als Initiator eines Kommunikationsvorganges auftreten.
-
Das
in 4 gezeigte Kommunikationssystem ermöglicht eine
Ausführung
des in 3 beschriebenen EDC-Protokolls auf einem Bus,
der verschlüsselt
oder verscrambelt sein kann. Dazu weisen die Kommunikationsvorrichtungen 500a,
b einen Schlüssel
auf, der von einer Einrichtung 562, die in 4 als
Key gekennzeichnet ist an die Sendeeinrichtung und die Empfangseinrichtung
bereitgestellt wird. Die Kommunikationsvorrichtungen 500a, 500b weisen
eine Verschlüsselungseinrichtung 564 auf, die
ausgebildet ist, um die auszugebenden Daten Data OUT mit dem Schlüssel 562 zu
verschlüsseln und
andererseits die empfangenen Daten in einer Entschlüsselungseinrichtung 566 mit
dem Schlüssel 562 zu
entschlüsseln,
um die entschlüsselten
Daten Data IN zu bestimmen.
-
Gemäß 4 ist
der Umschalter 552 ferner ausgebildet, um ein Check-Signal
zu empfangen, das die Ausgabe der Ausgabedaten beziehungsweise des
Kontrollwortes auf dem unidirektionalen Bus 550a steuern.
Ebenso ist der weitere Umschalter 554 ausgebildet um ein
Direction-Signal zu empfangen, das eine Umschaltung zwischen den
Ausgabedaten und den Empfangsdaten steuert, wie anschließend an
die Vergleichs- und Kontrolleinrichtung 556 weitergeleitet
werden.
-
Die
Kommunikationsvorrichtungen 500a, b können zusätzlich eine Takteinrichtung
aufweisen, die einen Takt bereitstellt, der die in 3 gezeigten Taktzyklen
steuert. Dabei sind die in 3 gezeigten Taktzyklen
lediglich beispielshaft gewählt.
-
5 zeigt
ein Blockschaltbild eines Kommunikationssystems gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung. 5 zeigt
drei Kommunikationsvorrichtungen 600a, b, c, die über unidirektionale
Busse 650a, b miteinander gekoppelt sind. Mindestens eine
der Kommunikationsvorrichtungen 600a, b, c ist eine Kommunikationsvorrichtung,
wie sie in den 1, 2, 4 beispielshaft
als Kommunikationsvorrichtungen 100, 300, 500a,
b, dargestellt ist. Wie es beispielsweise die Kommunikationsvorrichtung 600a eine
solche Kommunikationsvorrichtung, so kann es sich bei dem weiteren
Kommunikationsvorrichtungen 600b, c um Kommunikationspartnervorrichtungen
handeln, wie sie beispielsweise in 1 und 2 als
Kommunikationspartnervorrichtungen 200, 400 gezeigt
sind.
-
Bei
den Kommunikationsvorrichtungen 600a, b, c kann es sich
um diskrete Chips handeln oder auch um Vorrichtungen, die in einem
einzelnen Chips realisiert sind und über einen internen Bus miteinander
verbunden sind. Beispielsweise kann es sich bei der Kommunikationsvorrichtung 600a um
einen Security- Kontroller
und bei den Kommunikationsvorrichtungen 600b, c um externe
Speicherchips handeln. Die Übertragung
der Daten kann sowohl über
feste Verbindungen als auch über
drahtlose Kommunikationswege erfolgen.
-
Abhängig von
den Gegebenheiten kann das erfindungsgemäße Verfahren zum Übertragen
von Daten in Hardware oder in Software implementiert werden. Die
Implementierung kann auf einem digitalen Speichermedium, insbesondere
einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen
erfolgen, die somit einen programmierbaren Computersystem zusammenwirken
können,
das das entsprechende Verfahren ausgeführt wird. Allgemein besteht
die Erfindung somit auch in einem Computerprogrammprodukt mit einem
auf einem maschinenlesbaren Träger
gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn
das Computerprogrammprodukt auf einem Rechner abläuft. Mit
anderen Worten ausgedrückt, kann
die Erfindung somit als ein Computerprogramm mit einem Programmcode
zur Durchführung
des Verfahrens realisiert werden, wenn das Computerprogramm auf
einem Computer abläuft.
-
- 100
- Kommunikationsvorrichtung
- 102
- Sendeeinrichtung
- 104
- Bestimmungseinrichtung
- 106
- Kontrolleinrichtung
- 108
- Empfangseinrichtung
- 112
- Sendedaten
- 114
- KV-Kontrollwert
- 116
- KPV-Überprüfungswert
- 118
- Fehleranzeigesignal
- 200
- Kommunikationspartnervorrichtung
- 212
- Empfangsdaten
- 300
- Kommunikationsvorrichtung
- 318
- weiteres
Fehleranzeigesignal
- 322
- angeforderte
Empfangsdaten
- 324
- KVP-Kontrollwert
- 326
- KV-Überprüfungswert
- 400
- Kommunikationspartnervorrichtung
- 422
- angeforderte
Sendedaten
- 500a
- Kommunikationsvorrichtung
- 550a,
b
- unidirektionale
Busse
- 552,
554
- Umschalter
- 556
- Vergleichs-
und Kontrolleinrichtung
- 562
- Schlüssel
- 564
- Verschlüsselungseinrichtung
- 566
- Entschlüsselungseinrichtung
- 500b
- Kommunikationspartnervorrichtung
- 600a
- Kommunikationsvorrichtung
- 600b,
600c
- Kommunikationspartnervorrichtungen
- 650a,
650b
- unidirektionale
Busse