WO2013160122A1 - Verfahren zur herstellung einer dpa-resistenten logischen schaltung - Google Patents

Verfahren zur herstellung einer dpa-resistenten logischen schaltung Download PDF

Info

Publication number
WO2013160122A1
WO2013160122A1 PCT/EP2013/057651 EP2013057651W WO2013160122A1 WO 2013160122 A1 WO2013160122 A1 WO 2013160122A1 EP 2013057651 W EP2013057651 W EP 2013057651W WO 2013160122 A1 WO2013160122 A1 WO 2013160122A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
standard cells
called
memory block
loss
Prior art date
Application number
PCT/EP2013/057651
Other languages
English (en)
French (fr)
Inventor
Friedrich Eppensteiner
Majid Ghameshlu
Herbert Taucher
Original Assignee
Siemens Ag Österreich
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 Siemens Ag Österreich filed Critical Siemens Ag Österreich
Priority to EP13717247.4A priority Critical patent/EP2842066A1/de
Priority to US14/396,500 priority patent/US20150095861A1/en
Priority to CN201380022118.8A priority patent/CN104246779A/zh
Publication of WO2013160122A1 publication Critical patent/WO2013160122A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Definitions

  • the present invention relates generally to the field of electronic and logic circuits, in particular so-called application-specific integrated circuits or so-called ASICs.
  • the present invention relates to a method for producing a logic circuit, in particular an application-specific integrated circuit, which is constructed at least partially from standard elements or standard functions, so-called standard cells.
  • Logical or electronic circuits which are in particular realized as a so-called integrated circuits, bil ⁇ now the basis for any electronics, in particular ⁇ sondere in the computer art.
  • electronic circuits consist of electronic components housed and wired together on a single substrate (eg, semiconductor substrate, etc.).
  • Circuit thus consists of a large number of different types of components and connecting circuit traces on or in a monocrystalline substrate. Only through this integration is it possible to provide extensive functionality and applications in a small space. Integrated circuits make a large number of applications (eg in mobile devices, SIM cards, RFIDs, mobile phones, etc.) technically feasible, since these applications otherwise they are often too expensive, too complex, too intensive or too large (eg for installation in the respective device, etc.). Be logical and integrated circuits for a spe ⁇ cial application creates, these circuits are often referred to as application specific integrated circuits or ap- plication-specific integrated circuit or short-ASICs as be ⁇ records.
  • ASICs are thus used in many different electronic devices - for example, from a clock radio via mobile devices to high-performance computers.
  • the respective integrated circuit can be designed for the respective application in such a way that space, consumption, cost and / or power-optimized work is then carried out by this ASIC, for example.
  • FPGA field-programmable gate array
  • PLD programmable logic circuits
  • a so-called hardware description language such as the so-called Very High Speed Integrated Circuit Hardware Description Language (VHDL) or Verilog is usually used for the creation or for the design of an ASIC or an application-specific, integrated circuit.
  • the hardware description language is a formal Spra ⁇ che, may be with which operations of integrated circuits as well as their design described.
  • In the hardware Writing language is a description of the respective logical ⁇ circuit - ie, for example, temporal processes and / or (spatial) circuit structures - written.
  • these standard cells can be designed specifically for the production process, wherein a layout of the respective standard cell is already established before the design start of the scarf ⁇ tion. Result of the synthesis is then the descrip ⁇ exercise a corresponding physical circuit or ASICs - the so-called net list, which consists largely of the standard cells (such as logic gates, memory blocks, etc.).
  • the netlist is in the field of electronics and circuit design is usually a description of the Ver ⁇ connections between the information contained in the circuit or ASIC in the standard cells.
  • Such realized and implemented logic circuits, in particular ASICs have a strict dependence on the data to be processed. That is, the logic implemented in the circuit is closely related to the one or more functions to be performed and the data used and / or generated. This can be embedded with safety critical systems a target for attack, in particular at incorporatesre ⁇ -relevant circuits / or ASICs circuits / ASICs. This is especially so called side-channel attacks or side channel attacks ⁇ sets.
  • a side channel attack functions and / or algorithms typically performed by a logic circuit are observed and attempts are made to correlate between the observed data and the dependent, i. manipulated data (e.g., keys, encrypted data, etc.).
  • This information is derived, for example, from an analysis of the running time of an algorithm, the energy consumption of the
  • Circuit while performing a function, etc. won.
  • methods such as a simple and / or differential loss performance analysis are used.
  • simple power loss analysis an energy consumption ⁇ a circuit or an ASIC while Example ⁇ as safety-critical (eg, cryptographic) function is directly recorded. Since the power consumption varies depending on the operations performed in the circuit, conclusions can be drawn about the circuit design of the ASIC, functions performed and safety-critical data.
  • differential power loss analysis the power consumption of a circuit or an ASIC is not only recorded but also statically analyzed. In doing so, measurement deviations in energy consumption are exploited in order to be able to conclude safety-relevant functions and / or data.
  • the differential loss Leis ⁇ shading analysis is in which excessive interference for easy power loss analysis may occur especially in circuits, etc. angewen ⁇ det. Thus especially secret and / or sensitive data such as keys, etc. can be spied based on an analysis of the energy consumption in ⁇ executed in a circuit / ASIC func ⁇ NEN means loss Leis ⁇ tung analysis.
  • the invention is therefore based on the object of specifying a method for the creation of logic circuits, in particular, application specific integrated circuits or ASICs, through which in a simple manner and reduced to ⁇ slegilichen effort a logic circuit can be produced which executed before a draining functions is protected by analyzing a power loss.
  • the solution of this object is achieved by a method of the type mentioned, in which when converting the written in a hardware description of the logic circuit in a so-called netlist by a translation program used standard cells in the netlist are replaced by corresponding loss-power balanced versions of these standard cells.
  • the main aspect of the inventive method represents ⁇ in that a circuit is created in a simple manner and with relatively little effort zusharm ⁇ union or without additional effort, in which a substantial balancing of the Power loss is achieved. The power loss is thus largely independent of the data to be processed.
  • a circuit is produced by the method according to the invention, in which all base operations (eg AND operations, OR operations, etc.) are simultaneously calculated by means of the loss-power-balanced standard cells.
  • a logic gate or even a short gate is the realization of a so-called Boolean function in the technical information or in the creation or description of a logic circuit.
  • a logic gate processes input signals into output signals.
  • the A ⁇ output signals are converted by implementing logical operations such as AND, OR, negation NOT AND or NAND, NOR or NOR, XOR, etc. into a single logical result and is formed by the output signals from ⁇ .
  • logical operations such as AND, OR, negation NOT AND or NAND, NOR or NOR, XOR, etc.
  • logic circuits or ASICs also comprise memory blocks, in particular so-called flip-flops, in addition to logic gates. Therefore, memory blocks, in particular flip-flops, are expediently provided as standard cells for the creation of a logic circuit.
  • Memory block such as flip-flops, which are also referred to as bistable flip-flop or bistable flip-flop, are electronic circuits or elements, of which two stable states can be taken. This can be stored in a memory blocks or a flip-flop, a data amount of one bit over a certain, predetermined period of time. Spei ⁇ cherblöcke are the building blocks of so-called sequential circuits and thus indispensable component for egg NEN structure of a logical or electronic circuit or an ASIC.
  • a first memory block is supplemented with a two ⁇ th memory block such that always when the first memory block is connected to a power loss balanced version of a memory block from said second memory block is a each state is maintained and vice versa.
  • the signified ⁇ tet if from a - the first example - memory block his condition is maintained, then the other - for example toggled to the second memory block.
  • a change of state of the memory block ⁇ (eg flip-flops) can thus not be derived from the Ge ⁇ berichtbuchakukan.
  • a performance of the loss-power-balanced memory block remains largely equal to a performance of the original memory block.
  • the losses-power-balanced versions of the standard cells are stored or made available in one or possibly also several libraries for replacement of the respective standard cells in the netlist.
  • translation programs or synthesis can advertising tools adapted or expanded quickly and inexpensively to.
  • Standard cells such as logic gates, memory blocks, etc. are usually designed for a manufacturing process of logic circuits or ASICs and, for example, catalogs in the form of libraries the Circuitspro ⁇ gram for the conversion of written in the hardware description discussions description of the circuit in a netlist available posed.
  • the translation program can then easily create a loss-based version of a logic circuit or an ASIC from the description written in the hardware description language of the respective circuit, without taking into account the creation or design of this circuit in the hardware description language would have.
  • FIG. 1 shows schematically an exemplary sequence of the method according to the invention for producing a logic circuit.
  • Figures 2a and 2b show examples of replacement of standard cells by respective loss-balanced versions.
  • FIG. 1 shows, in a schematic way, an exemplary sequence of the method according to the invention for producing a logic circuit.
  • the method according to the invention begins with a starting step 1. Then, in a second method step 2, a description of a logic circuit, in particular an application-specific, integrated one is provided
  • Circuit or an ASIC worded.
  • ASIC logic circuit
  • So-called hardware writing languages such as e.g. VHDL, Verilog, etc. used.
  • VHDL Very High-Vity
  • Verilog Verilog
  • the description includes e.g. time sequences, spatial circuit structures, etc. for the circuit.
  • a third method step 3 generates a description of a corresponding physical circuit.
  • the conversion of the description of the logic circuit into the description of the corresponding physical circuit is carried out with the aid of a translation program - a so-called synthesis tool.
  • This process is also referred to as synthesis and the result of the synthesis - ie the corresponding physical circuit description - is also called a netlist.
  • Be ⁇ letters are respectively given functions for the circuit or ASIC, for example, pre-planned or log grind available kata- elements on Ba ⁇ sis - the standard cells so - called assembled.
  • the network list which consists of at least ⁇ largely of such standard cells, such as logic gates, memory blocks, etc., connections between those used in the circuit or ASIC in the standard cell, and thus a structure of this circuit can be commonly described.
  • the standard cells can be placed for the translation program or for the synthesis tool beispielswei ⁇ se in the form of libraries, the standard cells such as may be specifically designed for the particular manufacturing process.
  • the respective standard cells for example, already before the beginning of a
  • a fourth method step 4 the standard cells which are used in the network list generated in method step 3 are then replaced by corresponding loss-compensated versions of these standard cells used in each case.
  • the fourth method step 4 can be carried out, for example, after the third method step 3.
  • a netlist is generated, and then in this netlist ⁇ the standard cells used by a corresponding power loss balanced insurance be replaced.
  • a standard cell of the type can be supplemented so that a function and an associated inverted function are always made available by the loss-power-based version of the standard cell at the output of the standard cell.
  • the corresponding loss-power-balanced versions of the standard cells can also be provided in the form of one or more special libraries.
  • the fourth method step 4 may also be integrated into the third method step 3, for example.
  • the loss-compensated versions of the standard cells can be made available, for example, to the translation program as a special library or by supplementing the corresponding standard cells - i. function and inverted function are displayed on the output - used in the netlist.
  • FIG. 2a shows the exemplary standard cells S1, S2, S3 and S4.
  • These standard cells S 1 to S 4 are so-called logic gates, which represent a realization of so-called Boolean functions, and from which input signals A, B are processed into an output signal Y.
  • a first, exemplary standard cell Sl is used for a rea ⁇ L Deutschen a logical AND function - ie the input signals A, B are linked by a so-called AND function to an output signal Y.
  • the first standard cell Sl is replaced by a first corresponding ver ⁇ loss balanced version vSl the standard cell Sl.
  • the first loss balanced version VSL of the standard cell Sl is distinguished by the fact that all Basisoperatio ⁇ nen can be calculated simultaneously from it - regardless of the actually required function.
  • the first loss-balanced version vSl consists of an upper part and a lower part.
  • four logic gates for example, which represent, for example, four basic logic functions (AND, OR, NAND, NOR), are networked or switched such that the input signals A, B are combined to form an AND function and an output signal Y. ie the output signal Y has a value 1 only if, for example, both input signals also have the value 1.
  • the four logic gates are switched such that at negier ⁇ th input signals A_N, B_N at the output, the inverted function and an inverted output signal is provided to Y_N from ⁇ output signal Y of the upper part.
  • the remaining outputs of the first loss-balanced version vSl, which are not needed, are for example loaded with a so-called dummy load.
  • This will of the first loss-balanced version Vsl of the first standard cell Sl at the output for example, always ge ⁇ represents the function or the output signal Y and the inverted function or the inverted output signal Y_N after the dual principle available at the output and in the netlist then connected accordingly.
  • a second example shown in Figure 2a Standard ⁇ cell S2 is used for an implementation of the logical OR function, wherein input signals are A, B linked via ei ⁇ ne OR operation to the output signal Y.
  • the output signal Y then has the value 1 if at least one of the two input signals A, B has the value 1.
  • the OR function is supplemented or replaced in such a way that a second loss-power-balanced version vS2 of the second standard cell S2 is used in the network list.
  • This second power loss balanced version VS2 of the second Standardzel ⁇ le S2 also consists of an upper and a lower part which each of the four basic logical functions (AND, OR, NAND, NOR) is. However, the upper part is designed such that the input signals A, B are linked to the output signal Y via the OR function.
  • the negated input signal A_N, B_N such ver ⁇ ties that at the output of the inverse function or is provided in ⁇ verted output Y_N available, c
  • a third standard cell S3 of example a NAND or NAND function and in a fourth standard cell S4 a NOR function or NOR function.
  • the output signal Y results in a value 0 only if both input signals A, B have the value 1. If at least one of the input signals A, B has the value 0, the value 1 is output at the output as output signals Y.
  • the output signal Y has the value 1 only if both input signals A, B have the value 0. If the value of at least one input signal A, B 1, then the output signal Y or the function on
  • these standard cells S3, S4 are replaced by a corresponding third or fourth loss-power-balanced version vS3, vS4 of the respective third or fourth standard cell S3, S4 in the network list.
  • loss-power-balanced version vS3, vS4 of the third and fourth standard cell S3, S4 also consist of an upper and a lower part consisting of the four basic logic functions (AND, OR, NAND, NOR).
  • the NAND function is networked in the upper part and in the lower part the negated input signals A_N, B_N linked such that at the output the inverted Functi ⁇ on or the inverted output signal Y_N is provided to the NAND function available.
  • NOR function is shown in the upper part.
  • FIG. 2b shows, by way of example and schematically, a fifth standard cell S5.
  • the fifth standard cell S5 is an exemplary memory block S5 which is e.g. is designed as a flip-flop. Such a memory block S5 or
  • Flip-flop S5 is an electronic circuit, from which two stable states can be taken and wel ⁇ cher so that a data amount of one bit can be stored.
  • the memory block S5 by way of example and schematically shown is for example a so-called D-type flip-flop or delay flip-flop through which a data signal can be deferrers ⁇ Gert by one clock.
  • the memory block S5 has a data input D and a clock input, as well as an output Q and an associated inverted output QN.
  • a fitting on the D input logic state is stored and output its value at the Q output in the sequence at glassgeschalte ⁇ system clock input, or an active clock edge. If no active clock edge is present or if the clock input is deactivated, the input value D is not accepted.
  • a loss-performance-based version vS5 of the memory block S5 is introduced or the standard memory block S5 is replaced by this version vS5 in the network list.
  • a first memory block SP1 and a first flip-flop SP1 respectively supplemented by a second memory block SP2 and a second flip-flop SP2.
  • the first D flip-flop SP1 is expanded with a second D-flip-flop SP2.
  • Data input D and output Q of the first memory block SP1 and first flip-flops SP1 are linked together, for example, via a first logic gate and then form a data input of the second memory block SP2 or SP2 after connection to an output of the second memory block SP2 or flip-flops SP2 Flip-flops SP2.
  • the loss-compensated version vS5 of the memory block S5 has a data input D and an output Q and an associated inverted output QN for networking in the netlist.
  • the power loss of the loss-power-balanced version vS5 of the memory block S5 is largely independent of a state change, since, for example, the second flip-flop toggles SP2 if a state is maintained by the first flip-flop SP1 and vice versa. This considerably complicates so-called side channel attacks.
  • Such loss-power balanced versions can also be created to further memory blocks or flip-flops such as T-flip-flops or toggle flip-flops, etc.
  • standard cells S 1, S 2, S 5 such as logic gates, memory blocks, etc. are replaced or supplemented in a network list by corresponding losses-power-balanced versions vS1, vS2, vS5 of these standard cells S1, S2, S5.
  • vS1, vS2, vS5 losses-power-balanced versions of these standard cells S1, S2, S5.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Erstellung einer logischen Schaltung, insbesondere einer so genannten anwendungsspezifischen, integrierten Schaltung oder ASIC. Dabei wird eine Beschreibung der logischen Schaltung in einer Hardwarebeschreibungssprache abgefasst (2) und dann von einem Übersetzungsprogramm, einem so genannten Synthese-Tool, in eine zumindest zum Großteil aus so genannten Standardzellen (S1, S2, S3, S4, S5) bestehende Beschreibung einer entsprechenden, physikalischen Schaltung, in eine so genannte Netzliste, umgewandelt (3). Bei dieser Umwandlung werden die verwendeten Standardzellen (S1, S2, S3, S4, S5) in der Netzliste durch entsprechend verlustleistungsbalancierte Versionen (vS1, vS2, vS3, vS4, vS5) dieser verwendeten Standardzellen (S1, S2, S3, S4, S5) ersetzt (4). Auf diese Weise wird vorteilhaft - insbesondere bei sicherheitsrelevanten Schaltungen - ein Ausspionieren einer Funktionsweise der Schaltung durch Analyse eines Energieverbrauchs dieser Schaltung erschwert bzw. verhindert.

