WO2003007132A1 - Data-protected memory device for a processor - Google Patents

Data-protected memory device for a processor Download PDF

Info

Publication number
WO2003007132A1
WO2003007132A1 PCT/EP2002/007548 EP0207548W WO03007132A1 WO 2003007132 A1 WO2003007132 A1 WO 2003007132A1 EP 0207548 W EP0207548 W EP 0207548W WO 03007132 A1 WO03007132 A1 WO 03007132A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
program
processor
data interfaces
storage device
Prior art date
Application number
PCT/EP2002/007548
Other languages
German (de)
French (fr)
Inventor
Peter MÖLLER
Zoran Mijovic
Manfred JÜNKE
Joachim Ritter
Steffen Zimmermann
Original Assignee
Micronas Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micronas Gmbh filed Critical Micronas Gmbh
Priority to KR1020037003540A priority Critical patent/KR100906175B1/en
Publication of WO2003007132A1 publication Critical patent/WO2003007132A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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

Definitions

  • the invention relates to a memory device with data protection in a processor.
  • the invention supports the protective function of known encryption methods with public or secret key or passwords by preventing access to both the encryption program and the password in the respective storage device.
  • These sensitive data are located on a read / write memory integrated in the processor, for example an electrically writable and readable "flash" memory. This has the advantage that the content of the read / write memory cannot be read out directly, but only indirectly via data interfaces
  • the standardized interfaces are, for example, the externally accessible data interfaces
  • JTAG Joint Test Action Group
  • UART Universal Asynchronous Receiver Transmitter
  • USB Universal Serial Bus Interface
  • Data interfaces possible which can also be dependent on the processor or independent, standardized or non-standardized.
  • the function of a multiplicity of connections is generally switched over, so that, for example, data and addresses with 32 bits each can be input in parallel or output in parallel.
  • the encryption or decryption program is to be protected against unauthorized reading, modification or deletion.
  • Program updates can be made at any time.
  • the level of protection should be specifiable, in particular, by the user and not by the processor manufacturer.
  • encryption and decryption are usually summarized as "encryption" to simplify the language.
  • the term user is understood to mean the person who buys the processor as a component from the semiconductor manufacturer and installs it in an application circuit in order to produce a device or a device.
  • the device or device is ultimately purchased and commissioned by a user directly or as part of another device or device.
  • the basic idea of the invention is that the memory device to be protected is integrated in a processor and contains a first and a second memory part with different access options.
  • the integration of the storage device enables a combination of hardware and software protection measures that are not possible with a separate storage device.
  • the first memory part receives an initialization program, which also serves as a boot program for decryption
  • the second memory part an application program, for example a program for decrypting and / or decoding received data.
  • Such data can be audio data, for example, which are encoded according to the MP3 standard and additionally encrypted against unauthorized reception with a secret or public password.
  • This decryption program can be identical to the fairly secure decryption program in the boot area or is part of the application program in the second memory part.
  • the first memory part can be programmed and changed via one or more external data interfaces, but not via the processor or a data interface controlled by it. This can prevent the processor from being brought to the content of the initialization program via at least one program, which contains at least part of the encryption,
  • Decryption or identification program contains, read out, change or destroy.
  • the basic function in the first memory section is then always sufficient to reload the faulty application program in the second memory section.
  • the second memory section is both about the external data interfaces as well as programmable and changeable via the processor and the data interfaces controlled by it.
  • the non-lockable access of the processor to the first and second memory part is necessary both during normal operation and when the user provides program updates by authorized users.
  • Such program updates are required, for example, at predefinable intervals for changing the individual or group-specific encryption program or password in order to limit the negative consequences of accidental or illegal disclosure of the encryption.
  • a lock that does not include program updates is, however, also possible according to the invention in that all external data interfaces, that is to say also those controlled by the processor, are locked by the user by setting a lock information.
  • the processor always has access to the two memory parts for normal operation.
  • the invention is very flexible in adapting to the respective protection needs of the user and enables both consumer-related and professional applications.
  • a conceivable consumer application relates, for example, to an encrypted transmission of video or audio data.
  • only the authorized licensee can decrypt the data by means of the processor for further processing in the processor and own playback, but he cannot make a copy of the decrypted data for third parties because they are not available at any externally accessible interface. It is similar if the engine in a motor vehicle is controlled via an electronic engine management system whose secret program is to be protected against copying or modification.
  • the authorization or identity is checked via the protected encryption program, which interacts in a known manner with the public or non-public keyword stored in the first or second storage part and the program received in encrypted form. Only when all parts fit together is it possible to decrypt and thus use the data received or to update the stored program.
  • the second and possibly also the first memory part is divided into different memory blocks, so that a block-wise change or deletion in the program updates is possible in order to avoid conflicts between the new and old programs.
  • a first memory block in the first or second memory part contains a protective register with programmable release or blocking information for each data interface in order to block or release the reading and / or writing of the first and second memory parts via this data interface.
  • the blocking information is not yet activated, the first and second memory areas are accessible via all external data interfaces, that is to say also those controlled by the processor. This enables, for example, the manufacturer or user to adapt, change or correct the initialization or application program. If after the completion of these changes the blocking information for the externally accessible data interfaces is set by the user, these can generally no longer be removed by anyone without destroying the existing program.
  • Locking information is thus securely secured against any change. Users who identify themselves as authorized via the existing software and the saved password can, if necessary, change the content of the protection register, i.e. remove the block. This option allows the user to troubleshoot the actually locked processor if necessary.
  • the protection register is expediently queried as soon as the power supply is switched on by means of queries hard-wired in the processor, specifically before the initialization program permits other queries or programming.
  • the hard wiring of these queries which are so important for protection, has the advantage that they cannot be changed intentionally or accidentally by any program. Of course, this also ensures that the query of the protection register cannot be bypassed even briefly when the network is switched on or when it is interrupted.
  • a second and a third memory block in the first or second memory part serve the double storage of the public or private keyword.
  • the key word which is also called
  • Password is referred to, and is coupled to the encryption program in the first and / or second memory part.
  • the advantages and disadvantages of both systems are not changed by the invention, but access to the protected data content is prevented in both cases or at least made significantly more difficult.
  • a fourth, relatively large memory block in the second memory part is used to store an application program.
  • This program is usually updated when the program is updated completely replaced.
  • the content of the application program, in conjunction with the password, enables the processor to decrypt and decode the received data. Protection against unauthorized access can of course not only be used on the decryption side but also on the encryption side.
  • FIG. 1 schematically shows the division of a memory unit integrated in the processor
  • FIG. 2 schematically shows a protective register with memory locations for the interfaces
  • FIG. 3 schematically shows an initialization process in the flowchart
  • Fig. 4 shows schematically in the flow chart a program update
  • FIG. 5 schematically shows a processor as an embodiment of the invention.
  • a first memory part 2 which begins with the start address 0x00, contains an initialization program that is also referred to as a boot program.
  • This first memory part 2 has only limited access options for programming for the user and manufacturer, namely only via those data interfaces which are dependent on the function of the sensor. During the manufacturing process, easier access to the first memory area may be possible via chip contacts that are no longer available later in order to load the initialization program.
  • the initialization program is activated when the processor is switched on. It also contains programs that check the authenticity or identity of the user or user and also support reading and writing of the data interfaces controlled by the processor.
  • Initialization program also contains at least those parts of the decryption program that are required in order to be able to reprogram an empty or faulty second memory part with the support of the processor, for example by feeding the encrypted new program via a data interface controlled by the processor.
  • the second and third memory blocks 5, 6 are large enough so that they can, if necessary, include further passwords for other encryption programs.
  • the actual application program is located in a fourth memory block 7. This is
  • Memory block is large enough to hold current and future user programs.
  • the different access control or ultimately the desired blocking of the first and second memory parts 2 and 3 is controlled by hardware using the block addresses.
  • the programming signal of the processor is logically linked to the area signal for the first memory part 2, so that the global or block memory signal for the
  • Storage device 1 is not formed at all. However, if the first memory part 2 is addressed in connection with a data interface that is independent of the processor, the global or block memory signal is not suppressed, unless the associated blocking signal is set in the PCR register. Similarly, by linking the block addresses or address area signals with signals for reading or writing the memory device 1 and the associated data interface, the blocks 4 to 7 in the second memory part 3 are controlled.
  • FIG. 2 schematically shows the protective register PCR in the first memory block 4.
  • the protective register contains a memory location for holding a "1" or “0” value.
  • the content “1” means that reading or writing of the memory device 1 is possible via the associated data interface.
  • this release does not override the specified access options, for example that the first memory part 2 is never accessible via data interfaces controllable by the processor
  • the choice of "1” depends on the respective technology of the memory device 1. In flash memories, all cells are in the "1” state after deletion, so the logical state "1" must be selected as the enable signal for this type of memory. Accordingly, "0” then represents the blocking signal for the read, write and erase process.
  • each position of the register content sets a corresponding "1" or “0" state in a state machine of the processor when the power is switched on Or the PCR register already serves as such a status register via fixed readout lines.
  • the content of such a status register may only be changed during operation either by changing the protective register content or by switching off the network.
  • a change in the status register content when switched on depends on PCR registers only possible from state “1” to state "0". Changes in the other direction are not possible because the blocking signal "0" blocks access to the protective register PCR via the externally accessible data interface.
  • 3 shows three externally accessible data interfaces as examples: a JT AG interface, a parallel interface and a TEST interface. If the corresponding interface is enabled, which is symbolized by a respective function box, data of the memory device 1 can be read out or changed via this interface. The end of this reading or writing is formed by triggering the jump to the start address 0x00 in the boot area.
  • Starting the program from the boot start address 0x00 triggers a query as to whether a new application program - e.g. an “update” should be loaded.
  • the processor 10 (cf. FIG. 5) is now ready, according to the existing application program, to decrypt, decode and further process the content of the received data internally. As already mentioned, the decrypted data cannot be passed on via externally accessible interfaces.
  • This protection bit can be set when the application program is being programmed and then prevents, by means of circuit measures, that the memory device 1 is wholly or partly deleted by any accidental disturbance in a program that is currently running can only be avoided if the device is switched off and the input of a new application program is signaled by means of the enter key Protection bit is set or not, is at the discretion of the user who creates and makes the new application program available.
  • the PCR content can first be deleted before the content of the new program is loaded. However, if this check reveals that the previous content of the protection register was lock information and that the program to be reloaded also contains lock information, then the protection register PCR is not deleted. This ensures that the blocking information contained in the protection register is never interrupted during reprogramming, and therefore not briefly.
  • the further application program can be in the fourth
  • Circuit block 7 are loaded.
  • the loading is expediently preceded by a deletion of the old application program.
  • the program was carried out using the password “Key 1” present in the second memory block 5.
  • the new password “Key 1 *” is written into the third memory block 6 by the received program.
  • the old password "Key 1" in the second memory block 5 is deleted and replaced by the new password. The reprogramming is thus completed.
  • the flowchart shows that the reprogramming begins with the deletion of the password in the third memory block 6 and ends with the deletion and writing of the new password in the second memory block 5.
  • a global deletion of the entire contents of the storage device 1 is not shown in the flowcharts of FIGS. 3 and 4. It can be triggered, for example, by a predefined configuration of levels at predefined connections of the processor 10. This condition must never occur even in the worst case of the processor. It is therefore expedient for the global deletion to be linked to a completely irregular operating state.
  • the global erasure has the purpose, under certain conditions, of unlocking the protective register PCR without any protected data being able to be read from the memory device. Because of the deletion, this data has disappeared.
  • Reprogramming of the entire memory device 1 is now possible. Programming is a bit difficult because the first memory section can still not be loaded via data interfaces controlled by the processor, but only via the interfaces independent of the processor.
  • the global deletion enables the manufacturer or user to still use processors loaded with a faulty or incorrect program after they have been blocked. Information about the memory contents is not possible for Ditten, provided that they are aware of the global deletion. The protective function is therefore fully preserved.
  • a processor 10 contains a processor core 11, the inputs and outputs of which are connected to an internal data bus 12 and an internal address bus 13. Since these two buses 12, 13 are not routed to the outside, they can also be designed as fast parallel buses with, for example, 32 lines each. There may also be less effective bus connections internally that connect the individual functional units of the processor.
  • the entire processor 10 is clocked with a system clock cl, which is generated in an integrated clock generator 14.
  • the data and addresses are fed directly from a data interface 16 to the processor core.
  • the following externally accessible data interfaces are connected to the data and address bus 12 and 13: a JTAG interface 16, a USB interface 17 and a parallel interface 18.
  • the USB data interface 17 works with the processor core 11 via an appropriate program control.
  • the interfaces JTAG 16 and the parallel interface 18, which are independent of the processor core 11, have more or less convenient data and address inputs.
  • memory area signals adr-i are formed from the individual addresses by means of an address generator 19. These address area signals are linked for each data interface 16, 17, 18 in an associated link device 20, 21, 22 with the associated lock or release signal from the PCR register and form an associated control signal 25, 26, 27 that the respective interface 16, 17 , 18 blocks or releases.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)

