FR2774187A1 - Simultaneous protection of one or more software applications independent of software developer - Google Patents

Simultaneous protection of one or more software applications independent of software developer Download PDF

Info

Publication number
FR2774187A1
FR2774187A1 FR9800961A FR9800961A FR2774187A1 FR 2774187 A1 FR2774187 A1 FR 2774187A1 FR 9800961 A FR9800961 A FR 9800961A FR 9800961 A FR9800961 A FR 9800961A FR 2774187 A1 FR2774187 A1 FR 2774187A1
Authority
FR
France
Prior art keywords
software
lcl
present
reader
microcontroller
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
FR9800961A
Other languages
French (fr)
Other versions
FR2774187B1 (en
Inventor
Chiun Qiang Lee
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.)
BOXMART
Original Assignee
BOXMART
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 BOXMART filed Critical BOXMART
Priority to FR9800961A priority Critical patent/FR2774187B1/en
Priority to CA002319773A priority patent/CA2319773A1/en
Priority to EP99901657A priority patent/EP1049969A1/en
Priority to CN 99804576 priority patent/CN1295682A/en
Priority to AU21685/99A priority patent/AU2168599A/en
Priority to PCT/FR1999/000182 priority patent/WO1999039256A1/en
Publication of FR2774187A1 publication Critical patent/FR2774187A1/en
Application granted granted Critical
Publication of FR2774187B1 publication Critical patent/FR2774187B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)

Abstract

System comprises a reader (LCL) with a network interface creating an upper communications layer for exchange of data with the protected applications, a micro-controller (100) programmable only once which integrates two separate circuit parts on a silicon chip that are separated by an interface and a portable device (CL) able to store a large number of access authorizations. Both reader and portable device are protected both logically and physically against non-authorized access. Any user wishing to use software that is protected by the system must first possess a license card (CL) on which are recorded the user authorizations he has for the software protected with the system. The license card is read by the reader (LCL).

Description

La présente invention concerne la protection de logiciels contre leurs utilisations non autorisées. The present invention relates to the protection of software against unauthorized use.

L'industrie du logiciel est sans doute le secteur où les produits sont le plus facilement copiés. The software industry is undoubtedly the sector where products are most easily copied.

Or les médias d'enregistrement d'information qui sont en générale des supports optiques, magnétiques sont de plus en plus puissants en capacités de stockages. De plus, le temps mis pour effectuer une copie de ces médias est rapide. De plus, le prix pour posséder un appareil puissant de stockage d'information (logiciels, données) a été complètement démocratisé de sorte que les nouvelles versions de logiciels mises en vente sont très rapidement confrontées à des problèmes de copies illicites. De plus, il existe des pays où la copie illicite est pratiquée de manière industrielle et impunément à l'aide de CDROM. Si une telle pratique devait se généraliser, c'est tout le monde informatique qui s'écroule. Les programmes sont développés par les concepteurs de logiciels, appelés aussi concepteurs. Les licences d'utilisation de leurs logiciels sont ensuite vendues aux clients. Les sociétés concepteurs de logiciels gagnent des profits généralement à travers la vente directe de leur produit logiciel et / ou la vente de licences.However, the information recording media, which are generally optical and magnetic media, are more and more powerful in storage capacities. In addition, the time taken to make a copy of these media is rapid. In addition, the price for owning a powerful device for storing information (software, data) has been completely democratized, so that new versions of software for sale very quickly face problems of illegal copying. In addition, there are countries where illegal copying is carried out industrially and with impunity using CDROMs. If such a practice were to become generalized, it was the entire IT world that collapsed. The programs are developed by software designers, also called designers. The licenses to use their software are then sold to customers. Software designer companies generally earn profits through the direct sale of their software product and / or the sale of licenses.

L'utilisation illicite de logiciels est définie par rapport à une autorisation d'utilisation de ces logiciels. Cette autorisation se traduit donc par le fait que le concepteur de logiciel accepte de donner une licence d'utilisation qui autorise vis à vis de la loi, I'utilisation de ses produits, au terme d'une entente commerciale. The illegal use of software is defined in relation to an authorization to use this software. This authorization therefore results in the fact that the software designer agrees to give a user license which authorizes, vis-à-vis the law, the use of his products, at the end of a commercial agreement.

Le prix de vente des logiciels est calculé avec le nombre d'utilisateurs susceptibles d'acheter ces logiciels. Ainsi les profits dégagés par une société de conception de logiciels dépendent assez de la manière dont leurs clients comptent utiliser ces logiciels une fois achetée. Dans la mesure où après l'achat, I'utilisateur est libre de dupliquer le contenu du média contenant ces logiciels, la survie des concepteurs de logiciels dépend assez de l'honnêteté de leurs clients. The selling price of software is calculated with the number of users likely to buy this software. So the profits made by a software company depend quite enough on how their customers intend to use this software once purchased. To the extent that after purchase, the user is free to duplicate the content of the media containing this software, the survival of software developers depends quite on the honesty of their customers.

Ainsi, pour les logiciels utilisés en réseau, cette licence obtenu autorise en général, I'utilisation du logiciel donné que sur un seul poste d'ordinateur. Pour être utilisé sur plusieurs postes, un nombre de licences correspondant au nombre de postes d'ordinateurs prévus pour l'utilisation de ces logiciels sur son réseau, doit être acheté. Bien pour un ordinateur personnel, ce nombre est égal à 1. Par rapport aux concepteurs, rien ne peut leur garantir qu'effectivement leurs clients respectent bien les conditions liées aux contrats de vente des licences, car en l'absence de méthode et/ou moyen, rien n'empêche l'utilisation du logiciel sur un nombre de poste supérieur au nombre de licences achetées. Thus, for software used on a network, this license obtained generally authorizes the use of the given software only on one computer station. To be used on several workstations, a number of licenses corresponding to the number of computer workstations provided for the use of this software on its network must be purchased. Although for a personal computer, this number is equal to 1. Compared to the designers, nothing can guarantee them that their customers actually respect the conditions linked to the license sales contracts, because in the absence of a method and / or medium, nothing prevents the use of the software on a number of stations greater than the number of licenses purchased.

De plus, pour les logiciels utilisés sur un ordinateur isolé (ordinateur personnel) ou en réseau, si aucun moyen n'a été prise par le concepteur de logiciels, rien n'empêche à ce qu'un utilisateur pirate face des copies de ces logiciels sur un média informatique pour les installer sur un nombre d'ordinateurs, de manière illimitée et de les utiliser impunément. Il se crée alors des marchés noirs de ventes de logiciels piratés . Ce marché non contrôlé peut causer de grand dommage dans l'industrie du logiciel.  In addition, for software used on an isolated computer (personal computer) or on a network, if no means has been taken by the software designer, nothing prevents a user from pirating in the face of copies of this software on a computer medium to install them on a number of computers, in an unlimited way and to use them with impunity. This creates black markets for the sale of pirated software. This uncontrolled market can cause great damage in the software industry.

Les concepteurs qui désirent contrôler ce phénomène de copies et/ou d'utilisations illicites de leurs logiciels, achètent un appareil électronique permettant de protéger d'une certaine manière ces logiciels. Mais cette solution n'est envisageable que pour certains logiciels. De plus, ces concepteurs sont dépendants du fournisseur de ces moyens de protections de logiciels. Les concepteurs de logiciels à petit budget n'ont pas les moyens de protéger leurs produits numériques compte tenu du prix trop élevé des méthodes de protections par rapport aux prix de vente de leurs logiciels. Designers who wish to control this phenomenon of illicit copying and / or use of their software, buy an electronic device making it possible to protect this software in a certain way. But this solution is only possible for certain software. In addition, these designers are dependent on the supplier of these software protection means. Low-cost software developers cannot afford to protect their digital products given the overpriced protection methods compared to the selling prices of their software.

De plus, I'utilisation de ces appareils électroniques nécessite de la part du concepteur de logiciels, un achat de ces appareils avant la vente réel de ses logiciels. Cette situation oblige la constitution d'un stock qui peut représenter un désavantage par rapport à ses concurrents qui auraient choisi de ne pas utiliser de moyens de protections de logiciels. In addition, the use of these electronic devices requires from the software designer, a purchase of these devices before the actual sale of its software. This situation obliges the constitution of a stock which can represent a disadvantage compared to its competitors who would have chosen not to use means of software protections.

Pour répondre à tous ces problèmes d'utilisation de logiciels, différentes solutions ont été apportées jusqu'ici. Une solution de protection de logiciels en réseaux ou en monopostes (ordinateurs personnels) est proposée dans le brevet U.S. Pat. No. 5,553,139. Cependant il ne permet pas de protéger des logiciels par un même système d'appareil provenant de plusieurs concepteurs différents de logiciels. To solve all these software usage problems, different solutions have been provided so far. A software protection solution for networks or single-user systems (personal computers) is proposed in the U.S. Pat. No. 5,553,139. However, it does not allow software to be protected by the same device system from several different software developers.

D'autres méthodes sont utilisées pour un ordinateur donné par l'intermédiaire de systèmes électroniques connectés directement sur un port E/S de l'ordinateur hôte. Un tel système est proposé dans le brevet U.S. Pat. No. 5,343,524. Cette invention repose sur l'utilisation d'un circuit électronique basé sur un microcontrôleur sécurisé, qui ne peut être reproduit. La protection de logiciels par rapport à cette invention concerne le fait que les logiciels protégés puissent vérifier par l'intermédiaire de clés, la présence de cet appareil et interagir avec cet appareil. Cependant les appareils selon cette invention présentent le désavantage de ne protéger que des logiciels de grandes productions en raison de son coût, et d'autre part de ne pouvoir protéger que les logiciels d'un même concepteur. Un exemple de produit similaire est distribué par la société Rainbow. Other methods are used for a given computer through electronic systems connected directly to an I / O port on the host computer. Such a system is proposed in U.S. Pat. No. 5,343,524. This invention is based on the use of an electronic circuit based on a secure microcontroller, which cannot be reproduced. The protection of software with respect to this invention relates to the fact that the protected software can verify by means of keys, the presence of this device and interact with this device. However, the apparatuses according to this invention have the disadvantage of only protecting major production software because of its cost, and on the other hand of being able to protect only the software of the same designer. An example of a similar product is distributed by the company Rainbow.

D'autre part, des méthodes de protection entièrement logiciel sont aussi employées. Ces protections consistent bien souvent à demander un code d'accès à l'utilisateur. Ce code est ensuite vérifié à l'aide d'un calcul très compliqué. Cependant, il n'empêche pas certains utilisateurs de trouver le type de calcul qui est utilisé de sorte que les logiciels protégés de cette manière n'offrent aucune fiabilité par rapport à la protection de logiciels
Des systèmes plus puissants sont utilisés à travers l'utilisation de coprocesseur pouvant calculer une partie des codes d'un logiciel donné et protégé selon cette méthode. Généralement, ces logiciels ne peuvent être utilisés directement dans l'état actuel où ils ont été livrés à l'utilisateur, car une partie est codée à l'aide de clés de cryptage stockées de manière sécurisée en accès, dans une mémoire de type ROM du coprocesseur. Ce principe implique le fait qu'un utilisateur ayant obtenu une licence d'utilisation d'un logiciel protégé selon cette méthode soit attaché à l'ordinateur hôte sur lequel le logiciel a été installé. De plus, la possibilité de protéger plusieurs logiciels de plusieurs sociétés de concepteur est difficile à mettre en oeuvre. Ainsi, un coprocesseur ayant des caractéristiques similaires est proposé par le brevet U.S. Pat. No. 4,817,140. Le coprocesseur relative à ce brevet est lancé à condition que l'utilisateur dispose d'une clé pour justifier son achat de licences d'utilisation. Un tel système présente un autre désavantage : son utilisation dédiée à la protection de logiciels d'un seul concepteur, peut rendre la présence d'un coprocesseur génant notamment quand d'autres concepteurs décide de fournir un moyen de protections de logiciels similaire. Dans certains cas, I'ajout de nouveau appareil peut être impossible. Par ailleurs, un tel coprocesseur représente un investissement possible qu'avec des logiciels dont le prix est très haut (coûteux) par rapport au prix de ce coprocesseur déjà onéreux. De plus, I'utilisateur est lié à l'ordinateur sur lequel est installé le coprocesseur.
On the other hand, fully software protection methods are also used. These protections very often consist in requesting an access code from the user. This code is then verified using a very complicated calculation. However, it does not prevent some users from finding the type of calculation that is used so that software protected in this way does not offer any reliability compared to software protection
More powerful systems are used through the use of coprocessor which can calculate part of the codes of a given software and protected according to this method. Generally, this software cannot be used directly in the current state where it was delivered to the user, because a part is coded using encryption keys stored securely in access, in a ROM type memory. of the coprocessor. This principle implies that a user who has obtained a license to use software protected by this method is attached to the host computer on which the software has been installed. In addition, the ability to protect multiple software from multiple designer companies is difficult to implement. Thus, a coprocessor having similar characteristics is proposed by the US Pat. No. 4,817,140. The coprocessor relating to this patent is launched on condition that the user has a key to justify his purchase of user licenses. Another disadvantage of such a system is that its use dedicated to protecting software from a single designer can make the presence of a co-processor annoying, especially when other designers decide to provide similar software protection means. In some cases, adding a new device may not be possible. Furthermore, such a coprocessor represents a possible investment only with software whose price is very high (expensive) compared to the price of this already expensive coprocessor. In addition, the user is linked to the computer on which the coprocessor is installed.

La plupart des systèmes utilisés pour la protection de logiciels sont dédiés à une catégorie précise de logiciels. L'image de ces systèmes vis à vis de l'utilisateur peut être gênant dans la mesure où ils sont assimilés à une sorte de police électronique de surveillance et non de protections. De plus, ces systèmes sont contraignants dans la mesure où l'utilisation de logiciels protégés par ces systèmes est liée à l'ordinateur hôte sur lequel est installé le logiciel. De plus l'écriture d'un logiciel protégé est très dépendante de l'architecture du moyen de protections, ce qui peut rendre le développement du logiciel compliqué. De plus, comme dans le cas des dongles ,
I'utilisateur est lié dans l'utilisation des logiciels aux moyens qui servent à la protections de logiciels. Ainsi, à titre d'exemple, si un dongle est perdu, cette perte entraîne très souvent la perte du droit d'utilisation du logiciel attaché au dongle perdu. D'autre part, les systèmes de protection de logiciels ne tiennent pas compte du fait qu'un logiciel attaché à son système électronique de protection peut être volé. Dans ce cas de vol, et d'utilisation illicite par rapport au voleur, il n'y a pas moyen d'empêcher l'utilisation du logiciel volé. De plus, I'utilisateur devra obtenir une nouvelle licence par un nouvel achat.
Most systems used for software protection are dedicated to a specific category of software. The image of these systems vis-à-vis the user can be embarrassing insofar as they are assimilated to a kind of electronic police surveillance and not protections. In addition, these systems are restrictive insofar as the use of software protected by these systems is linked to the host computer on which the software is installed. In addition, writing protected software is very dependent on the architecture of the protection means, which can make software development complicated. In addition, as in the case of dongles,
The user is bound in the use of the software to the means which serve to protect the software. Thus, for example, if a dongle is lost, this loss very often results in the loss of the right to use the software attached to the lost dongle. On the other hand, software protection systems do not take into account the fact that software attached to its electronic protection system can be stolen. In this case of theft, and unlawful use in relation to the thief, there is no way to prevent the use of the stolen software. In addition, the user must obtain a new license with a new purchase.

De plus, certains logiciels protégés sont caractérisés par leur utilisation limitée dans le temps. In addition, certain protected software is characterized by its limited use over time.

Un tel système est présenté par le brevet U.S. Pat. No. 4,868,736. Ce brevet à le désavantage de ne pouvoir réaliser que cette fonctionnalité.One such system is presented by U.S. Pat. No. 4,868,736. This patent has the disadvantage of being able to achieve only this functionality.

Ainsi, la présente invention permet de remédier à tous les inconvénients qui viennent d'être cités. Thus, the present invention overcomes all the drawbacks which have just been mentioned.

La présente invention concerne la protection de logiciel contre le non respect des conditions d'utilisations des logiciels fixés par son concepteur. Elle concerne l'utilisation d'un seul appareil pour protéger plusieurs logiciels indépendamment des systèmes informatiques et du concepteur de ces logiciels. Il est basé sur l'utilisation de deux appareils électroniques qui ne peuvent pas être dupliqués sans autorisations. Cette protection contre la duplication des appareils selon la présente invention est réalisée grâce à une méthode d'authentification intégrée dans ces appareils. The present invention relates to the protection of software against non-compliance with the conditions of use of the software fixed by its designer. It concerns the use of a single device to protect several software independently of the computer systems and of the designer of these software. It is based on the use of two electronic devices which cannot be duplicated without authorization. This protection against duplication of the devices according to the present invention is achieved thanks to an authentication method integrated into these devices.

Le premier appareil est un lecteur électronique du second. II est noté LCL pour lecteur de cartes de licences. Ce lecteur assure la quasi-totalité des fonctionnalités de protections de logiciels selon la présente invention.  The first device is an electronic reader of the second. It is denoted LCL for license card reader. This reader provides almost all of the software protection functionalities according to the present invention.

Le second appareil est une carte électronique, notée CL (carte de licences). Chaque utilisateur qui désire exécuter des logiciels protégés selon la présente invention, doit posséder une carte CL sur lequel les autorisations d'utilisations de logiciels protégés selon la présente invention, sont stockées. The second device is an electronic card, marked CL (license card). Each user who wishes to run software protected according to the present invention, must have a CL card on which the authorizations to use software protected according to the present invention are stored.

Ainsi, la présente invention sépare sur trois niveaux la protection de logiciels. Dans un premier temps, la présente invention concerne une méthode permettant la séparation du logiciel protégé (media d'enregistrement) du moyen qui réalise la protection de ce logiciel (le lecteur LCL). Thus, the present invention separates software protection on three levels. Firstly, the present invention relates to a method allowing the separation of the protected software (recording media) from the means which realizes the protection of this software (the LCL reader).

Dans un deuxième temps, le lecteur LCL est distribué de manière indépendante par rapport à la distribution des logiciels protégés selon la présente invention. Ainsi, le même lecteur LCL, peut être utilisé pour permettre la protection de plusieurs logiciels indépendamment des concepteurs et du nombre de logiciels. L'utilisation de logiciels protégés selon la présente invention, n'est possible que si l'utilisateur dispose de la carte CL qui est distribuée indépendamment du lecteur
LCL.
In a second step, the LCL reader is distributed independently with respect to the distribution of the protected software according to the present invention. Thus, the same LCL reader can be used to allow the protection of several software regardless of the designers and the number of software. The use of protected software according to the present invention is only possible if the user has the CL card which is distributed independently of the reader.
LCL.

Selon la présente invention, la carte CL est un appareil portatif de petite taille par rapport à une carte à puces. Elle possède un dispositif amovible d'enregistrement de grande capacité. Elle permet de stocker des données de manière sécurisée contre des lectures et/ou modifications non autorisées. Elle est essentiellement utilisée comme un dispositif d'accès permettant l'utilisation des logiciels protégés selon la présente invention. Les conditions d'utilisation d'un logiciel sont fixées par les concepteurs de logiciels. Un utilisateur ne peut exécuter un logiciel qu'à condition de posséder une autorisation qui lui a été fournie sur sa carte CL lors d'une opération d'achat. La carte
CL permet de stocker sur un média d'enregistrement amovible un grand nombre d'autorisations d'utilisations de logiciels protégés. Ainsi, la carte CL permet à l'utilisateur de transporter les autorisations d'utilisation de logiciels et de pouvoir utiliser les logiciels correspondants sur tout ordinateur lorsque l'utilisation de ces logiciels dont il a le droit est possible par rapport à la présence ou non de ces logiciels protégés sur cet ordinateur.
According to the present invention, the CL card is a small portable device compared to a chip card. It has a removable large capacity recording device. It allows data to be stored securely against unauthorized readings and / or modifications. It is essentially used as an access device allowing the use of the protected software according to the present invention. The conditions of use of a software are fixed by the software designers. A user can only run software if he has an authorization provided to him on his CL card during a purchase transaction. The map
CL allows a large number of authorizations to use protected software to be stored on a removable recording medium. Thus, the CL card allows the user to carry the authorizations to use software and to be able to use the corresponding software on any computer when the use of this software which he is entitled to is possible in relation to the presence or not of this protected software on this computer.

La présente invention concerne par rapport à l'usage de cette carte CL un moyen de lutter contre les pertes ou le vol de cette carte CL. En cas de pertes ou de vols, la carte peut être rendue inutilisable par l'organisme qui gère (administre) les appareils selon la présente invention. Une partie importante des licences d'utilisations de ces logiciels peut être récupérer en cas de perte. The present invention relates, with respect to the use of this CL card, to a means of combating the loss or theft of this CL card. In the event of loss or theft, the card can be rendered unusable by the organization which manages (administers) the devices according to the present invention. A significant part of the licenses to use this software can be recovered in the event of loss.

Ainsi, I'utilisateur ne coure pas le risque de perdre ses droits d'utilisation d'un logiciel lors de pertes de carte CL, ce qui peut être le cas avec les appareils de protection de logiciels dans l'état actuel de l'art.Thus, the user does not run the risk of losing his rights to use software when losing a CL card, which can be the case with software protection devices in the current state of the art .

La présente invention concerne des méthodes de protection de logiciels indépendamment des systèmes informatiques. La présente invention permet la protection de logiciels utilisés en réseau et/ou sur un ordinateur personnel. Le lecteur LCL possède une grande capacité de modularité par rapport aux différents périphériques qui peuvent être ajouté sur son système électronique interne. The present invention relates to methods of protecting software independently of computer systems. The present invention allows the protection of software used on the network and / or on a personal computer. The LCL reader has a great capacity of modularity compared to the various peripherals which can be added on its internal electronic system.

Ainsi, il très facile de connecter le lecteur LCL sur tout environnement informatique. Ainsi, la protection de logiciels selon la présente invention, est réalisable avec le même lecteur LCL dans des systèmes informatiques très hétérogènes où de nombreux systèmes différents cohabitent. Le fonctionnement des lecteurs LCL est indépendant de ces systèmes informatiques. Par conséquent, les lecteurs LCL permettent la protection des logiciels indépendamment des systèmes informatiques prévus pour exécuter ces logiciels.Thus, it is very easy to connect the LCL reader to any IT environment. Thus, the protection of software according to the present invention can be achieved with the same LCL reader in very heterogeneous computer systems where many different systems coexist. The operation of LCL readers is independent of these computer systems. Consequently, LCL readers allow the protection of software independently of the computer systems intended to run this software.

La présente invention permet le développement de logiciels protégés indépendamment des caractéristiques techniques des appareils selon la présente invention. Le développement des logiciels protégés selon la présente invention, est indépendant du fonctionnement interne du LCL. The present invention allows the development of protected software regardless of the technical characteristics of the devices according to the present invention. The development of protected software according to the present invention is independent of the internal functioning of the LCL.

La réalisation d'un logiciel protégé selon la présente invention est rendue possible en faisant exécuter une partie des fonctions qui composent ce logiciel par les ressources interne du LCL.The production of protected software according to the present invention is made possible by executing part of the functions that make up this software by the internal resources of LCL.

L'écriture de ces fonctions est complètement transparente dans la mesure où le concepteur de logiciel n'est pas tenu de respecter l'architecture électronique du LCL. Le bon fonctionnement de ces fonctions peut même être testé à l'extérieur du lecteur LCL, de sorte que le travail de protections de logiciels pour le concepteur s'arrête à l'écriture de ces fonctions. Ces fonctions sont essentiellement des fonctions de calculs de petite taille par rapport à la taille d'un logiciel standard et dont l'exécution est très rapide. Ainsi, plusieurs logiciels protégés différents peuvent être utilisés dans le cadre d'un réseau avec le même lecteur LCL. De plus, plusieurs logiciels protégés selon la présente invention peuvent donc être utilisés sur un ordinateur personnel avec un seul lecteur LCL.The writing of these functions is completely transparent since the software designer is not required to respect the electronic architecture of LCL. The proper functioning of these functions can even be tested outside the LCL reader, so that the software protection work for the designer stops when these functions are written. These functions are essentially functions of calculations of small size compared to the size of a standard software and whose execution is very fast. Thus, several different protected software can be used within the framework of a network with the same LCL reader. In addition, several software protected according to the present invention can therefore be used on a personal computer with a single LCL reader.

Le fonctionnement du lecteur LCL utilisé avec un ordinateur personnel par rapport à une utilisation dans un environnement réseau ne diffère qu'au niveau des périphériques de communication utilisés dans chaque cas.The operation of the LCL player used with a personal computer compared to use in a network environment differs only in the communication devices used in each case.

Selon la présente invention, le lecteur LCL réalise la protection de logiciel en effectuant des mesures sur l'utilisation de tous les logiciels en cours d'exécution. Le lecteur LCL est selon la présente invention, capable de connaître le nombre de licences utilisées sur un ordinateur et/ou sur tout le réseau auquel il est connecté. Il est capable de connaître la durée d'utilisation d'un logiciel donné par un utilisateur donné. Selon la présente invention, il est capable de connaître toutes les informations d'utilisation concernant un logiciel donnée par rapport au temps. Ces moyens de mesure propre au lecteur LCL permettent au lecteur LCL d'arbitrer l'utilisation des logiciels protégés selon la présente invention. Cet arbitrage est effectué par rapport aux conditions d'utilisation de chaque logiciel protégé selon la présente invention. Ces conditions sont fixées par le concepteur de ces logiciels. According to the present invention, the LCL reader carries out software protection by performing measurements on the use of all the software running. The LCL reader is according to the present invention, capable of knowing the number of licenses used on a computer and / or on the entire network to which it is connected. It is able to know the duration of use of a given software by a given user. According to the present invention, it is capable of knowing all the usage information concerning a given software with respect to time. These measurement means specific to the LCL reader allow the LCL reader to arbitrate the use of the software protected according to the present invention. This arbitration is carried out in relation to the conditions of use of each software protected according to the present invention. These conditions are set by the designer of this software.

Ainsi, selon la présente invention, la carte CL sert à stocker des autorisations d'utilisations de logiciels et le profil de l'utilisateur par rapport à son utilisation des logiciels protégés selon la présente invention. Le lecteur LCL est chargé de vérifier si le profil de l'utilisateur par rapports à ses droits d'utilisations des logiciels, correspond bien aux conditions d'utilisation fixées par le concepteur de ces logiciels. Ces conditions peuvent être selon la réalisation de la présente invention, des conditions d'utilisations limitées dans le temps, des conditions d'ouverture simultanée d'un nombre de sessions d'exécution limitées par le nombre de licences d'utilisation possédées par le propriétaire de la carte CL.  Thus, according to the present invention, the CL card is used to store authorizations for the use of software and the profile of the user with respect to his use of the software protected according to the present invention. The LCL reader is responsible for verifying whether the user's profile in relation to their rights to use the software corresponds to the conditions of use set by the designer of these software. These conditions may be according to the embodiment of the present invention, conditions of use limited in time, conditions of simultaneous opening of a number of execution sessions limited by the number of user licenses owned by the owner. of the CL card.

Ainsi, un seul lecteur LCL peut arbitrer sur un ou plusieurs ordinateurs l'utilisation de un ou plusieurs logiciels différents protégés selon la présente invention. Les règles d'arbitrages peuvent être spécifiques à chaque version de logiciels, ce qui permet la protection de plusieurs logiciels par un seul appareil selon des critères spécifiques à l'utilisation de chaque logiciel protégé. Thus, a single LCL reader can arbitrate on one or more computers the use of one or more different software programs protected according to the present invention. The arbitration rules can be specific to each version of software, which allows multiple software to be protected by a single device according to criteria specific to the use of each protected software.

La présente invention permet une distribution des logiciels protégés indépendamment des moyens de protection de sorte que le développeur de logiciels peut ne pas constituer de stocks d'appareils permettant la protection. Ainsi, la protection de logiciels selon la présente invention est intéressante pour les petites et les grandes distributions de logiciels : L'usage d'un seul appareil pour la protection de plusieurs logiciels indépendamment des concepteurs ne peut que diminuer le coût d'utilisation du système de protection de logiciels selon la présente invention. De plus, la présente invention permet une grande souplesse par rapport à l'administration des logiciels protégés. La vente des autorisations d'utilisation d'un logiciel données peut être centralisée ou décentralisée. The present invention allows distribution of protected software independently of the means of protection so that the software developer may not build up inventories of devices enabling protection. Thus, the protection of software according to the present invention is advantageous for small and large software distributions: The use of a single device for the protection of several software independently of the designers can only reduce the cost of using the system software protection according to the present invention. In addition, the present invention allows great flexibility with respect to the administration of protected software. The sale of authorizations to use given software can be centralized or decentralized.

De plus, selon la présente invention, la création de logiciel protégé peut être effectuer de plusieurs manière. Les autorisations pour créer un logiciel protégé selon la présente invention, peuvent être centralisées ou décentralisé (situation décrite dans le cas de développement de logiciels de démonstrations ou de logiciels dont l'utilisation est limitée). In addition, according to the present invention, the creation of protected software can be carried out in several ways. The authorizations for creating protected software according to the present invention can be centralized or decentralized (situation described in the case of development of demonstration software or software whose use is limited).

De plus, les appareils selon la présente invention peuvent effectuer des communications avec des systèmes distants. L'administration de ces appareils est effectuée par un système distant qui est selon la réalisation de la présente invention, un serveur noté aSVR. Ce serveur fixe les conditions d'utilisations des appareils selon la présente invention. Il arbitre de manière générale l'utilisation des appareils selon la présente invention. In addition, the apparatuses according to the present invention can carry out communications with remote systems. The administration of these devices is carried out by a remote system which is, according to the embodiment of the present invention, a server denoted aSVR. This server fixes the conditions of use of the devices according to the present invention. It generally arbitrates the use of the devices according to the present invention.

De plus, les autorisations d'utilisation de logiciels contenue dans une carte CL peuvent être soit déplacées dans le lecteur LCL, soit dans une autre carte CL. Dans le cas où le déplacement aurait lieu vers un lecteur LCL, l'accès aux logiciels protégés peut être réalisé sans la présence d'une carte CL. Dans le cas de déplacements vers une autre carte CL, cela permet des distributions de licences d'utilisations de logiciels par des revendeurs. La présente invention permet ou non la centralisation des ventes des autorisations de logiciels. In addition, the authorizations for the use of software contained in a CL card can be either moved to the LCL reader or to another CL card. In the event that the movement takes place towards an LCL reader, access to protected software can be achieved without the presence of a CL card. When moving to another CL card, this allows distributors of software licenses by resellers. The present invention may or may not centralize the sales of software authorizations.

De plus, selon la présente invention, le lecteur de cartes LCL possède un ou des dispositif(s) qui permet un rajout de périphériques rapidement et facilement. Selon des modes particuliers de réalisation, le lecteur LCL dispose d'un récepteur radio pour recevoir des informations de manière sécurisée ou non grâce à un dispositif d'émission géré par ledit serveur aSVR. Ce récepteur est essentiellement utilisé pour des opérations d'achat d'autorisations d'utilisation de logiciels hors ligne, des opérations de mise à jour. Il permet aussi de gérer la sécurité d'utilisation des appareils selon la présente invention. In addition, according to the present invention, the LCL card reader has one or more device (s) which makes it possible to add peripherals quickly and easily. According to particular embodiments, the LCL reader has a radio receiver for receiving information in a secure manner or not thanks to a transmission device managed by said aSVR server. This receiver is mainly used for operations to buy authorizations to use software offline, update operations. It also makes it possible to manage the security of use of the devices according to the present invention.

La présente invention permet par ses moyens et ses méthodes des achats soit par des connexions informatiques, soit par un système d'accueil humain. Les achats peuvent donc être effectués en ligne ou hors ligne. Ces achats consiste en l'acquisition des autorisations d'utilisations de logiciels protégés selon la présente invention. La présente concerne l'emploi d'un récepteur radio numérique permettant en particulier la réception de ces autorisations d'utilisations. The present invention allows, by its means and methods, purchases either by computer connections or by a human reception system. Purchases can therefore be made online or offline. These purchases consist of the acquisition of authorizations to use software protected according to the present invention. The present concerns the use of a digital radio receiver allowing in particular the reception of these authorizations of use.

Pour réaliser la protection de plusieurs logiciels indépendamment de leurs concepteurs, la présente invention concerne l'utilisation au sein du lecteur LCL, d'un microcontrôleur sécurisé contre les lectures et/ou les modifications non autorisées de sa mémoire interne et contre des attaques de virus informatiques qui peuvent être rencontrés dans la mesure où ce microcontrôleur exécute des programmes dont il ignore la fiabilité, I'utilisation du lecteur comme moyen de protection de logiciels est libre en dehors des accords commerciaux éventuels. Ainsi, cette propriété permet à ce que l'usage du lecteur LCL et de la carte CL sont complètement libre. To achieve the protection of several software independently of their designers, the present invention relates to the use within the LCL reader, of a secure microcontroller against unauthorized readings and / or modifications of its internal memory and against virus attacks. data processing which can be encountered insofar as this microcontroller executes programs of which it ignores the reliability, the use of the reader like means of software protection is free outside possible commercial agreements. Thus, this property allows that the use of the LCL reader and the CL card are completely free.

Pour permettre à l'utilisateur de transporter des autorisations d'utilisations de logiciels protégés, la carte CL est de petite taille. Il est basé sur un microcontrôleur permettant de sécuriser l'accès aux informations qui définissent les droits d'utilisations d'un logiciel donné. Il peut stocker un très grand nombre d'autorisation d'utilisations de logiciels protégés selon la présente invention. To allow the user to carry authorizations for the use of protected software, the CL card is small. It is based on a microcontroller making it possible to secure access to the information which defines the rights of use of a given software. It can store a very large number of authorization to use protected software according to the present invention.

Les informations sont stockées sur un média d'enregistrement de fortes capacités. Elles sont protégées contre toutes modifications et lectures non autorisées. De plus, le système interne de son microcontrôleur est aussi protégé contre tout contrôle physique et logique.Information is stored on high capacity recording media. They are protected against all unauthorized modifications and readings. In addition, the internal system of its microcontroller is also protected against any physical and logical control.

De plus, la présente invention concerne un système de protection de logiciel évolutif dans la mesure où il est possible de mettre à jour l'ensemble des systèmes informatiques contenus dans les microcontrôleurs cités précédemment. Compte tenu de leur capacité de sécuriser le stockage de données et l'exécution de programmes, compte tenu aussi de la possibilité de mettre facilement à jour les systèmes informatiques des appareils selon la présente invention, la présente invention permet à des appareils de protection de logiciels d'être utilisée dans d'autres secteurs d'applications. In addition, the present invention relates to a software protection system that can be upgraded insofar as it is possible to update all of the computer systems contained in the above-mentioned microcontrollers. Given their capacity to secure the storage of data and the execution of programs, also taking into account the possibility of easily updating the computer systems of the devices according to the present invention, the present invention allows software protection devices. to be used in other application sectors.

Les dessins annexés illustrent l'invention
La figure 1 illustre l'ensemble des variantes de connexion mise en jeux dans la présente invention, et refléte le fonctionnement général de l'invention. Elle permet de comprendre les différents contextes d'utilisations des appareils selon la présente invention.
The accompanying drawings illustrate the invention
Figure 1 illustrates all of the connection variants used in the present invention, and reflects the general operation of the invention. It makes it possible to understand the different contexts of use of the devices according to the present invention.

La figure 2 illustre les différentes couches de logiciels nécessaires pour que un LCL donné puissent se connecter vers un système distant. Figure 2 illustrates the different layers of software necessary for a given LCL to connect to a remote system.

La figure 3 illustre le schéma synoptique de l'architecture du microcontrôleur utilisé dans l'appareil LCL. FIG. 3 illustrates the block diagram of the architecture of the microcontroller used in the LCL device.

La figure 4 reflète les associations possibles entre deux LCL concurrents sur le même réseau, pour permettre le partage des opérations liées à la protection de logiciels par la présente invention. Figure 4 reflects the possible associations between two competing LCLs on the same network, to allow the sharing of operations related to the protection of software by the present invention.

La figure 5 illustre le schéma synoptique des différents éléments composant la carte électronique CL, notamment l'architecture du microcontrôleur associé à une carte CL. FIG. 5 illustrates the block diagram of the various elements making up the electronic card CL, in particular the architecture of the microcontroller associated with a card CL.

La figure 6 représente une vue de face du boîtier de la carte CL. FIG. 6 represents a front view of the housing of the CL card.

La figure 7 représente une vue en perspective du boîtier CL avec la carte CompactFlash sortie de son support.  FIG. 7 represents a perspective view of the CL housing with the CompactFlash card removed from its support.

La figure 8 illustre les jeux de connecteurs mâles femelles entre LCL et CL. FIG. 8 illustrates the sets of female male connectors between LCL and CL.

La figure 9 illustre le fait que les appareils selon la présente invention possèdent des durées d'utilisation par rapport au calendrier. FIG. 9 illustrates the fact that the apparatuses according to the present invention have durations of use compared to the calendar.

La figure 10 illustre les étapes d'une procédure d'authentification empêchant des appareils pirates de fonctionner avec les appareils (lecteurs LCL et cartes CL) certifiés. Figure 10 illustrates the steps of an authentication procedure preventing pirated devices from working with certified devices (LCL readers and CL cards).

La figure 11 illustre les étapes d'une opération d'achat de licences d'utilisation de logiciels protégés selon la présente invention. FIG. 11 illustrates the steps of an operation for purchasing licenses to use protected software according to the present invention.

La figure 12 illustre un arbre logique, simplifié et utilisé par le système d'exploitation du microcontrôleur 100 pour effectuer la protection de logiciel. FIG. 12 illustrates a simplified logic tree used by the operating system of the microcontroller 100 to perform software protection.

En référence à la figure 1, selon la réalisation de la présente invention, L'ensemble du système qui exploite le lecteur électronique, peut avoir une gestion centralisée par l'intermédiaire d'un serveur aSVR qui possède une base de données 12 relatives aux appareils selon la présente invention. L'ensemble des éléments compris dans l'encadré 10 est géré par un organisme donné. With reference to FIG. 1, according to the embodiment of the present invention, the entire system which operates the electronic reader, can have centralized management via an aSVR server which has a database 12 relating to the devices. according to the present invention. All of the elements included in Box 10 are managed by a given organization.

Cet organisme est le distributeur des appareils relatifs à la présente invention. Le serveur aSVR peut communiquer avec des systèmes informatiques distants utilisant un lecteur LCL. Selon des variantes de la réalisation de la présente invention, un lecteur LCL peut posséder un moyen pour se connecter soit directement sur un réseau 40, soit sur un port E/S d'un ordinateur personnel (contexte représenté par l'encadré 30) ou posséder un radiorécepteur numérique 22 (contexte représenté par l'encadré 20).This organization is the distributor of the devices relating to the present invention. The aSVR server can communicate with remote computer systems using an LCL reader. According to variants of the embodiment of the present invention, an LCL reader can have a means for connecting either directly to a network 40, or to an I / O port of a personal computer (context represented by box 30) or have a digital radio receiver 22 (context represented by box 20).

Selon la réalisation de la présente invention, la figure 2 illustre les différentes couches traversées par LCL pour atteindre un système distant. Les communications entre le système distant et LCL sont gérées par deux programmes tournant sur un ordinateur 50. La connexion 54 entre l'ordinateur et un lecteur LCL peut en fonction du type d'utilisation être une connexion réseau dans le cas de l'encadré 40 ou une connexion directe sur un port E/S de l'ordinateur 50 dans les contextes 30 et 20. Le port retenu pour la réalisation de la présente invention, dans les contextes 30 et 20, est un port USB (Universal Serial Bus) pour des raisons de rapidité, en supposant que les ordinateurs utilisés possèdent un tel port de communication. La description de la présente invention a retenu pour le contexte d'utilisation 40, le cas d'un réseau Ethernet avec le protocole TCP/IP. According to the embodiment of the present invention, Figure 2 illustrates the different layers traversed by LCL to reach a remote system. The communications between the remote system and LCL are managed by two programs running on a computer 50. The connection 54 between the computer and an LCL reader can, depending on the type of use, be a network connection in the case of box 40 or a direct connection to an I / O port of the computer 50 in contexts 30 and 20. The port chosen for the implementation of the present invention, in contexts 30 and 20, is a USB (Universal Serial Bus) port for reasons of speed, assuming that the computers used have such a communication port. The description of the present invention has retained for the context of use 40, the case of an Ethernet network with the TCP / IP protocol.

Ainsi, dans ce contexte le lecteur LCL possédera un périphérique réseau adéquat. Le programme
PGM 52 permet de communiquer de manière interactive avec un lecteur LCL donné. Ces communications se font grâce au programme driver DRV 51. En référence à la figure 2, ce driver
51 réalise toutes les fonctions de communications entre un lecteur LCL et un ordinateur 50 connecté à ce lecteur. Les différentes fonctionnalités de ces deux programmes propres à la gestion des appareils selon la présente invention, seront définie par la suite. Le programme PGM permet d'assurer au lecteur LCL une communication avec un système distant. Pour réaliser cette communication, PGM utilise les ressources de communications 53 de l'ordinateur hôte 50. Le
programme DRV assure quant à lui la communication locale entre le lecteur LCL et le programme
PGM. Dans le cas 30, il peut s'agir du modem 31 permettant une connexion vers le réseau Internet auquel est attaché le serveur aSVR. Selon la réalisation de la présente invention, pour le cas 40, la ressource de communication 53 est celle de l'ordinateur 50 par rapport aux ressources du réseau local, permettant un accès vers un système distant via le réseau Internet.
In this context, the LCL reader will have an adequate network device. The program
PGM 52 allows interactive communication with a given LCL reader. These communications are made using the DRV 51 driver program. With reference to FIG. 2, this driver
51 performs all of the communication functions between an LCL reader and a computer 50 connected to this reader. The different functionalities of these two programs specific to the management of the devices according to the present invention will be defined below. The PGM program allows the LCL reader to communicate with a remote system. To carry out this communication, PGM uses the communication resources 53 of the host computer 50. The
DRV program provides local communication between the LCL reader and the program
PGM. In case 30, it may be modem 31 allowing a connection to the Internet network to which the aSVR server is attached. According to the embodiment of the present invention, for case 40, the communication resource 53 is that of the computer 50 with respect to the resources of the local network, allowing access to a remote system via the Internet network.

L'utilisation des lecteurs LCL est sous soumise par une condition d'identification lors de sa mise en marche, et par une condition de la connexion effective de la carte CL sur un support du lecteur LCL. Ces deux conditions seront décrites par la suite. The use of LCL readers is subject to an identification condition when it is switched on, and a condition for the effective connection of the CL card to a support on the LCL reader. These two conditions will be described later.

Le contexte 20 correspondant à des situations où le lecteur LCL est connecté sur un ordinateur ne possédant pas de moyens de communication avec un système distant. Ce fonctionnement sera décrit par la suite. The context 20 corresponding to situations where the LCL reader is connected to a computer that does not have means of communication with a remote system. This operation will be described later.

Selon la présente invention, la protection de logiciel est rendue possible en faisant exécuter une petite partie des fonctions d'un logiciel donné, par ledit lecteur électronique, noté LCL. Ladite carte électronique, noté CL, possède les autorisations d'utilisation du logiciel. Compte tenu de sa capacité de stockage, la carte CL peut stocker une grande quantité d'autorisations d'utilisation. De cette manière, la présente invention permet par le moyen d'un seul dispositif électronique, la protection de plusieurs logiciels simultanément et indépendamment de leurs concepteurs. According to the present invention, software protection is made possible by executing a small part of the functions of a given software, by said electronic reader, denoted LCL. Said electronic card, denoted CL, has the authorizations to use the software. Given its storage capacity, the CL card can store a large amount of user authorizations. In this way, the present invention allows by means of a single electronic device, the protection of several software simultaneously and independently of their designers.

Selon la réalisation de la présente invention, le lecteur LCL et la carte CL sont respectivement associés à deux numéros de série uniques. L'ensemble des informations permettant le fonctionnement du lecteur LCL et de la carte CL pour réaliser la protection de logiciels, est géré par le serveur aSVR à l'aide de sa base de données 12 qui doit être protégée contre des accès non autorisés par rapport à la sécurité du système mise en place pour la protection de logiciels. According to the embodiment of the present invention, the LCL reader and the CL card are respectively associated with two unique serial numbers. All of the information enabling the LCL reader and the CL card to operate to protect software is managed by the aSVR server using its database 12 which must be protected against unauthorized access in relation to system security implemented for software protection.

L'organisme en question qui gère aSVR attribue respectivement à une carte CL donné et un lecteur
LCL donné, les numéros de séries lD.c et ID.d, et les clés secrètes de codages kT.c et kT.d. Les numéros lD.c et ID.d sont uniques. Ces deux numéros et ces deux clés secrètes sont stockés dans de la mémoire non volatile qui se trouve dans le système électronique de CL et de LCL. Des précisions seront données ultérieurement. Les couples (ID.c, kT.c) et (ID.d, kT.d) sont stockés par ailleurs dans la base de données 12 accessible uniquement par aSVR pour des raisons de sécurités évidentes. Les clés kT.c et kT.d sont connues uniquement par aSVR, en dehors des appareils LCL et CL.
The organization in question that manages aSVR assigns respectively to a given CL card and a reader
LCL given, serial numbers lD.c and ID.d, and secret coding keys kT.c and kT.d. The ID and ID numbers are unique. These two numbers and these two secret keys are stored in non-volatile memory which is in the electronic system of CL and LCL. Details will be given later. The pairs (ID.c, kT.c) and (ID.d, kT.d) are also stored in the database 12 accessible only by aSVR for obvious security reasons. The keys kT.c and kT.d are known only by aSVR, outside the LCL and CL devices.

De plus, selon la réalisation de la présente invention, les numéros ID.c et ID.d sont publics, mai taille de clés de codage. In addition, according to the embodiment of the present invention, the numbers ID.c and ID.d are public, but may be the size of the coding keys.

Selon la présente invention, les appareils LCL et CL sont paramétrables dans une certaine mesure par l'intermédiaire d'un programme informatique, noté PGM, adapté pour chaque type d'ordinateur et de systèmes d'exploitation informatique. PGM permet à un utilisateur de démarrer des procédures relatives à des opérations nécessitant une intervention de l'utilisation. Ces procédures sont décrites par la suite. PGM est distribué par ledit organisme qui gère aSVR. A l'installation de PGM sur un ordinateur hôte, une opération de localisation d'un lecteur LCL est effectuée. Si un lecteur LCL est connecté directement sur un port de communication de l'ordinateur hôte, un driver logiciel DRV de communication à travers ce port est installé afin de permettre à un programme de cet ordinateur d'envoyer des données vers LCL et d'en recevoir de LCL en suivant le schéma de la figure 2, sans tenir compte des caractéristiques techniques de la communication entre cet ordinateur et le lecteur LCL connecté. Le driver DRV permet une utilisation transparente du lecteur LCL. According to the present invention, the LCL and CL devices can be configured to a certain extent by means of a computer program, denoted PGM, suitable for each type of computer and computer operating systems. PGM allows a user to start procedures relating to operations requiring user intervention. These procedures are described below. PGM is distributed by said organization which manages aSVR. When installing PGM on a host computer, an operation to locate an LCL reader is performed. If an LCL reader is connected directly to a communication port on the host computer, a DRV software driver for communication through this port is installed in order to allow a program on this computer to send data to LCL and send it in. receive from LCL following the diagram in figure 2, without taking into account the technical characteristics of the communication between this computer and the connected LCL reader. The DRV driver allows transparent use of the LCL reader.

Dans le cas où des logiciels protégés seraient utilisés en réseau (il s'agit du contexte 40), un programme driver DRV adéquat sera installé sur chaque ordinateur du réseau, pour permettre la communication entre ces ordinateurs et le LCL connecté sur ce réseau local. Le driver DRV permet une utilisation transparente de LCL pour chaque ordinateur du réseau qui peuvent avoir des systèmes informatiques différents entre eux. In the case where protected software is used on the network (this is context 40), a suitable DRV driver program will be installed on each computer on the network, to allow communication between these computers and the LCL connected to this local network. The DRV driver allows transparent use of LCL for each computer on the network which may have different computer systems between them.

A son installation sur le réseau Ethernet, le lecteur LCL reçoit une adresse IP par rapport au protocole TCP/IP, qui permet au driver installé sur les ordinateurs du réseau de le localiser. When installed on the Ethernet network, the LCL reader receives an IP address relative to the TCP / IP protocol, which allows the driver installed on the computers on the network to locate it.

De plus, chaque driver DRV permet à chaque ordinateur hôte où sont utilisés des logiciels protégés par la présente invention, de communiquer avec le lecteur LCL. La réalisation de la présente invention permet aussi à ce que plusieurs programme PGM puissent établir des communications avec un lecteur LCL donné connecté sur le réseau considéré. Dans son utilisation réseau 40, le lecteur LCL en cas d'utilisation intensive, peut partager avec d'autre lecteur LCL, sa fonction de protection de logiciels comme on le voit sur la figure 4 où une répartition des ordinateurs utilisant deux lecteurs LCL est illustrée. La répartition des lecteurs LCL présents sur le réseau avec les ordinateurs est, selon la réalisation de la présente invention, réalisée par l'administrateur réseau. Ce dernier effectue la répartition des ordinateurs du réseau par rapport aux lecteurs LCL présents sur le réseau, au moment de l'installation de DRV sur chaque ordinateur de ce réseau. Il indique à DRV l'adresse IP du lecteur LCL à utiliser. In addition, each DRV driver allows each host computer where software protected by the present invention is used, to communicate with the LCL reader. The embodiment of the present invention also allows several PGM programs to be able to establish communications with a given LCL reader connected to the network in question. In its network use 40, the LCL reader in the event of intensive use, can share with other LCL reader, its software protection function as seen in FIG. 4 where a distribution of the computers using two LCL readers is illustrated . According to the embodiment of the present invention, the distribution of the LCL readers present on the network with the computers is carried out by the network administrator. The latter distributes the computers on the network to the LCL readers on the network when DRV is installed on each computer on this network. It tells DRV the IP address of the LCL reader to use.

Après l'installation de PGM sur un ordinateur hôte, les utilisateurs de cet ordinateur peuvent alors effectuer sur un lecteur LCL donné, connecté avec une carte CL donnée les différentes opérations suivantes: achat en ligne de licences d'utilisation de logiciels protégés par la présente invention, déplacement d'un certain nombre de licences d'utilisation de logiciels d'une carte CL vers une autre carte CL, des opérations de récupération de licences perdues avec la perte d'une carte CL, la mise à jour des programmes contenus dans les mémoires électroniques du lecteur LCL ou de la carte CL.  After installing PGM on a host computer, users of this computer can then perform the following operations on a given LCL reader, connected with a given CL card: online purchase of licenses to use software protected by this invention, moving a certain number of software licenses from one CL card to another CL card, operations to recover lost licenses with the loss of a CL card, updating the programs contained in the electronic memories of the LCL reader or of the CL card.

Ainsi, la réalisation de la présente invention considère un logiciel donné, noté LD. Les descriptions suivantes sont valables pour tout autre logiciel. Son concepteur (fabricant) le protège selon la présente invention, contre des utilisations illégales en séparant l'ensemble des fonctions composant son logiciel en deux parties. La première partie concerne les procédures dont il désire laisser l'exécution à un ordinateur hôte. La deuxième partie concerne les fonctions qui devront être exécutées par les ressources de calculs de LCL. Ces fonctions doivent être rapide à exécuter. Leur taille est de l'ordre du 100 kilooctets. Thus, the realization of the present invention considers a given software, denoted LD. The following descriptions are valid for any other software. Its designer (manufacturer) protects it according to the present invention, against illegal uses by separating all of the functions making up its software into two parts. The first part concerns the procedures which it wishes to leave the execution to a host computer. The second part concerns the functions which will have to be executed by the LCL computing resources. These functions must be quick to execute. Their size is of the order of 100 kilobytes.

De cette deuxième partie dudit logiciel LD, il en extrait une liste de fonctions (F0, FI,...,Fi, ... fin}. Ces fonctions sont nécessaires pour le fonctionnement du logiciel LD. Pour effectuer cette extraction, il doit respecter une règle primordiale: ces fonctions ne doivent pas faire appel à des ressources caractéristiques des ordinateurs prévus pour l'exécution de LD. Cette condition est assez facile à respecter. Par exemple, ladite liste de fonctions peut être uniquement des fonctions de calculs purs. From this second part of said LD software, it extracts a list of functions (F0, FI, ..., Fi, ... end}. These functions are necessary for the operation of the LD software. To perform this extraction, it must respect a paramount rule: these functions must not call upon resources characteristic of the computers intended for the execution of LD. This condition is fairly easy to respect. For example, said list of functions can be only pure calculation functions.

Selon la réalisation de la présente invention, I'écriture de ces fonctions et le test de leur bon fonctionnement peuvent être réalisés indépendamment de la présence du lecteur LCL. Le moyen retenu pour la réalisation de la présente invention, concerne la machine virtuelle JAVA. Ainsi, ces fonctions sont écrites en JAVA. Ces fonctions sont donc compilées en byte code du langage universel JAVA et stockées dans un fichier, noté LF. According to the embodiment of the present invention, the writing of these functions and the test of their correct operation can be carried out independently of the presence of the LCL reader. The means adopted for carrying out the present invention relates to the JAVA virtual machine. Thus, these functions are written in JAVA. These functions are therefore compiled in byte code of the JAVA universal language and stored in a file, noted LF.

Par ailleurs, selon la réalisation de la présente invention, la protection du logiciel LD commence alors par l'exécution du programme PGM sur un ordinateur contenant LF. Selon la réalisation de la présente invention, PGM demande alors au concepteur de LD le système d'exploitation (WINDOWS NT, DOS, UNIX,...) et le type d'ordinateur (MACINTOSH, SPARC,
PC,...) qui exécuteront LD. Après ces réponses, PGM lance une procédure de connexion du lecteur
LCL disponible vers le serveur aSVR. La communication entre LCL et aSVR se fait selon la figure 2. Le numéro de série du lecteur LCL est donné en premier au serveur aSVR. Durant cette procédure de création d'un logiciel protégé par la présente invention, LCL demande à aSVR en communication sécurisée un numéro de série S à associer au logiciel à protéger LD et une clé de codages kX.S#.
Furthermore, according to the embodiment of the present invention, the protection of the LD software then begins with the execution of the PGM program on a computer containing LF. According to the embodiment of the present invention, PGM then asks the LD designer for the operating system (WINDOWS NT, DOS, UNIX, ...) and the type of computer (MACINTOSH, SPARC,
PC, ...) which will execute LD. After these responses, PGM launches a reader connection procedure
LCL available to the aSVR server. Communication between LCL and aSVR takes place according to figure 2. The serial number of the LCL reader is given first to the aSVR server. During this procedure for creating software protected by the present invention, LCL requests aSVR in secure communication a serial number S to be associated with the software to be protected LD and a coding key kX.S #.

Selon la réalisation de la présente invention, S est définit sur 128 bits, et la clé kX.S# est définie par rapport au cryptage DES avec une taille de 128 bits. According to the embodiment of the present invention, S is defined on 128 bits, and the key kX.S # is defined with respect to DES encryption with a size of 128 bits.

Selon la réalisation de la présente invention, pour effectuer ladite communication sécurisée avec aSVR, LCL commence par envoyer à aSVR son numéro ID.d sous une forme non codée. Par association avec la clé correspondante, aSVR trouve dans sa base de données 12, la clé kT.d à associer à lD.d.  According to the embodiment of the present invention, to carry out said secure communication with aSVR, LCL begins by sending aSVR its ID.d number in an unencrypted form. By association with the corresponding key, aSVR finds in its database 12, the key kT.d to be associated with lD.d.

Ainsi, aSVR retourne à LCL, S# et kX.S# sous une forme codée avec la clé kT.d. Le lecteur
LCL récupère la forme claire de S et kX.S# en décodant avec la clé kT.d qui se trouve dans sa mémoire interne 111, par rapport à l'algorithme de cryptage DES.
Thus, aSVR returns to LCL, S # and kX.S # in a form coded with the key kT.d. The reader
LCL recovers the clear form of S and kX.S # by decoding with the key kT.d which is in its internal memory 111, compared to the DES encryption algorithm.

Selon la présente invention, la clé kX.S# est connue par aSVR seul, car après utilisation, kX.S# sera effacé de la mémoire sécurisée DRAM 109 de LCL. De plus, S est communiqué à
PGM qui l'inscrit dans un fichier binaire contenant les conditions limites d'utilisation du logiciel.
According to the present invention, the kX.S # key is known by aSVR alone, because after use, kX.S # will be erased from the DRAM 109 secure memory of LCL. In addition, S is communicated to
PGM which registers it in a binary file containing the limiting conditions of use of the software.

Selon la réalisation de la présente invention, ce fichier peut avoir le format suivant: : du logiciel associé (128 bits), licences permanentes (8 bits), durée d'utilisation (24 bits), I'utilisation expire fin (16 bits), nombre d'exécutions (32 bits). Ce fichier fait donc une taille de 26 octets. (Fol F1,...,Fi, .fin} subissent ensuite des opérations de cryptage. La fonction Fo est traitée à part. Il s'agit selon la réalisation de la présente invention, de la procédure dite d'initialisation permettant d'une part de compter le nombre de licences utilisées sur le réseau dans le contexte réseau 40, et d'autre part de mesurer des caractéristiques d'utilisation du logiciel LD par rapport au temps. C'est une fonction qui est exécutée durant l'exécution du logiciel LD par un utilisateur, et de façon répétitive. Fo est en particulier la première fonction qui sera exécutée par LCL lors de l'ouverture d'une session d'exécutions du logiciel LD.According to the embodiment of the present invention, this file can have the following format:: associated software (128 bits), permanent licenses (8 bits), duration of use (24 bits), use expires end (16 bits) , number of executions (32 bits). This file is therefore 26 bytes in size. (Fol F1, ..., Fi, .fin} then undergo encryption operations. The Fo function is treated separately. According to the embodiment of the present invention, it is the so-called initialization procedure allowing on the one hand to count the number of licenses used on the network in the network context 40, and on the other hand to measure characteristics of use of the LD software compared to time. It is a function which is executed during execution of LD software by a user, and repeatedly. Fo is in particular the first function which will be executed by LCL when opening an execution session of LD software.

Fo est codée avec une clé différente de kX.S#. Pour cela le logiciel PGM génère une clé du même type notée kEL.S# par rapport au cryptage DES. La clé kEL.S# est connue uniquement par le concepteur de LD. Selon la réalisation de la présente invention, kEL.S# est une clé de 128bits. Il est de la responsabilité du concepteur de conserver en sécurité cette clé kEL.S#. A cette fonction codée, il joint une autre information codée aussi par la clé kEL.S#. II s'agit du fichier contenant les conditions limites d'utilisation du logiciel LD. Ces informations codées constituent alors un fichier nommé eF0 selon la réalisation de la présente invention. Fo is coded with a key different from kX.S #. For this, the PGM software generates a key of the same type denoted kEL.S # with respect to DES encryption. The kEL.S # key is known only to the LD designer. According to the embodiment of the present invention, kEL.S # is a 128-bit key. It is the responsibility of the designer to keep this kEL.S # key safe. To this coded function, it attaches another piece of information also coded by the key kEL.S #. This is the file containing the limit conditions for using the LD software. This coded information then constitutes a file called eF0 according to the embodiment of the present invention.

De plus, selon la réalisation de la présente invention, les autres fonctions sont ensuite codées par la clé kX.S#. Pour cette étape, PGM envoie ensuite F1,...,Fi, . fin vers LCL par l'intermédiaire de DRV. Les ressources de calculs de LCL codent alors ces fonctions successivement avec la clé kX.S#. A la fin des opérations de codage, LCL retourne (eFl,....,eF,) correspondant respectivement aux formes codées de (F1,..., Fin}
Selon la réalisation de la présente invention, PGM procède ensuite à l'assemblage du logiciel.
In addition, according to the embodiment of the present invention, the other functions are then coded by the key kX.S #. For this step, PGM then sends F1, ..., Fi,. end to LCL via DRV. The LCL calculation resources then code these functions successively with the key kX.S #. At the end of the coding operations, LCL returns (eFl, ...., eF,) corresponding respectively to the coded forms of (F1, ..., End}
According to the embodiment of the present invention, PGM then proceeds to assemble the software.

Pour un système d'exploitation donnée, PGM crée un fichier bibliothèque de fonctions qui seront exécutée durant l'exécution du logiciel LD sur l'ordinateur d'un utilisateur donné. Les différentes fonctions de la bibliothèque permettent de charger un élément de (eF0 ....,eF,) avec les paramètres nécessaires à l'exécution de la fonction correspondante, vers le lecteur LCL lors de l'utilisation de
LD. eF0, ....,eFn seront respectivement chargées par les fonctions FFo,....,FFn créées par PGM.
For a given operating system, PGM creates a library of functions that will be executed during the execution of the LD software on the computer of a given user. The different functions of the library allow you to load an element from (eF0 ...., eF,) with the parameters necessary for the execution of the corresponding function, to the LCL reader when using
LD. eF0, ...., eFn will be respectively loaded by the FFo, ...., FFn functions created by PGM.

Ces fonctions sont créées par rapport au type de systèmes d'exploitations et le type d'ordinateurs associés qui exécuteront LD. PGM rassemble ainsi (FFO,...,FFn) et (eFO,...,eFn) avec le reste du logiciel LD ainsi protégé, et numéroté S#. Le tout est ensuite mis sur média d'enregistrement, par exemple un CDROM. Le logiciel est ainsi protégé et prêt à être diffusé librement, car il ne pourra pas être utilisé dans l'état actuel. Ainsi, la distribution du média d'enregistrement peut être effectuée de manière complètement libre.These functions are created with respect to the type of operating systems and the type of associated computers that will run LD. PGM thus brings together (FFO, ..., FFn) and (eFO, ..., eFn) with the rest of the LD software thus protected, and numbered S #. The whole is then put on recording media, for example a CDROM. The software is thus protected and ready to be freely distributed, because it cannot be used in the current state. Thus, the distribution of the recording medium can be carried out completely freely.

Ainsi, la protection de logiciel selon la présente invention, est basée sur l'utilisation des ressources de calculs du lecteur LCL.  Thus, the software protection according to the present invention is based on the use of the computing resources of the LCL reader.

Selon la présente invention, le lecteur LCL est un lecteur électronique construit autour d'un microcontrôleur 100 sécurisé physiquement et logiquement afin de prévenir contre les tentatives de pirates pour des contrôles électroniques non autorisés. Compte tenu du fait que ce microcontrôleur 100 est amené à exécuter des programmes d'origine inconnue, la présente invention concerne un moyen d'empêcher des attaques informatiques du microcontrôleur 100 par l'intermédiaire de virus informatiques. Cette mesure est prise pour empêcher un virus de lire des informations confidentielles liées aux fonctionnements du lecteur LCL. Ainsi la présente invention permet de sécuriser à la fois le stockage d'information et à la fois l'exécution de tout programme extérieur aux programmes initialement chargés dans le microcontrôleur 100. According to the present invention, the LCL reader is an electronic reader built around a microcontroller 100 physically and logically secure in order to prevent against hacker attempts for unauthorized electronic checks. In view of the fact that this microcontroller 100 is required to execute programs of unknown origin, the present invention relates to a means of preventing computer attacks on the microcontroller 100 by means of computer viruses. This is done to prevent a virus from reading confidential information related to the operation of the LCL reader. Thus the present invention makes it possible to secure both the storage of information and both the execution of any program external to the programs initially loaded in the microcontroller 100.

Selon la réalisation de la présente invention, I'architecture retenue du microcontrôleur est construite autour d'un système basé sur un jeu de deux processeurs utilisés en maître esclave. En référence à la figure 3, le microcontrôleur 100 intègre sur la même pastille de silicium deux parties principales 130 et 120. Les méthodes d'intégration ASIC (Application Specific Integrated Circuit) sont employées pour réaliser ces pastilles de silicium. La partie 130 comporte un processeur CPU 1 qui est le processeur maître. Il est relié par un bus interne 101 à un module de mémoires FLASH 111, un module de mémoires DRAM 109, un générateur de nombre aléatoire 112, un port E/S RS232 ]51, un port USB 152, un contrôleur de cartes à puces (SmartCard) 153, un contrôleur
PCMCIA 154, un contrôleur clavier et écran LCD 155, un contrôleur 113 du processeur esclave
CPU2 qui se trouve dans la partie 120, une interface 106, une interface Bus externe 105, une horloge temps réel programmable interne 104, un système de microfusible interne 102 qui permet de sortir le bus interne 101 à l'extérieur du microcontrôleur 100. La partie 120 du microcontrôleur 100 comporte un watchdog 108. Le CPU2 est relié par le bus interne 114 à un module de mémoires
DRAM 110, un contrôleur DMA 107, et une interface 106. L'esclave CPU2 est commandé par l'intermédiaire du contrôleur 113 et de l'interface 106. Ces deux derniers systèmes électroniques (113 et 106) sont contrôlés uniquement par le processeur maître CPUI. Ainsi, une telle architecture permet l'exécution des programmes d'origine inconnue sans pour autant endommager l'intégrité des informations contenues dans le microcontrôleur 100.
According to the embodiment of the present invention, the architecture retained for the microcontroller is built around a system based on a set of two processors used as master slaves. With reference to FIG. 3, the microcontroller 100 integrates on the same silicon wafer two main parts 130 and 120. The integration methods ASIC (Application Specific Integrated Circuit) are used to produce these silicon wafers. The part 130 comprises a processor CPU 1 which is the master processor. It is connected by an internal bus 101 to a FLASH memory module 111, a DRAM memory module 109, a random number generator 112, an I / O port RS232] 51, a USB port 152, a smart card controller (SmartCard) 153, a controller
PCMCIA 154, keyboard and LCD monitor controller 155, slave processor controller 113
CPU2 which is located in part 120, an interface 106, an external Bus interface 105, an internal programmable real-time clock 104, an internal microfuse system 102 which makes it possible to output the internal bus 101 outside the microcontroller 100. The part 120 of the microcontroller 100 includes a watchdog 108. The CPU2 is connected by the internal bus 114 to a memory module
DRAM 110, a DMA controller 107, and an interface 106. The slave CPU2 is controlled via the controller 113 and the interface 106. These last two electronic systems (113 and 106) are controlled only by the master processor CPUI. Thus, such an architecture allows the execution of programs of unknown origin without damaging the integrity of the information contained in the microcontroller 100.

Selon des modes particuliers de réalisation, le microcontrôleur 100 peut ne pas intégrer sur la même pastille de silicium tout ou partie des éléments suivants : Port E/S RS232 151, port USB 152, contrôleur de cartes à puces 153, contrôleur PCMCIA 154, contrôleur clavier et écran LCD 155. According to particular embodiments, the microcontroller 100 may not integrate all or part of the following elements on the same silicon wafer: I / O port RS232 151, USB port 152, chip card controller 153, PCMCIA controller 154, controller keyboard and LCD screen 155.

Selon des modes particuliers de réalisation non illustrés, et afin d'accélérer la vitesse de traitement d'informations, le microcontrôleur 100 peut comporter sur la même pastille de silicium un coprocesseur de cryptage adapté par rapport à la technique de cryptage DES. Bien entendu ce coprocesseur de cryptage sera intégré dans la partie 130 relié sur le bus interne 101.According to particular embodiments not illustrated, and in order to accelerate the speed of information processing, the microcontroller 100 can comprise on the same silicon wafer an encryption coprocessor adapted with respect to the DES encryption technique. Of course, this encryption coprocessor will be integrated into the part 130 connected to the internal bus 101.

Selon la présente invention, L'horloge temps réel interne 104 est alimentée par une pile électrique 103 externe par rapport au microcontrôleur 100. Son fonctionnement est autonome. Cette horloge est intégrée sur ladite pastille de silicium afin d'empêcher des tentatives de contrôles électroniques faussant l'heure et la date qu'il fournit au CPU1. Compte tenu de la faible consommation électrique de cette horloge, la pile électrique permet de fournir en continue le courant nécessaire au fonctionnement de cette horloge pendant toute la durée d'utilisation du microcontrôleur 100 comme organe central du lecteur LCL. Eventuellement, une procédure de mise à l'heure de l'horloge 104 pourra être effectuée par le serveur aSVR. L'horloge 104 permet de mesurer le temps d'utilisation des logiciels protégés et d'effectuer des opérations dépendant de la date et de l'heure. According to the present invention, the internal real-time clock 104 is powered by an electric battery 103 external to the microcontroller 100. Its operation is autonomous. This clock is integrated on said silicon wafer in order to prevent attempts at electronic controls distorting the time and the date which it supplies to the CPU1. Given the low power consumption of this clock, the electric battery makes it possible to continuously supply the current necessary for the operation of this clock for the entire duration of use of the microcontroller 100 as the central organ of the LCL reader. Optionally, a procedure for setting the time of the clock 104 may be carried out by the aSVR server. The clock 104 makes it possible to measure the time of use of the protected software and to carry out operations depending on the date and the time.

Le bus interne 101 est sorti vers l'extérieur du microcontrôleur 100, par l'intermédiaire du système de microfusibles 102. Selon une variante non illustrée, le système de microfusibles est évité en employant de la mémoire OTP EPROM interne. Cette variante permet les mêmes niveaux de sécurité que l'utilisation du système de microfusibles 102. The internal bus 101 is taken out of the microcontroller 100, via the microfuse system 102. According to a variant not illustrated, the microfuse system is avoided by using internal OTP EPROM memory. This variant allows the same levels of security as the use of the microfuse system 102.

Le système de microfusibles 102 permet de réaliser un système de microcontrôleur programmable une seule fois. Les données nécessaires pour mettre en service les lecteurs LCL (clés de codages secrètes, numéros de série, identifiants, dates, heures), et le système d'exploitation du microcontrôleur 100 regroupant des programmes permettant aux lecteurs LCL de réaliser directement et/ou indirectement toutes les fonctionnalités relatives à la présente invention, sont programmés en usine dans la zone mémoire de mémoire non volatile (mémoire Flash 111). Le système d'exploitation est exécuté dans la mémoire DRAM 109. The microfuse system 102 allows a microcontroller system to be programmed only once. The data necessary to activate the LCL readers (secret coding keys, serial numbers, identifiers, dates, times), and the operating system of the microcontroller 100 grouping programs allowing the LCL readers to carry out directly and / or indirectly all the functionalities relating to the present invention are programmed in the factory in the memory area of non-volatile memory (Flash memory 111). The operating system is executed in the DRAM memory 109.

La réalisation de la présente invention utilise de la mémoire FLASH comme support de stockage permanente pour le microcontrôleur 100. Le choix d'une telle mémoire FLASH peut permettre une mise à jour très facile du système d'exploitation initialement programmé en usine. The embodiment of the present invention uses FLASH memory as a permanent storage medium for the microcontroller 100. The choice of such FLASH memory can allow very easy updating of the operating system initially programmed in the factory.

Selon la réalisation de la présente invention, les heures et les dates sont données, sauf mention contraire, par rapport au méridien origine des fuseaux horaires GMT (Greenwich Mean Time). According to the embodiment of the present invention, the times and dates are given, unless otherwise stated, relative to the meridian of the GMT (Greenwich Mean Time) time zones.

Ainsi lors de la mise à l'heure durant la programmation du microcontrôleur 100 en usine, cette référence est prise pour l'horloge interne 104 du microcontrôleur 100 des lecteurs LCL.Thus when setting the time during the programming of the microcontroller 100 in the factory, this reference is taken for the internal clock 104 of the microcontroller 100 of the LCL readers.

Après programmation, le système de microfusibles est détruit ce qui empêche définitivement une nouvelle programmation du microcontrôleur 100, il n'y a plus alors d'accès directs à l'intérieur du microcontrôleur 100, car tous les contrôleurs et interfaces sont totalement sous le contrôle du processeur maître CPU1 (selon la construction du microcontrôleur 100). Le système d'exploitation du microcontrôleur 100 ainsi programmé est automatiquement chargé par le processeur maître
CPU 1 à chaque démarrage d'un lecteur LCL.
After programming, the microfuse system is destroyed, which definitively prevents new programming of the microcontroller 100, there is no longer any direct access to the interior of the microcontroller 100, because all the controllers and interfaces are completely under control. of the master processor CPU1 (according to the construction of the microcontroller 100). The operating system of the microcontroller 100 thus programmed is automatically loaded by the master processor
CPU 1 each time an LCL reader is started.

Ainsi l'intégralité des informations qui sont stockées dans la mémoire interne du microcontrôleur 100 sont sécurisées contre toutes tentatives de contrôle électronique externe au microcontrôleur 100. Compte tenu des propriétés physiques d'une pastille de silicium, de sa taille et de son boîtier, il offre dans l'état actuel de l'art une très bonne protection physique et logique contre toutes tentatives d'intrusions non autorisées dans les circuits internes du microcontrôleur 100. Selon des modes particuliers de réalisation, des techniques de protection supplémentaires peuvent toutefois être ajoutées autour du microcontrôleur 100. Une des techniques possibles concerne l'utilisation d'un dispositif électrique externe de protection de circuits intégrés, présenté dans le brevet de la société IBM en 1990 (U.S. Patent 5,117,457). Thus all of the information which is stored in the internal memory of the microcontroller 100 is secured against any attempts at electronic control external to the microcontroller 100. Given the physical properties of a silicon wafer, its size and its housing, it offers in the current state of the art very good physical and logical protection against any unauthorized intrusion attempts in the internal circuits of the microcontroller 100. According to particular embodiments, additional protection techniques can however be added around of the microcontroller 100. One of the possible techniques relates to the use of an external electrical device for protecting integrated circuits, presented in the patent of the company IBM in 1990 (US Patent 5,117,457).

Le système électronique esclave 120 sert à exécuter des programmes venant de l'extérieur du microcontrôleur, c'est à dire n'appartenant pas au système d'exploitation qui a été chargé dans la mémoire FLASH 111 lors de la programmation du microcontrôleur 100. Il permet d'exécuter des programmes à l'abri des attaques de virus informatiques éventuels. La sécurité est complète par rapport à ces attaques grâce à une protection physique caractérisée par une séparation logique d'une même pastille de silicium en deux parties 120 et 130 dont l'un 120 est esclave de l'autre 130. The slave electronic system 120 is used to execute programs coming from outside the microcontroller, ie not belonging to the operating system which was loaded in the FLASH memory 111 during the programming of the microcontroller 100. It allows you to run programs free from possible computer virus attacks. Security is complete with respect to these attacks thanks to a physical protection characterized by a logical separation of the same silicon wafer into two parts 120 and 130 of which one 120 is a slave of the other 130.

Selon la réalisation de la présente invention, la zone mémoire DRAM 109 est strictement réservée à l'exécution du système d'exploitation du microcontrôleur 100 qui à été chargé en usine, lors de la procédure de programmation du microcontrôleur 100. Il sert aussi de mémoire tampon pour transférer les programmes et/ou données venant de l'extérieur du microcontrôleur vers la mémoire DRAM 110 via l'interface 106 contrôlée uniquement par le processeur maître CPUI. Les programmes venant de l'extérieur sont exécuter à partir de la mémoire DRAM 110, par le processeur esclave CPU2 contrôlé par le processeur maître CPUl via le contrôleur 113. According to the embodiment of the present invention, the DRAM memory area 109 is strictly reserved for the execution of the operating system of the microcontroller 100 which has been loaded at the factory, during the programming procedure of the microcontroller 100. It also serves as memory buffer for transferring programs and / or data coming from outside the microcontroller to the DRAM memory 110 via the interface 106 controlled only by the master processor CPUI. The programs coming from the outside are executed from the DRAM memory 110, by the slave processor CPU2 controlled by the master processor CPU1 via the controller 113.

Selon la réalisation de la présente invention, par rapport l'utilisations des lecteurs LCL avec différents types d'ordinateur et de systèmes d'exploitations, et compte tenu de l'écriture des fonctions Fo précédemment décrites, le CPU2 est un processeur Java (PicoJava) de la société Sun
Microsystems. Cette caractéristique rend le développement des fonctions (Fo, F1 F, . . Fn} indépendant des ressources de calculs de l'ordinateur qui exécute un logiciel protégé selon la présente invention, et des ressources internes du LCL. De plus, le concepteur de logiciels protégés par la présente invention, peut tester le fonctionnement des fonctions (Fo, Fl,...,Fs, .Fn} indépendamment du lecteur LCL avec un programme simulant une machine virtuelle JAVA.
According to the embodiment of the present invention, compared to the use of LCL readers with different types of computer and operating systems, and taking into account the writing of the functions Fo previously described, the CPU2 is a Java processor (PicoJava ) from Sun
Microsystems. This characteristic makes the development of the functions (Fo, F1 F,.. Fn} independent of the computing resources of the computer which runs software protected according to the present invention, and of the internal resources of the LCL. In addition, the software designer protected by the present invention, can test the operation of the functions (Fo, Fl, ..., Fs, .Fn} independently of the LCL reader with a program simulating a JAVA virtual machine.

Selon la réalisation de la présente invention, CPUl est un processeur du type 80386SX. Il peut donc utiliser directement via son bus interne 101 une grande quantité de mémoires internes et/ou externes. Sa capacité de calculs permet d'envisager une forte capacité de traitements d'informations en multitâche. According to the embodiment of the present invention, CPU1 is a processor of the type 80386SX. It can therefore use directly via its internal bus 101 a large amount of internal and / or external memories. Its computational capacity makes it possible to envisage a high capacity for information processing in multitasking.

Selon des modes particuliers de réalisation, le microcontrôleur peut ne pas utiliser de processeurs JAVA, mais un processeur du type 80386SX dont le système d'exploitation serait la machine virtuelle JAVA de la société Sun Microsystems que le CPUl chargerait à chaque nouvelle exécution de programmes dans la DRAM 110 afin d'éviter d'éventuelles attaques de virus informatiques. According to particular embodiments, the microcontroller may not use JAVA processors, but a processor of the 80386SX type, the operating system of which would be the JAVA virtual machine from the company Sun Microsystems, which the CPUl would load with each new execution of programs in DRAM 110 in order to avoid possible attacks of computer viruses.

De plus, selon la réalisation de la présente invention, la totalité des informations éventuelles de la mémoire DRAM 110 est effacée par CPU1 avant chaque nouveau chargement de programmes qui doivent être exécutés par CPU2. CPUl met en pause CPU2 par l'intermédiaire du contrôleur de
CPU2 113, et efface, par exemple par une désactivation momentanée des circuits qui composent le module de mémoires DRAM 110, le contenu de cette mémoire DRAM 110 grâce à l'interface 106.
In addition, according to the embodiment of the present invention, all of the possible information from the DRAM memory 110 is erased by CPU1 before each new loading of programs which must be executed by CPU2. CPUl pauses CPU2 through the controller
CPU2 113, and erases, for example by temporarily deactivating the circuits that make up the DRAM memory module 110, the content of this DRAM memory 110 by means of the interface 106.

Ensuite, CPUI charge les paramètres d'exécution et le nouveau programme à exécuter dans la
DRAM 110 directement grâce au contrôleur DMA 107. Ce chargement direct permet de ne pas utiliser CPU2 et de permettre au CPUI de contrôler complètement la DRAM 110. Ainsi, après chargement du programme, CPU1 donne alors la main à CPU2 par l'intermédiaire du contrôleur de CPU2 113. CPU2 exécute alors le nouveau programme. Ainsi compte tenu de toutes ces mesures, si ce programme est un virus informatique volontairement inscrit dans une des fonctions de type Fi, il ne pourra toutefois porter aucunes atteintes au fonctionnement du microcontrôleur 100, ni recopier vers l'extérieur des données non effacées concernants les anciennes fonctions qui ont été exécutées par CPU2 dans la mémoire DRAM 110. De plus, CPUI conserve le contrôle des accès aux données contenues sa partie 130. Cette procédure de chargement de programme et/ou de données dans la DRAM 110, est répétée pour chaque programme qui doit être exécuté par le processeur esclave CPU2.
Then, CPUI loads the execution parameters and the new program to be executed in the
DRAM 110 directly thanks to the DMA 107 controller. This direct loading makes it possible not to use CPU2 and to allow the CPUI to completely control the DRAM 110. Thus, after loading the program, CPU1 then gives control to CPU2 via the controller of CPU2 113. CPU2 then executes the new program. Thus taking into account all these measures, if this program is a computer virus voluntarily registered in one of the functions of the Fi type, it will not however be able to carry out any damage to the functioning of the microcontroller 100, nor to copy outwards non-erased data concerning the old functions which have been executed by CPU2 in the DRAM 110 memory. In addition, CPUI retains access control to the data contained in its part 130. This procedure for loading the program and / or data into the DRAM 110, is repeated for each program to be executed by the slave processor CPU2.

Selon la réalisation de la présente invention, l'architecture présentée par la figure 3, permet d'empêcher un programme n'appartenant pas au système d'exploitation du microcontrôleur 100 d'effectuer des lectures et/ou modification dans la mémoire interne du système 130 intégré dans le microcontrôleur 100. Il permet aussi d'empêcher ces programmes de contrôler les interfaces et/ou contrôleurs du microcontrôleur 100, et donc d'empêcher des pirates de lire le contenu des mémoires sécurisées physiquement et logiquement du système 130, intégrées dans le microcontrôleur 100. According to the embodiment of the present invention, the architecture presented in FIG. 3 makes it possible to prevent a program not belonging to the operating system of the microcontroller 100 from carrying out readings and / or modification in the internal memory of the system. 130 integrated in the microcontroller 100. It also makes it possible to prevent these programs from controlling the interfaces and / or controllers of the microcontroller 100, and therefore to prevent hackers from reading the content of the memories physically and logically secured of the system 130, integrated in the microcontroller 100.

De plus, selon la présente invention, l'interface bus externe 105 permet au microcontrôleur 100 de contrôler des périphériques externes reliés au bus externe 114. Ce bus permet d'ajouter au
LCL des périphériques d'enregistrement comme par exemple un média d'enregistrement du type
Flash Disk (mémoire FLASH utilisé un disque standard), un périphérique de communication réseau.
In addition, according to the present invention, the external bus interface 105 allows the microcontroller 100 to control external peripherals connected to the external bus 114. This bus makes it possible to add to the
LCL of recording devices such as recording media of the type
Flash Disk (FLASH memory used a standard disk), a network communication device.

L'architecture du microcontrôleur 100 permet une grande modularité de fonctionnement. The architecture of the microcontroller 100 allows great modularity of operation.

Selon la réalisation de la présente invention, on connecte sur ce bus 114 un périphérique d'accès réseau Ethernet pour une communication en protocole TPC/IP. Selon le type de communication utilisé entre un lecteur LCL et un ordinateur donné, on pourra connecter sur ce bus un périphérique adéquat à cette communication. Ainsi, on peut ajouter un périphérique radio récepteur 22, pour utiliser un lecteur LCL dans le contexte 20 de la figure 1. L'usage de ce récepteur sera défini par la suite.According to the embodiment of the present invention, an Ethernet network access device is connected to this bus 114 for communication in TPC / IP protocol. Depending on the type of communication used between an LCL reader and a given computer, a peripheral suitable for this communication may be connected to this bus. Thus, a radio receiving device 22 can be added, in order to use an LCL reader in the context 20 of FIG. 1. The use of this receiver will be defined below.

Selon la réalisation de la présente invention, compte tenu du contrôleur PCMCIA 154 intégré dans le microcontrôleur 100, les périphériques utilisés peuvent être aussi des cartes PCMCIA utilisée par le microcontrôleur 100 pour toutes opérations relatives à la présente invention. Ces cartes PCMCIA peuvent être des cartes Ethernet PCMCIA, des cartes FLASH PCMCIA, un disque dur PCMCIA, une carte module de réceptions numériques hertziennes PCMCIA. Ces différentes cartes ne sont pas illustrées. L'usage du contrôleur PCMCIA permet d'ajouter à un lecteur LCL donné des périphériques plus facilement par rapport au bus externe 114. Le port USB 150 sert à une connexion à grande vitesse de transmission et de réceptions entre un ordinateur, et un lecteur
LCL donné. Il s'agit des contextes 30 et 20.
According to the embodiment of the present invention, taking into account the PCMCIA controller 154 integrated in the microcontroller 100, the peripherals used can also be PCMCIA cards used by the microcontroller 100 for all operations relating to the present invention. These PCMCIA cards can be PCMCIA Ethernet cards, PCMCIA FLASH cards, a PCMCIA hard disk, a PCMCIA wireless digital reception module card. These different cards are not illustrated. The use of the PCMCIA controller makes it possible to add peripherals to a given LCL reader more easily compared to the external bus 114. The USB port 150 is used for a high-speed connection of transmission and reception between a computer and a reader.
LCL given. These are contexts 30 and 20.

Le port d'E/S 151 permet selon la réalisation de la présente invention, de communiquer avec une carte CL. The I / O port 151 allows, according to the embodiment of the present invention, to communicate with a CL card.

En référence à la figure 5, la carte électronique CL 60 est construite autour d'un microcontrôleur 400 intégrant sur une même pastille de silicium un processeur CPU 405 relié par un bus interne 406 à un module de mémoires Flash 401, un module de mémoires OTP EPROM 407, un module de mémoires DRAM 404, un Port Série E/S RS232 403, un contrôleur de
CompactFlash 402 de la société SanDisk.
With reference to FIG. 5, the electronic card CL 60 is constructed around a microcontroller 400 integrating on the same silicon wafer a processor CPU 405 connected by an internal bus 406 to a Flash memory module 401, an OTP memory module EPROM 407, a DRAM 404 memory module, a RS232 403 Serial I / O Port, a
CompactFlash 402 from SanDisk.

Selon une variante non illustrée, le microcontrôleur intègre sur une même surface de pastille de silicium un coprocesseur de cryptage DES pour permettre au CPU d'effectuer des opérations de cryptage plus rapidement. According to a variant not illustrated, the microcontroller integrates on the same silicon wafer surface a DES encryption coprocessor to allow the CPU to perform encryption operations more quickly.

Selon la réalisation de la présente invention, les accès en lecture dans le module de mémoires
OTPEPROM directement de l'extérieur du microcontrôleur 400 sont supprimés, afin de laisser tous les accès aux circuits internes du microcontrôleur 400 sous le contrôle unique du processeur CPU 405. La présente invention ne requiert pas l'utilisation d'une grande puissance de calcul au niveau du processeur CPU 405 intégré dans le microcontrôleur 400.
According to the embodiment of the present invention, the read accesses in the memory module
OTPEPROM directly from outside the microcontroller 400 are removed, in order to leave all access to the internal circuits of the microcontroller 400 under the sole control of the processor CPU 405. The present invention does not require the use of great computing power at level of processor CPU 405 integrated in microcontroller 400.

Ce microcontrôleur 400 comporte un moyen de sécuriser la lecture et/ou la modification illicite des informations qui sont contenues dans sa mémoire interne. Une méthode de sécurisation des accès en mémoires est proposée dans le brevet U.S. Pat. 5,293,424 daté du 8 mars 1994. This microcontroller 400 includes a means of securing the illicit reading and / or modification of the information which is contained in its internal memory. A method for securing access to memories is proposed in the U.S. Pat. 5,293,424 dated March 8, 1994.

Selon la présente invention, la mémoire OTP EPROM interne 407 sert à stocker des clés de cryptage, des numéros de série d'identification, des dates, le système d'exploitation du microcontrôleur 400 réalisant directement et/ou indirectement des fonctions relatives à son utilisation selon la présente invention. According to the present invention, the internal OTP EPROM memory 407 is used to store encryption keys, identification serial numbers, dates, the operating system of the microcontroller 400 performing directly and / or indirectly functions relating to its use. according to the present invention.

Selon la réalisation de la présente invention, la mémoire FLASH interne 401 sert à stocker de manière permanente des données supplémentaires après la sortie d'usine de la carte CL. Elle sert aussi à stocker des programmes supplémentaires qui permettent au microcontrôleur 400 de réaliser directement et/ou indirectement des fonctions supplémentaires relatives à son utilisation selon la présente invention après la sortie d'usine de la carte CL. According to the embodiment of the present invention, the internal FLASH memory 401 is used to permanently store additional data after the CL card leaves the factory. It also serves to store additional programs which allow the microcontroller 400 to directly and / or indirectly perform additional functions relating to its use according to the present invention after leaving the CL card from the factory.

Selon la réalisation de la présente invention, et de manière générale, la carte CL est alimentée électriquement par LCL lorsqu'elle est connectée à LCL. Cette liaison électrique n'est pas illustrée. According to the embodiment of the present invention, and in general, the CL card is electrically powered by LCL when it is connected to LCL. This electrical connection is not illustrated.

Selon la présente invention, le microcontrôleur 400 est protégé contre toute modification des informations qu'il contient. Il s'agit d'un microcontrôleur similaire à ceux des cartes à puces. Il est relié à un connecteur femelle 63 qui permet de communiquer par contact avec un lecteur LCL donné. According to the present invention, the microcontroller 400 is protected against any modification of the information that it contains. It is a microcontroller similar to that of smart cards. It is connected to a female connector 63 which makes it possible to communicate by contact with a given LCL reader.

Selon la présente invention, la carte CL est un appareil portatif de petite taille possédant une unité de stockage amovible de forte capacité. According to the present invention, the CL card is a small portable device having a removable storage unit of high capacity.

Selon la réalisation de la présente invention, le microcontrôleur 400 est relié à la sortie de son contrôleur de CompactFlash à un support de connexion 64 pour modules de mémoires de type
CompactFlash.
According to the embodiment of the present invention, the microcontroller 400 is connected to the output of its CompactFlash controller to a connection support 64 for memory modules of the type
CompactFlash.

Selon des modes particuliers de réalisation, le contrôleur de CompactFlash peut ne pas être intégré sur la même pastille de silicium que le microcontrôleur 400. Il peut aussi utiliser un autre média d'enregistrement telle que des modules DiskOnChip de la société M-Systems ou tout autre système propriétaire et amovible de mémoires non volatiles. According to particular embodiments, the CompactFlash controller may not be integrated on the same silicon wafer as the microcontroller 400. It can also use another recording medium such as DiskOnChip modules from the company M-Systems or any another proprietary and removable system of non-volatile memories.

Dans l'état actuel de l'art, des microcontrôleurs possédant les caractéristiques du microcontrôleur 400 sont très nombreux. Selon la réalisation de la présente invention, un microcontrôleur 32 bits RISC présentant les caractéristiques du microcontrôleur 400 à été intégré sur une même pastille de silicium avec le contrôleur de carte CompactFlash. Cette intégration utilise les technologies d'intégrations ASIC (Application Specific Integrated Circuit). In the current state of the art, microcontrollers having the characteristics of microcontroller 400 are very numerous. According to the embodiment of the present invention, a 32-bit RISC microcontroller having the characteristics of the microcontroller 400 has been integrated on the same silicon wafer with the CompactFlash card controller. This integration uses ASIC (Application Specific Integrated Circuit) integration technologies.

Ainsi, I'intégralité des informations qui sont stockées dans la mémoire interne du microcontrôleur 400 est sécurisée contre toutes tentatives de contrôles électroniques externes. Thus, all of the information which is stored in the internal memory of the microcontroller 400 is secured against any attempts at external electronic checks.

Selon la présente invention, la carte CL est un appareil portatif de petite taille. II permet de transporter les informations concern la programmation des appareils de type LCL et CL sont des clés de 128 bits définies par rapport à l'algorithme DES. Ainsi, compte tenu de la présente description de l'invention, un module de mémoires OTP EPROM de 256 kilooctets, un module de mémoires Flash de 64 kilooctets, un module de mémoire DRAM de 512 kilooctets ont été intégré avec le CPU 405 (processeur RISC), le Port Série E/S RS232 403 et le contrôleur de carte CompactFlash sur une même pastille de silicium. Bien entendu, d'autres tailles plus grandes de mémoires peuvent être utilisées en fonction des disponibilités des macros d'intégration ASIC et de leur coût. Ces quantités sont données par rapport à la présente réalisation. According to the present invention, the CL card is a small portable device. It makes it possible to transport the information relating to the programming of devices of the LCL type and CL are 128-bit keys defined with respect to the DES algorithm. Thus, given the present description of the invention, an OTP EPROM memory module of 256 kilobytes, a Flash memory module of 64 kilobytes, a DRAM memory module of 512 kilobytes have been integrated with the CPU 405 (RISC processor) ), the RS232 403 I / O Serial Port and the CompactFlash card controller on the same silicon wafer. Of course, other larger sizes of memories can be used depending on the availability of the ASIC integration macros and their cost. These quantities are given relative to the present embodiment.