Description

Beschreibung
VERFAHREN ZUR HERSTELLUNG EINER DPA-RESISTENTEN LOGISCHEN SCHALTUNG Technisches Gebiet
Die vorliegende Erfindung betrifft allgemein das Gebiet der der elektronischen und logischen Schaltungen, insbesondere so genannter anwendungsspezifischen, integrierten Schaltungen oder so genannter ASICs. Im Speziellen bezieht sich die vorliegende Erfindung auf ein Verfahren zur Herstellung einer logischen Schaltung, insbesondere einer anwendungsspezifischen, integrierten Schaltung, welche zumindest teilweise aus Standardelementen bzw. Standardfunktionen, so genannten Stan- dardzellen, aufgebaut ist. Dabei wird eine in einer Hardware¬ beschreibungssprache abgefasste Beschreibung der logischen Schaltung von einem Übersetzungsprogramm in eine zumindest zum Großteil aus den so genannten Standardzellen bestehende Beschreibung einer entsprechenden, physikalischen Schaltung, in eine so genannte Netzliste, umgewandelt.
Stand der Technik
Logische bzw. elektronische Schaltungen, welche insbesondere als so genannte integrierte Schaltungen realisiert sind, bil¬ den heutzutage die Grundlage für jegliche Elektronik, insbe¬ sondere in der Computertechnik. Üblicherweise bestehen elektronische Schaltungen aus auf einem einzelnen Substrat (z.B. Halbleitersubstrat, etc.) untergebrachten und miteinander verdrahteten elektronischen Bauelementen. Eine integrierte
Schaltung besteht damit aus einer großen Anzahl von verschiedenartigen Bauelementen sowie verbindenden Leiterzügen auf oder in einem einkristallinen Substrat. Erst durch diese Integration ist es möglich, umfangreiche Funktionalitäten und Anwendungen auf einem kleinen Raum zur Verfügung zu stellen. Durch integrierte Schaltungen wird eine Vielzahl von Anwendungen (z.B. in mobilen Geräten, SIM-Karten, RFIDs, Mobiltelefonen, etc.) erst technisch realisierbar, da diese Anwen- düngen sonst oft zu teuer, zu komplex, zu leistungsintensiv oder zu groß (z.B. für einen Einbau in das jeweilige Gerät, etc . ) wären . Werden logische bzw. integrierte Schaltungen für eine spe¬ zielle Anwendung erstellt, so werden diese Schaltungen häufig als anwendungsspezifische, integrierte Schaltungen oder ap- plication-specific integrated circuit oder kurz als ASICs be¬ zeichnet. ASICs werden damit in vielen verschiedenen elektro- nischen Geräten - beispielsweise von einem Radiowecker über Mobilfunkgeräte bis zu Hochleistungsrechnern - eingesetzt. Ein Grund für die Entwicklung von anwendungsspezifischen, integrierten Schaltungen oder ASICs, welche nach der Realisierung nicht mehr manipulierbar sind, ist vor allem bei einer hohen Fertigungsstückzahl eine Kostenersparnis gegenüber einem diskreten Aufbau von Schaltungen. Insbesondere bei digitalen ASICs kann die jeweilige integrierte Schaltung so für die jeweilige Anwendung entworfen werden, dass von diesem ASIC dann z.B. platz-, Verbrauchs-, kosten- und/oder leis- tungsoptimiert gearbeitet wird. Der Unterschied zu anderen logischen Schaltungen wie z.B. Field Programmable Gate Arrays (FPGAs) oder programmierbaren logischen Schaltungen (PLDs) besteht vor allem darin, dass bei einem ASIC die Funktionali¬ tät der integrierten Schaltung bei der Herstellung eindeutig festgelegt wird und von einem Anwender nicht mehr verändert werden kann. Dabei können moderne ASICs oft nicht nur einfa¬ che logische Funktionen bzw. Logikgatter umfassen, sondern auch Systemblöcke, Speicherblöcke, Prozessoren, etc., um die gewünschten Funktionalitäten bzw. Funktionen zu realisieren.
Für die Erstellung bzw. für einen Entwurf eines ASICs bzw. einer anwendungsspezifischen, integrierten Schaltung wird üblicherweise eine so genannte Hardwarebeschreibungssprache wie z.B. die so genannten Very High Speed Integrated Circuit Hardware Description Language (VHDL) oder Verilog eingesetzt. Die Hardwarebeschreibungssprache ist dabei eine formale Spra¬ che, mit welcher Operationen von integrierten Schaltungen sowie ihr Design beschrieben werden können. In der Hardwarebe- Schreibungssprache wird eine Beschreibung der jeweiligen lo¬ gischen Schaltung - d.h. beispielsweise zeitliche Abläufe und/oder (räumliche) Schaltkreisstrukturen - abgefasst. Aus einer mit der Hardwarebeschreibungssprache erstellten Be¬ schreibung einer logischen Schaltung bzw. eines ASICs wird dann mit Hilfe eines Übersetzungsprogramms - eines so genann¬ ten Synthese-Tools - eine Beschreibung einer entsprechenden, physikalischen Schaltung bzw. des ASICs - eine so genannte Netzliste - generiert. Dieser Vorgang wird auch als Synthese bezeichnet. Bei der Synthese werden auf Basis der mit der Hardwarebeschreibungssprache abgefassten Beschreibung die je¬ weils vorgegebenen Funktionen für die logische Schaltung bzw. den ASIC aus vorgeplanten bzw. katalogmäßig verfügbaren Ele- menten - den so genannten Standardzellen - zusammengesetzt, welche z.B. in Form von Bibliotheken für das Übersetzungsprogramm bzw. Synthese-Tool zur Verfügung gestellt werden können. Diese Standardzellen können z.B. spezifisch für den Her- stellungsprozess entworfen werden, wobei ein Layout der je- weiligen Standardzelle bereits vor Entwurfbeginn der Schal¬ tung feststeht. Ergebnis der Synthese ist dann die Beschrei¬ bung einer entsprechenden, physikalischen Schaltung bzw. des ASICs - die so genannte Netzliste, welche zum Großteil aus den Standardzellen (z.B. Logikgatter, Speicherblöcke, etc.) besteht. Die Netzliste ist im Bereich des Elektronik- bzw. Schaltungsentwurfs üblicherweise eine Beschreibung der Ver¬ bindungen zwischen den in der Schaltung bzw. im ASIC enthaltenen Standardzellen. Derart realisierte und implementierte logische Schaltungen, insbesondere ASICs, weisen eine strikte Abhängigkeit von den zu verarbeitenden Daten auf. D.h. die in der Schaltung implementierte Logik steht in engem Zusammenhang mit der oder den auszuführenden Funktionen und den dabei verwendeten und/oder entstehenden Daten. Dies kann insbesondere bei sicherheitsre¬ levanten Schaltungen/ASICs oder bei Schaltungen/ASICs mit eingebetteten sicherheitskritischen Systemen einen Angriffpunkt für Attacken darstellen. Dabei werden insbesondere so genannte Side-Channel-Attacks oder Seitekanalattacken einge¬ setzt .
Bei einer Seitenkanalattacke werden üblicherweise von einer logischen Schaltung ausgeführte Funktionen und/oder Algorithmen beobachtet und es wird versucht, Korrelationen zwischen den beobachteten Daten und abhängigen, d.h. manipulierten Daten (z.B. Schlüssel, verschlüsselte Daten, etc.), zu finden. Diese Informationen werden beispielsweise aus einer Analyse der Laufzeit eines Algorithmus, dem Energieverbrauch der
Schaltung während des Ausführens einer Funktion, etc. gewonnen. Dabei kommen z.B. Methoden wie eine einfache und/oder differentielle Verlustleistungsanalyse zum Einsatz. Bei der einfachen Verlustleistungsanalyse wird ein Energie¬ verbrauch einer Schaltung bzw. eines ASICs während beispiels¬ weise sicherheitskritischer (z.B. kryptographischer) Funktionen direkt aufgezeichnet. Da der Energieverbrauch in Abhängigkeit von den jeweils in der Schaltung ausgeführten Opera- tionen variiert, können Rückschlüsse auf Schaltungsaufbau des ASICs, ausgeführte Funktionen und sicherheitskritische Daten gezogen werden. Bei der differentiellen Verlustleistungsanalyse wird der Energieverbrauch einer Schaltung bzw. eines ASICs nicht nur aufgezeichnet, sondern auch statisch analy- siert. Es werden dabei Messabweichungen beim Energieverbrauch ausgenutzt, um auf sicherheitsrelevante Funktionen und/oder Daten schließen zu können. Die differentielle Verlustleis¬ tungsanalyse wird insbesondere bei Schaltungen, etc. angewen¬ det, bei welchen zu große Störungen für die einfache Verlust- leistungsanalyse auftreten. Damit können mittels Verlustleis¬ tungsanalyse vor allem geheime und/oder sensible Daten wie z.B. Schlüssel, etc. anhand einer Analyse des Energie¬ verbrauchs bei in einer Schaltung/ASIC ausgeführten Funktio¬ nen ausspioniert werden.
Um ein derartiges Ausspionieren von Funktionen und Daten anhand des Energieverbrauchs der Schaltung bzw. ASICs zu ver¬ hindern, besteht z.B. die Möglichkeit Verarbeitungszyklen - d.h. eine Abfolge von Funktionen und/oder Operationen, bei welchen sensible Daten verarbeitet werden - mit zufälligen Verzögerungen zu beaufschlagen, wodurch aus dem Energieverbrauch nicht mehr auf einfache Weise auf Funktion bzw. verarbeitete Daten geschlossen werden kann. Diese Vorgehens¬ weise hat allerdings den Nachteil, dass es zu einer Ver¬ schlechterung der Performance der Schaltung bzw. des ASICs kommt . Alternativ können für logische Schaltungen bzw. ASICs auch spezielle Zellen in so genannter Silizium-Technologie entwi¬ ckelt werden, um die Schaltung bzw. den ASIC vor Seitenkanal- attacken zu schützen. Allerdings sind derartige Zellen sehr speziell und stehen daher nicht für eine breite Masse der ASIC-Technologien zur Verfügung.
Darstellung der Erfindung
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Erstellung von logischen Schaltungen, insbesondere anwendungsspezifischen, integrierten Schaltungen bzw. ASICs anzugeben, durch welches auf einfache Weise und geringeren zu¬ sätzlichen Aufwand eine logische Schaltung hergestellt werden kann, welche vor einem Ableiten ausgeführter Funktionen mit- tels Analyse einer Verlustleistung geschützt wird.
Die Lösung dieser Aufgabe erfolgt, durch ein Verfahren der eingangs angeführten Art, bei welchem bei einer Umwandlung der in einer Hardwarebeschreibung abgefassten Beschreibung der logischen Schaltung in eine so genannte Netzliste durch ein Übersetzungsprogramm verwendete Standardzellen in der Netzliste durch entsprechende verlustleistungsbalancierte Versionen dieser Standardzellen ersetzt werden. Der Hauptaspekt des erfindungsgemäßen Verfahrens besteht dar¬ in, dass auf einfache Weise und mit relativ geringem zusätz¬ lichen Aufwand bzw. ohne zusätzlichen Aufwand eine Schaltung erstellt wird, bei welcher eine weitgehende Balancierung der Verlustleistung erreicht wird. Die Verlustleistung wird damit weitgehend unabhängig von den zu verarbeiteten Daten gemacht. Weiterhin wird durch das erfindungsgemäße Verfahren eine Schaltung erstellt, bei welcher mittels der verlustleistungs- balancierten Standardzellen alle Basisoperationen (z.B. UND- Verknüpfungen, ODER-Verknüpfungen, etc.) gleichzeitig berechnet werden. Dies geschieht durch den Einsatz der verlustleis¬ tungsbalancierten Standardzellen unabhängig von der eigentlich vorgesehenen bzw. geforderten Funktion. Nicht benötigte Ausgänge von Standardzellen in der Schaltung werden dabei mit einer so genannten Dummy-Load oder Ersatzlast beaufschlagt, damit keine Störungen in der Schaltung auftreten. Durch den Einsatz der verlustleistungsbalancierten Standardzellen in einer logischen Schaltung bzw. in einem ASIC kann ein Erfolg von Seitenkanalattacken, welche auf Methoden der Verlustleistungsanalyse basieren, sehr einfach und effizient für sicherheitsrelevante Funktionen in dieser logischen Schaltung und insbesondere in dieser ASIC-Zelle reduziert werden. Das er¬ findungsgemäße Verfahren erlaubt außerdem eine einfache Rea- lisierung von logischen Schaltungen bzw. ASICs mit Standard- Design-Tools für diverse Standard-CMOS-Technologien .
Es ist vorteilhaft, wenn in der Netzliste verwendete Stan¬ dardzellen um die verlustleistungsbalancierten Versionen die- ser Standardzellen ergänzt werden. Dabei wird die Standard¬ zelle derart erweitert, dass von der verlustleistungsbalancierten Version dieser Standardzelle immer eine ursprüngliche Funktion und eine entsprechend zugehörige, invertierte Funk¬ tion am Ausgang zur Verfügung gestellt wird. Damit wird auf einfache Weise nach einem so genannten Dual-Rail-Prinzip dafür gesorgt, dass in den in der Schaltung bzw. im ASIC verwendeten Standardzellen immer alle Basisoperationen gleichzeitig berechnet werden und damit aus der Verlustleistung die eigentlich vorgesehene bzw. geforderte Funktion der jeweili- gen Standardzelle aus dem Energieverbrauch nicht mehr ableit¬ bar ist. Bei der Umwandlung der mittels Hardwarebeschreibung erstellten Beschreibung der logischen Schaltung in eine Netzliste mit dem Übersetzungsprogramm bzw. Synthese-Tool wird für jede Netzliste bzw. Netz einer logischen Schaltung eine Netzliste bzw. Netz für die jeweils invertierten Funktionen erstellt und entsprechend verbunden. Nicht benötigte Ausgänge werden dabei beispielsweise mit einer so genannten Dummy-Load oder Ersatzlast beaufschlagt.
Als Standardzellen werden idealer Weise so genannte Logikgat¬ ter verwendet. Ein Logikgatter oder auch kurz Gatter ist in der technischen Information bzw. bei der Erstellung oder Be- Schreibung einer logischen Schaltung die Realisierung einer so genannten Booleschen Funktion. Durch ein Logikgatter werden Eingangssignale zu Ausgangssignalen verarbeitet. Die Ein¬ gangssignale werden dabei durch Implementierung logischer Operationen wie z.B. UND, ODER, NEGATION, NICHT UND oder NAND, NICHT ODER oder NOR, XOR, etc. zu einem einzigen logischen Ergebnis umgewandelt und durch die Ausgangssignale ab¬ gebildet. Durch das erfindungsgemäße Verfahren werden in ei¬ ner Schaltungsbeschreibung verwendete Logikgatter bei der Synthese durch das Übersetzungsprogramm mit der jeweiligen invertierten Operation bzw. Funktion zur verlustbalancierten Version ergänzt. Das bedeutet, dass beispielsweise ein UND- Gatter durch ein negiertes UND-Gatter - ein so genannten NAND-Gatter - erweitert wird. Bei einem ODER-Gatter wird z.B. ein so genanntes NOR-Gatter ergänzt und so weiter.
Häufig umfassen logische Schaltungen bzw. ASICs neben Logikgattern auch Speicherblöcke, insbesondere so genannte Flip- Flops. Daher werden zweckmäßiger Weise auch Speicherblöcke, insbesondere Flip-Flops, als Standardzellen für die Erstel- lung einer logischen Schaltung vorgesehen. Speicherblock wie z.B. Flip-Flops, welche auch als bistabile Kippstufe oder bistabiles Kippglied bezeichnet werden, sind elektronische Schaltungen bzw. Elemente, von welche zwei stabile Zustände eingenommen werden können. Damit kann in einem Speicherblöcke bzw. einem Flip-Flop eine Datenmenge von einem Bit über eine bestimmte, vorgegebene Zeitdauer gespeichert werden. Spei¬ cherblöcke sind Grundbausteine von so genannten sequentiellen Schaltungen und damit eine unverzichtbares Bauelement für ei- nen Aufbau einer logischen bzw. elektronischen Schaltung oder einen ASIC.
Bei einer speziellen Ausführungsvariante des erfindungsgemä- ßen Verfahrens, insbesondere bei Speicherblöcken als Stan¬ dardzellen, wird für eine verlustleistungsbalancierte Version eines Speicherblocks ein erster Speicherblock mit einem zwei¬ ten Speicherblock derart ergänzt, dass immer wenn der erste Speicherblock geschaltet wird, vom zweiten Speicherblock ein jeweiliger Zustand beibehalten wird und umgekehrt. Das bedeu¬ tet, wenn von einem - z.B. dem ersten - Speicherblock sein Zustand beibehalten wird, dann wird vom anderen - z.B. dem zweiten Speicherblock getoggelt. Auf diese einfache Weise ist dann die Gesamtverlustleistung der verlustleistungsbalancier- ten Version des Speicherblocks weitgehend unabhängig vom je¬ weiligen Zustandswechsel . Ein Zustandswechsel des Speicher¬ blocks (z.B. Flip-Flops) kann damit nicht mehr aus der Ge¬ samtverlustleistung abgeleitet werden. Eine Performance des verlustleistungsbalancierten Speicherblocks bleibt aber weit- gehend gleich einer Performance des ursprünglichen Speicherblocks .
Es ist beim erfindungsgemäßen Verfahren auch günstig, wenn die verlustleistungsbalancierten Versionen der Standardzellen in einer oder gegebenenfalls auch mehreren Bibliotheken für ein Ersetzen der jeweiligen Standardzellen in der Netzliste hinterlegt bzw. zur Verfügung gestellt werden. Auf diese Wei¬ se können beispielsweise Übersetzungsprogramme bzw. Synthese- Tools rasch und kostengünstig angepasst bzw. erweitert wer- den. Standardzellen wie z.B. Logikgatter, Speicherblöcke, etc. werden üblicherweise für einen Herstellungsprozess von logischen Schaltungen bzw. ASICs entworfen und beispielsweise katalogmäßig in Form von Bibliotheken dem Übersetzungspro¬ gramm für die Umwandlung der in der Hardwarebeschreibungs- spräche abgefassten Beschreibung der Schaltung in eine Netzliste zur Verfügung gestellt. Durch ein Hinterlegen der verlustleistungsbalancierten Versionen der Standardzellen können diese sehr einfach und ohne großen Aufwand dem Übersetzungs- Programm zur Verfügung gestellt werden. Vom Übersetzungsprogramm kann dann ohne großen Aufwand eine verlustleistungsba- lancierte Version einer logischen Schaltung bzw. eines ASICs aus der in der Hardwarebeschreibungssprache abgefassten Be- Schreibung der jeweiligen Schaltung erstellt werden, ohne dass beim Erstellen bzw. Designen dieser Schaltung in der Hardwarebeschreibungssprache darauf Rücksicht genommen werden müsste . Kurzbeschreibung der Zeichnung
Die Erfindung wird nachfolgend schematisch in beispielhafter Weise anhand der beigefügten Figuren erläutert. Figur 1 zeigt dabei schematisch einen beispielhaften Ablauf des erfindungs- gemäßen Verfahrens zur Herstellung einer logischen Schaltung. Die Figuren 2a und 2b zeigen Beispiele für ein Ersetzen von Standardzellen durch jeweilige verlustbalancierte Versionen.
Ausführung der Erfindung
Figur 1 zeigt in schematischer Weise einen beispielhaften Ablauf des erfindungsgemäßen Verfahrens zur Erstellung einer logischen Schaltung. Das erfindungsgemäße Verfahren beginnt mit einem Startschritt 1. Dann wird in einem zweiten Verfah- rensschritt 2 eine Beschreibung einer logischen Schaltung, insbesondere einer anwendungsspezifischen, integrierten
Schaltung bzw. eines ASICs, abgefasst. Für einen derartigen Entwurf bzw. eine derartige Beschreibung der logischen Schaltung (ASIC) werden üblicherweise so genannte Hardwarebe- Schreibungssprachen wie z.B. VHDL, Verilog, etc. eingesetzt. Von dieser Beschreibung der logischen Schaltung werden dabei Operationen, Funktionen, etc. beschrieben, welche von der Schaltung bzw. dem ASIC ausgeführt werden sollen. Die Beschreibung umfasst z.B. zeitliche Abläufe, räumliche Schal- tungsstrukturen, etc. für die Schaltung.
Aus einer in der Hardwarebeschreibungssprache abgefassten Be¬ schreibung einer logischen Schaltung bzw. eines ASICs wird in einem dritten Verfahrensschritt 3 eine Beschreibung einer entsprechenden, physikalischen Schaltung generiert. Die Umwandlung der Beschreibung der logischen Schaltung in die Beschreibung der entsprechenden, physikalischen Schaltung wird mit Hilfe eines Übersetzungsprogramms - eines so genannten Synthese-Tools - durchgeführt. Dieser Vorgang wird auch als Synthese bezeichnet und das Ergebnis der Synthese - d.h. die entsprechende, physikalische Schaltungsbeschreibung - wird auch als Netzliste bezeichnet.
Beim Verfahrensschritt 3 bzw. bei der Synthese werden auf Ba¬ sis der mit der Hardwarebeschreibungssprache abgefassten Be¬ schreibung die jeweils vorgegebenen Funktionen für die Schaltung bzw. den ASIC beispielsweise aus vorgeplanten bzw. kata- logmäßig verfügbaren Elementen - den so genannten Standardzellen - zusammengesetzt. Durch die Netzliste, welche zumin¬ dest zum Großteil aus derartigen Standardzellen wie z.B. Logikgattern, Speicherblöcken, etc. besteht, werden üblicherweise Verbindungen zwischen den in der Schaltung bzw. im ASIC verwendeten Standardzellen und damit eine Struktur dieser Schaltung beschrieben. Die Standardzellen können für das Übersetzungsprogramm bzw. für das Synthese-Tool beispielswei¬ se in Form von Bibliotheken zur Verfügung gestellt werden, wobei die Standardzellen z.B. spezifisch für den jeweiligen Herstellungsprozess entworfen werden können. Damit stehen die jeweiligen Standardzellen z.B. bereits vor Beginn eines
Schaltungsentwurfs fest.
In einem vierten Verfahrensschritt 4 werden dann die Stan- dardzellen, welche in der im Verfahrensschritt 3 generierten Netzliste verwendet werden, durch entsprechende verlustleis- tungsbalancierte Versionen dieser jeweils verwendeten Standardzellen ersetzt. Der vierte Verfahrensschritt 4 kann dabei beispielsweise nach dem dritten Verfahrensschritt 3 ausge- führt werden. Das bedeutet, dass z.B. zuerst aus der Be¬ schreibung der logischen Schaltung eine Netzliste generiert wird, und dann in dieser Netzliste die verwendeten Standard¬ zellen durch entsprechende verlustleistungsbalancierte Versi- onen ersetzt werden. Dabei kann z.B. eine Standardzelle der¬ art ergänzt werden, dass von der verlustleistungsbasierten Version der Standardzelle am Ausgang der Standardzelle immer eine Funktion sowie ein zugehörige invertierte Funktion zur Verfügung gestellt wird. Alternativ können die entsprechenden verlustleistungsbalancierten Versionen der Standardzellen auch in Form von einer oder mehreren speziellen Bibliotheken zur Verfügung gestellt werden. Alternativ kann der vierte Verfahrensschritt 4 beispielsweise auch in den dritten Verfahrensschritt 3 integriert sein.
D.h., dass beim Erstellen der Netzliste anstatt einer bestimmten Standardzelle immer die entsprechende verlustleis- tungsbalancierte Version dieser Standardzelle genommen wird. Auch bei dieser Variante können die verlustleistungsbalancierten Versionen der Standardzellen beispielsweise dem Übersetzungsprogramm als spezielle Bibliothek zur Verfügung gestellt werden oder durch Ergänzen der entsprechenden Standardzellen - d.h. es werden Funktion und invertierte Funktion am Ausgang angezeigt - in die Netzliste eingesetzt werden.
In den Figuren 2a und 2b sind beispielhaft und schematisch in Netzlisten gebräuchliche Standardzellen Sl bis S4 bzw. S5 sowie die entsprechenden verlustleistungsbalancierten Versionen vSl bis vS4 bzw. vS5 dargestellt, wobei die verlustleistungs- balancierte Version vSl bis vS4 bzw. vS5 immer funktionsäqui¬ valent zur entsprechenden Standardzelle ist.
Figur 2a zeigt dabei die beispielhaften Standardzellen Sl, S2, S3 und S4. Diese Standardzellen Sl bis S4 sind so genannte Logikgatter, welche eine Realisierung von so genannten Booleschen Funktionen darstellen, und von welchen Eingangsignale A, B zu einem Ausgangssignal Y verarbeitet wird. Ein erste, beispielhafte Standardzelle Sl wird für eine Rea¬ lisierung einer logischen UND-Funktion verwendet - d.h. die Eingangssignale A, B werden durch eine so genannte UND- Funktion zu einem Ausgangssignal Y verknüpft. Im vierten Ver- fahrensschritt 4 des erfindungsgemäßen Verfahrens wird die erste Standardzelle Sl durch eine erste entsprechende ver¬ lustbalancierte Version vSl der Standardzelle Sl ersetzt. Die erste verlustbalancierte Version vSl der Standardzelle Sl wird dadurch ausgezeichnet, dass von ihr alle Basisoperatio¬ nen gleichzeitig berechnet werden können - unabhängig von der eigentlich geforderten Funktion. Die erste verlustbalancierte Version vSl besteht aus einem oberen Teil und einem unteren Teil .
Im oberen Teil sind z.B. vier Logikgatter, welche beispielsweise vier logische Grundfunktionen (UND, ODER, NAND, NOR) darstellen, derart vernetzt bzw. derart geschaltet, dass die Eingangssignale A, B zu einer UND-Funktion und einem Aus- gangssignal Y verknüpft werden - d.h. das Ausgangssignal Y weist nur dann z.B. einen Wert 1, wenn beide Eingangssignale ebenfalls den Wert 1 aufweisen. Im unteren Teil, welcher ebenfalls z.B. vier Logikgatter für die vier logischen Grundfunktionen (UND, ODER, NAND, NOR) wie der obere Teil umfasst, sind die vier Logikgatter derart geschaltet, dass bei negier¬ ten Eingangssignalen A_N, B_N am Ausgang die invertierte Funktion bzw. ein invertiertes Ausgangssignal Y_N zum Aus¬ gangssignal Y des oberen Teils zur Verfügung gestellt wird. Die restlichen Ausgänge der ersten verlustbalancierten Versi- on vSl, welche nicht benötigt werden, sind z.B. mit einem so genannten Dummy-Load beaufschlagt. Damit wird von der ersten verlustbalancierte Version vSl der ersten Standardzelle Sl am Ausgang z.B. nach dem Dual-Prinzip am Ausgang immer die Funktion bzw. das Ausgangssignal Y und die invertierte Funktion bzw. das invertierte Ausgangssignal Y_N zur Verfügung ge¬ stellt und in der Netzliste dann entsprechend verbunden.
Eine zweite in Figur 2a beispielhaft dargestellte Standard¬ zelle S2 wird für eine Realisierung der logischen ODER- Funktion verwendet, bei welcher Eingangssignale A, B über ei¬ ne ODER-Operation zum Ausgangssignal Y verknüpft werden. Bei einer ODER-Funktion weist das Ausgangssignal Y dann den Wert 1 auf, wenn zumindest eines der beiden Eingangssignale A, B den Wert 1 aufweist. Im vierten Verfahrensschritt 4 wird die ODER-Funktion derart ergänzt oder ersetzt, dass in der Netzliste eine zweite verlustleistungsbalancierte Version vS2 der zweiten Standardzelle S2 verwendet wird. Diese zweite ver- lustleistungsbalancierte Version vS2 der zweiten Standardzel¬ le S2 besteht ebenfalls aus einem oberen und einem unteren Teil, welcher jeweils aus den vier logischen Grundfunktionen (UND, ODER, NAND, NOR) besteht. Der obere Teil ist allerdings so gestaltet, dass die Eingangssignale A, B über die ODER- Funktion zum Ausgangssignal Y verknüpft werden. Im unteren
Teil werden die negierten Eingangssignal A_N, B_N derart ver¬ knüpft, dass am Ausgang die invertierte Funktion bzw. das in¬ vertierte Ausgangssignal Y_N zur Verfügung gestellt wird, c Weiters sind in Figur 2a in einer dritten Standardzelle S3 beispielhaft eine NICHT-UND- oder NAND-Funktion und in einer vierten Standardzelle S4 eine NICHT-ODER- oder NOR-Funktion dargestellt. Bei der NAND-Funktion ergibt das Ausgangssignal Y nur dann einen Wert 0, wenn beide Eingangssignale A, B den Wert 1 aufweisen. Hat zumindest eines der Eingangssignal A, B den Wert 0, so wird am Ausgang als Ausgangssignale Y der Wert 1 ausgegeben. Bei der NOR-Funktion weist das Ausgangssignal Y nur dann den Wert 1 auf, wenn beide Eingangssignale A, B den Wert 0 haben. Ist der Wert von zumindest einem Eingangssignal A, B 1, so weist das Ausgangssignal Y bzw. die Funktion am
Ausgang den Wert 0 auf. Durch den vierten Verfahrensschritt 4 werden diese Standardzellen S3, S4 durch eine entsprechende dritte bzw. vierte verlustleistungsbalancierte Version vS3, vS4 der jeweiligen dritten bzw. vierten Standardzelle S3, S4 in der Netzliste ersetzt.
Auch diese verlustleistungsbalancierten Version vS3, vS4 der dritten bzw. vierten Standardzelle S3, S4 bestehen aus einem oberen und unteren Teil bestehend aus den vier logischen Grundfunktionen (UND, ODER, NAND, NOR) . Dabei ist bei der dritten verlustleistungsbalancierten Version vS3 der dritten Standardzelle S3 im oberen Teil die NAND-Funktion vernetzt und im unteren Teil werden die negierten Eingangssignale A_N, B_N derart verknüpft, dass am Ausgang die invertierte Funkti¬ on bzw. das invertierte Ausgangssignal Y_N zur NAND-Funktion zur Verfügung gestellt wird. Bei der vierten verlustleis- tungsbalancierten Version vS4 der vierten Standardzelle S4 wird im oberen Teil eine NOR-Funktion dargestellt. Durch den unteren Teil werden die negierten Eingangssignale A_N, B_N derart vernetzt, dass am Ausgang die invertierte Funktion bzw. das invertierte Ausgangssignal Y_N zur NOR-Funktion aus¬ gegeben wird. Nicht benötigte Ausgänge werde beispielsweise mit einem so genannten Dummy-Load beaufschlagt, um z.B. Stö¬ rungen, etc. zu verhindern.
In Figur 2b ist beispielhaft und schematisch eine fünfte Standardzelle S5 dargestellt. Die fünfte Standardzelle S5 ist ein beispielhafter Speicherblock S5, welcher z.B. als Flip- Flop ausgeführt ist. Ein derartige Speicherblock S5 bzw.
Flip-Flop S5 ist eine elektronische Schaltung, von welcher zwei stabile Zustände eingenommen werden können und von wel¬ cher damit eine Datenmenge von einem Bit gespeichert werden kann. Der beispielhaft und schematisch dargestellte Speicherblock S5 ist z.B. ein so genanntes D-Flip-Flop oder Delay- Flip-Flop, durch welches ein Datensignal um einen Takt verzö¬ gert werden kann. Der Speicherblock S5 weist einen Dateneingang D und einen Takteingang auf, sowie einen Ausgang Q und einen zugehörigen invertierten Ausgang QN. Durch den Speicherblock S5 bzw. das D-Flip-Flop S5 wird bei freigeschalte¬ tem Takteingang oder aktiver Taktflanke ein am Eingang D anliegender logischer Zustand gespeichert und in der Folge sein Wert am Ausgang Q ausgegeben. Liegt keine aktive Taktflanke an oder ist der Takteingang deaktiviert, so wird der Eingangswert D nicht übernommen.
Im vierten Verfahrensschritt 4 wird eine verlustleistungsba- lancierte Version vS5 des Speicherblocks S5 eingeführt bzw. der Standard-Speicherblock S5 durch diese Version vS5 in der Netzliste ersetzt. Bei der verlustleistungsbalancierten Version vS5 des Speicherblocks S5 bzw. des Flip-Flops S5 wird ein erster Speicherblock SP1 bzw. ein erstes Flip-Flop SP1 durch einen zweiten Speicherblock SP2 bzw. ein zweites Flip- Flop SP2 ergänzt. So wird z.B. beim Flip-Flop S5 das erste D- Flip-Flop SP1 mit einem zweiten D-Flip-Flop SP2 erweitert. Dateneingang D und Ausgang Q des ersten Speicherblocks SP1 bzw. ersten Flip-Flops SP1 werden z.B. über ein erstes Logikgatter miteinander verknüpft und bilden dann nach einer Verknüpfung mit einem Ausgang des zweiten Speicherblocks SP2 bzw. Flip-Flops SP2 einen Dateneingang des zweiten Speicherblocks SP2 bzw. Flip-Flops SP2. Insgesamt weist die verlust- leistungsbalancierte Version vS5 des Speicherblocks S5 einen Dateneingang D sowie einen Ausgang Q und einen zugehörigen invertierten Ausgang QN für die Vernetzung in der Netzliste auf. Allerdings ist die Verlustleistung der verlustleistungs- balancierten Version vS5 des Speicherblocks S5 weitgehend un- abhängig von einem Zustandswechsel , da beispielsweise das zweite Flip-Flop SP2 toggelt, wenn vom ersten Flip-Flop SP1 ein Zustand beibehalten wird und umgekehrt. Damit werden so genannte Seitenkanal-Attacken erheblich erschwert. Derartige verlustleistungsbalancierte Versionen können auch zu weiteren Speicherblöcken bzw. Flip-Flops wie z.B. T-Flip- Flops oder Toggle-Flip-Flops , etc. erstellt werden.
Durch das erfindungsgemäße Verfahren werden Standardzellen Sl, S2, S5 wie z.B. Logikgatter, Speicherblöcke, etc. in einer Netzliste durch entsprechende verlustleistungsbalancierte Versionen vSl, vS2, vS5 dieser Standardzellen Sl, S2, S5 ersetzt oder zu diesen ergänzt. Damit kann ein Er¬ folg von so genannten Seitenkanal-Attacken auf eine logische Schaltung bzw. einen ASIC maßgeblich reduziert werden.