Abstract

The invention relates to a memory device (1) for a processor (10) that is monolithically integrated therewith and that contains a first and a second memory part (2 and 3, respectively) for an initialing program and for a user program, respectively. The first memory part (2) is readable and/or writeable via a first group of data interfaces (16, 18) and the second memory part (3) via a second group (16, 17, 18). The first and/or second memory part (3) contains memory blocks (4, 5, 6, 7) that can be addressed block by block. A first memory block (4) contains a protection register (PCR) with programmable release or blocking information for the individual data interfaces. The protective register (PCR) is inquired once power is switched on. A second and a third memory block (5 and 6, respectively) are used for storing a password (key 1, key 1*) that is coupled to an encryption and identification program in the memory device (1).

Description

Speichereinrichtung mit Datenschutz in einem Prozessor Storage device with data protection in a processor
Die Erfindung betrifft eine Speichereinrichtung mit Datenschutz in einem Prozessor. Die Erfindung unterstützt die Schutzfunktion bekannter Verschlüsselungsverfahren mit öffentlichen oder geheimen Schlüssel- oder Passwörtern, indem sie den Zugang sowohl zum Verschlüsselungsprogramm als auch zum Passwort in der jeweiligen Speichereinrichtung verhindert. Diese empfindlichen Daten befinden sich auf einem im Prozessor mitintegrierten Schreib-Lesespeicher, beispielsweise einem elektrisch schreib- und lesbaren „Flash"-Speicher. Dies hat den Vorteil, daß der Inhalt des Schreib- Lesespeichers nicht direkt ausgelesen werden kann, sondern nur indirekt über Datenschnittstellen. Als extern zugängliche Datenschnittstellen sind beispielsweise die standardisierte SchnittstellenThe invention relates to a memory device with data protection in a processor. The invention supports the protective function of known encryption methods with public or secret key or passwords by preventing access to both the encryption program and the password in the respective storage device. These sensitive data are located on a read / write memory integrated in the processor, for example an electrically writable and readable "flash" memory. This has the advantage that the content of the read / write memory cannot be read out directly, but only indirectly via data interfaces The standardized interfaces are, for example, the externally accessible data interfaces
JTAG (=Joint Test Action Group), UART (=Universal Asynchron Receiver Transmitter) oder USB (=Universal Serial Bus Interface) bekannt, die einen seriellen Zugang ermöglichen. Teilweise wie bei USB ist eine Unterstützung der Schnittstellenfunktion durch spezielle Programme im Prozessor erforderlich, teilweise werden die Schnittstellen rein extern gesteuert und sind völlig unabhängig vom Prozessor. Parallele und damit sehr rasche Zugänge sind gegebenenfalls über andereJTAG (= Joint Test Action Group), UART (= Universal Asynchronous Receiver Transmitter) or USB (= Universal Serial Bus Interface) are known, which enable serial access. In some cases, as with USB, the interface function must be supported by special programs in the processor, in some cases the interfaces are controlled purely externally and are completely independent of the processor. Parallel and therefore very quick accesses may be via others
Datenschnittstellen möglich, die ebenfalls vom Prozessor abhängig oder unabhängig, standardisiert oder nichtstandardisiert sein können. Für derartige parallele Schnittstellen wird in der Regel die Funktion einer Vielzahl von Anschlüssen umgeschaltet, so daß beispielsweise Daten und Adressen mit je 32 Bit parallel eingegeben oder parallel ausgegeben werden können.Data interfaces possible, which can also be dependent on the processor or independent, standardized or non-standardized. For such parallel interfaces, the function of a multiplicity of connections is generally switched over, so that, for example, data and addresses with 32 bits each can be input in parallel or output in parallel.
Wenn sich der Benutzer oder Dritte unerlaubt Kenntnis über ein Verschlüsselungsverfahren verschaffen wollen, dann dient das in der Regel dazu, letztendlich an den Inhalt verschlüsselter Daten heranzukommen. Es kann sich dabei um gespeicherte oder übertragene Daten handeln. Als Beispiel wird unerlaubte Übertragung und Vervielfältigung von gebührenpflichtigen Musikstücken mittels des MP3 -Kompressionsverfahrens erwähnt. Mit einer Verschlüsselung der Daten läßt sich dies verhindern, allerdings muß dabei das individuelle oder globale Verschlüsselungsprogramm geheim bleiben. Bei großem Interesse an der Entschlüsselung ist davon auszugehen, daß Umgehungsprogramme rasch über das Internet oder andere Wege verbreitet werden und die Verschlüsselung unwirksam machen.If the user or a third party wants to gain knowledge of an encryption process without authorization, this usually serves to ultimately access the content of encrypted data. This can be stored or transmitted data. An example of this is the unauthorized transmission and duplication of music pieces subject to a fee using the MP3 compression process. This can be prevented by encrypting the data, but the individual or global encryption program must remain secret. If you are very interested in decryption, it can be assumed that bypass programs will be spread quickly via the Internet or other means and will make encryption ineffective.
Es ist Aufgabe der Erfindung, einen Schutz für gespeicherte Daten eines Prozessors anzugeben, die dort in Verbindung mit einem Verschlusselungs- oder Entschlüsselungsprogramm gespeichert sind. Insbesondere soll dabei das Verschlusselungs- oder Entschlüsselungsprogramm gegen unbefugtes Ausgelesen, Verändern oder Löschen geschützt werden. Für autorisierte Benutzer soll jedoch eine Programmaktualisierung jederzeit möglich sein. Die Höhe des Schutzes soll dabei insbesondere vom Anwender und nicht vom Hersteller des Prozessors vorgebbar sein. Im folgenden Text wird zur sprachlichen Vereinfachung Verschlüsselung und Entschlüsselung einheitlich meist als „Verschlüsselung" zusammengefasst.It is the object of the invention to provide protection for stored data of a processor, which are stored there in connection with an encryption or decryption program. In particular, the encryption or decryption program is to be protected against unauthorized reading, modification or deletion. For authorized users, however, one should Program updates can be made at any time. The level of protection should be specifiable, in particular, by the user and not by the processor manufacturer. In the following text, encryption and decryption are usually summarized as "encryption" to simplify the language.
Unter Anwender wird im folgenden derjenige verstanden, der den Prozessor als Baustein vom Halbleiterhersteller kauft und in eine Anwendungsschaltung einbaut, um eine Vorrichtung oder ein Gerät herzustellen. Die Vorrichtung oder das Gerät wird schließlich von einem Benutzer direkt oder als Teil einer anderen Vorrichtung oder eines anderen Geräts gekauft und in Betrieb genommen.In the following, the term user is understood to mean the person who buys the processor as a component from the semiconductor manufacturer and installs it in an application circuit in order to produce a device or a device. The device or device is ultimately purchased and commissioned by a user directly or as part of another device or device.
Die Lösung dieser Aufgabe erfolgt durch die im Anspruch 1 beanspruchten Merkmale. Vorteilhafte Weiterbildungen und Ausgestaltungen finden sich in den abhängigen Ansprüchen.This object is achieved by the features claimed in claim 1. Advantageous further developments and refinements can be found in the dependent claims.
Der Grundgedanke der Erfindung besteht darin, daß die zu schützende Speichereinrichtung in einem Prozessor mitintegriert wird und dabei einen ersten und zweiten Speicherteil mit unterschiedlichen Zugangsmöglichkeiten enthält. Die Mitintegration der Speichereinrichtung ermöglicht eine Kombination von hardware- und softwaremäßigen Schutzmaßnahmen, die bei einer separaten Speichereinrichtung nicht möglich sind. Der erste Speicherteil nimmt ein Initialisierungsprogramm auf, das auch als Boot-Programm bei der Entschlüsselung dient, und der zweite Speicherteil ein Anwendungsprogramm, beispielsweise ein Programm zur Entschlüsselung und/oder Dekodierung empfangener Daten. Derartige Daten können beispielsweise Audiodaten sein, die nach dem MP3 Standard kodiert sind, gegen einen unerlaubten Empfang mit einem geheimen oder öffentlichen Passwort zusätzlich verschlüsselt sind. Dieses Entschlüsselungsprogramm kann identisch mit dem ziemlich sicheren Entschlüsselungsprogramm im Boot-Bereich sein oder ist Teil des Anwendungsprogrammes im zweiten Speicherteil.The basic idea of the invention is that the memory device to be protected is integrated in a processor and contains a first and a second memory part with different access options. The integration of the storage device enables a combination of hardware and software protection measures that are not possible with a separate storage device. The first memory part receives an initialization program, which also serves as a boot program for decryption, and the second memory part an application program, for example a program for decrypting and / or decoding received data. Such data can be audio data, for example, which are encoded according to the MP3 standard and additionally encrypted against unauthorized reception with a secret or public password. This decryption program can be identical to the fairly secure decryption program in the boot area or is part of the application program in the second memory part.
Der erste Speicherteil ist über eine oder mehrere externe Datenschnittstellen programmier- und änderbar, nicht jedoch über den Prozessor oder eine von ihm gesteuerte Datenschnittstelle. Hierdurch kann verhindert werden, daß der Prozessor über irgend ein Programm dazu gebracht werden kann, den Inhalt des Initialisierungsprogramms, das zumindest einen Teil des Verschlusselungs-,The first memory part can be programmed and changed via one or more external data interfaces, but not via the processor or a data interface controlled by it. This can prevent the processor from being brought to the content of the initialization program via at least one program, which contains at least part of the encryption,
Entschlüsselung- oder Identifikationsprogramms enthält, auszulesen, zu verändern oder zu zerstören. Die im ersten Speicherteil vorhandene Grundfunktion reicht dann immer dazu aus, das gestörte Anwendungsprogramm im zweiten Speicherteil neu zu laden. Der zweite Speicherteil ist sowohl über die externen Datenschnittstellen als auch über den Prozessor und die von ihm gesteuerten Datenschnittstellen programmier- und änderbar.Decryption or identification program contains, read out, change or destroy. The basic function in the first memory section is then always sufficient to reload the faulty application program in the second memory section. The second memory section is both about the external data interfaces as well as programmable and changeable via the processor and the data interfaces controlled by it.
Der nicht sperrbare Zugang des Prozessors zum ersten und zweiten Speicherteil ist sowohl beim normalen Betriebsablauf als auch dann erforderlich, wenn der Anwender Programmaktualisierungen durch autorisierten Benutzer vorsieht. Derartige Programmaktualisierungen sind beispielsweise in vorgebbaren Intervallen zur Änderung des individuellen oder gruppenbezogenen Verschlüsselungsprogramms oder Passworts erforderlich, um die negativen Folgen eines zufälligen oder widerrechtlichen Bekanntwerdens der Verschlüsselung zu begrenzen. Eine Sperrung, die auf Programmaktualisierungen verzichtet, ist nach der Erfindung jedoch ebenfalls möglich, indem alle externen Datenschnittstellen, also auch die vom Prozessor gesteuerten, vom Anwender durch Setzen einer Sperrinformation gesperrt werden. Wie bereits erwähnt, hat auch in diesem Fall der Prozessor für den normalen Betriebsablauf stets Zugang zu den beiden Speicherteilen.The non-lockable access of the processor to the first and second memory part is necessary both during normal operation and when the user provides program updates by authorized users. Such program updates are required, for example, at predefinable intervals for changing the individual or group-specific encryption program or password in order to limit the negative consequences of accidental or illegal disclosure of the encryption. A lock that does not include program updates is, however, also possible according to the invention in that all external data interfaces, that is to say also those controlled by the processor, are locked by the user by setting a lock information. As already mentioned, the processor always has access to the two memory parts for normal operation.
Die Erfindung ist in der Anpassung an das jeweilige Schutzbedürfnis des Anwenders sehr flexibel und ermöglicht sowohl konsumbezogene als auch professionelle Anwendungen. Eine denkbare Konsumanwendung betrifft beispielsweise eine verschlüsselte Übertragung von Video- oder Audiodaten. Durch die Erfindung kann allein der autorisierte Lizenznehmer die Daten mittels des Prozessors zur Weiterverarbeitung im Prozessor und eigenen Wiedergabe entschlüsseln, er kann jedoch für Dritte keine Kopie der entschlüsselten Daten erstellen, weil diese an keiner extern zugänglichen Schnittstelle zur Verfügung stehen. Ähnlich ist es, wenn in einem Kraftfahrzeug der Motor über ein elektronisches Motormanagement gesteuert wird, dessen geheimes Programm gegen Kopieren oder Verändern geschützt werden soll.The invention is very flexible in adapting to the respective protection needs of the user and enables both consumer-related and professional applications. A conceivable consumer application relates, for example, to an encrypted transmission of video or audio data. With the invention, only the authorized licensee can decrypt the data by means of the processor for further processing in the processor and own playback, but he cannot make a copy of the decrypted data for third parties because they are not available at any externally accessible interface. It is similar if the engine in a motor vehicle is controlled via an electronic engine management system whose secret program is to be protected against copying or modification.
Die Prüfung der Autorisierung oder Identität erfolgt über das geschützte Verschlüsselungsprogramm, das mit dem im ersten oder zweiten Speicherteil abgelegten öffentlichen oder nichtöffentlichen Schlüsselwort und dem verschlüsselt empfangenen Programm auf bekannte Weise zusammenwirkt. Nur wenn alle Teile zusammenpassen, ist eine Entschlüsselung und damit eine sinnvolle Verwendung der empfangenen Daten oder eine Aktualisierung des gespeicherten Programmes möglich.The authorization or identity is checked via the protected encryption program, which interacts in a known manner with the public or non-public keyword stored in the first or second storage part and the program received in encrypted form. Only when all parts fit together is it possible to decrypt and thus use the data received or to update the stored program.
Der zweite und gegebenenfalls auch erste Speicherteil ist in verschiedene Speicherblöcke aufgeteilt, damit eine blockweise Änderung oder Löschung bei den Programmaktualisierungen möglich ist, um Konflikte zwischen dem neuen und alten Programm zu vermeiden. Ein erster Speicherblock im ersten oder zweiten Speicherteil enthält ein Schutzregister mit programmierbaren Freigabe- oder Sperrinformationen für jede Datenschnittstelle, um das Lesen- und/oder Schreiben des ersten und zweiten Speicherteils über diese Datenschnittstelle zu sperren oder freizugeben. Solange die Sperrinformation noch nicht aktiviert ist, ist der erste und zweite Speicherbereich über alle externe Datenschnittstellen, also auch die vom Prozessor gesteuerten, zugänglich. Dies ermöglicht beispielsweise eine Anpassung, Änderung oder Fehlerbeseitigung des Initialisierungs- oder Anwendungsprogramms beim Hersteller oder Anwender. Werden nach Abschluß dieser Änderungen die Sperrinformationen für die extern zugänglichen Datenschnittstellen vom Anwender gesetzt, können diese in der Regel durch niemand mehr aufgehoben werden ohne das vorhandene Programm zu zerstören. Der erste Speicherblock 4 mit den darin enthaltenenThe second and possibly also the first memory part is divided into different memory blocks, so that a block-wise change or deletion in the program updates is possible in order to avoid conflicts between the new and old programs. A first memory block in the first or second memory part contains a protective register with programmable release or blocking information for each data interface in order to block or release the reading and / or writing of the first and second memory parts via this data interface. As long as the blocking information is not yet activated, the first and second memory areas are accessible via all external data interfaces, that is to say also those controlled by the processor. This enables, for example, the manufacturer or user to adapt, change or correct the initialization or application program. If after the completion of these changes the blocking information for the externally accessible data interfaces is set by the user, these can generally no longer be removed by anyone without destroying the existing program. The first memory block 4 with the contained therein
Sperrinformationen ist somit sicher gegen jede Änderung gesichert. Anwender, die sich über die vorhandene Software und das gespeicherten Passwort als autorisiert zu erkennen geben, können gegebenenfalls den Inhalt des Schutzregisters ändern, also die Sperrung aufheben. Diese Möglichkeit räumt dem Anwender im Bedarfsfall eine Fehlersuche in dem eigentlich gesperren Prozessor ein.Locking information is thus securely secured against any change. Users who identify themselves as authorized via the existing software and the saved password can, if necessary, change the content of the protection register, i.e. remove the block. This option allows the user to troubleshoot the actually locked processor if necessary.
Die Abfrage des Schutzregisters erfolgt zweckmäßigerweise gleich beim Einschalten der Spannungsversorgung durch im Prozessor fest verdrahtete Abfragen, und zwar bevor das Initialisierungsprogramm andere Abfragen oder Programmierungen zuläßt. Die Festverdrahtung dieser für den Schutz so wichtigen Abfragen hat den Vorteil, daß sie durch kein Programm absichtlich oder zufällig änderbar sind. Selbstverständlich ist dabei auch sichergestellt, daß die Abfrage des Schutzregisters auch kurzzeitig beim Einschalten des Netzes oder bei dessen Unterbrechung nicht umgangen werden kann.The protection register is expediently queried as soon as the power supply is switched on by means of queries hard-wired in the processor, specifically before the initialization program permits other queries or programming. The hard wiring of these queries, which are so important for protection, has the advantage that they cannot be changed intentionally or accidentally by any program. Of course, this also ensures that the query of the protection register cannot be bypassed even briefly when the network is switched on or when it is interrupted.
Ein zweiter und ein dritter Speicherblock im ersten oder zweiten Speicherteil dienen der doppelten Speicherung des öffentlichen oder privaten Schlüsselwortes. Das Schlüsselwort, das auch alsA second and a third memory block in the first or second memory part serve the double storage of the public or private keyword. The key word, which is also called
Passwort bezeichnet wird, ist und mit dem Verschlüsselungsprogramm im ersten und/oder zweiten Speicherteil verkoppelt. Ob der Anwender einen Schutz mit einem öffentlich zugänglichen oder mit einem öffentlich nicht zugänglichen, also einem privaten oder geheimen Schlüsselwort vorzieht, ist für die Erfindung unwesentlich und hängt lediglich vom Schutzbedürfnis ab. Die Vor- und Nachteile beider Systeme werden durch die Erfindung nicht geändert, der Zugang zu dem geschützten Dateninhalt wird jedoch in beiden Fällen verhindert oder zumindest deutlich erschwert.Password is referred to, and is coupled to the encryption program in the first and / or second memory part. Whether the user prefers protection with a publicly accessible or with a publicly inaccessible, that is to say a private or secret keyword, is immaterial to the invention and only depends on the need for protection. The advantages and disadvantages of both systems are not changed by the invention, but access to the protected data content is prevented in both cases or at least made significantly more difficult.
Ein vierter, relativ großer Speicherblock im zweiten Speicherteil dient der Speicherung eines Anwendungsprogramms. Dieses Programm wird in der Regel bei einer Programmaktualisierung komplett ausgetauscht. Der Inhalt des Anwendungsprogramms ermöglicht dem Prozessor in Verbindung mit dem Passwort die Entschlüsselung und Dekodierung der empfangenen Daten. Selbstverständlich kann der Schutz gegenüber einem unerlaubten Zugriff nicht nur auf der Entschlüsselungsseite verwendet werden sondern auch auf der Verschlüsselungsseite.A fourth, relatively large memory block in the second memory part is used to store an application program. This program is usually updated when the program is updated completely replaced. The content of the application program, in conjunction with the password, enables the processor to decrypt and decode the received data. Protection against unauthorized access can of course not only be used on the decryption side but also on the encryption side.
Die Erfindung und vorteilhafte Weiterbildungen werden nun anhand der Figuren der Zeichnung näher erläutert:The invention and advantageous developments will now be explained in more detail with reference to the figures of the drawing:
Fig. 1 zeigt schematisch die Aufteilung einer im Prozessor mitintegrierte Speichereinheit, Fig. 2 zeigt schematisch ein Schutzregister mit Speicherplätzen für die Schnittstellen, Fig. 3 zeigt schematisch im Flußdiagramm einen Initialisierungsablauf,1 schematically shows the division of a memory unit integrated in the processor, FIG. 2 schematically shows a protective register with memory locations for the interfaces, FIG. 3 schematically shows an initialization process in the flowchart,
Fig. 4 zeigt schematisch im Flußdiagramm eine Programmaktualisierung undFig. 4 shows schematically in the flow chart a program update and
Fig. 5 zeigt schematisch einen Prozessor als ein Ausführungsbeispiel der Erfindung.5 schematically shows a processor as an embodiment of the invention.
Fig. 1 zeigt schematisch die Aufteilung einer im Prozessor 10 (vergl. Fig. 5) mitintegrierten Speichereinrichtung 1. Ein erster Speicherteil 2, der mit der Startadresse 0x00 beginnt, enthält ein Initialisierungsprogramm, daß auch als Boot-Programm bezeichnet wird. Dieser erste Speicherteil 2 hat für den Anwender und Hersteller nur begrenzte Zugangsmöglichkeiten für die Programmierung, nämlich nur über diejenigen Datenschnittstellen, die von der Funktion des F ~>sors abhängig sind. Während des Herstellungsprozesses ist eventuell über später nicht mehr zugάriti'.i- e Chipkontakte ein erleichterter Zugang zum ersten Speicherbereich möglich, um das Initialisierungsprogramm zu laden.1 schematically shows the division of a memory device 1 integrated in the processor 10 (see FIG. 5). A first memory part 2, which begins with the start address 0x00, contains an initialization program that is also referred to as a boot program. This first memory part 2 has only limited access options for programming for the user and manufacturer, namely only via those data interfaces which are dependent on the function of the sensor. During the manufacturing process, easier access to the first memory area may be possible via chip contacts that are no longer available later in order to load the initialization program.
Das Initialisierungsprogramm wird beim Einschalten des Prozessors aktiviert. Es enthält auch Programme, die Authentizität oder Identität des Anwenders oder Benutzers prüfen und auch das Lesen und Schreiben der vom Prozessor gesteuerten Datenschnittstellen unterstützen. DasThe initialization program is activated when the processor is switched on. It also contains programs that check the authenticity or identity of the user or user and also support reading and writing of the data interfaces controlled by the processor. The
Initialisierungsprogramm enthält auch mindestens diejenigen Teile des Entschlüsselungsprogramms, die erforderlich sind, um bei einem leeren oder gestörten zweiten Speicherteil dessen Neuprogrammierung mit Unterstützung des Prozessors durchführen zu können, beispielsweise durch Zuführung des verschlüsselten neuen Programms über eine vom Prozessor gesteuerte Datenschnittstelle.Initialization program also contains at least those parts of the decryption program that are required in order to be able to reprogram an empty or faulty second memory part with the support of the processor, for example by feeding the encrypted new program via a data interface controlled by the processor.
An den ersten Speicherteil 2 schließt sich der zweite Speicherteil 3 (=User Area) mit dem Anwendungsprogramm an, dessen Adressen blockweise aufgeteilt sind und mit der Anwender- Startadresse adr-U beginnen. Der erste Speicherblock 4 enthält ein Schutzregister PCR (=Protection Control Register) mit den Freigabe- oder Sperrinformationen für die einzelnen Datenschnittstellen. Zusätzlicher Platz für weitere Daten ist im ersten Speicherblock 4 vorhanden.The first memory part 2 is followed by the second memory part 3 (= user area) with the application program, the addresses of which are divided in blocks and begin with the user start address adr-U. The first memory block 4 contains a protection register PCR (= Protection Control Register) with the release or lock information for the individual data interfaces. Additional space for further data is available in the first memory block 4.
An den ersten Speicherblock 4 schließen sich der zweite und dritte Speicherblock 5 bzw. 6 an, die im wesentlichen das dem Benutzer oder der Benutzergruppe zugeordnete Passwort „Key 1" bzw. „Key 1*" enthalten. Beide Passworte sind zu einander identisch und müssen in getrennt löschbaren Speicherbereichen vorhanden sein, damit bei einer Neuprogrammierung zumindest immer ein gültiges Passwort vorhanden ist. Ohne dieses Passwort ist eine Entschlüsselung der empfangenen Daten nicht möglich. Damit bei einer Neuprogrammierung das vorhandene Passwort durch ein neues Passwort ersetzt werden kann, wird das vorhandene Passwort zu verschiedenenThe second and third memory blocks 5 and 6, which essentially contain the password “key 1” or “key 1 *” assigned to the user or the user group, are connected to the first memory block 4. Both passwords are identical to each other and must be available in separately erasable memory areas so that at least a valid password is always available when reprogramming. Without this password, the received data cannot be decrypted. So that the existing password can be replaced by a new password when reprogramming, the existing password becomes different
Programmabschnitten im zweiten und dritten Speicherblock 5 bzw. 6 gegen das neue Passwort ausgetauscht. Der zweite und dritte Speicherblock 5, 6 sind groß genug, damit sie gegebenenfalls weitere Passworte für andere Verschlüsselungsprogramme aufnehmen können.Program sections in the second and third memory blocks 5 and 6 exchanged for the new password. The second and third memory blocks 5, 6 are large enough so that they can, if necessary, include further passwords for other encryption programs.
Das eigentliche Anwendungsprogramm befindet sich in einem vierten Speicherblock 7. DieserThe actual application program is located in a fourth memory block 7. This
Speicherblock ist groß genug, damit er aktuelle und künftige Anwenderprogramme aufnehmen kann. Die unterschiedliche Zugangsregelung oder letztendlich die gewünschte Sperrung des ersten und zweiten Speicherteils 2 bzw. 3 wird mittels der Blockadressen hardwaremäßig gesteuert. So wird beispielsweise das Programmiersignal des Prozessors so mit dem Bereichssignal für den ersten Speicherteil 2 logisch verknüpft, so daß das Global- oder Blockspeichersignal für dieMemory block is large enough to hold current and future user programs. The different access control or ultimately the desired blocking of the first and second memory parts 2 and 3 is controlled by hardware using the block addresses. For example, the programming signal of the processor is logically linked to the area signal for the first memory part 2, so that the global or block memory signal for the
Speichereinrichtung 1 gar nicht gebildet wird. Wird der erste Speicherteil 2 jedoch in Verbindung mit einer vom Prozessor unabhängigen Datenschnittstelle angesprochen, dann wird das Global- oder Blockspeichersignal nicht unterdrückt, es sei denn, das zugehörige Sperrsignal im Register PCR ist gesetzt. Auf ähnliche Weise erfolgt durch Verknüpfung der Blockadressen oder Adressenbereichssignale mit Signalen für das Lesen oder Schreiben der Speichereinrichtung 1 und der zugehörigen Datenschnittstelle die Steuerung der Blöcke 4 bis 7 im zweiten Speicherteil 3.Storage device 1 is not formed at all. However, if the first memory part 2 is addressed in connection with a data interface that is independent of the processor, the global or block memory signal is not suppressed, unless the associated blocking signal is set in the PCR register. Similarly, by linking the block addresses or address area signals with signals for reading or writing the memory device 1 and the associated data interface, the blocks 4 to 7 in the second memory part 3 are controlled.
Im Ausführungsbeispiel von Fig. 1 sind die Speicherblöcke 4, 5, 6 dem zweiten Speicherteil 3 zugeordnet. Dadurch wird die größte Flexibilität der Schutzeinrichtung erreicht, weil eine Änderung der Zugangsberechtigung und des Passwortes über eine Neuprogrammierung (=update) möglich ist. Befinden sich das Schutzregister PCR oder die Register 5, 6 für das Passwort Key 1, Key 1* jedoch im ersten Speicherteil 2, dann ist eine Neuprogrammierung über den Prozessor nicht möglich und die Zugangsberechtigung und das Passwort ist auf Dauer durch die vorhandene Programmierung festgelegt. Der Ausleseschutz gegenüber einem unberechtigten Zugang ibleibt gewahrt., denn die elektronische Sperrung der extern zugänglichen Datenschnittstellen erlaubt nicht, daß Daten auslesen werden.In the exemplary embodiment in FIG. 1, the memory blocks 4, 5, 6 are assigned to the second memory part 3. This provides the greatest flexibility for the protective device because it is possible to change the access authorization and password via reprogramming (= update). However, if the protective register PCR or registers 5, 6 for the password Key 1, Key 1 * are in the first memory section 2, then reprogramming via the processor is not possible and access authorization and the password are permanently determined by the existing programming. Protection against unauthorized access remains unaffected, because the electronic blocking of the externally accessible data interfaces does not allow data to be read out.
Fig. 2 zeigt schematisch das Schutzregister PCR im ersten Speicherblock 4. Für jede externe Datenschnittstelle enthält das Schutzregister einen Speicherplatz zur Aufnahme eines „1"- oder „0"- Wertes. Dabei bedeutet der Inhalt „1", daß über die zugehörige Datenschnittstelle ein Lesen oder Schreiben der Speichereinrichtung 1 möglich ist. Diese Freigabe setzt selbstverständlich die vorgegebenen Zugangsmöglichkeiten nicht außer Kraft, beispielsweise daß der erste Speicherteil 2 nie über vom Prozessor steuerbare Datenschnittstellen zugänglich ist. Die Wahl von „1" hängt von der jeweiligen Technologie der Speichereinrichtung 1 ab. Bei Flash-Speichern befinden sich alle Zellen nach der Löschung im „1 "-Zustand, somit muß für diesen Speichertyp der logische Zustand „1" als Freigabesignal gewählt werden. Entsprechend stellt „0" dann das Sperrsignal für den Lese-, Schreib- und Löschvorgang dar. Bei Betriebsbeginn setzt jede Stelle des Registerinhaltes beim Netzeinschalten einen entsprechenden „1"- oder „0" -Zustand in einer Zustandsmaschine (=state machine) des Prozessors. Oder das PCR-Register dient über feste Ausleseleitungen bereits als ein derartiges Zustandsregister. Der Inhalt eines derartigen Zustandsregisters darf während des Betriebes entweder nur durch eine Änderung des Schutzregisterinhaltes oder durch das Netzabschalten geändert werden. Eine Änderung des Zustandsregisterinhaltes im eingeschalteten Zustand ist in Abhängigkeit vom PCR-Register nur vom Zustand „1" auf den Zustand „0" möglich. Die Änderung in der anderen Richtung ist nicht möglich, weil das Sperrsignal „0" den Zugang zum Schutzregister PCR über die extern zugängliche Datenschnittstelle sperrt.FIG. 2 schematically shows the protective register PCR in the first memory block 4. For each external data interface, the protective register contains a memory location for holding a "1" or "0" value. The content "1" means that reading or writing of the memory device 1 is possible via the associated data interface. Of course, this release does not override the specified access options, for example that the first memory part 2 is never accessible via data interfaces controllable by the processor The choice of "1" depends on the respective technology of the memory device 1. In flash memories, all cells are in the "1" state after deletion, so the logical state "1" must be selected as the enable signal for this type of memory. Accordingly, "0" then represents the blocking signal for the read, write and erase process. At the start of operation, each position of the register content sets a corresponding "1" or "0" state in a state machine of the processor when the power is switched on Or the PCR register already serves as such a status register via fixed readout lines. The content of such a status register may only be changed during operation either by changing the protective register content or by switching off the network. A change in the status register content when switched on depends on PCR registers only possible from state "1" to state "0". Changes in the other direction are not possible because the blocking signal "0" blocks access to the protective register PCR via the externally accessible data interface.
Fig. 3 zeigt im Flußdiagramm die ablaufenden Verfahrensschritte beim Einschalten der Versorgungsspannung. Das Einschalten der Versorgungsspannung (= power on) löst sofort eine Abfrage der einzelnen Speicheφlätze im Schutzregister PCR aus. Bei dem angenommenen Beispiel eines mitintegrierten Flash-Speichers entspricht der logische Zustand „1" der Freigabe (= enable) und der Zustand „0" dem Sperren (= disable). In Fig. 3 zeigt hierzu als Beispiele drei extern zugänglichen Datenschnittstellen: eine JT AG-Schnittstelle, eine parallele Schnittstelle und eine TEST-Schnittstelle. Ist die entsprechende Schnittstelle freigegeben, was durch einen jeweiligen Funktionskasten symbolisiert ist, können über diese Schnittstelle Daten der Speichereinrichtung 1 ausgelesen oder geändert werden. Das Ende dieses Lesens oder Schreibens wird dadurch gebildet, daß der Sprung auf die Startadresse 0x00 im Boot-Bereich ausgelöst wird. Wird indessen nach dem Einschalten aus dem PCR-Register eine Sperrinformation ausgelesen, dann erfolgt sofort der Sprung auf die Boot-Startadresse 0x00 und ein Lesen oder Schreiben irgendwelcher Teile der Speichereinrichtung 1 über die Schnittstellen ist nicht möglich. Die Sperrinformation des PCR- Registers kann auf diese Weise nicht unterlaufen werden, weil diese hardwaregesteuerte Abfrage als erster Schritt sofort beim Einschalten der Versorgungsspannung während der ersten Systemtakte erfolgt. Der Start des Programms ab der Boot-Speicheradresse 0x00 stellt demgegenüber einen reinen Softwarebetrieb dar.3 shows in the flowchart the process steps taking place when the supply voltage is switched on. Switching on the supply voltage (= power on) immediately triggers a query of the individual memory locations in the protective register PCR. In the assumed example of an integrated flash memory, the logical state "1" corresponds to the enable (= enable) and the state "0" corresponds to the disable (= disable). 3 shows three externally accessible data interfaces as examples: a JT AG interface, a parallel interface and a TEST interface. If the corresponding interface is enabled, which is symbolized by a respective function box, data of the memory device 1 can be read out or changed via this interface. The end of this reading or writing is formed by triggering the jump to the start address 0x00 in the boot area. If, however, lock information is read from the PCR register after switching on, the jump to the boot start address 0x00 and a reading or writing of any part of the Storage device 1 via the interfaces is not possible. The lock information of the PCR register cannot be undercut in this way, because this hardware-controlled query takes place as the first step immediately when the supply voltage is switched on during the first system clock cycles. In contrast, starting the program from the boot memory address 0x00 represents pure software operation.
Der Programmstart von der Boot-Startadresse 0x00 löst als nächsten Schritt eine Abfrage aus, ob ein neues Anwendungsprogramm - z.B. ein „update" - geladen werden soll. Dieser Eingabewunsch kann beispielsweise durch manuelle Betätigung einer Eingabetaste (=Update Key) signalisiert werden. Wenn dies gewünscht wird (=Key set), wird ein Programmiermode ausgelöst, der im Flußdiagramm von Fig. 4 näher erläutert wird.Starting the program from the boot start address 0x00 triggers a query as to whether a new application program - e.g. an “update” should be loaded. This input request can be signaled, for example, by manually actuating an input key (= update key). If this is desired (= key set), a programming mode is triggered, which is explained in more detail in the flow chart of FIG. 4 becomes.
Wird keine Programmaktualisierung gewünscht, dann findet als weiterer Schritt eine Prüfung statt, ob sich überhaupt ein vollständiges und gültiges (=valid) Anwendungsprogramm (=USER Program) im zweiten Speicherteil 3 befindet. Ist das Prüfungsergebnis negativ, weil dasIf no program update is desired, a check is then carried out as a further step as to whether a complete and valid (= valid) application program (= USER program) is located in the second memory part 3. Is the test result negative because that
Anwendungsprogramm nicht vollständig ist, wird ein Wartezustand ausgelöst und die laufenden Funktionen werden unterbrochen. Ist das Anwendungsprogramm jedoch vollständig und gültig, wird ein Sprung zur Programmstartadresse adr-U des Anwendungsprogrammes ausgelöst. Der erste Speicherteil 2 mit dem Initialisierungsprogramm (=Boot-Programm) wird damit verlassen. Der Prozessor 10 (vergl. Fig. 5) ist nun entsprechend dem vorhandenen Anwendungsprogramm bereit, den Inhalt der empfangenen Daten zu entschlüsseln, zu dekodieren und intern weiterzuverarbeiten. Wie bereits erwähnt, ist eine Weitergabe der entschlüsselten Daten über extern zugängliche Schnittstellen jedoch nicht möglich.Application program is not complete, a wait state is triggered and the running functions are interrupted. However, if the application program is complete and valid, a jump to the program start address adr-U of the application program is triggered. The first memory part 2 with the initialization program (= boot program) is thus left. The processor 10 (cf. FIG. 5) is now ready, according to the existing application program, to decrypt, decode and further process the content of the received data internally. As already mentioned, the decrypted data cannot be passed on via externally accessible interfaces.
Eine weitere Sicherung gegen ein ungewolltes Löschen der gesamten Speichereinrichtung 1 ist durch Einfügen eines programmierbaren Schutzbits (=Set Protection Bit) im „nein" -Zweig nach der Eingabetaste-Abfrage (=Update Key) möglich. Zweckmäßigerweise erfolgt die Einfügung gleich hinter der Eingabetaste-Abfrage, weil sich dann das Anwendungsprogramm noch im Anfangsbereich befindet. Dieses Schutzbit kann bei der Programmierung des Anwendungsprogramms gesetzt werden und verhindert dann über Schaltungsmaßnahmen, daß durch irgend eine zufällige Störung in einem gerade ablaufenden Programm die Speichereinrichtung 1 ganz oder teilweise gelöscht wird. Dieses Schutzbit kann nur dadurch umgangen werden, daß das Gerät ausgeschaltet wird und mittels der Eingabetaste die Eingabe eines neuen Anwendungsprogrammes signalisiert wird. Ob dabei das Schutzbit gesetzt wird oder nicht, ist in das Belieben des Anwenders gestellt, der das neue Anwendungsprogramm erstellt und zur Verfügung stellt.A further safeguard against unintentional deletion of the entire memory device 1 is possible by inserting a programmable protection bit (= set protection bit) in the “no” branch after the input key query (= update key). This protection bit can be set when the application program is being programmed and then prevents, by means of circuit measures, that the memory device 1 is wholly or partly deleted by any accidental disturbance in a program that is currently running can only be avoided if the device is switched off and the input of a new application program is signaled by means of the enter key Protection bit is set or not, is at the discretion of the user who creates and makes the new application program available.
Fig. 4 zeigt im Flußdiagramm den Ablauf einer Neuprogrammierung (=update) des Anwendungsprogrammes, die durch den Programmiermode ausgelöst wird. Zunächst erfolgt eine Identifikationsprüfung. Wenn diese Prüfung negativ ist, dann wird der Programmiermode sofort unterbrochen und ein Wartezustand eingeleitet und angezeigt. War die Identifikationsprüfung erfolgreich, dann wird als nächster Schritt der zweite Schaltungsblock 4 mit dem Schlüsselwort „Key 1" gelöscht. Danach erfolgt eine Abfrage, ob das vorhandene Schutzrechtregister PCR eine Sperrinformation (= „0") enthält und ob der neue Inhalt auch eine Sperrinformation ist. Wenn beides nicht erfüllt ist, wird das PCR-Register gelöscht. Diese auf den ersten Blick etwas seltsame Abfrage hat folgenden Zweck. Zunächst werden nämlich die Fälle festgestellt, in denen der Inhalt des Schutzregisters PCR geändert werden muß oder der Freigabezustand erhalten bleiben soll. In diesen Fällen kann zunächst eine Löschung der PCR-Inhaltes erfolgen, bevor der Inhalt des neuen Programms geladen wird. Ergibt diese Prüfung jedoch, daß der bisherige Inhalt des Schutzregisters eine Sperrinformation war und das neu zu ladenden Programm ebenfalls eine Sperrinformation enthält, dann unterbleibt die Löschung des Schutzregisters PCR. Dadurch wird sicher gestellt, daß die im Schutzregister enthaltene Sperrinformation zu keinem Zeitpunkt während der Neuprogrammierung, also auch nicht kurzzeitig unterbrochen wird. Nach dem das Schutzregister PCR seinen neuen Inhalt hat, kann das weitere Anwendungsprogramm in den vierten4 shows in the flowchart the sequence of reprogramming (= update) of the application program, which is triggered by the programming mode. First, an identification check is carried out. If this test is negative, the programming mode is interrupted immediately and a waiting state is initiated and displayed. If the identification check was successful, the next step is to delete the second circuit block 4 with the key word "Key 1". Then a query is made as to whether the existing property right register PCR contains blocking information (= "0") and whether the new content also contains blocking information is. If neither is fulfilled, the PCR register is deleted. This query, which at first glance seems a little strange, has the following purpose. First of all, the cases are determined in which the content of the protective register PCR has to be changed or the release status is to be maintained. In these cases, the PCR content can first be deleted before the content of the new program is loaded. However, if this check reveals that the previous content of the protection register was lock information and that the program to be reloaded also contains lock information, then the protection register PCR is not deleted. This ensures that the blocking information contained in the protection register is never interrupted during reprogramming, and therefore not briefly. After the protective register PCR has its new content, the further application program can be in the fourth
Schaltungsblock 7 geladen werden. Dem Laden geht dabei zweckmäßigerweise eine Löschung des alten Anwendungsprogramms voraus.Circuit block 7 are loaded. The loading is expediently preceded by a deletion of the old application program.
Es wird daraufhingewiesen, daß während der ganzen Programmierung des Anwendungsprogramms das Passwort „Key 1*" im dritten Speicherblock 6 gelöscht war. Die Entschlüsselung desIt is pointed out that the password "Key 1 *" was deleted in the third memory block 6 during the entire programming of the application program. The decryption of the
Programms erfolgte mittels des im zweiten Speicherblock 5 vorhandenen Passwortes „Key 1". Nachdem das neue Programm im vierten Speicherblock 7 geladen ist, wird das neue Passwort „Key 1*" vom empfangenen Programm in den dritten Speicherblock 6 geschrieben. Als letzter Schritt der Neuprogrammierung wird das alte Passwort „Key 1" im zweiten Speicherblock 5 gelöscht und durch das neue Passwort ersetzt. Damit ist die Neuprogrammierung abgeschlossen.The program was carried out using the password “Key 1” present in the second memory block 5. After the new program is loaded in the fourth memory block 7, the new password “Key 1 *” is written into the third memory block 6 by the received program. As the last step of the reprogramming, the old password "Key 1" in the second memory block 5 is deleted and replaced by the new password. The reprogramming is thus completed.
Aus dem Flußdiagramm geht hervor, daß die Neuprogrammierung mit der Löschung des Passwortes im dritten Speicherblock 6 beginnt und mit dem Löschen und Schreiben des neuen Passwortes im zweiten Speicherblock 5 endet. Der Zustand des dritten und zweiten Speicherblockes 6 bzw. 5 läßt somit eine Aussage zu, ob die Programmierung des Anwendungsprogrammes vollständig ist oder ob das Programm vor der Fertigstellung abgebrochen wurde. Liegt nämlich ein unvollständiges Anwendungsprogramm vor, dann zeigt ein einfacher Identitätsvergleich der Inhalte des zweiten und dritten Speicherblocks 5, 6, ob das Anwendungsprogramm vollständig und damit gültig ist. Ist das Anwendungsprogramm ungültig, dann verfällt der Prozessor entsprechend Fig. 3 in einen Wartemodus, der nur dadurch beendet werden kann, daß ein neues Programm von der Anwenderstartadresse adr-U aus gestartet wird.The flowchart shows that the reprogramming begins with the deletion of the password in the third memory block 6 and ends with the deletion and writing of the new password in the second memory block 5. The state of the third and second memory blocks 6 and 5, respectively thus a statement as to whether the programming of the application program is complete or whether the program was terminated before completion. If an incomplete application program is present, then a simple identity comparison of the contents of the second and third memory blocks 5, 6 shows whether the application program is complete and thus valid. If the application program is invalid, the processor falls into a wait mode according to FIG. 3, which can only be ended by starting a new program from the user start address adr-U.
In den Flußdiagrammen von Fig. 3 und Fig. 4 ist eine Globallöschung des gesamten Inhaltes der Speichereinrichtung 1 nicht dargestellt. Sie ist beispielsweise durch eine vorgegebene Konfiguration von Pegeln an vorgegebenen Anschlüssen des Prozessors 10 auslösbar. Dieser Zustand darf auch im ungünstigsten Betriebsfall des Prozessors nie auftreten. Zweckmäßigerweise ist er daher die Globallöschung an einen völlig irregulären Betriebszustand geknüpft. Die Globallöschung hat den Sinn, unter bestimmten Bedingungen die Sperrung durch das Schutzregister PCR aufzuheben, ohne daß dabei irgendwelche geschützte Daten aus der Speichereinrichtung ausgelesen werden können. Denn durch die Löschung sind diese Daten verschwunden. Eine Neuprogrammierung der gesamte Speichereinrichtung 1 ist nun möglich. Die Programmierung ist etwas beschwerlich, weil der erste Speicherteil nach wie vor nicht über vom Prozessor gesteuerte Datenschnittstellen geladen werden kann, sondern nur über die vom Prozessor unabhängigen Schnittstellen. Durch die Globallöschung ist es dem Hersteller oder Anwender möglich, versehentlich mit einem fehlerhaften oder gar falschen Programm geladene Prozessoren nach ihrer Sperrung doch noch zu verwenden. Eine Information über die Speicherinhalte ist Ditten, sofern sie Kenntnis über die Globallöschung haben, nicht möglich. Die Schutzfunktion bleibt also voll gewahrt.A global deletion of the entire contents of the storage device 1 is not shown in the flowcharts of FIGS. 3 and 4. It can be triggered, for example, by a predefined configuration of levels at predefined connections of the processor 10. This condition must never occur even in the worst case of the processor. It is therefore expedient for the global deletion to be linked to a completely irregular operating state. The global erasure has the purpose, under certain conditions, of unlocking the protective register PCR without any protected data being able to be read from the memory device. Because of the deletion, this data has disappeared. Reprogramming of the entire memory device 1 is now possible. Programming is a bit difficult because the first memory section can still not be loaded via data interfaces controlled by the processor, but only via the interfaces independent of the processor. The global deletion enables the manufacturer or user to still use processors loaded with a faulty or incorrect program after they have been blocked. Information about the memory contents is not possible for Ditten, provided that they are aware of the global deletion. The protective function is therefore fully preserved.
Fig. 5 zeigt schematisch als Blockschaltbild ein Ausführungsbeispiel der Erfindung mit den für die Schutzfunktion wichtigen Funktionseinheiten. Ein Prozessor 10 enthält einen Prozessorkern 11, dessen Ein- und Ausgänge mit einem internen Datenbus 12 und einem internen Adreßbus 13 verbunden sind. Da diese beiden Busse 12, 13 nicht nach außen geführt sind, können sie auch als schnelle Parallelbusse mit beispielsweise je 32 Leitungen ausgeführt sein. Eventuell gibt es daneben intern auch weniger effektive Busverbindungen, die einzelnen Funktionseinheiten des Prozessors miteinander verbinden. Die Taktung des gesamten Prozessors 10 erfolgt mit einem Systemtakt cl, der in einem mitintegrierten Taktgenerator 14 erzeugt wird. Die im Prozessorkern 11 zu verarbeitenden Daten und Adressen kommen entweder über einen Datenbus 12 oder einen Adreßbus 13 aus einem statischen Schreib-Lese-Speicher (= SRAM), einem Flash-Speicher 1 oder einer Datenschnittstelle 16, 17, 18. Es ist auch möglich, daß die Daten und Adressen direkt von einer Datenschnittstelle 16 dem Prozessorkern zugeführt sind. Mit dem Daten- und Adreßbus 12 bzw. 13 sind im Ausführungsbeispiel von Fig. 5 folgende extern zugänglichen Datenschnittstellen verbunden: ein JTAG-Interface 16, ein USB-Interface 17 und ein Parallelinterface 18. Die USB-Datenschnittstelle 17 arbeitet mit dem Prozessorkern 1 1 über eine entsprechende Programmsteuerung zusammen. Die vom Prozessorkern 11 unabhängigen Schnittstellen JTAG 16 und die Parallelschnittstelle 18 verfügen über mehr oder weniger komfortable Daten- und Adreßeingänge.5 shows schematically as a block diagram an embodiment of the invention with the functional units important for the protective function. A processor 10 contains a processor core 11, the inputs and outputs of which are connected to an internal data bus 12 and an internal address bus 13. Since these two buses 12, 13 are not routed to the outside, they can also be designed as fast parallel buses with, for example, 32 lines each. There may also be less effective bus connections internally that connect the individual functional units of the processor. The entire processor 10 is clocked with a system clock cl, which is generated in an integrated clock generator 14. The data and addresses to be processed in the processor core 11 come either via a data bus 12 or an address bus 13 from a static random access memory (= SRAM), a flash memory 1 or a data interface 16, 17, 18. It is also possible that the data and addresses are fed directly from a data interface 16 to the processor core. 5, the following externally accessible data interfaces are connected to the data and address bus 12 and 13: a JTAG interface 16, a USB interface 17 and a parallel interface 18. The USB data interface 17 works with the processor core 11 via an appropriate program control. The interfaces JTAG 16 and the parallel interface 18, which are independent of the processor core 11, have more or less convenient data and address inputs.
Zur Bildung von Speicherbereichsignalen adr-i werden aus den Einzeladressen Speicherbereichsignale adr-i mittels eines Adressengenerators 19 gebildet. Diese Adressenbereichssignale werden für jede Datenschnittstelle 16, 17, 18 in einer zugehörigen Verknüpfungseinrichtung 20, 21, 22 mit dem zugehörigen Sperr- oder Freigabesignal aus dem PCR- Register verknüpft und bilden ein zugehöriges Steuersignal 25, 26, 27 das die jeweilige Schnittstelle 16, 17, 18 sperrt oder freigibt. To form memory area signals adr-i, memory area signals adr-i are formed from the individual addresses by means of an address generator 19. These address area signals are linked for each data interface 16, 17, 18 in an associated link device 20, 21, 22 with the associated lock or release signal from the PCR register and form an associated control signal 25, 26, 27 that the respective interface 16, 17 , 18 blocks or releases.

