FR2852415A1 - Key type storage medium for controlling access to data and/or software, has microcontroller connected with reading device to securitize access to data and software, and ROM with files to store data and software that are to be securitized - Google Patents

Key type storage medium for controlling access to data and/or software, has microcontroller connected with reading device to securitize access to data and software, and ROM with files to store data and software that are to be securitized Download PDF

Info

Publication number
FR2852415A1
FR2852415A1 FR0303019A FR0303019A FR2852415A1 FR 2852415 A1 FR2852415 A1 FR 2852415A1 FR 0303019 A FR0303019 A FR 0303019A FR 0303019 A FR0303019 A FR 0303019A FR 2852415 A1 FR2852415 A1 FR 2852415A1
Authority
FR
France
Prior art keywords
sep
file
access
data
key
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.)
Granted
Application number
FR0303019A
Other languages
French (fr)
Other versions
FR2852415B1 (en
Inventor
Michel Evangelou
Daniel Steinmetz
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.)
Actikey
Original Assignee
Actikey
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 Actikey filed Critical Actikey
Priority to FR0303019A priority Critical patent/FR2852415B1/en
Publication of FR2852415A1 publication Critical patent/FR2852415A1/en
Application granted granted Critical
Publication of FR2852415B1 publication Critical patent/FR2852415B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/0772Physical layout of the record carrier
    • G06K19/07732Physical layout of the record carrier the record carrier having a housing or construction similar to well-known portable memory devices, such as SD cards, USB or memory sticks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

The medium (10) has a microcontroller (12) connected with a reading device (2) for securitizing access to data and software. An electrically erasable programmable ROM (EEPROM) (14) comprises group of files arranged to store the data and software that are to be securitized. A pair of Schottky diodes powers a latch (13) upon receiving a selection signal from a host personal computer (PC). An independent claim is also included for a process for controlling the access to data and use of computer associated to a support key.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

SUPPORT DE TYPE CLE, DE CONTROLE DE L'ACCES A DES DONNEES ET/OU A UN LOGICIEL ET PROCEDE CORRESPONDANT
La présente invention concerne un support de type clé comprenant une mémoire à lecture/écriture et des moyens de sécurisation de l'accès à des données et/ou à un logiciel, propre à être connecté à un dispositif lecteur.
KEY TYPE MEDIUM, CONTROL OF ACCESS TO DATA AND / OR SOFTWARE, AND CORRESPONDING METHOD
The present invention relates to a key type support comprising a read / write memory and means for securing access to data and / or software, capable of being connected to a reader device.

Elle concerne également un procédé de contrôle de l'accès à des données et/ou de l'utilisation d'un logiciel associé à un support du type clé.  It also relates to a method of controlling access to data and / or the use of software associated with a key type support.

Elle trouve une application particulièrement importante bien que non exclusive dans le domaine de la protection contre la copie de logiciels utilisés sur des micro-ordinateurs.  It finds a particularly important application although not exclusive in the field of copy protection of software used on microcomputers.

On connaît déjà des méthodes de protection de logiciels utilisés sur un ordinateur, qui consistent à marquer l'ordinateur au moyen d'un dispositif électronique complémentaire appelé clé.  Methods of protecting software used on a computer, which consists of marking the computer by means of a complementary electronic device called a key, are already known.

Le programme ou logiciel, au cours de son exécution, vérifie la présence de cette clé constituée par un circuit électronique qui renvoie des codes lorsqu'il est sollicité.  The program or software, during its execution, checks for the presence of this key constituted by an electronic circuit that returns codes when it is requested.

Ce circuit peut se loger directement dans l'un des connecteurs d'extension de l'ordinateur, ou plus simplement se brancher sur l'une des prises ou ports externes, par exemple celui de l'imprimante sans pour autant perturber le fonctionnement de cette dernière.  This circuit can be housed directly in one of the expansion slots of the computer, or more simply connect to one of the external sockets or ports, for example that of the printer without disturbing the operation of this last.

On peut ainsi copier le logiciel à volonté. Ce système qui a été encore amélioré en rendant les clés directement programmables grâce à une mémoire rémanente à lecture/écriture est de loin le plus efficace.  We can copy the software at will. This system, which has been further improved by making keys directly programmable through read / write non-volatile memory, is by far the most efficient.

<Desc/Clms Page number 2> <Desc / Clms Page number 2>

Il présente cependant un certain nombre d'inconvénients.  However, it has a number of disadvantages.

En effet, les données et/ou les logiciels qui sont actuellement accessibles de façon sécurisée par clé sur un ordinateur ne sont jamais totalement inaccessibles pour un pirate astucieux, qui peut réussir à détourner les codes utilisés et/ou à les simuler.  Indeed, the data and / or software that is currently accessible in a secure way by key on a computer are never completely inaccessible to a clever hacker, who can successfully hijack the used codes and / or simulate them.

La présente invention vise à fournir une clé et un procédé de sécurisation de l'accès à des données et/ou à un logiciel répondant mieux que ceux antérieurement connus aux exigences de la pratique, notamment en ce qu'elle permet de palier les inconvénients ci-dessus mentionnés, et en ce qu'elle permet par des procédures d'installation simplifiées de ne plus se préoccuper du dispositif sur lequel fonctionnera l'application.  The present invention aims to provide a key and a method of securing access to data and / or software that better than those previously known to the requirements of the practice, in particular in that it makes it possible to overcome the disadvantages above-mentioned, and in that it allows by simplified installation procedures to no longer be concerned about the device on which the application will work.

Avec l'invention, le programmeur va donc autoriser ou non l'accès aux données sécurisées ou le fonctionnement du logiciel protégé de façon optimisée, ce qui présente un résultat technique particulièrement avantageux, à une époque où le piratage de données ou de logiciels est malheureusement en recrudescence.  With the invention, the programmer will therefore allow or not access to secure data or the operation of the protected software in an optimized manner, which has a particularly advantageous technical result, at a time when piracy of data or software is unfortunately in recrudescence.

Dans ce but, l'invention propose notamment un support de type clé comprenant une mémoire à lecture/écriture et des moyens de sécurisation de l'accès à des données et/ou à un logiciel propre à être connecté à un dispositif lecteur, caractérisé en ce que la mémoire comprend au moins un fichier spécifique agencé pour stocker au moins partiellement lesdites données et/ou ledit logiciel à sécuriser.  For this purpose, the invention notably proposes a key-type support comprising a read / write memory and means for securing access to data and / or software adapted to be connected to a reader device, characterized in that the memory comprises at least one specific file arranged to at least partially store said data and / or said software to be secured.

<Desc/Clms Page number 3> <Desc / Clms Page number 3>

En stockant les données à sécuriser et/ou le logiciel dont l'utilisation doit être contrôlée à l'intérieur même de la clé, ce qui paraît surprenant, on augmente ainsi la sécurité, le pirate ne pouvant y avoir accès qu'en pénétrant dans la clé elle-même, ce qui est quasiment impossible du fait de l'existence des moyens de sécurisation eux-mêmes également présents dans la clé.  By storing the data to be secured and / or the software whose use must be controlled inside the key itself, which seems surprising, it increases the security and the hacker can have access to it only by entering the key itself, which is almost impossible because of the existence of the security means themselves also present in the key.

Dans des modes de réalisation avantageux, on a de plus recours à l'une et/ou à l'autre des dispositions suivantes : - les moyens de sécurisation comportent des moyens d'identification de l'utilisateur agencé pour bloquer l'usage de la totalité des autres fichiers stockés dans la clé en cas de mauvaise identification ; - les moyens agencés pour bloquer l'usage de la totalité des autres fichiers permettent l'effaçage desdits fichiers ; - les moyens de sécurisation comportent au moins un groupe de plusieurs fichiers agencés pour contrôler le niveau de sécurisation des données sécurisées stockées dans le fichier spécifique attaché audit groupe dans la mémoire dudit support ; - le groupe de plusieurs fichiers comprend un fichier mot de passe en lecture , un fichier mot de passe en écriture , et un fichier compteur de tentative d'accès ; - le compteur de tentative d'accès est agencé pour bloquer l'accès au fichier correspondant au bout de n tentatives infructueuses de mot de passe en lecture et/ou en écriture ;  In advantageous embodiments, one and / or the other of the following provisions is also used: the security means comprise means of identification of the user arranged to block the use of the all other files stored in the key in case of misidentification; the means arranged to block the use of all the other files allow the erasure of said files; the security means comprise at least one group of several files arranged to control the level of security of the secure data stored in the specific file attached to said group in the memory of said medium; the group of several files includes a read password file, a write password file, and an access attempt counter file; - The access attempt counter is arranged to block access to the corresponding file after n unsuccessful attempts to password read and / or write;

<Desc/Clms Page number 4><Desc / Clms Page number 4>

- l'accès au fichier dans le mode concerné est définitivement impossible après trois tentatives infructueuses.  - Access to the file in the mode concerned is definitively impossible after three unsuccessful attempts.

L'invention concerne également un procédé de contrôle de l'accès à des données et/ou de l'utilisation d'un logiciel associé à un support du type clé, caractérisé en ce que on stocke au moins partiellement lesdites données et/ou le logiciel dans au moins un fichier spécifique de données de la clé elle même.  The invention also relates to a method for controlling the access to data and / or the use of software associated with a key type support, characterized in that at least part of said data is stored and / or software in at least one specific data file of the key itself.

Dans un mode de réalisation avantageux, on identifie l'utilisateur et on bloque l'usage de la totalité des autres fichiers stockés dans la clé en cas de mauvaise identification.  In an advantageous embodiment, the user is identified and the use of all the other files stored in the key is blocked in the event of misidentification.

Avantageusement on sécurise l'accès audit fichier spécifique de données en stockant des informations de sécurisation dans au moins un groupe de plusieurs fichiers agencés pour contrôler le niveau de sécurisation desdites données sécurisées stockées dans ledit fichier.  Advantageously secures access to said specific file of data by storing security information in at least one group of several files arranged to control the level of security of said secure data stored in said file.

Dans un autre mode de réalisation, on sécurise l'accès aux données par un mot de passe en lecture et un mot de passe en écriture , que l'on compare avec des mots introduits dans un fichier dit compteur de tentatives .  In another embodiment, the access to the data is secured by a read password and a write password, which are compared with words entered in a file called the attempt counter.

Avantageusement, on bloque l'accès au fichier correspondant au bout de n tentatives infructueuses de mot de passe en lecture et/ou en écriture.  Advantageously, access to the corresponding file is blocked after n unsuccessful attempts of password reading and / or writing.

L'invention sera mieux comprise à la lecture de la description des modes de réalisation donnés ci-après à titre d'exemple non limitatifs, et en faisant également référence à différents tableaux.  The invention will be better understood on reading the description of the embodiments given hereinafter by way of nonlimiting example, and also referring to various tables.

<Desc/Clms Page number 5> <Desc / Clms Page number 5>

La description se réfère aux dessins qui l'accompagnent, dans lesquels :
La figure 1 est une vue en perspective, schématique, d'un micro-ordinateur équipé d'une clé selon l'invention branché sur un port USB.
The description refers to the accompanying drawings, in which:
Figure 1 is a schematic perspective view of a microcomputer equipped with a key according to the invention connected to a USB port.

La figure 2 est une vue en perspective de la clé de la figure 1 dont le boîtier de protection a été enlevé.  Figure 2 is a perspective view of the key of Figure 1, the protective housing has been removed.

La figure 3 est un schéma bloc général d'une clé électronique selon un mode de réalisation de l'invention.  Figure 3 is a block diagram of an electronic key according to one embodiment of the invention.