Claims

Patentansprüche
Verfahren zur Erstellung einer logischen Schaltung, insbesondere einer so genannten anwendungsspezifischen, integrierten Schaltung oder ASIC, wobei eine in einer Hardwarebeschreibungssprache abgefasste Beschreibung der lo¬ gischen Schaltung von einem Übersetzungsprogramm in eine zumindest zum Großteil aus so genannten Standardzellen
(Sl, S2, S3, S4, S5) bestehende Beschreibung einer ent¬ sprechenden, physikalischen Schaltung, in eine so genannte Netzliste, umgewandelt wird (2,
3), dadurch gekenn¬ zeichnet, dass bei der Umwandlung die verwendeten Standardzellen (Sl, S2, S3, S4, S5) in der Netzliste durch entsprechende verlustleistungsbalancierte Versionen
(vSl, vS2, vS3, vS4, vS5) der verwendeten Standardzellen
(Sl, S2, S3, S4, S5) ersetzt werden (4) .
Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in der Netzliste verwendete Standardzellen (Sl, S2, S3, S4, S5) für die verlustleistungsbalancierten Versionen (vSl, vS2, vS3, vS4, vS5) dieser Standardzellen (Sl, S2, S3, S4, S5) derart ergänzt werden
(4), dass von der verlustleistungsbalancierten Version (vSl, vS2, vS3, vS4, vS5) einer Standardzelle (Sl, S2, S3, S4, S5) eine ur¬ sprüngliche Funktion und eine entsprechend zugehörige, invertierte Funktion zur Verfügung gestellt wird.
Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass als Standardzellen (Sl, S2, S3, S4) so genannte Logikgatter verwendet werden.
Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass als Standardzellen (S5) Spei¬ cherblöcke, insbesondere so genannte Flip-Flops, verwen¬ det werden.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass für eine verlustbalancierte Version (vS5) eines Speicherblocks (S5) ein erster Speicherblock (SP1) mit einem zweiten Speicherblock (SP2) derart ergänzt wird (4), dass immer wenn der erste Speicherblock (SP1) geschalten wird, vom zweiten Speicherblock (SP2) ein jeweiliger Zustand beibehalten wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch
gekennzeichnet, dass die verlustleistungsbalancier- ten Versionen (vSl, vS2, vS3, vS4, vS5) der Standardzel¬ len (Sl, S2, S3, S4, S5) in einer speziellen Bibliothek für ein Ersetzen in der Netzliste hinterlegt und zur Verfügung gestellt werden.
PCT/EP2013/057651 2012-04-27 2013-04-12 Verfahren zur herstellung einer dpa-resistenten logischen schaltung WO2013160122A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP13717247.4A EP2842066A1 (de) 2012-04-27 2013-04-12 Verfahren zur herstellung einer dpa-resistenten logischen schaltung
US14/396,500 US20150095861A1 (en) 2012-04-27 2013-04-12 Method for producing a dpa-resistant logic circuit
CN201380022118.8A CN104246779A (zh) 2012-04-27 2013-04-12 用于制造抗dpa的逻辑电路的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102012207065.6 2012-04-27
DE102012207065A DE102012207065A1 (de) 2012-04-27 2012-04-27 Verfahren zur Herstellung einer logischen Schaltung

