EP1949292A1 - Method for securely handling data during the running of cryptographic algorithms on embedded systems - Google Patents

Method for securely handling data during the running of cryptographic algorithms on embedded systems

Info

Publication number
EP1949292A1
EP1949292A1 EP06819181A EP06819181A EP1949292A1 EP 1949292 A1 EP1949292 A1 EP 1949292A1 EP 06819181 A EP06819181 A EP 06819181A EP 06819181 A EP06819181 A EP 06819181A EP 1949292 A1 EP1949292 A1 EP 1949292A1
Authority
EP
European Patent Office
Prior art keywords
data
memory area
copying
operations
memory areas
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.)
Withdrawn
Application number
EP06819181A
Other languages
German (de)
French (fr)
Inventor
Benoit Chevallier-Mames
Mathieu Ciet
Karine Villegas
Jacques Fournier
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.)
Thales DIS France SA
Original Assignee
Gemplus SCA
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 Gemplus SCA filed Critical Gemplus SCA
Publication of EP1949292A1 publication Critical patent/EP1949292A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • 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/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack

Definitions

  • the present invention relates to a method for countering hidden channel type attacks during data manipulation, typically when executing cryptographic algorithms on an electronic component. These can be secret key or public key algorithms.
  • Such components are particularly used in applications where access to services or data is controlled, such as cryptographic applications.
  • These components have a programmable architecture formed around a microprocessor and memories, including a volatile programmable memory or a non-volatile memory that contains one or more secret data; it is a generalist architecture able to execute any algorithm.
  • These components are used in computer systems, embedded or not; they are particularly used in smart cards, for some applications thereof. These are for example banking applications, mobile phone applications including for example SIM cards, tele-toll applications, for example for television, etc. These components or cards therefore implement a cryptographic algorithm to ensure the encryption of a message (when it must remain confidential), or 1 'authentication or digital signature of a message (when one wants to ensure non-repudiation).
  • the card From this message input to the card by a host system (server, bank distributor ...) and secret numbers contained in the card, the card provides back to the host system this encrypted or signed message, which allows for example the host system to authenticate the component or the card, or to exchange data.
  • the security of these cryptographic algorithms lies in the number (s) secret (s) contained in the map and unknown (s) of the world outside this map, as well as the way in which these secret numbers are used. .
  • external attacks based on measurable physical quantities from outside the component when it is executing the cryptographic algorithm allow malicious third parties to find the number (s) ( s) or secret data (s) contained in this card.
  • These attacks are called hidden channel attacks (“side channel analysis" in English) and take into account the existence of an additional channel through which information can leak.
  • the physical signals used are in particular the electromagnetic radiation, the electrical consumption or the calculation time of the component.
  • SPA attacks acronym for Simple Power Analysis, based on one or even a few measurements
  • DPA attacks which is the acronym for Differential Power Analysis, based on statistical analyzes from several measurements.
  • the methods used in the prior art most often propose, for a given operation, to provide several embodiments for this operation and to perform the operation in question by using randomly the one of the intended embodiments.
  • the objective is thus to scramble the tracks by multiplying the ways of performing the same operation, so that the various embodiments involve hidden forms of signals (or signatures or traces) different from a leakage point of view. outward information.
  • the claimed invention solves this drawback and proposes an alternative method for securely manipulating data when executing cryptographic algorithms on a portable or non-portable electronic component, making it possible to counter hidden channel attacks, particularly those based on a leak in address of the components or on a distinction of active or non-active memory areas, in order to deduce the functionalities that are played in the card.
  • the invention thus relates to a method for manipulating data between memory zones of an electronic component comprising at least one working memory zone for implementing operations on said component involving at least one of said data, said method being characterized in that it comprises the use of the same memory areas for the execution of an operation, whatever the operation to be implemented, so that each operation presents a trace identical hidden signal in terms of leakage in localization outward of said component.
  • the method comprises, prior to the execution of the operation, a step of configuring the memory areas to be used with the data serving as operands in said operation, said step of configuring the memory zones depending on the operation to be performed.
  • the step of configuring the memory areas consists of copying one of said data into the working memory area, the copy of said data being masked and random in its execution.
  • the memory areas containing said data are simultaneously active when copying one of said data in the working memory area.
  • the copying of one of said data in the working memory zone consists in successively accessing, in a random order, the elements of said data in their respective memory zone and in copying said elements in the memory. working memory area with replacement of one of the data elements by the data element corresponding to the data to be copied in the working memory area.
  • the operations implemented are operations that are part of the the execution of a public key cryptographic algorithm.
  • the public key cryptographic algorithm is of the RSA type, and the operations are square and multiplication operations for modular exponentiation.
  • the method is implemented in a material way.
  • the invention also relates to a system for implementing the method according to any one of the preceding claims, wherein the component is a smart card, a smart card reader or a smart card reader.
  • TPM Trusted Platform Module
  • FIG. 1 is a representation schematic of different memory areas of a smart card illustrating the principle of the invention.
  • the general principle on which the invention is based is to find alternative embodiments of several different operations, so that these variants have the same "trace" outside of the electronic component in which they are executed, in terms of leakage. address or location of active areas or not.
  • the respective variants of the different operations are in this case inseparable from each other, which has the effect that an outside observer does not know which operation is actually performed on the component.
  • the copying operation of a first or second data in a working area of the memory will be performed so that an attacker capable of determining and distinguishing access to the first and to the second data will not be able to know which data has actually been stored in the work area.
  • FIG. 1 thus represents such a working memory zone W, as well as two memory zones R1 and R2, containing values to be processed A and B.
  • the copying of a datum in the zone working memory is masked and random in its execution, while the computational part is intended to be always the same from an information leakage point of view to the outside.
  • the method of copying the data item A for example in the working memory area W consists in successively accessing, according to a randomness t, the words of A and B.
  • the memory areas R1 and R2 respectively containing the data A and B are simultaneously active, in an order that is variable depending on the hazard.
  • FIG. 1 illustrates more particularly a diagram of the algorithm implemented for the copying of the data item A in the work register W according to the principles explained above.
  • A A k _i I
  • t be a random bit.
  • the algorithm would work similarly to the copy of the data B in W m and me so we could not therefore distinguish between the copy of A in W and B copies in W, since it is the 'random' which defines the order of access to which register first.
  • the memory zone R1 or R2 is first accessed, but in both cases, it is This is indeed the value A which is finally copied in W.
  • the algorithm predicts that at each loop turn, the value B 3 is replaced by the value A 3.
  • the algorithm can be executed in the opposite direction, by decreasing j, without modifying the result.
  • the algorithm works with words of any size.
  • the copying of the data A or B in the working memory zone W is thus rendered more robust with respect to leakage towards the outside, since it is masked and random in its execution and this, regardless of the area accessed.
  • the computational part involved in an operation to be implemented on the electronic component is intended to always be the same from an information leakage point of view to the outside.
  • it is planned to always use the same memory areas regardless of the operation to be implemented, so that these operations have the same trace as a hidden signal from an information leakage point of view. outside.
  • the operations are in this case indissociable from each other, which has the effect that an observer does not know what operation is actually performed on the electronic component.
  • it is the configuration of the memory zones involved which makes it possible to obtain one operation or another.
  • the method described above makes it possible to manipulate data in a secure manner to counter attacks of the type "Hidden channel” may advantageously be adapted for the implementation of multiplication and square operations for modular exponentiation in the context of an RSA type cryptographic algorithm.
  • the multiplication (“multiply") and square (“square”) operations may have the same trace as a hidden signal, since they amount to multiplying a first memory zone by a second memory zone. If these memory zones are always the same, the traces in hidden signal seen from the outside are identical.
  • the memory areas R1 and W are the memory zones used for the execution of an operation.
  • the contents of R2 are first copied to W according to the principles of copying previously described, and the contents of the memory area R1 are multiplied by the contents of the working memory area W.
  • performing the square operation on the data item A the content of R1 is first copied to W, still in application of the same principles already explained, and the content of the memory area R1 is multiplied by the content of the working memory area W.
  • the functional difference therefore comes from the previously copied content in the working memory area W, which is rendered inaccessible to an outside observer by the copying process described above.
  • the memory areas R1 and W involved in the implementation of the operations being always the same, the traces in hidden signal of these operations seen from the outside are identical. An observer can therefore only deduce which memory areas are used, namely R1 and W according to the example, but can not know what content A or B was copied previously in the working memory area W, it can not deduce which operation is implemented between multiplication or square.
  • the working memory area W can be initialized in a random order and / or with random values.
  • the method according to the invention is applicable to any algorithm where there would be the possibility of having at least two distinct memory zones to be applied in a calculation and where an outside observer could deduce information. sensitive knowledge of the areas used through attacks of the aforementioned type.
  • the method of secure manipulation of data according to the invention can be implemented by any appropriate means, hardware or software.

Abstract

The invention relates to a method for handling data (A, B) between two memory areas (W, R1, R2) of an electronic component comprising at least one working memory area (W) for carrying out operations on said component bringing into play at least one of said data. The inventive method is characterized in that it involves the use of the same memory areas for executing an operation whatever the operation to be executed is in such a manner that each operation has a hidden signal trace that is identical in terms of location leakage outside this component.

Description

PROCEDE SECURISE DE MANIPULATION DE DONNEES LORS DE SECURE DATA HANDLING PROCESS DURING
L'EXECUTION D'ALGORITHMES CRYPTOGRAPHIQUES SUREXECUTION OF CRYPTOGRAPHIC ALGORITHMS ON
SYSTEMES EMBARQUESEMBEDDED SYSTEMS
La présente invention concerne un procédé pour contrer les attaques de type à canaux cachés lors de la manipulation de données, typiquement lors de l'exécution d'algorithmes cryptographiques sur un composant électronique. Il peut s'agir d'algorithmes à clé secrète ou à clé publique.The present invention relates to a method for countering hidden channel type attacks during data manipulation, typically when executing cryptographic algorithms on an electronic component. These can be secret key or public key algorithms.
De tels composants sont notamment utilisés dans des applications où l'accès à des services ou à des données est contrôlé, telles que les applications cryptographiques.Such components are particularly used in applications where access to services or data is controlled, such as cryptographic applications.
Ces composants ont une architecture programmable formée autour d'un microprocesseur et de mémoires, dont une mémoire programmable volatile ou une mémoire non volatile qui contient une ou plusieurs données secrètes; il s'agit d'une architecture généraliste apte à exécuter n'importe quel algorithme.These components have a programmable architecture formed around a microprocessor and memories, including a volatile programmable memory or a non-volatile memory that contains one or more secret data; it is a generalist architecture able to execute any algorithm.
Ces composants sont utilisés dans des systèmes informatiques, embarqués ou non ; ils sont notamment utilisés dans les cartes à puce, pour certaines applications de celles-ci. Ce sont par exemple des applications bancaires, des applications pour téléphone mobile comprenant par exemple des cartes SIM, des applications de télé-péage, par exemple pour la télévision, etc. Ces composants ou ces cartes mettent donc en œuvre un algorithme cryptographique pour assurer le chiffrement d'un message (lorsque celui-ci doit demeurer confidentiel), ou 1 ' authentification ou la signature numérique d'un message (lorsque l'on veut assurer la non répudiation) .These components are used in computer systems, embedded or not; they are particularly used in smart cards, for some applications thereof. These are for example banking applications, mobile phone applications including for example SIM cards, tele-toll applications, for example for television, etc. These components or cards therefore implement a cryptographic algorithm to ensure the encryption of a message (when it must remain confidential), or 1 'authentication or digital signature of a message (when one wants to ensure non-repudiation).
A partir de ce message appliqué en entrée à la carte par un système hôte (serveur, distributeur bancaire...) et de nombres secrets contenus dans la carte, la carte fournit en retour au système hôte ce message chiffré ou signé, ce qui permet par exemple au système hôte d'authentifier le composant ou la carte, ou d'échanger des données. La sécurité de ces algorithmes cryptographique tient dans le (s) nombre (s) secret (s) contenu (s) dans la carte et inconnu (s) du monde extérieur à cette carte, ainsi que sur la manière dont sont utilisés ces nombres secrets . Or, il est apparu que des attaques externes basées sur des grandeurs physiques mesurables de l'extérieur du composant lorsque celui-ci est en train d'exécuter l'algorithme cryptographique, permettent à des tiers mal intentionnés de trouver le (s) nombre (s) ou donnée (s) secret (s) contenu (s) dans cette carte. Ces attaques sont appelées attaques à canaux cachés ("Side channel analysis" en anglais) et prennent en compte l'existence d'un canal supplémentaire par lequel l'information peut fuir. Les signaux physiques exploités sont notamment le rayonnement électromagnétique, la consommation électrique ou le temps de calcul du composant.From this message input to the card by a host system (server, bank distributor ...) and secret numbers contained in the card, the card provides back to the host system this encrypted or signed message, which allows for example the host system to authenticate the component or the card, or to exchange data. The security of these cryptographic algorithms lies in the number (s) secret (s) contained in the map and unknown (s) of the world outside this map, as well as the way in which these secret numbers are used. . However, it appears that external attacks based on measurable physical quantities from outside the component when it is executing the cryptographic algorithm, allow malicious third parties to find the number (s) ( s) or secret data (s) contained in this card. These attacks are called hidden channel attacks ("side channel analysis" in English) and take into account the existence of an additional channel through which information can leak. The physical signals used are in particular the electromagnetic radiation, the electrical consumption or the calculation time of the component.
On distingue notamment parmi ces attaques à canaux cachés, les attaques SPA, acronyme anglo-saxon pour Simple Power Analysis, basées sur une voire quelques mesures et les attaques DPA, acronyme anglo-saxon pour Differential Power Analysis, basées sur des analyses statistiques issues de plusieurs mesures. Ces attaques reposent par exemple sur le fait que la consommation en courant du microprocesseur exécutant des instructions varie selon l'instruction ou la donnée manipulée.In particular, among these hidden channel attacks are the SPA attacks, acronym for Simple Power Analysis, based on one or even a few measurements and DPA attacks, which is the acronym for Differential Power Analysis, based on statistical analyzes from several measurements. These attacks are based for example on the fact that the current consumption of the microprocessor executing instructions varies according to the instruction or data handled.
Lors de la manipulation de données pour la mise en œuvre de fonctionnalités intervenant dans l'exécution d'algorithmes cryptographiques, il est possible pour un attaquant de savoir quel (s) registre (s) a (ont) été utilisé (s), par localisation des zones de mémoire actives ou non (par exemple si les adresses des données fuient en courant ou d'un point de vue électromagnétique). L'attaquant peut alors tirer partie de cette information pour pouvoir se servir des secrets ou de fonctionnalités auxquelles il n'a pas accès.When manipulating data for the implementation of functions involved in the execution of cryptographic algorithms, it is possible for an attacker to know which registry (s) has (have) been used, by location of active or non-active memory areas (for example, if the data addresses leak in current or electromagnetically). The attacker can then take advantage of this information to be able to use the secrets or functionalities to which he does not have access.
Classiquement, pour se protéger de telles attaques, les méthodes utilisées dans l'art antérieur proposent le plus souvent, pour une opération donnée, de prévoir plusieurs mode de réalisation pour cette opération et de réaliser l'opération en question en utilisant de manière aléatoire l'un des modes de réalisation prévus. L'objectif est ainsi de brouiller les pistes en multipliant les façons d'exécuter la même opération, de sorte que les différents modes de réalisation impliquent des formes de signaux cachés (ou signatures ou trace) différentes d'un point de vue fuite d'information vers l'extérieur.Conventionally, to protect against such attacks, the methods used in the prior art most often propose, for a given operation, to provide several embodiments for this operation and to perform the operation in question by using randomly the one of the intended embodiments. The objective is thus to scramble the tracks by multiplying the ways of performing the same operation, so that the various embodiments involve hidden forms of signals (or signatures or traces) different from a leakage point of view. outward information.
Par exemple, dans le cas d'une recopie d'une donnée dans une zone de travail de la mémoire pour l'exécution d'une fonctionnalité, il peut être prévu d' accéder aux mots de la donnée à copier de manière aléatoire et de recopier dans le désordre dans la zone de travail, les mots ainsi accèdes en fonction d'un aléa. Cependant, si une telle méthode permet d'éviter les attaques de type attaque par dictionnaire, elle reste inadaptée aux attaques de niveau élevé exploitant par exemple les fuites en adresse des composants ou fournissant notamment la possibilité de distinguer les zones actives de la mémoire ou non. Ainsi, de l'extérieur, il est possible au final, grâce à ce type d'attaque, de savoir quelle donnée a été recopiée dans la zone de mémoire de travail et d'en dériver tout ou partie des secrets.For example, in the case of a copy of a data in a working area of the memory for the execution of a function, it can be provided to access the words of the data to be copied so that random and copy in the disorder in the work area, the words thus accessed according to a hazard. However, if such a method makes it possible to avoid attacks of the dictionary attack type, it remains unsuitable for high-level attacks exploiting, for example, the address leakage of components or in particular providing the possibility of distinguishing the active zones from the memory or not. . Thus, from the outside, it is possible in the end, thanks to this type of attack, to know which data has been copied into the working memory area and to derive all or part of the secrets.
L'invention revendiquée résout cet inconvénient et propose une méthode alternative pour la manipulation de données de façon sécurisée lors de l'exécution d' algorithmes cryptographiques sur un composant électronique portable ou non, permettant de parer les attaques à canaux cachés, notamment celles qui se basent sur une fuite en adresse des composants ou sur une distinction des zones mémoires actives ou non, en vue d'en déduire les fonctionnalités qui se jouent dans la carte.The claimed invention solves this drawback and proposes an alternative method for securely manipulating data when executing cryptographic algorithms on a portable or non-portable electronic component, making it possible to counter hidden channel attacks, particularly those based on a leak in address of the components or on a distinction of active or non-active memory areas, in order to deduce the functionalities that are played in the card.
L' invention porte ainsi sur un procédé de manipulation de données entre des zones mémoires d'un composant électronique comprenant au moins une zone de mémoire de travail pour la mise en œuvre d'opérations sur ledit composant faisant intervenir au moins une desdites données, ledit procédé étant caractérisé en ce qu'il comprend l'utilisation des mêmes zones mémoires pour l'exécution d'une opération, quelle que soit l'opération à mettre en œuvre, de sorte que chaque opération présente une trace en signal caché identique en termes de fuite en localisation vers l'extérieur dudit composant.The invention thus relates to a method for manipulating data between memory zones of an electronic component comprising at least one working memory zone for implementing operations on said component involving at least one of said data, said method being characterized in that it comprises the use of the same memory areas for the execution of an operation, whatever the operation to be implemented, so that each operation presents a trace identical hidden signal in terms of leakage in localization outward of said component.
Selon un mode de réalisation, le procédé comprend, préalablement à l'exécution de l'opération, une étape de configuration des zones mémoires à utiliser avec les données servant d'opérandes dans ladite opération, ladite étape de configuration des zones mémoires dépendant de l'opération à exécuter. Avantageusement, l'étape de configuration des zones mémoires consiste à recopier une desdites données dans la zone de mémoire de travail, la recopie de ladite donnée étant masquée et aléatoire dans son exécution . Avantageusement, les zones mémoires contenant lesdites données sont simultanément actives lors de la recopie d'une desdites données dans la zone de mémoire de travail.According to one embodiment, the method comprises, prior to the execution of the operation, a step of configuring the memory areas to be used with the data serving as operands in said operation, said step of configuring the memory zones depending on the operation to be performed. Advantageously, the step of configuring the memory areas consists of copying one of said data into the working memory area, the copy of said data being masked and random in its execution. Advantageously, the memory areas containing said data are simultaneously active when copying one of said data in the working memory area.
Selon un mode de réalisation, la recopie d'une desdites données dans la zone de mémoire de travail consiste à accéder successivement, dans un ordre fonction d'un aléa, aux éléments desdites données dans leur zone mémoire respective et à copier lesdits éléments dans la zone de mémoire de travail avec remplacement d'un des éléments de donnée par l'élément de donnée correspondant à la donnée devant être recopiée dans la zone de mémoire de travail.According to one embodiment, the copying of one of said data in the working memory zone consists in successively accessing, in a random order, the elements of said data in their respective memory zone and in copying said elements in the memory. working memory area with replacement of one of the data elements by the data element corresponding to the data to be copied in the working memory area.
Selon un mode de réalisation, les opérations mises en œuvre sont des opérations intervenant dans le cadre de l'exécution d'un algorithme cryptographique à clé publique .According to one embodiment, the operations implemented are operations that are part of the the execution of a public key cryptographic algorithm.
De préférence, l'algorithme cryptographique à clé publique est de type RSA, et les opérations sont des opérations de carré et de multiplication servant à l'exponentiation modulaire.Preferably, the public key cryptographic algorithm is of the RSA type, and the operations are square and multiplication operations for modular exponentiation.
Selon un mode de réalisation, le procédé est mis en œuvre de manière matérielle.According to one embodiment, the method is implemented in a material way.
L' invention concerne aussi un système pour la mise en œuvre du procédé selon l'une quelconque des revendications précédentes, selon lequel le composant est une carte à puce, un lecteur de carte à puce ou unThe invention also relates to a system for implementing the method according to any one of the preceding claims, wherein the component is a smart card, a smart card reader or a smart card reader.
TPM (Trused Platform Module) .TPM (Trused Platform Module).
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description qui suit, donnée à titre d'exemple illustratif et non limitatif et faite en référence à la figure unique suivante : la figure 1, qui est une représentation schématique de différentes zones mémoires d'une carte à puce illustrant le principe de l'invention.Other characteristics and advantages of the present invention will emerge more clearly on reading the description which follows, given by way of illustrative and nonlimiting example and with reference to the following single figure: FIG. 1, which is a representation schematic of different memory areas of a smart card illustrating the principle of the invention.
Le principe général sur lequel repose l'invention consiste à trouver des variantes de réalisation de plusieurs opérations différentes, de sorte que ces variantes présentent la même « trace » à l'extérieur du composant électronique dans lequel elles sont exécutées, en termes de fuites en adresse ou de localisation des zones actives ou non. Les variantes respectives des différentes opérations sont dans ce cas indissociables les unes des autres, ce qui a pour effet qu'un observateur extérieur ne sait pas quelle opération est réellement exécutée sur le composant. Typiquement, selon le cas général, l'opération de recopie d'une première ou d'une seconde donnée dans une zone de travail de la mémoire sera réalisée de sorte qu'un attaquant capable de déterminer et de distinguer les accès à la première et à la seconde donnée ne sera pas capable de connaître quelle donnée a effectivement été stockée dans la zone de travail.The general principle on which the invention is based is to find alternative embodiments of several different operations, so that these variants have the same "trace" outside of the electronic component in which they are executed, in terms of leakage. address or location of active areas or not. The respective variants of the different operations are in this case inseparable from each other, which has the effect that an outside observer does not know which operation is actually performed on the component. Typically, according to the general case, the copying operation of a first or second data in a working area of the memory will be performed so that an attacker capable of determining and distinguishing access to the first and to the second data will not be able to know which data has actually been stored in the work area.
Selon l'invention, on se propose également d'utiliser tout le temps les mêmes zones mémoires pour faire les calculs impliqués par l'opération en cours, afin de limiter les accès mémoires et éviter les fuites en adresses. Plus particulièrement, on prévoit une zone de mémoire de travail commune, où les opérandes dont on a besoin pour réaliser l'opération sont recopiés à la volée .According to the invention, it is also proposed to use all the time the same memory areas to make the calculations involved in the current operation, to limit memory access and avoid leakage addresses. More particularly, there is provided a common working memory area, where the operands needed to perform the operation are copied on the fly.
La figure 1 représente donc une telle zone de mémoire de travail W, ainsi que deux zones mémoires Rl et R2, contenant des valeurs à traiter A et B. Pour contrer certaines attaques possibles du type précité, la recopie d'une donnée dans la zone de mémoire de travail est masquée et aléatoire dans son exécution, tandis que la partie calculatoire est prévue pour être toujours la même d'un point de vue fuite d'informations vers l'extérieur.FIG. 1 thus represents such a working memory zone W, as well as two memory zones R1 and R2, containing values to be processed A and B. To counteract certain possible attacks of the aforementioned type, the copying of a datum in the zone working memory is masked and random in its execution, while the computational part is intended to be always the same from an information leakage point of view to the outside.
La méthode de recopie de la donnée A par exemple dans la zone de mémoire de travail W, consiste à accéder successivement, en fonction d'un aléa t, aux mots de A et de B. De cette façon, lors de la recopie de la donnée A dans W, les zones mémoires Rl et R2 contenant respectivement les données A et B sont simultanément actives, dans un ordre qui est variable en fonction de l'aléa. De ce fait, il en ressort que, de l'extérieur, on ne sait pas si c'est la donnée issue de la zone mémoire Rl ou R2 qui est recopiée dans W à la fin du processus de recopie.The method of copying the data item A for example in the working memory area W consists in successively accessing, according to a randomness t, the words of A and B. In this way, during the copying of the given A in W, the memory areas R1 and R2 respectively containing the data A and B are simultaneously active, in an order that is variable depending on the hazard. As a result, it is apparent from the outside that it is not known whether it is the data coming from the memory area R1 or R2 that is copied back to W at the end of the copying process.
La figure 1 illustre plus particulièrement un schéma de l'algorithme mis en œuvre pour la recopie de la donnée A dans le registre de travail W selon les principes exposés ci-dessus. Notons A = Ak_i I | ... | |A0, B = Bk-i I I ... I I B0 et W = WkI I Wk-i I I ••• I IW0, où I I correspond à la concaténation, et où les X1 correspondent aux mots de la variable X. Par ailleurs, soit t un bit aléatoire.FIG. 1 illustrates more particularly a diagram of the algorithm implemented for the copying of the data item A in the work register W according to the principles explained above. Let A = A k _i I | ... | | A 0 , B = B k -i II ... IIB 0 and W = WkI IW k -i II ••• I IW 0 , where II corresponds to the concatenation, and where the X 1 correspond to the words of the variable X. Moreover, let t be a random bit.
Si t = 0 a) pour j = 0 à k-1 i) W3 <-BD ; W3 <- A3 b) Wk ^OIf t = 0 a) for j = 0 to k-1 i) W 3 <-B D ; W 3 <- A 3 b) W k ^ O
Si t = 1 a) pour j = 0 à k-1If t = 1 a) for j = 0 to k-1
W3 <- A3 ; W3+1^B3 b) Wk ^OW 3 <- A 3 ; W 3 + 1 ^ B 3 b) W k ^ O
L'algorithme fonctionnerait de façon similaire pour la recopie de la donnée B dans W et de la mAme manière, on ne pourrait donc pas distinguer entre la recopie de A dans W et la recopie de B dans W, puisque c'est l'aléa t qui définit l'ordre d'accès à tel ou tel registre en premier. Ainsi, pour revenir à l'exemple de la recopie de A dans W, en fonction de la valeur 0 ou 1 de l'aléa t, la zone mémoire Rl ou R2 est d'abord accédée, mais dans les deux cas, il s'agit bien de la valeur A qui est recopiée au final dans W. En effet, l'algorithme prévoit qu'à chaque tour de boucle, la valeur B3 est remplacée par la valeur A3. The algorithm would work similarly to the copy of the data B in W m and me so we could not therefore distinguish between the copy of A in W and B copies in W, since it is the 'random' which defines the order of access to which register first. Thus, to return to the example of the copy of A in W, depending on the value 0 or 1 of the hazard t, the memory zone R1 or R2 is first accessed, but in both cases, it is This is indeed the value A which is finally copied in W. Indeed, the algorithm predicts that at each loop turn, the value B 3 is replaced by the value A 3.
Ainsi, si t=0, la valeur B3 est écrite en premier dans W3 (étape symbolisée par la flèche 1 sur la figure 1), puis W3 prend la valeur A3, qui vient donc remplacer la valeur B3 précédemment écrite dans W3 (flèche 2), et ainsi de suite à chaque tour de boucle de l'algorithme.Thus, if t = 0, the value B 3 is written first in W 3 (step symbolized by the arrow 1 in FIG. 1), then W 3 takes the value A 3 , which therefore replaces the value B 3 previously written in W 3 (arrow 2), and so on at each loop round of the algorithm.
Dans le cas où t=l, W3 prend d'abord la valeur A3 (tel que symbolisé par la flèche l'), tandis que W3+i prend la valeur B3 (flèche 2') . Puis, au tour de boucle suivant, j ayant été incrémenté, la valeur B3 copiée précédemment est remplacée par la nouvelle valeur A3 In the case where t = 1, W 3 first takes the value A 3 (as symbolized by the arrow 1 '), whereas W 3 + i takes the value B 3 (arrow 2'). Then, at the next loop turn, j having been incremented, the value B 3 copied previously is replaced by the new value A 3
(flèche 3' ) . La recopie peut bien entendu se faire de façon non linaire, c'est-à-dire par blocs choisis aléatoirement .(arrow 3 '). The copying can of course be done in a non-linear way, that is to say by randomly chosen blocks.
Comme décrit ci-dessus, on parcourt la boucle mise en œuvre dans l'algorithme de recopie de j=0 à j=k-l. Selon une variante, on peut exécuter l'algorithme dans le sens inverse, en décrémentant j, sans modifier le résultat. Par ailleurs, l'algorithme fonctionne avec des mots de n'importe quelle taille.As described above, we run through the loop implemented in the copying algorithm from j = 0 to j = k-1. According to one variant, the algorithm can be executed in the opposite direction, by decreasing j, without modifying the result. Moreover, the algorithm works with words of any size.
Dans les deux cas, on obtient au final dans la zone mémoire de travail W la valeur finale que l'on voulait recopier, soit la donnée A. L'aléa t permet donc avantageusement d'avoir deux façons différentes de recopier A dans W, puisque selon la valeur de l'aléa, on accède d'abord à A ou d'abord à B, bien que la valeur recopiée au final dans W soit toujours A. Les attaques de type émission électromagnétiques sur les zones actives ou non ainsi que des fuites en adresse sont donc rendues caduques. Bien entendu, le même processus peut être utilisé pour recopier la donnée B dans W.In both cases, we finally obtain in the working memory zone W the final value that we wanted to copy, namely the data A. The hazard t therefore advantageously allows to have two different ways of copy A into W, since according to the value of the hazard, we first access A or B first, although the value finally copied in W is always A. The electromagnetic emission type attacks on the zones whether active or not and address leaks are therefore obsolete. Of course, the same process can be used to copy the data B into W.
Selon l'invention, la recopie de la donnée A ou B dans la zone de mémoire de travail W est donc rendue plus robuste vis-à-vis des fuites vers l'extérieur, puisqu' étant masquée et aléatoire dans son exécution et ce, indépendamment de la zone accédée .According to the invention, the copying of the data A or B in the working memory zone W is thus rendered more robust with respect to leakage towards the outside, since it is masked and random in its execution and this, regardless of the area accessed.
Selon un autre aspect de l'invention, la partie calculatoire impliquée par une opération à mettre en œuvre sur le composant électronique est prévue pour être toujours la même d'un point de vue fuite d'informations vers l'extérieur. Pour ce faire, on prévoit d'utiliser toujours les mêmes zones mémoires quelle que soit l'opération à mettre en œuvre, de sorte que ces opérations aient la même trace en signal caché d'un point de vue fuite d'information vers l'extérieur. Les opérations sont dans ce cas indissociables les unes des autres, ce qui a pour effet qu'un observateur ne sait pas quelle opération est réellement exécutée sur le composant électronique. Avantageusement, c'est la configuration des zones mémoires impliquées qui permet d'obtenir une opération ou une autre.According to another aspect of the invention, the computational part involved in an operation to be implemented on the electronic component is intended to always be the same from an information leakage point of view to the outside. To do this, it is planned to always use the same memory areas regardless of the operation to be implemented, so that these operations have the same trace as a hidden signal from an information leakage point of view. outside. The operations are in this case indissociable from each other, which has the effect that an observer does not know what operation is actually performed on the electronic component. Advantageously, it is the configuration of the memory zones involved which makes it possible to obtain one operation or another.
Selon un exemple d' implémentation, la méthode exposée ci-dessus permettant de manipuler des données de façon sécurisée pour contrer les attaques de type « à canaux cachés », peut avantageusement être adaptée pour la mise en œuvre d'opérations de multiplication et de carré servant à l'exponentiation modulaire dans le cadre d'un algorithme cryptographique de type RSA. Ainsi, dans le cas de cet exemple, les opérations multiplication (« multiply ») et carré (« square ») peuvent avoir la même trace en signal caché, puisqu'elles reviennent à multiplier une première zone mémoire par une seconde zone mémoire. Si ces zones mémoires sont toujours les mêmes, les traces en signal caché vues de l'extérieur sont identiques.According to an exemplary implementation, the method described above makes it possible to manipulate data in a secure manner to counter attacks of the type "Hidden channel" may advantageously be adapted for the implementation of multiplication and square operations for modular exponentiation in the context of an RSA type cryptographic algorithm. Thus, in the case of this example, the multiplication ("multiply") and square ("square") operations may have the same trace as a hidden signal, since they amount to multiplying a first memory zone by a second memory zone. If these memory zones are always the same, the traces in hidden signal seen from the outside are identical.
Selon un exemple de réalisation, les zones mémoires Rl et W sont les zones mémoires utilisées pour l'exécution d'une opération. Pour réaliser l'opération de multiplication de A par B, on copie préalablement le contenu de R2 dans W selon les principes de recopie exposés précédemment et on multiplie le contenu de la zone mémoire Rl par le contenu de la zone mémoire de travail W. Pour réaliser l'opération de carré sur la donnée A, on copie préalablement le contenu de Rl dans W, toujours en application des mêmes principes déjà exposés, et on multiplie le contenu de la zone mémoire Rl par le contenu de la zone mémoire de travail W. La différence fonctionnelle vient donc du contenu copié au préalable dans la zone de mémoire de travail W, qui est rendu inaccessible à un observateur extérieur grâce au processus de recopie décrit précédemment. De plus, les zones mémoires Rl et W impliquées dans la mise en œuvre des opérations étant toujours les mêmes, les traces en signal caché de ces opérations vues de l'extérieur sont identiques. Un observateur pourra donc seulement déduire quelles zones mémoires sont utilisées, en l'occurrence Rl et W selon l'exemple, mais ne pouvant pas connaître quel contenu A ou B a été copié préalablement dans la zone de mémoire de travail W, il ne pourra pas en déduire quelle opération est mise en œuvre entre multiplication ou carré.According to an exemplary embodiment, the memory areas R1 and W are the memory zones used for the execution of an operation. To carry out the multiplication operation of A by B, the contents of R2 are first copied to W according to the principles of copying previously described, and the contents of the memory area R1 are multiplied by the contents of the working memory area W. performing the square operation on the data item A, the content of R1 is first copied to W, still in application of the same principles already explained, and the content of the memory area R1 is multiplied by the content of the working memory area W The functional difference therefore comes from the previously copied content in the working memory area W, which is rendered inaccessible to an outside observer by the copying process described above. Moreover, the memory areas R1 and W involved in the implementation of the operations being always the same, the traces in hidden signal of these operations seen from the outside are identical. An observer can therefore only deduce which memory areas are used, namely R1 and W according to the example, but can not know what content A or B was copied previously in the working memory area W, it can not deduce which operation is implemented between multiplication or square.
La zone de mémoire de travail W peut être au préalable initialisée dans un ordre aléatoire et/ou avec des valeurs aléatoires. De manière générale, le procédé selon l'invention est susceptible de s'appliquer à tout algorithme où il y aurait la possibilité d'avoir au moins deux zones mémoires distinctes à appliquer dans un calcul et où un observateur extérieur pourrait déduire de l'information sensible de la connaissance des zones utilisées par l'intermédiaire d'attaques du type précité.The working memory area W can be initialized in a random order and / or with random values. In general, the method according to the invention is applicable to any algorithm where there would be the possibility of having at least two distinct memory zones to be applied in a calculation and where an outside observer could deduce information. sensitive knowledge of the areas used through attacks of the aforementioned type.
Le procédé de manipulation sécurisée de données selon l'invention peut être mis en œuvre par tout moyen approprié, matériel ou logiciel. The method of secure manipulation of data according to the invention can be implemented by any appropriate means, hardware or software.

Claims

REVENDICATIONS
1. Procédé de manipulation de données (A, B) entre des zones mémoires (W, Rl, R2) d'un composant électronique comprenant au moins une zone de mémoire de travail (W) pour la mise en œuvre d'opérations sur ledit composant faisant intervenir au moins une desdites données, ledit procédé étant caractérisé en ce qu'il comprend l'utilisation des mêmes zones mémoires pour l'exécution d'une opération, quelle que soit l'opération à mettre en œuvre, de sorte que chaque opération présente une trace en signal caché identique en termes de fuite en localisation vers l'extérieur dudit composant.A method of data manipulation (A, B) between memory areas (W, R1, R2) of an electronic component comprising at least one working memory area (W) for carrying out operations on said component involving at least one of said data, said method being characterized in that it comprises the use of the same memory areas for the execution of an operation, whatever the operation to be implemented, so that each operation presents a trace identical hidden signal in terms of leakage in localization outward of said component.
2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend, préalablement à l'exécution de l'opération, une étape de configuration des zones mémoires à utiliser avec les données servant d'opérandes dans ladite opération, ladite étape de configuration des zones mémoires dépendant de l'opération à exécuter.2. Method according to claim 1, characterized in that it comprises, prior to the execution of the operation, a step of configuring the memory areas to be used with the data serving as operands in said operation, said configuration step memory areas depending on the operation to be performed.
3. Procédé selon la revendication 2, caractérisé en ce que l'étape de configuration des zones mémoires consiste à recopier une desdites données (A ou B) dans la zone de mémoire de travail (W) , la recopie de ladite donnée (A ou B) étant masquée et aléatoire dans son exécution . 3. Method according to claim 2, characterized in that the step of configuring the memory areas consists of copying one of said data (A or B) in the working memory area (W), copying said data (A or B) being masked and random in its execution.
4. Procédé selon la revendication 3, caractérisé en ce que les zones mémoires (Rl, R2) contenant lesdites données (A, B) sont simultanément actives lors de la recopie d'une desdites données (A ou B) dans la zone de mémoire de travail (W) .4. Method according to claim 3, characterized in that the memory areas (R1, R2) containing said data (A, B) are simultaneously active when copying one of said data (A or B) in the memory area. working (W).
5. Procédé selon les revendications 3 ou 4, caractérisé en ce que la recopie d'une desdites données (A ou B) dans la zone de mémoire de travail (W) consiste à accéder successivement, dans un ordre fonction d'un aléa (t) , aux éléments desdites données (A, B) dans leur zone mémoire respective (Rl, R2) et à copier lesdits éléments dans la zone de mémoire de travail (W) avec remplacement d'un des éléments de donnée par l'élément de donnée correspondant à la donnée devant être recopiée dans la zone de mémoire de travail .5. Method according to claim 3 or 4, characterized in that the copying of one of said data (A or B) in the working memory area (W) consists of accessing successively, in an order according to a random ( t), the elements of said data (A, B) in their respective memory area (R1, R2) and copying said elements into the working memory area (W) with replacement of one of the data elements by the element data corresponding to the data to be copied into the working memory area.
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les opérations mises en œuvre sont des opérations intervenant dans le cadre de l'exécution d'un algorithme cryptographique à clé publique.6. Method according to any one of the preceding claims, characterized in that the operations implemented are operations involved in the context of the execution of a public key cryptographic algorithm.
7. Procédé selon la revendication 6, caractérisé en ce que l'algorithme cryptographique à clé publique est de type RSA.7. Method according to claim 6, characterized in that the public key cryptographic algorithm is RSA type.
8. Procédé selon la revendication 7, caractérisé en ce que les opérations sont des opérations de carré et de multiplication servant à l'exponentiation modulaire .8. Method according to claim 7, characterized in that the operations are square operations and multiplication for modular exponentiation.
9. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est mis en œuvre de manière matérielle.9. Method according to any one of the preceding claims, characterized in that it is implemented in a material manner.
10. Système pour la mise en œuvre du procédé selon l'une quelconque des revendications précédentes, selon lequel le composant est une carte à puce, un lecteur de carte à puce ou un TPM (Trused Platform Module) . 10. System for implementing the method according to any one of the preceding claims, wherein the component is a smart card, a smart card reader or a TPM (Trused Platform Module).
EP06819181A 2005-11-04 2006-10-27 Method for securely handling data during the running of cryptographic algorithms on embedded systems Withdrawn EP1949292A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0511268 2005-11-04
PCT/EP2006/067901 WO2007051770A1 (en) 2005-11-04 2006-10-27 Method for securely handling data during the running of cryptographic algorithms on embedded systems

Publications (1)

Publication Number Publication Date
EP1949292A1 true EP1949292A1 (en) 2008-07-30

Family

ID=36570540

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06819181A Withdrawn EP1949292A1 (en) 2005-11-04 2006-10-27 Method for securely handling data during the running of cryptographic algorithms on embedded systems

Country Status (4)

Country Link
US (1) US20100042851A1 (en)
EP (1) EP1949292A1 (en)
JP (1) JP2009515449A (en)
WO (1) WO2007051770A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407425B2 (en) * 2007-12-28 2013-03-26 Intel Corporation Obscuring memory access patterns in conjunction with deadlock detection or avoidance
FR2972064B1 (en) * 2011-02-25 2013-03-15 Inside Secure CRYPTOGRAPHY METHOD COMPRISING AN EXPONENTIATION OPERATION

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001505325A (en) * 1997-09-16 2001-04-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for implementing a decoding mechanism by calculating a standardized modular exponentiation to thwart timing attacks
DE19936890A1 (en) * 1998-09-30 2000-04-06 Philips Corp Intellectual Pty Encryption method for performing cryptographic operations
JP2002526849A (en) * 1998-09-30 2002-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Encoding method for performing cryptographic operations
FR2800478B1 (en) * 1999-10-28 2001-11-30 Bull Cp8 METHOD FOR SECURING AN ELECTRONIC CRYPTOGRAPHY ASSEMBLY BASED ON MODULAR EXPONENTIATION AGAINST ATTACKS BY PHYSICAL ANALYSIS
CA2326036A1 (en) * 2000-11-16 2002-05-16 Gemplus S.A. Method for securing electronic device data processing
JP2003018143A (en) * 2001-06-28 2003-01-17 Mitsubishi Electric Corp Information processor
JP2003150740A (en) * 2001-11-12 2003-05-23 White Lily:Kk Sales system of entertainment ticket
KR100436814B1 (en) * 2001-12-20 2004-06-23 한국전자통신연구원 apparatus for RSA Crypto Processing of IC card
FR2838210B1 (en) * 2002-04-03 2005-11-04 Gemplus Card Int CRYPTOGRAPHIC METHOD PROTECTED FROM CACHE-CHANNEL TYPE ATTACKS
JP2004129033A (en) * 2002-10-04 2004-04-22 Renesas Technology Corp Data processor and ic card
FR2847402B1 (en) * 2002-11-15 2005-02-18 Gemplus Card Int SECURE ENTIRE DIVISION METHOD AGAINST HIDDEN CHANNEL ATTACKS
FR2858496B1 (en) * 2003-07-31 2005-09-30 Gemplus Card Int METHOD FOR SECURELY IMPLEMENTING AN RSA-TYPE CRYPTOGRAPHY ALGORITHM AND CORRESPONDING COMPONENT
JP2005056413A (en) * 2003-08-01 2005-03-03 Stmicroelectronics Sa Protection of multiple identical computations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007051770A1 *

Also Published As

Publication number Publication date
WO2007051770A1 (en) 2007-05-10
US20100042851A1 (en) 2010-02-18
JP2009515449A (en) 2009-04-09

Similar Documents

Publication Publication Date Title
EP1627362A1 (en) Security key generation method
WO2012062994A1 (en) Protection against passive sniffing
WO2005022820A1 (en) Method for the secure application of a cryptographic algorithm of the rsa type and corresponding component
EP1421473B1 (en) Universal calculation method applied to points on an elliptic curve
FR2811790A1 (en) Smart card microcontroller secured against current attacks, uses module between processor and external supply which chaotically encrypts supply current fluctuations
EP1949292A1 (en) Method for securely handling data during the running of cryptographic algorithms on embedded systems
WO2000062473A1 (en) Method for making secure one or several computer installations using a common cryptographic secret key algorithm, use of the method and computer installation
EP1279141B1 (en) Countermeasure method in a microcircuit, microcircuit therefor and smart card comprising said microcircuit
FR3040512A1 (en) PROTECTION OF A MODULAR EXPONENTIATION CALCULATION
EP1254408B1 (en) Modular exponential algorithm in an electronic component using a public key encryption algorithm
EP1436792B1 (en) Authentication protocol with memory integrity verification
CA2988357A1 (en) Encryption method, corresponding encryption method, devices and programs
EP2053532A1 (en) Method of opening a microcircuit card that is secure to third parties
EP1442556B1 (en) Method for secure operation of a functional module in an electronic component and corresponding component
EP3100403B1 (en) Imbalanced montgomery ladder for resisting side-channel attacks
WO2004017193A2 (en) Method for universal calculation applied to points of an elliptic curve
FR2908194A1 (en) PORTABLE ELECTRONIC ENTITY AND METHOD FOR REMOTELY BLOCKING A FUNCTIONALITY OF SUCH A PORTABLE ELECTRONIC ENTITY
FR2995110A1 (en) Method for optimizing use of e.g. memory, of electronic device i.e. smart card, involves protecting smart card from physical attacks by masking from substitution box and inverse substitution box upon implementing cryptographic algorithm
EP3032450B1 (en) Method for checking the authenticity of a payment terminal and terminal thus secured
CA3183198A1 (en) Device, method and program for secure communication between white boxes
FR2976697A1 (en) SECURE TRANSFER BETWEEN NON-VOLATILE MEMORY AND VOLATILE MEMORY
WO2003025739A1 (en) Secure method for using a cryptographic algorithm and corresponding component
EP3242215A1 (en) Method for optimising writing to the memory of a device
EP2273407A1 (en) Sicherung der Lokalisierung eines Fernteilnehmercodes über den Fingerabdruck des Empfängers
EP2104893A2 (en) Secured electronic systems, securing methods and uses of such systems

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

17P Request for examination filed

Effective date: 20080604

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

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

Owner name: GEMALTO SA

17Q First examination report despatched

Effective date: 20110818

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20130723