Par ailleurs, selon la réalisation de la présente invention, la taille retenue pour le module de mémoire Flash 111, est de I mégaoctets. La taille retenue pour le module de mémoire DRAM 109, est de 2 mégaoctets. La taille retenue pour le module de mémoire DRAM 110 est de I mégaoctet. Furthermore, according to the embodiment of the present invention, the size adopted for the Flash memory module 111, is I megabytes. The size used for the DRAM 109 memory module is 2 megabytes. The size used for the DRAM 110 memory module is I megabyte.

Ces quantités sont données par rapport à la présente réalisation.These quantities are given relative to the present embodiment.

L'ensemble des programmes relatifs aux fonctionnalités du lecteur LCL constitue le système d'exploitation interne du microcontrôleur 100. Ce système d'exploitation est enregistré dans la mémoire Flash 111 du microcontrôleur 100 lors de sa programmation en usine. All the programs relating to the functionalities of the LCL reader constitute the internal operating system of the microcontroller 100. This operating system is saved in the Flash memory 111 of the microcontroller 100 when it is programmed in the factory.

L'ensemble des programmes relatifs aux fonctionnalités de la carte CL constitue le système d'exploitation interne du microcontrôleur 400. Ce système d'exploitation est enregistré dans la mémoire OTP EPROM 407 du microcontrôleur 400 lors de sa programmation en usine. All of the programs relating to the functionalities of the CL card constitute the internal operating system of the microcontroller 400. This operating system is saved in the OTP EPROM memory 407 of the microcontroller 400 when it is programmed in the factory.

Selon la présente invention, les communications entre LCL et CL sont sécurisées. La présente invention concerne l'utilisation d'une méthode d'authentification permettant à un groupe d'appareils quelconques de se reconnaître à l'aide de cette méthode. Cette authentification permet que seuls les appareils relatifs à la présente invention, certifiés par l'organisme qui gère le serveur aSVR, puissent fonctionner ensemble. Cette méthode selon la présente invention, permet d'empêcher que des appareils non reconnus par l'organisme qui gère les appareils relatifs à la présente invention, ne puissent fonctionner avec ceux reconnus. Cette méthode empêche ainsi des appareils pirates d'effectuer des lectures de données dans les mémoires électroniques sécurisées des appareils relatifs à la présente invention. According to the present invention, communications between LCL and CL are secure. The present invention relates to the use of an authentication method allowing any group of devices to recognize each other using this method. This authentication allows that only the devices relating to the present invention, certified by the organization which manages the aSVR server, can operate together. This method according to the present invention makes it possible to prevent devices which are not recognized by the body which manages the devices relating to the present invention from being able to operate with those recognized. This method thus prevents pirate devices from carrying out data readings in the secure electronic memories of the devices relating to the present invention.

La présente invention concerne des appareils qui ne peuvent être utilisés que pendant une durée déterminer dans le temps. Pour la réalisation, les appareils LCL et CL sont tous caractérisés par une date DB de mise en service et une date DE qui indique que l'utilisation de ces appareils relatifs à la présente invention, expire fin DE. DB et DE constitue une information publique non modifiable. The present invention relates to apparatuses which can only be used for a determined period of time. For the realization, the LCL and CL apparatuses are all characterized by a date DB of commissioning and a date DE which indicates that the use of these apparatuses relating to the present invention, expires end DE. DB and DE constitutes non-modifiable public information.

Ainsi, selon la réalisation de la présente invention, la date DB du lecteur LCL, notée DB.d, est écrite lors de la programmation en usine du microcontrôleur 100, dans une zone libre de la mémoire Flash 111. De plus, la date DE d'un lecteur LCL, notée DE.d, est écrite lors de la programmation en usine du microcontrôleur 100, dans une zone libre de la mémoire Flash 111.  Thus, according to the embodiment of the present invention, the date DB of the LCL reader, denoted DB.d, is written during the factory programming of the microcontroller 100, in a free area of the Flash memory 111. In addition, the date DE of an LCL reader, denoted DE.d, is written during the factory programming of the microcontroller 100, in a free area of the Flash memory 111.

De plus, selon la réalisation de la présente invention, la date DB de CL, notée DB.c, est écrite lors de la programmation en usine du microcontrôleur 400, dans une zone libre de la mémoire
Flash 401. De plus, la date DE d'une carte CL, notée DE.c, est écrite lors de la programmation en usine du microcontrôleur 400, dans une zone libre de la mémoire OTPEPROM 407.
In addition, according to the embodiment of the present invention, the date DB of CL, denoted DB.c, is written during the factory programming of the microcontroller 400, in a free area of the memory.
Flash 401. In addition, the date DE of a CL card, noted DE.c, is written during the factory programming of the microcontroller 400, in a free area of the OTPEPROM 407 memory.

Ainsi, selon la réalisation de la présente invention, I'organisme qui gère aSVR génère pour chaque semaine du calendrier international qui commence le lundi et qui se termine fin dimanche une clé kLi. La clé kL1 est la première clé qui a été générée pour la première semaine où les premiers appareils relatifs à la présente invention, ont été mise en service. La clé kLi indique la clé de la semaine i par rapport à cette première semaine. Toutes ces clés sont entièrement créées et gardées secrètement par l'organisme qui gère le serveur aSVR afin de garantir la sécurité d'utilisation des appareils relatifs à la présente invention. Thus, according to the embodiment of the present invention, the organization which manages aSVR generates for each week of the international calendar which begins on Monday and which ends at the end of Sunday a key kLi. The key kL1 is the first key which has been generated for the first week in which the first devices relating to the present invention have been put into service. The key kLi indicates the key of week i with respect to this first week. All these keys are entirely created and kept secretly by the organization which manages the aSVR server in order to guarantee the security of use of the devices relating to the present invention.

Selon la réalisation de la présente invention, pour une carte CL considérée, lors de la procédure de programmation de son microcontrôleur 400, la clé secrète de codage kLj est écrite dans une zone libre de la mémoire OTPEPROM 407. Cette clé secrète kLj correspond à la semaine j par rapport à la première semaine où les premiers appareils relatifs à la présente invention, ont été mise en service. La clé kLj a été choisie de telle sorte que la semaine j contient la date DB de la mise en service de cette carte CL. Cette clé secrète ne sera jamais révélée à l'utilisateur. Par ailleurs, elle est connue uniquement par l'organisme qui gère le serveur aSVR. According to the embodiment of the present invention, for a CL card considered, during the programming procedure of its microcontroller 400, the secret coding key kLj is written in a free area of the OTPEPROM memory 407. This secret key kLj corresponds to the week d compared to the first week in which the first devices relating to the present invention were put into service. The key kLj has been chosen so that week d contains the date DB of the commissioning of this card CL. This secret key will never be revealed to the user. Furthermore, it is known only by the organization which manages the aSVR server.

De plus, selon la réalisation de la présente invention, pour un lecteur LCL considéré, lors de la procédure de programmation de son microcontrôleur 100, la liste de clés secrètes de codage (kLi+l,kLi+2,kLi+3,. ..,kLi+,) correspondant à toutes les clés associées aux semaines comprises entre la date DB.d diminuée de 1460 jours et la date DE.d, sont stockées dans la mémoire Flash 111 du microcontrôleur 100. Bien entendu, leurs adresses mémoires suivent une convention adoptée pour permettre de les retrouver dans la mémoire 111. Ces clés secrètes sont par ailleurs connues uniquement par l'organisme qui gère le serveur aSVR. Toutes ces clés secrètes qui viennent d'être citées, sont générées par rapport à l'algorithme de cryptage DES. Chacune de ces clés secrètes a une taille de 128 bits. In addition, according to the embodiment of the present invention, for an LCL reader considered, during the programming procedure of its microcontroller 100, the list of secret coding keys (kLi + 1, kLi + 2, kLi + 3,. ., kLi +,) corresponding to all the keys associated with the weeks between the date DB.d reduced by 1460 days and the date DE.d, are stored in the Flash memory 111 of the microcontroller 100. Of course, their memory addresses follow a convention adopted to allow them to be found in memory 111. These secret keys are also known only by the organization which manages the aSVR server. All these secret keys which have just been mentioned are generated in relation to the DES encryption algorithm. Each of these secret keys has a size of 128 bits.

Selon la réalisation de la présente invention, la durée qui sépare une date de mise en service
DB et une date de fin d'utilisation DE des appareils relatifs à la présente invention, est de 1461 jours (4 ans). Ainsi {kLs+l,kLs+2,kLs+3,...,kLs+m} n'occupe pas plus de 7 000 octets (approximation volontairement excessive) dans la mémoire Flash du microcontrôleur 100 d'un LCL donnée. La figure 4 permet de comprendre le choix du nombre de clés dans la liste {kLi+i,kL2,kLi*3 kL}.
According to the embodiment of the present invention, the duration which separates a date of commissioning
DB and an end date of use of the devices relating to the present invention, is 1461 days (4 years). Thus {kLs + l, kLs + 2, kLs + 3, ..., kLs + m} occupies no more than 7000 bytes (deliberately excessive approximation) in the Flash memory of the microcontroller 100 of a given LCL. FIG. 4 makes it possible to understand the choice of the number of keys in the list {kLi + i, kL2, kLi * 3 kL}.

Ce nombre est du à l'existence des appareils les plus anciens, encore en service à la date DB.d de mise en service du LCL considéré. Compte tenu de la capacité des mémoires Flash intégrées au sein d'un microcontrôleur 100, la totalité des clés {kLl+l,kL*+2,kLj+3,...,kLi+m} peut donc être stockée avec le système d'exploitation microcontrôleur 100.This number is due to the existence of the oldest devices, still in service on the date DB.d of commissioning of the LCL considered. Given the capacity of the Flash memories integrated within a microcontroller 100, all of the keys {kLl + l, kL * + 2, kLj + 3, ..., kLi + m} can therefore be stored with the system microcontroller operating system 100.

Ainsi, la réalisation de ladite procédure d'authentification est basée sur l'utilisation judicieuse de toutes ces clés. Le nombre de clés employées permet à ce que si une clé venait à être cassée, le fonctionnement lié à l'authentification par rapport à cette clé, ne mette pas en échec l'ensemble du système relatif à la présente invention.  Thus, the realization of said authentication procedure is based on the judicious use of all these keys. The number of keys used allows that if a key were to be broken, the operation linked to authentication with respect to this key, does not defeat the entire system relating to the present invention.

En référence à la figure 10, pour l'utilisation de LCL, dans un premier temps, un lecteur LCL ne peut fonctionner que si la date courante indiquée par l'horloge temps réel interne 104 du microcontrôleur 100 de LCL est comprise entre les dates DB.d et DE.d du même LCL. Autrement la suite ne peut aboutir 551. Cette condition est illustrée sur la figure 10 par l'élément 501
Dans un deuxième temps, en référence à l'étape 502, pour mettre en fonctionnement un lecteur LCL, l'utilisateur doit effectuer une opération d'identification détaillée par la suite.
With reference to FIG. 10, for the use of LCL, at first, an LCL reader can only operate if the current date indicated by the internal real time clock 104 of the LCL microcontroller 100 is between the dates DB .d and DE.d of the same LCL. Otherwise the sequence cannot succeed 551. This condition is illustrated in FIG. 10 by the element 501
Secondly, with reference to step 502, in order to put an LCL reader into operation, the user must carry out a detailed identification operation subsequently.

Dans un troisième temps, pour mettre en fonctionnement une carte CL, I'utilisateur doit connecter d'abord sa carte CL (étape 503) sur le support de type mâle de connexion 210 possédé par le lecteur LCL, pour permettre une communication par contact entre le lecteur LCL et la carte
CL. Le support de type mâle 210 du lecteur LCL est relié au port E/S RS232 151 du microcontrôleur 100. La carte CL possède donc un connecteur femelle 63 relié au port E/S RS232 403 de son microcontrôleur 400. L'utilisateur doit effectuer ensuite une opération d'identification décrite par la suite.
Thirdly, to put a CL card into operation, the user must first connect his CL card (step 503) to the male connection type support 210 owned by the LCL reader, to allow communication by contact between LCL reader and card
CL. The male type support 210 of the LCL reader is connected to the RS232 I / O port 151 of the microcontroller 100. The CL card therefore has a female connector 63 connected to the RS232 I / O port 403 of its microcontroller 400. The user must then perform an identification operation described below.

Selon la réalisation de la présente invention, dans un quatrième temps 504, le microcontrôleur 400 de la carte CL envoie sous une forme non codée sa date de mise en service DB.c au microcontrôleur du LCL via ladite liaison RS232. Si un pirate modifier la valeur DB.c transmise, la suite de la présente description ne pourra aboutir avec succès. According to the embodiment of the present invention, in a fourth step 504, the microcontroller 400 of the card CL sends in an unencrypted form its date of commissioning DB.c to the microcontroller of the LCL via said RS232 link. If a hacker modifies the transmitted DB.c value, the rest of this description cannot be successful.

De l'autre côté et après réception de DB.c, dans un cinquième temps 505, le processeur CPUI du microcontrôleur 100 de LCL effectue une correspondance entre DB.c et une clé secrète notée kLj.d éléments de la liste {kLhl,kL*+2,kL*+3,...,kLs+m} de telle sorte que la semaine j associée à kLj .d selon la présente invention contienne DB.c. On the other side and after reception of DB.c, in a fifth step 505, the processor CPUI of the microcontroller 100 of LCL carries out a correspondence between DB.c and a secret key noted kLj.d elements of the list {kLhl, kL * + 2, kL * + 3, ..., kLs + m} so that the week j associated with kLj .d according to the present invention contains DB.c.

Dans un sixième temps 506, le processeur CPUI génère une clé kCS de 128 bits par rapport au cryptage DES, à l'aide de son générateur de nombres aléatoires 112. kCS est conservées secrètement dans la mémoire interne DRAM 109 du microcontrôleur 100. In a sixth step 506, the processor CPUI generates a 128-bit kCS key with respect to the DES encryption, using its random number generator 112. kCS is secretly stored in the internal DRAM memory 109 of the microcontroller 100.

Selon la présente invention, kCS est codée ensuite par kLj.d puis envoyée sous sa forme codée, notée ekCS, vers le microcontrôleur de CL. According to the present invention, kCS is then coded by kLj.d then sent in its coded form, denoted ekCS, to the microcontroller of CL.

Dans un septième temps 507, à réception de ekCS, la carte CL tente de décoder ekCS avec sa clé secrète kLj. Selon la présente invention, si le décodage réussit, ladite procédure d'authentification a réussi. Le microcontrôleur de CL utilisera alors la clé kCS pour envoyée des informations codées vers LCL, et pour décodée des informations venant par la suite de LCL. Le microcontrôleur 400 de la carte CL stocke dans sa mémoire interne sécurisée DRAM 404 cette clé secrète kCS. In a seventh step 507, on reception of ekCS, the card CL attempts to decode ekCS with its secret key kLj. According to the present invention, if the decoding succeeds, said authentication procedure has succeeded. The microcontroller of CL will then use the key kCS to send coded information to LCL, and to decode information coming afterwards from LCL. The microcontroller 400 of the card CL stores in its secure internal memory DRAM 404 this secret key kCS.

Ainsi, selon la réalisation de la présente invention, dans un huitième temps 508, le microcontrôleur de CL envoie ensuite la date d'expiration DE.c associée à CL sous une forme codée par la clé kCS vers le microcontrôleur du lecteur LCL. Thus, according to the embodiment of the present invention, in an eighth step 508, the microcontroller of CL then sends the expiration date DE.c associated with CL in a form coded by the key kCS to the microcontroller of the LCL reader.