Publications (1)

Publication Number Publication Date
WO2013160122A1 true WO2013160122A1 (de) 2013-10-31

Family

ID=48141962

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2013/057651 WO2013160122A1 (de) 2012-04-27 2013-04-12 Verfahren zur herstellung einer dpa-resistenten logischen schaltung

Country Status (5)

Country Link
US (1) US20150095861A1 (de)
EP (1) EP2842066A1 (de)
CN (1) CN104246779A (de)
DE (1) DE102012207065A1 (de)
WO (1) WO2013160122A1 (de)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10217375B4 (de) * 2002-04-18 2006-08-24 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Erzeugung eines Dual-Rail-Signals
US7260808B1 (en) * 2004-12-11 2007-08-21 National Semiconductor Corporation Method and metric for low power standard cell logic synthesis
CN101187963B (zh) * 2006-11-15 2010-05-12 北京同方微电子有限公司 一种对抗差分功耗分析的逻辑单元
US20110066906A1 (en) * 2009-09-14 2011-03-17 LSI Corporate Pulse Triggered Latches with Scan Functionality
CN101695021A (zh) * 2009-10-22 2010-04-14 杭州晟元芯片技术有限公司 一种抗spa/dpa攻击的系统和方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BRUNO VAQUIE ET AL: "A Secure D Flip-Flop against Side Channel Attacks", 26 September 2011, INTEGRATED CIRCUIT AND SYSTEM DESIGN. POWER AND TIMING MODELING, OPTIMIZATION, AND SIMULATION, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 331 - 340, ISBN: 978-3-642-24153-6, XP019166395 *
MAREK STRACHACKI ET AL: "Implementation of AES algorithm resistant to differential power analysis", ELECTRONICS, CIRCUITS AND SYSTEMS, 2008. ICECS 2008. 15TH IEEE INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 31 August 2008 (2008-08-31), pages 214 - 217, XP031362463, ISBN: 978-1-4244-2181-7 *
TIRI K ET AL: "A logic level design methodology for a secure DPA resistant ASIC or FPGA implementation", DESIGN, AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION, 2004. PROCEEDINGS FEB. 16-20, 2004, PISCATAWAY, NJ, USA,IEEE, vol. 1, 16 February 2004 (2004-02-16), pages 246 - 251, XP010684580, ISBN: 978-0-7695-2085-8, DOI: 10.1109/DATE.2004.1268856 *
TIRI K ET AL: "A VLSI Design Flow for Secure Side-Channel Attack Resistant ICs", DESIGN, AUTOMATION AND TEST IN EUROPE, 2005. PROCEEDINGS MUNICH, GERMANY 07-11 MARCH 2005, PISCATAWAY, NJ, USA,IEEE, 7 March 2005 (2005-03-07), pages 58 - 63, XP010780239, ISBN: 978-0-7695-2288-3 *