Claims

Patentansprüche claims
1. Speichereinrichtung (1) für einen Prozessor (10), die zusammen mit diesem monolithisch integriert ist und einen ersten Speicherteil (2), z.B. für ein Initialisierungs- und/oder Boot-1. Storage device (1) for a processor (10), which is monolithically integrated with this and a first storage part (2), e.g. for an initialization and / or boot
Programm, und einen zweiten Speicherteil (3), z.B. für ein Anwendungsprogramm, enthält,Program, and a second memory part (3), e.g. for an application program that contains
der erste Speicherteil (2) ist über eine erste Gruppe von Datenschnittstellen (16, 18) und der zweite Speicherteil (3) über eine zweite Gruppe von Datenschnittstellen (16, 17, 18) schreib- und/oder lesbar,the first memory part (2) can be written and / or read via a first group of data interfaces (16, 18) and the second memory part (3) via a second group of data interfaces (16, 17, 18),
- der erste und/oder zweite Speicherteil (2 bzw. 3) enthalten blockweise adressierbare Speicherblöcke (4, 5, 6, 7),- The first and / or second memory part (2 or 3) contain block-by-block addressable memory blocks (4, 5, 6, 7),
- ein erster Speicherblock (4) enthält ein Schutzregister (PCR) mit programmierbaren Freigabe- und/oder Sperrinformationen für die erste und zweite Gruppe von Datenschnittstellen (16, 18; 16, 17, 18),a first memory block (4) contains a protective register (PCR) with programmable release and / or lock information for the first and second group of data interfaces (16, 18; 16, 17, 18),
- die Abfrage des Schutzregisters (PCR) erfolgt, bevor das Initialisierungsprogramm Abfragen oder Programmierungen zuläßt.- The protection register (PCR) is queried before the initialization program permits queries or programming.
2. Speichereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Gruppe von Datenschnittstellen vom Prozessor (10) unabhängigen Datenschnittstellen (16, 18) umfaßt.2. Storage device according to claim 1, characterized in that the first group of data interfaces from the processor (10) comprises independent data interfaces (16, 18).
3. Speichereinrichtung (1) nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Gruppe von Datenschnittstellen sowohl die vom Prozessor (10) unabhängigen Datenschnittstellen (16, 18) als auch vom Prozessor (10) gesteuerten Datenschnittstellen (17) umfaßt.3. Storage device (1) according to claim 1, characterized in that the second group of data interfaces comprises both the data interfaces (16, 18) and the processor (10) controlled data interfaces (17) which are independent of the processor (10).
4. Speichereinrichtung (1) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß ein zweiter und ein dritter Speicherblock (5 bzw. 6) der Speicherung eines Passwortes (Key 1, Key4. Storage device (1) according to one of claims 1 to 3, characterized in that a second and a third memory block (5 and 6) of storing a password (key 1, key
1 *) dienen, das mit einem Ent- und/oder Verschlüsselungsprogramm im ersten und/oder zweiten Speicherteil (2 bzw. 3) verkoppelt ist. 1 *) serve, which is coupled with a decryption and / or encryption program in the first and / or second memory part (2 or 3).
5. Speichereinrichtung (1) nach Anspruch 4, dadurch gekennzeichnet, daß nur für einen autorisierten Zugang, der mittels des Passwortes (Key 1 , Key 1 *) und des im ersten und/oder zweiten Speicherteil (2 bzw. 3) enthaltenen Initialisierungs-, Ent- und/oder Verschlüsselungsprogramms identifiziert ist, ein Schreiben und/oder Lesen des zweiten Speicherteils (3), z.B. im Rahmen einer Programmaktualisierung, über die zweite Gruppe von Datenschnittstellen (16, 17, 18) möglich ist, sofern keine zugehörigen Sperrinformationen im Schutzregister (PCR) gesetzt sind.5. Storage device (1) according to claim 4, characterized in that only for an authorized access, which by means of the password (key 1, key 1 *) and the initialization contained in the first and / or second memory part (2 or 3) , Decryption and / or encryption program is identified, a writing and / or reading of the second memory part (3), for example as part of a program update, via the second group of data interfaces (16, 17, 18) is possible, provided that no associated blocking information is set in the protection register (PCR).
6. Speichereinrichtung (1) nach Anspruch 5, dadurch gekennzeichnet, daß das Schreiben und/oder Lesen des ersten Speicherteils (2) bei einer im Schutzregister (PCR) gesetzten Sperrinformation auch bei einem autorisierten Zugang über die erste Gruppe von Datenschnittstellen (16, 18) nicht möglich ist.6. Storage device (1) according to claim 5, characterized in that the writing and / or reading of the first storage part (2) with a blocking information set in the protection register (PCR) even with an authorized access via the first group of data interfaces (16, 18th ) not possible.
7. Speichereinrichtung (1) nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß bei einem Programm- oder Versorgungsspannungsabbruch, bei dem mindestens ein Teil des im zweiten Speicherteil (3) vorhandenen Anwendungsprogramms geändert oder gelöscht ist, der Prozessor (10) in einen Wartezustand übergeht.7. Memory device (1) according to one of claims 1 to 6, characterized in that in the event of a program or supply voltage interruption in which at least part of the application program in the second memory part (3) is changed or deleted, the processor (10) in passes a wait state.
8. Speichereinrichtung (1) nach Anspruch 7, dadurch gekennzeichnet, daß der Wartezustand durch eine Startinformation beendet wird, die eine von einer Startadresse (adr-U) ausgehende Neuprogrammierung des Anwendungsprogramms (USER-Program) auslöst.8. Storage device (1) according to claim 7, characterized in that the waiting state is ended by start information which triggers a reprogramming of the application program (USER program) starting from a start address (adr-U).
9. Speichereinrichtung (1) nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß mittels einer Globallöschinformation der erste und zweite Speicherbereich (2, 3) löschbar sind.9. Memory device (1) according to one of claims 1 to 8, characterized in that the first and second memory areas (2, 3) can be erased by means of global erasure information.
10. Speichereinrichtung ( 1 ) nach Anspruch 9, dadurch gekennzeichnet, daß die Globallöschinformation mittels einer vorgegebenen Konfiguration von Pegeln an vorgegebenen Anschlüssen des Prozessors (10) auslösbar ist.10. Storage device (1) according to claim 9, characterized in that the global erase information can be triggered by means of a predetermined configuration of levels at predetermined connections of the processor (10).
11. Speichereinrichtung ( 1 ) nach Anspruch 10, dadurch gekennzeichnet, daß die vorgegebenen Anschlüsse im eingebauten Betriebszustand des Prozessors (10), insbesondere über eine Einbauplatine, nicht zugänglich sind. 11. Memory device (1) according to claim 10, characterized in that the predetermined connections in the installed operating state of the processor (10), in particular via a built-in board, are not accessible.
12. Speichereinrichtung (1) nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß bei einer Programmaktualisierung die im Schutzregister (PCR) bereits vorhandenen Sperrinformationen zu keinem Zeitintervall gelöscht werden, sondern unverändert im Schutzregister verbleiben, wenn das neue Programm ebenfalls für die jeweilige Datenschnittstelle12. Storage device (1) according to one of claims 1 to 11, characterized in that when the program is updated, the blocking information already present in the protection register (PCR) is not deleted at any time interval, but remains unchanged in the protection register when the new program is likewise for the respective one data interface
(16, 17, 18) eine Sperrinformation aufweist.(16, 17, 18) has blocking information.
13. Speichereinrichtung (1) nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß die von der Abfrage des Schutzregisters im Initialisierungsprogramm ausgelöste Sperrungen der zugehörigen Datenschnittstellen (16, 17, 18) über interne Steuersignale (25, 26, 27) erfolgen, die weder direkt noch indirekt noch durch ein Programm aufhebbar sind.13. Storage device (1) according to one of claims 1 to 12, characterized in that the blocking of the associated data interfaces (16, 17, 18) triggered by the query of the protective register in the initialization program takes place via internal control signals (25, 26, 27), that cannot be canceled directly, indirectly or through a program.
14. Speichereinrichtung (1) nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß ein programmierbares Schutzbit (Set-Protection-Bit) in das Anwendungsprogramm eingefügt ist, das über Schaltungsmaßnahmen ein zufälliges Löschen der Speichereinrichtung (1) verhindert. 14. Memory device (1) according to one of claims 1 to 13, characterized in that a programmable protection bit (set protection bit) is inserted into the application program, which prevents circuitry from accidentally deleting the memory device (1).
PCT/EP2002/007548 2001-07-10 2002-07-06 Data-protected memory device for a processor WO2003007132A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020037003540A KR100906175B1 (en) 2001-07-10 2002-07-06 Data-protected memory device for a processor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01116594.1 2001-07-10
EP01116594A EP1276033B1 (en) 2001-07-10 2001-07-10 Memory device with data protection in a processor

