DE102006001873B4 - Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung - Google Patents

Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung Download PDF

Info

Publication number
DE102006001873B4
DE102006001873B4 DE102006001873A DE102006001873A DE102006001873B4 DE 102006001873 B4 DE102006001873 B4 DE 102006001873B4 DE 102006001873 A DE102006001873 A DE 102006001873A DE 102006001873 A DE102006001873 A DE 102006001873A DE 102006001873 B4 DE102006001873 B4 DE 102006001873B4
Authority
DE
Germany
Prior art keywords
control value
memory
error
date
error signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102006001873A
Other languages
English (en)
Other versions
DE102006001873A1 (de
Inventor
Marcus Janke
Peter Laackmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102006001873A priority Critical patent/DE102006001873B4/de
Priority to US11/622,787 priority patent/US7814396B2/en
Publication of DE102006001873A1 publication Critical patent/DE102006001873A1/de
Application granted granted Critical
Publication of DE102006001873B4 publication Critical patent/DE102006001873B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07372Means for preventing undesired reading or writing from or onto record carriers by detecting tampering with the circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung (100), wobei die Speicherschaltung (100) eine Speichereinrichtung (300) mit einer Speicher-Steuereinheit (120) und einer über eine Mehrzahl von Wortleitungen (130) und einer Mehrzahl von Bitleitungen (140) gekoppelter Speichermatrix (150), die ausgebildet ist, um ein Datum (DA) zu speichern, und eine Kontrollwerteinrichtung (310), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen, aufweist, wobei die Speichereinrichtung (300) ausgebildet ist, um der Kontrollwerteinrichtung (310) das Datum (DA) bereitzustellen, und wobei die Kontrollwerteinrichtung (310) ausgebildet ist, um das derselben bereitgestellte Datum (DA) auf Fehler zu überprüfen und, falls ein Fehler vorliegt, ein Fehlersignal (FS) auszugeben, mit folgenden Merkmalen:
einem Beeinflusser (260, 270), der in die Mehrzahl von Wortleitungen (130) oder die Mehrzahl von Bitleitungen (140) gekoppelt ist und ausgebildet ist, um die Mehrzahl der Wortleitungen (130) oder der Bitleitungen (140) nicht korrekt verschaltbar zu machen;
einer Überwachungseinrichtung (320), die mit der Kontrollwerteinrichtung (310) gekoppelt ist, um...

Description

  • Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung, insbesondere im Bereich von Chipkarten oder Smartcards, die beispielsweise in sensiblen Bereichen eingesetzt werden und daher Angriffen ausgesetzt sein können.
  • In sensiblen, die Sicherheit betreffenden Bereichen werden vielfältige technische Sicherungsmaßnahmen zum Einsatz gebracht. Diese Sicherungsmaßnahmen ermöglichen es beispielsweise, Anwendern auf bestimmte Computersystemen zuzugreifen, berechtigten Personen Zutritt zu bestimmten, für die Öffentlichkeit gesperrten Bereichen zu gewähren, oder auch auf gesicherte Informationen, wie etwa private Schlüssel im Rahmen eines Public-Key-Kryptographie-Verfahrens, Bankdaten oder Kreditkarteninformationen zuzugreifen. Der berechtigte Nutzer, also beispielsweise der berechtigte Anwender eines Computersystems oder auch ein Zutrittsberechtigter zu einem nichtöffentlichen Bereich, erhält häufig eine Chipkarte mit einem Security-Controller, die den Anwender einem Sicherheitssystem gegenüber als autorisiert ausweist. Bei einem Security-Controller handelt es sich um einen Mikrocontroller, der beispielsweise auf einer Chipkarte zur Überwachung von Sicherheitsfunktionen eingesetzt werden kann.
  • Solche Sicherheitssysteme und Sicherheitsschaltungen, die beispielsweise Chipkarten umfassen, werden schon auf Grund des Wertes der durch sie geschützten Güter, Informationen und Privilegien Angriffen ausgesetzt, welche durch verschiedene Gegenmaßnahmen seitens der Sicherheitsschaltungen abgewehrt werden sollen. Die Funktionalität bzw. die Funktionstüchtigkeit der Gegenmaßnahmen wurden bisher durch sogenannte UmSLC-Module (UmSLC = user mode sensor life control = Überwachung der Sensorfunktionsfähigkeit im Betriebsmodus) geprüft. Neben entsprechenden Versorgungsschaltungen und Auswertungsschaltungen waren die zentralen Komponenten der Gegenmaßnahmen bislang Sensoren, die Angriffe erkennen sollten. Zu den Sensoren zählen so beispielsweise Spannungssensoren, Frequenzsensoren, Temperatursensoren und Lichtsensoren. Um die Funktionalität der Gegenmaßnahmen, also die Funktionalität der verschiedenen Sensoren, ihrer Versorgungsschaltungen und der zugehörigen Auswerteschaltungen zu überprüfen, wurden die Sensoren bzw. ihre zugehörigen Komponenten durch das UmSLC-Modul so verstellt bzw. stimuliert, dass ein Alarm ausgelöst wurde. Der ausgelöste Alarm wurde jedoch nicht als Angriff gewertet, mit anderen Worten wurde dieser Alarm nicht wirksam geschaltet, sondern es wurde nur geprüft, ob er überhaupt erzeugt wurde. Falls nun im Rahmen eines solchen Tests der Alarm ausblieb, so wurde von dem UmSLC-Modul auf einen manipulativen Angriff geschlossen, der den Sensor außer Betrieb gesetzt hat. In einem solchen Fall kann das UmSLC-Modul seinerseits ein Alarmsignal erzeugen und ausgeben, das dazu führen kann, dass beispielsweise der Security-Controller einer Chipkarte bzw. die CPU (CPU = central processing unit = Zentralprozessor) des Security-Controllers angehalten wird, sensible Informationen vernichtet bzw. löscht oder ein Reset (Zurücksetzen) des Security-Controllers hervorruft.
  • Neue Gegenmaßnahmen fußen nun nicht mehr bzw. nicht mehr ausschließlich auf analogen Sensoren, die Veränderungen der Umweltbedingungen bzw. der Betriebsbedingungen der betreffenden Sicherheitskomponenten (beispielsweise eines Security-Controllers) erkennen, sondern weisen auch logische Maßnahmen auf, die Veränderungen von Informationen, die beispielsweise in dem Security-Controller abgespeichert sind, erkennen sollen. Herkömmliche UmSLC-Module erfüllen daher nicht mehr diese Anforderungen.
  • 2 zeigt ein Blockschaltbild einer möglichen Lösung einer Speicherschaltung 800 mit einer Fehlererkennungsfunktionali tät bzw. EDC-Funktionalität (EDC = error detection code = fehlererkennender Code) bezeichnet wird. Die Speicherschaltung 800 ist mit einem Bus 810 gekoppelt, über den die Speicherschaltung 800 mit weiteren Komponenten eines Security-Controllers, der die Speicherschaltung 800 umfasst, kommunizieren kann. Über den Bus 810 können so beispielsweise Datensignale, Steuersignale, Kontrollsignale, Statussignale und Befehlssignale zwischen der Speicherschaltung 800 und anderen Komponenten des Security-Controllers, beispielsweise einer CPU, eines Ein-/Ausgabemoduls oder eines Kryptoprozessors, ausgetauscht werden. Die Speicherschaltung 800 ist hierbei mit dem Bus 810 über eine Speicher-Steuereinheit bzw. einen Memory-Controller 820 verbunden. Der Memory-Controller 820 ist weiter über eine Mehrzahl von Zeilenauswahlleitungen 830, die auch als Wortleitungen bzw. Word-Lines bezeichnet werden, und über eine Mehrzahl von Spaltenauswahlleitungen 840, die auch als Bitleitungen bzw. Ein-/Ausgangsleitungen bezeichnet werden, mit einer Speichermatrix 850 verbunden. Der Memory-Controller 820 ist darüber hinaus mit einem EDC-Modul 860 über eine interne Datenleitung und eine Fehlersignalleitung gekoppelt. Das EDC-Modul 860 ist weiter mit einem EDC-Memory-Controller 870 gekoppelt. Eine EDC-Speichermatrix 880 ist an den EDC-Memory-Controller 870 über eine Mehrzahl von Wortleitungen 890 und eine Mehrzahl von Bitleitungen 900 verbunden.
  • Im Folgenden wird die Funktionsweise der Speicherschaltung 800 am Beispiel eines Lesezugriffs erläutert. Erhält die Speicherschaltung 800 bzw. der Memory-Controller 820 über den Bus 810 den Befehl, eine bestimmte Speicheradresse auszulesen, spricht der Memory-Controller 820 über einen Zeilenumsetzer und einen Spaltenumsetzer, die der Memory-Controller 820 umfasst, über die Mehrzahl von Wortleitungen 830 auf die Speichermatrix 850 zu und liest über die Mehrzahl von Bitleitungen 840 ein Datum aus, das in der Speichermatrix 850 unter der bestimmten Adresse abgespeichert ist. Daraufhin übermittelt der Memory-Controller 820 über die interne Datenleitung das Datum DA sowie die dem Datum DA zugrundeliegende Spei cheradresse an das EDC-Modul 860. Das EDC-Modul 860 fordert von dem EDC-Memory-Controller 870 eine entsprechende Prüfsumme bzw. Checksumme bzw. Kontrollwert an, die beispielsweise unter der gleichen Adresse in der EDC-Speichermatrix gespeichert ist. Zu diesem Zweck steuert der EDC-Memory-Controller 870 über die Mehrzahl von Wortleitungen 890 die EDC-Speichermatrix 880 an und erhält über die Mehrzahl von Bitleitungen 900 die dem Datum DA zugeordnete Checksumme, die der EDC-Memory-Controller 870 dem EDC-Modul 860 übermittelt. Das EDC-Modul 860 berechnet aus dem Datum DA ebenfalls eine Checksumme und vergleicht diese mit der abgespeicherten Checksumme. Erfüllen die beiden Checksummen eine vorbestimmte Beziehung zueinander, stimmen sie also beispielsweise überein, so übermittelt das EDC-Modul 860 über die Fehlersignalleitung kein Fehlersignal FS. Erfüllen beide Checksummen jedoch nicht die vorbestimmte Beziehung zueinander, stimmen also beispielsweise nicht überein, so übermittelt das EDC-Modul 860 über die Fehlersignalleitung ein Fehlersignal FS an den Memory-Controller 820, der beispielsweise daraufhin das Fehlersignal FS über den Bus 810 der CPU weiterleiten kann.
  • Als Speicher können sowohl Festwertspeicher, also beispielsweise ROM-Speicher (ROM = read-only memory = Nur-Lese-Speicher), wie auch Speicher, die lesende und schreibende Zugriffe ermöglichen, eingesetzt werden. Beispiele für letztgenannte Speicher stellen RAM-Speicher (RAM = random access memory = Speicher mit wahlfreiem Zugriff), nichtflüchtige Speicher (NVM = non-volatile memory), wie etwa Flash-Speicher oder EEPROM-Speicher (EEPROM = electrically erasable programmable read-only memory = elektrisch löschbarer programmierbarer Nur-Lese-Speicher), oder auch Cache-Speicher dar. Je nach verwendetem Speichertyp erfolgt die Kommunikation des Speichers mit anderen Komponenten, wie beispielsweise der CPU, nicht notwendigerweise über einen Bus, wie er in 2 gezeigt ist, sondern über eine andere Datenverbindung.
  • Erlaubt der Speichertyp einen schreibenden Zugriff auf die Speicherschaltung 800, so verläuft dieser ähnlich. In diesem Fall steuert der Memory-Controller 820 die Mehrzahl von Wortleitungen 830 und die Mehrzahl von Bitleitungen 840 so an, dass das abzuspeichernde Datum an einer Speicherstelle, die einer bestimmten Adresse zugeordnet ist, abgespeichert wird. Darüber hinaus übermittelt der Memory-Controller 820 dem EDC-Modul 860 sowohl das Datum DA wie auch die zugeordnete Adresse. Aus dem Datum berechnet das EDC-Modul 860 eine Checksumme und weist den EDC-Memory-Controller 870 an, unter der Adresse die Checksumme durch Ansteuerung der Mehrzahl der Wortleitungen 890 und der Bitleitungen 900 in der EDC-Speichermatrix 880 abzuspeichern.
  • Zur Berechnung der Checksumme eines Datums können hierbei verschiedene Verfahren bzw. Algorithmen zum Einsatz kommen. Häufig besteht die Checksumme aus einem einfachen Paritätsbit, oder einer CRC-Checksumme (CRC = cyclic redundancy check = zyklischer Redundanztest) oder auch einem Hash-Wert, wie er beispielsweise mit dem Algorithmus MD5, MD2 oder RIPEMD-160 berechnet werden kann.
  • Ein Angreifer kann im Rahmen eines Angriffs auf die Speicherschaltung 800 nun beispielsweise versuchen, durch einen physischen Angriff, etwa in Form eines gezielten Rückätzens ausgewählter Gebiete des Chips, der die Speicherschaltung 800 umfasst, und durch Anlegen von elektrischen Spannungen oder Spannungspulsen an bestimmte Bereiche des Chips, das EDC-Modul 860 und damit auch die Fehlererkennungsfunktionalität zu stören. Hierdurch kann der Angreifer den Inhalt der Speichermatrix 850 beispielsweise so manipulieren, das diese Manipulation nicht mehr erkannt werden. Als Folge kann beispielsweise ein Programmcode in den Speicher 800 geschrieben werden, der einem Mikrocontroller, den der Chip ebenfalls umfasst, dazu veranlasst, eigentlich geheime Daten preiszugeben. Die oben beschriebenen Sensoren sind zwar grundsätzlich geeignet, einen entsprechenden Angriff auf die Fehlerer kennungsfunktionalität der Speicherschaltung zu detektieren. Diese Sensoren sind aber immer nur für einen bestimmten Satz von Angriffen empfindlich.
  • Die US 5,872,790 bezieht sich auf einen Multibit-Fehlergenerator für ECC-Speicher. Der ECC-Speicher ist mit einer Fehlererkennungs- und Fehlerkorrektureinheit verbunden, etwa einer Speichersteuerung oder eines Zentralprozessors (CPU). Der Multibit-Fehlergenerator verwendet hierbei das Taktsignal von einem Computersystem, bestimmt den Zeitpunkt, zu dem das Computersystem als erstes versucht, nach einer Synchronisation mit dem Datenstrom aus demselben zu lesen. Hieran anschließend wird in wenigstens ein Bit des Datenstroms ein Fehler eingeführt, in dem das betreffende Bit bzw. die betreffenden Bits invertiert werden. Die Synchronisation wird hierbei auf eine Aktivierung durch einen mechanischen Schalter hindurchgeführt, wobei der Multibit-Fehlergenerator zusammen mit der Synchronisationsschaltung als PAL-Schaltung (PAL = programmable array logic) ausgeführt ist.
  • Die US 2005/0182997 A1 bezieht sich auf ein Halbleiterbauelement mit einem Speicher und einem Verfahren zum Testen eines Speichers, wobei der Test des Speichers auf Basis eines Fehlerüberprüfungs- und Fehlerkorrekturcodes durchgeführt wird. Das Halbleiterbauelement beinhaltet so einen Datenspeicher und einen Code-Speicher, sowie eine ECC-Schaltung und eine Testschaltung. Die Testschaltung erzeugt hierbei Testmuster, die in den Datenspeicher geschrieben werden. Die ECC Schaltung erzeugt zusätzlich Codeinformationen, die die Fehlerüberprüfung und Fehlerkorrektur ermöglichen und speichert diese in den Code-Speicher. Die Testschaltung liest anschließend die Daten aus dem Datenspeicher und dem Code-Speicher über die ECC-Schaltung, die die ausgelesenen Daten aus den Datenspeicher auf Fehler überprüft und das Resultat der Testschaltung übermittelt. Die Testschaltung vergleicht ferner die aus dem Datenspeicher gelesenen Daten mit den hineingeschriebenen Daten. Wird hierbei ein reproduzierbarer Bitfeh ler unmittelbar nach dem Schreiben des Testmusters festgestellt, wird dieser als anfänglicher Fehler des Speichers gewertet.
  • Die US 5,515,383 bezieht sich auf ein eingebautes Selbsttestsystem und ein Verfahren zum Selbsttest einer integrierten Schaltung. Eine integrierte Schaltung beinhaltet einen Selbsttestgenerator, der pseudo-zufällige Testvektoren erzeugt, die jeweils weniger Bits als ein normales Eingabesignal für die integrierte Schaltung haben. Das normale Signal enthält Daten und Paritätsbits, die einer Mehrzahl von Fehlererkennungs- und Korrekturschaltungen auf der integrierten Schaltung zur Verfügung gestellt werden. Ausgewählte Bits des pseudo-zufälligen Testvektors, der von dem Selbsttestgenerator erzeugt wird, werden auf die gesamte Anzahl der Bits der Daten und der Paritätssignale aufgeweitet und eine Testsignatur wird bereitgestellt, nachdem ein vollständiger Satz von Testvektoren von der Fehlererkennungs- und Korrekturschaltung prozessiert wurde. Ein Signaturanalysator vergleicht die Testsignatur mit einer vorbestimmten, erwarteten Signatur, um festzustellen, ob ein Fehler in einer der Fehlererkennungs- und Korrekturschaltungen in der integrierten Schaltung vorliegt. Der Selbsttest kann auf Befehl hin oder alternativ quasi-gleichzeitig mit dem normalen Betriebsmodus ablaufen.
  • Die US 2005/0086572 A1 bezieht sich auf ein Halbleiterbauelement mit einer ECC-Schaltung. Ein Halbleiterbauelement beinhaltet einen Speicher, der Daten speichert, eine ECC-Schaltung, die einen Bitfehler in aus dem Speicher ausgelesenen Daten korrigiert und korrigierte Daten erzeugt. Sie beinhaltet ferner eine eingebaute Selbsttestschaltung, die die Korrektur der von der ECC-Schaltung ausgegebenen Daten überprüft, und eine Pseudo-Fehlergeneratorschaltung, die einen Pseudofehler für wenigstens ein Bit der aus dem Speicher ausgelesenen Daten erzeugt und dem Pseudofehler an die ECC-Schaltung in einem Testmodus bereitstellt.
  • Die US 6,223,309 B1 bezieht sich auf ein Verfahren und eine Vorrichtung für ECC-Logiktests. Eine Überprüfungsschaltung beinhaltet eine erste Verzerrungsschaltung, die konfiguriert ist, um ein vorherbestimmtes logisches Signal auszugeben. Die Überprüfungsschaltung beinhaltet ferner einen Schalter, der zwischen die erste Verzerrungsschaltung und eine erste Datenbitleitung eines Speicherbusses eines Computersystems geschaltet ist. Der Speicherdatenbus enthält eine Mehrzahl von Datenbitleitungen und eine Mehrzahl von Überprüfungsbitleitungen. Das Computersystem beinhaltet eine Fehlerkorrekturschaltung (ECC), die mit dem Speicherdatenbus gekoppelt ist. Die Überprüfungsschaltung ist konfiguriert, um den Schalter während eines Überprüfungszyklus des Computersystems zu aktivieren. Auf diese Weise wird das vorbestimmte logische Signal der ersten Datenbitleitung während des Überprüfungszyklus zugeführt. Die Überprüfungsschaltung ist ausgebildet, um einen Testzustand den Datenbitleitungen und den Überprüfungsbitleitungen des Speicherdatenbusses zuzuführen. Der zugeführte Testzustand zu den Überprüfungsbitleitungen unterscheidet sich von dem Überprüfungsbitzustand, der von der ECC-Einheit des Computersystems auf ein Empfangen des Testzustands hin erzeugt würde.
  • Die US 2003/0182611 A1 bezieht sich auf ein Verfahren zur Überprüfung einer Fehlerkorrekturcodefunktion eines Computersystems. Das Verfahren enthält das Einschalten der ECC Funktion und ein Schreiben von ersten Testdaten in den ECC-Speicher. Das ECC-Modul speichert ferner Überprüfungsdaten ab, die den ersten Testdaten entsprechen. Dann wird die ECC-Funktion abgeschaltet und die ersten Testdaten mit zweiten Testdaten überschrieben. Anschließend wird die ECC-Funktion aktiviert, um zu versuchen, die ersten Testdaten unter Ver wendung der zweiten Testdaten und der Überprüfungsdaten wieder herzustellen.
  • Ausgehend von diesem Stand der Technik besteht die Aufgabe der vorliegenden Erfindung darin, eine Vorrichtung und ein Verfahren zu schaffen, die eine erhöhe Sicherheit Angriffen auf eine Speicherschaltung gegenüber ermöglicht.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 oder Anspruch 11, ein Verfahren gemäß Anspruch 17 oder Anspruch 18 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zu Grunde, dass eine erhöhte Sicherheit Angriffen auf eine Speicherschaltung gegenüber dadurch erreicht werden kann, dass während des Betriebs die Fehlererkennungsfunktionalität der Speicherschaltung gegenüber dadurch erreicht werden kann, dass während des Betriebs die Fehlererkennungsfunktionalität der Speicherschaltung auf ihre Wirksamkeit hin überprüft wird. Hierdurch ergibt sich der Vorteil, dass im Rahmen eines Angriffs eine Manipulation des Inhalts des Speichereinrichtung nicht dadurch verschleiert werden kann, dass die Kontrollwerteinrichtung in ihrer Funktionalität so beeinträchtigt wird, dass manipulierte Daten, die bei einer Überprüfung im Rahmen einer korrekten Ausführung der Fehlererkennungsfunktionalität eigentlich als fehlerhaft erkannt werden müssten, als fehlerfrei erkannt werden.
  • Zu diesem Zweck forciert die erfindungsgemäße Vorrichtung einen oder mehrere Fehler in der Speicherschaltung, in dem sie entweder diese so beeinflusst, dass ein Datum bei einer Überprüfung ein Fehlersignal der Kontrollwerteinrichtung hervorrufen müsste, oder in dem sie der Kontrollwerteinrichtung ein präpariertes Datum mit dem zugeordneten Kontrollwert bereitstellt, das ebenfalls bei einer Überprüfung zu einem Fehlersignal führen müsste. Empfangt die erfindungsgemäße Vorrichtung bzw. die Überwachungseinrichtung das erwartete Fehlersignal nicht, wird von einer Manipulation bzw. einem Angriff auf die Speicherschaltung ausgegangen. In diesem Fall gibt die Überwachungseinrichtung ihrerseits ein Alarmsignal aus, das einen erfolgten Angriff anderen Komponenten, mit denen die erfindungsgemäße Vorrichtung gekoppelt ist, gegenüber anzeigt.
  • In dem Ausführungsbeispiel kann die Überwachungseinrichtung den einem Datum zugeordneten Kontrollwert manipulieren, der Kontrollwerteinrichtung das Datum in einem gegenüber dem gespeicherten oder ausgelesenen Zustand veränderten Zustand bereitstellen oder das Aufforderungssignal zum Auslesen eines Datums manipulieren. Hierdurch ergibt sich der Vorteil, dass die erfindungsgemäße Vorrichtung über verschiedene Möglichkeiten zur Überprüfung der Fehlererkennungsfunktionalität verfügt, so dass ein Angriff auf die Speicherschaltung einer Mehrzahl von Überprüfungen widerstehen muss, um eine Chance auf eine erfolgreiche Durchführung zu haben.
  • Ein weiterer Vorteil besteht darin, dass die Überprüfung während des Betriebs durchgeführt werden kann. Die Überprüfung kann hierbei durch das Vorliegen einer Auslösbedingung initiiert werden. Hierdurch wird ein Angriff einem Angreifer erschwert, da er nicht nur zu bestimmten Ereignissen, wie etwa einem Systemstart, mit einer Überprüfung der Fehlererkennungsfunktionalität rechnen muss, was einen weiteren Vorteil darstellt.
  • Darüber hinaus zeigt das Ausführungsbeispiel, dass die erfindungsgemäße Vorrichtung nicht nur das Ausgeben eines Fehlersignals auf eine Beeinflussung hin oder auf ein entsprechend präpariertes Datum hin überwachen kann, das also die erfindungsgemäße Vorrichtung nicht nur die Kontrollwerteinrichtung dahingehend überwacht, einen Fehler zu detektieren. Sie erlaubt es vielmehr auch, nach einer erfolgreichen Fehlererkennung eine Überprüfung der Fehlererkennungsfunktionalität, ohne dass ein Fehler vorliegt. Der Vorteil, der sich hieraus ergibt, besteht darin, dass hierdurch ein möglicher Angriff auf Grund der zugenommenen Komplexität der Überprüfung erneut erschwert wird, da nicht mehr bei jeder Überprüfung durch die Überwachungseinrichtung ein Fehlersignal von derselben erwartet wird.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines Ausführungsbeispiels einer Speicherschaltung mit einer erfindungsgemäßen Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität; und
  • 2 eine mögliche Lösung einer Speicherschaltung mit einer Fehlererkennungsfunktionalität.
  • Bezug nehmend auf 1 wird nun ein Ausführungsbeispiel einer Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung beschrieben. Ähnliche oder gleiche Objekte, die bereits in den einführenden Abschnitten der vorliegenden Anmeldung erläutert wurden und in 2 gezeigt sind, werden mit sich um 700 unterscheidende Bezugszeichen bezeichnet.
  • 1 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer Speicherschaltung 100 mit einer erfindungsgemäßen Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität bzw. EDC-Funktion (EDC = error detecting code = fehlererkennender Code) der Speicherschaltung 100, wie sie beispielsweise im Rahmen eines Security-Controllers auf einer Chipkarte zum Einsatz kommen kann. Die Speicherschaltung 100 ist mit einem Bus 110 gekoppelt, über den die Speicherschaltung 100 mit anderen Komponenten eines Security-Controllers, eines Mikrocontrollers, einer Chipkarte oder einer Smartcard, also beispielsweise einer CPU (CPU = central processing unit = Zentralprozessor), anderen Speicherschaltungen, einem Ein/Ausgabemodul, einem (Pseudo-)Zufallszahlengenerator, einem Kryptoprozessor oder anderen kryptographischen Komponenten oder elektronischen Komponenten verbunden ist. Die Speicherschaltung 100 weist einen Memory-Controller 120, der auch als Speicher-Steuereinheit bezeichnet wird und über eine Mehrzahl von Wortleitungen 130, die auch als Zeilenauswahlleitungen bzw. Word-Lines bezeichnet werden, und über eine Mehrzahl von Bitleitungen 140, die auch als Spaltenauswahlleitungen, Ein/Ausgangsleitungen oder Bit-Lines bezeichnet werden, mit einer Speichermatrix 150 gekoppelt.
  • Darüber hinaus weist die Speicherschaltung 100 ebenfalls ein EDC-Modul 160 (EDC = error detecting code = fehlererkennender Code) und einen EDC-Memory-Controller 170 auf, die miteinander gekoppelt sind. Der EDC-Memory-Controller 170 ist mit einer EDC-Speichermatrix 180 über eine Mehrzahl von Wortleitungen 190 und einer Mehrzahl von Bitleitungen 200 verbunden. Die Mehrzahl von Wortleitungen 190 werden häufig als auch Zeilenauswahlleitungen bzw. Word-Lines, die Mehrzahl von Bitleitungen 200 häufig auch als Spaltenauswahlleitungen, Ein/Ausgangsleitungen oder als Bit-Lines bezeichnet. Die Funktionsweise der bisher bezeichneten Objekte und Elemente der Speicherschaltung 100 unterscheiden sich von den entsprechenden Objekten und Elementen der in 2 gezeigten Speicherschaltung 800 nicht, weshalb für die Beschreibung der Funktionsweise hiermit auf die einführenden Abschnitte der vorliegenden Anmeldung verwiesen wird.
  • Die Speicherschaltung 100 weist gegenüber der in 2 gezeigten Speicherschaltung 800 jedoch weitere Elemente auf, deren Anordnung und Funktionsweise im Folgenden beschrieben werden. Der Memory-Controller 120 ist so beispielsweise über einen Unterbrecher 210 mit dem Bus 110 gekoppelt. Der Unterbrecher 210 ist seinerseits mit einem UmSLC-Modul 220 (UmSLC = user mode sensor life control = Überwachung der Sensorfunktionsfähigkeit im Betriebsmodus) verbunden. Ebenso wie im Fall der Speicherschaltung 800 aus 2 ist auch der Memory-Controller 120 der in 1 gezeigten Speicherschaltung 100 mit dem EDC-Modul 160 über eine interne Datenleitung gekoppelt. Im Unterschied zu der in 2 gezeigten Speicherschaltung 800 ist jedoch bei der Speicherschaltung 100 zwischen den Memory-Controller 120 und das EDC-Modul 160 in die interne Datenleitung ein Manipulator 230 geschaltet, der mit dem UmSLC-Modul 220 ebenfalls verbunden ist. Ebenso wie die Speicherschaltung 800 aus 2 ist auch das EDC-Modul 160 über eine Fehlersignalleitung mit dem Memory-Controller 120 verbunden. Im Vergleich zu der Speicherschaltung 800 aus 2 ist in die Fehlersignalleitung zwischen das EDC-Modul 160 und den Memory-Controller 120 eine Weiche 240 geschaltet, die ihrerseits wiederum mit dem UmSLC-Modul 220 verbunden ist.
  • Die Speicherschaltung 100 weist darüber hinaus einen ebenfalls mit dem UmSLC-Modul 220 verbundenen EDC-Manipulator 250 auf, der zwischen das EDC-Modul 160 und den EDC-Memory-Controller 170 geschaltet ist. Des weiteren weist die Speicherschaltung 100 einen ersten Beeinflusser 260 und einen zweiten Beeinflusser 270 auf, die beide mit dem UmSLC-Modul 220 gekoppelt sind. Der erste Beeinflusser 260 ist hierbei in die Mehrzahl von Wortleitungen 130 zwischen den Memory-Controller 120 und die Speichermatrix 150 geschaltet, während der zweite Beeinflusser in die Mehrzahl von Bitleitungen 140 zwischen den Memory-Controller 120 und die Speichermatrix 150 geschaltet ist.
  • Die Speicherschaltung 100 weist somit eine Speichereinrichtung 300 auf, die den Memory-Controller 120, die Mehrzahl an Wortleitungen 130, die Mehrzahl an Bitleitungen 140, die Speichermatrix 150, den ersten Beeinflusser 260 und den zweiten Beeinflusser 270 umfasst. Darüber hinaus weist die Spei cherschaltung 100 eine Kontrollwerteinrichtung 310 auf, die das EDC-Modul 160, den EDC-Manipulator 250, den EDC-Memory-Controller 170, die Mehrzahl an Wortleitungen 190, die Mehrzahl an Bitleitungen 200 und die EDC-Speichermatrix 180 umfasst. Der EDC-Memory-Controller 170, die Mehrzahl an Wortleitungen 190, die Mehrzahl an Bitleitungen 200 und die EDC-Speichermatrix 100 bilden hierbei eine Kontrollwertspeichereinrichtung 315. Eine Überwachungseinrichtung bzw. eine Alarmeinheit 320 der Speicherschaltung 100 umfasst den Manipulator 230, die Weiche 240, den Unterbrecher 210 und das UmSLC-Modul 220.
  • Im normalen Betriebsmodus (Normalbetriebsmodus), wenn also das UmSLC-Modul 220 die Fehlererkennungsfunktionalität der Speicherschaltung 100 nicht überprüft, werden die gegenüber der Speicherschaltung 800 in 2 zusätzlichen Komponenten der Speicherschaltung 100 in einen neutralen, die Funktionalität der Speicherschaltung nicht modifizierenden Modus gebracht. Im Einzelnen bedeutet dies, dass der Unterbrecher 210 den Memory-Controller 120 mit dem Bus 110 verbindet. Ebenso verbindet die Weiche 240 die Fehlersignalleitung zwischen dem Memory-Controller 120 und dem EDC-Modul 160. Der Manipulator 230 lässt ein Datum DA auf der internen Datenleitung zwischen dem Memory-Controller 120 und dem EDC-Modul 160 ungehindert passieren. Die beiden Beeinflusser 260 und 270 belassen die Wortleitungen 130 und die Bitleitungen 140 unverändert. Ebenso verändert der EDC-Manipulator 250 keine Signale, die zwischen dem EDC-Modul 160 und dem EDC-Memory-Controller 170 ausgetauscht werden. Im normalen Betriebsmodus zeigt somit die Speicherschaltung 100 das bereits in den einführenden Abschnitten der vorliegenden Anmeldung beschriebene Verhalten bzw. die dort beschriebene Funktionsweise der Speicherschaltung 800, auf die hiermit verwiesen wird.
  • Erhält der Memory-Controller 120 über den Bus 110 in Form eines Lesebefehls hin, beispielsweise von der CPU, die Anweisung, ein bestimmtes Datum aus einer vorbestimmten Adresse der Speichereinrichtung 300 auszulesen, steuert der Memory-Controller 120 die Wortleitungen 130 so an, dass die Speichermatrix 150 über die Bitleitungen 140 das zugehörige Datum an den Memory-Controller 120 weiterleitet. Das Datum DA wird zusammen mit der zugehörigen Adresse dann dem EDC-Modul 160 zur Verfügung gestellt, das auf Basis des Datums DA eine Checksumme berechnet und den EDC-Memory-Controller 170 anweist, durch eine entsprechende Ansteuerung der Wortleitungen 190 aus der EDC-Speichermatrix über die Bitleitungen 200 den der Adresse zugeordneten Checksummenwert bzw. Kontrollwert auszulesen und diesen wiederum dem EDC-Modul 160 zur Verfügung zu stellen. Erfüllt nun der berechnete Checksummenwert mit dem gespeicherten Checksummenwert eine vorbestimmte Beziehung zueinander, stimmen sie also beispielsweise überein, so wird über die Fehlersignalleitung kein Fehlersignal FS dem Memory-Controller 120 zur Verfügung gestellt. Erfüllen hingegen die beiden Checksummen die vorbestimmte Beziehung zueinander nicht, weichen also beispielsweise voneinander ab, so wird über die Fehlersignalleitung ein Fehlersignal FS dem Memory-Controller 120 zur Verfügung gestellt, der dann beispielsweise die CPU über eine entsprechende Rückmeldung über ein Auftreten eines Fehlers informieren kann.
  • Durch die zusätzlichen Komponenten der Speicherschaltung 100 kann das in 1 gezeigte Ausführungsbeispiel der vorliegenden Erfindung die Aufgabenstellung lösen, eine neuartige, sogenannte UmSLC-Funktion für die Alarmeinheit 320 zur Absicherung des Speichers bzw. der Speicherschaltung umzusetzen und zu implementieren, so dass während des Betriebs logische Gegenmaßnahmen auf eine Erkennungsmöglichkeit von Angriffen hin, also auf ihre Wirksamkeit getestet werden können. Wie bereits erläutert wurde, werden bei dem in 1 gezeigten Ausführungsbeispiel die Speicher durch sogenannte fehlererkennende Codes (EDC = error detection code), die auch als Prüfsummen, Kontrollwerte oder Checksummen bezeichnet werden, nach dem Stand der Technik gegen Fehler abgesichert. Als Checksummen bzw. Prüfwerte können beispielsweise im Rahmen einer EDC-Speicherung von Daten ein einfaches Paritätsbit, eine CRC-Prüfsumme (CRC = cyclic redundancy check = zyklische Redundanzüberprüfung) oder ein Hash-Wert, wie er beispielsweise mit Hilfe der Hash-Algorithmen MD2, MD4, MD5 oder RIPEMD-160 berechnet werden kann, verwendet werden. Auch andere Verfahren, mit deren Hilfe die Integrität von Daten DA überprüft werden können, können als Checksumme bzw. Prüfwert herangezogen werden. Darüber hinaus stellt die in dem in 1 gezeigten Ausführungsbeispiel eine Speicherschaltung 100 gezeigte Aufteilung des eigentlichen Datenspeichers mit der Speichermatrix 150 und dem EDC-Speicher mit der EDC-Speichermatrix 180 keine Einschränkung an die allgemeine Ausführbarkeit der vorliegenden Erfindung. Vielmehr können die Inhalte beider Speicher auch physikalisch in ein und derselben Speichermatrix gespeichert werden.
  • Wird nun eine vorbestimmte Auslösebedingung erfüllt, so wechselt das UmSLC-Modul 220 von dem Normalbetriebsmodus in einen Überprüfungsmodus und leitet die Überprüfung der Fehlererkennungsfunktionalität der Speicherschaltung 100 ein. Bei dieser Auslösebedingung kann es sich beispielsweise um das Verstreichen einer vorbestimmten Zeitspanne oder das Erreichen einer vorbestimmten Systemzeit oder das Eintreffen einer entsprechenden CPU-Anweisung handeln. Ebenso ist eine zufällige Erfüllung der Auslösebedingung denkbar, wie sie beispielsweise durch einen (Pseudo-)Zufallszahlengenerator und einen entsprechenden vorbestimmten Anteil des Zahlenbereichs des (Pseudo-)Zufallszahlengenerators realisiert werden kann. Wichtig ist in diesem Zusammenhang, dass es sich bei der Auslösebedingung um eine intermittierend erfüllte Bedingung handelt, die einen normalen schreibenden und lesenden Zugriff auf die Speicherschaltung 100 ermöglicht, und darüber hinaus bei Erfüllen der Auslösebedingung das Einleiten der Überprüfung der Fehlererkennungsfunktionalität ermöglicht. Ist die Auslösebedingung erfüllt, so forciert die neuartige UmSLC-Funktion des UmSLC-Moduls 220 nun einen oder mehrere Fehler in dem Speicher, um die EDC-Funktion der Speicherschaltung 100 zu überprüfen. Hierzu wird zunächst das Fehlersignal FS des EDC-Moduls 160 (Alarmfunktion) durch Ansteuern der Weiche 240 zu dem UmSLC-Modul 220, das auch als UmSLC-Steuereinheit bezeichnet wird, umgeleitet. Dann wird ein Fehler im Speicher simuliert. Die UmSLC-Steuereinheit 220 muss dann eine Fehlermeldung, also das Fehlersignal FS, vom EDC-Modul 160 erhalten. Bleibt bei der Fehlererkennung durch den Einsatz fehlererkennender Codes nun eine Fehlermeldung bzw. ein Fehlersignal aus, wird von einer Manipulation bzw. einem Angriff auf den Speicher ausgegangen. Sollte dieses nicht erfolgen, wird das UmSLC-Modul 220 seinerseits ein Alarmsignal AL bzw. Alarm an einem Alarmsignalausgang erzeugen, da in dem Fall von einer Manipulation bzw. einem Angriff auszugehen ist. Das Alarmsignal (AL) signalisiert anderen Komponenten gegenüber, die beispielsweise der Security-Controller aufweist, einen erfolgten Angriff.
  • In einem „korrekten Betriebsfall”, bei dem die EDC-Funktionalität der Kontrollwerteinrichtung 310 korrekt funktioniert, indem also das UmSLC-Modul 220 die EDC-Fehlermeldung in Form des Fehlersignals FS erhält, wird der Speicherfehler bzw. die Simulation des Speicherfehlerrs wieder abgeschaltet und die Rücknahme der EDC-Fehlermeldung, also des Fehlersignals FS, abgewartet. Die EDC-Alarmleitung, also die Fehlersignalleitung, wird dann durch Ansteuern der Weiche 240 wieder auf das ursprüngliche Alarmmodul, also im vorliegenden Ausführungsbeispiel den Memory-Controller 120, zurückgeschaltet. Die erfindungsgemäße Vorrichtung ermöglicht somit die Überprüfung der Funktionalität einer Fehlererkennungsschaltung für Speicher und damit die Möglichkeit einer Angriffsdetektion für Speicher. Mit anderen Worten löst die erfindungsgemäße Vorrichtung zur Überprüfung der Fehlererkennungsfunktionalität einer Speicherschaltung somit vorteilhaft die Überprüfung der Angriffsdetektoren für Speicher und stellt somit eine UmSLC (UmSLC = user mode sensor life control = Steuereinheit für die Überwachung der Sensorfunktionsfähigkeit im Betriebsmodus) für Speicher dar.
  • Im weiteren Verlauf der vorliegenden Anmeldung wird anhand des in 1 gezeigten Ausführungsbeispiels einer Speicherschaltung 100 die Erzeugung eines Fehlers durch vier verschiedene Eingriffe in die Speicherschaltung 100 beispielhaft beschrieben, wobei die Fehler im Falle einer korrekten Fehlererkennungsfunktionalität der Speicherschaltung 100 detektiert werden. Hierbei unterscheiden sich die vier Methoden, mit denen ein Fehler im Speicher der Speicherschaltung 100 simuliert wird, von dem prinzipiellen Verfahren, das das UmSLC-Modul 220 ausführt, nur in wenigen Punkten. Die Verwendung der neuartigen UmSLC bzw. der erfindungsgemäßen Vorrichtung zur Überprüfung der Fehlererkennungsfunktionalität einer Speicherschaltung im Rahmen einer Überprüfung der Angriffsdetektion für Speicher geschieht in mehreren Schritten:
    • a. Das UmSLC-Modul 220 weist den Unterbrecher 210 an, den Memory-Controller 120 von dem Bus 110 zu trennen.
    • b. Das UmSLC-Modul 220 weist die Weiche 240 an, die Fehlersignalleitung so umzuleiten, dass das Fehlersignal FS nicht mehr den Memory-Controller 120 erreicht, sondern das UmSLC-Modul 220.
    • c. Das UmSLC-Modul 220 aktiviert eine oder mehrere Störungssimulationseinheiten, was im weiteren Verlauf der vorliegenden Anmeldung näher erläutert wird. Die Gruppe der Störungssimulationseinrichtungen umfasst den Manipulator 230, den EDC-Manipulator 250, den ersten Beeinflusser 260 und den zweiten Beeinflusser 270. Dieser Schritt kann unter bestimmten, unten beschriebenen Umständen auch entfallen.
    • d. Das UmSLC-Modul 220 weist den Unterbrecher 210 an, dem Memory-Controller 120 eine Datenanfrage zu senden, wobei dem Memory-Controller 120 über den Unterbrecher 210 von dem UmSLC-Modul 220 eine vorbestimmte oder von demselben bestimmte Adresse übergeben wird. Auf Grund der Datenanfrage liest der Memory-Controller 120 über die Wortleitungen 130 und die Bitleitungen 140 aus der Speichermatrix 150 ein Datum aus und stellt es zur weiteren Verarbeitung auf der internen Datenleitung zur Verfügung. Auf Grund des Eingreifens der Störungssimulationseinrichtungen, die in Schritt c gegebenenfalls durch das UmSLC-Modul 220 aktiviert wurden, liefert das EDC-Modul 160 im Falle einer korrekten Ausführung der Fehlererkennungsfunktionalität über die Fehlersignalleitung ein Fehlersignal FS, das durch das Umschalten der Weiche 240 nicht dem Memory-Controller 120, sondern dem UmSLC-Modul 220 zur Verfügung gestellt wird. Der Adresswert kann hierbei vorbestimmt sein oder auch von dem UmSLC-Modul 220 oder von einer anderen Komponente, beispielsweise der CPU, bestimmt werden. Denkbar ist es hier beispielsweise, dass das UmSLC-Modul 220 in einer planvollen Reihenfolge oder in einer zufälligen Reihenfolge alle Speicherbereiche oder auch nur Teile des Speicherbereichs der Speicherschaltung 100 überprüft. In dem Fall, dass nur Teile des Speicherplatzes der Speicherschaltung 100 überprüft werden, kann es sich beispielsweise um solche Speicherbereiche handeln, in denen sensible Informationen, also beispielsweise private Schlüssel oder andere Zugangsinformationen, gespeichert sind. Ebenso ist es denkbar, dass je nach Art der simulierten Störung vorbestimmte oder aus einem vorbestimmten Adressraum zufällig ausgewählte Adressen zur Durchführung der Überprüfung der Fehlererkennungsfunktionalität herangezogen werden. Weitere Einzelheiten hierzu werden auch weiter unten beschrieben.
    • e. Empfängt das UmSLC-Modul 220 das Fehlersignal FS nicht, so gibt das UmSLC-Modul 220 an dem Alarmsignalausgang ein Alarmsignal AL aus, woraufhin der Security-Controller, auf dem die Speicherschaltung 100 implementiert ist, weitere, hier nicht näher bezeichnete Schritte ausführt.
    • f. Ist an dem UmSLC-Modul 220 das Fehlersignal FS eingegangen, so werden gegebenenfalls die aktivierten Störungssimulationseinrichtungen deaktiviert.
    • g. Der Unterbrecher 210 wird von dem UmSLC-Modul 220 angewiesen, an den Memory-Controller 120 das betreffende Datum erneut oder auch ein anderes Datum auszulesen.
    • h. Tritt bei der Überprüfung des von dem Security-Controller 120 ausgelesenen Datums DA durch das EDC-Modul 160 erneut ein Fehler auf, der über die Weiche 240 dem UmSLC-Modul 220 zur Verfügung gestellt wird, löst das UmSLC-Modul 220 einen Alarm aus, indem das UmSLC-Modul 220 an dem Alarmsignalausgang ein Alarmsignal AL ausgibt.
    • i. Detektiert das UmSLC-Modul 220 kein Fehlersignal FS bzw. wird das bestehende Fehlersignal FS gelöscht, so wird die Speicherschaltung 100 in ihren ursprünglichen Zustand zurückversetzt. Zu diesem Zweck wird die Weiche 240 wieder so angesteuert, dass das Fehlersignal von dem EDC-Modul 160 zu dem Memory-Controller 120 gelangen kann. Darüber hinaus wird die Unterbrechung des Memory-Controllers 120 von dem Bus 110 durch ein Zurücksetzen des Unterbrechers 210 ebenfalls aufgehoben.
  • Mögliche Gegenmaßnahmen, die beispielsweise die CPU oder auch der Memory-Controller 120 nach dem Eintreffen des Alarmsignals AL, das das UmSLC-Modul 220 im Falle einer Störung der Fehlererkennungsfunktionalität ausgibt, können beispielsweise darin bestehen, dass sensible Daten gelöscht werden, die CPU angehalten wird, ein Reset der Chipkarte bzw. des Security- Controllers, der die Speicherschaltung 100 umfasst, ausgelöst wird oder dass der Security-Controller oder Teile der Chipkarte gezielt unbrauchbar gemacht werden, indem sie zerstört werden.
  • Im weiteren Verlauf der vorliegenden Anmeldung werden nun vier verschiedene Simulationen von Störungen beschrieben, die mit Hilfe des in 1 gezeigten Ausführungsbeispiels einer Speicherschaltung 100 mit einer erfindungsgemäßen Vorrichtung zum Überprüfen der Fehlererkennungsfunktionalität der Speicherschaltung 100 realisiert werden können. Hierbei werden die in den Schritten c und f des oben angegebenen Ablaufs der Überprüfungsroutine die entsprechenden und erwähnten Störungssimulationseinrichtungen aktiviert bzw. deaktiviert. Hierbei nicht genannte Störungssimulationseinrichtungen (siehe Punkt c.) können entfallen, wenn eine Implementierung der anderen Möglichkeiten zur Simulation von Störungen im Rahmen der anderen Möglichkeiten zur Überprüfung der Fehlererkennungsfunktionalität nicht beabsichtigt ist. Das in 1 gezeigte Ausführungsbeispiel ermöglicht es so, mit Hilfe verschiedener Ansätze, Störungen im Rahmen der Überprüfung der Fehlererkennungsfunktionalität der Speicherschaltung 100 auszulösen.
  • Eine erste Möglichkeit zur Überprüfung der Fehlererkennungsfunktionalität der Speicherschaltung 100 besteht nun darin, die EDC-Prüfwerte bzw. Kontrollwerte, die auch als EDC-Referenzwerte bezeichnet werden, so zu manipulieren, dass das EDC-Modul 160 bei der Durchführung der Fehlererkennungsfunktionalität ein Fehlersignal auf die Fehlersignalleitung ausgibt. Hierbei bestehen im Prinzip zwei Möglichkeiten, die EDC-Prüfwerte zu manipulieren. Zum einen besteht die Möglichkeit, von vorneherein zu den in der Speichermatrix 150 abgelegten Daten zum Teil fehlerhafte EDC-Prüfwerte in der EDC-Speichermatrix 180 abzulegen. In diesem Fall ist eine Manipulation der EDC-Referenzwerte während des Betriebs im Überprüfungsmodus nicht notwendig und es kann eine Implementierung von Einrichtungen aus der Gruppe der Störungssimulationseinrichtungen entfallen. Andererseits besteht hierdurch nur die Möglichkeit, im vorhinein entsprechend präparierte Speicherzellen zur Überprüfung der Fehlererkennungsfunktionalität heranzuziehen.
  • Eine Alternative, die es ermöglicht, beliebige Speicherplätze im Rahmen der Überprüfung der Fehlererkennungsfunktionalität heranzuziehen, besteht darin, durch entsprechendes Ansteuern des EDC-Manipulators 250 die aus der EDC-Speichermatrix 180 ausgelesenen EDC-Prüfwerte zu modifizieren. Zu diesem Zweck kann im Rahmen von Schritt c der oben angegebenen Routine das UmSLC-Modul 220 den EDC-Manipulator 250 beispielsweise so anzusteuern, dass dieser ein oder mehrere Bits der abgespeicherten EDC-Prüfsumme invertiert. Die Auswahl, welche Bits von dem EDC-Manipulator 250 invertiert werden, kann vorbestimmt sein oder durch das UmSLC-Modul 220 erfolgen. Alternativ ist es möglich, nicht einzelne Bits des EDC-Referenzwerts von dem EDC-Manipulator 250 invertieren zu lassen, sondern vielmehr dem EDC-Modul 160 von dem EDC-Manipulator 250 einen vorbestimmten oder auch zufällig bestimmten EDC-Prüfwert zu übergeben.
  • Mit anderen Worten besteht einerseits die Möglichkeit, gezielt EDC-falsche Werte zu speichern oder auch die EDC-Prüfwerte gezielt zu manipulieren. Im ersten Fall kann dies beispielsweise dadurch realisiert werden, dass in einem ROM-Speicherbereich (ROM = read-only memory = Nur-Lese-Speicher) absichtlich unkorrekte EDC-Referenzwerte abgelegt werden, dass eine NVM-Programmierung mit absichtlich gestörten EDC-Referenzwerten durchgeführt wird (NVM = non-volatile memory = nichtflüchtiger Speicher), dass eine RAM-Belegung (RAM = random access memory = Speicher mit wahlfreiem Zugriff) mit absichtlich falschen EDC-Referenzwerten oder beispielsweise dass Cache-Eintragungen mit absichtlich falschen EDC- bzw. Parity-Werten durchgeführt werden. Im Rahmen eines Tests bzw. der Überprüfung der Fehlererkennungsfunktionalität werden diese Speicherzellen versucht auszulesen. Auf Grund der genannten Vorbedingungen, wie sie von dem UmSLC-Modul 220 auf Grund der oben beschriebenen Überprüfungsroutine vorliegen, führen die unkorrekten EDC-Referenzwerte dann nicht zu einem an Komponenten außerhalb der Speicherschaltung 100 weitergegebenen Fehlersignal, also zu einem Alarm des Memory-Controllers 120, sondern zu einem korrekten Testverhalten im Rahmen des von dem UmSLC-Moduls 220 durchgeführten Tests.
  • Eine zweite Möglichkeit bzw. ein zweites Ausführungsbeispiel für die Durchführung der Überprüfung der Fehlererkennungsfunktionalität durch das UmSLC-Modul 220 besteht darin, dass Speicherleitungen, beispielsweise die Wortleitungen 130 oder auch die Bitleitungen 140, im Rahmen dieses Tests nicht korrekt geschaltet werden. Dieser Test kann so ausgeführt werden, dass beispielsweise eine oder mehrere der betreffenden Leitungen der Mehrzahl von Bitleitungen 140 einen „Stuck-At-1”- oder einen „Stuck-At-0”-Fehler aufweisen, also einen Fehler, bei dem einzelne Bits bzw. die zugehörigen Leitungen unabhängig von ihrem eigentlich beabsichtigten Wert auf einen logischen Signalwert gelegt bzw. geklemmt werden, der einer logischen 1 oder einer logischen 0 entspricht. Auch dieser Fehler soll von dem EDC-Modul 160 erkannt werden und über die Weiche 240 an das UmSLC-Modul 220 weitergeleitet werden. In dem in 1 gezeigten Ausführungsbeispiel kann dieser Fehler dadurch hervorgerufen werden, dass in dem dritten Schritt der oben beschriebenen Überprüfungsroutine der zweite Beeinflusser 270, der in die Bitleitungen 140 geschaltet ist, von dem UmSLC-Modul 220 angewiesen wird, eine oder mehrere Leitungen der Mehrzahl von Bitleitungen 140 auf ein Potential zu klemmen, das einer logischen 0 bzw. einer logischen 1 entspricht. Sowohl die Auswahl der Bitleitungen 140 wie auch die Werte, auf die die betreffenden Leitungen geklemmt werden, kann hierbei vorbestimmt sein oder durch das UmSLC-Modul 220 erfolgen.
  • Ein drittes Ausführungsbeispiel der Fehlersimulation besteht darin, die Ansteuerleitungen, z. B. die Adressleitungen bzw. die Wortleitungen 130, für diesen Test nicht korrekt schalten zu lassen. Auch diese Fehlerquelle führt im Allgemeinen zu falschen Auslesewerten der Speicherinhalte, welche von dem EDC-Modul 160 erkannt und über die Weiche 240 an das UmSLC-Modul 220 weitergeleitet werden sollen. In dem in 1 gezeigten Ausführungsbeispiel einer Speicherschaltung 100 kann dies beispielsweise dadurch geschehen, dass das UmSLC-Modul 220 den ersten Beeinflusser 260 so ansteuert, dass dieser die Wortleitungen 130 manipuliert. Neben der bereits beschriebenen Möglichkeit, eine oder mehrere Leitungen der Mehrzahl von Wortleitungen 130 auf einen logischen Wert 0 oder einen logischen Wert 1 zu klemmen, kann der erste Beeinflusser 260 auch die Wortleitungen 130 dadurch beeinflussen, dass dieser gezielt einzelne Leitungen vertauscht oder zyklisch um einen vorbestimmten Wert (beispielsweise um 1) verschiebt. Grundsätzlich besteht auch für die weiter oben beschriebenen Fehlersimulationseinrichtungen, also insbesondere für den EDC-Manipulator 250 und den zweiten Beeinflusser 270, die Möglichkeit, einzelne Bits oder die Reihenfolge von Datenleitungen wie etwa der Bitleitungen 140 zu vertauschen bzw. um einen vorbestimmten Wert, beispielsweise um 1, zyklisch zu verschieben.
  • Eine vierte Möglichkeit bzw. ein viertes Ausführungsbeispiel zur Simulation eines Fehlers zur Überprüfung der Fehlererkennungsfunktionalität der Speicherschaltung 100 besteht darin, dass die EDC-Schaltung bzw. die Kontrollwerteinrichtung 310 oder die Alarmeinheit 320 entweder so umgeschaltet oder durch Einführen und Aktivieren des Manipulators 230 so beeinflusst wird, dass die Daten DA, die in dem in 1 gezeigten Ausführungsbeispiel von dem Memory-Controller 120 an das EDC-Modul 160 ausgegeben werden, dem EDC-Modul 160 „falsch” erscheinen. Diese Beeinflussung bzw. Manipulation sollte von dem EDC-Modul 160 erkannt werden und an das UmSLC-Modul 220 über die Weiche 240 weitergeleitet werden. Diese Möglichkeit der Fehlersimulation kann in dem in 1 gezeigten Ausführungsbeispiel einer Speicherschaltung 100 dadurch realisiert werden, dass das UmSLC-Modul 220 den Manipulator 230 so ansteuert, dass dieser das von dem Memory-Controller 120 ausgegebene Datum DA so beeinflusst bzw. manipuliert, dass die anschließende Fehlererkennung durch das EDC-Modul 160 fehlschlägt, so dass das EDC-Modul 160 das Fehlersignal FS ausgibt. Hierbei besteht die Möglichkeit, dass der Manipulator 230 eine vorbestimmte oder von dem UmSLC-Modul 220 bestimmte Auswahl der Bits des Datums DA invertiert, auf einen logischen Wert 0 oder einen logischen Wert 1 setzt oder auch eine Mischform dieser Möglichkeiten durchführt. Darüber hinaus besteht ebenfalls die Möglichkeit, gezielt einzelne Bits des Datums DA zu vertauschen oder auch eine zyklische Verschiebung um einen vorbestimmten oder von dem UmSLC-Modul 220 vorgegebenen Wert, beispielsweise um 1, vorzunehmen. Da bei dieser Fehlersimulation nur ein Teil des Datenweges geprüft wird, ist diese vierte Möglichkeit bzw. diese Ausführung jedoch im Vergleich zu den vorher beschriebenen Ausführungen nachteilig.
  • Auch eine Kombination, also eine parallele Nutzung, oder eine sequenzielle Nutzung der Möglichkeiten der Fehlersimulation, also der vier oben beschriebenen Ausführungsbeispiele, ist denkbar. Im Falle einer sequentiellen Anwendung verschiedener Fehlersimulationsquellen müssen nicht alle Schritte der oben beschriebenen Fehlerüberprüfungsroutine bei jedem Durchgang ausgeführt werden.
  • Wie bereits oben erläutert wurde, ist es darüber hinaus nicht notwendig, alle Einrichtungen der Gruppe von Störungssimulationseinrichtungen zu implementieren, wenn nicht alle Möglichkeiten zur Störungssimulation implementiert werden sollen. Ist beispielsweise nur eine Implementierung der ersten Möglichkeit vorgesehen, ist im Falle einer Beschränkung auf im vorneherein manipulierte Daten mit entsprechend fehlerhaften EDC-Prüfwerten eine Implementierung der Störungssimulati onseinrichtungen nicht notwendig. Im Falle einer ausschließlichen Implementierung der ersten Möglichkeit ohne die genannte Beschränkung kann die Implementierung des Manipulators 230, des ersten Beeinflussers 260 und des zweiten Beeinflussers 270 entfallen. Im Falle einer ausschließlichen Implementierung der zweiten Möglichkeit oder einer ausschließlichen Implementierung der dritten Möglichkeit kann eine Integration des EDC-Manipulators 250 und des Manipulators 230 entfallen. Darüber hinaus kann im Fall einer ausschließlichen Implementierung der zweiten Möglichkeit der erste Beeinflusser 260 und im Fall einer ausschließlichen Implementierung der dritten Möglichkeit der zweite Beeinflusser 270 entfallen. Im Fall einer ausschließlichen Implementierung der vierten Möglichkeit kann eine Implementierung des ersten Beeinflussers 260, des zweiten Beeinflussers 270 und des EDC-Manipulators 250 entfallen.
  • Auch wenn in dem in 1 gezeigten Ausführungsbeispiel einer Speicherschaltung 100 der eigentliche Speicher für die Daten DA von dem Speicher, der die EDC-Referenzwerte bzw. Prüfwerte umfasst, physikalisch getrennt ist, stellt dies keine Einschränkung der vorliegenden Erfindung dar, sondern ist vielmehr zur Verdeutlichung der verschiedenen Möglichkeiten der Störungssimulationen erfolgt. Es sind durchaus Ausführungsbeispiele denkbar, bei denen die Prüfwerte zusammen mit den Daten DA in der gleichen physikalischen Speichermatrix gespeichert sind. Hierbei kann die Speicherung eines bestimmten Datums und der zugehörigen Prüfsumme bzw. dem zugehörigen EDC-Referenzwert, also der zugehörigen Kontrollwerte je nach Auslegung des Speichers an der gleichen oder einer unterschiedlichen logischen Adresse erfolgen.
  • Darüber hinaus sollte ebenfalls angemerkt werden, dass die Erfindung nicht auf wortorganisierte Speicher, wie dies das in 1 gezeigte Ausführungsbeispiel andeutet, beschränkt ist. Vielmehr können auch bitorganisierte Speicher sowohl zur Speicherung der EDC-Prüfwerte wie auch der Daten verwendet werden.
  • Als Speicher können sowohl Festwertspeicher, also beispielsweise ROM-Speicher (ROM = read-only memory), wie auch Speicher, die lesende und schreibende Zugriffe ermöglichen, eingesetzt werden. Beispiele für letztgenannte Speicher stellen RAM-Speicher (RAM = random access memory = Speicher mit wahlfreiem Zugriff), nichtflüchtige Speicher (NVM = non-volatile memory), wie etwa Flash-Speicher oder EEPROM-Speicher (EEPROM = electrically erasable programmable read only memory = elektrisch löschbarer programmierbarer Nur-Lese-Speicher), oder auch Cache-Speicher dar. Je nach verwendetem Speichertyp erfolgt die Kommunikation des Speichers mit anderen Komponenten, wie beispielsweise der CPU, nicht notwendigerweise über einen Bus, wie er in 1 gezeigt ist, sondern über eine andere Datenverbindung, so dass auch der in 1 gezeigte Bus 110 keine Einschränkung der vorliegenden Erfindung darstellt.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung in Hardware oder in Software implementiert werden. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette, einer CD oder einer DVD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das erfindungsgemäße Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computer-Programm-Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computer-Programm-Produkt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computer-Programm auf einem Computer abläuft. Hierbei ist unter einem Computer jegliche Form eines Prozessors zu verstehen, der ausgelegt ist, um ein Programm oder einen Programmcode auszuführen, also insbesondere auch Mikrocontroller auf einer Chipkarte, einer Smartcard oder einer sonstigen integrierten Schaltung.
  • 100
    Speicherschaltung
    110
    Bus
    120
    Memory-Controller
    130
    Wortleitung
    140
    Bitleitung
    150
    Speichermatrix
    160
    EDC-Modul
    170
    EDC-Memory-Controller
    180
    EDC-Speichermatrix
    190
    Wortleitungen
    200
    Bitleitungen
    210
    Unterbrecher
    220
    UmSLC-Modul
    230
    Manipulator
    240
    Weiche
    250
    EDC-Manipulator
    260
    erster Beeinflusser
    270
    zweiter Beeinflusser
    300
    Speichereinrichtung
    310
    Kontrollwerteinrichtung
    315
    Kontrollwertspeichereinrichtung
    320
    Alarmeinheit
    800
    Speicherschaltung
    810
    Bus
    820
    Memory-Controller
    830
    Wortleitung
    840
    Bitleitung
    850
    Speichermatrix
    860
    EDC-Modul
    870
    EDC-Memory-Controller
    880
    EDC-Speichermatrix
    890
    Wortleitungen
    900
    Bitleitungen

Claims (18)

  1. Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung (100), wobei die Speicherschaltung (100) eine Speichereinrichtung (300) mit einer Speicher-Steuereinheit (120) und einer über eine Mehrzahl von Wortleitungen (130) und einer Mehrzahl von Bitleitungen (140) gekoppelter Speichermatrix (150), die ausgebildet ist, um ein Datum (DA) zu speichern, und eine Kontrollwerteinrichtung (310), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen, aufweist, wobei die Speichereinrichtung (300) ausgebildet ist, um der Kontrollwerteinrichtung (310) das Datum (DA) bereitzustellen, und wobei die Kontrollwerteinrichtung (310) ausgebildet ist, um das derselben bereitgestellte Datum (DA) auf Fehler zu überprüfen und, falls ein Fehler vorliegt, ein Fehlersignal (FS) auszugeben, mit folgenden Merkmalen: einem Beeinflusser (260, 270), der in die Mehrzahl von Wortleitungen (130) oder die Mehrzahl von Bitleitungen (140) gekoppelt ist und ausgebildet ist, um die Mehrzahl der Wortleitungen (130) oder der Bitleitungen (140) nicht korrekt verschaltbar zu machen; einer Überwachungseinrichtung (320), die mit der Kontrollwerteinrichtung (310) gekoppelt ist, um das Fehlersignal (FS) zu empfangen, und ausgebildet ist, um durch ein Ansteuern des Beeinflussers (260, 270), so dass die Mehrzahl von Wortleitungen (130) oder der Bitleitungen (140) nicht korrekt verschaltet ist, das bereitgestellte Datum (DA) so zu beeinflussen, dass die Kontrollwerteinrichtung (310) bei einer Überprüfung in dem Fall einer korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler feststellen würde, und um ein Alarmsignal (AL) auszugeben, wenn die Kontrollwerteinrichtung (310) auf die Beeinflussung hin der Überwachungseinrichtung (320) kein Fehlersignal (FS) ausgibt.
  2. Vorrichtung nach Anspruch 1, bei der die Kontrollwerteinrichtung (310) ausgebildet ist, um aus dem derselben bereitgestellten Datum (DA) durch Anwenden einer vorbestimmten Operation einen Ist-Wert zu bestimmen, den Ist-Wert mit einem in einer Kontrollwertspeichereinrichtung (315) gespeicherten Kontrollwert zu vergleichen und, falls der Ist-Wert und der Kontrollwert eine vorbestimmte Beziehung zueinander nicht erfüllen, das Fehlersignal (FS) auszugeben.
  3. Vorrichtung nach Anspruch 2, bei der die Überwachungseinrichtung (320) ausgebildet ist, um die Beeinflussung ferner durch Manipulation des Kontrollwerts zu erzielen.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Überwachungseinrichtung (320) ausgebildet ist, um die Beeinflussung ferner durch eine Manipulation der Speichereinrichtung (300) so zu erzielen, dass die Speichereinrichtung (300) bei dem Bereitstellen des Datums (DA) für die Kontrollwerteinrichtung (310) der Kontrollwerteinrichtung (310) das Datum (DA) in einem gegenüber einem gespeicherten Zustand des Datums veränderten Zustand bereitstellt.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Überwachungseinrichtung (320) ausgebildet ist, um die Beeinflussung ferner durch eine Manipulation des der Kontrollwerteinrichtung (310) bereitgestellten Datum (DA), so dass dasselbe gegenüber einem ausgelesenen Zustand des Datums verändert ist, zu erzielen.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Speichereinrichtung (300) ausgebildet ist, um das der Kontrollwerteinrichtung (310) bereitgestellte Datum (DA) auf ein das Datum indizierende Aufforderungssignal hin auszulesen und um ein weiteres Datum zu speichern, und bei der die Überwachungseinrichtung (320) ausgebildet ist, um die Beeinflussung durch eine Manipulation des Aufforderungssignals der Speichereinrichtung (300) zu erzielen.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Überwachungseinrichtung (320) ausgebildet ist, um zur Beeinflussung den Beeinflusser (260, 270) dann anzusteuern, wenn eine vorbestimmte Auslösebedingung erfüllt ist, und den Beeinflusser (260, 270) nicht anzusteuern, wenn die Auslösebedingung nicht erfüllt ist.
  8. Vorrichtung nach Anspruch 7, bei der die Überwachungseinrichtung (320) so ausgebildet ist, dass die vorbestimmte Auslösebedingung intermittierend erfüllt ist.
  9. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Überwachungseinrichtung (320) weiterhin ausgebildet ist, um nach dem Empfang des Fehlersignals (FS) auf die Beeinflussung des bereitgestellte Datums (DA) hin die Speichereinrichtung (300) ohne eine Beeinflussung des bereitgestellten Datums (DA) oder eines weiteren Datums zu einer Bereitstellung des Datums oder des weiteren Datums zu der Kontrollwerteinrichtung (310) zu veranlassen und, falls die Überwachungseinrichtung (320) daraufhin ein weiteres Fehlersignal (FS) von der Kontrollwerteinrichtung (310) empfängt, das Alarmsignal (AL) auszugeben.
  10. Vorrichtung nach einem der vorhergehenden Ansprüche, bei der die Speicherschaltung (100) ausgebildet ist, um auf einen Lesebefehl hin das Datum (DA) auf Fehler zu überprüfen und, falls kein Fehler vorliegt, dasselbe auszugeben.
  11. Vorrichtung zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung (100), wobei die Speicherschaltung (100) eine Speichereinrichtung (300), in der ein erstes und ein zweites Datum gespeichert sind, eine Kontrollwertspeichereinrichtung (315), in der ein dem ersten Datum zugeordneter erster Kontrollwert und ein dem zweiten Datum zugeordneter zweiter Kontrollwert gespeichert sind, und eine Kontrollwerteinrichtung (310), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen, aufweist, wobei das zweite Datum und der zweite Kontrollwert bei einer Überprüfung zu einem Fehler führen, und wobei die Speichereinrichtung (300) und die Kontrollwertspeichereinrichtung (315) ausgebildet sind, um der Kontrollwerteinrichtung (310) das erste oder zweite Datum und den jeweils zugeordneten Kontrollwert bereitzustellen, wobei die Kontrollwerteinrichtung (310) ausgebildet ist, um das derselben bereitgestellte erste oder zweite Datum auf Fehler zu überprüfen und, falls ein Fehler vorliegt, ein Fehlersignal (FS) an einem Fehlersignalausgang auszugeben, und wobei die Speichereinrichtung (300) und die Kontrollwertspeichereinrichtung (315) Festwertspeicher sind, mit folgenden Merkmalen: einer Überwachungseinrichtung (320), die ausgebildet ist, um in einem Normalbetriebsmodus das Fehlersignal (FS) an den Fehlersignalausgang durchzulassen und in einem Überprüfungsmodus das Fehlersignal (FS) zu blockieren, um dasselbe nicht an den Fehlersignalausgang durchzulassen, und ein eine nicht korrekte Ausführung der Fehlererkennungsfunktionalität anzeigendes Alarmsignal (AL) auszugeben, wenn die Kontrollwerteinrichtung (310) der Überwachungseinrichtung (320) kein Fehlersignal (FS) ausgibt, wobei die Speichereinrichtung (300) und die Kontrollwertspeichereinrichtung (315) ausgebildet sind, um in dem Normalbetriebsmodus das erste Datum und den ersten Kontrollwert bereitzustellen und zu überprüfen und in dem Überprüfungsmodus das zweite Datum und den zweiten Kontrollwert bereitzustellen und zu überprüfen.
  12. Vorrichtung nach Anspruch 11, bei der die Kontrollwerteinrichtung (310) ausgebildet ist, um aus dem derselben bereitgestellten ersten oder zweiten Datum durch Anwenden einer vorbestimmten Operation einen Ist-Wert zu bestimmen, den Ist-Wert mit einem in der Kontrollwertspeichereinrichtung (315) gespeicherten Kontrollwert zu vergleichen und, falls der Ist- Wert und der Kontrollwert eine vorbestimmte Beziehung zueinander nicht erfüllen, das Fehlersignal (FS) auszugeben.
  13. Vorrichtung nach einem der Ansprüche 11 oder 12, bei der die Überwachungseinrichtung (320) ausgebildet ist, um in den Prüfungsmodus zu wechseln, wenn eine vorbestimmte Auslösebedingung erfüllt ist, und in den Normalbetriebsmodus zu wechseln, wenn die Auslösebedingung nicht erfüllt ist.
  14. Vorrichtung nach Anspruch 13, bei der die Überwachungseinrichtung (320) so ausgebildet ist, dass die vorbestimmte Auslösebedingung intermittierend erfüllt ist.
  15. Vorrichtung nach einem der Ansprüche 11 bis 14, bei der die Überwachungseinrichtung (320) weiterhin ausgebildet ist, um nach dem Empfangen des Fehlersignals (FS) von der Überwachungseinrichtung (320) nach der Überprüfung des zweiten Datums und des zweiten Kontrollwertes auf einen Fehler, das erste Datum und den ersten Kontrollwert der Kontrollwerteinrichtung (310) zur Überprüfung auf einen Fehler bereitzustellen, eine Überprüfung des zweiten Datums und des zweiten Kontrollwertes zu veranlassen und, falls die Überwachungseinrichtung (320) daraufhin ein weiteres Fehlersignal (FS) von der Kontrollwerteinrichtung (310) empfängt, das Alarmsignal (AL) auszugeben.
  16. Vorrichtung nach einem der Ansprüche 11 bis 15, bei der die Speicherschaltung (100) ausgebildet ist, um auf einen Lesebefehl hin, das erste Datum (DA) auf Fehler zu überprüfen und, falls kein Fehler vorliegt, dasselbe auszugeben.
  17. Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung (100) mit einer Speicher-Steuereinheit (120) und einer über eine Mehrzahl von Wortleitungen (130) und einer Mehrzahl von Bitleitungen (140) gekoppelter Speichermatrix (150), wobei die Speicherschaltung (100) eine Speichereinrichtung (300), die ausgebildet ist, um ein Datum (DA) zu speichern, und eine Kontrollwerteinrichtung (310), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen, aufweist, wobei die Speichereinrichtung (300) ausgebildet ist, um der Kontrollwerteinrichtung (310) das Datum (DA) bereitzustellen, und wobei die Kontrollwerteinrichtung (310) ausgebildet ist, um das derselben bereitgestellte Datum (DA) auf Fehler zu überprüfen und, falls ein Fehler vorliegt, ein Fehlersignal (FS) auszugeben, mit folgenden Schritten: Beeinflussen des bereitgestellten Datums (DA), dadurch dass die Mehrzahl von Wortleitungen (130) oder Bitleitungen (140) nicht korrekt verschaltet werden, so dass die Kontrollwerteinrichtung (310) bei einer Überprüfung in dem Fall einer korrekten Ausführung der Fehlererkennungsfunktionalität einen Fehler feststellen würde; Empfangen des Fehlersignals; und Ausgeben eines Alarmsignals (AL), falls die Kontrollwerteinrichtung (310) auf den Schritt des Beeinflussens hin kein Fehlersignal (FS) ausgibt.
  18. Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung (100), wobei die Speicherschaltung (100) eine Speichereinrichtung (300), in der ein erstes und zweites Datum gespeichert sind, eine Kontrollwertspeichereinrichtung (315), in der ein dem ersten Datum zugeordneter erster Kontrollwert und ein dem zweiten Datum zugeordneter zweiter Kontrollwert gespeichert sind und eine Kontrollwerteinrichtung (310), die ausgebildet ist, um die Fehlererkennungsfunktionalität auszuführen, aufweist, wobei das zweite Datum und der zweite Kontrollwert bei einer Überprüfung zu einem Fehler führen, wobei die Speichereinrichtung (300) und die Kontrollwertspeichereinrichtung (315) ausgebildet sind, um der Kontrollwerteinrichtung (310) das erste oder zweite Datum und den jeweils zugeordneten Kontrollwert be reitzustellen, wobei die Kontrollwerteinrichtung (310) ausgebildet ist, um das derselben bereitgestellte erste oder zweite Datum auf Fehler zu überprüfen und, falls ein Fehler vorliegt, ein Fehlersignal (FS) an einen Fehlersignalausgang auszugeben, und wobei die Speichereinrichtung (300) und die Kontrollwertspeichereinrichtung (315) Festwertspeicher sind, mit folgenden Schritten: in einem Normalbetriebsmodus: – Durchlassen des Fehlersignals (FS) an den Fehlersignalausgang; in einem Überprüfungsmodus: – Blockieren des Fehlersignals (FS), um dasselbe nicht an den Fehlersignalausgang durchzulassen; – Empfangen des Fehlersignals (FS) von der Kontrollwerteinrichtung (310); und – Ausgeben eines eine nicht korrekte Ausführung der Fehlererkennungsfunktionalität anzeigendes Alarmsignal (AL), wenn die Kontrollwerteinrichtung (310) kein Fehlersignal (FS) ausgibt, wobei die Speichereinrichtung (300) und die Kontrollwertspeichereinrichtung (315) ausgebildet sind, um in dem Normalbetriebsmodus das erste Datum und den ersten Kontrollwert bereitzustellen und zu überprüfen, und in dem Überprüfungsmodus das zweite Datum und den zweiten Kontrollwert bereitzustellen und zu überprüfen.
DE102006001873A 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung Expired - Fee Related DE102006001873B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102006001873A DE102006001873B4 (de) 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung
US11/622,787 US7814396B2 (en) 2006-01-13 2007-01-12 Apparatus and method for checking an error recognition functionality of a memory circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006001873A DE102006001873B4 (de) 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung

Publications (2)

Publication Number Publication Date
DE102006001873A1 DE102006001873A1 (de) 2007-07-19
DE102006001873B4 true DE102006001873B4 (de) 2009-12-24

Family

ID=38189994

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006001873A Expired - Fee Related DE102006001873B4 (de) 2006-01-13 2006-01-13 Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung

Country Status (2)

Country Link
US (1) US7814396B2 (de)
DE (1) DE102006001873B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230360713A1 (en) * 2022-05-06 2023-11-09 Micron Technology, Inc. Error check functionality verification using known errors

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006057297A1 (de) * 2006-12-05 2008-06-12 Giesecke & Devrient Gmbh Verfahren zur Überwachung des Ablaufs eines Programms
DE102007053295B4 (de) 2007-11-08 2010-10-28 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Funktionsüberprüfung einer Logikschaltung in einer Schaltungsanordnung
DE102009004291A1 (de) 2009-01-10 2010-07-15 Austria Card Gmbh Chipkarte mit Austauschindikation
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置
US8589759B2 (en) * 2010-10-01 2013-11-19 Hamilton Sundstrand Corporation RAM single event upset (SEU) method to correct errors
FR2990783B1 (fr) 2012-05-21 2014-05-02 St Microelectronics Rousset Procede de traitement d'une memoire non volatile, en particulier une memoire du type eeprom, pour le stockage puis l'extraction d'une information, et dispositif de memoire correspondant
DE102012108981A1 (de) * 2012-09-24 2014-03-27 Infineon Technologies Ag Ein-/Ausgabe-Modul, Datenverarbeitungsvorrichtung und Verfahren zum Überprüfen der Funktion einer Datenverarbeitungsvorrichtung
US9535808B2 (en) * 2013-03-15 2017-01-03 Mtelligence Corporation System and methods for automated plant asset failure detection
US9842302B2 (en) 2013-08-26 2017-12-12 Mtelligence Corporation Population-based learning with deep belief networks
US20150067437A1 (en) * 2013-08-30 2015-03-05 Kuljit S. Bains Apparatus, method and system for reporting dynamic random access memory error information
EP3065078A1 (de) * 2015-03-02 2016-09-07 Siemens AG Österreich Schutz von speicherinhalten eines speichers eines computersystems unter verwendung einer hashfunktion
US9984766B1 (en) * 2017-03-23 2018-05-29 Arm Limited Memory protection circuitry testing and memory scrubbing using memory built-in self-test
IT201700050153A1 (it) * 2017-05-09 2018-11-09 St Microelectronics Srl Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato e dispositivo
US10910082B1 (en) * 2019-07-31 2021-02-02 Arm Limited Apparatus and method
DE102022111126A1 (de) * 2022-05-05 2023-11-09 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum prüfen der integrität eines speichers
CN116341011B (zh) * 2023-05-11 2023-08-11 上海芯联芯智能科技有限公司 一种检测系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515383A (en) * 1991-05-28 1996-05-07 The Boeing Company Built-in self-test system and method for self test of an integrated circuit
US5872790A (en) * 1997-02-28 1999-02-16 International Business Machines Corporation ECC memory multi-bit error generator
US6223309B1 (en) * 1998-10-02 2001-04-24 International Business Machines Corporation Method and apparatus for ECC logic test
US20030182611A1 (en) * 2002-03-19 2003-09-25 Chung-Che Wu Method for verifying error correction code function of a computer system
US20050086572A1 (en) * 2003-09-01 2005-04-21 Osamu Hirabayashi Semiconductor device having ECC circuit
US20050182997A1 (en) * 2004-02-13 2005-08-18 Keiichi Kushida Semiconductor device with memory and method for memory test

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699323A (en) 1970-12-23 1972-10-17 Ibm Error detecting and correcting system and method
DE2407241A1 (de) 1974-02-15 1975-08-21 Ibm Deutschland Verfahren und anordnung zur erhoehung der verfuegbarkeit eines digitalrechners
US4048481A (en) 1974-12-17 1977-09-13 Honeywell Information Systems Inc. Diagnostic testing apparatus and method
DE3539415A1 (de) * 1985-11-07 1987-05-14 Bosch Gmbh Robert Verfahren und schaltungsanordnung zum erkennen und verdecken von fehlern in einem digitalen videosignal
DE3729882A1 (de) * 1987-09-05 1989-03-23 Bosch Gmbh Robert Verfahren und anordnung zur messung der qualitaet von digitalen signalen
US5251219A (en) * 1990-09-10 1993-10-05 Advanced Micro Devices, Inc. Error detection and correction circuit
US5341428A (en) 1992-01-30 1994-08-23 Gbs Systems Corporation Multiple cross-check document verification system
US5686885A (en) 1995-09-28 1997-11-11 Interactive Technologies, Inc. Sensor test method and apparatus
US5736777A (en) 1995-12-29 1998-04-07 Intel Corporation Method and apparatus for fast self-destruction of a CMOS integrated circuit
EP1025501B1 (de) * 1997-10-29 2002-04-03 Continental Teves AG & Co. oHG Verfahren und vorrichtung zur überprüfung einer fehlerüberwachung einer schaltung
JP4136086B2 (ja) * 1998-06-30 2008-08-20 富士通株式会社 プリンタ制御装置および印刷システム
JP2001175630A (ja) * 1999-12-14 2001-06-29 Fujitsu Ltd データ送信装置、データ受信装置、データ転送装置および方法
US6654648B2 (en) 2000-04-03 2003-11-25 Toyota Jidosha Kabushiki Kaisha Technique of monitoring abnormality in plurality of CPUs or controllers
US7444551B1 (en) 2002-12-16 2008-10-28 Nvidia Corporation Method and apparatus for system status monitoring, testing and restoration
EP1496435A1 (de) 2003-07-11 2005-01-12 Yogitech Spa Gesicherte Mikrokontroller, Verfahren zum Entwurf eines gesichertes Mikrokontrollers, und Computerprogrammprodukt dafür

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515383A (en) * 1991-05-28 1996-05-07 The Boeing Company Built-in self-test system and method for self test of an integrated circuit
US5872790A (en) * 1997-02-28 1999-02-16 International Business Machines Corporation ECC memory multi-bit error generator
US6223309B1 (en) * 1998-10-02 2001-04-24 International Business Machines Corporation Method and apparatus for ECC logic test
US20030182611A1 (en) * 2002-03-19 2003-09-25 Chung-Che Wu Method for verifying error correction code function of a computer system
US20050086572A1 (en) * 2003-09-01 2005-04-21 Osamu Hirabayashi Semiconductor device having ECC circuit
US20050182997A1 (en) * 2004-02-13 2005-08-18 Keiichi Kushida Semiconductor device with memory and method for memory test

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230360713A1 (en) * 2022-05-06 2023-11-09 Micron Technology, Inc. Error check functionality verification using known errors
US12119071B2 (en) * 2022-05-06 2024-10-15 Micron Technology, Inc. Error check functionality verification using known errors

Also Published As

Publication number Publication date
US7814396B2 (en) 2010-10-12
US20070226551A1 (en) 2007-09-27
DE102006001873A1 (de) 2007-07-19

Similar Documents

Publication Publication Date Title
DE102006001873B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung
DE102006001872B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe
DE69500346T2 (de) Verbesserte Speicherselbstprüfung
DE112010005172B4 (de) Gepaarte programmierbare Schmelzsicherungen
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE102007058418A1 (de) Fehlerkorrektur in Speicherbauteilen
DE2359776A1 (de) Speichermodul zur verwendung in verbindung mit einer datenverarbeitungseinheit
DE102005048255A1 (de) Integriertes Schaltungsbauelement und Betriebsverfahren
DE10110469A1 (de) Integrierter Speicher und Verfahren zum Testen und Reparieren desselben
DE102004020875B4 (de) Verfahren und Vorrichtung zum Maskieren bekannter Ausfälle während Speichertestauslesungen
DE102005016050A1 (de) Speicherfehlererkennungsvorrichtung und Verfahren zum Erkennen eines Speicherfehlers
DE102014112865A1 (de) Elektronische Schaltung und Verfahren zum Überwachen einer Datenverarbeitung
DE102015210651A1 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
DE102011014665A1 (de) Detektieren von Angriffen auf einen portablen Datenträger
EP3378006B1 (de) Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller
EP1664978B1 (de) Vorrichtung und verfahren zur sicheren ausführung eines programmes
DE102017124313A1 (de) Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
DE102005042790B4 (de) Integrierte Schaltungsanordnung und Verfahren zum Betrieb einer solchen
DE10254659A1 (de) Schaltungsanordnung mit nicht-flüchtigem Speichermodul und Verfahren zum Erfassen von Lichtattacken auf das nicht-flüchtige Speichermodul
DE102019201096A1 (de) Integrierter Schaltkreis und eingebettetes System mit einem solchen integrierten Schaltkreis
DE102007053295B4 (de) Schaltungsanordnung und Verfahren zur Funktionsüberprüfung einer Logikschaltung in einer Schaltungsanordnung
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102005016051B4 (de) Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers
DE102017115058B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee