Microprocessor system and method of operation
8 claims: 1 independent, 7 dependent
- 1Verfahren zum Betrieb einer Mikroprozessoranordnung mit - einer ersten Einheit (1) und einer weiteren Einheit (3, 4, 5), - einem Bus (2), über den die erste Einheit (1) mit der weiteren Einheit (3, 4, 5) verbunden ist und der Leitungen (22) für Bussignale (B), die einen Datenwert angeben, umfasst, - einer Bussteuereinheit (11) zur Steuerung von Zugriffen der ersten Einheit (1) auf die weitere Einheit (3, 4, 5) über den Bus (2), gekennzeichnet, durch - eine Leitung (21) für ein Zustandssignal, das den Betriebszustand des Busses (2) angibt, - bei dem dann, wenn von der Bussteuereinheit (11) über die Leitung (21) für das Zustandssignal (BS) mitgeteilt wird, daß kein Zugriff von der ersten Einheit (1) auf die weitere Einheit (3, 4, 5) durchgeführt wird, ein Datenwert zufallsgesteuert erzeugt wird und an die Leitungen (22) für die weiteren Bussignale (B) angelegt wird.
- 2Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Bussteuereinheit (11) das Zustandssignal und den Datenwert (B) taktweise erzeugt und daß dann, wenn in einem ersten Takt mitgeteilt wird, daß kein Zugriff von der ersten Einheit (1) auf die weitere Einheit (3, 4, 5) durchgeführt wird, in einem nachfolgenden Takt der zufallsgesteuert erzeugte Datenwert erzeugt und an die Leitungen (22) für die weiteren Bussignale (B) angelegt wird.
- 3Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der weiteren Einheit (3) der Mikroprozessoranordnung eine Adresse zugeordnet ist, durch die von der ersten Einheit (1) auf die weitere Einheit (3) zugreifbar ist, daß im nachfolgenden Takt nach einem ersten Takt, in dem mitgeteilt wird, daß kein Zugriff von der ersten Einheit auf die weitere Einheit durchgeführt wird, eine andere als die der weiteren Einheit zugeordnete Adresse an die Leitungen (22) für die weiteren Bussignale (B) angelegt wird.
- 4Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß in einem dem nachfolgenden Takt wiederum nachfolgenden Takt ein Lese- oder ein Schreibzugriff über den Bus (2) ausgeführt wird.
- 5Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß das Zustandssignal Signalzustände für einen Lesezugriff und einen Schreibzugriff umfaßt und daß auf der Leitung (21) für das Zustandssignal einer dieser Signalzustände angelegt wird und daß zugeordnet an den Leitungen (22) für die weiteren Bussignale (B) ein zufallsgesteuert erzeugter Datenwert angelegt wird.
- 6Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der Bus (2) der Mikroprozessoranordnung eine Leitung für ein Freigabesignal der weiteren Einheit umfaßt und daß dann, wenn von der Bussteuereinheit über die Leitung für das Zustandssignal mitgeteilt wird, daß kein Zugriff von der ersten Einheit auf die weitere Einheit durchgeführt wird, an die Leitung für das Freigabesignal ein zufallsgesteuert erzeugtes Signal angelegt wird.
- 7Mikroprozessoranordnung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6, die umfaßt:- eine erste Einheit (1) und eine weitere Einheit (3, 4, 5), - einen Bus (2), über den die erste Einheit (1) mit der weiteren Einheit (3, 4, 5) verbunden ist und der vorgesehen ist, Leitungen (22) für weitere Bussignale (B), die einen Datenwert angeben, umfaßt, - eine Bussteuereinheit (11) zur Steuerung von Zugriffen der ersten Einheit (1) an die weitere Einheit (3, 4, 5) über den Bus (2), gekennzeichnet, durch - eine Leitung (21) für ein Zustandssignal, das den Betriebszustand des Busses (2) angibt, - einen Zufallsgenerator (12), der, wenn von der Bussteuereinheit (11) über die Leitung (21) für das Zustandssignal (BS) mitgeteilt wird, daß kein Zugriff von der ersten Einheit (1) auf die weitere Einheit (3, 4, 5) durchgeführt wird, ein Datenwert zufallsgesteuert erzeugt und an die Leitungen (22) für die weiteren Bussignale (B) anlegt.
- 8Mikroprozessoranordnung nach Anspruch 7, dadurch gekennzeichnet, daß die erste Einheit (1) eine Verarbeitungs- und Steuereinheit eines Mikroprozessors ist und daß die weitere Einheit eine Peripherieeinheit (4, 5) eines Mikroprozessors zur Ein- und Ausgabe von Signalen vom und zum Mikroprozessor oder ein Speicher (3) ist.
Independent claims8
21 paragraphs, as filed
The invention relates to a method for operating a microprocessor arrangement having a first and a further unit, a bus over which those units are connected together with a line for a state signal and lines for other bus signals and a bus control unit for controlling accesses to the first unit on the another unit. Moreover, the invention relates to a microprocessor arrangement which is suitable for performing the method.
Microprocessor arrangements comprise in addition to the central processing and control unit (CPU) integrated additional units such as memories or peripheral units for signal input and signal output in a single chip, called a microcontroller. Such Miro controller can be used in safety-related systems, such as smart cards. The microcontroller serves, inter alia, to encrypt the traffic between a reader and the smart card to verify access permissions and perform other covert operations.
It is known that can be used for spying of the function of the microcontroller, the timing of the consumed current by the microcontroller. For example, trigger points can be obtained to control subsequent measurements at the correct time from the current profile; or it can be drawn regarding the specific type of processor used in the calculation and encryption / decryption algorithms; or it can even parts of the processed payload are determined. especially bus accesses produce a characteristic power profile, as they expire after a predetermined signal protocol and provide the switching operations due to the high for driving capacitive loads a clear power profile. The use of conventional microcontrollers in safety-critical applications is therefore problematic.
The publication "Dallas Semiconductor Corp: Section 1: Introduction, 6 October 1993, databook Soft Microcontroller" shows that in a random sequence, on the bus, a dummy cycle is inserted in place of a real cycle. A dummy cycle encompasses any real data, but only randomly generated data, to increase the privacy of the bus system. The dummy data is applied in a randomly changing sequence of dummy cycles with Real cycles of cables for the bus signals. Such a method enables the concealment or camouflage the real data with dummy data, thereby increasing the security against spying of the transmitted data, but also increases the time duration of the data transmission of a data packet over the bus system.
The object of the invention is to provide a method for operating a microprocessor arrangement which is bugged, and that is improved over the prior art.
Another object is to provide a device suitable for carrying out the method microprocessor arrangement.
According to the invention, the object is on the process achieved by a method for operating a microprocessor arrangement with a first unit and another unit; a bus over which the first unit is connected to the further unit and comprises a line for a state signal indicating the operating state of the bus, and further lines for bus signals indicating a data value; a bus control unit for controlling accesses of the first unit to the other unit via the bus; in which process, when it is notified from the bus control unit via the line for the state signal is not being accessed by the first unit is carried out in the further unit, a data value is generated randomly, and is applied to the lines for the further bus signals.
A microprocessor arrangement for carrying out the method according to the invention comprises: a first unit and a further unit; a bus over which the first unit is connected to the further unit and comprises a line for a state signal indicating the operating state of the bus, and further lines for bus signals indicating a data value; a bus control unit for controlling accesses to the first unit to the other unit via the bus; a random number generator, which is connectable to the lines for the further bus signals when the state signal indicating that no access from the first unit is to be performed on the additional unit.
The bus state indicates for which task the bus from the central processing and control unit (CPU) is used at the moment. If the bus is considered clock section just in hibernation, are on the bus data lines of the bus to no valid signals. According to the invention, then a randomly generated signal over di data lines of the bus is transmitted. Thereby, the current profile is changed randomly. The current profile is thereby disguised in relation to the power transmitted over the bus payload, so that inferences much more difficult on the payload based on a statistical evaluation of the current profile or even made impossible.
According to the bus protocol may be provided that the bus state signal indicating the state of the bus lines one clock in advance. It is also possible that the bus state signal indicating the state of the other bus in the same cycle.
The addressable by the CPU units are assigned addresses. When the CPU by means of the bus control unit outputs a memory or a peripheral unit assigned address, it means that the memory and a memory cell or the corresponding peripheral unit contained therein is to be activated to receive data from the bus or to output to the bus. In the invention, if is then followed by the CPU does not access to a device connected to the bus unit, while an address outputted to the bus. However, this address is not an address that is assigned to a unit connected to the bus, but any other address. This has the result that none of the attached devices is activated. Nevertheless, this arbitrary address is transmitted via the bus and thereby generates a corresponding current profile. This address is generated randomly. The current profile is accordingly changed randomly. It does not ensure that the random number does not match a valid address of a unit connected to the bus.
The output onto the bus data value in this way contains the importance of an address by the respective state of the bus state signal. The bus state signal indicates Furthermore, supports that either an address is outputted to the data lines of the bus or output a date to the addressed unit (written) is. For the addresses, and to be read or to be written to the same data signal lines of the bus can be used. This is called a multiplexed data / address bus. The term data is to be understood generally and includes data values representing an address or date data to be processed or instructions etc.. After the bus state has indicated that a resting state, in the following cycle, a random value is transmitted. If an address is transmitted, for which there is no device connected to the bus unit, for as long random values are transferred to another existing unit is addressed by a valid address in the subsequent operating cycles. In recent microprocessors presented an address that was not assigned to any unit connected, a programming error. In the invention, however, the transfer of such randomized address is to be understood that access is performed on a non-existent target to the otherwise unused bus cycles to disguise.
The bus of the microprocessor arrangement may additionally include a line for an enable signal, which is fed to the other units connected to the bus. The enable signal transmitted to those units that access via the bus. The release line is driven advantageously by a signaled by the bus state hibernation with random values.
The invention is further illustrated by the embodiment shown in the drawing. Show it:<dl id="dl0001"><dt>figure 1</dt><dd>a block diagram with relevant elements of the invention and a microprocessor</dd><dt>figure 2</dt><dd>a signal flow diagram.</dd></dl>
The in <figref idrefs="f0001">figure 1</figref> Microcontroller illustrated comprises a central control and processing unit (CPU) 1, by the internal operations, particularly the accesses are controlled on the bus. 2 For this purpose, the CPU 1 of so-called multiplexed comprises a bus control unit 11. The bus itself comprises at least a signal line 21, which indicates the bus state, and a plurality of lines 22, over which both addresses of the connected units and data values are successively transmitted, data / address bus. To the bus 2, a memory 3 is connected, are stored in the data to be processed values and / or instructions. Furthermore, a first peripheral unit 4 is provided and a second peripheral unit 5, exchanged over the data with off-chip connected functional units. The microcontroller is used for example in a smart card application to communicate with a reader. Each of the units connected to the bus 3, 4, 5 has a bus interface 31, 41 and 51st The bus control unit 11 and the interfaces 31, 41, 51 work together in master-slave dependency.
When the bus 2 is idle, ie none of the connected units 3, 4, 5 is activated by the CPU 1 for access, then the data lines of the Busteuereinheit running 22 issued a series of randomly generated data values. For generating the random data values, a random generator 12 which is connected via a multiplexer 13 to the data lines 22 of the bus is used. If one of the units 3, 4, 5 is addressed by the CPU 1, the multiplexer 13 switches to the other terminal 14, which forwards the data sent or received to the other functional units of the CPU first
The bus state BS, which is transmitted on the line 21, is in <figref idrefs="f0001">figure 2</figref> shown together with the transferred on the data / address lines 22 B data values. The bus is intermittently operated so that respective signal states one clock period of the clock CLK are valid. The bus state BS is the IDLE state for hibernation, the ADR condition for the transmission of an address, the state WR for a write operation in which a date from the CPU 1 to one of the units 3, 4, 5 is transmitted, and a state RD for a read operation, in which a data value from one of the units 3, 4, 5 and transferred to the CPU 1, are taking. The bus is controlled so that the condition of the BS signal in a first clock indicating the state occupied by the data values of the data / address lines B in the subsequent next clock. This means that via the address / data lines 22 transmitted data values correspond to the immediately previously transmitted a clock state of the bus state signal BS.
The first three bars 31 indicate the signal flow in a write access to the memory 3. In the first cycle, the bus is idle, the bus state BS occupies the signal value IDLE. In the subsequent operating clock 22 a randomly generated by the random data 12 RNG is transmitted through the data / address lines. In the following cycle, the bus state BS is switched from the bus master 11 to the state of the ADR for the address transfer. This means for the data / address signal lines 22 of the bus that a valid address MEM is transferred to a memory cell contained in the memory. 3 Below signaled the bus state BS a write operation WR. The bus lines 22 lead to the memory 3 to be stored in the memory cell with the previously specified in the clock address MEM data DATA.
Subsequently, five bars long no access to the CPU 1 in any of the units 3, 4 or 5. For this purpose, a clock is transmitted first long for the bus state BS the state IDLE. On the data / address lines 22 of the bus, a random data value RNG is output in the immediately subsequent clock. Then, the bus state BS indicates the transmission of an address by the condition ADR. A data NON transmitted on the data / address lines 22 then corresponding none of lying in the address space of units 3, 4 and 5 address. The data NON generated randomly in random 12th From programming point of view, this means that a one unit is addressed with the address NON, which do not exist in real hardware. Subsequently take the bus state BS is a signal states RD, WR and RD. In the associated timing portions of the address / data signal lines 22 generated by the random 12 random values are transmitted RNG. In practice, much more than the three shown exemplarily bar sections may be present with the transmission of random number values to the address / data signal lines.
Subsequently, the bus state BS is again switched to the idle state IDLE, wherein the address / data lines, a random value RNG is transmitted. This is followed by a write access to the peripheral unit 4 with the address P1 and a read access to the peripheral unit 5 with the address P2.
In the invention, a random data is on the data / address lines 22 of the bus 2 if no access to a connected peripheral units 3, 4 or 5 is requested by the CPU 1 is outputted. This is the case when the bus state signal indicating BS that an idle condition exists (IDLE), or a unit has been addressed, which is not assigned to the units connected to output data values then randomly generated during Bussignalzustands WR or RD to the bus , In this way, the current profile of the microcontroller is obscured.
1 sheet
Sheet 1
Every citation, both waysCites: the store holds 2 of 3
| Document | Relation | Office |
|---|---|---|
| GB2119978A | Cites | United Kingdom |
| US5754647A | Cites | United States of America |
| DALLAS SEMICONDUCTOR CORP.: "SECTION 1: INTRODUCTION" 6. Oktober 1993 (1993-10-06) , DATA BOOK SOFT MICROCONTROLLER, PAGE(S) 1-3,7,8,73,77-80,82,152-156,229,290-292 XP002053731 * Abbildungen 3-1,9-3 * * Seite 8, linke Spalte, Absatz 2 - rechte Spalte, Absatz 2 * * Seite 73, linke Spalte, Absatz 1 - rechte Spalte, letzter Absatz * * Seite 78, linke Spalte, Absatz 1 - rechte Spalte, letzter Absatz * | Non-patent | – |
9 members in 5 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 00100994 | European Patent Office (EPO) | A | |
| EP20000100994 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| EP1118924A1 | European Patent Office (EPO) | A1 | |
| WO0153930A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO0153930A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US2003005206A1 | United States of America | A1 | |
| CN1395700A | China | A | |
| JP2003521033A | Japan | A | |
| US7020730B2 | United States of America | B2 | |
| CN1249549C | China | C | |
| EP1118924B1This record | European Patent Office (EPO) | B1 |
41 legal events, as 5 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapse because of not paying annual feesLapsedMM01 | MM01 | AT | |
| Fee paymentPLFP | PLFP | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| No opposition filed against granted patent, or epo opposition proceedings concluded without decisionGrantedR097 | R097 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Dpma publication of mentioned ep patent grantGrantedR096 | R096 | DE | |
| Reference to at number (ep patent enters austrian national phase)REF | REF | AT | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedNOT ENGLISHFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Intention to grant announcedINTG | INTG | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Amendment of ipc main classPREVIOUS MAIN CLASS: G06F0001000000R079 | R079 | DE | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidAT DE ES FR GB ITAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1118924
- Publication, DOCDB
- 1118924
- Publication, EPODOC
- EP1118924
- Application
- 1009943
- Application, DOCDB
- 00100994
- Application, EPODOC
- EP20000100994
Titles3
- German
- VERFAHREN ZUM BETRIEB EINER MIKROPROZESSORANORDNUNG UND MIKROPROZESSORANORDNUNG
- English
- MICROPROCESSOR SYSTEM AND METHOD OF OPERATION
- French
- PROCÉDÉ DE FONCTIONNEMENT ET SYSTÈME À MICROPROCESSEUR
Classification
- CPC, 6
- G06K19/073
- G06F12/1408
- G06F21/755
- G06F2207/7219
- G06F2221/2123
- G06K19/07363
- IPC, 6
- G06F13 36
- G06F21 75
- G06F1 00
- G06F12 14
- G06F21 55
- G06K19 073
Designated states1
- Contracting states, 1
- Italy