Publications (1)

Publication Number Publication Date
WO2003007132A1 true WO2003007132A1 (en) 2003-01-23

Family

ID=8177986

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/007548 WO2003007132A1 (en) 2001-07-10 2002-07-06 Data-protected memory device for a processor

Country Status (6)

Country Link
US (1) US7761717B2 (en)
EP (1) EP1276033B1 (en)
JP (1) JP2003044363A (en)
KR (1) KR100906175B1 (en)
CN (1) CN1215390C (en)
WO (1) WO2003007132A1 (en)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUP0203134A2 (en) * 2000-02-21 2003-01-28 Trek 2000 Int Ltd A portable data storage device
US20040015709A1 (en) * 2002-07-18 2004-01-22 Bei-Chuan Chen Software delivery device and method for providing software copy protection
AU2003278491A1 (en) * 2002-11-27 2004-06-18 Koninklijke Philips Electronics N.V. Chip integrated protection means.
US20040192373A1 (en) * 2002-12-05 2004-09-30 Galetti Ralph R. Method and circuit for initializing non-volatile memory
EP1634160A4 (en) * 2003-06-16 2009-11-04 Iocell Corp Information processing device and method for controlling the same
US7248069B2 (en) * 2003-08-11 2007-07-24 Freescale Semiconductor, Inc. Method and apparatus for providing security for debug circuitry
US7734932B2 (en) * 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
CA2536610C (en) 2004-02-05 2013-04-30 Research In Motion Limited Debugging port security interface
US8028164B2 (en) * 2004-03-19 2011-09-27 Nokia Corporation Practical and secure storage encryption
CA2462495A1 (en) * 2004-03-30 2005-09-30 Dspfactory Ltd. Method and system for protecting content in a programmable system
JP4447977B2 (en) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 Secure processor and program for secure processor.
US20060090085A1 (en) * 2004-10-23 2006-04-27 Mckenney Paul E Method and apparatus for improving computer security
TW200629067A (en) * 2005-02-04 2006-08-16 Elan Microelectronics Corp Storage device with separable data protection and method thereof
WO2006082985A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
WO2006082988A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for facilitating a secure processor functional transition
WO2006082994A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for facilitating a secure session between a processor and an external device
WO2006121251A1 (en) * 2005-05-06 2006-11-16 Iocell Co., Ltd. Data structure of flash memory having system area with variable size in which data can be updated, usb memory device having the flash memory, and method of controlling the system area
US20090129593A1 (en) * 2005-05-30 2009-05-21 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method for operating the same
JP2009505303A (en) * 2005-08-22 2009-02-05 エヌエックスピー ビー ヴィ Embedded memory protection
US20070055859A1 (en) * 2005-09-02 2007-03-08 Mediatek Inc. Boot systems and methods
US20070162759A1 (en) * 2005-12-28 2007-07-12 Motorola, Inc. Protected port for electronic access to an embedded device
RU2296363C1 (en) * 2006-04-27 2007-03-27 Общество с ограниченной ответственностью "АСТРОМА" Method and device for protecting software from unsanctioned usage
CN101484904A (en) * 2006-07-07 2009-07-15 桑迪士克股份有限公司 Content control system and method using versatile control structure
US8099629B2 (en) * 2006-07-14 2012-01-17 Marvell World Trade Ltd. System-on-a-chip (SoC) test interface security
DE102006043167B4 (en) 2006-09-14 2014-10-16 Ams Ag Microcontroller and method for starting an application program on a microcontroller
KR100800589B1 (en) * 2006-12-20 2008-02-04 엘지전자 주식회사 Device for processing information and working method thereof
US8607070B2 (en) * 2006-12-20 2013-12-10 Kingston Technology Corporation Secure storage system and method of use
JP4912921B2 (en) * 2007-02-27 2012-04-11 富士通セミコンダクター株式会社 Secure processor system, secure processor, and secure processor system control method
US8499168B2 (en) * 2007-05-09 2013-07-30 Kingston Technology Corporation Secure and scalable solid state disk system
US8010768B2 (en) * 2007-05-09 2011-08-30 Kingston Technology Corporation Secure and scalable solid state disk system
US8527781B2 (en) * 2007-05-09 2013-09-03 Kingston Technology Corporation Secure and scalable solid state disk system
DE102007037879A1 (en) * 2007-08-10 2009-02-12 BSH Bosch und Siemens Hausgeräte GmbH Domestic appliance and method for operating a domestic appliance
DE102008061574A1 (en) * 2008-12-11 2010-06-17 Continental Automotive Gmbh Infotainment system
KR101122697B1 (en) * 2008-12-22 2012-03-09 한국전자통신연구원 Method and system to prevent Data leakage using Content Inspection based USB Memory Device
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
EP2618284B8 (en) * 2010-09-15 2019-05-22 Fujitsu Client Computing Limited Information processing device, method of controlling information processing device, information processing device control program and computer readable recording medium with information processing device control program recorded thereon
US9147074B2 (en) * 2011-05-24 2015-09-29 Cisco Technology, Inc. Method and apparatus for securing CPUS booted using attached flash memory devices
US8949586B2 (en) 2011-10-06 2015-02-03 Cisco Technology, Inc. System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device
CN102394752B (en) * 2011-10-31 2013-11-13 飞天诚信科技股份有限公司 Dynamic token and tooling communication system and method
US9647838B2 (en) * 2013-01-25 2017-05-09 Ralph John Hilla Restructuring the computer and its association with the internet
US9208105B2 (en) 2013-05-30 2015-12-08 Dell Products, Lp System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support
US9442864B2 (en) * 2013-12-27 2016-09-13 Intel Corporation Bridging circuitry between a memory controller and request agents in a system having multiple system memory protection schemes
CN106326695A (en) * 2015-06-16 2017-01-11 联想(北京)有限公司 Information processing method and electronic device
GB2557305A (en) * 2016-12-05 2018-06-20 Nordic Semiconductor Asa Memory protection logic
US10930364B2 (en) * 2018-11-16 2021-02-23 International Business Machines Corporation Iterative functional test exerciser reload and execution
US11431492B2 (en) * 2020-06-25 2022-08-30 At&T Intellectual Property I, L.P. Mutable encrypted system
DE102021201236A1 (en) 2021-02-10 2022-08-11 Robert Bosch Gesellschaft mit beschränkter Haftung Method for authenticating a message from an arithmetic unit, arithmetic unit, computer program and vehicle
KR20220124584A (en) * 2021-03-03 2022-09-14 에스케이하이닉스 주식회사 Host, memory system communicate with the hots, and computing system having the same
US20230063057A1 (en) * 2021-08-27 2023-03-02 Micron Technology, Inc. Memory access managment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826007A (en) * 1996-01-22 1998-10-20 Kabushiki Kaisha Toshiba Memory data protection circuit
WO2000075759A1 (en) * 1999-06-08 2000-12-14 General Instrument Corporation Reprogrammable secure software in an embedded processor
FR2797966A1 (en) * 1999-08-24 2001-03-02 Sagem TV Decoder has external access for memory reset voltage avoids serialization of faulty units

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5537544A (en) * 1992-09-17 1996-07-16 Kabushiki Kaisha Toshiba Portable computer system having password control means for holding one or more passwords such that the passwords are unreadable by direct access from a main processor
US5442704A (en) 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
JPH0816529A (en) 1994-06-27 1996-01-19 Matsushita Electric Works Ltd Method for accessing shared memory
US6052780A (en) * 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US5890199A (en) * 1996-10-21 1999-03-30 Ramtron International Corporation Data processor incorporating a ferroelectric memory array selectably configurable as read/write and read only memory
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6112304A (en) * 1997-08-27 2000-08-29 Zipsoft, Inc. Distributed computing architecture
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
JPH11272560A (en) 1998-03-19 1999-10-08 Sony Corp Integrated circuit
US6223284B1 (en) * 1998-04-30 2001-04-24 Compaq Computer Corporation Method and apparatus for remote ROM flashing and security management for a computer system
JP2000076135A (en) 1998-08-27 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> Memory protective method for processor and ic card for protecting memory of processor
JP2000172810A (en) 1998-12-10 2000-06-23 Dainippon Printing Co Ltd Portable information processing medium
US7814337B2 (en) * 2000-01-06 2010-10-12 Super Talent Electronics, Inc. Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID
US6308256B1 (en) * 1999-08-18 2001-10-23 Sun Microsystems, Inc. Secure execution of program instructions provided by network interactions with processor
US6181605B1 (en) * 1999-10-06 2001-01-30 Advanced Micro Devices, Inc. Global erase/program verification apparatus and method
US6754784B1 (en) * 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US6874139B2 (en) * 2000-05-15 2005-03-29 Interfuse Technology Corporation Method and system for seamless integration of preprocessing and postprocessing functions with an existing application program
US20020029358A1 (en) * 2000-05-31 2002-03-07 Pawlowski Chester W. Method and apparatus for delivering error interrupts to a processor of a modular, multiprocessor system
US6507247B2 (en) * 2001-02-27 2003-01-14 Corrent Corporation Circuit and method for generating a variable frequency clock signal
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US7085385B2 (en) * 2002-01-04 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for initiating strong encryption using existing SSL connection for secure key exchange
US7762470B2 (en) * 2003-11-17 2010-07-27 Dpd Patent Trust Ltd. RFID token with multiple interface controller
US20050114687A1 (en) * 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
US7961885B2 (en) * 2005-04-20 2011-06-14 Honeywell International Inc. Encrypted JTAG interface
US7613891B2 (en) * 2006-05-04 2009-11-03 Intel Corporation Methods and apparatus for providing a read access control system associated with a flash device
US7877563B2 (en) * 2006-12-07 2011-01-25 International Business Machines Corporation Programmable memory device security
US8117445B2 (en) * 2006-12-20 2012-02-14 Spansion Llc Near field communication, security and non-volatile memory integrated sub-system for embedded portable applications
US20080263363A1 (en) * 2007-01-22 2008-10-23 Spyrus, Inc. Portable Data Encryption Device with Configurable Security Functionality and Method for File Encryption
US20090125997A1 (en) * 2007-04-03 2009-05-14 Debra L Cook Network node with one-time-password generator functionality

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826007A (en) * 1996-01-22 1998-10-20 Kabushiki Kaisha Toshiba Memory data protection circuit
WO2000075759A1 (en) * 1999-06-08 2000-12-14 General Instrument Corporation Reprogrammable secure software in an embedded processor
FR2797966A1 (en) * 1999-08-24 2001-03-02 Sagem TV Decoder has external access for memory reset voltage avoids serialization of faulty units

