EP0694846B1 - Programmed circuit for numerical scrambling - Google Patents

Programmed circuit for numerical scrambling Download PDF

Info

Publication number
EP0694846B1
EP0694846B1 EP95401789A EP95401789A EP0694846B1 EP 0694846 B1 EP0694846 B1 EP 0694846B1 EP 95401789 A EP95401789 A EP 95401789A EP 95401789 A EP95401789 A EP 95401789A EP 0694846 B1 EP0694846 B1 EP 0694846B1
Authority
EP
European Patent Office
Prior art keywords
data
permutation
circuit
memory
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
EP95401789A
Other languages
German (de)
French (fr)
Other versions
EP0694846A1 (en
Inventor
Sylvie Cabinet Ballot-Schmit Wuidart
Laurent Cabinet Ballot-Schmit Sourgen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of EP0694846A1 publication Critical patent/EP0694846A1/en
Application granted granted Critical
Publication of EP0694846B1 publication Critical patent/EP0694846B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Definitions

  • the invention relates to a scrambling method digital and its application to a programmable circuit, basically to protect from inspection the contents of an executable program.
  • the invention particularly applies to secure management circuits financial transactions.
  • the instruction data of a contained program in a program memory are usually protected by mixing physical addresses in memory of this instruction data. So this data doesn't are more stored in memory according to their address logical, but scattered.
  • a specific decoding circuit allows to find the real physical address in memory of instruction data according to its address logic.
  • This process provides protection against visual inspection of program memory.
  • the instruction data flows in clear on the data bus, to be executed by the circuit microprocessor.
  • the program can then be replenished. Protection in practice contribution is therefore limited.
  • An object of the invention is to improve the data protection in a circuit programmed in using a permutation scrambling process data bits.
  • Another object of the invention is a method of protection of this data easy to implement, allowing individual protection for each product.
  • program memory all the addresses physical data stored in executable code. These addresses can be in different memory circuits, for example in memories ROM and RAM.
  • the invention therefore relates to a method of digital scrambling of data.
  • the invention relates to a programmed circuit. comprising at least one bit permutation circuit data, for n-bit data.
  • the permutation circuit includes n permutation stages with n inputs and one outlet, each floor comprising n cells of permutation.
  • a permutation cell is made using the same technology as the cells of program memory.
  • an executable code generator discriminates instruction data from other data of a program, to apply interference by permutation of the bits or else to this data instructions, or other data. It's that which is represented in figure 1. We obtain a code executable that contains scrambled data among others who are not.
  • This executable code is stored in memory program of a programmable circuit: programming by mask in read only memory and / or download in memory rewritable (RAM, EEPROM or others).
  • a programmable circuit according to the invention is shown in Figure 2. It includes a unit of UC control which is a microprocessor type organ, with an instruction entry on a register RI instruction and data entry on a data register and which includes a unit programmed UP.
  • This programmed unit receives instruction data to execute from the registry RI instruction and controls the RD data register and for example arithmetic circuits and logic, or counters, grouped in a circuit of calculation referenced 1 in the figure.
  • computation circuit 1 receives data of the RD data register on which it performs calculations according to unit instructions programmed.
  • the different data are transferred to the data or instruction registers by a bus DBUS data connected to different memory circuits.
  • the circuit programmable includes ROM read only memory and rewritable memories, in the example a memory RAM and programmable and erasable memory electrically EEPROM.
  • the data of the program memory pass either in clear or scrambled on the data bus depending on whether they are instruction data or not.
  • DBr1 is placed at the input of instructions of the control unit, to unscramble the data instructions in program memory and transferred by the DBUS data bus. The data instructions are therefore scrambled on the bus data.
  • a permutation inverse is applied at the output of program memory, so that the instruction data is scrambled on the bus.
  • the scrambled data passes scrambled on the bus and a swap circuit is provided for data input from the control unit.
  • the method according to the invention therefore makes it possible to many combinations.
  • the instruction data stored in RAM have underwent two permutations: the first which is their specific, performed on code generation and second applied as memory input. And 1a second permutation is unscrambled before the data transmission on the bus. The second permutation is preferably different from the first applied to instruction data.
  • the method according to the invention allows apply different interference to data of program memory instructions as the one applied to other data: stored shapes, shapes transmitted different, and also to apply interference different to each of the rewritable memories: permutation or not, selection of the permutation of bits different from one rewritable memory to another.
  • Each permutation stage receives as input n bits of the data bus, i.e. D0-D7 in the example and delivers an unscrambled output bit: the stage of permutation Ep0 delivers the output bit Di0, whereas the permutation stage Ep7 delivers the output bit Di7. It is these output bits Di0-Di7 which are applied as input to the RI instruction register.
  • Each permutation stage includes n cells of permutation c0-c7 in the example whose function is that of a fuse, only one of n allowing the transmission of the associated input data bit on the floor output data bit.
  • Each permutation stage corresponds to a rank of different pass cell.
  • the floor cell Ep0 is c7 Ep1 c3 Ep2 c6 . . . Ep7 c0.
  • the scrambling method according to the invention allows so n! different scrambling possibilities for a data bus of width n bits.
  • each slice of n bits is swapped according to the invention.
  • the executable code generator must perform the scrambling of executable program data after have cut them into n-bit slices.
  • Ep1 For each permutation stage Ep0, Ep1 we have a middle interconnection layer DM0, DM1, connected to the output bit line of the floor.
  • Programming a permutation stage consists of then in an extension of the interconnection layer median at the local interconnection layer of a cell among the n cells of this stage of permutation.
  • stage Ep0 an extension of the interconnection layer median DM0 at the local interconnection layer D17 of cell c7 and for stage Ep1, we have an extension from the middle interconnection layer DM1 to the layer of local interconnection D13 of cell c3.
  • bit lines of input data D0-D7 are metal, and parallel between them and the output data bit line, for example Di0, is in polysilicon, in a plane between the plane of the data bit lines input and the substrate.
  • the layer contact interconnection point to the data bit line outlet is done by a metal line made in the same plane as the input data bit lines and parallel to them. This metal line is noted lm0 for the stage Ep0 and lm1 for the stage Ep1.
  • the middle or local interconnection layers can be made in diffusion, metal or others, based on programmable circuit technology.
  • the middle interconnection layer is it made of metal.
  • section AA represented in FIG. 5 we distinguishes for example for the stage Ep0 the line of Di0 polysilicon data output, connected to the metal line lm0 above, and the contacts of this metal line on the middle interconnection layer DM0 of the permutation stage Ep0.
  • the local interconnection layers D13 and D14 cells c3 and c4 of stages Ep0 and Ep1 are also visible in this figure 5. And, we see the extension of the middle interconnection layer DM1 to the layer local interconnection D13 of cell c3 of the floor Ep1.
  • Programming the permutation circuit according to the invention then consists according to this method of manufacturing to select layer extension interconnection layer at the interconnection layer locale which defines permutation, extension which goes allow the input bit line to be connected to the line output bit.
  • This programmable specialization is particularly easy to implement, allowing flexibility in adapting the manufacturing process to each programmable circuit: use of circuits of permutation on the other memories or not, with jamming identity or not, etc ... and allowing a different interference for each programmable circuit: We no longer have a protective identity within the same family. This results in protection considerably improved programmable circuits.
  • data programming executables scrambled in read-only memory is performed, using a middle interconnect layer to the same bit line and an interconnection layer local for each cell extended or not to the layer interconnection point according to the programmed state desired 0 or 1 of the cell.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Semiconductor Memories (AREA)

Description

L'invention concerne un procédé de brouillage numérique et son application à un circuit programmable, essentiellement pour protéger de l'inspection le contenu d'un programme exécutable. L'invention s'applique notamment aux circuits sécurisés de gestion de transactions financières.The invention relates to a scrambling method digital and its application to a programmable circuit, basically to protect from inspection the contents of an executable program. The invention particularly applies to secure management circuits financial transactions.

Les données d'instructions d'un programme contenu dans une mémoire programme sont habituellement protégées par mélange des adresses physiques en mémoire de ces données d'instructions. Ainsi, ces données ne sont plus rangées dans la mémoire selon leur adresse logique, mais éparpillées. En mode opérationnel du circuit programmable, un circuit de décodage spécifique permet de retrouver l'adresse physique réelle en mémoire d'une donnée d'instructions d'après son adresse logique.The instruction data of a contained program in a program memory are usually protected by mixing physical addresses in memory of this instruction data. So this data doesn't are more stored in memory according to their address logical, but scattered. In operational mode of programmable circuit, a specific decoding circuit allows to find the real physical address in memory of instruction data according to its address logic.

Ce procédé permet une protection contre l'inspection visuelle de la mémoire programme. Cependant, les données d'instructions transitent en clair sur le bus de données, pour être exécutées par le microprocesseur du circuit. Or, il est techniquement possible de placer un espion sur le bus de données, pour lire les données qui transitent. Le programme peut alors être reconstitué. En pratique la protection apportée est donc limitée.This process provides protection against visual inspection of program memory. However, the instruction data flows in clear on the data bus, to be executed by the circuit microprocessor. However, it is technically possible to place a spy on the data bus, to read the data in transit. The program can then be replenished. Protection in practice contribution is therefore limited.

En outre, la complexité du circuit de décodage d'adresse permettant de retrouver les adresses physiques réelles conduit à utiliser les mêmes clefs de codage et partant, le même circuit de décodage pour une famille de produits donnée, afin de réduire les coûts de fabrication.In addition, the complexity of the decoding circuit address to find the addresses real physics leads to using the same keys of coding and hence the same decoding circuit for a product family to reduce costs Manufacturing.

Or, si un fraudeur arrive à reconstituer le programme pour un des produits, il obtient une correspondance entre les adresses physiques et les adresses logiques, ce qui lui permettra de retrouver les clefs et l'algorithme utilisés pour mélanger les adresses. Il aura ainsi la solution pour toute la famille.However, if a fraudster succeeds in reconstructing the program for one of the products it gets a correspondence between physical addresses and logical addresses, which will allow it to find the keys and the algorithm used to mix the addresses. He will thus have the solution for the whole family.

Un dispositif qui brouille les données est connu de US-4,633,388.A device which scrambles the data is known from US-4,633,388.

Un objet de l'invention est d'améliorer la protection des données dans un circuit programmé en utilisant un procédé de brouillage par permutation de bits de données.An object of the invention is to improve the data protection in a circuit programmed in using a permutation scrambling process data bits.

Un autre objet de l'invention est un procédé de protection de ces données facile à mettre en oeuvre, permettant une protection individualisée pour chaque produit.Another object of the invention is a method of protection of this data easy to implement, allowing individual protection for each product.

On sait qu'un programme exécutable contient des données dont certaines constituent des instructions de ce programme.We know that an executable program contains data, some of which constitute instructions for This program.

On prévoit selon l'invention que ou bien ces données d'instructions ou bien les autres données sont brouillées dans la mémoire programme. C'est à dire que la permutation des bits de l'un de ces groupes de données est effectuée à la génération du code exécutable. De cette manière, on a en mémoire programme des données brouillées parmi d'autres données qui ne le sont pas.It is provided according to the invention that either these instruction data or other data is scrambled in program memory. Which means the bit swapping of one of these groups of data is performed at code generation executable. In this way, we have program memory scrambled data among other data that does not are not.

On rappelle que selon l'acception courante, on entend par mémoire programme, l'ensemble des adresses physiques auxquelles sont mémorisées des données du code exécutable. Ces adresses peuvent être dans des circuits mémoire différents, par exemple en mémoires ROM et RAM.We recall that according to the current meaning, we by program memory is meant all the addresses physical data stored in executable code. These addresses can be in different memory circuits, for example in memories ROM and RAM.

Telle que definie dans les revendications, l'invention concerne donc un procédé de brouillage numérique de données. As defined in the claims, the invention therefore relates to a method of digital scrambling of data.

L'invention concerne un circuit programmé comprenant au moins un circuit de permutation des bits de données, pour des données de n bits.The invention relates to a programmed circuit. comprising at least one bit permutation circuit data, for n-bit data.

Selon l'invention, le circuit de permutation comprend n étages de permutation à n entrées et une sortie, chaque étage comprenant n cellules de permutation.According to the invention, the permutation circuit includes n permutation stages with n inputs and one outlet, each floor comprising n cells of permutation.

Avantageusement, une cellule de permutation est réalisée selon la même technologie que les cellules de la mémoire programme.Advantageously, a permutation cell is made using the same technology as the cells of program memory.

D'autres caractéristiques et avantages de l'invention sont présentés dans la description suivante, faite à titre indicatif et non limitatif, et en référence aux dessins annexés dans lesquels :

  • la figure 1 représente le principe du brouillage selon l'invention,
  • la figure 2 est un schéma-bloc d'un circuit programmable protégé selon l'invention,
  • la figure 3 est un schéma de principe d'un circuit de permutation selon l'invention,
  • la figure 4 est un dessin topologique de deux étages d'un circuit de permutation selon l'invention et
  • la figure 5 est une vue en coupe AA du dessin topologique de la figure 4.
Other characteristics and advantages of the invention are presented in the following description, given by way of non-limiting example, and with reference to the appended drawings in which:
  • FIG. 1 represents the principle of interference according to the invention,
  • FIG. 2 is a block diagram of a protected programmable circuit according to the invention,
  • FIG. 3 is a block diagram of a permutation circuit according to the invention,
  • FIG. 4 is a topological drawing of two stages of a permutation circuit according to the invention and
  • FIG. 5 is a sectional view AA of the topological drawing of FIG. 4.

Selon l'invention, un générateur de code exécutable discrimine les données d'instruction des autres données d'un programme, pour appliquer un brouillage par permutation des bits ou bien à ces données d'instructions, ou bien aux autres données. C'est ce qui est représenté sur la figure 1. On obtient un code exécutable qui contient des données brouillées parmi d'autres qui ne le sont pas.According to the invention, an executable code generator discriminates instruction data from other data of a program, to apply interference by permutation of the bits or else to this data instructions, or other data. It's that which is represented in figure 1. We obtain a code executable that contains scrambled data among others who are not.

Ce code exécutable est mémorisé en mémoire programme d'un circuit programmable : programmation par masque en mémoire morte et/ou téléchargement en mémoire réinscriptible (RAM, EEPROM ou autres).This executable code is stored in memory program of a programmable circuit: programming by mask in read only memory and / or download in memory rewritable (RAM, EEPROM or others).

Un circuit programmable selon l'invention est représenté en figure 2. Il comprend une unité de commande UC qui est un organe du type microprocesseur, avec une entrée d'instructions sur un registre d'instruction RI et une entrée de données sur un registre de données et qui comprend une unité programmée UP. Cette unité programmée reçoit des données d'instructions à exécuter du registre d'instruction RI et contrôle le registre de données RD et par exemple des circuits de calcul arithmétique et logique, ou des compteurs, regroupés dans un circuit de calcul référencé 1 sur la figure. Dans l'exemple représenté, le circuit de calcul 1 reçoit des données du registre de données RD sur lesquelles il effectue des calculs selon les instructions de l'unité programmée.A programmable circuit according to the invention is shown in Figure 2. It includes a unit of UC control which is a microprocessor type organ, with an instruction entry on a register RI instruction and data entry on a data register and which includes a unit programmed UP. This programmed unit receives instruction data to execute from the registry RI instruction and controls the RD data register and for example arithmetic circuits and logic, or counters, grouped in a circuit of calculation referenced 1 in the figure. In the example shown, computation circuit 1 receives data of the RD data register on which it performs calculations according to unit instructions programmed.

Les différentes données sont transférées vers les registres de données ou d'instructions par un bus de données DBUS connecté à différents circuits mémoire.The different data are transferred to the data or instruction registers by a bus DBUS data connected to different memory circuits.

Dans l'exemple représenté à la figure 2, le circuit programmable comprend une mémoire morte ROM et des mémoires réinscriptibles, dans l'exemple une mémoire vive RAM et une mémoire programmable et effaçable électriquement EEPROM.In the example shown in Figure 2, the circuit programmable includes ROM read only memory and rewritable memories, in the example a memory RAM and programmable and erasable memory electrically EEPROM.

Dans cet exemple, on prévoit que du code exécutable est mémorisé en mémoires ROM et RAM.In this example, we expect that executable code is stored in ROM and RAM memories.

Selon l'invention, on prévoit que les données de la mémoire programme transitent soit en clair, soit brouillées sur le bus de données selon qu'elles sont des données d'instructions ou non.According to the invention, it is expected that the data of the program memory pass either in clear or scrambled on the data bus depending on whether they are instruction data or not.

De préférence, on choisi que ce sont les données d'instructions qui transitent brouillées. Et un circuit de permutation DBr1 est placé en entrée d'instructions de l'unité de commande, pour débrouiller les données instructions contenues dans la mémoire programme et transférées par le bus de données DBUS. Les données d'instructions transitent donc brouillées sur le bus de données.Preferably, we choose that it is the data of instructions that pass through scrambled. And a circuit of permutation DBr1 is placed at the input of instructions of the control unit, to unscramble the data instructions in program memory and transferred by the DBUS data bus. The data instructions are therefore scrambled on the bus data.

Si ce sont les autres données qui ont été brouillées par le générateur de code, une permutation inverse est appliquée en sortie de mémoire programme, en sorte que les données d'instructions sont brouillées sur le bus. Ou bien les données brouillées transitent brouillées sur le bus et un circuit de permutation est prévu en entrée de données de l'unité de commande.If it was the other data that was scrambled by the code generator a permutation inverse is applied at the output of program memory, so that the instruction data is scrambled on the bus. Or the scrambled data passes scrambled on the bus and a swap circuit is provided for data input from the control unit.

Le procédé selon l'invention permet donc de nombreuses combinaisons.The method according to the invention therefore makes it possible to many combinations.

Dans l'exemple représenté à la figure 2, qui s'adresse plus particulièrement au cas où les données d'instructions transitent brouillées sur le bus parmi les autres données en clair, on a prévu deux autres circuits de permutation DBr2 et DBr3. Le premier est placé entre la mémoire RAM et le bus de données, et le second est placé entre la mémoire EEPROM et le bus de données. De cette manière, les données mémorisées dans ces deux mémoires réinscriptibles sont brouillées respectivement selon une seconde et troisième permutation, mais transitent débrouillées sur le bus de données.In the example shown in Figure 2, which is intended more particularly for cases where the data of instructions pass through scrambled on the bus among the other data in clear, we planned two other permutation circuits DBr2 and DBr3. The first is placed between the RAM memory and the data bus, and the second is placed between the EEPROM memory and the bus data. In this way, the data stored in these two rewritable memories are scrambled respectively according to a second and third permutation, but transit unscrambled on the bus data.

Plus précisément, dans l'exemple représenté, les données d'instructions mémorisées en mémoire RAM ont subi deux permutations : la première qui leur est spécifique, réalisée à la génération du code et la deuxième appliquée en entrée de la mémoire. Et 1a deuxième permutation est débrouillée avant la transmission des données sur le bus. La deuxième permutation est de préférence différente de la première appliquée aux données d'instructions.More specifically, in the example shown, the instruction data stored in RAM have underwent two permutations: the first which is their specific, performed on code generation and second applied as memory input. And 1a second permutation is unscrambled before the data transmission on the bus. The second permutation is preferably different from the first applied to instruction data.

On pourrait aussi avoir une autre mémoire sans circuit de permutation associé.We could also have another memory without associated permutation circuit.

Ainsi, le procédé selon l'invention permet d'appliquer un brouillage différent aux données d'instructions de la mémoire programme que celui appliqué aux autres données: formes mémorisées, formes transmises différentes, et aussi d'appliquer un brouillage différent à chacune des mémoires réinscriptibles: permutation ou non, sélection de la permutation des bits différente d'une mémoire réinscriptible à l'autre.Thus, the method according to the invention allows apply different interference to data of program memory instructions as the one applied to other data: stored shapes, shapes transmitted different, and also to apply interference different to each of the rewritable memories: permutation or not, selection of the permutation of bits different from one rewritable memory to another.

Selon l'invention, on accroit ainsi les difficultés d'espionnage des données et de compréhension du dispositif de protection.According to the invention, the difficulties are thus increased spying on data and understanding the protection device.

La structure retenue dépendra principalement de l'application visée. Enfin, on verra que l'on peut facilement utiliser des permutations différentes d'un circuit programmable à l'autre.The structure chosen will mainly depend on the intended application. Finally, we will see that we can easily use different permutations of a programmable circuit to another.

Un exemple de réalisation d'un circuit de permutation utilisé dans l'invention est détaillé sur le schéma de principe de la figure 3.An example of realization of a circuit of permutation used in the invention is detailed on the block diagram of Figure 3.

Le bus de données DBUS ayant une largeur de n bits, le circuit de permutation comprend n étages de permutation, soit Ep0 à Ep7 dans l'exemple (n = 8).The DBUS data bus having a width of n bits, the permutation circuit comprises n stages of permutation, that is Ep0 to Ep7 in the example (n = 8).

Chaque étage de permutation reçoit en entrée les n bits du bus de données, soit D0-D7 dans l'exemple et délivre un bit de sortie débrouillé : l'étage de permutation Ep0 délivre le bit de sortie Di0, ..... l'étage de permutation Ep7 délivre le bit de sortie Di7. Ce sont ces bits de sortie Di0-Di7 qui sont appliqués en entrée du registre d'instructions RI.Each permutation stage receives as input n bits of the data bus, i.e. D0-D7 in the example and delivers an unscrambled output bit: the stage of permutation Ep0 delivers the output bit Di0, ..... the permutation stage Ep7 delivers the output bit Di7. It is these output bits Di0-Di7 which are applied as input to the RI instruction register.

Chaque étage de permutation comprend n cellules de permutation c0-c7 dans l'exemple dont la fonction est celle d'un fusible, une seule parmi n permettant la transmission du bit de données d'entrée associé sur le bit de donnée de sortie de l'étage.Each permutation stage includes n cells of permutation c0-c7 in the example whose function is that of a fuse, only one of n allowing the transmission of the associated input data bit on the floor output data bit.

A chaque étage de permutation correspond un rang de cellule passante différent.Each permutation stage corresponds to a rank of different pass cell.

Dans l'exemple représenté, la cellule passante de l'étage
   Ep0 est c7
   Ep1   c3
   Ep2   c6
     .
     .
     .
   Ep7   c0.
In the example shown, the floor cell
Ep0 is c7
Ep1 c3
Ep2 c6
.
.
.
Ep7 c0.

Le circuit de permutation DBr1 est ainsi caractérisé par une sélection de permutation pour chaque étage. Pour un bus de n bits de données, on a :

  • n possibilités pour le premier étage Ep0;
  • n-1 possibilités pour le deuxième étage Ep1;
  • et ainsi de suite.
  • The permutation circuit DBr1 is thus characterized by a permutation selection for each stage. For a bus with n data bits, we have:
  • n possibilities for the first stage Ep0;
  • n-1 possibilities for the second stage Ep1;
  • And so on.
  • Le procédé de brouillage selon l'invention permet ainsi n! possibilités différentes de brouillage pour un bus de données de largeur n bits.The scrambling method according to the invention allows so n! different scrambling possibilities for a data bus of width n bits.

    Si les mémoires ont une largeur différente du bus de n bits données et notamment une plus grande largeur, chaque tranche de n bits subit la permutation selon l'invention. Et si la mémoire programme est plus large, le générateur de codé exécutable devra effectuer le brouillage des données de programme exécutable après les avoir découpées par tranches de n bits.If the memories have a different width of the bus of n given bits and in particular a greater width, each slice of n bits is swapped according to the invention. And if the program memory is larger, the executable code generator must perform the scrambling of executable program data after have cut them into n-bit slices.

    Un exemple de réalisation d'un circuit de permutation selon l'invention est représenté en figures 4 et 5.An example of realization of a circuit of permutation according to the invention is shown in figures 4 and 5.

    La figure 4 représente un dessin topologique de deux étages de permutation Ep0 et Ep1 à n = 8 bits d'entrée (D0-D7) et un bit de sortie, respectivement Di0 et Di1, et la figure 5 représente une coupe AA de ce dessin. Figure 4 shows a topological drawing of two permutation stages Ep0 and Ep1 at n = 8 bits input (D0-D7) and one output bit, respectively Di0 and Di1, and FIG. 5 represents a section AA of this drawing.

    Pour chaque étage de permutation Ep0, Ep1 on a une couche d'interconnexion médiane DM0, DM1, connectée à la ligne de bit de sortie de l'étage.For each permutation stage Ep0, Ep1 we have a middle interconnection layer DM0, DM1, connected to the output bit line of the floor.

    Et, pour chaque cellule c0-c7 d'un étage de permutation, on a une couche d'interconnexion locale connectée à la ligne de bit d'entrée associée à cette cellule. Par exemple, on a une couche d'interconnexion locale D10 pour la cellule c0, connectée à la ligne de bit de données d'entrée D0.And, for each cell c0-c7 of a stage of permutation, we have a local interconnection layer connected to the input bit line associated with this cell. For example, we have an interconnection layer local D10 for cell c0, connected to the line of input data bit D0.

    La programmation d'un étage de permutation consiste alors en une extension de la couche d'interconnexion médiane à la couche d'interconnexion locale d'une cellule parmi les n cellules de cet étage de permutation. Dans l'exemple représenté, on a ainsi pour l'étage Ep0 une extension de la couche d'interconnexion médiane DM0 à la couche d'interconnexion locale D17 de la cellule c7 et pour l'étage Ep1, on a une extension de la couche d'interconnexion médiane DM1 à la couche d'interconnexion locale D13 de la cellule c3.Programming a permutation stage consists of then in an extension of the interconnection layer median at the local interconnection layer of a cell among the n cells of this stage of permutation. In the example shown, we thus have for stage Ep0 an extension of the interconnection layer median DM0 at the local interconnection layer D17 of cell c7 and for stage Ep1, we have an extension from the middle interconnection layer DM1 to the layer of local interconnection D13 of cell c3.

    Dans l'exemple représenté, les lignés de bit de données d'entrée D0-D7 sont en métal, et parallèles entre elles et la ligne de bit de données de sortie, par exemple Di0, est en polysilicium, dans un plan compris entre le plan des lignes de bit de données d'entrée et le substrat. Le contact de la couche d'interconnexion médiane à la ligne de bit de données de sortie se fait par une ligne de métal réalisée dans le même plan que les lignes de bit de données d'entrée et parallèle à celles-ci. Cette ligne de métal est notée lm0 pour l'étage Ep0 et lm1 pour l'étage Ep1.In the example shown, the bit lines of input data D0-D7 are metal, and parallel between them and the output data bit line, for example Di0, is in polysilicon, in a plane between the plane of the data bit lines input and the substrate. The layer contact interconnection point to the data bit line outlet is done by a metal line made in the same plane as the input data bit lines and parallel to them. This metal line is noted lm0 for the stage Ep0 and lm1 for the stage Ep1.

    Les couches d'interconnexion médianes ou locales peuvent être réalisées en diffusion, en métal ou autres, selon la technologie du circuit programmable. The middle or local interconnection layers can be made in diffusion, metal or others, based on programmable circuit technology.

    Par exemple et comme plus particulièrement représenté en figures 4 et 5, elles sont réalisées en diffusion, par implantation ionique (appelé procédé d'implant). Ou bien la couche d'interconnexion médiane est elle en métal.For example and as more particularly shown in Figures 4 and 5, they are made in diffusion, by ion implantation (called process implant). Or the middle interconnection layer is it made of metal.

    En coupe AA représentée sur la figure 5, on distingue par exemple pour l'étage Ep0 la ligne de sortie de données en polysilicium Di0, connectée à la ligne de métal lm0 au-dessus, et les contacts de cette ligne de métal sur la couche d'interconnexion médiane DM0 de l'étage de permutation Ep0.In section AA represented in FIG. 5, we distinguishes for example for the stage Ep0 the line of Di0 polysilicon data output, connected to the metal line lm0 above, and the contacts of this metal line on the middle interconnection layer DM0 of the permutation stage Ep0.

    Les couches d'interconnexions locales D13 et D14 des cellules c3 et c4 des étages Ep0 et Ep1 sont aussi visibles sur cette figure 5. Et, on voit l'extension de la couche d'interconnexion médiane DM1 à la couche d'interconnexion locale D13 de la cellule c3 de l'étage Ep1.The local interconnection layers D13 and D14 cells c3 and c4 of stages Ep0 and Ep1 are also visible in this figure 5. And, we see the extension of the middle interconnection layer DM1 to the layer local interconnection D13 of cell c3 of the floor Ep1.

    La particularisation d'un étage de permutation se fait donc par extension de la couche d'interconnexion médiane à la couche d'interconnexion locale qui contacte la ligne de bit de donnée d'entrée sélectionnée (dessin du masque).The specialization of a permutation stage is therefore by extension of the interconnection layer median to the local interconnect layer which contact the input data bit line selected (mask drawing).

    La programmation du circuit de permutation selon l'invention, consiste alors selon ce procédé de fabrication à sélectionner l'extension de couche d'interconnexion médiane à la couche d'interconnexion locale qui définit la permutation, extension qui va permettre de relier la ligne de bit d'entrée à la ligne de bit de sortie.Programming the permutation circuit according to the invention then consists according to this method of manufacturing to select layer extension interconnection layer at the interconnection layer locale which defines permutation, extension which goes allow the input bit line to be connected to the line output bit.

    Cette particularisation programmable est particulièrement aisée à mettre en oeuvre, permettant une souplesse d'adaptation du procédé de fabrication à chaque circuit programmable : utilisation de circuits de permutation sur les autres mémoires ou non, avec identité de brouillage ou non, etc... et permettant un brouillage différent pour chaque circuit programmable : On n'a plus d'identité de protection au sein d'une même famille. Il en résulte une protection considérablement améliorée des circuits programmables.This programmable specialization is particularly easy to implement, allowing flexibility in adapting the manufacturing process to each programmable circuit: use of circuits of permutation on the other memories or not, with jamming identity or not, etc ... and allowing a different interference for each programmable circuit: We no longer have a protective identity within the same family. This results in protection considerably improved programmable circuits.

    Avantageusement, pour une mémoire programme de type mémoire morte, on utilise le même procédé de fabrication que pour le circuit de permutation :

    • d'une part, on réalise les cellules de permutation et les cellules de mémoire morte dans les mêmes étapes de fabrication, avec les mêmes masques, au moyen des mêmes types de couches d'interconnexion; la programmation ou particularisation du circuit pour le programme et le brouillage spécifiés par le client se fait au même niveau de fabrication, d'où une grande simplification de la fabrication;
    • d'autre part, on augmente la difficulté d'inspection visuelle du circuit par utilisation de technologies similaires.
    Advantageously, for a program memory of the read only memory type, the same manufacturing method is used as for the permutation circuit:
    • on the one hand, the permutation cells and the read-only memory cells are produced in the same manufacturing steps, with the same masks, by means of the same types of interconnection layers; the programming or specificization of the circuit for the program and the interference specified by the customer is done at the same level of manufacturing, hence a great simplification of manufacturing;
    • on the other hand, the difficulty of visual inspection of the circuit is increased by the use of similar technologies.

    Selon le procédé décrit en relation avec les figures 4 et 5, la programmation des données exécutables brouillées en mémoire morte est réalisée, en utilisant une couche d'interconnexion médiane pour une même ligne de bit et une couche d'interconnexion locale pour chaque cellule étendue ou non à la couche d'interconnexion médiane selon l'état programmé voulu 0 ou 1 de la cellule.According to the process described in relation to Figures 4 and 5, data programming executables scrambled in read-only memory is performed, using a middle interconnect layer to the same bit line and an interconnection layer local for each cell extended or not to the layer interconnection point according to the programmed state desired 0 or 1 of the cell.

    Claims (9)

    1. Programmed circuit comprising a program memory (ROM, RAM) connected by at least one data bus (DBUS) to a control unit (UC), the program memory containing data of an executable code scrambled by applying a permutation of bits to data of the said code, the said permutation being applied either to the instruction data or to other data of the said code and the programmed circuit comprising at least a first permutation circuit (DBr1) between the said data bus and an instruction input or a data input of the said control unit, characterised in that the said permutation circuit comprises n input bit lines (D0-D7) and supplies as an output n output bit lines (Di0-Di7), and n programmed permutation stages (Ep0-Ep7) per mask, each permutation stage (Ep0) receiving the said n input bit lines (D0-D7) and supplying a single output bit line (Di0), and comprising one permutation cell (c0-c7) per input bit line (D0-D7), the programming of each stage consisting of making, in only one cell (c7) amongst the n cells of each stage, an electrical interconnection between the input bit line (D7) electrically connected to the said cell and the output bit line of the stage (Di0), the electrical connections to the input data bit lines and to the output bit lines and the interconnections corresponding to levels of manufacture and interconnection of the circuit.
    2. Programmed circuit according to Claim 1, characterised in that the scrambled data of the executable code stored in program memory are the data other than the instruction data and in that another permutation circuit is provided, placed between the program memory and the data bus, in order to apply a corresponding scrambling to these data, and to apply a corresponding scrambling to the instruction data before they are transmitted over the data bus, the first permutation circuit (DBr1) being provided at the instruction input of the control unit (UC).
    3. Programmed circuit according to Claim 1 or 2, in which the instruction data of the program memory pass scrambled over the data bus and in which the first permutation circuit (DBr1) is applied as an instruction input of the control unit (UC), and comprising one or more writeable or rewriteable memories (RAM, EEPROM) belonging or not to the program memory, characterised in that it comprises at least one other permutation circuit (DBr2), placed between the data bus (DBUS) and a writeable or rewriteable memory (RAM), in order to apply a corresponding jamming to the data coming from the data bus and to be written in the said memory and to apply a corresponding unscrambling to the data of the said memory to be transmitted over the bus.
    4. Programmed circuit according to Claim 3, characterised in that the permutation circuits (DBr2, DBr3) associated with different writeable or rewriteable memories effect different permutations.
    5. Programmed circuit according to Claim 3 or 4, characterised in that the first permutation circuit (DBr1) at the instruction input of the control unit and a permutation circuit (DBr2) associated with a writeable or rewriteable memory (RAM) are such that they effect different permutations.
    6. Programmed circuit according to any one of the preceding claims, characterised in that each permutation cell (c0) associated with an input data bit line (D0) of a permutation stage comprises a local interconnection line (D10) connected to the said input bit line (D0), and in that each permutation stage (Ep0) comprises a middle interconnection line (DM0) connected to the output data bit line (Di0), the programmed interconnection in each stage consisting of an extension of the said middle interconnection line (DM0) to the said local interconnection line (D10) of one cell amongst the n cells of the said permutation stage.
    7. Programmed circuit according to Claim 6, characterised in that the middle interconnection line (DM0) and the local interconnection lines (D10-D17) are interconnection lines produced by ion implantation.
    8. Programmed circuit according to Claim 7, characterised in that the middle interconnection line (DM0) of each permutation stage is produced from metal and the local interconnection line (D10-D17) in diffusion, by ion implantation.
    9. Programmed circuit according to any one of Claims 1 to 5, comprising a read only memory (ROM), characterised in that the permutation cells (c0-c7) are produced like the cells of the said read only memory.
    EP95401789A 1994-07-29 1995-07-27 Programmed circuit for numerical scrambling Expired - Lifetime EP0694846B1 (en)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    FR9409485A FR2723223B1 (en) 1994-07-29 1994-07-29 DIGITAL INTERFERENCE METHOD AND APPLICATION TO A PROGRAMMABLE CIRCUIT
    FR9409485 1994-07-29

    Publications (2)

    Publication Number Publication Date
    EP0694846A1 EP0694846A1 (en) 1996-01-31
    EP0694846B1 true EP0694846B1 (en) 2002-05-22

    Family

    ID=9465930

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    EP95401789A Expired - Lifetime EP0694846B1 (en) 1994-07-29 1995-07-27 Programmed circuit for numerical scrambling

    Country Status (5)

    Country Link
    US (1) US5850452A (en)
    EP (1) EP0694846B1 (en)
    JP (1) JPH08123680A (en)
    DE (1) DE69526753D1 (en)
    FR (1) FR2723223B1 (en)

    Families Citing this family (23)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    AUPO521897A0 (en) * 1997-02-20 1997-04-11 Telstra R & D Management Pty Ltd Invisible digital watermarks
    US6003117A (en) 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
    EP0929040A3 (en) * 1997-12-25 2007-06-27 Nippon Telegraph and Telephone Corporation Microprocessor with data randomizing
    WO2000026791A2 (en) * 1998-11-05 2000-05-11 Koninklijke Philips Electronics N.V. Secure memory management unit which uses multiple cryptographic algorithms
    DE19922155A1 (en) * 1999-05-12 2000-11-23 Giesecke & Devrient Gmbh Memory arrangement and memory access procedure for microcomputers has an additional scrambling step to increase data security, for use in financial applications etc.
    JP2001243791A (en) * 2000-02-25 2001-09-07 Mitsubishi Electric Corp Data storage device, data measuring device, semiconductor analyzing device, and semiconductor device
    US7620832B2 (en) * 2000-09-20 2009-11-17 Mips Technologies, Inc. Method and apparatus for masking a microprocessor execution signature
    DE10101552A1 (en) * 2001-01-15 2002-07-25 Infineon Technologies Ag Cache memory and addressing method
    US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
    US7237097B2 (en) * 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
    US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
    US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
    US7318145B1 (en) 2001-06-01 2008-01-08 Mips Technologies, Inc. Random slip generator
    KR100428786B1 (en) * 2001-08-30 2004-04-30 삼성전자주식회사 Integrated circuit capable of protecting input/output data over internal bus
    US7913083B2 (en) * 2003-09-05 2011-03-22 Telecom Italia S.P.A. Secret-key-controlled reversible circuit and corresponding method of data processing
    US7933405B2 (en) * 2005-04-08 2011-04-26 Icera Inc. Data access and permute unit
    US7594101B2 (en) 2006-02-06 2009-09-22 Stmicroelectronics S.A. Secure digital processing unit and method for protecting programs
    EP1930834A1 (en) * 2006-12-05 2008-06-11 Siemens Schweiz AG Cryptographically secured processor system
    KR100849956B1 (en) * 2007-01-29 2008-08-01 삼성전자주식회사 Semiconductor device and scrammbling data transfer method thereof
    CN101978647A (en) * 2008-01-31 2011-02-16 耶德托公司 Securing a smart card
    US8375225B1 (en) 2009-12-11 2013-02-12 Western Digital Technologies, Inc. Memory protection
    US9983990B1 (en) * 2013-11-21 2018-05-29 Altera Corporation Configurable storage circuits with embedded processing and control circuitry
    US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor

    Family Cites Families (8)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US3958081A (en) * 1975-02-24 1976-05-18 International Business Machines Corporation Block cipher system for data security
    US3962539A (en) * 1975-02-24 1976-06-08 International Business Machines Corporation Product block cipher system for data security
    US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
    US4172213A (en) * 1977-11-17 1979-10-23 Burroughs Corporation Byte stream selective encryption/decryption device
    US4203166A (en) * 1977-12-05 1980-05-13 International Business Machines Corporation Cryptographic file security for multiple domain networks
    FR2504730A1 (en) * 1981-04-28 1982-10-29 Efcis Integrated circuit using MOS type field effect transistors - having interconnections at different levels
    US4633388A (en) * 1984-01-18 1986-12-30 Siemens Corporate Research & Support, Inc. On-chip microprocessor instruction decoder having hardware for selectively bypassing on-chip circuitry used to decipher encrypted instruction codes
    US5095525A (en) * 1989-06-26 1992-03-10 Rockwell International Corporation Memory transformation apparatus and method

    Non-Patent Citations (1)

    * Cited by examiner, † Cited by third party
    Title
    PELLERIN D., HOLLEY M.: "Practical Design using Programmable Logic", 1991, PRENTICE HALL, ENGLEWOOD CLIFFS NJ 07632 *

    Also Published As

    Publication number Publication date
    FR2723223B1 (en) 1996-08-30
    FR2723223A1 (en) 1996-02-02
    US5850452A (en) 1998-12-15
    JPH08123680A (en) 1996-05-17
    EP0694846A1 (en) 1996-01-31
    DE69526753D1 (en) 2002-06-27

    Similar Documents

    Publication Publication Date Title
    EP0694846B1 (en) Programmed circuit for numerical scrambling
    CA2480896C (en) Method for making secure an electronic entity with encrypted access
    WO1994011829A1 (en) Synchronous smart card authentication and encryption circuit and method
    FR2629248A1 (en) SINGLE PROGRAMMING MEMORY TEST METHOD AND CORRESPONDING MEMORY
    EP0051525B1 (en) Logic array with simplified electric programming
    FR3075444A1 (en) SYSTEM COMPRISING A MEMORY ADAPTED TO IMPLEMENT CALCULATION OPERATIONS
    EP1159797B1 (en) Countermeasure method in an electronic component using a secret key cryptographic algorithm
    EP0275765B1 (en) Integrated circuit for digital signal processing
    EP0703528B1 (en) Electronic circuit for modulo computation in a finite field
    EP1269290B1 (en) Countermeasure method for a microcontroller based on a pipeline architecture
    FR2871310A1 (en) CONFIGURABLE LOGIC CIRCUIT RESISTANT TO DPA ATTACK
    FR2728980A1 (en) DEVICE FOR SECURING INFORMATION SYSTEMS ORGANIZED AROUND MICROPROCESSORS
    EP2284690A2 (en) Masking of a calculation performed according to an RSA-CRT algorithm
    EP1715410B1 (en) Protection of a calculation performed by an integrated circuit
    FR2850768A1 (en) Configurable electronic device for performing arithmetic calculation, has programmable circuit including granularity of programming of bits where circuit generates clock and control signals for arithmetic cells
    EP0586472A1 (en) Cryptographic device for data sequence not using a key
    EP1119940B1 (en) Countermeasure method in an electronic component using a secret key cryptographic algorithm
    EP0142412A1 (en) Device for the transformation of the appearance probability of logic vectors and for the generation of time-variable probability vector sequences
    CA2234478C (en) Improvements to smart cards
    EP1109103B1 (en) Process for secured data transfer
    FR2742560A1 (en) MULTI-PARALLEL PROCESSOR TABLE ARCHITECTURE
    EP2471210A1 (en) Counter-measurement method and device for protecting data circulating in an electrical component
    FR2615638A1 (en) COMPUTER OR TELEMATIC ENABLING DEVICE AND METHOD
    FR2772160A1 (en) CIRCUIT FOR CALCULATING FAST FOURIER TRANSFORMATION AND REVERSE QUICK FOURIER TRANSFORMATION
    EP0329572B1 (en) Multiplier of binary numbers having a very large number of bits

    Legal Events

    Date Code Title Description
    PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

    Free format text: ORIGINAL CODE: 0009012

    AK Designated contracting states

    Kind code of ref document: A1

    Designated state(s): DE FR GB IT

    17P Request for examination filed

    Effective date: 19960723

    RAP3 Party data changed (applicant data changed or rights of an application transferred)

    Owner name: STMICROELECTRONICS S.A.

    17Q First examination report despatched

    Effective date: 19990924

    RTI1 Title (correction)

    Free format text: PROGRAMMED CIRCUIT FOR NUMERICAL SCRAMBLING

    GRAG Despatch of communication of intention to grant

    Free format text: ORIGINAL CODE: EPIDOS AGRA

    RTI1 Title (correction)

    Free format text: PROGRAMMED CIRCUIT FOR NUMERICAL SCRAMBLING

    GRAG Despatch of communication of intention to grant

    Free format text: ORIGINAL CODE: EPIDOS AGRA

    GRAH Despatch of communication of intention to grant a patent

    Free format text: ORIGINAL CODE: EPIDOS IGRA

    RAP1 Party data changed (applicant data changed or rights of an application transferred)

    Owner name: STMICROELECTRONICS S.A.

    GRAH Despatch of communication of intention to grant a patent

    Free format text: ORIGINAL CODE: EPIDOS IGRA

    GRAA (expected) grant

    Free format text: ORIGINAL CODE: 0009210

    PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

    Ref country code: IT

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED.

    Effective date: 20020522

    Ref country code: GB

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20020522

    REG Reference to a national code

    Ref country code: GB

    Ref legal event code: FG4D

    Free format text: NOT ENGLISH

    REF Corresponds to:

    Ref document number: 69526753

    Country of ref document: DE

    Date of ref document: 20020627

    PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

    Ref country code: DE

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20020823

    GBV Gb: ep patent (uk) treated as always having been void in accordance with gb section 77(7)/1977 [no translation filed]

    Effective date: 20020522

    PLBE No opposition filed within time limit

    Free format text: ORIGINAL CODE: 0009261

    STAA Information on the status of an ep patent application or granted ep patent

    Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

    26N No opposition filed

    Effective date: 20030225

    PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

    Ref country code: FR

    Payment date: 20140721

    Year of fee payment: 20