A réception, dans un neuvième temps 509, CPU1 vérifie si DE.c n'est pas dépassé par rapport à la date courante donnée par l'horloge interne du microcontrôleur 100 de LCL. Si cette date est dépassée, LCL refusera de poursuivre la communication avec la carte CL 552. Sinon, une communication sécurisée entre LCL et CL peut avoir lieu 559. On reception, in a ninth time 509, CPU1 checks whether DE.c is not exceeded with respect to the current date given by the internal clock of the microcontroller 100 of LCL. If this date is passed, LCL will refuse to continue communication with the CL 552 card. Otherwise, secure communication between LCL and CL can take place 559.

Ainsi, chaque session de communication entre LCL et CL qui commence par leur connexion par contact et qui se termine lorsque l'une des conditions suivantes est remplie : CL est déconnecté de LCL, la date courante indiquée par l'horloge 104 a dépassé la date DE.c, la date courante indiquée par l'horloge 104 a dépassé la date DE.d. La déconnexion de la carte CL du lecteur LCL est marquée par l'absence de charge à la sortie de l'alimentation électrique utilisée pour alimenter les circuits électroniques de la carte CL. Thus, each communication session between LCL and CL which begins with their contact connection and which ends when one of the following conditions is met: CL is disconnected from LCL, the current date indicated by the clock 104 has exceeded the date DE.c, the current date indicated by the clock 104 has exceeded the date DE.d. The disconnection of the CL card from the LCL reader is marked by the absence of load at the output of the power supply used to supply the electronic circuits of the CL card.

De plus, selon la présente invention, toutes les communications entre le lecteur LCL et la carte
CL sont sécurisées par l'utilisation d'une méthode de cryptage symétrique utilisant une clé secrète, notée kCS.
In addition, according to the present invention, all communications between the LCL reader and the card
CL are secured by the use of a symmetric encryption method using a secret key, noted kCS.

Selon la réalisation de la présente invention, I'utilisateur qui désire faire fonctionner un appareil relatif à la présente invention, doit saisir sur le clavier de son lecteur LCL contrôlé par le microcontrôleur 100 par l'intermédiaire du contrôleur de claviers et écrans LCD 155, un code PIN. According to the embodiment of the present invention, the user who wishes to operate an apparatus relating to the present invention, must enter on the keyboard of his LCL reader controlled by the microcontroller 100 via the controller of keyboards and LCD screens 155, a PIN code.

Au moment de sa saisie, les chiffres tapés seront inscrits sur l'écran LCD non illustré et contrôlé par le contrôleur 155. Ce code lui a été fourni lors de la première acquisition (l'achat) de l'appareil en question. Le code PIN est un code numérique de 5 chiffres associé à chaque appareil. Il doit être conservé secrètement par le propriétaire de l'appareil correspondant. L'utilisation d'un tel code est similaire à celui utilisé avec des méthodes d'identification présente dans le monde des cartes à puces (SmartCard) dans l'état actuel de l'art. Les étapes qui permettent de vérifier la saisie correcte du code PIN associé à chaque appareil selon la présente invention, sont évidente et ne sont pas détaillée dans la présente description de l'invention. II faut toutefois ajouter que le code PIN d'une carte CL est saisi sur le clavier du LCL, puis transmis sous sa forme non codée, vers le microcontrôleur 400 de la carte CL, via la liaison série RS232 présente entre une carte CL donnée et un lecteur LCL donnée. Il est donc sousentendu, sauf mention contraire, dans un fonctionnent correct d'un appareil relatif à la présente invention, que la saisie du code PIN a été menée avec succès.At the time of its entry, the numbers typed will be entered on the LCD screen, not illustrated and controlled by the controller 155. This code was supplied to it when the device in question was first purchased (purchased). The PIN code is a 5-digit numeric code associated with each device. It must be kept secret by the owner of the corresponding device. The use of such a code is similar to that used with identification methods present in the world of smart cards in the current state of the art. The steps which make it possible to verify the correct entry of the PIN code associated with each device according to the present invention are obvious and are not detailed in the present description of the invention. It should however be added that the PIN code of a CL card is entered on the LCL keyboard, then transmitted in its uncoded form, to the microcontroller 400 of the CL card, via the RS232 serial link present between a given CL card and a given LCL reader. It is therefore understood, unless otherwise stated, in the correct functioning of an apparatus relating to the present invention, that the entry of the PIN code has been carried out successfully.

La présente invention concerne l'utilisation d'une carte CL comme média d'enregistrement portatif, sécurisé contenant des fichiers d'autorisation d'utilisation de tous les logiciels protégés selon la présente invention, et acquis légalement par l'utilisateur et séparément de l'acquisition du logiciel (le média d'enregistrement). Ces fichiers ont été enregistrés dans la carte CL en suivant une procédure d'acquisition de logiciels décrite par la suite. The present invention relates to the use of a CL card as a portable, secure recording medium containing authorization files for the use of all the software protected according to the present invention, and acquired legally by the user and separately from the acquisition of the software (the recording medium). These files were recorded in the CL card by following a software acquisition procedure described below.

Selon la réalisation de la présente invention, un fichier d'autorisations d'utilisation d'un logiciel donné ayant le numéro de série S#, noté Fich.S#, est défini comme un fichier binaire dont les bits de données sont ordonnés de la façon suivante : S# du logiciel (128 bits), lD.c (128 bits), nombre de licences (L#.S#: 16 bits), dernière utilisation (DR.S#: Jour 5 bits, mois 4 bits, année 12 bits, heure 5 bits, minutes 6 bits, secondes 6 bits), première utilisation (DP.S# : date et heure 38 bits), durée d'utilisation courant (DU.S# en minutes : 24 bits), nombre d'exécutions du logiciel (28 bits), données diverses (Misc :1024 bits), clé kEL.S (128 bits), clé kX.S# (128 bits). Le total est de 1680 bits, soit un fichier de 210 octets. According to the embodiment of the present invention, a file for authorizations to use a given software having the serial number S #, denoted Fich.S #, is defined as a binary file whose data bits are ordered from the as follows: S # of software (128 bits), lD.c (128 bits), number of licenses (L # .S #: 16 bits), last use (DR.S #: Day 5 bits, month 4 bits, 12-bit year, 5-bit hour, 6-bit minutes, 6-bit seconds), first use (DP.S #: 38-bit date and time), current usage time (DU.S # in minutes: 24 bits), number software execution (28 bits), miscellaneous data (Misc: 1024 bits), kEL.S key (128 bits), kX.S # key (128 bits). The total is 1680 bits, a 210 byte file.

Selon la réalisation de la présente invention, une carte de type CompactFlash 61 distribuée par la société SanDisk d'une capacité de stockage de 4 mégaoctets est insérée comme indiqué sur la figure 7 sur un support de connexion 64 adapté et présent sur la carte CL, pour permettre la connexion de cette carte CompactFlash vers le contrôleur de cartes CompactFlash 402 du microcontrôleur 400. Les cartes CompactFlash sont compatibles avec le standard ATA des cartes
PCMCIA dans l'état actuel de l'art. Ces modules de mémoires CompactFlash sont utilisés comme des disques de stockage d'informations. Les instructions nécessaires concernant l'écriture du driver qui permet au microcontrôleur 400 d'utiliser le module CompactFlash de 4 mégaoctets sont donnée par le standard ATA. Ce driver non illustré, permet selon la réalisation de la présente invention, au microcontrôleur d'effectuer les opérations suivantes sur la carte CompactFlash : lectures de fichiers, modifications de fichiers, créations de fichiers.
According to the embodiment of the present invention, a CompactFlash 61 type card distributed by the company SanDisk with a storage capacity of 4 megabytes is inserted as indicated in FIG. 7 on a suitable connection support 64 present on the CL card, to allow the connection of this CompactFlash card to the CompactFlash 402 card controller of the microcontroller 400. The CompactFlash cards are compatible with the ATA standard of cards
PCMCIA in the current state of the art. These CompactFlash memory modules are used as information storage disks. The necessary instructions concerning the writing of the driver which allows the microcontroller 400 to use the CompactFlash module of 4 megabytes are given by the ATA standard. This driver, not illustrated, allows, according to the embodiment of the present invention, the microcontroller to perform the following operations on the CompactFlash card: file readings, file modifications, file creation.

Ainsi, selon la réalisation de la présente invention, la carte CL permet de stocker plus de 10000 fichiers d'autorisations d'utilisation de logiciels protégés selon la présente invention. Ce nombre est largement suffisant pour tous les logiciels protégés par la présente invention, qu'un utilisateur peut acquérir légalement. Toutefois, l'utilisateur pourra changer de cartes CompactFlash pour une plus grande capacité de stockage. Compte tenu de la norme ATA, ce changement ne nécessite ni de mise à jour des programmes système du microcontrôleur 400, ni de changement du boîtier 60 et du support pour carte CompactFlash 64. Thus, according to the embodiment of the present invention, the CL card makes it possible to store more than 10,000 authorization files for the use of protected software according to the present invention. This number is more than sufficient for all the software protected by the present invention, which a user can acquire legally. However, the user can change CompactFlash cards for more storage capacity. Given the ATA standard, this change does not require updating the system programs of the microcontroller 400, nor changing the case 60 and the support for the CompactFlash 64 card.

Selon la présente invention, les informations stockées sur la carte CL, concernant les autorisations d'utilisation de logiciels protégés selon la présente invention, ne dépendent pas du média d'enregistrement mais de l'entité carte électronique CL. Ainsi, un utilisateur d'une carte CL pourra utiliser plusieurs cartes CompactFlash pour stocker des fichiers de type Fich.S#. Les données qui sont stockées sur une première carte CompactFlash associée à une carte CL donnée peuvent être transférées vers une deuxième carte CompactFlash. Cette opération est effectuée à l'aide du programme PGM précédemment cité. According to the present invention, the information stored on the CL card, concerning the authorizations to use software protected according to the present invention, does not depend on the recording medium but on the electronic card entity CL. Thus, a user of a CL card will be able to use several CompactFlash cards to store files of the Fich.S # type. Data that is stored on a first CompactFlash card associated with a given CL card can be transferred to a second CompactFlash card. This is done using the aforementioned PGM program.

Selon la présente invention, les fichiers d'autorisations Fich.S# sont stockés sous une forme codée, notées eFich.S#, avec une clé secrète kS.c de 128 bits par rapport à la technique de cryptage
DES, dans la carte CompactFlash utilisée comme un disque de stockage. La clé secrète kS.c a été inscrite dans la mémoire OTPEPROM 407 lors de la programmation en usine du microcontrôleur 400.
According to the present invention, the Fich.S # authorization files are stored in an encoded form, denoted eFich.S #, with a 128-bit kS.c secret key compared to the encryption technique.
DES, in the CompactFlash card used as a storage disk. The secret key kS.ca was written in the memory OTPEPROM 407 during the factory programming of the microcontroller 400.

Ainsi, eFich.S# ne pourra être utilisé que par la carte CL qui l'a créé, car la clé secrète kS.c est différente pour chaque carte CL mise en service. Thus, eFich.S # can only be used by the CL card which created it, because the secret key kS.c is different for each CL card put into service.

De plus, la présente invention concerne une méthode qui permet de séparer l'acquisition du média d'enregistrement contenant un ou des logiciel(s) protégé(s) par la présente invention, du droit d'utilisation de ce ou ces logiciel(s). In addition, the present invention relates to a method which makes it possible to separate the acquisition of the recording medium containing one or more software (s) protected by the present invention, from the right to use this or these software (s) ).

Selon la réalisation de la présente invention, les médias d'enregistrement de logiciels protégés selon la présente invention, sont librement distribués. Cependant, un logiciel protégé selon la présente invention, ne peut être exécuté uniquement qu'après une opération d'acquisition légale d'un fichier Fich.S# d'autorisation d'utilisation de ce logiciel numéroté S#. Ainsi, en référence à la figure 2, lorsqu'un utilisateur désire obtenir une ou des licences d'utilisation, il doit connecter tout d'abord son lecteur LCL avec le serveur aSVR, à l'aide du programme PGM. Selon la réalisation de la présente invention, cette connexion est établie via le réseau Internet. According to the embodiment of the present invention, the recording media of software protected according to the present invention are freely distributed. However, software protected according to the present invention can only be executed after a legal acquisition operation of a Fich.S # file authorizing the use of this software numbered S #. Thus, with reference to FIG. 2, when a user wishes to obtain one or more user licenses, he must first connect his LCL reader with the aSVR server, using the PGM program. According to the embodiment of the present invention, this connection is established via the Internet.

Pour commencer à acquérir une autorisation (une ou des licence(s)) d'utilisations d'un logiciel numéroté S et protégés selon la présente invention, l'utilisateur commence par connecter sa carte
CL sur ledit lecteur LCL donné. L'utilisateur doit maintenir sa carte CL connectée au moins jusqu'à la fin de la présente procédure d'achat en ligne (avec connexion). On suppose que l'utilisateur veut acquérir NL nombre(s) de licences d'utilisation de ce logiciel numéroté S#. Il saisit ensuite le code PIN de sa carte CL sur le clavier dudit lecteur LCL. L'opération d'authentification précédemment citée doit aboutir avec succès pour continuer.
To start acquiring an authorization (one or more license (s)) to use software numbered S and protected according to the present invention, the user begins by connecting his card
CL on said given LCL reader. The user must keep his CL card connected at least until the end of this online purchasing procedure (with connection). It is assumed that the user wants to acquire NL number (s) of licenses to use this software numbered S #. He then enters the PIN code of his CL card on the keyboard of the LCL reader. The above-mentioned authentication operation must be successful to continue.

Ainsi, en référence à la figure 11, selon la réalisation de la présente invention, au début de la connexion avec aSVR, ledit lecteur LCL communique à aSVR son numéro ID.d (étape 601). Dans ce contexte de communication, aSVR est le système distant représenté sur la figure 2. Bien sûre, les opérations commerciales qui sous-entend que aSVR accepte une communication avec ledit lecteur
LCL sont sous-entendues. Le programme PGM envoie ensuite vers aSVR le numéro de série S dudit logiciel, saisie par l'utilisateur (acheteur), et le nombre NL. Ces deux informations sont envoyées sous une forme codée par la clé secrète kT.d du lecteur LCL de l'utilisateur.
Thus, with reference to FIG. 11, according to the embodiment of the present invention, at the start of the connection with aSVR, said LCL reader communicates to aSVR its ID.d number (step 601). In this communication context, aSVR is the remote system represented in FIG. 2. Of course, commercial operations which implies that aSVR accepts communication with said reader
LCL are implied. The PGM program then sends to aSVR the serial number S of said software, entered by the user (buyer), and the number NL. These two pieces of information are sent in a form encoded by the secret key kT.d of the user's LCL reader.

De plus, la réalisation de la présente invention considère que le concepteur dudit logiciel au numéro de série S dispose lui aussi d'un serveur noté dSVR, non illustré et relié par le réseau
Internet à aSVR. Le serveur dSVR est connecté de son côté avec le lecteur LCL dudit concepteur.
In addition, the embodiment of the present invention considers that the designer of said software with serial number S also has a server noted dSVR, not illustrated and connected by the network.
Internet at aSVR. The dSVR server is connected in turn with the LCL reader of the designer.

Bien entendu, cela suppose que le système d'exploitation d'un lecteur LCL soit programmé de telle sorte qu'il puisse répondre à certaine requête relative à la présente procédure d'achat du serveur dSVR. Ainsi (étape 602), dSVR communique ensuite à aSVR le numéro ID.d de son lecteur LCL qui a servi à créer le logiciel S# protégé selon la présente invention. La communication entre dSVR et le lecteur LCL se passe comme sur la figure 2 où l'ordinateur 50 est représenté ici par le serveur dSVR.Of course, this supposes that the operating system of an LCL reader is programmed so that it can respond to certain requests relating to this procedure for purchasing the dSVR server. Thus (step 602), dSVR then communicates to aSVR the number ID.d of its reader LCL which was used to create the software S # protected according to the present invention. The communication between dSVR and the LCL reader takes place as in FIG. 2 where the computer 50 is represented here by the dSVR server.

Pour permettre une communication sur deux niveaux, le lecteur LCL de l'utilisateur communique à aSVR (étape 603) sous une forme codée une clé publique, notée kP. La clé kP est codée avec la clé secrète kT.d du LCL de l'utilisateur. kP est une clé publique, relative à la technique de cryptage RSA (Rivest, Shamir et Adleman). La clé kP est créée avec sa clé privée kV pour l'occasion (dynamiquement) et effacée à la fin de cette procédure d'acquisition de licences. To allow communication on two levels, the user's LCL reader communicates to aSVR (step 603) in an encoded form a public key, denoted kP. The key kP is coded with the secret key kT.d of the user's LCL. kP is a public key, relating to the RSA encryption technique (Rivest, Shamir and Adleman). The kP key is created with its private kV key for the occasion (dynamically) and erased at the end of this license acquisition procedure.

La forme codée par ladite clé kT.d de kP est notée ekP.kT. De plus, il faut noter que aSVR ne connaît pas la valeur de la clé privée kV associée à kP. Le codage systématique des informations lors de la communication évite d'éventuelles modifications des données échangées lors de leur transfert.The form coded by said kT.d key of kP is denoted ekP.kT. In addition, it should be noted that aSVR does not know the value of the private key kV associated with kP. The systematic coding of information during communication avoids possible modifications of the data exchanged during their transfer.

A réception, aSVR décode ekP.kT à l'aide des informations qu'il possède concernant le lecteur LCL de l'utilisateur. Selon la réalisation de la présente invention, aSVR est seul en dehors de ce lecteur LCL, à connaître la correspondance du numéro ID.d avec la clé kT.d par rapport à un lecteur LCL donné. La clé kP est ensuite codée avec la clé secrète kT.d relative au lecteur LCL du concepteur du logiciel S# protégé selon la présente invention. La nouvelle forme codée de kP est notée ekP.kT2. Ensuite, aSVR communique ekP.kT2 604 au lecteur LCL du concepteur via le serveur dSVR. De cette manière, I'utilisation des techniques de protection de logiciels selon la présente invention, crée une dépendance entre le concepteur de logiciels protégés selon la présente invention, et l'organisme qui gère aSVR. Ainsi, Le concepteur de logiciel n'a pas à constituer des stocks autre qu'un stock de médias d'enregistrement contenant le logiciel protégé selon la présente invention. On receipt, aSVR decodes ekP.kT using the information it has about the user's LCL reader. According to the embodiment of the present invention, aSVR is the only one outside this LCL reader, to know the correspondence of the number ID.d with the key kT.d relative to a given LCL reader. The key kP is then coded with the secret key kT.d relating to the LCL reader of the software designer S # protected according to the present invention. The new coded form of kP is denoted ekP.kT2. ASVR then communicates ekP.kT2 604 to the designer's LCL reader via the dSVR server. In this way, the use of software protection techniques according to the present invention creates a dependency between the designer of software protected according to the present invention, and the organization which manages aSVR. Thus, the software designer does not have to constitute stocks other than a stock of recording media containing the software protected according to the present invention.

A réception, le lecteur LCL dudit concepteur décode ekP.kT2 avec sa clé kT.d. Avec la clé public kP, LCL relatif au concepteur code ensuite kEL.S# généré lors de la procédure de création du logiciel S# protégé selon la présente invention avec la clé kP. La forme codée de kEL.S# par kP est notée ekEL. Selon des variantes non illustrées, après avoir décodé ekP.kT2, ledit peut communiquer kP au serveur dSVR afin de lui laisser le codage de la clé kEL.S# par la clé kP. Mais ces variantes ne changent en rien quant au principe fondamentale de la présente invention. On receipt, the LCL reader of said designer decodes ekP.kT2 with its key kT.d. With the public key kP, LCL relating to the designer then codes kEL.S # generated during the procedure for creating the software S # protected according to the present invention with the kP key. The coded form of kEL.S # by kP is denoted ekEL. According to variants not illustrated, after decoding ekP.kT2, said module can communicate kP to the dSVR server in order to let it codify the key kEL.S # with the key kP. However, these variants do not change anything with regard to the fundamental principle of the present invention.

Selon la réalisation de la présente invention, dSVR reçoit ensuite de aSVR la valeur de NL. According to the embodiment of the present invention, dSVR then receives the value of NL from aSVR.

NL permet au concepteur de logiciels protégés selon la présente invention, d'effectuer une comptabilité avec l'organisme qui gère aSVR. Selon une variante de la présente procédure d'acquisition d'autorisation d'utilisations, dSVR envoie après réception de la clé kP, une clé public kPUB relatif au cryptage RSA vers le LCL de l'utilisateur (acheteur) via aSVR. Cette variante permet au programme PGM connecté avec le lecteur LCL de l'utilisateur, de retourner à dSVR par l'intermédiaire de aSVR, la valeur codée avec kPUB de NL. Cette variante permet à ce que dSVR ne se fie pas à la bonne sincérité de aSVR. Ainsi, cette variante permet à dSVR de contrôler exactement le nombre de licences vendues.NL allows the designer of protected software according to the present invention to carry out accounting with the organization which manages aSVR. According to a variant of this procedure for acquiring authorization for uses, dSVR sends, after receipt of the kP key, a public key kPUB relating to RSA encryption to the LCL of the user (buyer) via aSVR. This variant allows the PGM program connected with the user's LCL reader to return to dSVR via aSVR, the value coded with kPUB from NL. This variant allows dSVR not to trust the good sincerity of aSVR. Thus, this variant allows dSVR to control exactly the number of licenses sold.

Selon la réalisation de la présente invention, dSVR envoie ensuite (étape 605) ekEL à aSVR. According to the embodiment of the present invention, dSVR then sends (step 605) ekEL to aSVR.

Ce serveur aSVR envoie ensuite (étape 606) kX.S# sous une forme codée avec la clé kT.d (celui du lecteur LCL de l'utilisateur) vers le lecteur LCL de l'utilisateur. La clé kX.S# est une clé créée et stockée par aSVR lors de la procédure de protection précédemment décrite du logiciel LD numéroté S#. Le serveur aSVR envoie ensuite vers le lecteur LCL de l'utilisateur, eKEL. A réception, le lecteur LCL de l'utilisateur décode eKEL par kV. Il obtient donc kEL.S#. Ce lecteur
LCL décode aussi la forme codée de kX.S# par sa clé kT.d.
This aSVR server then sends (step 606) kX.S # in a form coded with the key kT.d (that of the user's LCL reader) to the user's LCL reader. The kX.S # key is a key created and stored by aSVR during the previously described protection procedure of the LD software numbered S #. The aSVR server then sends the user's LCL reader, eKEL. On reception, the user's LCL reader decodes eKEL by kV. It therefore obtains kEL.S #. This reader
LCL also decodes the coded form of kX.S # by its key kT.d.

Selon la réalisation de la présente invention, ledit lecteur LCL envoie ensuite à ladite carte CL, sous une forme codée avec la clé kCS obtenue lors de la procédure d'authentification précédemment décrite, les données suivantes: S#, NL qui correspond au nombre de licences demandées par l'utilisateur à aSVR, kX.S#, kEL.S#, la date et l'heure courantes indiquées par l'horloge 104. According to the embodiment of the present invention, said LCL reader then sends to said card CL, in a form coded with the key kCS obtained during the authentication procedure described above, the following data: S #, NL which corresponds to the number of licenses requested by the user from aSVR, kX.S #, kEL.S #, the current date and time indicated by the clock 104.

Ainsi, le microcontrôleur 400 de la carte CL décode les différentes données reçues avec kCS.  Thus, the microcontroller 400 of the card CL decodes the various data received with kCS.

Le microcontroleur 400 procède alors à la procédure (étape 607) de mise à jour qui suit. Le microcontrôleur 400 vérifie si un fichier codé eFich.S# d'autorisation d'utilisation existe déjà pour le logiciel en question numéroté S#. Dans ce cas, il procède à sa modification en augmentant la valeur du champ L#.S# dans le fichier Fich.S# correspondant, de la valeur de NL. Dans le cas où l'utilisateur aurait acquis une autorisation dépendante du temps, bien entendu des mises à jour sur les champs correspondants sont effectuées dans le fichier Fich.S#. Pour la compréhension de la présente invention, certain point évident sont sous-entendu.The microcontroller 400 then proceeds to the updating procedure (step 607) which follows. The microcontroller 400 checks whether an encoded file eFich.S # of authorization for use already exists for the software in question numbered S #. In this case, it proceeds to its modification by increasing the value of the L # .S # field in the corresponding Fich.S # file, by the value of NL. In the event that the user has acquired a time-dependent authorization, of course updates on the corresponding fields are made in the file Fich.S #. For the understanding of the present invention, certain obvious points are implied.

S'il n'existe pas de fichier Fich.S# correspondant, un nouveau fichier Fich.S# est créé. Ainsi, selon la réalisation de la présente invention, le microcontrôleur 400 de la carte CL crée le fichier
Fich.S# en remplissant les champs suivants du nouveau fichier: S#, L#.S#, lD.c numéro de série de la carte CL en question, kEL.S#, kX.S#. Les valeurs de DR.S# et de DP.S# sont initialisées par la valeur de l'heure et de la date courante. Les champs DU.S# et nombre d'exécutions du logiciel prennent évidemment la valeur nulle. Le champ Misc sert à stocker des valeurs liées à des besoins éventuels de définir des champs d'informations supplémentaires. Misc est initialement à zéro.
If there is no corresponding Fich.S # file, a new Fich.S # file is created. Thus, according to the embodiment of the present invention, the microcontroller 400 of the card CL creates the file
Fich.S # by filling in the following fields of the new file: S #, L # .S #, lD.c serial number of the CL card in question, kEL.S #, kX.S #. The values of DR.S # and DP.S # are initialized by the value of the current time and date. The DU.S # and number of software executions fields obviously take the value zero. The Misc field is used to store values related to possible needs to define additional information fields. Misc is initially zero.

L#.S# prend la valeur de NL.L # .S # takes the value of NL.

Selon des modes particuliers de réalisation non décrites, un utilisateur peut directement se connecter sur le serveur dSVR pour acheter des licences lorsque aSVR a communiqué la valeur de kX.S# d'un logiciel numéroté S# protégé selon la présente invention. Cette variante permet de décentraliser la vente des licences. According to particular embodiments not described, a user can directly connect to the dSVR server to purchase licenses when aSVR has communicated the value of kX.S # of software numbered S # protected according to the present invention. This variant decentralizes the sale of licenses.

Compte tenu du format des fichiers Fich.S# et de sa forme codée eFich.S#, seul une carte CL donnée et numérotée ID.c peut utiliser les fichiers Fich.S# correspondant à ID.c
Selon la réalisation de la présente invention, on considère un logiciel, noté LD, ayant subi une procédure de protection selon la présente invention. Bien entendu, les explications qui suivent sont valables pour tout logiciel protégé selon la présente invention. Pour permettre une explication, on considère son utilisation dans le cas où l'ordinateur hôte est connecté à un lecteur LCL via un réseau de type Ethernet, en TCP/IP. C'est le cas du contexte 40. Le driver DRV précédemment citée permet de communiquer avec LCL par rapport au protocole TCP/IP. Selon la réalisation de la présente invention, la couche TCP/IP est sous-entendu dans les propositions de communication entre le programme driver DRV et le lecteur LCL considéré.
Given the format of the Fich.S # files and its coded form eFich.S #, only a given CL card numbered ID.c can use the Fich.S # files corresponding to ID.c
According to the embodiment of the present invention, software, denoted LD, is considered to have undergone a protection procedure according to the present invention. Of course, the explanations which follow are valid for any software protected according to the present invention. To allow an explanation, we consider its use in the case where the host computer is connected to an LCL reader via an Ethernet type network, in TCP / IP. This is the case for context 40. The DRV driver previously mentioned makes it possible to communicate with LCL with respect to the TCP / IP protocol. According to the embodiment of the present invention, the TCP / IP layer is understood in the communication proposals between the DRV driver program and the LCL reader considered.

Selon des modes particuliers de réalisation non décrite, mais illustrée par la figure 4, plusieurs
LCL peuvent être présents sur le réseau. Cependant, ces organisations ne change pas les caractéristiques de la présente invention.
According to particular embodiments not described, but illustrated by FIG. 4, several
LCL may be present on the network. However, these organizations do not change the features of the present invention.

Selon la réalisation de la présente invention, à l'obtention d'une ou plusieurs autorisation(s) d'utilisation du logiciel LD (licences d'utilisation), LD peut alors être exécuté. According to the embodiment of the present invention, upon obtaining one or more authorization (s) to use the LD software (user licenses), LD can then be executed.

Ainsi, au lancement du logiciel LD sur un ordinateur hôte, la fonction FFo est exécutée en premier. De manière générale, selon la réalisation de la présente invention, toutes les fonctions FF effectuent toutes une procédure commune: le chargement de eF vers LCL.  Thus, when launching the LD software on a host computer, the FFo function is executed first. In general, according to the embodiment of the present invention, all the FF functions all carry out a common procedure: the loading of eF to LCL.

Selon la réalisation de la présente invention, lorsque le logiciel LD appelle une fonction donnée FF1, il lui transmet par passage de paramètres en utilisant par exemple la pile du système de l'ordinateur hôte, des informations paramètres, notées PARAM, utilisées directement et/ou indirectement lors de l'exécution éventuelle de la fonction F correspondant à FFj. Ensuite, FFj charge en mémoire le contenu du fichier eFi décrit précédemment. Puis, FFj appelle (au sens d'un appel de programmes informatiques) le driver DRV afin de lui communiquer les informations
PARAM et l'adresse mémoire où se trouve eFi. Ces informations sont ensuite envoyées vers LCL à travers le réseau considéré. Des paramètres supplémentaires peuvent être rajoutés par une fonction FF1 dans les paramètres PARAM. Ainsi, PARAM contient notamment des informations relatives à l'heure courante dans l'ordinateur qui exécute ladite fonction FF1. II contient aussi un identifiant unique représentant cet ordinateur hôte (par exemple l'adresse IP de cet ordinateur sur le réseau qui est fournie par le système d'exploitation de cet ordinateur) et le numéro de série S&num; du logiciel correspondant à ladite fonction <RTI ID=27. rapport à l'horloge dudit ordinateur exécutant le logiciel LD. Cette indication de temps correspond au prochain moment où FFo devra être impérativement lancé par le logiciel LD.
According to the embodiment of the present invention, when the software LD calls a given function FF1, it transmits to it by passing parameters using for example the stack of the system of the host computer, parameter information, noted PARAM, used directly and / or indirectly during the possible execution of the function F corresponding to FFj. Next, FFj loads the content of the eFi file described above into memory. Then, FFj calls (in the sense of a call to computer programs) the DRV driver in order to communicate the information to it
PARAM and the memory address where eFi is located. This information is then sent to LCL through the network considered. Additional parameters can be added by a FF1 function in the PARAM parameters. Thus, PARAM notably contains information relating to the current time in the computer which executes said function FF1. It also contains a unique identifier representing this host computer (for example the IP address of this computer on the network which is provided by the operating system of this computer) and the serial number S &num; software corresponding to said function <RTI ID = 27. report to the clock of said computer running LD software. This time indication corresponds to the next moment when FFo must be launched by the LD software.

De plus, I'ordre dans laquelle les autres fonctions FF1 sont appelées, n'est pas prévisible, car il dépend de l'utilisation de LD. In addition, the order in which the other FF1 functions are called is not predictable, since it depends on the use of LD.

Selon la réalisation de la présente invention, l'exécution de FFo est volontairement longue, de l'ordre de I seconde. According to the embodiment of the present invention, the execution of FFo is voluntarily long, of the order of I second.

De plus, à l'heure Htop, si FFo n'est pas exécutée, alors LCL considère que la session d'exécution associée audit logiciel LD qui doit lancer FFo est fermée. Cette condition permet à
LCL de diminuer son compteur de licences utilisées sur le réseau par rapport à LD.
In addition, at the time Htop, if FFo is not executed, then LCL considers that the execution session associated with said software LD which must launch FFo is closed. This condition allows
LCL to decrease its counter of licenses used on the network compared to LD.

Bien sûre, le dépassement du nombre de licences ne concerne pas les logiciels qui sont utilisé avec un ordinateur isolé et connecté directement par un port E/S à un LCL adapté à ce port. Of course, exceeding the number of licenses does not concern software which is used with an isolated computer and connected directly by an I / O port to an LCL suitable for this port.

De plus, lors de l'exécution des autres fonctions FFj pour i différent de 0 par le logiciel LD, FF1 vérifie d'abord si la fonction FFo associée à LD n'est pas en cours d'exécution. En l'absence d'une exécution en cours de FFo, FFj pour i différent de 0, envoie eF1, S&num;, les paramètres d'exécution de Fj vers LCL via DRV. Lorsque le lecteur LCL a terminé le traitement de eF accompagné de ses paramètres, les résultats sont retournés à FF1. FFj retourne alors ces résultats au logiciel LD. Si un message d'erreur est reçu, I'exécution du logiciel LD s'arrête. Contrairement à des systèmes de protection de logiciels qui utilisent des vérifications de codes, les logiciels protégés selon la présente invention, possède une protection incontournable par rapports à la difficulté de pouvoir trouver une fonction équivalente aux fonctions de F1 utilisées. In addition, during the execution of the other functions FFj for i different from 0 by the software LD, FF1 first checks whether the function FFo associated with LD is not running. In the absence of an execution in progress of FFo, FFj for i different from 0, sends eF1, S &num;, the execution parameters from Fj to LCL via DRV. When the LCL reader has finished processing eF with its parameters, the results are returned to FF1. FFj then returns these results to the LD software. If an error message is received, the execution of the LD software stops. Unlike software protection systems which use code checks, the software protected according to the present invention has essential protection in relation to the difficulty of being able to find a function equivalent to the functions of F1 used.

Selon la réalisation de la présente invention, compte tenu du processeur CPUI, le système d'exploitation du microcontrôleur 100 est un système multitache afin de pouvoir traiter plusieurs utilisation de logiciels protégés selon la présente invention en même temps. La réalisation de ce système d'exploitation se réfère à des standards de systèmes multitâches existant concernant les processeurs 80386 de la société Intel. De plus, la sécurité du système de protection de logiciels selon la présente invention, repose en particulier sur l'exécution d'un seul programme principal à la fois par le processeur CPU2. According to the embodiment of the present invention, taking into account the processor CPUI, the operating system of the microcontroller 100 is a multitasking system in order to be able to process several uses of software protected according to the present invention at the same time. The implementation of this operating system refers to existing multitasking system standards for 80386 processors from the company Intel. In addition, the security of the software protection system according to the present invention is based in particular on the execution of a single main program at a time by the processor CPU2.

Selon la réalisation de la présente invention, à la réception complète d'un paquet d'informations, CPUI les charge dans la mémoire DRAM 109. Dans le cas de données (correspondantes à un logiciel donné numéroté S#) du type eF1 et des paramètres associés à eF1, la liste de test suivant est réalisée : i est égale à 0 701, eF1 correspond à un logiciel numéroté S qui a déjà exécuté une fois FFo avec succès 702, L'heure indiquée par l'horloge 104 est égale à l'heure
Htop (valeur précédemment définie correspondant au logiciel numéroté S qui a dans cette condition déjà exécuté une fois FFo avec succès) exprimée par rapport à l'heure de l'horloge 104 avec une erreur de plus ou moins deux secondes (test 703 ou 705), le nombre (noté NL.S#) courant de licences utilisées (correspondant au logiciel numéroté S#) augmenté de 1 est strictement supérieur à la valeur L#.S# du fichier Fich.S# (correspondant au logiciel numéroté S#) fourni par la carte CL (test 704). Les éléments de cette liste de tests sont notés respectivement test, test2, test3, test4. Le chiffre associé à ces tests indique l'ordre de ces tests dans les conditions de leurs réalisations. En référence à la figure 12, le test testl 701 correspond au début de l'arbre d'analyse qui est effectué donc en considérant un logiciel donné numéroté S#, et un identifiant unique IDIP qui est le numéro adresse IP de chaque ordinateur sur le réseau considéré. Ce numéro permet ainsi d'associer chaque session d'exécution de logiciels par rapport à un ordinateur donné dudit réseau.
According to the embodiment of the present invention, upon complete reception of an information packet, CPUI loads them into the DRAM memory 109. In the case of data (corresponding to a given software numbered S #) of the type eF1 and of the parameters associated with eF1, the following test list is carried out: i is equal to 0 701, eF1 corresponds to software numbered S which has already successfully executed FFo once 702, The time indicated by the clock 104 is equal to l 'hour
Htop (previously defined value corresponding to the software numbered S which has in this condition already executed once FFo successfully) expressed relative to the time of the clock 104 with an error of more or less two seconds (test 703 or 705) , the number (current NL.S #) of licenses used (corresponding to the software numbered S #) increased by 1 is strictly greater than the value L # .S # of the file Fich.S # (corresponding to the software numbered S #) supplied by the CL card (test 704). The elements of this list of tests are noted respectively test, test2, test3, test4. The number associated with these tests indicates the order of these tests in the conditions of their performance. With reference to FIG. 12, the test test 701 corresponds to the start of the analysis tree which is therefore carried out by considering a given software numbered S #, and a unique identifier IDIP which is the IP address number of each computer on the network considered. This number thus allows each software execution session to be associated with a given computer on said network.

Selon des variantes de cette réalisation, d'autre identifiant unique peuvent être associé directement à une session d'exécution d'un logiciel donné par l'emploi d'un identifiant de processus combiné avec l'adresse réseau de l'ordinateur où se trouve ce processus. Ainsi, la présente réalisation considère l'identifiant unique associé à une adresse IP comme un exemple de moyen possible pour identifier un ordinateur sur ledit réseau. Ainsi, au début de l'arbre d'analyse de la figure 12, les informations Sft et IP (IDIP) sont supposées fournies par la fonction FF avec le driver DRV. Ces deux informations sont envoyées vers ledit lecteur LCL dans le paquet d'informations PARAM précédemment décrit.According to variants of this embodiment, other unique identifier can be associated directly with a session for executing a given software by the use of a process identifier combined with the network address of the computer on which is located. this process. Thus, the present embodiment considers the unique identifier associated with an IP address as an example of a possible means for identifying a computer on said network. Thus, at the start of the analysis tree in FIG. 12, the Sft and IP information (IDIP) are assumed to be supplied by the function FF with the driver DRV. These two pieces of information are sent to said LCL reader in the PARAM information packet described above.

Selon la réalisation de la présente invention, par rapport au test test4 704, si le résultat est une valeur fausse au sens booléen, alors la nouvelle valeur de NL.S# 709 est celle de l'ancienne augmentée de 1, à condition que le test test2 702 soit faux et que le testi 701 soit vrai. According to the embodiment of the present invention, compared to test test4 704, if the result is a false value in the Boolean sense, then the new value of NL.S # 709 is that of the old increased by 1, provided that the test test2 702 is false and the testi 701 is true.

Par rapport à une valeur vraie du test test3 703, et à condition d'une valeur vraie des tests test 1 701 et test2 702, CPU1 effectue un lecteur de l'heure courante sur l'horloge interne 104, pour calculer la nouvelle valeur de Htop exprimée par rapport à l'heure de l'horloge associée à l'ordinateur exécutant le logiciel S dans les conditions de ces tests et le contexte de ces conditions. With respect to a true value of test test3 703, and on condition of a true value of tests test 1 701 and test2 702, CPU1 performs a reader of the current time on the internal clock 104, to calculate the new value of Htop expressed in relation to the clock time associated with the computer running the software S under the conditions of these tests and the context of these conditions.

La nouvelle valeur de Htop est à égale l'ancienne augmentée de 5 minutes (par exemple), selon la réalisation de la présente invention. Cette valeur de 5 minutes est ajustée de telle sorte que deux ou plusieurs logiciels ayant le même numéro S et tournant sur des ordinateurs différents, ne puissent pas exécuter la fonction FFo correspondante en même temps (il faut tenir compte de ladite erreur de plus ou moins deux secondes). Cette valeur de 5 minutes peut donc être remplacée, par tout autre valeur en fonction de la phrase précédente. A la fin du test test3, une exécution 706 de la fonction
Fo a lieu.
The new value of Htop is equal to the old value increased by 5 minutes (for example), according to the embodiment of the present invention. This value of 5 minutes is adjusted so that two or more software programs having the same S number and running on different computers cannot execute the corresponding FFo function at the same time (this error must be taken into account more or less two seconds). This value of 5 minutes can therefore be replaced by any other value depending on the preceding sentence. At the end of test test3, an execution 706 of the function
Fo takes place.

Par rapport à une valeur fausse du test test3 703, et à condition d'une valeur vraie des tests testi 701 et test2 702, un message d'erreur 707 est alors retourné à la session d'exécution du logiciel correspondant à l'exécution de la fonction FFo dans les conditions de ces tests et le contexte de ces conditions. De plus, CPU1 diminue de 1 point le compteur NL.S# associé aux logiciels au numéro de série S#. Le système d'exploitation du microcontrôleur 100 dans le cadre de la protection de plusieurs logiciels en même temps, gère une liste d'objets référencés par les différents identifiants IDXP correspondant à tous les ordinateurs du réseau qui exécutent un logiciel protégé selon la présente invention. Cette liste d'objets est établie à partir des informations de
PARAM. Les champs de chacun de ces objets servent à enregistrer les numéros de série S des logiciels numérotés S qui sont exécutés sur l'ordinateur dont l'identifiant IDIP correspond à ladite référence IDIP de ces objets. Cette liste d'objet permet la gestion de l'utilisation des logiciels protégés en fonction des ordinateurs. Lorsque NL.S# est diminué de 1 point par rapport un ordinateur identifié par IDIP et qui exécute le logiciel numéroté S qui a provoqué cette diminution, le champ de l'objet IDIP correspondant qui contient la valeur de S est effacé. Cette gestion permet à ce que une nouvelle exécution d'un logiciel numéroté S puisse avoir lieu. Il faut aussi noter que la valeur de NL.S&num; est le total desdits objets possédant un champ identique à la valeur de S dans la notation de NL.S&num;. Ainsi, en contrepartie lorsqu'une augmentation de 1 point de la valeur de NL.S# a lieu, un nouveau champ dans l'objet IDIP de ladite liste d'objets est créé.
With respect to a false value of test test3 703, and on condition of a true value of tests testi 701 and test2 702, an error message 707 is then returned to the execution session of the software corresponding to the execution of the FFo function in the conditions of these tests and the context of these conditions. In addition, CPU1 decreases the NL.S # counter associated with software with the serial number S # by 1 point. The operating system of the microcontroller 100 in the context of the protection of several software programs at the same time, manages a list of objects referenced by the different IDXP identifiers corresponding to all the computers on the network which run protected software according to the present invention. This list of objects is established from information from
PARAM. The fields of each of these objects are used to record the serial numbers S of the numbered software S which are executed on the computer whose IDIP identifier corresponds to said IDIP reference of these objects. This object list allows the management of the use of protected software according to computers. When NL.S # is reduced by 1 point compared to a computer identified by IDIP and which runs the software numbered S which caused this reduction, the field of the corresponding IDIP object which contains the value of S is deleted. This management allows that a new execution of a software numbered S can take place. It should also be noted that the value of NL.S &num; is the total of said objects having a field identical to the value of S in the notation of NL.S &num;. Thus, in return when a 1 point increase in the value of NL.S # takes place, a new field in the IDIP object of said list of objects is created.

L'objet IDIP correspond à l'ordinateur numéroté IDIP qui exécute la fonction FF du logiciel S#.The IDIP object corresponds to the numbered computer IDIP which performs the FF function of the S # software.

Ledit nouveau champ prend alors la valeur de S#.Said new field then takes the value of S #.

* Par rapport à une valeur vraie du test test4 704 et d'une valeur fausse du test test2 702 et d'une valeur vraie du test testi 701, un message d'erreur 708 est alors retourné à la session d'exécution du logiciel correspondant à l'exécution de la fonction FFo dans les conditions de ces tests et le contexte de ces conditions.* Compared to a true value of test test4 704 and a false value of test test2 702 and a true value of test testi 701, an error message 708 is then returned to the execution session of the corresponding software the execution of the FFo function under the conditions of these tests and the context of these conditions.

Par rapport à une valeur vraie du test test3 705, et à condition d'une valeur fausse du test testl 701, CPU I diminue de 1 point le compteur NL.S# associé aux logiciels numérotés S#. Ladite liste d'objets IDIP est actualisée en conséquence. Un message d'erreur 710 est alors retourné à la session d'exécution du logiciel correspondant à l'exécution de la fonction FFo dans les conditions de ces tests et le contexte de ces conditions. Compared to a true value of test test3 705, and on condition of a false value of test testl 701, CPU I decreases by 1 point the counter NL.S # associated with software numbered S #. Said list of IDIP objects is updated accordingly. An error message 710 is then returned to the software execution session corresponding to the execution of the FFo function under the conditions of these tests and the context of these conditions.

En référence à la figure 12, pour une valeur vraie du produit (test 1 701 et test2 702 et test3 703) dans l'ordre de leur réalisation, pour une valeur fausse du produit (testl 701 et test2 702 et test4 704) dans l'ordre de leur réalisation, et pour une valeur fausse du produit (test 1 701 et test3 705) dans l'ordre de leur réalisation, le résultat conduit à un traitement de eF par CPU1.  With reference to FIG. 12, for a true value of the product (test 1 701 and test2 702 and test3 703) in the order of their realization, for a false value of the product (testl 701 and test2 702 and test4 704) in l order of their realization, and for a false value of the product (test 1,701 and test 3,705) in the order of their realization, the result leads to a processing of eF by CPU1.

Bien entendu, L'ensemble de ces tests est défini par rapport à la réalisation de la présente invention pour permettre les fonctionnalités de protection de plusieurs logiciels en même temps par un seul lecteur LCL. L'arbre d'analyse de la figure 12 est simplifié au maximum par soucis de clarté de compréhension. Selon des modes particuliers de réalisation, les conditions des tests et le contexte de ces tests peuvent varier. Of course, all of these tests are defined with respect to the implementation of the present invention to allow the protection functionalities of several software programs at the same time by a single LCL reader. The analysis tree in FIG. 12 is simplified as much as possible for the sake of clarity of understanding. According to particular embodiments, the conditions of the tests and the context of these tests may vary.

En cas d'utilisation intensive, une file d'attente est créée pour faire exécuter une à une les fonctions F par le processeur CPU2. Afin de diminuer le temps d'attente, une condition de durée autorisée pour l'exécution d'une fonction F donnée peut être fixée, par exemple 1/100 de secondes valeur définie par rapport à la vitesse de calcul du processeur CPU2. Cette condition de durée devra être respectée par le développeur de logiciels protégés selon la présente invention. In the event of intensive use, a queue is created to execute the F functions one by one by the processor CPU2. In order to reduce the waiting time, a duration condition authorized for the execution of a given function F can be fixed, for example 1/100 of second value defined relative to the calculation speed of the processor CPU2. This duration condition must be respected by the developer of software protected according to the present invention.

Selon la réalisation de la présente invention, les informations d'utilisation d'un logiciel donné numéroté S sont fournies par la carte CL. Ainsi, lorsqu'il est nécessaire par rapport à l'arbre d'analyse, notamment à l'étape 704, le microcontrôleur 100 effectue une requête auprès de la carte
CL. Ainsi, CPUI effectue dans l'objectif d'exécuter F, une requête à propos du logiciel numéroté Stt, auprès de la carte CL connecté dans le contexte de cette requête. Dans les conditions de succès de la procédure d'authentification précédemment définie entre LCL et CL, et dans les conditions de la possessions du fichiers Fich.S# associé au logiciel numéroté S du contexte de cette requête, le microcontrôleur 400 de la carte CL retourne au LCL sous une forme codée par la clé kCS, le fichier
Fich.S#. Le microcontrôleur 100 met alors à jour les champs suivants : DR.S# (dernière utilisation) remplacée par la date courante, DU.S# recalculé, Nombre d'exécution du logiciel. DR.S# est mise à jour par rapport à la date et l'heure de la première exécution de la fonction FFo par rapport au dernier lancement d'une exécution du logiciel S associé à cette fonction. DU.S# est recalculée avec la valeur dynamique de Htop et l'heure courante indiquée par l'horloge 104 au moment où l'exécution d'une fonction FF correspondante a lieu. Le champ Nombre d'exécution du logiciel est calculé par rapport à la dernière exécution du logiciel associé au contexte de ce calcul. Il est donc augmenté d'un point à chaque nouvelle exécution. L'ensemble de ces tests est optimisé en fonction du flux des requêtes des différentes fonctions FF exécutées par les logiciels correspondants sur les différents ordinateurs connectés sur le réseau avec le lecteur LCL considéré dans le contexte de ces mises àjour d'informations.
According to the embodiment of the present invention, the information for using a given software numbered S is supplied by the card CL. Thus, when it is necessary with respect to the analysis tree, in particular in step 704, the microcontroller 100 makes a request to the card
CL. Thus, in order to execute F, CPUI makes a request about the numbered software Stt, from the CL card connected in the context of this request. Under the conditions of success of the authentication procedure previously defined between LCL and CL, and under the conditions of possession of the Fich.S # files associated with the software numbered S in the context of this request, the microcontroller 400 of the CL card returns to LCL in a form coded by the key kCS, the file
File #. The microcontroller 100 then updates the following fields: DR.S # (last use) replaced by the current date, DU.S # recalculated, Number of software runs. DR.S # is updated relative to the date and time of the first execution of the FFo function compared to the last launch of an execution of the software S associated with this function. DU.S # is recalculated with the dynamic value of Htop and the current time indicated by the clock 104 when the execution of a corresponding FF function takes place. The Number of software execution field is calculated relative to the last software execution associated with the context of this calculation. It is therefore increased by one point for each new execution. All of these tests are optimized as a function of the flow of requests from the various FF functions executed by the corresponding software on the various computers connected to the network with the LCL reader considered in the context of these updates of information.

Selon la réalisation de la présente invention, les valeurs de L#.S#, kEL.S# et kX.S# (d'autres champs du fichier concernés peuvent être retenus par CPU1 selon les besoins) sont mémorisées dans la DRAM 109. Fich.S# modifié est ensuite retourné à CL sous une forme codée par kCS. Afin d'empêcher des actes de piraterie, si la carte CL est enlevée pendant que le lecteur LCL utilise la carte CL pour effectuer des opération s concernant la présente invention, le lecteur LCL met fin à toutes les sessions d'exécution de logiciels protégés selon la présente invention, en leur retournant un message d'erreur. Selon des modes particuliers de réalisation, les appareils selon la présente invention, peuvent ne pas retourner ainsi un message d'erreurs, dans la mesure où des fichiers
Fich.S# peuvent être stockés en permanence dans le lecteur LCL de la même manière que celle employée avec la carte CL.
According to the embodiment of the present invention, the values of L # .S #, kEL.S # and kX.S # (other fields of the file concerned can be retained by CPU1 as required) are stored in the DRAM 109. Modified Fich.S # is then returned to CL in a form coded by kCS. In order to prevent acts of piracy, if the CL card is removed while the LCL reader uses the CL card to perform operations relating to the present invention, the LCL reader ends all sessions of execution of software protected according to the present invention, by returning an error message to them. According to particular embodiments, the apparatuses according to the present invention, may not thus return an error message, insofar as files
Fich.S # can be permanently stored in the LCL reader in the same way as that used with the CL card.

Ainsi, selon la réalisation de la présente invention, la valeur L#.S# empêche de dépasser le nombre de licences d'utilisations d'un logiciel protégé selon la présente invention. Thus, according to the embodiment of the present invention, the value L # .S # prevents exceeding the number of licenses to use software protected according to the present invention.

Selon la réalisation de la présente invention, pour le cas i=0, la clé kEL.S# fournie par le fichier Fich.S# est utilisée pour décoder eF0. CPUI obtient ainsi ledit fichier de conditions d'utilisation du logiciel associé à ce eFo. CPU1 compare la valeur de ces différentes informations par rapport au fichier Fich.S# associé. A titre explicatif, si l'utilisation est fixée par rapport à une date d'expiration, ledit fichier de conditions d'utilisation renseigne cette valeur limite par son champ correspondant. Selon des modes particuliers de réalisation, ledit fichier de conditions d'utilisation peut ne pas comporter tout ou partie des champs suivants: licences permanentes, durée d'utilisation, l'utilisation expire fin, nombres d'exécutions. According to the embodiment of the present invention, for the case i = 0, the key kEL.S # provided by the file Fich.S # is used to decode eF0. CPUI thus obtains said file of conditions of use of the software associated with this eFo. CPU1 compares the value of this different information with the associated Fich.S # file. By way of explanation, if the use is fixed with respect to an expiration date, said file of conditions of use indicates this limit value by its corresponding field. According to particular embodiments, said file of conditions of use may not include all or part of the following fields: permanent licenses, duration of use, use expires end, number of executions.

Selon la réalisation de la présente invention, après le succès de la comparaison des données fournies par le fichier Fich.S# avec le fichier de conditions (limites) d'utilisation décodée par la clé kEL.S# et associée à eF0, et toujours pour i=0, CPU1 récupère aussi avec la clé kEL.S# les byte code JAVA (code d'instruction JAVA) de la fonction Fo.  According to the embodiment of the present invention, after the success of the comparison of the data provided by the file Fich.S # with the file of conditions (limits) of use decoded by the key kEL.S # and associated with eF0, and always for i = 0, CPU1 also retrieves with the kEL.S # key the byte JAVA code (JAVA instruction code) of the Fo function.

Selon la réalisation de la présente invention, pour i différent de 0, les données codées eFl sont décodées à l'aide de la clé kX.S# renseignée par le Fich.S# correspondant. CPU 1 récupère alors les byte code JAVA (code d'instruction correspondant à la machine virtuelle JAVA) de la fonction F.  According to the embodiment of the present invention, for i other than 0, the coded data eFl are decoded using the key kX.S # informed by the corresponding Fich.S #. CPU 1 then retrieves the JAVA byte code (instruction code corresponding to the JAVA virtual machine) of function F.

Ces codes d'instruction sont chargés alors par l'intermédiaire de l'interface 106 directement dans la DRAM 110 grâce au contrôleur DMA 107. Par l'intermédiaire du contrôleur du CPU2,
CPU1 donne la main au CPU2 (processeur PicoJava) pour l'exécution de Fi dont les paramètres d'exécution ont été chargés au préalable. Le watchdog 108 surveille au bon fonctionnement du
CPU2. A la fin de l'exécution de Fi par CPU2, les résultats sont récupérés par CPUI et retournés vers l'ordinateur qui a envoyé les données eFi.
These instruction codes are then loaded via the interface 106 directly into the DRAM 110 using the DMA controller 107. Via the controller of the CPU2,
CPU1 gives control to CPU2 (PicoJava processor) for the execution of Fi whose execution parameters have been loaded beforehand. The watchdog 108 monitors the proper functioning of the
CPU2. At the end of the execution of Fi by CPU2, the results are retrieved by CPUI and returned to the computer which sent the eFi data.

Dans les contextes d'utilisation 30 et 20, un lecteur LCL peut être utilisé avec un ordinateur personnel grâce à une connexion directe entre leur port E/S USB respectif. Pour ces deux contextes la protection de logiciels par le lecteur LCL est une version simplifiée des fonctionnalités en réseau. Par conséquent, la présente description n'apportera pas de renseignements supplémentaires. In contexts of use 30 and 20, an LCL reader can be used with a personal computer thanks to a direct connection between their respective USB I / O port. For these two contexts the protection of software by the LCL reader is a simplified version of the network functionalities. Therefore, this description will not provide additional information.

Selon des modes particuliers de réalisation, le champ durée d'utilisation du fichier de conditions d'utilisation peut être utilisé pour caractériser l'utilisation de logiciels de démonstrations. Ainsi, le fichier de conditions d'utilisations fixe en particulier des conditions d'utilisation limite. Le fichier d'autorisation d'utilisations renseigne la quantité d'utilisation en cours. Les deux fichiers combinés permettent selon la réalisation de la présente invention, de protéger un logiciel contre le non respect de ses conditions d'utilisations. According to particular embodiments, the duration of use field of the conditions of use file can be used to characterize the use of demonstration software. Thus, the file of conditions of use sets in particular limit conditions of use. The usage authorization file indicates the amount of usage in progress. The two files combined make it possible, according to the embodiment of the present invention, to protect software against non-compliance with its conditions of use.

De plus, le format du fichier de conditions d'utilisation est surtout intéressant pour développer des applications de démonstrations dont l'utilisation est limitée. Dans ce contexte, une procédure de protection particulière peut être utilisée pour que la création de logiciels protégés selon la présente invention, puisse être effectué sans passer par l'intermédiaire du serveur aSVR. Cette fonctionnalité est intéressante pour permettre notamment de décentraliser la protection de logiciels selon la présente invention. De plus, pour lancer une telle procédure de protection, le choix sera effectué à l'aide du programme PGM. In addition, the format of the conditions of use file is especially interesting for developing demonstration applications whose use is limited. In this context, a special protection procedure can be used so that the creation of protected software according to the present invention can be carried out without going through the aSVR server. This functionality is interesting in particular for decentralizing the protection of software according to the present invention. In addition, to launch such a protection procedure, the choice will be made using the PGM program.

Par rapport à la procédure de protection de logiciels précédemment décrite, les fonctions Fj sont maintenant codées avec une clé secrète kLi de ladite liste {kLs+l,kLi+2,kL*3,...,kLs+m}, qui correspond à la semaine courante pendant laquelle cette procédure spéciale de protection de logiciels est lancée. L'usage de ces clés est intéressant uniquement pour les logiciels dont l'utilisation est limitée dans le temps à cause de la définition de ces clés kLi. Bien sûre, le lecteur
LCL qui effectuera cette procédure ne communiquera pas la valeur de kLi par rapport à sa définition. Pour être distribué, le logiciel ainsi protégé devra être accompagné des indications sur la semaine pendant laquelle cette procédure particulière de protection a été effectuée. Ainsi, lorsqu'un utilisateur désire exécuter un logiciel protégé de cette manière (par la clé kLi), il n'aura pas besoins de contacter le serveur aSVR, car toutes les informations s'y trouvent sur le média d'enregistrement. Cependant l'utilisation du logiciel reste dépendante d'un lecteur LCL compte tenu du cryptage. Ainsi, l'utilisateur pourra disposer immédiatement du logiciel, mais ne pourra pas dépasser les conditions d'utilisations fixées dans le fichier de conditions d'utilisation. La réalisation de la présente invention empêche une réutilisation d'un logiciel dont l'utilisation est limitée dans le temps. Des explications seront données par la suite.
Compared to the software protection procedure described above, the functions Fj are now coded with a secret key kLi from said list {kLs + l, kLi + 2, kL * 3, ..., kLs + m}, which corresponds the current week during which this special software protection procedure is launched. The use of these keys is interesting only for software whose use is limited in time because of the definition of these kLi keys. Of course, the reader
LCL which will carry out this procedure will not communicate the value of kLi compared to its definition. To be distributed, the software thus protected must be accompanied by information on the week during which this particular protection procedure was carried out. Thus, when a user wishes to run software protected in this way (by the kLi key), he will not need to contact the aSVR server, because all the information is there on the recording medium. However, the use of the software remains dependent on an LCL reader given the encryption. Thus, the user will have immediate access to the software, but will not be able to exceed the conditions of use set in the file of conditions of use. The realization of the present invention prevents re-use of software whose use is limited in time. Explanations will be given later.

De plus, la présente invention concerne une méthode rendant l'utilisation des appareils selon la présente invention, transparente du point de vue informatique par l'intermédiaire d'un programme noté PGM qui a déjà été abordé. Le programme PGM est développé de telle sorte qu'il puisse permettre à un utilisateur des appareils selon la présente d'effectuer des opérations nécessitant une interactivité avec ces appareils. Son utilisation est généralement sous-entendue dans la présente description. Il a aussi pour rôle de permettre à un LCL donné de se connecter à un système informatique distant en utilisant les ressources de communication de l'ordinateur hôte et du système informatique de cet ordinateur. In addition, the present invention relates to a method making the use of the apparatuses according to the present invention, transparent from the computer point of view by means of a program denoted PGM which has already been discussed. The PGM program is developed in such a way that it can allow a user of the devices according to the present to perform operations requiring interactivity with these devices. Its use is generally understood in the present description. It also has the role of allowing a given LCL to connect to a remote computer system using the communication resources of the host computer and the computer system of this computer.

Le programme PGM est utilisé en parallèle avec un programme driver DRV. Ce driver DRV constitue une couche de communication entre PGM et un lecteur LCL donné. II assure la transparence de l'utilisation du lecteur LCL. L'adjonction de ces deux éléments dans un ordinateur donné est illustré sur la figure 2. Ces deux programmes remplissent toutes les fonctionnalités décrites précédemment et par la suite. Une convention est adoptée sur les procédures d'interrogation d'un LCL donné afin de permettre à ce lecteur LCL de reconnaître et d'exécuter des commandes qui sont intégrés au système d'exploitation de son microcontrôleur 100. Ces commandes sont définies lors de la construction des lecteurs LCL. The PGM program is used in parallel with a DRV driver program. This DRV driver constitutes a communication layer between PGM and a given LCL reader. It ensures transparency in the use of the LCL reader. The addition of these two elements in a given computer is illustrated in FIG. 2. These two programs fulfill all the functionalities described previously and subsequently. A convention is adopted on the procedures for interrogating a given LCL in order to allow this LCL reader to recognize and execute commands which are integrated into the operating system of its microcontroller 100. These commands are defined during the construction of LCL readers.

En retour, selon la présente invention, PGM peut aussi interpréter les informations provenant des commandes envoyées par LCL. Ces commandes sont essentiellement, selon la réalisation de la présente invention, des instructions pour permettre à un LCL d'accéder à un système distant. In return, according to the present invention, PGM can also interpret the information coming from the commands sent by LCL. These commands are essentially, according to the embodiment of the present invention, instructions for allowing an LCL to access a remote system.

Ainsi, selon la convention adoptée pour communiquer avec un lecteur LCL donné, des commandes sont définies par rapport à la possibilité pour les lecteurs LCL, de se connecter à aSVR par l'intermédiaire des ressources disponibles de communication réseau pour permettre par exemple une mise à jour du système informatique interne des appareils selon la présente invention ou encore la mise à l'heure de l'horloge interne 104 en cas de dysfonctionnement (la pile 103 est épuisée). Thus, according to the convention adopted for communicating with a given LCL reader, commands are defined with respect to the possibility for LCL readers to connect to aSVR via the available network communication resources to allow for example an update. update of the internal computer system of the devices according to the present invention or the setting of the time of the internal clock 104 in the event of a malfunction (the battery 103 is exhausted).

Selon le contexte d'utilisation 20 indiqué sur la figure 1, un récepteur hertzien numérique 22 est connecté sur le bus externe 114 du microcontrôleur 100, pour permettre à un lecteur LCL donné de recevoir des informations directement de l'organisme qui gère le serveur aSVR. Bien entendu, ce récepteur sera intégré dans le boîtier retenu pour l'utilisation du lecteur LCL. Il est ainsi possible d'envoyer des informations à tous les lecteurs LCL en service de manière générale et/ou spécifique. According to the context of use 20 indicated in FIG. 1, a digital radio receiver 22 is connected to the external bus 114 of the microcontroller 100, to allow a given LCL reader to receive information directly from the organization which manages the aSVR server. . Of course, this receiver will be integrated in the box selected for the use of the LCL reader. It is thus possible to send information to all LCL readers in service generally and / or specifically.

De plus, la faible consommation de ce type de récepteur par rapport à un fonctionnement avec des piles électriques, permet de les laisser en fonctionnement permanent, même si le lecteur LCL est éteint. Selon une variante d'utilisation d'alimentation électrique, des piles rechargeables peuvent être employées avec le radiorécepteur 22 indépendamment de l'alimentation électrique du LCL (fournit éventuellement par le réseau électrique local). Bien entendu, le récepteur dispose de sa propre mémoire pour permettre de conserver les données reçues de l'émetteur 13 lorsque le lecteur
LCL est éteint. Ainsi, le serveur aSVR peut envoyer des informations comme par exemple la mise à jour du système d'exploitation du lecteur LCL et/ou de la carte CL par l'intermédiaire d'un émetteur 13.
In addition, the low consumption of this type of receiver compared to an operation with electric batteries, allows them to be left in permanent operation, even if the LCL reader is switched off. According to a variant of use of electrical power supply, rechargeable batteries can be used with the radio receiver 22 independently of the electrical power supply of the LCL (possibly supplied by the local electrical network). Of course, the receiver has its own memory to store the data received from the transmitter 13 when the reader
LCL is off. Thus, the aSVR server can send information such as for example the update of the operating system of the LCL reader and / or of the CL card via a transmitter 13.

Selon une variante du fonctionnement des lecteurs LCL, une condition de durée peut être ajouter en plus des informations concernant les dates de mise en service et de fin d'utilisation (DB.d et DE.D). Cette condition est relative à l'utilisation de LCL avec le radiorécepteur 22. Ainsi, un lecteur LCL qui n'aurait reçu aucunes informations provenant de l'émetteur 20, refusera de fonctionner au moment de sa mise en marche par un utilisateur. Une procédure de connexion sur aSVR par l'intermédiaire du programme PGM devra être effectuée afin de récupérer les informations que ce lecteur LCL aurait pu manquer pour cause de mauvaise réception radio. Cette récupération se fait bien sûre par l'intermédiaire de la clé kT.d pour sécuriser la communication entre aSVR et le lecteur LCL en question. According to a variant of the operation of LCL readers, a duration condition can be added in addition to information concerning the dates of commissioning and end of use (DB.d and DE.D). This condition relates to the use of LCL with the radio receiver 22. Thus, an LCL reader which has not received any information from the transmitter 20, will refuse to operate when it is started up by a user. A connection procedure on aSVR via the PGM program must be carried out in order to recover the information that this LCL reader could have missed due to poor radio reception. This recovery is of course done using the kT.d key to secure the communication between aSVR and the LCL reader in question.

De plus, afin d'envoyer de l'émetteur 13 des informations de manière sécurisée, les clés secrètes kLi précédemment décrites sont utilisées pour coder ces informations à envoyer par radio aux lecteurs LCL. On note ces informations MR. De plus, kLi est choisie de telle sorte qu'elle correspond avec la semaine où les informations partent de l'émetteur 13. On note eMR la forme codée de MR par kLi. En choisissant d'émettre les informations MR à partir du lundi qui suit la semaine (commençant un lundi et se terminant fin dimanche) où ces informations MR ont été définies, les mêmes informations sont envoyées en répétition suivant un intervalle donné durant toute la semaine. Ceci permet de s'assurer qu'elles ont bien été reçues, et d'éviter trop de connexion de LCL vers aSVR. In addition, in order to send information 13 securely from the transmitter 13, the secret keys kLi previously described are used to encode this information to be sent by radio to the LCL readers. This information is noted MR. In addition, kLi is chosen so that it corresponds to the week when the information leaves from the transmitter 13. We denote by eMR the coded form of MR by kLi. By choosing to send the MR information from the Monday following the week (starting on a Monday and ending at the end of Sunday) where this MR information has been defined, the same information is sent in repetition at a given interval throughout the week. This ensures that they have been received, and avoids too much connection from LCL to aSVR.

Cette variante de la présente invention présente beaucoup d'avantage, car elle permet dans un premier temps de retourner les fichiers Fich.S# de manière sécurisée vers le lecteur LCL correspondant à l'acheteur du logiciel associé à Fich.S#. Bien entendu, l'émetteur 13 peut envoyer de manière spécifique des informations vers un récepteur radio 22 donné. Cette variante permet un achat sans connexion informatique, mais par l'utilisateur directement au téléphone avec un accueil humain. Cette variante permet une complète séparation de la distribution du média d'enregistrement contenant un logiciel donné, de la vente des licences d'utilisation de ce logiciel donné. This variant of the present invention has a lot of advantages, because it initially allows files Fich.S # to be returned in a secure manner to the LCL reader corresponding to the purchaser of the software associated with Fich.S #. Of course, the transmitter 13 can specifically send information to a given radio receiver 22. This variant allows a purchase without computer connection, but by the user directly on the phone with a human welcome. This variant allows a complete separation of the distribution of the recording medium containing a given software, from the sale of the licenses to use this given software.

Dans un deuxième temps, cette variante permet d'envoyer des informations concernant la perte d'un appareil. Compte tenu des capacités de stockage des modules de Disque Flash , un circuit DiskOnChip non illustré de la société Msystems est connecté avec un contrôleur éventuel sur le bus externe 114 du microcontrôleur 100 pour permettre au microcontrôleur 100 de disposer d'un disque de stockage. Un DiskOnChip de 12 mégaoctets est choisit selon la réalisation de la présente variante de l'invention. Selon d'autres variantes, une carte Disque Flash PCMCIA peut être employée à la place du DiskOnChip. Ainsi, à réception des informations eMR, le microcontrôleur 100 décode eMR à l'aide de la clé kLi de la semaine courante. In a second step, this variant makes it possible to send information concerning the loss of a device. Given the storage capacities of the Flash Disk modules, a DiskOnChip circuit not illustrated by the company Msystems is connected with a possible controller on the external bus 114 of the microcontroller 100 to allow the microcontroller 100 to have a storage disk. A 12 megabyte DiskOnChip is chosen according to the embodiment of the present variant of the invention. According to other variants, a PCMCIA Flash Disk card can be used in place of the DiskOnChip. Thus, on receipt of the eMR information, the microcontroller 100 decodes eMR using the kLi key for the current week.

Ainsi, pour désactiver un appareil CL et/ou LCL donnés par rapport à leur utilisation, une information correspondant à son numéro de série peut être jointe. Ce numéro de série est alors sauvegardé sur le circuit DiskOnChip dans un fichier noté ANNUL qui sert à stocker tous les numéros de séries des appareils selon la présente invention, qui ne doivent plus être utilisés. Selon des modes particuliers de réalisation, par rapport à la sécurité nécessaire contre des modifications, ledit numéro peut ne pas être codé lors de son émission de l'émetteur 13. Thus, to deactivate a given CL and / or LCL device in relation to their use, information corresponding to its serial number can be attached. This serial number is then saved on the DiskOnChip circuit in a file denoted ANNUL which is used to store all the serial numbers of the devices according to the present invention, which must no longer be used. According to particular embodiments, with respect to the security necessary against modifications, said number may not be coded when it is transmitted from transmitter 13.

Selon la présente invention, un procédé informatique d'authentification et de signature par
LCL est effectué sur le fichier ANNUL. La signature électronique et les informations de l'authentification sont stockées dans la mémoire interne 111 du microcontrôleur 100. Ainsi, le microcontrôleur 100 à chaque démarrage vérifie si le fichier ANNUL n'a pas été remplacé par un autre fichier au même format ou modifié par une opération non autorisée.
According to the present invention, a computerized method of authentication and signature by
LCL is performed on the ANNUL file. The electronic signature and the authentication information are stored in the internal memory 111 of the microcontroller 100. Thus, the microcontroller 100 at each start-up checks whether the ANNUL file has not been replaced by another file in the same format or modified by an unauthorized transaction.

Ce fichier ANNUL est alors utilisé lors de la procédure d'authentification entre une carte CL donnée et un lecteur LCL donnée par rapport à la procédure précédemment décrite. Si CL présente un ID.c qui est référencé dans le fichier ANNUL, LCL rejette alors la carte CL en question. De plus, au démarrage de LCL et/ou à réception d'une information MR, le microcontrôleur 100 du
LCL, vérifie si son propre ID.d n'est pas référencé dans le contenu de MR et/ou ANNUL. Si le cas se présente, le microcontrôleur 100 se met hors service en détruisant le contenu de sa mémoire interne.
This ANNUL file is then used during the authentication procedure between a given CL card and a given LCL reader compared to the previously described procedure. If CL has an ID.c which is referenced in the ANNUL file, LCL then rejects the CL card in question. In addition, when starting LCL and / or receiving MR information, the microcontroller 100 of the
LCL, checks if its own ID.d is not referenced in the content of MR and / or ANNUL. If the case arises, the microcontroller 100 is put out of service by destroying the content of its internal memory.

Ainsi, compte tenu de la réalisation de la présente variante, un appareil CL ou LCL peut être mis hors service dans un maximum de 1 semaine. Thus, taking into account the implementation of this variant, a CL or LCL device can be put out of service within a maximum of 1 week.

De plus, selon la réalisation de la présente invention, les appareils ont une utilisation d'au maximum 4 ans. Cette durée peut tout à fait se ramener à 2 ans. Dans le contexte de cette durée, en considérant une possibilité de pertes des appareils selon la présente invention, avec un volume de 1 million de pertes d'appareils en 2 deux ans (les pertes volontaires seraient empêchées par le prix d'achat d'un nouvel appareil en cas de perte). Ce volume peut sembler exagérer. Compte tenu des capacités des méthodes de compressions (un taux de 50%), et compte tenu de la taille de 128 bits d'un numéro de série ID, il faudrait donc environ et sans compression 15 mégaoctets, 8 mégaoctets avec compression d'espace de stockage de données. Sur une durée d'utilisation de deux ans des appareils selon la présente invention, la capacité de la DiskOnChip selon la présente variante suffit. In addition, according to the embodiment of the present invention, the devices have a use of at most 4 years. This duration can be reduced to 2 years. In the context of this duration, considering a possibility of losses of the devices according to the present invention, with a volume of 1 million losses of devices in 2 two years (voluntary losses would be prevented by the purchase price of a new device in case of loss). This volume may seem to be exaggerating. Given the capabilities of compression methods (a rate of 50%), and given the 128-bit size of an ID serial number, it would therefore require approximately and without compression 15 megabytes, 8 megabytes with space compression data storage. Over a period of use of the devices according to the present invention for two years, the capacity of the DiskOnChip according to the present variant is sufficient.

Pour le cas de durée d'utilisation plus longue, des capacités de stockage plus grandes peuvent être prises compte tenu de la capacité des modules DiskOnChip dans l'état actuel de l'art.For the case of a longer period of use, larger storage capacities can be taken into account given the capacity of the DiskOnChip modules in the current state of the art.

De plus, ledit radiorécepteur numérique, compte tenu de sa capacité de recevoir des informations qui le concerne uniquement, lors de l'achat d'une licence de logiciel, l'utilisateur peut recevoir par radio le fichier Fich.S# (décrite précédemment) correspondant à son achat de licences du logiciel numéroté S#. Cette fonctionnalité peut avoir un grand impact au niveau commercial (I'achat de lo envoyé sous forme codée avec la clé kLi de la semaine courante. Selon des variations de réalisations, on peut utiliser une clé de type kT.d pour les opérations d'achat. In addition, said digital radio receiver, given its capacity to receive information which concerns it only, when purchasing a software license, the user can receive the Fich.S # file by radio (described above) corresponding to his purchase of licenses for the software numbered S #. This functionality can have a big impact on the commercial level (the purchase of lo sent in coded form with the key kLi of the current week. According to variations of realizations, one can use a key of the type kT.d for the operations of purchase.

La possibilité de faire rejeter l'utilisation d'un appareil selon la présente invention par le reste des appareils selon la présente invention, permet de donner aux utilisateurs la possibilité de récupérer une partie du contenu de leur carte CL perdue. The possibility of having the rest of the apparatuses according to the present invention be rejected by the rest of the apparatuses according to the present invention makes it possible to give users the possibility of recovering part of the content of their lost CL card.

Ainsi, en tenant compte du format de fichier Fich.S#, la taille de ce fichier peut être ramenée à 66 octets dans un fichier nommé rFich.S#, en conservant uniquement les champs suivants: Sft du logiciel, lD.c, L#.S#, kEL.S#, kX.S#. En considérant uniquement les logiciels dont l'utilisateur possède une licence d'utilisation permanente, rFich.S# suffit pour définir l'utilisation de ces logiciels protégés selon la présente invention. Ainsi avec un module de mémoire de 64 kilooctets, on peut stocker au moins 990 licences de logiciels différents dont l'utilisation peut être définie par rFich.S#. Selon cette nouvelle variante, I'organisme qui gère aSVR, fournit lors de l'achat d'une carte CL une carte à puces (SmartCard) notée SC, et pouvant sécuriser des données en lecture et en modification. SC n'est pas illustrée. SC comporte un microcontrôleur intégrant sur une seule pastille de silicium, un processeur, un module mémoire Flash de 64 kilooctets, de la mémoire
DRAM et OTPEPROM. Les accès en mémoire sont contrôlés par le processeur du microcontrôleur de SC. Cette carte est une carte à puces sécurisée. Cette carte à puces est utilisée à chaque fois que l'utilisateur acquière légalement une nouvelle licence pour une ou des utilisation(s) permanente(s) d'un logiciel donné protégé selon la présente invention. Lors de cette acquisition, cette carte est insérée dans le lecteur de cartes à puces qui communique avec le microcontrôleur 100 du lecteur
LCL par le moyen du contrôleur de cartes à puces 153. Le fichier rFich.S# sera alors copié dans le module de mémoires Flash de 64 kilooctets du microcontrôleur de la carte à puces. Bien entendu, la carte à puces SC possède en interne une clé secrète kLi de la même manière que la carte CL. Cette clé est utilisée lors d'une procédure d'identification similaire à celle qui a lieu entre le lecteur LCL et la carte CL. Des modifications du contenu de la carte SC ne peuvent être effectuées uniquement par un lecteur LCL connecté à une carte CL associée. Ainsi, pour cette variante de la réalisation de l'invention, rFich.S&num; est stocké sous une forme codée, notée erFich.S#, par la clé kS.c de la carte
CL. De plus, compte tenu des propriétés de sécurité des cartes à puces (SmartCard), erFich.S&num; et ainsi protégé contre la modification ou la lecture non autorisée. De toutes manière cette information est protégé. De plus, par l'emploi de la clé kS pour codée rFich.S#, cette carte ne peut être utilisée qu'avec la carte CL d'où les fichiers rFich.S# proviennent. Bien sûre, si l'utilisateur a acheté des licences d'un logiciel S en plus par rapport à celles qu'il a déjà dans sa carte CL, LCL copie alors erFich.S# et l'envoie vers la carte CL correspondant. Les champs de rFich.S# sont mis à jour par rapport au nombre de licences nouvellement acquises. Le nouveau fichier erFich.S# obtenu remplace ensuite l'ancien dans la mémoire interne du microcontrôleur de la carte SC.
Thus, taking into account the file format Fich.S #, the size of this file can be reduced to 66 bytes in a file named rFich.S #, by keeping only the following fields: Sft of the software, lD.c, L # .S #, kEL.S #, kX.S #. By considering only software whose user has a permanent use license, rFich.S # is sufficient to define the use of these protected software according to the present invention. Thus with a memory module of 64 kilobytes, one can store at least 990 licenses of different software whose use can be defined by rFich.S #. According to this new variant, the organization which manages aSVR, supplies a chip card (SmartCard) denoted SC, when being able to purchase a CL card, which can secure data in reading and in modification mode. SC is not illustrated. SC includes a microcontroller integrating on a single silicon wafer, a processor, a Flash memory module of 64 kilobytes, memory
DRAM and OTPEPROM. The memory accesses are controlled by the processor of the SC microcontroller. This card is a secure chip card. This smart card is used each time the user legally acquires a new license for one or more permanent use (s) of a given software protected according to the present invention. During this acquisition, this card is inserted into the smart card reader which communicates with the microcontroller 100 of the reader
LCL by means of the smart card controller 153. The rFich.S # file will then be copied into the 64-kilobyte Flash memory module of the smart card microcontroller. Of course, the chip card SC internally has a secret key kLi in the same way as the card CL. This key is used during an identification procedure similar to that which takes place between the LCL reader and the CL card. Changes to the content of the SC card can only be made by an LCL reader connected to an associated CL card. Thus, for this variant of the embodiment of the invention, rFich.S &num; is stored in an encoded form, noted erFich.S #, by the kS.c key of the card
CL. In addition, taking into account the security properties of smart cards, erFich.S &num; and thus protected against unauthorized modification or reading. In any case this information is protected. In addition, by using the kS key for coded rFich.S #, this card can only be used with the CL card from which the rFich.S # files come. Of course, if the user has purchased additional S software licenses compared to those already in his CL card, LCL then copies erFich.S # and sends it to the corresponding CL card. The fields in rFich.S # are updated relative to the number of newly acquired licenses. The new erFich.S # file obtained then replaces the old one in the internal memory of the microcontroller of the SC card.

Ainsi en cas de perte, la sauvegarde effectuée sur la carte à puces SC peut être récupérer en deux étapes : achat d'une nouvelle carte CL, connexion vers le serveur aSVR par l'intermédiaire du programme PGM.  So in case of loss, the backup made on the smart card SC can be recovered in two stages: purchase of a new CL card, connection to the aSVR server via the PGM program.

Lors de la connexion sur le serveur, I'utilisateur communique par l'intermédiaire de son programme PGM, le numéro de série ID.c de son ancienne carte CL (ID.c est une donnée publique non modifiable: il est affiché en clair sur le boîtier 60 de chaque CL). Ensuite, I'utilisateur communique le numéro de série de sa nouvelle carte CL. En échange, aSVR retourne une donnée qui est la forme codée de la clé secrète kS de la carte CL perdu. Cette clé est codée par la clé kT.d du lecteur LCL sur lequel la nouvelle carte CL est connectée. L'acquisition de la clé kS de la carte
CL perdue permet de récupérer ainsi le contenu des fichiers rFich.S#.
When connecting to the server, the user communicates via their PGM program, the serial number ID.c of their old CL card (ID.c is non-modifiable public data: it is displayed in plain text on the housing 60 of each CL). Then, the user communicates the serial number of his new CL card. In exchange, aSVR returns a datum which is the coded form of the secret key kS of the lost CL card. This key is coded by the key kT.d of the LCL reader on which the new CL card is connected. Acquisition of the card's kS key
CL lost allows you to recover the content of rFich.S # files.

Selon la variante de l'invention utilisant le radiorécepteur, le numéro ID.c de la carte CL perdue peut être communiqué oralement par téléphone. LCL reçoit alors par l'intermédiaire de son radiorécepteur numérique et sous une forme codée par la clé kLi de la semaine courante, la clé kS de la carte CL perdue et correspondant audit numéro ID.c de la carte perdue. L'acquisition de la clé kS de la carte CL perdue permet de récupérer ainsi le contenu des fichiers rFich.S#. According to the variant of the invention using the radio receiver, the ID.c number of the lost CL card can be communicated orally by telephone. LCL then receives via its digital radio receiver and in a form coded by the key kLi of the current week, the key kS of the lost CL card and corresponding to said ID.c number of the lost card. Acquiring the kS key of the lost CL card thus makes it possible to recover the content of the rFich.S # files.

De l'autre coté, aSVR lance une procédure pour désactiver l'utilisation de la carte perdue en envoyant selon la variante de l'invention précédemment décrite, le numéro ID.c de la carte perdue à tous les lecteurs LCL. On the other side, aSVR launches a procedure to deactivate the use of the lost card by sending, according to the variant of the invention previously described, the ID.c number of the lost card to all LCL readers.

Selon une autre variante de l'invention, le stockage des fichiers Fich.S# peut être effectué par le lecteur LCL en suivant les conditions de sécurités similaires au fonctionnement d'une carte CL au niveau du stockage de ces fichiers. Les fichiers Fich.S# seront alors stockés sur média d'enregistrement externe prévu pour ce stockage. On peut utiliser par exemple une DiskOnChip. According to another variant of the invention, the storage of Fich.S # files can be carried out by the LCL reader by following the security conditions similar to the operation of a CL card in terms of the storage of these files. The Fich.S # files will then be stored on external recording media intended for this storage. One can use for example a DiskOnChip.

Les fichiers stockés sur ce support sont protégés par la clé kS.d du lecteur LCL correspond. Dans cette variante, la clé kS.d est une clé secrète inscrite dans la mémoire interne 111 lors de la programmation en usine du microcontrôleur 100. Ainsi lorsqu'une ou des licence(s) de logiciels sont déplacés vers le lecteur LCL, L'accès aux logiciels protégés selon la présente invention, et associés à ce lecteur LCL peut être réalisée indépendamment de la présence d'une carte CL. Ceci permet une utilisation par toutes les personnes pouvant accéder à l'ordinateur sur lequel ledit lecteur LCL est connecté. Bien entendu, lors d'un déplacement de licences de logiciels d'une carte
CL, les informations seront mises à jour dans la carte à puces SC en obligeant la connexion de la carte à puces SC correspondant à cette carte CL sur le lecteur adapté du lecteur LCL. Par exemple lorsque deux licences d'un logiciel numéroté S# sont déplacée de la carte CL vers un lecteur LCL, le contenu du fichier eFich.S# de la carte CL et le contenu du fichier erFich.S# de la cartes à puces
SC seront modifiés en conséquence afin d'écrire un fichier d'utilisations de logiciels au niveau du lecteur LCL. Dans cette nouvelle fonctionnalité du lecteur LCL, une carte à puces du même type que SC devra être associée à chaque lecteur LCL pour permettre une sauvegarde des fichiers
Fich.S# relatifs à des licences d'utilisations permanentes de logiciels. Ainsi, cette carte à puces devra être insérée immédiatement après les déplacements des licences d'utilisations de la carte CL vers le lecteur LCL pour valider le transfert. Compte tenu du fait que les autorisations d'utilisations de logiciels copiées dans le lecteur LCL peuvent être transférer par une opération inverse à celle qui vient d'être décrite vers une nouvelle carte CL, il est donc possible de déplacer une autorisation d'utilisation d'un logiciel protégé selon la présente invention d'une carte CL vers une autre carte
CL. Les cartes à puces SC respectives de ces deux cartes CL seront bien entendu mises à jour automatiquement.
The files stored on this medium are protected by the kS.d key of the corresponding LCL reader. In this variant, the key kS.d is a secret key written in the internal memory 111 during the factory programming of the microcontroller 100. Thus when one or more software license (s) are moved to the LCL reader, L ' access to the software protected according to the present invention, and associated with this LCL reader can be carried out independently of the presence of a CL card. This allows use by anyone who can access the computer on which the LCL reader is connected. Of course, when moving software licenses from a card
CL, the information will be updated in the chip card SC by forcing the connection of the chip card SC corresponding to this card CL on the appropriate reader of the LCL reader. For example when two licenses of software numbered S # are moved from the CL card to an LCL reader, the content of the file eFich.S # of the CL card and the content of the file erFich.S # of the smart cards
SC will be modified accordingly to write a software usage file to the LCL reader. In this new LCL reader functionality, a chip card of the same type as SC will have to be associated with each LCL reader to allow file backup.
Fich.S # relating to licenses for the permanent use of software. Thus, this smart card must be inserted immediately after the user licenses have been moved from the CL card to the LCL reader to validate the transfer. In view of the fact that the authorizations for the use of software copied into the LCL reader can be transferred by an operation opposite to that just described to a new CL card, it is therefore possible to move an authorization for the use of protected software according to the present invention from a CL card to another card
CL. The respective SC chip cards of these two CL cards will of course be updated automatically.

De plus, par rapport à ladite possibilité de changer de carte CompactFlash sur une carte CL, et par rapport à des autorisations d'utilisation de logiciels relativement à une utilisation limitée, un fichier eTPS est présent sur chaque carte CompactFlash qui est utilisée par une carte CL donnée et numérotée ID.c. Ce fichier devra impérativement être présent sur toutes les cartes CompactFlash utilisées par ladite carte CL. Autrement, la carte CL ne fonctionne pas. De plus, eTPS est la forme codée du fichier TPS qui contient en première ligne le numéro ID.c, puis tous les numéros de série de logiciels S acquis selon la présente invention, par l'utilisateur de cette carte CL. Ainsi, un utilisateur ne pourra contourner les limites d'utilisations d'un logiciel d'utilisation limitée par rapport par exemple au temps ou au nombre d'exécutions, en changeant de carte CompactFlash. In addition, compared to said possibility of changing CompactFlash card on a CL card, and compared to authorizations to use software in relation to limited use, an eTPS file is present on each CompactFlash card which is used by a card CL given and numbered ID.c. This file must be present on all CompactFlash cards used by said CL card. Otherwise, the CL card does not work. In addition, eTPS is the coded form of the TPS file which contains in the first line the number ID.c, then all the serial numbers of software S acquired according to the present invention, by the user of this card CL. Thus, a user will not be able to circumvent the limits of use of a software of limited use in relation for example to the time or the number of executions, by changing the CompactFlash card.

Cette restriction s'applique selon la réalisation de la présente invention, par exemple sur les logiciels gratuits.This restriction applies according to the embodiment of the present invention, for example on free software.

Ainsi selon des variantes évidentes de réalisation qui ne seront pas décrits (cette description n'apporte rien à la compréhension et à la réalisation de la présente invention), par rapport à sa capacité de protection d'informations contre toutes modifications, la carte CL peut servir au stockage d'informations public non modifiable tel que l'identité d'une personne. Ces informations pourront être consultées par l'intermédiaire de l'interface utilisateur représentée par le programme
PGM. La carte CL peut, en effet compte tenu de sa grande capacité de stockage permettre de stocker des programmes et/ou des compteurs relatifs à une valeur donnée, de manière sécurisée contre des modifications et/ou lectures non autorisées selon un critère donné. De l'autre côté, LCL offre un moyen sécurisé pour permettre l'exécution de ces programmes supplémentaires et/ou le traitement de ces compteurs relatifs à une valeur donnée. Le microcontrôleur 100 est physiquement protégé contre des programmes dits virus informatiques. On peut ainsi envisager de définir le champ Misc des fichiers Fich.S# par des codes de programmes exécutables par le processeur CPU2 du microcontrôleur 100 ou par des compteurs de fidélité représentant le nombre de licences de logiciels achetés par l'utilisateur à un concepteur de logiciels donnés, afin de permettre des opérations commerciales correspondantes. Les codes de programmes éventuellement ajoutés dans le champ Misc peuvent permettre de modifier le comportement desdites fonctions F lors de leur exécution par le lecteur LCL, afin de rendre quasiment impossible le piratage du logiciel correspond en essayant de remonter à la fonction Fi par une surveillance des entrées et sorties de données au niveau des appels des fonctions FFi. Il est à rappeler que seule la forme codée eF des fonctions Fj sont accessibles par l'utilisateur.
Thus according to obvious variant embodiments which will not be described (this description does not add anything to the understanding and the realization of the present invention), in relation to its ability to protect information against any modifications, the CL card can be used to store non-modifiable public information such as the identity of a person. This information can be viewed via the user interface represented by the program
PGM. The CL card can, in fact, given its large storage capacity, make it possible to store programs and / or counters relating to a given value, in a secure manner against unauthorized modifications and / or readings according to a given criterion. On the other hand, LCL offers a secure means to allow the execution of these additional programs and / or the processing of these counters relating to a given value. The microcontroller 100 is physically protected against so-called computer virus programs. We can thus consider defining the Misc field of the Fich.S # files by program codes executable by the processor CPU2 of the microcontroller 100 or by loyalty counters representing the number of software licenses purchased by the user from a designer of donated software to enable corresponding business operations. The program codes possibly added in the Misc field can make it possible to modify the behavior of said F functions when they are executed by the LCL reader, in order to make it almost impossible to pirate the corresponding software by trying to go back to the Fi function by monitoring the data inputs and outputs at the level of calls to the FFi functions. It should be recalled that only the coded form eF of the functions Fj are accessible by the user.

Selon la présente invention, I'emploi d'un circuit intégré (le microcontrôleur 100) physiquement et logiquement protégé contre des attaques de virus informatiques et contre les lectures et/ou des modifications de données contenues dans le circuit, permet un très haut niveau de sécurité de protection de logiciels. Compte tenu des périphériques de communications que peut utiliser un tel circuit, les appareils selon la présente invention, n'apparaisse plus comme un appareil prohibitif de surveillance, mais un véritable outil participant activement à l'utilisation des logiciels notamment par le fait que la présente invention permet de récupérer en sécurité des licences perdues. En effet, la présente invention permet de rendre un outil de protection de logiciels, d'aspect souvent décoratif en raison du temps où il est effectivement utilisé, en un outil que l'utilisateur peut utiliser dans sa vie quotidienne par sa capacité de sécuriser le stockage de données et l'exécution de programmes. Ainsi la présente invention est un nouvel outil de protection de logiciel qui permet d'une part la distribution des logiciels indépendamment de la vente de leur droit d'utilisation, et d'autre part un développement libre des logiciels protégés selon la présente invention. Selon la présente invention, cette séparation a une grande conséquence sur le coût nécessaire pour protéger un logiciel. En effet, I'utilisation d'un seul appareil selon la présente invention, pour la protection de plusieurs logiciels indépendamment des concepteurs de logiciels, permet de distribuer le coût d'un appareil selon la présente invention sur tous les concepteurs de logiciels, de sorte que le prix d'un seul appareil selon la présente invention, devienne faible et abordable pour l'utilisateur. According to the present invention, the use of an integrated circuit (the microcontroller 100) physically and logically protected against attacks by computer viruses and against the readings and / or modifications of data contained in the circuit, allows a very high level of software protection security. Given the communications peripherals that such a circuit can use, the devices according to the present invention no longer appear to be a prohibitive monitoring device, but a real tool actively participating in the use of software, in particular by the fact that the present invention makes it possible to recover lost licenses securely. Indeed, the present invention makes it possible to make a software protection tool, often decorative in appearance due to the time when it is actually used, into a tool that the user can use in his daily life by his ability to secure the data storage and program execution. Thus the present invention is a new software protection tool which allows on the one hand the distribution of software independently of the sale of their right of use, and on the other hand a free development of software protected according to the present invention. According to the present invention, this separation has a great consequence on the cost necessary to protect software. Indeed, the use of a single device according to the present invention, for the protection of several software independently of the software designers, makes it possible to distribute the cost of a device according to the present invention to all the software designers, so that the price of a single device according to the present invention, become low and affordable for the user.

De plus, ladite séparation permet selon la présente invention, la vente de moyens de protections de logiciels indépendamment des logiciels qui utilisent ces moyens pour la protection. In addition, said separation allows according to the present invention, the sale of software protection means independently of the software which uses these means for protection.

La puissance de la présente invention au niveau des sécurités utilisées, permet compte tenu de sa vente séparée du produit logiciel, une exploitation commerciale liée à d'autres opérations. Ces opérations peuvent être des opérations qui consiste à présenter des informations confidentielles que l'utilisateur ne peut modifier ou falsifier. Elle peut servir donc à un outil permettant des accès à un système donné. Ainsi, la présente invention est un moyen de protection de logiciels qui permet des fonctionnalités parallèles à son utilisation. Ces fonctionnalités auront pour conséquence la baisse du coût des appareils selon la présente invention et la baisse du coût de protection d'un logiciel donné. La protection de logiciel selon la présente invention, devient par conséquent un système intéressant pour les petites et les grandes productions de logiciels. Les appareils selon la présente invention sont susceptibles d'une industrialisation par rapport au monde de l'industrie des logiciels et de leur protection.The power of the present invention in terms of the security used, allows, taking into account its separate sale of the software product, commercial exploitation linked to other operations. These operations can be operations which consist in presenting confidential information which the user cannot modify or falsify. It can therefore be used as a tool allowing access to a given system. Thus, the present invention is a means of software protection which allows functionalities parallel to its use. These features will result in lower cost of devices according to the present invention and lower cost of protection of a given software. The software protection according to the present invention therefore becomes an interesting system for small and large software productions. The devices according to the present invention are susceptible to industrialization in relation to the world of the software industry and their protection.

Bien entendu, l'invention n'est pas limitée aux modes de réalisation qui viennent d'être décrits et représentés. On pourra y apporter de nombreuses modifications de détail sans sortir pour cela du cadre de l'invention.  Of course, the invention is not limited to the embodiments which have just been described and shown. Many detailed modifications can be made without departing from the scope of the invention.

Claims (9)

RevendicationClaim 1. Système pour la protection simultanée de plusieurs logiciels provenant de différents concepteurs de logiciels contre le non respect des conditions d'utilisation fixées par ces concepteurs de logiciels, caractérisés en ce qu'il comprend en combinaison 1. System for the simultaneous protection of several software originating from different software designers against non-compliance with the conditions of use set by these software designers, characterized in that it comprises in combination - un lecteur (LCL) comprenant au moins un périphérique de communication (réseau, port - a reader (LCL) comprising at least one communication device (network, port E/S) créant une couche de communication supérieure permettant l'échange de données I / O) creating an upper communication layer for data exchange avec les logiciels protégés, un microcontrôleur programmable une seule fois (100) qui with protected software, a once-only (100) programmable microcontroller which intègre sur une seule entité électronique deux parties (130, 120) séparées par une interface integrates on a single electronic entity two parts (130, 120) separated by an interface (106) (106) - un appareil portatif (CL) de type carte destiné au stockage d'un grand nombre - a portable device (CL) of card type intended for the storage of a large number d'autorisations d'utilisation de logiciel protégé comportant un module d'enregistrement authorizations to use protected software including a recording module amovible de forte capacité de stockage, et un microcontrôleur (400) sécurisé contre toutes removable with high storage capacity, and a microcontroller (400) secured against all intrusions non autorisées dans ses circuits internes. unauthorized intrusions into its internal circuits. 2. Système selon la revendication 1 caractérisé en ce que la partie (130) du microcontrôleur (100) comprend au moins un module de mémoires non volatiles (111), un module de mémoires volatiles (109), un port série E/S (151), une horloge interne en temps réel (104) et un processeur maître (CPU 1).  2. System according to claim 1 characterized in that the part (130) of the microcontroller (100) comprises at least one non-volatile memory module (111), a volatile memory module (109), a serial I / O port ( 151), an internal real-time clock (104) and a master processor (CPU 1). 3. Système selon l'une quelconque des revendications précédentes caractérisée en ce que la partie (120) du microcontrôleur (100) comprend au moins un module de mémoires volatiles (110) et un processeur esclave (CPU2). 3. System according to any one of the preceding claims, characterized in that the part (120) of the microcontroller (100) comprises at least one volatile memory module (110) and a slave processor (CPU2). 4. Système selon l'une quelconque des revendications précédentes caractérisée en ce que le microcontrôleur (100) sécurise physiquement et logiquement d'une part son espace mémoire interne contre la lecture et/ou la modification non autorisé, et d'autre part l'exécution de programmes au sein de la mémoire (110) vis à vis de la possibilité pour un programme donné, exécuté dans cet espace mémoire d'extraire des données du microcontrôleur (100) présentes avant l'exécution de ce programme. 4. System according to any one of the preceding claims, characterized in that the microcontroller (100) physically and logically secures on the one hand its internal memory space against unauthorized reading and / or modification, and on the other hand the execution of programs within the memory (110) with respect to the possibility for a given program, executed in this memory space, of extracting data from the microcontroller (100) present before the execution of this program. 5. Système selon l'une quelconque des revendications précédentes caractérisé en ce que le microcontrôleur (400) comporte au moins un module de mémoires OTPEPROM (407) ou équivalent, un module de mémoires dynamiques DRAM (107) ou équivalent, et un processeur (CPU). 5. System according to any one of the preceding claims, characterized in that the microcontroller (400) comprises at least one OTPEPROM memory module (407) or equivalent, a dynamic DRAM memory module (107) or equivalent, and a processor ( CPU). 6. Système selon l'une quelconque des revendications précédentes caractérisé en ce que le lecteur comprend un récepteur hertzien pour permettre des opérations d'achat hors ligne de droits d'utilisation de logiciel protégé, de mise à jour des microcontrôleurs (100, 400), ou d'administration du lecteur (LCL) et du dispositif portatif (CL). 6. System according to any one of the preceding claims, characterized in that the reader comprises a radio receiver to allow offline purchase operations of rights to use protected software, updating microcontrollers (100, 400) , or administration of the reader (LCL) and the portable device (CL). 7. Systèmes selon l'une quelconque des revendications précédentes caractérisé en ce que le lecteur comprend un périphérique de communication pour la connexion et un système central distant pour permettre des opérations d'achat de droits d'utilisation de logiciel protégé, de mise à jour des microcontrôleur (100, 400), ou d'administration du lecteur (LCL) et du dispositif portatif (CL). 7. Systems according to any one of the preceding claims, characterized in that the reader comprises a communication device for the connection and a remote central system to allow operations to purchase rights to use protected software, to update microcontroller (100, 400), or administration of the reader (LCL) and the portable device (CL). 8. Système selon l'une quelconque des revendications précédentes caractérisé en ce que le microcontrôleur est sécurisé contre toute attaque physique et/ou logique et mémorise au moins une série de codes et de clés numériques, utilisés pour réaliser une transmission sécurisée d'information pour le transfert d'un droit d'utilisation de logiciel protégé du dispositif portatif (CL) vers un autre lecteur (LCL) ou à d'autres dispositifs portatifs (CL). 8. System according to any one of the preceding claims, characterized in that the microcontroller is secure against any physical and / or logical attack and stores at least one series of codes and digital keys, used to carry out a secure transmission of information for the transfer of a right to use protected software from the portable device (CL) to another reader (LCL) or to other portable devices (CL). 9. Système selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comprend en périphérique de sauvegarde externe sécurisé contre les lecture et/ou les modifications non autorisées.  9. System according to any one of the preceding claims, characterized in that it comprises an external backup device secured against unauthorized reading and / or modifications.
FR9800961A 1998-01-29 1998-01-29 APPARATUS FOR THE SIMULTANEOUS PROTECTION OF SEVERAL SOFTWARE INDEPENDENT OF THE SOFTWARE DESIGNER Expired - Fee Related FR2774187B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
FR9800961A FR2774187B1 (en) 1998-01-29 1998-01-29 APPARATUS FOR THE SIMULTANEOUS PROTECTION OF SEVERAL SOFTWARE INDEPENDENT OF THE SOFTWARE DESIGNER
CA002319773A CA2319773A1 (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers
EP99901657A EP1049969A1 (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers
CN 99804576 CN1295682A (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers
AU21685/99A AU2168599A (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers
PCT/FR1999/000182 WO1999039256A1 (en) 1998-01-29 1999-01-29 Simultaneous protection for several types of software of several software designers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9800961A FR2774187B1 (en) 1998-01-29 1998-01-29 APPARATUS FOR THE SIMULTANEOUS PROTECTION OF SEVERAL SOFTWARE INDEPENDENT OF THE SOFTWARE DESIGNER

Publications (2)

Publication Number Publication Date
FR2774187A1 true FR2774187A1 (en) 1999-07-30
FR2774187B1 FR2774187B1 (en) 2000-03-31

Family

ID=9522308

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9800961A Expired - Fee Related FR2774187B1 (en) 1998-01-29 1998-01-29 APPARATUS FOR THE SIMULTANEOUS PROTECTION OF SEVERAL SOFTWARE INDEPENDENT OF THE SOFTWARE DESIGNER

Country Status (6)

Country Link
EP (1) EP1049969A1 (en)
CN (1) CN1295682A (en)
AU (1) AU2168599A (en)
CA (1) CA2319773A1 (en)
FR (1) FR2774187B1 (en)
WO (1) WO1999039256A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002050642A2 (en) * 2000-12-20 2002-06-27 Nokia Corporation Method for providing multimedia files and terminal therefor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10023820B4 (en) * 2000-05-15 2006-10-19 Siemens Ag Software protection mechanism

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0089876A1 (en) * 1982-03-18 1983-09-28 Bull S.A. Method and device for the protection of software delivered by a supplyer to a user
EP0457677A1 (en) * 1990-05-16 1991-11-21 Aeg Schneider Automation Method for managing the rights-of-use of software on a computer work station and system for carrying out the method
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
EP0613073A1 (en) * 1993-02-23 1994-08-31 International Computers Limited Licence management mechanism for a computer system
WO1997004412A2 (en) * 1995-07-19 1997-02-06 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1997040448A1 (en) * 1996-04-23 1997-10-30 Chou Wayne W Method of metering and protecting computer software

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0089876A1 (en) * 1982-03-18 1983-09-28 Bull S.A. Method and device for the protection of software delivered by a supplyer to a user
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
EP0457677A1 (en) * 1990-05-16 1991-11-21 Aeg Schneider Automation Method for managing the rights-of-use of software on a computer work station and system for carrying out the method
EP0613073A1 (en) * 1993-02-23 1994-08-31 International Computers Limited Licence management mechanism for a computer system
WO1997004412A2 (en) * 1995-07-19 1997-02-06 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1997040448A1 (en) * 1996-04-23 1997-10-30 Chou Wayne W Method of metering and protecting computer software

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002050642A2 (en) * 2000-12-20 2002-06-27 Nokia Corporation Method for providing multimedia files and terminal therefor
WO2002050642A3 (en) * 2000-12-20 2003-11-13 Nokia Corp Method for providing multimedia files and terminal therefor
US7463738B2 (en) 2000-12-20 2008-12-09 Nokia Corporation Method for providing multimedia files and terminal therefor

Also Published As

Publication number Publication date
CN1295682A (en) 2001-05-16
EP1049969A1 (en) 2000-11-08
CA2319773A1 (en) 1999-08-05
FR2774187B1 (en) 2000-03-31
WO1999039256A1 (en) 1999-08-05
AU2168599A (en) 1999-08-16

Similar Documents

Publication Publication Date Title
EP0089876B1 (en) Method and device for the protection of software delivered by a supplyer to a user
RU2388051C2 (en) Random password, automatically generated by basic input/output (bios) system for protecting data storage device
US20070061893A1 (en) Methods and devices for copy protection of software
CA2971670A1 (en) Method for processing a transaction from a communication terminal
US20070074050A1 (en) System and method for software and data copy protection
FR2861875A1 (en) PORTABLE DATA STORAGE DEVICE WITH USB INTERFACE PROTECTED BY BIOMETRIC PARAMETERS, COMPRISING A BIOMETRIC DATA PROCESSOR ACCESSIBLE THROUGH THE USB INTERFACE
CN101036099A (en) Centralized management of digital rights licensing
EP0552077B1 (en) Mass memory card for microcomputer with facilities for execution of internal programs
EP1086411B1 (en) Method for verifying the execution of a software product
US20240193567A1 (en) Method for trading a digital asset
EP0995175A1 (en) Method for managing a secure terminal
FR2762417A1 (en) Security system preventing unauthorised copying of computer software from distribution disks
EP0720098B1 (en) Apparatus for securing information systems organised around microprocessors
FR2774187A1 (en) Simultaneous protection of one or more software applications independent of software developer
CH716295A2 (en) A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.
FR3058814A1 (en) METHOD FOR PROCESSING TRANSACTIONAL DATA, COMMUNICATION TERMINAL, CARD READER AND CORRESPONDING PROGRAM.
WO2008084154A2 (en) Processing of data associated with a digital service
CH716293A2 (en) Decentralized signature process, under biometric control and subject to personal identification, of a transaction intended for a blockchain.
FR2828303A1 (en) Protection of software against unauthorized use, reproduction or alteration, e.g. for protection of chip card software or software protected by a material key associated with a USB port using a command re-naming principle
Nagaty E-Commerce Business Models: Part 1
FR2812423A1 (en) Card payment for an Internet transaction, uses code table prepared when card is manufactured with server interrogation of user who must return correct entries from the code table
EP3032450B1 (en) Method for checking the authenticity of a payment terminal and terminal thus secured
CH716299A2 (en) Method of signing a transaction intended for a blockchain, by means of a cryptographic key distributed among the nodes of a peer-to-peer network.
CH716300A2 (en) Process for signing a transaction intended for a blockchain, by means of a cryptographic key distributed among the nodes of a peer-to-peer network on which this blockchain is deployed.
EP4338078A1 (en) Method for executing a program loaded into the non-volatile memory of a microcontroller forming part of an integrated circuit

Legal Events

Date Code Title Description
TP Transmission of property
AU Other action affecting the ownership or exploitation of an industrial property right
CA Change of address
TP Transmission of property
ST Notification of lapse