Also Published As

Publication number Publication date
KR100906175B1 (en) 2009-07-03
US20030014653A1 (en) 2003-01-16
JP2003044363A (en) 2003-02-14
EP1276033B1 (en) 2012-03-14
KR20030029970A (en) 2003-04-16
EP1276033A1 (en) 2003-01-15
US7761717B2 (en) 2010-07-20
CN1215390C (en) 2005-08-17
CN1465002A (en) 2003-12-31

Similar Documents

Publication Publication Date Title
EP1276033B1 (en) Memory device with data protection in a processor
DE69333754T2 (en) Protection system for electronic data
DE60224060T2 (en) USE OF DATA STORED IN A READ-DAMAGED MEMORY
DE112007003231B4 (en) Programmable display device and control system
AT405466B (en) DEVICE FOR PROTECTING AN ELECTRONIC DEVICE
DE102004056651A1 (en) Method and device for data archiving in a data storage system
EP0932867A1 (en) Electronic data processing circuit
EP0128362A1 (en) Circuit arrangement comprising a memory and an access control unit
EP0224639B1 (en) Method to control the memory access of an ic card and implementing device
EP1883906A1 (en) Portable data carrier featuring secure data processing
DE60318633T2 (en) ADMINISTRATION OF DIGITAL RIGHTS
EP2002372A1 (en) Procedure for the time-limited storage of data on storage media
EP1262856B1 (en) Program controlled unit
EP1762956A2 (en) Computer with at least one connection for a removable storage medium and method of starting and operating of a computer with a removable storage medium
EP0276450A1 (en) Data protection circuit to inhibit the transmission of signals on a bus
EP1248200A1 (en) Locking circuit for preventing unauthorized access to a memory of a processor
WO2004114131A1 (en) Method for booting up a software in the boot sector of a programmable read-only memory
WO2006072568A1 (en) Portable data support with watermark function
DE102021131424A1 (en) METHODS AND SYSTEMS FOR SESSION-BASED AND SECURE ACCESS CONTROL TO A DATA STORAGE SYSTEM
DE10205316B4 (en) Key management device and method for the encrypted storage of digital data words
DE102010004446A1 (en) Method for providing a secure counter on a terminal
DE19612439C2 (en) Semiconductor memory device
EP1529257B1 (en) Accepting a set of data in a computer unit
WO2005064432A2 (en) Authorization code recovering method
DE102010052224A1 (en) Storage medium and method for operating a storage medium

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN KR

WWE Wipo information: entry into national phase

Ref document number: 028023390

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 1020037003540

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020037003540

Country of ref document: KR