La figure 4 est un schéma donnant la structure cartographique de groupes de fichiers de sécurisation et de fichiers de données correspondants utilisés dans un mode de réalisation de l'invention.  Fig. 4 is a diagram showing the mapping structure of securing file groups and corresponding data files used in one embodiment of the invention.

La figure 1 montre un micro-ordinateur 1 comportant un boîtier 2 et un écran 3.  FIG. 1 shows a microcomputer 1 comprising a housing 2 and a screen 3.

Le boîtier est muni d'un port USB 4.  The case is equipped with a USB 4 port.

Selon le mode de réalisation de l'invention plus particulièrement décrit ici, le micro-ordinateur 1 comprend une clé 5, enfichée sur le port USB 4.  According to the embodiment of the invention more particularly described here, the microcomputer 1 comprises a key 5, plugged into the USB port 4.

En référence à la figure 2, la clé 5 comprend un circuit 6 muni d'un microcontrôleur 7, par exemple un PIC 16C765 fabriqué par la société américaine MICROCHIP.  With reference to FIG. 2, the key 5 comprises a circuit 6 provided with a microcontroller 7, for example a PIC 16C765 manufactured by the American company MICROCHIP.

Un tel microcontrôleur 7 convient par exemple, avec une légère adaptation, au protocole IEEE 1284 utilisé dans le mode de réalisation de l'invention plus particulièrement décrit ici.  Such a microcontroller 7 is suitable, for example, with a slight adaptation, to the IEEE 1284 protocol used in the embodiment of the invention more particularly described here.

Le circuit 6 comprend également une EEPROM 8 par exemple de 32 kilo Octets qui va permettre le stockage des fichiers de sécurisation et de données et une fiche 9 de connection avec le port USB.  The circuit 6 also includes an EEPROM 8 for example of 32 kilo octets which will allow the storage of the security and data files and a plug 9 connection with the USB port.

<Desc/Clms Page number 6> <Desc / Clms Page number 6>

Plus précisément, en référence à la figure 3, il est représenté un schéma bloc d'un circuit 10 selon un autre mode de réalisation de l'invention.  More specifically, with reference to FIG. 3, there is shown a block diagram of a circuit 10 according to another embodiment of the invention.

Il comprend un boîtier 11 (trait interrompu), un microcontrôleur 12, un circuit 13 dit latch qui permet le fonctionnement de la clé en mode transparent du type connu en langue anglo saxonne sous la dénomination Daisy chaining , une EEPROM 14 compatible I2C par exemple de 32 kilo octets, deux diodes schottky 15 permettant l'alimentation du circuit par au moins un signal 16 sélection ou init venant du PC hôte (non représenté), un ensemble de composant 17 permettant la génération de l'horloge par exemple d'une fréquence de 6Mhz, deux connecteurs DB25, dont l'un est destiné à être relié côté hôte et l'autre d'un côté dit pass through , autorisant le passage au travers de la clé de façon transparente, trois capacités de filtrage 19, et un ensemble 20 de cinq contacts (représentés par un trait mixte) permettant la programmation in situ de la clé lors de sa production.  It comprises a housing 11 (broken line), a microcontroller 12, a circuit 13 called latch which allows the operation of the key in transparent mode of the type known in the Anglo-Saxon language under the name Daisy chaining, an EEPROM 14 compatible I2C for example of 32 kilobytes, two schottky diodes 15 for supplying the circuit with at least one signal 16 select or init from the host PC (not shown), a set of component 17 for generating the clock for example a frequency of 6Mhz, two DB25 connectors, one of which is intended to be connected on the host side and the other of a so-called pass-through side, allowing the passage through the key in a transparent manner, three filtering capacitors 19, and one set 20 of five contacts (represented by a dash) allowing the in-situ programming of the key during its production.

Dans le mode de réalisation plus particulièrement décrit ici, il est prévu de fonctionner en mode dit Daisy Chain et protocole EPP sans adresses. La clé est toujours configurée en mode esclave, c'est-àdire qu'elle reçoit toutes ses commandes par l'interface physique.  In the embodiment more particularly described here, it is intended to operate in so-called Daisy Chain mode and EPP protocol without addresses. The key is always configured in slave mode, that is, it receives all its commands through the physical interface.

Elle reçoit par ailleurs les commandes de lecture ou d'écriture sur le bus 21 considéré avec l'échange protocolaire ad hoc.  It also receives the read or write commands on the bus 21 considered with the ad hoc protocol exchange.

On va maintenant décrire plus précisément le microcontrôleur 12. Il contient le programme de la clé et en particulier une zone spécifique pour  We will now describe more precisely the microcontroller 12. It contains the program of the key and in particular a specific area for

<Desc/Clms Page number 7><Desc / Clms Page number 7>

l'identification au démarrage IDM ). Cette zone IDM a par exemple une taille de 42 octets et commande les fichiers listés dans le tableau 1 ci-après.  IDM startup ID). This IDM zone has for example a size of 42 bytes and controls the files listed in Table 1 below.

L'abréviation MdP signifie Mot de Passe , E étant pour Ecriture et L pour Lecture . On note qu'il est ici prévu des mots de passe Constructeur, Distributeur et Editeur.

Figure img00070001
The abbreviation MdP means Password, E being for Writing and L for Reading. We note that here are provided builder, distributor and publisher passwords.
Figure img00070001

<tb>
<tb>
<Tb>
<Tb>

Structure <SEP> de <SEP> l'IDM
<tb> P/S/U <SEP> xxx <SEP> (2 <SEP> octets)
<tb> Date <SEP> de <SEP> fabrication <SEP> (2 <SEP> octets)
<tb> N de <SEP> version <SEP> (2 <SEP> octets)
<tb> Build <SEP> (2 <SEP> octets)
<tb> Code <SEP> pays <SEP> (2 <SEP> octets)
<tb> Distributeur <SEP> (1 <SEP> octet)
<tb> N de <SEP> série <SEP> de <SEP> fab <SEP> (5 <SEP> octets)
<tb> N série <SEP> éditeur <SEP> (4 <SEP> octets)
<tb> Val <SEP> défaut <SEP> cptrs <SEP> de <SEP> tentative <SEP> (1 <SEP> octet)
<tb> MdPE <SEP> Constructeur <SEP> (3 <SEP> octets)
<tb> MdPL <SEP> Constructeur <SEP> (3 <SEP> octets)
<tb> MdPE <SEP> Distributeur <SEP> (3 <SEP> octets)
<tb> MdPL <SEP> Distributeur <SEP> (3 <SEP> octets)
<tb> MdPE <SEP> Editeur <SEP> (3 <SEP> octets)
<tb> MdPL <SEP> Editeur <SEP> (3 <SEP> octets)
<tb> Compt <SEP> Tentatives <SEP> Constructeur <SEP> (1 <SEP> octet)
<tb> Compt <SEP> Tentatives <SEP> E/L <SEP> distrib. <SEP> (1 <SEP> octet)
<tb> Compt <SEP> Tentatives <SEP> E/L <SEP> éditeur <SEP> (1 <SEP> octet)
<tb>
<SEP> Structure of <SEP> IDM
<tb> P / S / U <SEP> xxx <SEP> (2 <SEP> bytes)
<tb> Date <SEP> of <SEP> manufacture <SEP> (2 <SEP> bytes)
<tb> N of <SEP> version <SEP> (2 <SEP> bytes)
<tb> Build <SEP> (2 <SEP> bytes)
<tb> Code <SEP> country <SEP> (2 <SEP> bytes)
<tb> Distributor <SEP> (1 <SEP> byte)
<tb> N of <SEP><SEP> series of <SEP> fab <SEP> (5 <SEP> bytes)
<tb> N series <SEP> editor <SEP> (4 <SEP> bytes)
<tb> Val <SEP> default <SEP> cptrs <SEP> of <SEP> attempt <SEP> (1 <SEP> byte)
<tb> MEP <SEP> Constructor <SEP> (3 <SEP> bytes)
<tb> MdPL <SEP> Constructor <SEP> (3 <SEP> Bytes)
<tb> MEP <SEP> Distributor <SEP> (3 <SEP> bytes)
<tb> MdPL <SEP> Distributor <SEP> (3 <SEP> Bytes)
<tb> MEP <SEP> Editor <SEP> (3 <SEP> bytes)
<tb> MdPL <SEP> Editor <SEP> (3 <SEP> Bytes)
<tb> Count <SEP> Attempts <SEP> Constructor <SEP> (1 <SEP> byte)
<tb> Count <SEP> Attempts <SEP> E / L <SEP> Distrib. <SEP> (1 <SEP> byte)
<tb> Count <SEP> Attempts <SEP> E / L <SEP> Editor <SEP> (1 <SEP> Byte)
<Tb>

Tableau 1 Le microcontrôleur contient également une mémoire RAM qui permet de stocker les variables et une mémoire tampon buffer permettant le bon fonctionnement du système. Table 1 The microcontroller also contains a RAM memory that stores variables and a buffer buffer for the proper functioning of the system.

<Desc/Clms Page number 8> <Desc / Clms Page number 8>

La place disponible est par exemple de 200 Octets. De façon connue, l'organisation (mapping) de la mémoire RAM est générée après compilation du programme écrit pour l'application. The available space is for example 200 bytes. In a known manner, the organization (mapping) of the RAM memory is generated after compilation of the program written for the application.

La mémoire à lecture/écriture 14, dite mémoire externe, est quant-à-elle composée d'un circuit EEPROM du type 24LCxx.  The read / write memory 14, called external memory, is composed of an EEPROM circuit of the 24LCxx type.

Le nombre xx est celui qui donne la taille de la mémoire selon les caractéristiques souhaitées.  The number xx is the one that gives the size of the memory according to the desired characteristics.

Elle est compatible I2C.  It is I2C compatible.

La cartographie de la mémoire EEPROM 12 est également précisée en référence à la figure 4.  The mapping of the EEPROM memory 12 is also specified with reference to FIG. 4.

Il est prévu de gérer cette mémoire comme un mini disque par exemple structuré de la manière suivante :
Dans la taille totale de la mémoire, on découpe n zones de 64 octets ou cluster 64.
It is planned to manage this memory as a mini disk for example structured as follows:
In the total size of the memory, n zones of 64 bytes or cluster 64 are cut out.

Plus précisément, la mémoire 12 est structurée en n fichiers 200,201, 202,203,..., 20i ..., 20n de 128 octets chacun, soit à chaque fois deux cluster~64 minimum : 200', 200" ;... 20i' , 20i'' ; le premier fichier 200 (secteur de BOOT) étant non effaçable. More specifically, the memory 12 is structured in n files 200,201, 202,203, ..., 20i ..., 20n of 128 bytes each, ie each time two clusters ~ 64 minimum: 200 ', 200 "; ... 20i ', 20i' ', the first file 200 (BOOT sector) being non-erasable.

Le secteur de BOOT 200 de xx octets comprend de façon plus précise une zone BOOT système 200' de x octets, à l'adresse 0x000 variable suivant la taille mémoire.  The BOOT 200 sector of xx bytes more precisely comprises a system BOOT zone 200 'of x bytes, at address 0x000 variable according to the memory size.

Il comprend également une zone protégée 200''de x octets, qui contient la recopie de l'IDM inscrite dans le microcontrôleur (cf.tableau 1), avec trois niveaux de protection suivant le type d'accès(Constructeurs, Distributeurs, Editeurs ).  It also includes a protected area 200 '' x bytes, which contains the copy of the IDM registered in the microcontroller (see table 1), with three levels of protection depending on the type of access (Manufacturers, Distributors, Editors) .

Le secteur de BOOT sera détaillé ci-après :  The BOOT sector will be detailed below:

<Desc/Clms Page number 9> <Desc / Clms Page number 9>