Also Published As

Publication number Publication date
US20150095861A1 (en) 2015-04-02
CN104246779A (zh) 2014-12-24
EP2842066A1 (de) 2015-03-04
DE102012207065A1 (de) 2013-10-31

Similar Documents

Publication Publication Date Title
DE112014000616T5 (de) Doppelstruktur-Taktbaumsynthese (CTS)
DE102013103806B4 (de) Verschieben von Zellengrenzen beim Layout eines Halbleiterbauteils
EP2660738A1 (de) Verteilungsleistungsflussanalysesystem und Verfahren
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102016110384A1 (de) Verfahren zum Halbleiterbauelementdesign und zur Halbleiterbauelementherstellung sowie entsprechende Halbleiterbauelemente
EP3244326A1 (de) Verfahren zum erstellen einer fpga-netzliste
DE102013114341A1 (de) Ein System, ein Verfahren und ein Computerprogrammprodukt zur automatischen Zwei-Phasen-Taktung
DE102009000322A1 (de) Nichtlinear rückgekoppeltes Schieberegister sowie Verfahren zur nichtlinearen Signaturbildung
DE102005037357B3 (de) Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
DE102020124791A1 (de) Verfahren zur Übertragung von Daten von einer ersten Recheneinheit zu einer zweiten Recheneinheit
WO2013004490A1 (de) Verfahren zum erzeugen einer zufälligen ausgangsbitfolge
Uhle et al. A SystemCAMS extension for the simulation of non-linear circuits
EP2842066A1 (de) Verfahren zur herstellung einer dpa-resistenten logischen schaltung
WO2014044510A1 (de) Identifikationsschaltung
DE102004009144B4 (de) Logikzelle und Verfahren zum Durchführen einer Dual-Rail-Logikoperation und Speichermedium
EP1723723B1 (de) Logik-grundzelle, logik-grundzellen-anordnung und logik-vorrichtung
EP2264901A2 (de) Integrierter Schaltkreis und Standartzelle eines integrierten Schaltkreises
DE60000981T2 (de) Vorrichtung und verfahren zur verzögerung von pulssignalen und pulstaktsignalen
EP3246832B1 (de) Verfahren zum schutz eines fpgas vor einer unautorisierten anwendung des rtl-quellcodes
JP5807887B1 (ja) プログラマブルロジックデバイス、プログラマブルロジックデバイスのエラー検証方法、及びプログラマブルロジックデバイスの回路形成方法
DE102012016610A1 (de) Echtzeit-Schaltungssimulation
EP3617928B1 (de) Verfahren zum speichern von schlüsseldaten in einem elektronischen bauteil
DE112008003831T5 (de) Synchrone sequentielle Logikvorrichtung mit doppelt getriggerten Flipflops sowie eine Methode zum gezielt zeitversetzten Triggern solcher zustandsspeichernden Register

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13717247

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2013717247

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 14396500

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE