WO2004107283A1 - Methode de generation d’une cle de securite - Google Patents

Methode de generation d’une cle de securite Download PDF

Info

Publication number
WO2004107283A1
WO2004107283A1 PCT/IB2004/050794 IB2004050794W WO2004107283A1 WO 2004107283 A1 WO2004107283 A1 WO 2004107283A1 IB 2004050794 W IB2004050794 W IB 2004050794W WO 2004107283 A1 WO2004107283 A1 WO 2004107283A1
Authority
WO
WIPO (PCT)
Prior art keywords
zone
key
data
memory area
verification
Prior art date
Application number
PCT/IB2004/050794
Other languages
English (en)
Inventor
Henri Kudelski
Serge Gaumain
Original Assignee
Nagracard 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=33438115&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2004107283(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nagracard Sa filed Critical Nagracard Sa
Priority to CN2004800147231A priority Critical patent/CN1795471B/zh
Priority to EP04735073A priority patent/EP1627362A1/fr
Publication of WO2004107283A1 publication Critical patent/WO2004107283A1/fr

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1016Devices or methods for securing the PIN and other transaction-data, e.g. by encryption

Definitions

  • the present invention relates to the field of secure security modules comprising at least one central unit and two memory areas.
  • This memory is of ROM type, that is to say that it is read only.
  • this program will check the second memory area which is of the rewritable type, in general of the EEPROM, NVRAM or Flash type.
  • This verification can be done in several ways such as the calculation of a footprint (CRC, Hash) and comparison of this footprint with a value stored in this same area.
  • this first boot zone in addition to a read-only memory (ROM) part, includes a rewritable memory part which is subject to the same security conditions.
  • ROM read-only memory
  • the execution of the verification program can be carried out from the second zone.
  • the latter is divided into a verification part and user part.
  • the verification of the user program is carried out on the basis of the data of the first zone, namely on the basis of a first key which is generally stored in this first zone and which makes it possible to verify the fingerprint of the data of the second zone.
  • the second zone contains data constituting the program and a signature which is encrypted by this first key.
  • the verification program which can be either in the first zone or in a verification part of the second zone, calculates a unique fingerprint (Hash, CRC) on the data to be verified.
  • CRC unique fingerprint
  • the second zone contains the fingerprint encrypted by a key which is initially stored in the first zone.
  • This key is used to decrypt the encrypted fingerprint and the result obtained is compared with the calculated fingerprint.
  • This key can be in the first zone either in final form (ROM) or in programmed form (EEPROM or Flash).
  • ROM final form
  • EEPROM or Flash programmed form
  • programming is done in the factory or in an authorized center, the program in the first zone accepts this programming provided that no key is already in this memory location.
  • This key can be of symmetric type and therefore secret or can be of asymmetric type.
  • this key can be in a memory zone other than the first zone because even if a third party were to discover this key, it would not be able to sign a set of modified data because it must necessarily do so using the corresponding private key. This key obviously does not come out of the management center which is in charge of preparing data updates.
  • the data in the second memory area can represent either one or more programs, or important data such as rights or decryption keys, or a mixture of the two.
  • this third party From knowledge of the content of the second memory area, this third party has the keys used to manage the various rights and access to the services that this processor controls.
  • the object of the present invention is to provide a method for restoring the security of such a secure assembly after the content of the second memory area has been read by a third party.
  • This object is achieved by a method of generating a security key carried out by a secure module comprising a central unit, a first memory area with conditional access and at least a second memory area containing all or part of the user program, characterized in that it comprises the following stages:
  • this new key is generated without the data of the second zone being necessarily verified. If these data have been modified, the root key will simply be false and the future decryption of a transmission key with this key will not give the correct result.
  • This root key therefore depends on the one hand on the download or content of the second memory (or data) and on a key stored in a region inaccessible to a third party.
  • the factory key is replaced by a secret program stored in the first zone and which calculates, according to a secret algorithm, a fingerprint on all or part of the data of the second zone.
  • a secret program stored in the first zone and which calculates, according to a secret algorithm, a fingerprint on all or part of the data of the second zone.
  • the manipulation of data (mixture, multiplication, division, EXOR etc.) of the second zone according to a particular algorithm makes it possible to determine the root key.
  • the MOD module is a secure processor module. As such, it has at least two memory zones, namely the first zone Z1 and the second zone 'Z2.
  • the first zone consists of all or part of the ROM memory, therefore not rewritable.
  • a part may include memory places in RAM or EEPROM for variables among others. It is said to be conditional access because it cannot be freely accessible, in particular during the execution of a program in the second zone.
  • the second zone Z2 will contain the operating program and the data. This area is made up of non-volatile memory but with the possibility of writing such as EEPROM. Zone Z2 can also contain volatile memory such as RAM. In fact, this area is generally not homogeneous and can include several memories of the ROM, RAM, EEPROM, NVRAM or Flash type.
  • zone 2 a first part of zone 2 called the Z2A work zone which will be used for operations relating to the generation of the root key.
  • the Z2B user area is a schematic view of the part containing the operating program or programs. Depending on the implementation, it is possible to include variables such as security keys for example.
  • the CPU processor is automatically directed to the first zone Zl during an engagement or a restart (reset). This is where the first security operations are carried out.
  • the initialization program launched at startup calculates a fingerprint on the agreed part of the data to be checked. This part is defined by pointers which are contained in the second memory area. An illustration of the mechanism of portions of the Z2B user area is contained in Figure 2.
  • the data forming the imprint can be taken into account on all or part of the user area. In practice, this imprint will preferably be calculated on the program part and not on the data part (viewing rights for example) because the latter may be modified during the use of the user program.
  • the fingerprint determination program initialized at startup calculates this fingerprint on the agreed part of the data to be checked. This part is defined by pointers which are contained in the second memory area, in particular in the DES portion of FIG. 2.
  • this imprint is produced by a unidirectional operation which is a mathematical application H from a source set to an object set, in which each element x of the source set is assigned an image H (x).
  • H (x) H (x)
  • the user area Z2B in Figure 1 is divided into several portions PA, PB and PC. These portions are not contiguous in this example and are separated by PI portions which are not involved in the calculation of the footprint.
  • the information describing these different portions is contained in the DES portion which is also part of the user zone Z2B. It contains the indications of memory locations participating in the calculation of the control information. These indications can be either in the form 'start pointer' and 'length' or 'start pointer' and 'end pointer'.
  • the I / O block illustrates the means of communication to the outside of the MOD module, means which are essential for using the cryptographic functions and the rights stored in the memory Z2B. It is also through this that data is accidentally extracted from the zone Z2 by a fault as described above.
  • Figure 3 the step of generating the root key is shown schematically.
  • the DTA data which, according to the example in FIG. 2, consist of the PA, PB and PC portions, are used to calculate by the processor the imprint which is in our case Hash control information.
  • To calculate the root key RK we will use this control information H and a factory key MK2 to obtain this root key RK via an encryption module ENC.
  • This secret key will be of symmetric type (or use symmetrically by the management center) because otherwise, the resulting root key would not be the same in the management center and in the MOD module.
  • the factory key is replaced by a secret algorithm (RTN) which is stored in the first zone Z1. It can be copied from this first zone to the Z2A working zone during the initialization phase if necessary.
  • RTN secret algorithm
  • This algorithm mixes all or part of the DTA data in a particular mode in order to obtain a single result dependent on this data.
  • This mixture can implement different arithmetic operations such as multiplication, Exor etc.
  • the place of execution of these process steps is not decisive.
  • the program in the boot area can simply copy the factory key to a temporary memory area and the program for generating the root key, called a system program, can be contained in the Z2A work area.
  • the important thing is to store this factory key in the first zone Zl in order to make it inaccessible during normal execution of the user program.
  • the management center which is in charge of security, is preparing new software in order to remedy a known defect such as a counterfeiter attack aimed at extracting data from the zone Z2.
  • This new software is signed, that is to say that the Hash function is calculated on this data and the result is encrypted with the private key MK1.
  • the program existing in the Z2B user area processes the incoming data and decrypts the messages using the system transmission key (s).
  • the data is then stored in the locations provided for this purpose. Once this download is complete, the processor activates a restart function. This allows it to check all newly stored data.
  • This verification generally relates to all of the stored programs and this verification is carried out according to the steps described above. If we consider the hypothesis that a third party has an insecure MOD module, the first memory area Z1 does not exist (or is blank) and the processor immediately starts in the second area Z2. The new program received from the management center is decrypted by the third party and the user area is therefore identical to that of a secure processor with dual memory areas.
  • the root key is generated and is used to decrypt the new transmission key.
  • the dummy module does not have this root key and cannot decrypt the transmission key. From this moment, the messages exchanged between the management center and the security module are no longer accessible to the fictitious module. If the latter tries to find the root key by an attack such as the one that allowed him to obtain the content of the second zone, this attack no longer works because the purpose of this new software is precisely to remedy this type of flaw .
  • the secure module regains the level of security preceding the attack which allowed the data to be extracted.
  • access to the first zone Z1 is made when the microprocessor is started or after a verification mechanism.
  • the memory area Z1 with conditional access can only be used to provide the secret information necessary for the formation of the root key.
  • the program of the use zone Z2 only opens access to the first zone Zl to read the information for the calculation of the root key. During these operations, the duration of visibility of the first zone will be limited to the time necessary to reading then this area will be made inaccessible.
  • the factory key is in fact a set of keys. Each time a root key is generated, a factory key is deactivated.
  • the selection of the key to be used can be done in different ways, namely: [66] - on command from the management center, that is to say by a descriptor in the DES definition data, [67] - in using the last n bits of the fingerprint (for example 3 bits) which allow to choose among the keys (eg the 8 keys) stored.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

L'objet de la présente invention est de proposer une méthode pour rétablir la sécurité d'un tel ensemble sécurisé tel qu'une carte à puce, après que le contenu de sa seconde zone mémoire ait été lu par un tiers.Ce but est atteint par une méthode de génération d'une clé de sécurité effectuée par un module sécurisé comprenant une unité centrale, une première zone mémoire à accès conditionnel et au moins une seconde zone mémoire contenant tout ou partie du programme utilisateur, caractérisé en ce qu'elle comprend les étapes suivantes:- lecture de tout ou partie de la seconde zone mémoire,- génération d'au moins une clé racine basée sur tout ou partie des données de la seconde zone et sur au moins une information secrète stockée dans la première zone mémoire.

Description

Description MÉTHODE DE GÉNÉRATION D'UNE CLÉ DE SÉCURITÉ
[I] La présente invention concerne le domaine des modules de sécurité sécurisés comportant au moins une unité centrale et deux zones mémoires.
[2] Ces unités sont utilisées dans des opérations mettant en œuvre des systèmes cryptographiques et sont livrées sous forme monobloc, soit qu'elles sont réalisées sur une même puce de silicium, soit qu'elles sont assemblées sur un support et noyées dans une résine ou protégées par une feuille recouvrant les divers éléments et agissant comme fusible en cas de tentative d'intrusion.
[3] Ces processeurs sécurisés ont une première zone mémoire dite d'amorçage
(bootstrap en anglais) qui est exécutée lors de l'enclenchement du processeur ou à chaque remise à zéro (reset). Cette mémoire est de type ROM c'est-à-dire qu'elle est à accès en lecture uniquement.
[4] Durant l'exécution du programme de démarrage, ce programme va vérifier la seconde zone mémoire qui est de type réinscriptible, en général de type EEPROM, NVRAM ou Flash.
[5] Cette vérification est importante afin de s'assurer que les données dans cette seconde zone sont légales, c'est-à-dire qu'il s'agisse bien d'un programme (au moins en partie).
[6] Cette vérification peut se faire de plusieurs manières telles que le calcul d'une empreinte (CRC, Hash) et comparaison de cette empreinte avec une valeur stockée dans cette même zone.
[7] Une fois que le programme maître initialement démarré a terminé sa vérification, il commute sur la seconde zone et débute l'exécution du programme utilisateur à une adresse convenue.
[8] La particularité de ce type de processeur est que lors de l'exécution du programme dans la seconde zone, il n'y pas d'accès libre à la mémoire de la première zone. Cet accès est soit définitivement interdit ou est sujet à un mécanisme de vérification (mot de passe par exemple).
[9] Ceci donne une sécurité importante car les moyens de vérification, voire les données de démarrage, ne sont pas accessibles au programme utilisateur. Toutes les informations contenues dans la première zone sont donc protégées de toute intrusion.
[10] Il est possible que cette première zone d'amorçage, en plus d'une partie en mémoire morte (ROM), comporte une partie de mémoire réinscriptible qui est soumise aux mêmes conditions de sécurité.
[II] Lorsque la première zone est de taille très restreinte, l'exécution du programme de vérification peut s'effectuer depuis la seconde zone. Cette dernière est divisée en une partie de vérification et une partie utilisateur.
[12] Ainsi, la vérification du programme utilisateur est effectuée sur la base des données de la première zone, à savoir sur la base d'une première clé qui est généralement stockée dans cette première zone et qui permet de vérifier l'empreinte des données de la seconde zone.
[13] La seconde zone contient des données constituant le programme et une signature qui est encryptée par cette première clé.
[14] Le programme de vérification qui peut être soit dans la première zone, soit dans une partie de vérification de la seconde zone, calcule une empreinte unique (Hash, CRC) sur les données à vérifier.
[15] Pour vérifier que les donnés sont bien valides, la seconde zone contient l'empreinte encryptée par une clé qui est initialement stockée dans la première zone.
[16] Cette clé sert à décrypter l'empreinte encryptée et le résultat obtenu est comparé avec l'empreinte calculée.
[17] Cette clé peut être dans la première zone soit sous forme définitive (ROM) soit sous forme programmée (EEPROM ou Flash). Dans ce deuxième cas, la programmation se fait en usine ou dans un centre habilité, le programme de la première zone acceptant cette programmation pour autant qu'aucune clé ne se trouve déjà dans cette location mémoire.
[18] Cette clé peut être de type symétrique et donc secrète ou peut être de type asymétrique. Dans cette seconde variante, cette clé peut se trouver dans une zone mémoire autre que la première zone car même si un tiers arrivait à découvrir cette clé, il ne serait pas pour autant capable de signer un ensemble de données modifiées car il doit nécessairement le faire grâce à la clé privée correspondante. Cette clé ne sort bien évidemment pas du centre de gestion qui est en charge de préparer les mises à jour des données.
[19] Les données de la seconde zone mémoire peuvent représenter soit un ou des programmes, soit des données importantes telles que des droits ou des clés de décryption, soit un mélange des deux.
[20] Une des attaques connues pour découvrir le contenu de la seconde zone est de rechercher une faille de sécurité comme un débordement de mémoire qui permettrait de prendre le contrôle du processeur. Une fois cette prise de contrôle réussie, un tiers va transférer le contenu de la seconde zone vers l'extérieur et pouvoir analyser le mécanisme de sécurité et les clés utilisées.
[21] A partir de la connaissance du contenu de la seconde zone mémoire, ce tiers possède les clés servant à gérer les différents droits et accès aux services que contrôle ce processeur.
[22] Ainsi, si un changement de clés intervient, ordonné par le centre de gestion, cette commande de changement sera encryptée par une clé présente dans la seconde zone mémoire. Le tiers qui a connaissance de cette clé, pourra décrypter ce message et mettre également à jour le contenu de cette nouvelle clé.
[23] On constate donc que, bien qu'un mécanisme sûr ait été utilisé pour vérifier le contenu de la zone de programme (seconde zone), lorsque la sécurité a été une fois violée, tous les changements initiés par le centre de gestion sont sans effet sur la sécurité car les moyens de changement (nouvelle clé de transmission par exemple) utilisent des clés que le tiers a déjà en sa possession. Il peut donc décrypter le message de mise à jour et changer également sa clé de transmission. La brèche ne peut plus être refermée même si la brèche de sécurité a été corrigée dans l'applicatif.
[24] L'objet de la présente invention est de proposer une méthode pour rétablir la sécurité d'un tel ensemble sécurisé après que le contenu de la seconde zone mémoire ait été lu par un tiers.
[25] Ce but est atteint par une méthode de génération d'une clé de sécurité effectuée par un module sécurisé comprenant une unité centrale, une première zone mémoire à accès conditionnel et au moins une seconde zone mémoire contenant tout ou partie du programme utilisateur, caractérisé en ce qu'elle comprend les étapes suivantes:
[26] - lecture de tout ou partie de la seconde zone mémoire,
[27] - génération d'au moins une clé racine basée sur tout ou partie des données de la seconde zone et sur au moins une information secrète stockée dans la première zone mémoire.
[28] Ainsi, grâce à la génération de cette nouvelle clé racine, il sera possible de sécuriser le remplacement de la clé de transmission et par là même, de toutes les clés transmises subséquemment.
[29] Il est important que cette clé racine ne soit pas fixe et doit pour cela être différente d'une clé stockée dans la première zone mémoire telle que la clé d'usine. C'est pourquoi cette clé racine est générée en utilisant comme variable les nouvelles données transmises par le centre de gestion.
[30] Dans une première version, cette nouvelle clé est générée sans que les données de la seconde zone soient nécessairement vérifiées. Si ces données ont été modifiées, la clé racine sera simplement fausse et la décryption future d'une clé de transmission avec cette clé ne donnera pas le résultat correct.
[31] Cette clé racine dépend donc d'une part du téléchargement ou contenu de la seconde mémoire (ou données) et d'une clé stockée dans une région inaccessible à un tiers.
[32] Selon un autre mode de réalisation, la clé d'usine est remplacée par un programme secret stocké dans la première zone et qui calcule, selon un algorithme secret, une empreinte sur tout ou partie des données de la seconde zone. La manipulation des données (mélange, multiplication, division, EXOR etc..) de la seconde zone selon un algorithme particulier permet de déterminer la clé racine.
[33] L'invention sera mieux comprise grâce à la description détaillée qui va suivre et qui se réfère aux dessins annexés qui sont donnés à titre d'exemple nullement limitatif, à savoir:
[34] - la figure 1 décrit l'organisation d'un ensemble processeur sécurisé,
[35] - la figure 2 illustre une division de la seconde zone,
[36] - la figure 3 décrit le mécanisme de génération de la clé racine.
[37] Sur la figure 1, le module MOD est un module processeur sécurisé. A ce titre il dispose d'au moins deux zones mémoires soit la première zone Zl et la seconde zone ' Z2. La première zone est constituée par tout ou partie de mémoire ROM donc non réinscriptible. Il se peut qu'une partie comprenne des places mémoires en RAM ou EEPROM pour des variables entre autre. Elle est dite à accès conditionnel du fait qu'elle ne peut être librement accessible, en particulier lors de l'exécution d'un programme dans la deuxième zone.
[38] La seconde zone Z2 va contenir le programme d'exploitation et les données. Cette zone est constituée de mémoire non volatile mais avec possibilité d'écriture telle que de l'EEPROM. La zone Z2 peut également contenir de la mémoire volatile comme de la RAM. En fait, cette zone n'est généralement pas homogène et peut comprendre plusieurs mémoires du type ROM, RAM, EEPROM, NVRAM ou Flash.
[39] Dans notre exemple, nous allons considérer une première partie de la zone 2 dite zone de travail Z2A qui va servir pour les opérations relatives à la génération de la clé racine.
[40] La zone utilisateur Z2B est une vue schématique de la partie contenant le ou les programmes d'exploitation. Selon l'implémentation, il est possible d'inclure des variables telles les clés de sécurité par exemple.
[41] Le processeur CPU est dirigé automatiquement sur la première zone Zl lors d'un enclenchement ou un redémarrage (reset). C'est là que les premières opérations de sécurité sont exécutées.
[42] Ces opérations vont utiliser la première zone mémoire mais également la zone de travail Z2A si nécessaire. Du fait de la place restreinte de la première zone, des appels sont faits à la zone de travail pour effectuer le calcul de l'empreinte par exemple. La routine permettant de calculer cette empreinte peut se trouver dans le seconde zone. Rien n'empêche que cette routine fasse partie des données qui seront vérifiées. Ce programme est appelé programme système
[43] Le programme d'initialisation lancé au démarrage, calcule une empreinte sur la partie convenue des données à vérifier. Cette partie est définie par des pointeurs qui sont contenus dans la seconde zone mémoire. Une illustration du mécanisme de portions de la zone utilisateur Z2B est contenue dans la figure 2.
[44] La prise en compte des données formant l'empreinte peut se faire sur l'ensemble ou sur une partie de la zone utilisateur. Dans la pratique, cette empreinte se calculera de préférence sur la partie programme et non sur la partie données (droits de visualisation par exemple) car ces dernières sont susceptibles d'être modifiées durant l'utilisation du programme utilisateur. Le programme de détermination de l'empreinte initialisé au démarrage, calcule cette empreinte sur la partie convenue des données à vérifier. Cette partie est définie par des pointeurs qui sont contenus dans la seconde zone mémoire, en particulier dans la portion DES de la figure 2.
[45] Dans le cadre de l'invention, cette empreinte est réalisée par une opération unidirectionnelle qui est une application mathématique H d'un ensemble source vers un ensemble objet, dans laquelle chaque élément x de l'ensemble source se voit attribuer une image H(x). Ces fonctions sont particulièrement utiles lorsque ce sont des fonctions dites Hash, telles que définies en page 27 de l'ouvrage RSA Laboratories' Frequently Asked Questions About Today's Cryptography, v4.0. L'élément x peut être d'une longueur quelconque mais H(x) est toujours une suite de caractères de longueur fixe ('fixed-size string'). Une telle fonction est difficile à inverser, c'est-à-dire que la connaissance de H(x) ne permet en général pas de retrouver x. Elle est de plus dite libre de collision lorsqu'elle est injective, c'est-à-dire que H(y)=H(x) entraîne nécessairement y=x, de même que H(y)Η(x) entraîne nécessairement yxx.
[46] Il est considéré comme impossible de reproduire la même information de contrôle
H dès qu'une seule valeur de l'ensemble x a été modifiée même si d'autres valeurs sont modifiées dans le but d'annuler la modification générée par la première modification.
[47] Dans la figure 2, la zone utilisateur Z2B de la figure 1 est fractionnée en plusieurs portions PA, PB et PC. Ces portions ne sont pas contiguës dans cet exemple et sont séparées par des portions PI qui n'interviennent pas dans le calcul de l'empreinte. L'information décrivant ces différentes portions est contenue dans la portion DES qui fait également partie de la zone utilisateur Z2B. Elle contient les indications de locations mémoire participant au calcul de l'information de contrôle. Ces indications peuvent être soit sous la forme 'pointeur début' et 'longueur' ou 'pointeur début' et 'pointeur fin'.
[48] De plus, il est possible de n'avoir pas une seule information de contrôle, mais plusieurs, chaque information Hl, H2, Hn s'appliquant sur une portion PA, PB ou PC. Ceci permet de générer non seulement une clé racine mais plusieurs clés.
[49] Sur la figure 1 le bloc I/O illustre les moyens de communication vers l'extérieur du module MOD, moyens indispensables pour utiliser les fonctions cryptographiques et les droits stockés dans la mémoire Z2B. C'est également par ce biais que des données sont extraites accidentellement de la zone Z2 par une faille telle que décrite plus haut. [50] Sur la figure 3, l'étape de la génération de la clé racine est schématisée. Les données DTA qui, selon l'exemple de la figure 2, sont constituées des portions PA, PB et PC, servent à calculer par le processeur l'empreinte qui est dans notre cas une information de contrôle Hash. Pour calculer la clé racine RK, l'on va utiliser cette information de contrôle H et une clé d'usine MK2 pour obtenir cette clé racine RK par l'intermédiaire d'un module d'encryption ENC. Cette clé secrète sera de type symétrique (ou utiliser symétriquement par le centre de gestion) car dans le cas contraire, la clé racine résultante ne serait pas la même au centre de gestion et dans le module MOD.
[51] Il est à noter que si le contenu de la partie utilisateur Z2B dispose déjà d'une empreinte établie lors de la vérification de la conformité du programme stocké, il est possible d'utiliser cette empreinte en lieu et place de l'information de contrôle H. Ce qui compte dans cette opération est d'utiliser des données qui représentent tout ou partie des données DTA. Dans une variante, il est possible de sélectionner un octet sur trois par exemple pour la détermination des données qui seront encryptées par la clé d'usine MK2.
[52] Selon un autre mode de réalisation, la clé d'usine est remplacée par un algorithme secret (RTN) qui est stocké dans la première zone Zl. Il peut être copié de cette première zone vers la zone de travail Z2A durant la phase d'initialisation si cela est nécessaire.
[53] Cet algorithme mélange selon un mode particulier tout ou partie des données DTA afin d'obtenir un résultat unique dépendant de ces données. Ce mélange peut mettre en œuvre différentes opérations arithmétiques tells que multiplication, Exor etc.
[54] Une fois cette clé racine calculée, elle est stockée dans une zone mémoire de la seconde zone Z2.
[55] Le lieu de l'exécution de ces étapes de procédé n'est pas déterminante. Le programme dans la zone d'amorçage peut simplement copier la clé d'usine dans une zone mémoire temporaire et le programme de génération de la clé racine, appelé programme système, peut être contenu dans la zone de travail Z2A. L'important est de stocker cette clé d'usine dans la première zone Zl afin de la rendre inaccessible lors de l'exécution normale du programme utilisateur.
[56] Une fois la clé racine générée, la clé d'usine est effacée de la mémoire temporaire.
[57] Selon une des applications pratique, le centre de gestion qui est en charge de la sécurité, prépare un nouveau logiciel afin de pallier à un défaut connu tel qu'une attaque de contrefacteur visant à extraire les données de la zone Z2. Ce nouveau logiciel est signé c'est-à-dire que l'on calcule la fonction Hash sur ces données et on encrypte le résultat avec la clé privée MK1.
[58] Le tout est ensuite encrypte par les clés de transmission et transmis sous forme de messages aux modules de sécurité MOD.
[59] Le programme existant dans la zone utilisateur Z2B traite les données entrantes et décrypte les messages par la ou les clés de transmission du système. Les données sont ensuite stockées aux emplacements prévus à cet effet. Une fois ce téléchargement terminé le processeur active une fonction de redémarrage. Ceci lui permet de vérifier toutes les données nouvellement stockées.
[60] Cette vérification porte en général sur l'ensemble des programmes stockés et cette vérification s'effectue selon les étapes décrites ci-dessus. Si l'on considère l'hypothèse qu'un tiers dispose d'un module MOD non sécurisé, la première zone mémoire Zl n'existe pas (ou est vierge) et le processeur débute immédiatement dans la seconde zone Z2. Le nouveau programme reçu du centre de gestion est décrypté par le tiers et la zone utilisateur est dès lors identique à celle d'un processeur sécurisé à double zones mémoires.
[61] Lors du démarrage du processeur sécurisé, la clé racine est générée et est utilisée pour décrypter la nouvelle clé de transmission. Le module fictif ne possède par cette clé racine et ne peut décrypter la clé de transmission. Dès cet instant, les messages échangés entre le centre de gestion le module de sécurité ne sont plus accessibles au module fictif. Si ce dernier tente de retrouver la clé racine par une attaque telle que celle qui lui a permis d'obtenir le contenu de la seconde zone, cette attaque ne fonctionne plus car le but de ce nouveau logiciel est justement de pallier à ce type de faille. Le module sécurisé retrouve le niveau de sécurité précédant l'attaque qui avait permis d'extraire les données.
[62] Ainsi, cette méthode permet de refermer à distance une faille de sécurité et de rétablir la sécurité originale sans devoir échanger tous les modules comme c'était souvent le cas.
[63] Comme indiqué plus haut, l'accès à la première zone Zl est effectué lors du démarrage du microprocesseur ou après un mécanisme de vérification. Durant le scénario décrit ci-dessus, il est possible de ne pas déclencher une remise à zéro (reset) du microprocesseur et de demander l'accès à la première zone par une passerelle. Une fois l'entrée par cette passerelle demandée (par l'introduction d'un mot de passe par exemple), l'exécution du programme n'est plus visible depuis la seconde zone et donc inconnue à un tiers ayant recopié cette zone. Le programme ainsi initié va débuter la génération de la clé racine.
[64] La zone mémoire Zl à accès conditionnel ne peut servir qu'à fournir les informations secrètes nécessaires à la formation de la clé racine. Dans cette configuration, le programme de la zone utilisation Z2, ne fait qu'ouvrir l'accès à la première zone Zl pour lire les informations pour le calcul de la clé racine. Lors de ces opérations, on limitera la durée de visibilité de la première zone au temps nécessaire à la lecture puis cette zone sera rendue inaccessible. [65] Selon un mode de réalisation, la clé d'usine est en fait un jeu de clés. A chaque génération d'une clé racine, une clé d'usine est désactivée. La sélection de la clé à utiliser peut de faire de différente manière, à savoir: [66] - sur commande du centre de gestion, c'est-à-dire par un descripteur dans les données de définition DES, [67] - en utilisant les n derniers bits de l'empreinte (par exemple 3 bits) qui permettent de choisir parmi les clés (par exe. les 8 clés) stockées.

Claims

Claims
[1] 1. Méthode de génération d'une clé de sécurité effectuée par un module sécurisé
(MOD) comprenant une unité centrale (CPU), une première zone mémoire (Zl) à accès conditionnel et au moins une seconde zone mémoire (Z2) contenant tout ou partie du programme utilisateur, caractérisé en ce qu'elle comprend les étapes suivantes:
- lecture de tout ou partie de la seconde zone mémoire (Z2),
- génération d'au moins une clé racine (RK) basée sur tout ou partie des données (DTA) de la seconde zone (Z2) et sur au moins une information secrète (MK2, RTN) stockée dans la première zone mémoire (Zl).
2. Méthode selon la revendication 1, caractérisée en ce que l'information secrète est une clé d'usine (MK2).
3. Méthode selon la revendication 1, caractérisée en ce que l'information secrète est un algorithme (RTN) décrivant l'utilisation des données (DTA) pour la génération de la clé racine (RK).
4. Méthode selon les revendications 1 à 3, caractérisée en ce qu'elle consiste à calculer au moins une information de contrôle (H) représentative de tout ou partie des données (DTA) de la seconde zone (Z2), cette information de contrôle (H) étant utilisée pour la génération de la clé racine (RK).
5. Méthode selon la revendication 4, caractérisé en ce que l'information de contrôle (H) est le résultat d'une fonction (Hash) dite unidirectionnelle et sans collision, effectuée sur tout ou partie des données de la seconde zone mémoire (Z2).
6. Méthode selon les revendications 1 à 5, caractérisée en ce que la seconde zone (Z2) comprend de plus une partie de description (DES) comprenant la localisation de la ou des zones mémoires déterminant la formation de l'information de contrôle (H).
7. Méthode selon la revendication 6, caractérisée en ce que cette partie de description (DES) comprend une pluralité d'informations de localisation de chaque partie (PA, PB, PC) de la zone mémoire utilisateur (Z2B) correspondant à des informations de contrôle partielles (Hl, H2 ... Hn).
8. Méthode selon la revendication 2, caractérisée en ce que la clé d'usine (MK2) est de type symétrique.
9. Méthode selon les revendications 1 à 8, caractérisée en ce que la seconde zone (Z2) comprend une zone de vérification (Z2A) et une zone utilisateur (Z2B), les programmes contenus dans la zone de vérification (Z2A) participent à la vérification des données de la zone utilisateur (Z2B), le programme système de la première zone transfère les données nécessaires de cette première zone vers la zone de vérification (Z2A).
10. Méthode selon la revendication 9, caractérisée en ce que la clé d'usine (MK2) est copiée de la première zone (Zl) vers la zone de vérification (Z2A) par le programme système.
11. Méthode selon la revendication 10, caractérisée en ce que la clé d'usine est effacée dès que la clé racine est générée.
12. Méthode selon l'une des revendications précédentes, caractérisée en ce que la clé racine (RK) est utilisée comme clé de transmission pour décrypter les messages en provenance d'un centre de gestion.
PCT/IB2004/050794 2003-05-23 2004-05-27 Methode de generation d’une cle de securite WO2004107283A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2004800147231A CN1795471B (zh) 2003-05-23 2004-05-27 安全性密钥生成方法
EP04735073A EP1627362A1 (fr) 2003-05-23 2004-05-27 Methode de generation d'une cle de securite

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CH9532003 2003-05-23
CH0953/03 2003-05-28

Publications (1)

Publication Number Publication Date
WO2004107283A1 true WO2004107283A1 (fr) 2004-12-09

Family

ID=33438115

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2004/050794 WO2004107283A1 (fr) 2003-05-23 2004-05-27 Methode de generation d’une cle de securite

Country Status (4)

Country Link
US (1) US7725740B2 (fr)
EP (1) EP1627362A1 (fr)
CN (1) CN1795471B (fr)
WO (1) WO2004107283A1 (fr)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177429B2 (en) 2000-12-07 2007-02-13 Blue Spike, Inc. System and methods for permitting open access to data objects and for securing data within the data objects
US7664264B2 (en) 1999-03-24 2010-02-16 Blue Spike, Inc. Utilizing data reduction in steganographic and cryptographic systems
WO2001018628A2 (fr) 1999-08-04 2001-03-15 Blue Spike, Inc. Serveur de contenu personnel securise
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US7287275B2 (en) 2002-04-17 2007-10-23 Moskowitz Scott A Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
GB0329039D0 (en) * 2003-12-15 2004-01-14 Ncipher Corp Ltd Cryptographic security module method and apparatus
US7590997B2 (en) 2004-07-30 2009-09-15 Broadband Itv, Inc. System and method for managing, converting and displaying video content on a video-on-demand platform, including ads used for drill-down navigation and consumer-generated classified ads
US9584868B2 (en) 2004-07-30 2017-02-28 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US7631336B2 (en) 2004-07-30 2009-12-08 Broadband Itv, Inc. Method for converting, navigating and displaying video content uploaded from the internet to a digital TV video-on-demand platform
US11259059B2 (en) 2004-07-30 2022-02-22 Broadband Itv, Inc. System for addressing on-demand TV program content on TV services platform of a digital TV services provider
US20060265736A1 (en) * 2005-05-19 2006-11-23 Gilbarco Inc. Encryption system and method for legacy devices in a retail environment
US8234506B2 (en) * 2006-10-08 2012-07-31 International Business Machines Corporation Switching between unsecure system software and secure system software
US11570521B2 (en) 2007-06-26 2023-01-31 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US9654833B2 (en) 2007-06-26 2017-05-16 Broadband Itv, Inc. Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection
US20090262926A1 (en) * 2008-04-16 2009-10-22 Infineon Technologies Ag Method and apparatus for generating a cryptographic key
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
US8438401B2 (en) * 2009-09-22 2013-05-07 Raytheon BBN Technologies, Corp. Device and method for securely storing data
US11083344B2 (en) 2012-10-11 2021-08-10 Roman Tsibulevskiy Partition technologies
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
CN104579644A (zh) * 2015-01-12 2015-04-29 浪潮软件集团有限公司 一种密钥生成与恢复方法
CN106454435B (zh) * 2015-08-07 2020-01-24 阿里巴巴集团控股有限公司 一种条件接收方法及相关设备与系统
EP3803796A4 (fr) 2018-05-29 2021-06-23 Curiouser Products Inc. Appareil d'affichage vidéo réfléchissant pour formation et démonstration interactives, et procédés d'utilisation associés
US11465030B2 (en) 2020-04-30 2022-10-11 Curiouser Products Inc. Reflective video display apparatus for interactive training and demonstration and methods of using same
US11167172B1 (en) 2020-09-04 2021-11-09 Curiouser Products Inc. Video rebroadcasting with multiplexed communications and display via smart mirrors

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0280035A2 (fr) * 1987-02-23 1988-08-31 Siemens Nixdorf Informationssysteme Aktiengesellschaft Procédé de protection de programmes et de contrôle d'intégrité de programme protégé
US4786790A (en) * 1987-03-04 1988-11-22 Siemens Aktiengesellschaft Data exchange system with authentication code comparator
EP0434551A1 (fr) * 1989-12-19 1991-06-26 Bull Cp8 Procédé de génération d'un nombre aléatoire dans un système de traitement de données, et système mettant en oeuvre un tel procédé
US5067156A (en) * 1989-03-08 1991-11-19 Siemens Aktiengesellschaft Method for generating a random number for the encoded transmission of data upon employment of a variable starting value
EP0475837A1 (fr) * 1990-09-12 1992-03-18 Gemplus Card International Procédé de gestion d'un programme d'application chargé dans un support à microcircuit
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
WO2001086601A1 (fr) * 2000-05-09 2001-11-15 Bull Cp8 Procede pour authentifier un objet portatif, objet portatif correspondant, et appareil pour mettre en oeuvre le procede
FR2829645A1 (fr) * 2001-09-10 2003-03-14 St Microelectronics Sa Protocole d'authentification a verification d'integrite de memoire

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201000A (en) * 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5774058A (en) * 1995-07-20 1998-06-30 Vindicator Corporation Remote access system for a programmable electronic lock
US6141756A (en) * 1998-04-27 2000-10-31 Motorola, Inc. Apparatus and method of reading a program into a processor
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
JP2000250817A (ja) * 1999-03-02 2000-09-14 Tokyo Electron Ltd 記憶システム、記憶装置及び記憶データ保護方法
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US7036023B2 (en) * 2001-01-19 2006-04-25 Microsoft Corporation Systems and methods for detecting tampering of a computer system by calculating a boot signature
US7069445B2 (en) * 2001-11-30 2006-06-27 Lenovo (Singapore) Pte. Ltd System and method for migration of a version of a bootable program
US7013384B2 (en) * 2002-01-15 2006-03-14 Lenovo (Singapore) Pte. Ltd. Computer system with selectively available immutable boot block code
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US6920566B2 (en) * 2002-07-12 2005-07-19 Phoenix Technologies Ltd. Secure system firmware by disabling read access to firmware ROM

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0280035A2 (fr) * 1987-02-23 1988-08-31 Siemens Nixdorf Informationssysteme Aktiengesellschaft Procédé de protection de programmes et de contrôle d'intégrité de programme protégé
US4786790A (en) * 1987-03-04 1988-11-22 Siemens Aktiengesellschaft Data exchange system with authentication code comparator
US5067156A (en) * 1989-03-08 1991-11-19 Siemens Aktiengesellschaft Method for generating a random number for the encoded transmission of data upon employment of a variable starting value
EP0434551A1 (fr) * 1989-12-19 1991-06-26 Bull Cp8 Procédé de génération d'un nombre aléatoire dans un système de traitement de données, et système mettant en oeuvre un tel procédé
EP0475837A1 (fr) * 1990-09-12 1992-03-18 Gemplus Card International Procédé de gestion d'un programme d'application chargé dans un support à microcircuit
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
WO2001086601A1 (fr) * 2000-05-09 2001-11-15 Bull Cp8 Procede pour authentifier un objet portatif, objet portatif correspondant, et appareil pour mettre en oeuvre le procede
FR2829645A1 (fr) * 2001-09-10 2003-03-14 St Microelectronics Sa Protocole d'authentification a verification d'integrite de memoire

Also Published As

Publication number Publication date
US20040236959A1 (en) 2004-11-25
US7725740B2 (en) 2010-05-25
CN1795471A (zh) 2006-06-28
CN1795471B (zh) 2010-10-13
EP1627362A1 (fr) 2006-02-22

Similar Documents

Publication Publication Date Title
WO2004107283A1 (fr) Methode de generation d’une cle de securite
EP1570648B1 (fr) Méthode de sécurisation des mises à jour de logiciels
EP2688010B1 (fr) Mise à jour d'un système d'exploitation pour élément sécurisé
CA2121410C (fr) Dispositif de protection des cles d'une carte a puce
EP0475837B1 (fr) Procédé de gestion d'un programme d'application chargé dans un support à microcircuit
EP1004100B1 (fr) Dispositif portable electronique pour systeme de communication securisee, et procede d'initialisation de ses parametres
EP1964307B1 (fr) Procédé pour la réalisation d'un compteur sécurisé sur un système informatique embarqué disposant d'une carte a puce.
EP1072124B1 (fr) Procede de verification de l'usage de cles publiques engendrees par un systeme embarque
EP0089876B1 (fr) Procédé et dispositif de protection d'un logiciel livré par un fournisseur à un utilisateur
EP1761835B1 (fr) Module de sécurité et méthode de personnalisation d'un tel module de sécurité
EP1494460A1 (fr) Procédé et dispositif d'authentification de données numériques par module d'extension d'authentification
EP0720098B1 (fr) Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs
EP2166696A1 (fr) Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
WO2005124502A1 (fr) Methode de mise a jour securisee de logiciel embarque dans un module de securite
EP3327607B1 (fr) Procede de verification de donnees
EP2131300B1 (fr) Procédé et dispositif de sécurisation pour entité électronique portable
EP1436792B1 (fr) Protocole d'authentification a verification d'integrite de memoire
EP3757842A1 (fr) Modification d'une mémoire d'un microprocesseur sécurisé
WO2008084154A2 (fr) Traitement de donnee relative a un service numerique
EP1494461B1 (fr) Procédé et dispositif d'authentification de données numériques à partir d'un module d'extension d'authentification
WO2024083849A1 (fr) Encodage en boite blanche
EP4338079A1 (fr) Procédé pour sécuriser l'utilisation d'un logiciel
WO2022238636A1 (fr) Procédé pour l'exécution d'un programme charge dans la mémoire non volatile d'un microcontrôleur en circuit intégré
EP0968462B1 (fr) Procede de controle de l'etancheite d'applications chargees dans un terminal multi-applicatif et terminal pour la mise en oeuvre
FR2856815A1 (fr) Procede d'authentification de donnees contenues dans un objet a memoire

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004735073

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 5321/DELNP/2005

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 20048147231

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2004735073

Country of ref document: EP