Chaque fichier 201,202, etc, est, quant-à-lui constitué de deux clusters de 64 octets ou plus (un cluster pour l'en tête et un cluster pour le corps). La gestion de ces fichiers est par exemple réalisée de façon connue par des routines contenues dans le programme noyau système stocké dans le microcontrôleur de la clé. Each file 201,202, etc., is, for its part, made up of two clusters of 64 bytes or more (a cluster for the head and a cluster for the body). The management of these files is for example performed in known manner by routines contained in the system kernel program stored in the microcontroller of the key.

Le corps 201'',... 20i'', est strictement réservé aux données cryptées et protégées en écriture et/ou lecture selon l'invention.  The body 201 '', ... 20i '' is strictly reserved for the encrypted data protected in writing and / or reading according to the invention.

L'en-tête 201', 20i', est, quant-à-elle, par exemple, conforme au tableau 2 ci-après, les colonnes Con, Dis et Edi signifiant Constructeur, Distributeur, et Editeur.

Figure img00090001
The header 201 ', 20i', is, for example, in accordance with Table 2 below, the columns Con, Dis and Edi meaning Manufacturer, Distributor, and Publisher.
Figure img00090001

<tb>
<tb>
<Tb>
<Tb>

Variable <SEP> NO <SEP> NO <SEP> Con <SEP> Dis <SEP> Edi <SEP> Adr
<tb> N Fichier <SEP> Numéro <SEP> du <SEP> fichier <SEP> Unique <SEP> dans <SEP> 1 <SEP> 1 <SEP> # <SEP> # <SEP> # <SEP> 0x00
<tb> la <SEP> clé <SEP>
<tb> NomFichier <SEP> Nom <SEP> du <SEP> fichier <SEP> Unique <SEP> dans <SEP> la <SEP> 8 <SEP> 9 <SEP> # <SEP> # <SEP> # <SEP> 0x01
<tb> clé
<tb> ExtFichier <SEP> Extension <SEP> du <SEP> fichier <SEP> 3 <SEP> 12 <SEP> # <SEP> # <SEP> # <SEP> 0x09
<tb> TalFichier <SEP> Taille <SEP> du <SEP> fichier <SEP> Nombre <SEP> de <SEP> 1 <SEP> 13 <SEP> # <SEP> # <SEP> # <SEP> OxOC
<tb> cluster <SEP> de <SEP> 64 <SEP> Octets
<tb> DCrFichier <SEP> Date <SEP> de <SEP> création <SEP> du <SEP> fichier <SEP> 2 <SEP> 15 <SEP> # <SEP> # <SEP> # <SEP> 0x0D
<tb> DLmFichier <SEP> Date <SEP> Limite <SEP> d'utilisation <SEP> du <SEP> 2 <SEP> 17 <SEP> # <SEP> # <SEP> # <SEP> OxOF
<tb> fichier
<tb> NbUsNet <SEP> Nombre <SEP> d'utilisateurs <SEP> Réseau <SEP> 2 <SEP> 19 <SEP> # <SEP> # <SEP> # <SEP> 0x11
<tb> CmtUses <SEP> Compteur <SEP> d'utilisation <SEP> du <SEP> fichier <SEP> 2 <SEP> 21 <SEP> # <SEP> # <SEP> # <SEP> 0x13
<tb> PWWrite <SEP> Mot <SEP> de <SEP> passe <SEP> en <SEP> Ecriture <SEP> du <SEP> 3 <SEP> 24 <SEP> 0x15
<tb> fichier
<tb> PWRead <SEP> Mot <SEP> de <SEP> passe <SEP> en <SEP> Lecture <SEP> du <SEP> 3 <SEP> 27 <SEP> 0x18
<tb> fichier
<tb> SSII <SEP> Code <SEP> SSII <SEP> 1 <SEP> 28 <SEP> # <SEP> # <SEP> # <SEP> 0x1B
<tb> 1 <SEP> 29 <SEP> # <SEP> # <SEP> # <SEP> 0x1 <SEP> C
<tb>
Variable <SEP> NO <SE> NO <SEP> Con <SEP> Dis <SEP> Edi <SEP> Adr
<tb> N File <SEP> Number <SEP> of <SEP> file <SEP> Unique <SEP> in <SEP> 1 <SEP> 1 <SEP>#<SEP>#<SEP>#<SEP> 0x00
<tb> the <SEP> key <SEP>
<tb> FileName <SEP> Name <SEP> of <SEP> file <SEP> Unique <SEP> in <SEP><SEP> 8 <SEP> 9 <SEP>#<SEP>#<SEP>#<SEP> 0x01
<tb> key
<tb> ExtFile <SEP><SEP> Extension <SEP> File <SEP> 3 <SEP> 12 <SEP>#<SEP>#<SEP>#<SEP> 0x09
<tb> TalFile <SEP><SEP><SEP> Size <SEP> File <SEP> Number of <SEP> 1 <SEP> 13 <SEP>#<SEP>#<SEP>#<SEP> OxOC
<tb> cluster <SEP> of <SEP> 64 <SEP> Bytes
<tb> DCrFile <SEP> Date <SEP> of <SEP> Creation <SEP> of <SEP> File <SEP> 2 <SEP> 15 <SEP>#<SEP>#<SEP>#<SEP> 0x0D
<tb> DLmFile <SEP> Date <SEP><SEP> Limit <SEP> of <SEP> 2 <SEP> 17 <SEP>#<SEP>#<SEP>#<SEP> OxOF
<tb> file
<tb> NbUsNet <SEP> Number <SEP> of users <SEP> Network <SEP> 2 <SEP> 19 <SEP>#<SEP>#<SEP>#<SEP> 0x11
<tb> CmtUses <SEP> Counter <SEP> of use <SEP> of <SEP> file <SEP> 2 <SEP> 21 <SEP>#<SEP>#<SEP>#<SEP> 0x13
<tb> PWWrite <SEP> Word <SEP> of <SEP> pass <SEP> in <SEP> Write <SEP> of <SEP> 3 <SEP> 24 <SEP> 0x15
<tb> file
<tb> PWRead <SEP> Word <SEP> of <SEP> Pass <SEP> in <SEP> Read <SEP> of <SEP> 3 <SEP> 27 <SEP> 0x18
<tb> file
<tb> SSII <SEP> Code <SEP> SSII <SEP> 1 <SEP> 28 <SEP>#<SEP>#<SEP>#<SEP> 0x1B
<tb> 1 <SEP> 29 <SEP>#<SEP>#<SEP>#<SEP> 0x1 <SEP> C
<Tb>

<Desc/Clms Page number 10> <Desc / Clms Page number 10>

Figure img00100001
Figure img00100001

<tb>
<tb> 0x1D
<tb> CmtAcFic <SEP> Compteur <SEP> Tentative <SEP> d'accès <SEP> 1 <SEP> 0x1 <SEP> E
<tb> erronés
<tb> RegEtat <SEP> Régistre <SEP> d' <SEP> Etat <SEP> 1 <SEP> 32 <SEP> 0x1 <SEP> F
<tb> KeyWrite <SEP> Clé <SEP> de <SEP> cryptage <SEP> en <SEP> Ecriture <SEP> 16 <SEP> 48
<tb> KeyRead <SEP> Clé <SEP> de <SEP> Cryptage <SEP> en <SEP> Lecture <SEP> 16 <SEP> 64
<tb>
<Tb>
<tb> 0x1D
<tb> CmtAcFic <SEP> Counter <SEP> Attempt <SEP> Access <SEP> 1 <SEP> 0x1 <SEP> E
<tb> erroneous
<tb> RegEtat <SEP> Registers <SEP> of <SEP> Status <SEP> 1 <SEP> 32 <SEP> 0x1 <SEP> F
<tb> KeyWrite <SEP> Key <SEP> of <SEP> Encryption <SEP> in <SEP> Write <SEP> 16 <SEP> 48
<tb> KeyRead <SEP><SEP>Key><SEP> Encryption <SEP><SEP> Read <SEP> 16 <SEP> 64
<Tb>

Tableau 2
Le secteur de BOOT 200 est réservé au système de gestion du microcontrôleur, et a une taille variable suivant la taille mémoire EEPROM implantée en production.
Table 2
The sector of BOOT 200 is reserved for the management system of the microcontroller, and has a variable size according to the size EEPROM memory implanted in production.

Il contient dans la zone de BOOT 200', les registres suivants :
La taille de la mémoire (registre 21),
Le nombre de fichiers maxi (registre 22),
Le nombre de fichiers créés (registre 23),
Le nom et l'adresse de début des fichiers créés ( table 24 des fichiers )
Le secteur de BOOT 200 comprend également la zone protégée 200" dite IDM étendue.
It contains in the zone of BOOT 200 ', the following registers:
The size of the memory (register 21),
The maximum number of files (register 22),
The number of files created (register 23),
The name and start address of the created files (table 24 of the files)
The BOOT 200 sector also includes the protected area 200 "called extended IDM.

Cette zone, par exemple de 37 octets dans le mode de réalisation plus particulièrement décrit ici, contient les registres suivants :
Une zone 25 correspondant à la recopie de l'IDM du microcontrôleur (cf.tableau 1)
Une zone 26 d'accès Constructeur,
Une zone 27 d'accès Distributeur,
Une zone 28 d'accès Editeur,
Le registre code PIN 29,
Le code PIN 30.
This zone, for example 37 bytes in the embodiment more particularly described here, contains the following registers:
A zone 25 corresponding to the copy of the IDM of the microcontroller (see table 1)
An access zone 26 Constructor,
A zone 27 of access Distributor,
An access zone 28 Editor,
The PIN code register 29,
PIN code 30.

On remarquera que si on garde la même configuration que celle du microcontrôleur il est  Note that if we keep the same configuration as that of the microcontroller it is

<Desc/Clms Page number 11><Desc / Clms Page number 11>

alors prévu deux fonctions IDM, une pour le microcontrôleur et une autre pour l'EEPROM de façon à connaître les deux numéros de série, un IDM microcontrôleur étant quoi qu'il en soit nécessaire au cas où l'EEPROM serait détruite du fait d'une erreur.  then provided two IDM functions, one for the microcontroller and another for the EEPROM to know the two serial numbers, a microcontroller IDM being anyway necessary in case the EEPROM would be destroyed due to a mistake.

Les informations données par l'IDM en clair sont les suivantes, sauf pour le Numéro de client lorsqu'il n'est pas initialisé.  The information given by the clear IDM is as follows, except for the Client Number when it is not initialized.

# P/S/U # Date de Fabrication # N de version # Build # Code Pays # Distributeur # Numéro de client.  # P / S / U # Manufacturing Date # N Version # Build # Country Code # Distributor # Customer Number.

# Numéro de Série de fabrication.  # Manufacturing serial number.

On a précisé ci-après le contenu et/ou le fonctionnement de certains des registres mentionnés, à titre d'exemples non limitatifs.  The contents and / or the operation of some of the mentioned registers have been specified below, by way of non-limiting examples.

Registre code PIN 29
Dans l'octet Flag du registre, on peut par exemple adopter les conventions suivantes :
Si le Bit7 est à 1 le code PIN est demandé une seule fois, sauf si on demande un reset général.
PIN code register 29
In the Flag byte of the register, one can for example adopt the following conventions:
If the Bit7 is 1 the PIN code is requested once, unless a general reset is requested.

Les Bits 4-6 représentent le nombre de saisies erronées du code PIN, soit de 1 à 7 tentatives.  Bits 4-6 represent the number of incorrect entries of the PIN code, ie from 1 to 7 attempts.

Les Bits 0-2 sont initialisés à la même valeur que les Bits 4-6 et représentent le nombre maximum de tentatives d'accès avec un code erroné.  Bits 0-2 are initialized to the same value as Bits 4-6 and represent the maximum number of access attempts with wrong code.

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

A Chaque saisie erronée ce nombre est décrémenté.  At each wrong entry this number is decremented.

Quand il arrive à 0 l'accès ne peut se faire que par une fonction spécifique Constructeur. When it reaches 0 access can only be done by a specific function Constructor.

Si toutefois le code PIN est saisi à nouveau correctement, les Bits 0-2 reprennent la valeur des Bits 4-6.  However, if the PIN code is entered correctly again, Bits 0-2 will return the value of Bits 4-6.

Par défaut l'octet entier est à 00 (0000 0000)
Le code PIN sert dans le cas où l'utilisateur souhaite avoir un accès confidentiel aux données et/ou au logiciel uniquement. Ce n'est donc pas une protection supplémentaire coté Editeur.
By default, the entire byte is at 00 (0000 0000)
The PIN code is used in case the user wishes to have confidential access to the data and / or the software only. This is not an additional protection listed Editor.

Code PIN 30
Dans le mode de réalisation plus particulièrement décrit ici, le code PIN comprend deux octets, soit quatre quartés. Chaque quarté représente un chiffre allant de 0 à 9. Le code PIN est donc représenté sur quatre chiffres de 0000 à 9999. Le Constructeur peut le lire et le modifier, le Distributeur n'a, quant à lui, aucun droit et l'Editeur peut, par contre, le lire et le modifier, à condition de rentrer l'ancien code PIN.
PIN code 30
In the embodiment more particularly described here, the PIN code comprises two bytes, ie four quartés. Each quarté represents a number ranging from 0 to 9. The PIN code is thus represented on four digits from 0000 to 9999. The Builder can read it and modify it, the Distributor has, meanwhile, no rights and the Publisher can, however, read it and modify it, provided you enter the old PIN.

Le Code PIN est unique pour toute la clé.  The PIN code is unique for the whole key.

L'utilisation du logiciel protégé peut demander plusieurs fois la confirmation du code PIN. ( cas du réseau) sans pour autant affecter la clé.  Using the protected software may require PIN confirmation several times. (network case) without affecting the key.

Mot de Passe Constructeur
Le mot de passe Constructeur est initialisé par ce dernier et ne figure que dans le microcontrôleur, jamais dans l'EEPROM. Toutes les fonctions Constructeur utilisent ce mot de passe. Si le mot de Passe est à 0 ou FFFF, aucune fonction Constructeur ne doit être prise en compte, le compteur de
Builder password
The manufacturer password is initialized by the latter and appears only in the microcontroller, never in the EEPROM. All Builder functions use this password. If the password is 0 or FFFF, no manufacturer function should be taken into account, the

<Desc/Clms Page number 13><Desc / Clms Page number 13>

tentatives d'accès étant alors actionné systématiquement.  access attempts are then systematically activated.

Mot de Passe Distributeur
Le mot de passe Distributeur est initialisé par le constructeur et, ici encore, ne doit figurer que dans le microcontrôleur et jamais dans l'EEPROM.
Distributor Password
The Distributor password is initialized by the manufacturer and, here again, should only appear in the microcontroller and never in the EEPROM.

Toutes les fonctions Distributeur doivent utiliser ce mot de passe.  All Distributor functions must use this password.

Si le mot de Passe Distributeur est à 0 ou FFFF, aucune fonction Distributeur ne doit être prise en compte, le compteur de tentatives d'accès étant alors actionné systématiquement.  If the Distributor Password is 0 or FFFF, then no Distributor function has to be taken into account, and the Access Attempt Counter is always activated.

Mot de Passe Editeur
Lorsque le mot de passe Editeur est initialisé par le Constructeur, soit une valeur différente de 0000 ou FFFF) ce dernier ne doit figurer que dans le microcontrôleur et jamais dans l'EEPROM.
Password Publisher
When the Editor password is initialized by the Builder, a value other than 0000 or FFFF), the latter must appear only in the microcontroller and never in the EEPROM.

Par contre, si ce mot est égal à 0000 ou FFFF, l'Editeur doit alors utiliser une clé Maître pour initialiser le Mot de Passe Editeur dans l'EEPROM.  On the other hand, if this word is equal to 0000 or FFFF, the Editor must then use a Master key to initialize the Password Editor in the EEPROM.

Toutes les fonctions Editeur pour la gestion générale doivent utiliser ce mot de passe.  All Editor functions for general management must use this password.

Tous les compteurs de tentative d'accès se trouvent par ailleurs dans l'EEPROM.  All access attempt counters are also in the EEPROM.

On a représenté un mode de réalisation de la zone protégée 200" de l'EEPROM dans le tableau n 3.

Figure img00130001
An embodiment of the protected area 200 "of the EEPROM is shown in Table 3.
Figure img00130001

<tb>
<tb>
<Tb>
<Tb>

Zone <SEP> protégée <SEP> de <SEP> l'eeprom
<tb> P/S/U <SEP> xxx <SEP> (2 <SEP> octets)
<tb> Date <SEP> de <SEP> fabrication <SEP> (2 <SEP> octets)
<tb> N de <SEP> version <SEP> (2 <SEP> octets)
<tb> Build <SEP> (2 <SEP> octets)
<tb> Code <SEP> pays <SEP> (2 <SEP> octets)
<tb>
<SEP> protected <SEP> zone of <SEP> the eeprom
<tb> P / S / U <SEP> xxx <SEP> (2 <SEP> bytes)
<tb> Date <SEP> of <SEP> manufacture <SEP> (2 <SEP> bytes)
<tb> N of <SEP> version <SEP> (2 <SEP> bytes)
<tb> Build <SEP> (2 <SEP> bytes)
<tb> Code <SEP> country <SEP> (2 <SEP> bytes)
<Tb>

<Desc/Clms Page number 14> <Desc / Clms Page number 14>

Figure img00140001
Figure img00140001

<tb>
<tb> Distributeur <SEP> (1 <SEP> octet)
<tb> N de <SEP> série <SEP> de <SEP> fab <SEP> (5 <SEP> octets)
<tb> N série <SEP> éditeur <SEP> (4 <SEP> octets)
<tb> Val <SEP> défaut <SEP> cptrs <SEP> de <SEP> tentative <SEP> (1 <SEP> octet)
<tb> MdPE <SEP> Constructeur <SEP> (3 <SEP> octets)
<tb> MdPL <SEP> Constructeur <SEP> (3 <SEP> octets)
<tb> MdPE <SEP> Distributeur <SEP> (3 <SEP> octets)
<tb> MdPL <SEP> Distributeur <SEP> (3 <SEP> octets)
<tb> MdPE <SEP> Editeur <SEP> (3 <SEP> octets)
<tb> MdPL <SEP> Editeur <SEP> (3 <SEP> octets)
<tb> Compt <SEP> Tentatives <SEP> Constructeur <SEP> (1 <SEP> octet)
<tb> Compt <SEP> Tentatives <SEP> E/L <SEP> distrib. <SEP> (1 <SEP> octet)
<tb> Compt <SEP> Tentatives <SEP> E/L <SEP> éditeur <SEP> (1 <SEP> octet)
<tb> Reg <SEP> Compteur <SEP> code <SEP> pin <SEP> (1 <SEP> octet)
<tb> Code <SEP> pin <SEP> (2 <SEP> octets)
<tb>
<Tb>
<tb> Distributor <SEP> (1 <SEP> byte)
<tb> N of <SEP><SEP> series of <SEP> fab <SEP> (5 <SEP> bytes)
<tb> N series <SEP> editor <SEP> (4 <SEP> bytes)
<tb> Val <SEP> default <SEP> cptrs <SEP> of <SEP> attempt <SEP> (1 <SEP> byte)
<tb> MEP <SEP> Constructor <SEP> (3 <SEP> bytes)
<tb> MdPL <SEP> Constructor <SEP> (3 <SEP> Bytes)
<tb> MEP <SEP> Distributor <SEP> (3 <SEP> bytes)
<tb> MdPL <SEP> Distributor <SEP> (3 <SEP> Bytes)
<tb> MEP <SEP> Editor <SEP> (3 <SEP> bytes)
<tb> MdPL <SEP> Editor <SEP> (3 <SEP> Bytes)
<tb> Count <SEP> Attempts <SEP> Constructor <SEP> (1 <SEP> byte)
<tb> Count <SEP> Attempts <SEP> E / L <SEP> Distrib. <SEP> (1 <SEP> byte)
<tb> Count <SEP> Attempts <SEP> E / L <SEP> Editor <SEP> (1 <SEP> Byte)
<tb> Reg <SEP> Counter <SEP> code <SEP> pin <SEP> (1 <SEP> byte)
<tb> Code <SEP> pin <SEP> (2 <SEP> bytes)
<Tb>

Tableau 3
On va maintenant décrire un mode de réalisation du programme qui permet de mettre en #uvre le contrôle d'accès à des données et/ou à un logiciel selon l'invention.
Table 3
We will now describe an embodiment of the program that makes it possible to implement access control to data and / or software according to the invention.

L'ensemble du logiciel est par exemple écrit en langage C avec un compilateur du type HITHECH software. Certaines routines, pour des questions de vitesse, sont avantageusement écrites en assembleur.  The entire software is for example written in C language with a compiler of the type HITHECH software. Certain routines, for reasons of speed, are advantageously written in assembler.

Le noyau système
Les fichiers sources qui le constituent sont les suivants : Le module mainpara.c
Il a pour fonction d'initialiser le système.
The system kernel
The source files that constitute it are as follows: The mainpara.c module
Its function is to initialize the system.

# Fonction init~pic~16c765() ; Le module système.c
Ce fichier source comprend les fonctions suivantes :
# Function init ~ pic ~ 16c765 (); The system.c module
This source file includes the following functions:

<Desc/Clms Page number 15><Desc / Clms Page number 15>

# Fonction Traite~Cde(); # Fonction Init~Idm(); # Fonction Ecrit~BOOT(int,unsigned char); # Fonction BOOT~Buff~64(unsigned char ); # Fonction Gest~Tent(); # Fonction Idm(); # Fonction Idm~Teste(); # Envoi~Err (char); # Fonction Ctrl~CodePin(int); # Fonction Modif~CodePin(int,char*); # Fonction DelogO; # Fonction Lecture~Idm(); Le fichier entête système .h
Ce fichier en tête définit les différents paramètres des fonctions système.
# Process Function ~ Cde (); # Function Init ~ Idm (); # Written Function ~ BOOT (int, unsigned char); # BOOT function ~ Buff ~ 64 (unsigned char); # Function Gest ~ Tent (); # Idm function (); # Idm function ~ Test (); # Send ~ Err (char); # Ctrl function ~ CodePin (int); # Modify function ~ CodePin (int, char *); # DelogO function; # Function Reading ~ Idm (); The system header file .h
This header file defines the various parameters of the system functions.

Le module gestmem.c # Fonction Raz~Buff~64 (unsigned char,unsigned char); # Fonction Raz~Buff~Sys(unsigned char,unsigned char); # Fonction Copie~Mem(unsigned char,unsigned char* ,const unsigned char* ); # Fonction Tfs~Rameeprom(int,unsigned char); # Fonction Tfs~Eepromram(int,unsigned char*); # Fonction int Buff~Adr~Mem(const unsigned char *); # Fonction Adr~Mem~Buff(unsigned char *); # Fonction Buff~Cmp(unsigned char ,const unsigned char *,const unsigned char * ); # Fonction Comp~00~FF(unsigned char ,unsigned char,unsigned char *); Le module decrypt.c # Fonction char De Cryptage();
Fonction char Calc~Crc(unsigned char,unsigned char *); Le fichier entête gestmem.h Ce fichier entête définit les différentes adresses de la mémoire EEPROM .
The module gestmem.c # Function Raz ~ Buff ~ 64 (unsigned char, unsigned char); # Raz ~ Buff ~ Sys function (unsigned char, unsigned char); # Copy function ~ Mem (unsigned char, unsigned char *, const unsigned char *); # Tfs function ~ Rameeprom (int, unsigned char); # Function Tfs ~ Eepromram (int, unsigned char *); # Buff Buffer Function ~ Adr ~ Mem (const unsigned char *); # Function Adr ~ Mem ~ Buff (unsigned char *); # Buff function Cmp (unsigned char, const unsigned char *, const unsigned char *); # Function Comp ~ 00 ~ FF (unsigned char, unsigned char, unsigned char *); The module decrypt.c # function char Encryption ();
Char function Calc ~ Crc (unsigned char, unsigned char *); The header file gestmem.h This header file defines the different addresses of the EEPROM memory.

<Desc/Clms Page number 16> <Desc / Clms Page number 16>

Le module i2c.c # Fonction unsigned char i2c~Lit~Octet(void); # Fonction i2c~Ecrit~Octet(char); # Fonction i2c~Pas~Ack(void); # Fonction i2c~Ack(void); # Fonction i2c~Depart(void); # Fonction i2c~Arret(void); # Fonction i2c~Env~Adr~Ecrit(unsigned chartint ); # Fonction i2c~Env~Adr~Lect(unsigned char,int,unsigned char ); # Fonction i2c~Lit~Chaine(unsigned char, unsigned char*); # Fonction i2c~Ecrit~Chaine(unsigned char, const unsigned char* ) ;

Figure img00160001

#Fonction i2c Lit Chaine Sys(unsigned char, unsigned char*); # Fonction i2c~Ecrit~Chaine~Sys(unsigned char,const unsigned char*); # Fonction i2c~Remplis(char, char ); L'interface au busLPT Le module daisy2.c # Fonction mode~daisy~assigne(); # Fonction mode daisy-select(); Le module mode~epp.c # Fonction Dde~Ecriture(unsigned char,unsigned char*); # Fonction Dde~Lecture(); # Fonction Mode~Epp(); L'interface de commandes
Cette interface de commandes permet le dialogue entre les différents clients de la clé (Constructeurs, Distributeurs, Editeurs, Clients). The module i2c.c # Function unsigned char i2c ~ Lit ~ Octet (void); # Function i2c ~ Written ~ Octet (char); # Function i2c ~ Not ~ Ack (void); # Function i2c ~ Ack (void); # Function i2c ~ Departure (void); # Function i2c ~ Stop (void); # Function i2c ~ Env ~ Adr ~ Written (unsigned chartint); # Function i2c ~ Env ~ Adr ~ Lect (unsigned char, int, unsigned char); # Function i2c ~ Lit ~ String (unsigned char, unsigned char *); # Function i2c ~ Written ~ String (unsigned char, const unsigned char *);
Figure img00160001

#Function i2c String Sys (unsigned char, unsigned char *); # Function i2c ~ Written ~ String ~ Sys (unsigned char, const unsigned char *); # Function i2c ~ Filled (tank, tank); The interface to the busLPT The module daisy2.c # Function mode ~ daisy ~ assign (); # Function mode daisy-select (); The mode module ~ epp.c # Function Dde ~ Write (unsigned char, unsigned char *); # Dde ~ Play function (); # Function Mode ~ Epp (); The command interface
This command interface allows dialogue between the different key clients (Manufacturers, Distributors, Editors, Customers).

Le module cdeedit.c # Fonction Ident~Edit~E~L(unsigned chartint ); # Fonction Ident~Codepin(); # Fonction Modif~Idm~EEPROM (int,unsigned char , # unsigned char *, The module cdeedit.c # Function Ident ~ Edit ~ E ~ L (unsigned chartint); # Ident function ~ Codepin (); # Modify function ~ Idm ~ EEPROM (int, unsigned char, # unsigned char *,

<Desc/Clms Page number 17><Desc / Clms Page number 17>

# unsigned char *); # Fonction Cde~Ecrit~Edit~0(); # Fonction Cde~Lect~Edit~BO(); Le module cdefich.c # Fonction Crea~Fich(); # Fonction Del~Fich(); # Fonction Recherche~Fich(char,int); # Fonction Cde~Lect~Fich~0(); # Fonction Test~Regfich(unsigned char*); # Fonction Ecriture~Fichier(); # Fonction Lecture~Fichier(); # Fonction Infos~Dir(); # Fonction Modif~BOOT() ; # Fonction Ident~fichier~E(); # Fonction Ident~fichier~L(); # Fonction Ecrit~Crea~Fich(); # Fonction Ecrit~Del~Fich(); Le module cdessii.c # Fonction Cde~Lect~Ssii~0();
Il est ensuite prévu divers code erreur, correspondant aux paramètres suivants : - Constructeur non valide - IDM distributeur non valide - IDM éditeur non valide - clé grillée en lecture Constructeur, en lecture
Distributeur, en lecture Editeur, en écriture
Constructeur, en écriture Distributeur et en écriture Editeur.
# unsigned char *); # Function Cde ~ Written ~ Edit ~ 0 (); # Function Cde ~ Lect ~ Edit ~ BO (); The module cdefich.c # Function Crea ~ File (); # Function Del ~ File (); # Function Search ~ File (char, int); # Function Cde ~ Lect ~ Fich ~ 0 (); # Function Test ~ Regfich (unsigned char *); # Write function ~ File (); # Function Reading ~ File (); # Function Info ~ Dir (); # Modify Function ~ BOOT (); # Function Ident ~ file ~ E (); # Ident function ~ file ~ L (); # Written Function ~ Crea ~ File (); # Written Function ~ Del ~ File (); The module cdessii.c # Function Cde ~ Lect ~ Ssii ~ 0 ();
Various error codes are then provided, corresponding to the following parameters: - Invalid constructor - Invalid distributor IDM - Invalid publisher IDM - Wrenched read-only Writer, read
Distributor, Read Editor, Write
Constructor, Write Distributor and Write Editor.

Ces codes sont renvoyés lorsqu'un login est fait et que le compteur de tentative correspondant est plein. These codes are returned when a login is done and the corresponding attempt counter is full.

<Desc/Clms Page number 18> <Desc / Clms Page number 18>

- fichier grillé en lecture Ce code est renvoyé lorsque le registre d'état du fichier concerné indique que le compteur de tentative en lecture est plein - fichier grillé en écriture Ce code est renvoyé lorsque le registre d'état du fichier concerné indique que le compteur de tentative en écriture est plein. - read-to-read file This code is returned when the status register of the file concerned indicates that the read attempt counter is full - write-burn file This code is returned when the status register of the concerned file indicates that the counter write attempt is full.

- Mot de passe en lecture non valide Ce code est renvoyé lorsque le mot de passe en écriture d'un fichier est erroné. - Invalid read password This code is returned when the write password of a file is wrong.

- Mot de passe en écriture non valide Ce code est renvoyé lorsque le mot de passe en lecture d'un fichier est erroné. - Invalid write password This code is returned when the password for reading a file is wrong.

- fichier inexistant Ce code est renvoyé lorsque le fichier n'est pas mentionné dans la table des fichiers du secteur de BOOT système. - no file This code is returned when the file is not mentioned in the system BOOT sector file table.

D'autres codes sont prévus pour préciser diverses erreurs en fonction de critères classiques, à la portée de l'homme du métier.  Other codes are provided to specify various errors according to conventional criteria, within the scope of the skilled person.

On va maintenant examiner de façon plus précise le fonctionnement et l'organisation du support selon le mode de réalisation de l'invention plus particulièrement décrit ici.  We will now examine more precisely the operation and organization of the support according to the embodiment of the invention more particularly described here.

Le support selon l'invention, où sont stockés les données, peut être externe et connecté à un port parallèle, un port série ou un port USB ou encore un lecteur de carte a puces. Il peut aussi être formé par un disque intégré dans l'ordinateur ou plus généralement le lecteur.  The medium according to the invention, where the data is stored, can be external and connected to a parallel port, a serial port or a USB port or a chip card reader. It can also be formed by a disk integrated in the computer or more generally the reader.

<Desc/Clms Page number 19> <Desc / Clms Page number 19>

Quel que soit le support, les API sont les mêmes, aucune différence n'étant faite entre une clé USB ou une autre.  Whatever the medium, the APIs are the same, no difference being made between a USB key or another.

Les fonctions à utiliser pour contrôler les supports sont décrites ci-après.  The functions to be used to control media are described below.

Pour accéder à un support il faut tout d'abord s'identifier. L'identification consiste à donner au support les informations dont il a besoin pour laisser par la suite effectuer les opérations sur les fichiers. Cette authentification est faite par des mots de passe, des clés de cryptage et la vérification du protocole.  To access a support, you must first identify yourself. The identification consists of giving the support the information it needs to allow the file operations to be performed later. This authentication is done by passwords, encryption keys and protocol verification.

Comme on l'a vu, le support contient # Un Numéro de série unique de fabrication : écrit par le producteur du support ou constructeur.  As we have seen, the media contains # A unique serial number of manufacture: written by the producer of the medium or manufacturer.

# Un Numéro de série unique par éditeur : écrit par le producteur du support ou l'éditeur lui même qui souhaite se protéger.  # A unique serial number per publisher: written by the support producer or the publisher who wants to protect themselves.

# Un mot de passe en lecture : créé par le producteur du support et en fonction de chacun de ses clients. Il permet l'accès en lecture uniquement dans le support.  # A read password: created by the support producer and according to each of its customers. It allows read access only in the medium.

# Un mot de passe en écriture : créé par le producteur du support et en fonction de chacun de ses clients. Il permet l'accès en lecture et écriture dans le support.  # A write password: created by the support producer and according to each of its clients. It allows read and write access to the media.

# Une zone réservée pour la clé de cryptage : créée par le producteur du support, elle est fonction de chacun de ses clients. Elle permet le premier accès au support. Par la  # An area reserved for the encryption key: created by the support producer, it is a function of each of its clients. It allows the first access to the support. Over there

<Desc/Clms Page number 20><Desc / Clms Page number 20>

suite cette clé de cryptage change a chaque fois le contenu de manière aléatoire.  then this encryption key changes each time the content randomly.

# Un code PIN : écrit par l' éditeur. Ce code permet d'identifier l'utilisateur qui l'introduit pour accéder dans le support.  # A PIN code: written by the publisher. This code makes it possible to identify the user who introduces it to access the support.

# Un double compteur de tentative d'accès. ce compteur indique si une tentative d'accès a été effectuée avec des mots de passe non conformes.  # A double access attempt counter. this counter indicates whether an access attempt was made with non-compliant passwords.

Il existe un compteur pour la lecture et un autre pour l'écriture. Au bout de trois tentatives infructueuses les compteurs bloquent le support.  There is one meter for reading and another for writing. After three unsuccessful attempts the counters block the support.

# Un compteur de code pin erroné : ce compteur indique si une tentative d'accès a été réalisée avec un code non conforme.  # An incorrect pin code counter: This counter indicates whether an access attempt was made with an illegal code.

Au bout de trois tentatives infructueuses les compteurs bloquent le système.  After three unsuccessful attempts the counters block the system.

# Nombre de fichiers créés : cette entité est gérée par le système lui-même.  # Number of files created: This entity is managed by the system itself.

# Nombre de fichiers lisibles . géré par le système lui-même.  # Number of readable files. managed by the system itself.

# Taille de la mémoire gérée par le producteur suivant la taille mémoire disponible.  # Size of the memory managed by the producer according to the available memory size.

# Taille d'un cluster gérée par le producteur suivant la taille mémoire disponible.  # Size of a cluster managed by the producer according to the available memory size.

# Identification et type du support : gérée par le producteur suivant le type du support.  # Identification and type of support: managed by the producer according to the type of support.

<Desc/Clms Page number 21> <Desc / Clms Page number 21>

# Date de fabrication gérée par le producteur suivant la date de fabrication.  # Date of manufacture managed by the producer according to the date of manufacture.

# Identification du pays gérée par le producteur suivant pour quel pays le produit est destiné.  # Identification of the country managed by the next producer for which country the product is intended.

# Identification du distributeur : gérée par le producteur.  # Distributor ID: Managed by the producer.

# Le registre d'état géré par le producteur, puis complété ou modifié par l'éditeur suivant ses besoins.  # The state register managed by the producer, then completed or modified by the publisher according to his needs.

Une fois cette première étape franchie il est alors possible d'accéder aux fichiers.  Once this first step is reached it is then possible to access the files.

Les opérations possibles portent sur deux entités : le support ou un fichier dans le support.  The possible operations concern two entities: the support or a file in the support.

La notion de fichier doit être ici examinée sous deux aspects différents.  The notion of file must be examined here under two different aspects.

Un fichier est un conteneur pour des données spécifiques, mais c'est aussi un représentant d'une application (logiciel). De ce fait, la gestion des applications se fait donc sur la base des fichiers.  A file is a container for specific data, but it is also a representative of an application (software). As a result, application management is based on files.

A chaque fichier sont associées des informations qui permettent de contrôler le niveau de protection.  Each file is associated with information that makes it possible to control the level of protection.

Ces informations très semblables à celles nécessaires pour accéder au support lui-même, sont, par fichier, dans le mode de réalisation plus particulièrement décrit ici, les suivantes : - Un espace réservé pour le nom du fichier et son suffixe il est défini lors de la création du fichier et permet l'identification et l'accès à ce dernier.  This information, very similar to that needed to access the medium itself, is, by file, in the embodiment more particularly described here, the following: a placeholder for the file name and its suffix is defined when creating the file and allowing identification and access to the latter.

- Un numéro de fichier : il est unique sur un support pour un fichier donné. L'accès par ce  - A file number: it is unique on a support for a given file. Access by this

<Desc/Clms Page number 22><Desc / Clms Page number 22>

numéro favorise la vitesse de recherche du fichier sur des supports dont le traitement est lent.  number promotes the search speed of the file on slow-processing media.

- Une taille du fichier Elle renseigne le système d'exploitation sur la taille réelle du fichier. - A file size It informs the operating system about the actual size of the file.

- Un mot de passe en lecture : il est défini lors de la création du fichier et permet l'accès au fichier en lecture uniquement. - A password in read: it is defined during the creation of the file and allows the access to the file in reading only.

- Un mot de passe en écriture : il est défini lors de la création du fichier et permet l'accès au fichier en lecture et écriture. - A password in writing: it is defined during the creation of the file and allows the access to the file in reading and writing.

- Un double compteur de tentatives d'accès : ces deux compteurs renseignent sur les tentatives d'accès faites avec des mots de passe non conformes, à savoir un compteur pour la lecture et un autre pour l'écriture. - A double access attempts counter: these two counters provide information on access attempts made with non-compliant passwords, namely a counter for reading and another for writing.

Après trois tentatives infructueuses les compteurs bloquent le système pour l'accès au fichier.  After three unsuccessful attempts the counters block the system for accessing the file.

- Une date limite d'utilisation : cette date définie lors de la création du fichier ou par la suite à l'aide d'une fonction prévue pour cet usage, permet de bloquer l'utilisation du fichier lorsqu'elle est dépassée. Ce contrôle de date automatique est transparent pour le programmeur, la date étant donnée par le système externe ou par un système intégré au support. - An expiry date: this date defined during the creation of the file or subsequently using a function provided for this purpose, allows to block the use of the file when it is exceeded. This automatic date control is transparent to the programmer, the date being given by the external system or by a system integrated into the support.

- Un compteur maximum d'utilisations : Ce nombre maximum d'utilisations défini lors de la création du fichier ou par la suite à - A maximum usage counter: This maximum number of uses defined when creating the file or subsequently to

<Desc/Clms Page number 23><Desc / Clms Page number 23>

l'aide d'une fonction prévue pour cet usage, permet de bloquer l'utilisation du fichier lorsque ce nombre est atteint. Ce contrôle de nombre maximum d'utilisations est automatique et transparent pour le programmeur. Le compteur est ajusté à chaque "login" sur le fichier. Ce fonctionnement est optionnel et il est toujours possible de débloquer le fichier par une fonction de modification de ce compteur, comme pour la date limite d'utilisation d'ailleurs.  using a function provided for this purpose, it is possible to block the use of the file when this number is reached. This control of maximum number of uses is automatic and transparent for the programmer. The counter is adjusted to each "login" on the file. This operation is optional and it is always possible to unblock the file by a modification function of this counter, as for the expiry date elsewhere.

Un compteur maximum d'utilisateurs en réseau : Ce nombre maximum d'utilisateurs réseau défini par la suite à l'aide d'une fonction prévue pour cet usage, permet de bloquer l'utilisation du fichier lorsque ce nombre est atteint. Il s'agit du nombre de connexions simultanées sur le fichier en fonction du type de login . (Nécessite la version réseau) .  A maximum network user counter: This maximum number of network users defined subsequently using a function provided for this purpose, makes it possible to block the use of the file when this number is reached. This is the number of simultaneous connections on the file depending on the type of login. (Requires the network version).

- Une Version : Zone de huit caractères. Le contenu de ce champ est défini par le programmeur, mais cela permet, si c'est souhaité de n'autoriser le "login" sur le fichier que si la version est supérieure ou égale à celle demandée lors du "login"
Une zone de "build". Cette zone de huit caractères est un complément de la Version.
- One Version: Area of eight characters. The content of this field is defined by the programmer, but it allows, if it is desired to authorize the "login" on the file only if the version is greater than or equal to that requested during the "login"
A zone of "build". This eight character field is a complement of the Version.

On pourra utiliser la Version seule ou la
Version et le "Build", ou aucun des deux.
We can use the Version only or the
Version and the "Build", or neither.

Un ensemble de 64 options. Ce sont des indicateurs, qui permettent de n'ouvrir le  A set of 64 options. These are indicators, which make it possible to open the

<Desc/Clms Page number 24><Desc / Clms Page number 24>

fichier que si l'indicateur est positionné sur l'option demandée.  file only if the indicator is positioned on the requested option.

- Deux compteurs 32 bits que le programmeur peut utiliser comme il le souhaite à travers des fonctions d'initialisation, de lecture et d'incrémentation ou décrémentation.  - Two 32-bit counters that the programmer can use as he wishes through the functions of initialization, reading and incrementation or decrementation.

Une zone réservée ascii. Cette zone sert à stocker une chaine en ascii. Elle a plusieurs fonctions dont celle d'identification d'un client ou du propriétaire. Le fichier n'est ouvert que si la zone est celle qui est demandée par l'utilisateur .  A reserved area ascii. This area is used to store an ascii chain. It has several functions including the identification of a customer or the owner. The file is only open if the zone is the one requested by the user.

- Une zone reservée pour accéder à un serveur.  - A reserved area to access a server.

Cette zone contient l'adresse ou le nom d'un serveur pour une connection automatique.  This field contains the address or name of a server for an automatic connection.

- Un registre d'état. Ce dernier donne des renseignements sur la nature du fichier et les protections qui y sont demandées.  - A state register. The latter gives information on the nature of the file and the protections that are required.

Toutes ces zones peuvent être utilisées séparément ou selon de nombreuses combinaisons et permettent un contrôle très complet de l'accès à un fichier.  All of these areas can be used separately or in many combinations and allow a very complete control of access to a file.

Selon le mode de réalisation de l'invention plus particulièrement décrit ici, ces accès sont contrôlés par des mots de passe qui sont différents en lecture et en écriture. Il ne sera possible de lire dans le support que si le mot de passe en lecture est le bon.  According to the embodiment of the invention more particularly described here, these accesses are controlled by passwords which are different in reading and writing. It will only be possible to read in the media if the password for reading is the correct one.

Après trois tentatives, le support sera grillé en lecture. De la même façon, il ne sera possible d'écrire dans le support que si le bon mot de passe en écriture est fourni.  After three attempts, the media will be burned for reading. In the same way, it will only be possible to write to the media if the correct write password is provided.

Ici encore, après trois tentatives infructueuses, la clé est grillée en Ecriture.  Here again, after three unsuccessful attempts, the key is burned in Scripture.

<Desc/Clms Page number 25> <Desc / Clms Page number 25>

Dans un mode de réalisation, il est impossible de dé-griller un support.  In one embodiment, it is impossible to de-grill a support.

En plus des mots de passe au niveau du support , il est également possible, et comme on l'a vu, d'activer un contrôle par code pin.  In addition to the passwords at the support level, it is also possible, and as we have seen, to activate a control by pin code.

L'accès ne pourra alors se faire qu'après contrôle du code pin. Trois tentatives maximum sont ici encore autorisées sous peine de griller le support.  Access can only be done after checking the pin code. Up to three attempts are still allowed, otherwise the rack will burn.

Comme les mots de passe en lecture et écriture sont les même pour tous les supports d'un Editeur , le code pin permet de personnaliser le niveau d'accès de niveau clé par le code pin.  Since the read and write passwords are the same for all media in a Publisher, the pin code is used to customize the key-level access level by the pin code.

Ainsi le programmeur va-t-il pouvoir définir un code pin différent par support.  So the programmer will be able to define a different pin code by support.

Comme on l'a compris, en plus du mécanisme de mots de passe à présenter pour accéder au support, il existe pour chaque fichier un jeu de mots de passe différents laissé à la responsabilité du programmeur.  As we have understood, in addition to the mechanism of passwords to present to access the support, there exists for each file a set of different passwords left to the responsibility of the programmer.

Ainsi, on peut définir un mot de passe en lecture et un mot de passe en écriture (identique ou différent) pour chacun des fichiers créés dans le support. Thus, it is possible to define a read password and a write password (identical or different) for each of the files created in the medium.

Ici encore, et par exemple au-delà de trois tentatives de présentation des mots de passe, le fichier sera grillé en lecture ou/et en écriture.  Here again, and for example beyond three attempts to present the passwords, the file will be burned for reading and / or writing.

Il n'est prévu dans cet exemple, aucun moyen de dé-griller un fichier, la seule solution consistant à en recréer un autre.  In this example, there is no way to undo a file, the only solution is to recreate another file.

On va maintenant décrire à titre d'exemple non limitatif, dans le langage C choisi, les fonctions de gestions générale au niveau de la clé, les fonctions de navigation dans la liste de clés, les fonctions d'exploration du contenu d'une clé, les fonctions de  We will now describe as a non-limiting example, in the chosen language C, the general management functions at the key level, the navigation functions in the key list, the functions of exploration of the contents of a key. , the functions of

<Desc/Clms Page number 26><Desc / Clms Page number 26>

création et suppression de fichiers, les fonctions de niveau application, et les fonctions niveau fichiers.  file creation and deletion, application-level functions, and file-level functions.

Les fonctions de gestion générale au niveau des clés : openKey~: Cette fonction est nécessaire avant toute autre opération sur une clé. Elle ne permet pas l'accès à une clé, mais réserve les ressources nécessaires à la suite des opérations sur la clé ou sur les fichiers de la clé. closeKey . Cette fonction permet de libérer les ressources allouées par la fonction openKey. attachToFirstKey . Cette fonction permet de rechercher une clé physique particulière, soit la première clé trouvée, soit une clé précise. The general management functions at the key level: openKey ~: This function is necessary before any other operation on a key. It does not allow access to a key, but reserves the necessary resources as a result of operations on the key or on the files of the key. closeKey. This function releases the resources allocated by the openKey function. attachToFirstKey. This function is used to search for a particular physical key, either the first key found or a specific key.

L'identification des clés se fait toujours sur son numéro de série dont l'unicité est garantie par le processus de fabrication. Cette fonction permet donc de faire un test de présence de clé. getSerialNumberKey : Cette fonction permet de lire le numéro de série de la clé : Elle ne fait aucun accès dans la clé. Le numéro de série renvoyé est celui passé lors de l'appel de la fonction openKey le cas échéant ou celui trouvé lors de l'exécution de la fonction attachToFirstKey. setPinKey . Cette fonction permet d'activer ou désactiver le contrôle du code pin pour l'accès dans la clé. Le code pin est une valeur numérique comprise entre 1 et 9999. testPinKey . Cette fonction permet de tester le code pin, s'il à été activé, pour autoriser l'accès dans la clé. The identification of the keys is always done on its serial number whose uniqueness is guaranteed by the manufacturing process. This function makes it possible to perform a key presence test. getSerialNumberKey: This function reads the serial number of the key: It has no access in the key. The returned serial number is the one passed when calling the openKey function, if any, or the one found when running the attachToFirstKey function. setPinKey. This function allows you to enable or disable pin code control for access in the key. The pin code is a numeric value between 1 and 9999. testPinKey. This function is used to test the pin code, if enabled, to allow access in the key.

Les fonctions de navigation dans la liste des clés : The navigation functions in the list of keys:

<Desc/Clms Page number 27><Desc / Clms Page number 27>

Ces fonctions ne sont accessibles que si la fonction openKey a déjà été appelée. Elles utilisent les caractéristiques (mot de passes et codes) données lors de l'appel à openKey. firstKey . Cette fonction permet de demander le calcul de toutes les clés trouvées sur le poste local, et elle renvoie le numéro de la première clé (numéro 1) s'il y en a. nextKey . cette fonction permet de demander le numéro de la clé suivante s'il y en a. serialKey : Cette fonction permet de lire le numéro de série d'une clé à une position donnée dans la liste trouvée par findKey.  These functions are only accessible if the openKey function has already been called. They use the characteristics (password and codes) given when calling openKey. firstKey. This function makes it possible to request the calculation of all the keys found on the local workstation, and it returns the number of the first key (number 1) if there is one. nextKey. this function is used to request the next key number if there is one. serialKey: This function reads the serial number of a key at a given position in the list found by findKey.

Les fonctions d'exploration du contenu d'une clé Ces fonctions permettent essentiellement de lire la liste des fichiers contenus dans une clé. findFirstKey : Permet d'établir la liste des fichiers visibles dans une clé et de renvoyer le numéro du premier élément findNextKey . Cette fonction permet de lire le fichier suivant dans la liste des fichiers établie par findFirstKey fNameKeyKey . cette fonction renvoie le nom du fichier à une position donnée. The functions of exploration of the contents of a key These functions essentially make it possible to read the list of the files contained in a key. findFirstKey: Lets you list the visible files in a key and return the number of the first findNextKey element. This function reads the next file in the file list set by findFirstKey fNameKeyKey. this function returns the file name at a given position.

Les fonctions de création et suppression de fichiers : createFileKey : Cette fonction permet de créer un fichier dans la clé. La taille du fichier est définie de manière définitive lors de la création du fichier deleteFileKey : Cette fonction permet de supprimer un fichier dans la clé. Functions for creating and deleting files: createFileKey: This function is used to create a file in the key. The file size is definitively set when creating the file deleteFileKey: This function allows you to delete a file in the key.

<Desc/Clms Page number 28><Desc / Clms Page number 28>

formatFileKey : Cette fonction permet de supprimer tous les fichiers de la clé. Cela permet de la remettre dans l'état initial.  formatFileKey: This function deletes all files from the key. This restores it to its original state.

Les fonctions de niveau application : Ces fonctions sont appelées fonctions de niveau application , car on considère qu'un fichier est lié à une application. Application-level functions: These functions are called application-level functions because we consider that a file is linked to an application.

En général, le programmeur fait un "login" de niveau application, ce qui permet de vérifier les caractéristiques de la clé, et celles d'un fichier particulier dans la clé. De nombreux paramètres permettent de faire des login plus ou moins sophistiqués. mLoginKey : Cette fonction permet de faire un "login" clé. Sur un fichier précis. Elle vérifie la présence du fichier dans la clé, et fait le contrôle des limites (seulement en version commerciale), de nombre d'utilisateurs maximum, de la date de validité, et du nombre d'accès maximum autorisés. En règle générale, il faut associer un fichier par application. Le fichier pourra contenir ou non des données spécifiques à cette application. mLoginKey est la fonction générique, et elle est déclinée en fonctions de suffixe S , V, 0, VB pour respectivement : - Signature : Vérification que les 8 premiers octets du contenu d'un fichier correspondent à une signature passée lors du "login" - Version : Vérification que le fichier est d'une version au moins égale à celle passée lors du "login" In general, the programmer makes an application-level "login", which makes it possible to check the characteristics of the key, and those of a particular file in the key. Many parameters allow to make more or less sophisticated login. mLoginKey: This function allows to make a key "login". On a specific file. It verifies the presence of the file in the key, and checks the limits (only in commercial version), the maximum number of users, the date of validity, and the maximum number of authorized accesses. As a general rule, you must associate one file per application. The file may or may not contain data specific to this application. mLoginKey is the generic function, and it is declined in functions of suffix S, V, 0, VB for respectively: - Signature: Verification that the first 8 bytes of the contents of a file correspond to a signature passed during the "login" - Version: Verification that the file is of a version at least equal to that passed during the "login"

<Desc/Clms Page number 29><Desc / Clms Page number 29>

- Option . Vérification qu'une option dont le numéro est passé lors du "login", est bien positionnée - Version + Build : Vérification de la version et du Build de valeur au moins égale à celle passée lors de l'appel de la fonction de "login"
Les suffixes SO, SV, SVB, SVO, SVBO, VO, VB et
VBO correspondent à des combinaisons différentes de cette fonction.
- Option. Verification that an option whose number is passed during the "login", is well positioned - Version + Build: Verification of the version and the Build of value at least equal to that passed during the call of the function of "login""
The suffixes SO, SV, SVB, SVO, SVBO, VO, VB and
VBOs correspond to different combinations of this function.

LogoutKey . Cette fonction permet de libérer la connexion avec la clé établie par la fonction mLoginKey, et de libérer les ressources associées. Si cette fonction n'est pas appelée, elle le sera automatiquement lors de l'appel de la fonction closeKey.  LogoutKey. This function frees the connection with the key set by the mLoginKey function, and releases the associated resources. If this function is not called, it will be automatically called when the closeKey function is called.

Pour une clé connue par la fonction openKey, il est possible de faire autant de "login" application que l'on souhaite (avec succès ou échec selon le type de "login" demandé). Pour chacun de ces "login", les ressources allouées sont mémorisées au niveau du handle de la clé. Il est possible de parcourir cette liste de "login" par des fonctions prévues à cet effet. Ces fonctions sont utiles en particulier dans une application de gestion du suivi des "login" de clé. For a key known by the openKey function, it is possible to make as many "login" application as you want (with success or failure depending on the type of "login" requested). For each of these "login", the allocated resources are stored at the handle of the key. It is possible to browse this list of "login" by functions provided for this purpose. These functions are useful in particular in an application for managing the tracking of key "login".

Les fonctions niveau fichier : Les fonctions portant sur les fichiers sont divisées en deux groupes : Celles qui ne nécessitent pas de File Level Functions: The file functions are divided into two groups: Those that do not require

<Desc/Clms Page number 30><Desc / Clms Page number 30>

"login" sur le fichier et celles qui nécessitent un "login" sur la clé. getEndDateKey : Cette fonction permet de lire la date limite d'utilisation définie pour un fichier. Les dates sont toutes codées sous forme de chaîne de caractères au format universel YYYYMMDD avec YYYY l' année sur 4 digits, MM le mois sur 2 digits et DD le jour sur 2 digits. setEndDateKey : Cette fonction permet de modifier la date limite d'utilisation du fichier. getNbMaxUseKey : Cette fonction permet de lire le nombre maximum d'utilisation d'un fichier. setNbMaxUseKey : Cette fonction permet de modifier le nombre maximum d'utilisation d'un fichier. getFOptKey : Cette fonction permet de lire l'état de l'indicateur de l'une des 64 options associées à un fichier. setFOptKey : Cette fonction permet d'activer ou désactiver l'une des 64 options associées à un fichier. getVersionKey : Cette fonction permet de lire la chaîne de version associée à un fichier. setVersionKey : Cette fonction permet de modifier la chaîne de version associée à un fichier. setNetUsersKey : Cette fonction permet de définir le nombre d'utilisateurs simultanés qui accèdent à un fichier (Version réseau : consulter la documentation correspondante). getNetUsersKey : Cette fonction permet de lire le nombre d'utilisateurs simultanés qui accèdent à un fichier (Version réseau : consulter la documentation correspondante).  "login" on the file and those that require a "login" on the key. getEndDateKey: This function reads the expiry date defined for a file. The dates are all coded as universal character strings YYYYMMDD with YYYY the year on 4 digits, MM the month on 2 digits and DD the day on 2 digits. setEndDateKey: This function is used to change the file's expiration date. getNbMaxUseKey: This function reads the maximum number of times a file is used. setNbMaxUseKey: This function allows you to change the maximum number of uses of a file. getFOptKey: This function reads the indicator status of any of the 64 options associated with a file. setFOptKey: This function enables or disables one of the 64 options associated with a file. getVersionKey: This function reads the version string associated with a file. setVersionKey: This function is used to modify the version string associated with a file. setNetUsersKey: This function is used to define the number of simultaneous users who access a file (Network version: consult the corresponding documentation). getNetUsersKey: This function is used to read the number of simultaneous users who access a file (Network version: consult the corresponding documentation).

<Desc/Clms Page number 31><Desc / Clms Page number 31>

lockFileKey : Cette fonction permet de bloquer un fichier en écriture : Une fois exécutée, il ne sera plus possible d'écrire dans un fichier, ni même de modifier les zones associées au fichier (version, build, option, date limite, etc....). Cette opération est irréversible.  lockFileKey: This function makes it possible to block a file in writing: Once executed, it will not be possible anymore to write in a file, nor even to modify the zones associated with the file (version, build, option, deadline, etc .. ..). This operation is irreversible.

Une fois qu'un "login" application est fait, le fichier concerné est considéré ouvert, et il est alors possible d'y écrire ou lire des informations selon certaine condition d'accès (droits en écriture par exemple) . writeKey . Cette fonction permet d'écrire un buffer dans un fichier de la clé. readKey : Cette fonction permet de lire le contenu d'un fichier d'une clé. getCounterKey : Cette fonction permet de lire la valeur de l'un des deux compteurs 32 bits associé à un fichier. setCounterKey : Cette fonction permet d'initialiser la valeur de l'un des deux compteurs de 32 bits associés à un fichier. incCounterKey : Cette fonction permet d'incrémenter (ou décrémenter) la valeur de l'un des deux compteurs de 32 bits associés à un fichier. Once a "login" application is done, the file concerned is considered open, and it is then possible to write or read information according to certain access conditions (write rights for example). writeKey. This function makes it possible to write a buffer in a file of the key. readKey: This function reads the contents of a key file. getCounterKey: This function reads the value of one of the two 32-bit counters associated with a file. setCounterKey: This function initializes the value of one of the two 32-bit counters associated with a file. incCounterKey: This function increments (or decrements) the value of one of the two 32-bit counters associated with a file.

Comme il va de soi et comme il résulte également de ce qui précède, la présente invention n'est pas limitée aux modes de réalisation plus particulièrement décrits. Elle en embrasse au contraire toutes les variantes et notamment celles où une partie seulement des données à sécuriser sont stockées dans la clé, le reste étant présentes dans l'ordinateur et/ou le lecteur, qui peut par exemple  As is obvious and as also follows from the above, the present invention is not limited to the embodiments more particularly described. On the contrary, it embraces all the variants and in particular those where only a part of the data to be secured is stored in the key, the rest being present in the computer and / or the reader, which may for example

<Desc/Clms Page number 32><Desc / Clms Page number 32>

être un ordinateur, un lecteur de DVD, une station de jeux vidéo ou un décodeur de signaux cryptés pour télévision par satellite. be a computer, a DVD player, a video game station or an encrypted signal decoder for satellite television.

Claims (16)

REVENDICATIONS 1. Support (5,10) de type clé comprenant une mémoire à lecture/écriture (8,14) et des moyens (12 ; 200,201, ..., 20i) de sécurisation de l' accès à des données et/ou à un logiciel, propre à être connecté à un dispositif (2) lecteur, caractérisé en ce que la mémoire (14) comprend au moins un fichier spécifique (201'', 202'',..., 20i'', ..., 20n'') agencé pour stocker au moins partiellement lesdites données et/ou ledit logiciel à sécuriser. A key type medium (5, 10) including a read / write memory (8, 14) and means (12, 200, 201, ..., 20i) for securing access to data and / or software, adapted to be connected to a device (2) reader, characterized in that the memory (14) comprises at least one specific file (201 '', 202 '', ..., 20i '', ... , 20n '') arranged to at least partially store said data and / or said software to be secured. 2. Support selon la revendication 1, caractérisé en ce que les moyens de sécurisation comportent des moyens d'identification de l'utilisateur agencés pour bloquer l'usage de la totalité des autres fichiers stockés dans la clé en cas de mauvaise identification.  2. Support according to claim 1, characterized in that the securing means comprise user identification means arranged to block the use of all other files stored in the key in case of misidentification. 3. Support selon la revendication 2, caractérisé en ce que les moyens agencés pour bloquer l'usage de la totalité des autres fichiers permettent l'effaçage desdits fichiers.  3. Support according to claim 2, characterized in that the means arranged to block the use of all other files allow the erasure of said files. 4. Support selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de sécurisation comportent au moins un groupe (201', 202', ..., 20i' , ..., 20n') de plusieurs fichiers agencés pour contrôler le niveau de sécurisation des données sécurisées stockées dans le fichier spécifique (201'', 202'', ..., 20i' ' , ..., 20n' ' ) attaché audit groupe dans la mémoire (14) dudit support (10).  4. Support according to any one of the preceding claims, characterized in that the securing means comprise at least one group (201 ', 202', ..., 20i ', ..., 20n') of several arranged files. to control the security level of the secure data stored in the specific file (201 '', 202 '', ..., 20i '', ..., 20n '') attached to said group in the memory (14) of said medium (10). 5. Support selon la revendication 4, caractérisé en ce que le groupe de plusieurs fichiers comprend un fichier mot de passe en lecture , un fichier mot  5. Support according to claim 4, characterized in that the group of several files includes a file password reading, a word file. <Desc/Clms Page number 34><Desc / Clms Page number 34> de passe en écriture , et un fichier compteur de tentative d'accès .  write password, and an access attempt counter file. 6. Support selon la revendication 5, caractérisé en ce que le compteur de tentative d'accès est agencé pour bloquer l'accès au fichier correspondant au bout de n tentatives infructueuses de mot de passe en lecture et/ou en écriture.  6. Support according to claim 5, characterized in that the access attempt counter is arranged to block access to the corresponding file after n unsuccessful attempts to password read and / or write. 7. Support selon la revendication 6, caractérisé en ce que l'accès au fichier dans le mode concerné est définitivement impossible après trois tentatives infructueuses.  7. Support according to claim 6, characterized in that access to the file in the mode concerned is definitively impossible after three unsuccessful attempts. 8. Support selon l'une quelconque des revendications 4 à 7, caractérisé en ce que le groupe de plusieurs fichiers comporte de plus un fichier date limite d'utilisation et/ou un fichier compteur maximum d'utilisation .  8. Support according to any one of claims 4 to 7, characterized in that the group of several files further comprises a file expiration date of use and / or a maximum counter file of use. 9. Support selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est formé par un circuit (5) enfichable sur un port USB.  9. Support according to any one of the preceding claims, characterized in that it is formed by a circuit (5) plug-in on a USB port. 10. Support selon la revendication 9, caractérisé en ce que ledit circuit comporte un microprocesseur(12), une EEPROM (14), une horloge (17), et des moyens (18), de connexion permettant la programmation et le stockage des données et /ou du logiciel.  10. Support according to claim 9, characterized in that said circuit comprises a microprocessor (12), an EEPROM (14), a clock (17), and means (18), connection for programming and storage of data and / or software. 11. Support selon l'une quelconque des revendications 1 à 8, caractérisé en ce que il est formé par un CDRom.  11. Support according to any one of claims 1 to 8, characterized in that it is formed by a CDRom. 12. Procédé de contrôle de l'accès à des données et/ou de l'utilisation d'un logiciel associé à un support (5, 10) du type clé, caractérisé en ce que on stocke au moins partiellement lesdites données et/ou  12. A method of controlling access to data and / or the use of software associated with a support (5, 10) of the key type, characterized in that at least part of said data is stored and / or <Desc/Clms Page number 35><Desc / Clms Page number 35> le programme dans au moins un fichier spécifique, (201'', 202'', ..., 20i' ' , ..., 20n'') de données de la clé elle même.  the program in at least one specific file, (201 '', 202 '', ..., 20i '', ..., 20n '') of data of the key itself. 13. Procédé selon la revendication 12, caractérisé en ce que on identifie l'utilisateur de la clé et on bloque l'usage de la totalité des autres fichiers stockés dans la clé en cas de mauvaise identification.  13. The method as claimed in claim 12, wherein the user of the key is identified and the use of all the other files stored in the key is blocked in the event of misidentification. 14. Procédé selon l'une quelconque des revendications 12 et 13, caractérisé en ce que on sécurise l'accès audit fichier spécifique de données en stockant des informations de sécurisation dans au moins un groupe (201' , 202', ..., 20i',..., 20n' ) de plusieurs fichiers agencés pour contrôler le niveau de sécurisation desdites données sécurisées stockées dans ledit fichier.  14. Method according to any one of claims 12 and 13, characterized in that access to said specific file of data is secured by storing security information in at least one group (201 ', 202', ..., 20i ', ..., 20n') of several files arranged to control the level of security of said secure data stored in said file. 15. Procédé selon l'une quelconque des revendications 12 et 14, caractérisé en ce que on sécurise l'accès aux données par un mot de passe lecture et un mot de passe écriture que l'on compare avec un mot introduit dans un fichier dit compteur de tentatives .  15. Method according to any one of claims 12 and 14, characterized in that secures access to the data by a read password and a write password that is compared with a word introduced in a file said attempt counter. 16. Procédé selon la revendication 15, caractérisé en ce que on bloque l'accès au fichier correspondant au bout de n tentatives infructueuses de mot de passe en lecture et/ou en écriture. 16. The method of claim 15, characterized in that one blocks access to the corresponding file after n unsuccessful attempts to password read and / or write.
FR0303019A 2003-03-11 2003-03-11 KEY TYPE MEDIUM, CONTROL OF ACCESS TO DATA AND / OR SOFTWARE, AND CORRESPONDING METHOD Expired - Fee Related FR2852415B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0303019A FR2852415B1 (en) 2003-03-11 2003-03-11 KEY TYPE MEDIUM, CONTROL OF ACCESS TO DATA AND / OR SOFTWARE, AND CORRESPONDING METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0303019A FR2852415B1 (en) 2003-03-11 2003-03-11 KEY TYPE MEDIUM, CONTROL OF ACCESS TO DATA AND / OR SOFTWARE, AND CORRESPONDING METHOD

Publications (2)

Publication Number Publication Date
FR2852415A1 true FR2852415A1 (en) 2004-09-17
FR2852415B1 FR2852415B1 (en) 2005-06-24

Family

ID=32893221

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0303019A Expired - Fee Related FR2852415B1 (en) 2003-03-11 2003-03-11 KEY TYPE MEDIUM, CONTROL OF ACCESS TO DATA AND / OR SOFTWARE, AND CORRESPONDING METHOD

Country Status (1)

Country Link
FR (1) FR2852415B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method
WO2000042491A1 (en) * 1999-01-15 2000-07-20 Rainbow Technologies, Inc. Usb-compliant personal key with integral input and output devices
WO2003012649A2 (en) * 2001-07-31 2003-02-13 Validy Method for protecting a software using a so-called variable principle against its unauthorised use

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method
WO2000042491A1 (en) * 1999-01-15 2000-07-20 Rainbow Technologies, Inc. Usb-compliant personal key with integral input and output devices
WO2003012649A2 (en) * 2001-07-31 2003-02-13 Validy Method for protecting a software using a so-called variable principle against its unauthorised use

Also Published As

Publication number Publication date
FR2852415B1 (en) 2005-06-24

Similar Documents

Publication Publication Date Title
EP1616242B1 (en) Method and device for controlling an access to peripherals
EP2688010B1 (en) Update of an operating system for a secure element
EP0552079B1 (en) Mass memory card for microcomputer
FR2606909A1 (en) PROCESSING SYSTEM FOR A PORTABLE ELECTRONIC DEVICE, SUCH AS AN INTEGRATED CIRCUIT BOARD
WO2001044886A2 (en) Computer system for application by accreditation access
FR2613856A1 (en) INFORMATION RECORDING SYSTEM
WO2004107283A1 (en) Security key generation method
EP2024798B1 (en) Secure terminal configuration method and device by means of a boot data storage device
CA2296009A1 (en) Method for managing a secure terminal
FR2808359A1 (en) MULTI-APPLICATIVE CHIP CARD
WO2009059763A1 (en) Method of unlocking an engine control computer
TWI360748B (en) Autonomic binding of subsystems to system to preve
EP2131300B1 (en) Securing method and device for a portable electronic entity
FR2852415A1 (en) Key type storage medium for controlling access to data and/or software, has microcontroller connected with reading device to securitize access to data and software, and ROM with files to store data and software that are to be securitized
EP2058746B1 (en) Portable electronic entity, host station and associated method
EP2048576B2 (en) Secure method for updating a program that runs automatically and portable electronic device implementing same
WO2008084154A2 (en) Processing of data associated with a digital service
WO1999000774A9 (en) Security module comprising means generating links between main files and auxiliary files
FR3042626A1 (en) METHOD AND SYSTEM FOR SECURE ACCESS AND DISCRIMINATION TO INTEGRATED CIRCUIT SERVICES BY DIVERSIFYING A SINGLE ROOT KEY
EP2302518B1 (en) Method and apparatus for installation of a MIFARE applicaton in a MIFARE memory
EP1488386A1 (en) Method and device for automatic validation of a computer program using cryptography functions
FR3136079A1 (en) Method for managing a sensitive data area in FLASH memory
WO2002041235A2 (en) Method for verifying before activating a programme loaded in a smart card
FR2600445A1 (en) Portable electronic apparatus, such as an integrated circuit card, making it possible to rapidly carry out data erasure
FR2856815A1 (en) Chip card data authentication process, involves comparing signature of data to be authenticated and signature of data stored in chip card memory and attesting authenticity of stored data in case of conformity of signatures

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 13

ST Notification of lapse

Effective date: 20161130