WO1997036263A1 - Function access control system comprising a clock synchronisation device - Google Patents

Function access control system comprising a clock synchronisation device Download PDF

Info

Publication number
WO1997036263A1
WO1997036263A1 PCT/FR1997/000504 FR9700504W WO9736263A1 WO 1997036263 A1 WO1997036263 A1 WO 1997036263A1 FR 9700504 W FR9700504 W FR 9700504W WO 9736263 A1 WO9736263 A1 WO 9736263A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
unit
value
substituted
variables
Prior art date
Application number
PCT/FR1997/000504
Other languages
French (fr)
Inventor
Yves Audebert
Original Assignee
Activcard
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
Priority claimed from US08/620,162 external-priority patent/US5737421A/en
Priority claimed from FR9604797A external-priority patent/FR2747814B1/en
Application filed by Activcard filed Critical Activcard
Priority to AU22974/97A priority Critical patent/AU2297497A/en
Priority to JP9534076A priority patent/JP2000508098A/en
Priority to EP97915536A priority patent/EP0891610B1/en
Priority to AT97915536T priority patent/ATE218233T1/en
Priority to DE69712881T priority patent/DE69712881T2/en
Priority to DK97915536T priority patent/DK0891610T3/en
Publication of WO1997036263A1 publication Critical patent/WO1997036263A1/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/20Individual registration on entry or exit involving the use of a pass
    • G07C9/21Individual registration on entry or exit involving the use of a pass having a variable access code
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/20Individual registration on entry or exit involving the use of a pass
    • G07C9/215Individual registration on entry or exit involving the use of a pass the system having a variable access-code, e.g. varied as a function of time

Definitions

  • the present invention relates to an electronic system for authenticating people and / or messages, in particular for controlling access to a function, enabling a user to conditionally obtain a service or other service to be provided by a specialized service unit associated with the system in question. More particularly, the invention relates to a system for controlling access to a computer or, more generally to a computer network, or for authenticating messages processed in such a computer or computer network, the use of these being reserved to persons having duly legitimized themselves.
  • Such networks can be used, for example, to provide all kinds of services involving a transaction, most often for economic consideration, such as teleshopping, pay-TV, home banking, interactive TV channels, or also facsimile. -similar confidential etc.
  • Known systems of this kind generally include at least one portable electronic device (called for convenience “card” in the following description) and at least one electronic central verification device (called “server” in the following description) intended to conditionally issue access authorizations to said function.
  • Such authorization is only issued if a password generated in the card matches a password generated in the server.
  • These passwords are obtained by encrypting a variable using an encryption algorithm using an encryption key, operations that are performed simultaneously in the card and in the server.
  • the encryption process involves the parameter " time which requires the use of clocks both in the cards and in the servers. In the ideal case, these clocks should be synchronized with each other which in practice is difficult to obtain, especially if one seeks to implant in the cards, for obvious reasons, clocks not having too high a precision.
  • each card includes a processor intended to iteratively calculate a password using an encryption algorithm.
  • the latter periodically encrypts a parameter (called “seed") which in turn is a function of the parameter used during the previous calculation.
  • the card and server clocks must in principle be synchronized in order to avoid unjustified access refusals (which do not result from fraudulent or erroneous requests made by the card user).
  • the server clock can be very precise, it is not the same for those of the cards.
  • the low cost of the cards is a particularly important design constraint, it is not possible to incorporate costly precise clocks devoid of drift. In practice, precise synchronization of the card and server clocks is therefore hardly possible.
  • This process can only work correctly if the card clock is either synchronous with that of the server with a predefined tolerance, or delayed compared to the server clock. Indeed, if the card's clock is ahead of that of the server, the latter will not be able to find the password calculated in the card during the current access request, because the server will only perform iterations until it reaches that corresponding to the current minute of its own clock. In this case, no access request, even legitimately formulated, will be successful.
  • Patent application EP 0 324 954 describes an access control system in which the user transmits to the server synchronization data relating to the number of access requests formulated previously. More precisely, if after calculation of the passwords in the card and in the server, there is a mismatch, the server displays a time datum relating to the access request made using the card concerned. This data must be entered in the card by the user so that the same number of access requests is recorded in this card and in the server.
  • This system of the prior art has the disadvantage that the user is used for the synchronization procedure, and that the number of access requests previously formulated is disclosed to a possible fraudster, while this number is used to calculate the password. It would therefore be better to keep it secret.
  • the object of the invention is to provide an authorization system free from the drawbacks of the prior solutions described above.
  • the invention therefore provides to provide an authentication system in which each card can provide synchronization information to the server so that the latter is capable of synchronizing with the clock in each card, provided that the relative drifts respective clocks of the cards and the server remain within predefined limits.
  • the subject of the invention is therefore a system for authenticating people and / or messages, comprising at least a first portable unit personalized for a user, and at least a second verification unit capable of delivering an authentication function authenticating the person and / or messages.
  • the first unit comprises: first generator means for generating at least a first variable; first calculation means for producing a first password using at least one first encryption algorithm intended to encrypt at least said first variable; and transmission means for transmitting the first password to said second unit.
  • the second unit comprises: second generating means for, in response to the formulation of an access request via any one of the first units, generating at least one second variable assigned to this first any unit; second calculation means for generating a second password using at least one second encryption algorithm in order to encrypt at least the second variable, the first and second variables being generated in concert, but independently in said first and second units; means for comparing the first and second passwords; and means for, in the event of a predetermined match of the passwords, deliver an authentication function.
  • the transmission means are arranged to transmit with the first password n least significant digits belonging to said first variable from said first unit to said second unit.
  • the second unit also includes: (a) substitution means for, on the basis of the current value of the second variable, generating a substituted variable in which the n least significant digits are replaced by the n most significant digits lower of the first variable, the substituted variable thus comprising a first group replaced by n digits of the lowest weight and a second group of m digits with the highest weight; and
  • the variables subject to encryption in the card and in the server can be matched with each other in order to allow the production of passwords which are identical or at least which have between them a predetermined relationship, 'and this for each access request made despite the derivatives that these variables may undergo.
  • the means of calculating the second unit may employ a different encryption algorithm than that of the means of calculation of the first unit.
  • the algorithm in the second unit can be a decryption algorithm applied to the first password in order to derive the first variable generated in the first unit, which variable is compared in the second unit to the second variable which is generated there. . If the variable is time-dependent, this match may require no additional iteration in the server. If the variable is the number of authentication requests made by the card, the number of iterations that might be necessary would remain limited to a very low value.
  • FIG. 1 is a general diagram of a system authentication according to the invention
  • Figure 2 is a simplified flowchart illustrating the principle of the flow of operations in the portable unit or card belonging to the system of the invention, when an authentication request is made
  • Figures 3, 3A and 3B show a simplified flowchart illustrating the principle of the flow of operations in the central unit or server belonging to the system according to " the invention, when an authentication request is made
  • FIG. 1 is a general diagram of a system authentication according to the invention
  • Figure 2 is a simplified flowchart illustrating the principle of the flow of operations in the portable unit or card belonging to the system of the invention, when an authentication request is made
  • Figures 3, 3A and 3B show a simplified flowchart illustrating the principle of the flow of operations in the central unit or server belonging to the system according to " the invention, when an authentication request is made
  • FIG. 4 is a partial flow diagram illustrating a detail of the operation of the server concerning the variation as a function of the duration of use of a card, of the validity range imposed on a clock synchronization value;
  • FIG. 5 is a flowchart of a first variant of a detail of the operation of the server by which the system can adapt to the drift of the card clocks during their use;
  • FIG. 6 shows a second variant of the adaptation to the drift of the card clocks;
  • FIG. 7 is a flowchart of a detail of the operation of the server concerning a procedure for monitoring the importance of the drift of the clocks on a predetermined period of time;
  • FIG. 8 shows a flowchart of the mode of calculation of a derived encryption key used for the calculation of the password.
  • FIG. 1 shows a very simplified diagram of an authentication or access control system according to the invention.
  • the system is supposed to give conditional access to a function which is symbolized by the rectangle 1 in figure 1.
  • the term "function" must be taken in a very broad sense. It designates any authentication function, in particular an authentication to which access is conditioned by an authorization involving a verification of the card using which the request is made, and preferably also an identification of the person requesting the access to the function to know if his request is legitimate.
  • the function can be of any kind, for example a function for accessing a room, a computer network or a computer, to a pecuniary transaction (home shopping, home banking, interactive game show, pay TV) etc.
  • message authentication functions fall expressly within the scope of the present invention.
  • the system according to the invention can comprise at least a first unit 2 called "card” and at least a second unit 3.
  • the control system access according to the invention may include a large number of first units and one or more second units, but in any case in a generally significantly lower number.
  • the numbers of units 2 and 3 are therefore in no way limitative of the invention.
  • the first unit or card 2 is preferably portable and personalized in order to be personally assigned to a given user. It is for example in the form of a calculator or a credit card and it has a public identification number 5 shown schematically in Figure 1. This number can be written in plain text and assigned to it at the time of its initialization.
  • the personal identification number is secret and normally known only to the authorized user of the card.
  • the PIN number must be entered there by the user, the card comparing the PIN number entered with a value which is stored there. If the PIN number entered and the stored value match, the user receives authorization to use the card; otherwise the card will not work to generate a password.
  • the public identification number it identifies the card itself vis-à-vis unit 3 among all the cards with which the system is called to work.
  • the card 2 comprises a keyboard 6 intended to allow the introduction of information, such as for example the identification numbers already mentioned, as well as various function keys 7. It also comprises a display screen 8 and is provided with 'An integrated circuit 9 comprising in particular a duly programmed microcontroller as well as the usual ROM and RAM memories.
  • the card 2 also includes a communication device 10 making it possible to communicate with the second unit 3, either directly or by a transmission link at more or less long distance.
  • This device can be presented in many aspects, for example a DTMF telephone link, a device for transmitting data by infrared rays, a device called "in connected mode" in which the card is inserted in an appropriate reader or any other device. transmission well known in the art.
  • the second unit 3 first of all includes interface means making it possible to ensure communication with the card 2.
  • these interface means are symbolized by a rectangle 12; they can come in many forms. It can be for example a dedicated dedication reader, but it can also be in the form of a computer terminal inserted for example in a network, or even a personal computer equipped with an interface with infrared rays. , etc. Their particularity is that they can communicate in an appropriate form with the card or cards which is or are associated with them.
  • the interface means 12 can comprise a keyboard 13 and a display screen 14 to allow a user to enter information to be communicated to a part 15 of the second unit 3, such as for example passwords or data to be authenticated relating to function 1.
  • this information and / or this data can be carried out in other ways, in particular automatically without manual intervention by the user, for example by the simple introduction of the card into the interface 12 or by one of the function buttons 7 causing by example the emission of modulated infrared rays.
  • the interface 12 communicates with the other part 15 of the second unit 3 called "server” in the present description.
  • This communication symbolized by the connection 16 can be done at short or long distance by any suitable means.
  • the information circulating on this connection is in particular the password to be checked in the server 15 and possibly data or messages to be authenticated and to be used in the server.
  • the server 15 comprises in particular a processor 17 and a memory or data bank 18.
  • the processor is able to conditionally release the functions 1, targeted by the access requests formulated by the various cards, these functions being able to be provided to the inside the server (as shown in Figure 1) or outside. Note that the server generally cooperates with a large number of cards via interfaces such as the interface 12.
  • FIG. 2 represents a simplified flowchart of the various operations which take place when a request for access to a function is made by the user of a card.
  • the public identification number 5 must be communicated to the server 15.
  • This operation can be carried out in various ways. For example, it can be communicated directly to the server as soon as the card is inserted in the interface 12. It can be typed directly on the keyboard 13 thereof by the user himself, or else on the keyboard 6 of the card 2 and transferred by the communication device 10. The communication can " also be done by a remote link, such as a " telephone line or over the air.
  • the user must also give his legitimation by typing in 20 his personal identification code or PIN code on the keyboard 6 of the card.
  • the code entered is compared at 21 with a PIN code stored in the card memory.
  • the card refuses any use at 22, the user being able to be allocated possibly several consecutive attempts before a final refusal is opposed to him, if they all remain unsuccessful.
  • the program triggers the password calculation operation.
  • This calculation consists of an encryption using an encryption algorithm which can be secret or public. In the latter case, it may be an algorithm called DES (Data Encryption Standard) by specialists in this technique, DES being a public algorithm working with a secret key.
  • DES Data Encryption Standard
  • the algorithm uses input parameters which are functions of dynamic variables which in a particular embodiment are three in number. This concept is also used in the embodiment described in the present description.
  • a first is a variable N stored in a register or counter 24 (FIG. 2) and a function of a number of access requests made by the card and a time variable T stored in a register or counter 25.
  • Each variable is presented in 32 bits for example. They can represent the real value of the number of access requests or time or also a value resulting from the application of any mathematical function to these variables.
  • the third variable dynamic is a secret encryption key Kn used by the algorithm to encrypt " the two variables just mentioned.
  • the algorithm can also produce a value based on the current values of Kn, N and T , or Kn is encrypted with a key comprising a value which is a function of N and T.
  • the encryption key Kn is stored in a register 26 and it is updated on each access request, as explained below with regard to the figure 8.
  • the variable T to be encrypted comes from a time counter 27 which is controlled by a base clock 28 of the card whose output is divided so that the counter 27 is incremented with a predetermined time resolution, for example every 0.5 seconds.
  • the number contained in the counter 27 is subjected to an extraction operation at 29 by which a predetermined number of least significant digits is separated (or 8 bits in the example, or more general the least significant digits of any number system like the binary, hexadecimal number system etc.). These digits are rejected and are no longer used for calculating the password.
  • the rank of the digit of weight immediately higher than the rejected digits determines a time resolution whose corresponding time unit will be called X later, and with which the password can be calculated.
  • the higher the resolution the more the validity period of a password calculated at a given time will be short.
  • security is reinforced all the more as the resolution is important.
  • the number of remaining digits (24 bits in this case) symbolized at 31 is subjected to a 32-digit complementation operation, by which the corresponding number receives a certain number of digits (8 digits of value 0 in the example) on these ranks of the heaviest weight.
  • the actual number of digits received will naturally correspond to the number of separate digits in the extraction module 29.
  • the resulting number is the second variable proper which will be subject to encryption. It is stored in register 25. It will be noted that the least significant digit constitutes the time unit X which determines the resolution in question. If the system works in binary numeration and if the step of the counter 27 is 0.5 '', as indicated above by way of example, the time unit X can have values of 0.5 '', l '', 2 '', 4 '', 8 "etc.
  • the content of the register 24 representing the number of authentication requests (sometimes called the number of events by specialists) made is placed in a register 24 '.
  • the two variables T and N thus generated are subjected to encryption according to a password calculation process schematized in the rectangle in dashed lines 33.
  • This calculation implies in 34 a concatenation or any other mathematical and / or logical combination of the two variables N and T from registers 24 ′ and 25, then the encryption by the algorithm at 35, the latter possibly being a secret or public algorithm (DES).
  • the calculation generates a result A in 36 of which in 37 is removed a group of digits of the least weight - or of the most weight.
  • the number of digits in this group is " fixed by a predetermined value" length A "or Y (chosen at 56 in the example). This operation generates the value Ac.
  • this value Ac is completed with groups of digits least significant LSB (N) and LSB (T) of the values contained in the registers 24 'and 25 respectively (in the example, each of these groups has 4 digits).
  • the encryption performed by the operations globally designated by the rectangle 33 generates a new value of variable N at 39, the current value N being increased for example by one unit.
  • the new value of N can be obtained by increasing each time the current value by two units (or by Any other value.)
  • the increase value can be changed with each access request. It is clear that the increase itself as well as the way to increase must be the same in the map and in the server.
  • the new val eur of N is used for a calculation operation at 40 intended to develop the new value Kn + 1 of the third dynamic variable or secret encryption key.
  • the result of this operation at 40 is substituted for the old key Kn in the register 26 to be used when a new authentication request is presented.
  • the value obtained at 38 is displayed on the screen 8 of the card 2 to be communicated to the server 15, for example by typing the word on the keyboard 13 of the interface 12.
  • This communication can also be carried out automatically by means of the links 10 and 16 or by any other appropriate means of communication (block 41).
  • the server 15 keeps in its memory or data bank 18 a table containing several values specific to each card 2 (see also Figures 4 to 7).
  • the memory 18 contains in particular the current value Kna of the encryption key and the value of the number of accesses made with this card, these variables being generated in concert with the production of these same variables in the map, their relation being able to be of any predetermined type, the identity being the preferred relation and used in the described embodiment. It will be noted in this regard that these variables are never transferred from the cards to the server, nor vice versa and therefore never circulate on the transmission lines 10 and 16.
  • the public identification number of the user (block 5 of FIG. 1) is also transmitted to the server 15 to enable him to extract from its memory the values Kna and Na concerning the card in question (block 50 of "FIG. 3).
  • the components of the password are then restored as symbolized respectively in 51, 52 and 53.
  • the number of access requests it should be noted that there may be a drift between the one counted in card 2 and the one counted in server 15. Indeed, the user of card 2 may make a request authentication without completing it, in other words without, for example, transferring the password to the second unit 3. This could also be done with bad intentions by a fraudster wishing to disrupt the system. It is clear that such a disparity between the number counted in the card and the one counted in the server can only go one way, the excess is therefore always " in the card.
  • the number of access requests constitutes one of the variables subject to encryption in the card and in the server and, moreover, in the embodiment described the encryption key depends on this number, an access request complete following one or more incomplete access requests must give rise to an iterative calculation of the password in the server until the difference between the numbers counted on both sides is compensated.
  • the value Na extracted at 54 from memory 18 is therefore subjected in 55 to a substitution operation during which the value LSB (Na) coming from memory 18 is replaced by the value LSB (N) coming from card 2, the rest HSB (N) of the value Na being by hypothesis the same as that of the variable N in the card 2.
  • This operation generates a value symbolized near block 56 and called Ne.
  • this variable Ne includes a substituted first group of least significant digits LSB (N) and a group of most significant digits HSB (N) or HSB value (N).
  • This value Ne is subjected in 57 to a test to determine if it is strictly less than the value Na extracted from memory 18. If it is greater than or equal to this value, the test is affirmative and the process passes to a subtraction operation in 58 in order to calculate the difference D between the values Ne and Na. The result determines the number of iterations necessary for the server to "catch up" with successive password calculations the corresponding number in the card. If the difference D is equal to zero, there was no difference between the access numbers recorded in the card and in the server respectively, so that no iteration is then necessary. Otherwise, the " iterations " required are performed at 59.
  • the value HSB (N) is incremented at 60 to find a substituted and adjusted value Ncl (block 61). This value is then ready in 62 to serve as a dynamic variable to be encrypted. It should be noted that the modification of the HSB value (N) must be made in accordance with the particular process chosen in the card (increase of one or two units etc.) for the derivation of the new value of the variable N , process which is executed in the module 39 of figure 2 described above.
  • D in 58 will be equal to 2, two iterations will be necessary so that Na becomes equal to N and Ne also equal to 24.
  • the test at 57 will be negative, because Nc ⁇ Na. Consequently, the HSB value (N) will be increased by one and an Ncl value equal to 31 is generated.
  • the number of iterations required will always be relatively low compared to the number of iterations required in the system of the aforementioned US patent " 5,361,062 in which the encryption key is itself " a function of time.
  • the maximum admissible difference D is equal to 9 and access will be refused if D> 10 (in decimal units ). It is possibly possible to impose a limit on the drift of the number of access requests recorded in the server 15 compared to that counted in the card 2.
  • the value D can therefore be subjected to a test at 63 to verify if it is greater than a value Dx constituting the maximum admissible difference. If it is found that this value is exceeded, access may be refused in 64.
  • the value HSB (N) can also be modified in other ways than by incrementing a unit to find the value Ne in accordance with the various variants of incrementing the variable N. In other words, this modification can be done in accordance with any appropriate mathematical function.
  • the access control system knows a REF-TIME reference time in relation to which all the cards and the server or servers are referenced. This time is for example the moment when the system is put into service for the first time (for example on January 1, 1996 at OOhOO'OO '').
  • the server includes a base clock 70 or system clock (FIG. 3B), the precision of which is in principle much higher than that of the clocks of the cards 2.
  • a register 71 contains the difference between the position of this clock and the reference time. REF-TIME, this difference being called ⁇ REF-TIME.
  • the server 15 establishes in 72 the difference between the value of its base clock and the value ⁇ REF-TIME, which gives rise in 73 to a value HORL.SERV. server clock established on 32 digits.
  • This clock value HORL.SERV. has the same time resolution as the value HORL.CARTE contained in the counter 27 (0.5 '' in the example described).
  • the value HORL.CARTE which represents the difference between the current time and the value ⁇ REF-TIME is loaded into register 27 (FIG. 2) of the card considered.
  • register 27 (FIG. 2) of the card considered.
  • the current value HORL.SERV. of the register 73 is subjected to several operations at 74 which are identical to those carried out in the card 2 and shown diagrammatically by the modules 29 to 32 of FIG. 2. They are therefore not detailed in FIG. 3B.
  • the resulting value is symbolized in block 75.
  • a group of least significant LSB digits (Ta) (four bits in the example; Ts value) is removed from this resulting value and replaced by the LSB value (T) of the block 53, operation which is symbolized by block 76.
  • This substitution generates a substituted value Tel written in the module 77. It therefore includes the synchronization value LSB (T) sent by the card to the server during the transfer of the password Ac .
  • This last value constitutes a group of least significant digits.
  • the rest of the digits' of the substituted value Tel forms a group of most significant HSB (T) digits.
  • the server contains in its memory 18 information or range of validity Tv (which is formed by the difference between the value Ta and the value T) for the synchronization value which is therefore subject to a threshold.
  • this range of validity Tv can take the following forms: -5 ⁇ Ts ⁇ +4 (block 78) or
  • Ts being the difference between the value Ta and the value Tel determined in particular by the value LSB (T) coming from card 2. It will be noted that the validity range Tv is preferably adjustable, which will be described in more detail below with reference to FIG. 4.
  • the substituted value Tel present in module 77 is subjected to a synchronization process by means of which it is modified, if necessary, as a function of the validity range Tv in order to compensate for the drift presented by the content of the counter or register 27 by compared to that of the counter or register 73 of the server 15.
  • This process begins with a test at 79 to verify whether the value Tel is compatible with the range of validity Tv.
  • this operation involves first the calculation of the difference between the values Ta and Tel, this difference being subjected to a comparison with the first range of validity Tv mentioned above.
  • an operation in 81 subtracts a unit of the least significant digit from the group of HSB digits (T) and the result Tc2 (which is a first variable substituted and adjusted) is again subjected to a test in 82 to check if it is compatible with the range Tv. If the answer is affirmative, it will be this value Tc2 which will be adopted in 80 for the encryption in the form of the variable Te. Otherwise, an operation symbolized at 83 increments by one in the value Tel the least significant digit of the group of HSB digits (T). The result Tc3 (which is a second substituted and adjusted variable) is again subjected to a test at 84 to check whether it is compatible with the range of validity Tv.
  • Tests 82 and 84 are identical to test 79 and therefore also involve the calculation of the difference between the substituted value Ta and the substituted and adjusted value Tc2 or Tc3, respectively, then a comparison of this difference with the range of validity Tv.
  • the maximum difference at any time between the card clock and the server clock will be ⁇ 8 '.
  • This maximum difference ( ⁇ 8 ') is within the validity range (21'20'') mentioned above. If the validity range is chosen with a range of more than 10 time units X, a process similar to that implemented for the number of access requests N must be executed, when the maximum admissible difference Dx> 9. This means that the HSB (T) value can be increased or decreased by more than one unit.
  • the temporal calculation may involve, instead of an increment or a decrement by a unit of the value HSB (T) , any other modification of this value implementing any appropriate mathematical function.
  • the card and the server may not generate mo 'ts of the corresponding pass. The card will then have to be reinitialized before it can be used again.
  • the validity range (of 21'20 "in the example chosen above) implies that the authentication process will not be compromised by the drift of the clocks indicated by way of example. It should however be emphasized that security of the system remains preserved since in this range the system can potentially calculate ten different passwords based on an access request on the new time value increased by the time unit X compared to the previous time value. therefore does not keep the same password during the validity period.
  • FIG. 4 represents a variant of the invention in which the range of validity Tv is made variable as a function of the time of use of each card.
  • the memory 18 of the server 15 keeps a value for each of the cards representing its date of commissioning or initialization. This value is extracted therefrom at 93 on each authentication request following operation 50 (FIG. 3A).
  • the position of the clock 70 of the server 15 is algebraically combined at 94 with this value and the result is subjected to a test at 90 to verify whether since the date of commissioning, a predetermined period of time has elapsed ( 1 year for example). As long as the response to the test remains negative, the range of validity Tv established at 78 (FIG.
  • the validity range Tv is defined with new limits at 92 fixed for example at -5 ⁇ Ts ⁇ +4.
  • the limits of the validity range Tv can be modulated in other ways using other values than those which have just been indicated.
  • the "synchronization process" executed in the server 15 at each access request corresponds to a certain synchronization value which represents the difference Toffset between the clocks of the card 2 and of the server 15 at the time when an authentication request is made.
  • This Toffset value can be used in the server for calculating the password
  • Two other variants of the system according to the invention shown in FIGS. 5 and 6 make it possible to implement this registration process and Table 2 below. "illustrates by an example encrypted in time units X, Toffsetl and Toffset2 being respectively the drifts for a given authentication request and for an immediately following authentication request. It will also be noted that in this example, the second protocol and the second range mentioned above (only the least significant digits of the various values have been indicated):
  • the memory 18 of the server 15 comprises a section in which are recorded for all the cards of the system particular ⁇ REF-TIME values. These values are updated " for each card when an access request is completed. " For this, the general value ⁇ REF-TIME (module 71) of the system is additively combined in 100 to the value Toffset of the request d access in progress (module 101) and the result of this operation is stored in memory 18 at an address specific to the card in question. During a subsequent access request, this value is extracted from the memory 18 and subtracted at 102 from the current value of the system clock 70 and the result is placed in the register 73 of the server to be used for this request for access. This process takes place individually for each card for each access request made with it.
  • the value Toffset itself (module 110) observed for a given card during an access request is recorded in the memory 18 of the server 15 at the time when this access request ends . It is extracted therefrom for the following access request to be combined additively in 111 with the value contained in the register 73 to give rise to the corrected value of the server clock value (module 112). This is used during this next access request for the calculation performed in the server 15.
  • FIG. 7 represents another variant of the invention making it possible to control the evolution of the drift and, if necessary, to draw conclusions therefrom on the advisability of authorizing or not a subsequent use of the card.
  • the memory 18 of the server 15 stores for each card the drift value and the position of the clock 70 of the server valid during the previous access request.
  • the drift value is used, as shown in " Figure 6, to give the adjusted value (module 112).
  • the previous value of the clock 70 is subtracted from the current value of this at 113 to give a value ⁇ T which represents the time that has elapsed since the last access request (module 114).
  • the server 15 calculates the value Te as described previously with respect to FIG. 3B, the set of corresponding calculation operations being summarized in FIG. 7 by the module 115
  • the algebraic combination (module 116) of the calculation result and the value of block 73 then gives the new value of the drift (module 117) observed during the access request in progress.
  • This value is algebraically combined with the value of previous drift extracted from memory 18 (module 118) and the result ⁇ offset (module 119) is compared with the value ⁇ T obtained in 114 during a test in 120 which checks whether the difference observed corresponds to criteria of coh For example, it can be assumed that the drift must not exceed a given value during a predetermined period of use, otherwise an anomaly noted by the server 15 leads to a rejection of the card by 121 preventing any further request access.
  • the new values of the clock and of the drift are recorded in the memory 18 at the addresses of the card considered if the test at 120 proves to be affirmative (modules 122 and 123, respectively) to be used for the next access request. .
  • Table 3 shows a concrete example of this drift control, the values being in time units of 64 '' and the calculation taking into account the inherent time inaccuracies of the system (The values indicate only the most significant digits of weight weak and the calculation " follows the second protocol described above):
  • Fig. 7 illustrates yet another variant of the invention according to which the value ⁇ offset is used to center the validity range on the value of the module
  • the range will be -7 ⁇ Ts ⁇ +2 and if not, it will be -3 ⁇ Ts ⁇ +6, these values being given here for illustrative purposes only.
  • the value obtained at 119 in FIG. 7 is used to define the new range of validity at 124, the adaptation being able to be made with each new access request.
  • FIG. 8 shows how the encryption key Kn (Kna) can be derived from one request to the next depending on the value Nn (Nna) of the number of requests made, the two values being able to be logically combined and then encrypted to give rise to the encryption key Kn + 1 (Kan + 1) used during the next access request.
  • the values Nn + 1 and Kn are subjected in 132 to a logical combination operation, for example an EXCLUSIVE operation, or alternatively to any other mathematical function.
  • the resulting intermediate variable Z is subject to encryption at 133 using a secret or public algorithm which may possibly be the same as that used in 33 and 33a (FIGS. 2 and 3A).
  • the encryption can be carried out using an encryption key which is preferably the value of the current dynamic variable Kn, although another secret key Q (module 134) can also be used.
  • the result of the encryption operation at 133 is the new value Kn + 1 of the encryption key which will be used for the next access request (module 135).

Abstract

A system including a first unit (2) consisting of a card capable of interacting with a second unit (3) that enables access to a function (1) only under certain conditions. Both units are designed to run software for generating passwords by encrypting a plurality of dynamic variables such as a time-dependent variable and/or a variable dependent on the number of authentication requests received. Encryption is performed using a dynamic encryption key. To synchronise the values of the variables simultaneously but separately generated in the two units, only a few lowest-weight digits of each variable are transferred from the first unit (2) to the second unit (3) by adding them to the transferred password. The synchronisation data is combined with corresponding variables in the second unit in order to calculate a value therein that normally leads to a match between the passwords calculated in the respective units. The match may then enable access to the function.

Description

SYSTEME DE CONTROLE D'ACCES A UNE FONCTION COMPORTANT UN DISPOSITIF DE SYNCHRONISATION D'HORLOGES FUNCTION ACCESS CONTROL SYSTEM COMPRISING A CLOCK SYNCHRONIZATION DEVICE
La présente invention est relative à un système électronique d'authentification de personnes et/ou de messages, en particulier pour contrôler l'accès à une fonction, permettant à un utilisateur d'obtenir conditionnellement un service ou une autre prestation devant être fourni par une unité de service spécialisée associée au système en question. Plus particulièrement, l'invention concerne un système de contrôle d'accès à un ordinateur ou, plus généralement à un réseau informatique, ou d'authentification de messages traités dans un tel ordinateur ou réseau informatique, l'utilisation de ceux-ci étant réservée à des personnes s'étant dûment légitimées. De tels réseaux peuvent servir par exemple pour assurer toutes sortes de services impliquant une transaction, le plus souvent à contrepartie économique, telle que le télé-achat, la télévision à péage, la banque à domicile, les πeux télévisés interactifs, ou également le fac-similé confidentiel etc.The present invention relates to an electronic system for authenticating people and / or messages, in particular for controlling access to a function, enabling a user to conditionally obtain a service or other service to be provided by a specialized service unit associated with the system in question. More particularly, the invention relates to a system for controlling access to a computer or, more generally to a computer network, or for authenticating messages processed in such a computer or computer network, the use of these being reserved to persons having duly legitimized themselves. Such networks can be used, for example, to provide all kinds of services involving a transaction, most often for economic consideration, such as teleshopping, pay-TV, home banking, interactive TV channels, or also facsimile. -similar confidential etc.
Les systèmes connus de ce genre comportent en général au moins un dispositif portable électronique (appelé par commodité "carte" dans la suite de la description) et au moins un dispositif électronique de vérification central (appelé "serveur" dans la suite de la description) destiné à délivrer conditionnellement des autorisations d'accès à ladite fonction.Known systems of this kind generally include at least one portable electronic device (called for convenience "card" in the following description) and at least one electronic central verification device (called "server" in the following description) intended to conditionally issue access authorizations to said function.
Une telle autorisation n'est délivrée qu'en cas de concordance d'un mot de passe engendré dans la carte avec un mot de passe engendre dans le serveur. Ces mots de passe sont obtenus en chiffrant une variable à l'aide d'un algorithme de chiffrement utilisant une clé de chiffrement, opérations qui se font simultanément dans la carte et dans le serveur. Le plus souvent, le processus de chiffrement fait intervenir le paramètre "temps ce qui nécessite l'emploi d'horloges à la fois dans les cartes et dans les serveurs. Dans le cas idéal, ces horloges devraient être synchronisées les unes sur les autres ce qui en pratique est difficile à obtenir, surtout si on cherche à implanter dans les cartes, pour des raisons évidentes, des horloges n'ayant pas une précision trop élevée.Such authorization is only issued if a password generated in the card matches a password generated in the server. These passwords are obtained by encrypting a variable using an encryption algorithm using an encryption key, operations that are performed simultaneously in the card and in the server. Most often, the encryption process involves the parameter " time which requires the use of clocks both in the cards and in the servers. In the ideal case, these clocks should be synchronized with each other which in practice is difficult to obtain, especially if one seeks to implant in the cards, for obvious reasons, clocks not having too high a precision.
Un système présentant les caractéristiques générales ci-dessus est décrit dans le brevet US 4 800 590. Dans ce système, chaque carte comprend un processeur destiné à calculer itérâtivement un mot de passe à l'aide d'un algorithme de chiffrement. Ce dernier chiffre périodiquement un paramètre (appelé "germe") qui est à son tour fonction du paramètre utilisé au cours du calcul précédent.A system having the above general characteristics is described in US Pat. No. 4,800,590. In this system, each card includes a processor intended to iteratively calculate a password using an encryption algorithm. The latter periodically encrypts a parameter (called "seed") which in turn is a function of the parameter used during the previous calculation.
Dans un tel système, les horloges de la carte et du serveur doivent en principe être synchrones afin d'éviter des refus d'accès injustifiés (qui ne résultent pas de demandes frauduleuses ou erronées présentées par l'utilisateur de la carte) .In such a system, the card and server clocks must in principle be synchronized in order to avoid unjustified access refusals (which do not result from fraudulent or erroneous requests made by the card user).
Cependant, si l'horloge du serveur peut être très précise, il n'en va pas de même pour celles des cartes. En effet, comme un coût faible des cartes est une contrainte de conception particulièrement importante, il n'est pas possible d'y incorporer des horloges précises coûteuses dépourvues de dérive. En pratique, une synchronisation précise des horloges des cartes et du serveur n'est donc guère envisageable.However, if the server clock can be very precise, it is not the same for those of the cards. In fact, since the low cost of the cards is a particularly important design constraint, it is not possible to incorporate costly precise clocks devoid of drift. In practice, precise synchronization of the card and server clocks is therefore hardly possible.
Dans le brevet US 4 885 778, on calcule également périodiquement des mots de passe au cours d'intervalles successifs donnés. Une plage de validité fonction du temps est fixée dans le serveur, cette plage ayant une longueur nettement plus grande que l'intervalle de temps. Lorsqu'une demande d'accès est formulée, le serveur calcule autant de mots de passe qu'il y a d'intervalles de temps dans la plage de validité fonction du temps. Si le mot de passe de la carte concorde avec l'un "des mots de passe ainsi calculés dans le serveur, l'accès est accordé. Ce système demande un grand volume de calcul dans le serveur. Le brevet US 5 361 062 décrit un système d'authentification dans lequel, au moment où une demande d'accès est formulée, une partie de la valeur temporelle disponible dans la carte sur la base de son horloge, est transférée au serveur. L'exemple donné dans ce brevet est la valeur des minutes de l'horloge au moment de l'accès. Lorsque le mot de passe est transféré, cette valeur est utilisée dans le serveur pour examiner si la valeur des secondes de son horloge est inférieure ou supérieure à 30 secondes. Si la valeur est inférieure, le serveur prend la valeur des minutes choisie. Dans le cas contraire, la valeur des minutes dans le serveur est augmentée d'une unité.In US Patent 4,885,778, passwords are also periodically calculated during given successive intervals. A time-dependent validity range is set in the server, this range having a length significantly greater than the time interval. When an access request is made, the server calculates as many passwords as there are time intervals in the range of validity as a function of time. If the card's password matches the one "passwords thus calculated in the server, access is granted. This system requires a large amount of calculation in the server. US patent 5,361,062 describes a authentication system in which, when an access request is made, part of the time value available in the card on the basis of its clock, is transferred to the server. The example given in this patent is the value minutes of the clock at the time of access. When the password is transferred, this value is used in the server to examine whether the value of the seconds of its clock is less than or greater than 30 seconds. lower, the server takes the value of the minutes chosen, otherwise the value of the minutes in the server is increased by one.
Ce processus ne peut fonctionner correctement que si l'horloge de la carte est, soit synchrone avec celle du serveur avec une tolérance prédéfinie, soit retarde par rapport à l'horloge du serveur. En effet, si l'horloge de la carte est en avance sur celle du serveur, ce dernier ne pourra trouver le mot de passe calculé dans la carte au cours de la demande d'accès actuelle, car le serveur n'effectuera des itérations que jusqu'à ce qu'il atteigne celle correspondant à la minute actuelle de sa propre horloge. Dans ce cas, aucune demande d'accès, même formulée légitimement, ne pourra aboutir. Cependant, en incorporant dans les cartes des horloges de faible qualité (ce qui comme déjà signalé ci-dessus est souhaitable pour des raisons de coût de fabrication), il n'est pas possible de déterminer à la fabrication dans quel sens l'horloge d'une carte va dériver par rapport à l'horloge du serveur, en particulier en raison du fait que la dérive peut être provoquée par des phénomènes totalement imprévisibles, comme par exemple les variations de température à laquelle la carte peut être soumise.This process can only work correctly if the card clock is either synchronous with that of the server with a predefined tolerance, or delayed compared to the server clock. Indeed, if the card's clock is ahead of that of the server, the latter will not be able to find the password calculated in the card during the current access request, because the server will only perform iterations until it reaches that corresponding to the current minute of its own clock. In this case, no access request, even legitimately formulated, will be successful. However, by incorporating low quality clocks in the cards (which as already mentioned above is desirable for reasons of manufacturing cost), it is not possible to determine during manufacture which direction the clock d a card will drift relative to the server clock, in particular due to the fact that the drift can be caused by completely unpredictable phenomena, such as temperature variations to which the card may be subjected.
Un autre inconvénient du système selon le brevet US 5 361 062 consiste en ce que l'unité temporelle élémentaire rythmant les itérations du calcul du mot de passe ne peut être choisie à une valeur faible, car plus cette unité temporelle est petite, et plus lourde sera la charge de calcul tant pour les cartes que pour le serveur. Par conséquent, en pratique, cette unité temporelle a été fixée entre 1 et 10 minutes. Ceci signifie que chaque mot de passe engendré dans la carte reste valable pendant toute la durée de cette unité temporelle. Il en résulte une moins bonne sécurité du système. En fait, un fraudeur peut obtenir un mot de passe en l'interceptant sur la liaison entre la carte et le serveur et obtenir une autorisation d'accès, car il sera en possession du mot de passe exact.Another drawback of the system according to US Pat. No. 5,361,062 consists in that the elementary time unit rhythmating the iterations of the password calculation cannot be chosen at a low value, because the smaller, the heavier the time unit will be the computational load for both the cards and the server. Consequently, in practice, this time unit has been set between 1 and 10 minutes. This means that each password generated in the card remains valid for the duration of this time unit. This results in poorer system security. In fact, a fraudster can obtain a password by intercepting it on the link between the card and the server and obtain an access authorization, because he will be in possession of the exact password.
La demande de brevet EP 0 324 954 décrit un système de contrôle d'accès dans lequel l'utilisateur transmet au serveur une donnée de synchronisation relative au nombre de demandes d'accès formulées précédemment. Plus précisément, si après calcul des mots de passe dans la carte et dans le serveur, il y a non-concordance, le serveur affiche une donnée temporelle relative à la demande d'accès faite a l'aide de la carte concernée. Cette donnée doit être introduite dans la carte par l'utilisateur afin que le même nombre de demandes d'accès soit enregistré dans cette carte et dans le serveur. Ce système de l'art antérieur présente l'inconvénient que l'utilisateur est mis à contribution pour la procédure de synchronisation, et que le nombre de demandes d'accès formulées auparavant est divulgué à un éventuel fraudeur, alors que ce nombre sert pour calculer le mot de passe. Il serait donc préférable de le tenir secret.Patent application EP 0 324 954 describes an access control system in which the user transmits to the server synchronization data relating to the number of access requests formulated previously. More precisely, if after calculation of the passwords in the card and in the server, there is a mismatch, the server displays a time datum relating to the access request made using the card concerned. This data must be entered in the card by the user so that the same number of access requests is recorded in this card and in the server. This system of the prior art has the disadvantage that the user is used for the synchronization procedure, and that the number of access requests previously formulated is disclosed to a possible fraudster, while this number is used to calculate the password. It would therefore be better to keep it secret.
L'invention a pour but de fournir un système d'autorisation dépourvu des inconvénients des solutions antérieures décrites ci-dessus. L'invention prévoit donc de fournir un système d'authentification dans lequel chaque carte peut fournir de 1'information de synchronisation au serveur de sorte que ce dernier soit capable de se synchroniser sur l'horloge dans chaque carte, à condition que les dérives relatives des horloges respectives des cartes et du serveur restent à l'intérieur de limites prédéfinies.The object of the invention is to provide an authorization system free from the drawbacks of the prior solutions described above. The invention therefore provides to provide an authentication system in which each card can provide synchronization information to the server so that the latter is capable of synchronizing with the clock in each card, provided that the relative drifts respective clocks of the cards and the server remain within predefined limits.
L'invention a donc pour objet un système d'authentification de personnes et/ou de messages, comprenant au moins une première unité portable personnalisée pour un utilisateur, et au moins une seconde unité de vérification capable de délivrer une fonction d'authentification authentifiant la personne et/ou les messages. La première unité comprend: des premiers moyens générateurs pour engendrer au moins une première variable; des premiers moyens de calcul pour produire un premier mot de passe à l'aide d'au moins un premier algorithme de chiffrement destiné à chiffrer au moins ladite première variable; et des moyens de transmission pour transmettre le premier mot de passe à ladite seconde unité.The subject of the invention is therefore a system for authenticating people and / or messages, comprising at least a first portable unit personalized for a user, and at least a second verification unit capable of delivering an authentication function authenticating the person and / or messages. The first unit comprises: first generator means for generating at least a first variable; first calculation means for producing a first password using at least one first encryption algorithm intended to encrypt at least said first variable; and transmission means for transmitting the first password to said second unit.
La seconde unité comprend: des seconds moyens générateurs pour, en réponse à la formulation d'une demande d'accès par l'intermédiaire de l'une quelconque des premières unités, engendrer au moins une seconde variable assignée à cette première unité quelconque; des seconds moyens de calcul pour engendrer un second mot de passe à l'aide d'au moins un second algorithme de chiffrement afin de chiffrer au moins la seconde variable, les première et seconde variables étant engendrées de concert, mais indépendamment dans lesdites première et seconde unîtes; des moyens pour comparer les premier et second mots de passe; et des moyens pour, en cas d'une concordance prédéterminée des mots de passe, délivrer une fonction d'authentification. Les moyens de transmission sont agencés pour transmettre avec le premier mot de passe n digits de poids le plus faible appartenant à ladite première variable de ladite première unité vers ladite seconde unité. La seconde unité comprend également: (a) des moyens de substitution pour, sur la base de la valeur actuelle de la seconde variable, engendrer une variable substituée dans laquelle les n digits de poids le plus faible sont remplacés par les n digits de poids le plus faible de la première variable, la variable substituée comprenant ainsi un premier groupe remplacé de n digits de poids le plus faible et un second groupe de m digits de poids le plus fort; etThe second unit comprises: second generating means for, in response to the formulation of an access request via any one of the first units, generating at least one second variable assigned to this first any unit; second calculation means for generating a second password using at least one second encryption algorithm in order to encrypt at least the second variable, the first and second variables being generated in concert, but independently in said first and second units; means for comparing the first and second passwords; and means for, in the event of a predetermined match of the passwords, deliver an authentication function. The transmission means are arranged to transmit with the first password n least significant digits belonging to said first variable from said first unit to said second unit. The second unit also includes: (a) substitution means for, on the basis of the current value of the second variable, generating a substituted variable in which the n least significant digits are replaced by the n most significant digits lower of the first variable, the substituted variable thus comprising a first group replaced by n digits of the lowest weight and a second group of m digits with the highest weight; and
(b) des troisièmes moyens de calcul pour(b) third means of calculation for
(1) retenir comme seconde variable pour le calcul du second mot de passe la variable substituée, si la variable substituée et la valeur actuelle de la seconde variable sont en cohérence avec au moins une première condition prédéterminée,(1) using the substituted variable as the second variable for the calculation of the second password, if the substituted variable and the current value of the second variable are consistent with at least one first predetermined condition,
(2) si la première condition n'est pas satisfaite, ajuster dans la variable substituée le second groupe de m digits de poids le plus fort, l'ajustement étant fonction d'une seconde condition prédéterminée et engendrant une variable substituée et ajustée, et(2) if the first condition is not satisfied, adjust in the substituted variable the second group of m most significant digits, the adjustment being a function of a second predetermined condition and generating a substituted and adjusted variable, and
(3) retenir comme seconde variable pour le calcul du second mot de passe la variable substituée et ajustée.(3) use the substituted variable as the second variable for the calculation of the second password.
Il résulte de ces caractéristiques que les variables soumises au chiffrement dans la carte et dans le serveur peuvent être mises en concordance l'une par rapport à l'autre afin de permettre la production de mots de passe qui soient identiques ou du moins qui présentent entre eux une relation prédéterminée,' et ce pour chaque demande d'accès formulée malgré les dérivés que ces variables peuvent subir. De façon analogue à celle décrite dans la demande de brevet déposée ce jour au nom de la Demanderesse et ayant pour titre "Système de contrôle d'accès à une fonction, dans laquelle le chiffrement implique plusieurs variables dynamiques", les moyens de calcul de la seconde unité peuvent employer un algorithme de chiffrement différent de celui des moyens de calcul de la première unité. Par exemple, l'algorithme dans la seconde unité peut être un algorithme de déchiffrement appliqué au premier mot de passe afin de dériver la première variable engendrée dans la première unité, variable qui est comparée dans la seconde unité à la seconde variable qui y est engendrée. Si la variable dépend du temps, cette concordance peut n'exiger dans le serveur aucune itération supplémentaire. Si la variable est le nombre de demandes d'authentification formulées par la carte, le nombre d'itérations qui seraient éventuellement nécessaires, resterait limité à une très faible valeur.It follows from these characteristics that the variables subject to encryption in the card and in the server can be matched with each other in order to allow the production of passwords which are identical or at least which have between them a predetermined relationship, 'and this for each access request made despite the derivatives that these variables may undergo. Analogously to that described in the patent application filed today in the name of the Applicant and having for title "Access control system to a function, in which the encryption involves several dynamic variables", the means of calculating the second unit may employ a different encryption algorithm than that of the means of calculation of the first unit. For example, the algorithm in the second unit can be a decryption algorithm applied to the first password in order to derive the first variable generated in the first unit, which variable is compared in the second unit to the second variable which is generated there. . If the variable is time-dependent, this match may require no additional iteration in the server. If the variable is the number of authentication requests made by the card, the number of iterations that might be necessary would remain limited to a very low value.
D'autres caractéristiques et avantages de l'invention apparaîtront au cours de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés sur lesquels: - la figure 1 est un schéma général d'un système d'authentification selon l'invention; la figure 2 est un organigramme simplifié illustrant le principe du déroulement des opérations dans l'unité portable ou carte appartenant au système de l'invention, lorsqu'une demande d'authentification est formulée; les figures 3, 3A et 3B montrent un organigramme simplifié illustrant le principe du déroulement des opérations dans l'unité centrale ou serveur appartenant au système selon " l'invention, lorsqu'une demande d'authentification est formulée; la figure 4 est un organigramme partiel illustrant un détail du fonctionnement du serveur concernant la variation en fonction de la durée d'utilisation d'une carte, de la plage de validité imposée à une valeur de synchronisation des horloges; la figure 5 est un organigramme d'une première variante d'un détail du fonctionnement du serveur par lequel le système peut s'adapter à la dérive des horloges des cartes au cours de leur utilisation; la figure 6 montre une seconde variante de l'adaptation à la dérive des horloges des cartes; la figure 7 est un organigramme d'un détail du fonctionnement du serveur concernant une procédure de surveillance de l'importance de la dérive des horloges sur une période de temps prédéterminée; la figure 8 montre un organigramme du mode de calcul d'une clé dérivée de chiffrement utilisée pour le calcul du mot de passe.Other characteristics and advantages of the invention will appear during the description which follows, given solely by way of example and made with reference to the appended drawings in which: - Figure 1 is a general diagram of a system authentication according to the invention; Figure 2 is a simplified flowchart illustrating the principle of the flow of operations in the portable unit or card belonging to the system of the invention, when an authentication request is made; Figures 3, 3A and 3B show a simplified flowchart illustrating the principle of the flow of operations in the central unit or server belonging to the system according to " the invention, when an authentication request is made; FIG. 4 is a partial flow diagram illustrating a detail of the operation of the server concerning the variation as a function of the duration of use of a card, of the validity range imposed on a clock synchronization value; FIG. 5 is a flowchart of a first variant of a detail of the operation of the server by which the system can adapt to the drift of the card clocks during their use; FIG. 6 shows a second variant of the adaptation to the drift of the card clocks; FIG. 7 is a flowchart of a detail of the operation of the server concerning a procedure for monitoring the importance of the drift of the clocks on a predetermined period of time; FIG. 8 shows a flowchart of the mode of calculation of a derived encryption key used for the calculation of the password.
Sur la figure 1, on a représenté un schéma très simplifié d'un système d'authentification ou de contrôle d'accès selon l'invention.FIG. 1 shows a very simplified diagram of an authentication or access control system according to the invention.
Le système est supposé donner un accès conditionnel à une fonction qui est symbolisée par le rectangle 1 sur la figure 1. Le terme "fonction" doit être pris dans une acception très large. Il désigne toute fonction d'authentification, en particulier une authentification à laquelle l'accès est conditionné par une autorisation impliquant une vérification de la carte à l'aide duquel la demande est formulée, et de préférence également une identification de la personne demandant l'accès à la fonction pour savoir si sa demande est légitime.The system is supposed to give conditional access to a function which is symbolized by the rectangle 1 in figure 1. The term "function" must be taken in a very broad sense. It designates any authentication function, in particular an authentication to which access is conditioned by an authorization involving a verification of the card using which the request is made, and preferably also an identification of the person requesting the access to the function to know if his request is legitimate.
La fonction peut être de toute nature, par exemple une fonction d'accès à un local, à une réseau informatique ou à un ordinateur, à une transaction d'ordre pécuniaire (télé¬ achat, banque à domicile, jeu télévisé interactif, télévision à péage) etc. Par ailleurs, des fonctions d' authentification de messages tombent expressément dans la portée de la présente invention.The function can be of any kind, for example a function for accessing a room, a computer network or a computer, to a pecuniary transaction (home shopping, home banking, interactive game show, pay TV) etc. Furthermore, message authentication functions fall expressly within the scope of the present invention.
Ceci étant, on voit sur la figure 1 que selon un mode de réalisation particulier, le système suivant l'invention peut comporter au moins une première unité 2 appelée "carte" et au moins une seconde unité 3. On notera que le système de contrôle d'accès selon l'invention peut comporter un grand nombre de premières unités et une ou plusieurs secondes unités, mais en tout cas en un nombre généralement nettement plus faible. Les nombres d'unités 2 et 3 ne sont donc nullement limitatifs de l'invention. La première unité ou carte 2 est de préférence portable et personnalisée pour être affectée personnellement à un utilisateur donné. Elle se présente par exemple sous la forme d'une calculette ou d'une carte de crédit et elle porte un numéro d'identification publique 5 indiqué schématiquement sur la figure 1. Ce numéro peut y être inscrit en clair et y être affecté au moment de son initialisation. Il peut également être formé par le nom de l'utilisateur ou par toute autre information propre à celui- ci. Le numéro d'identification personnelle ou PIN, est secret et normalement connu seulement de l'utilisateur autorisé de la carte. Dans le mode de réalisation préféré, pour utiliser la carte, le numéro PIN doit y être introduit par l'utilisateur, la carte comparant le numéro PIN introduit à une valeur qui y est mémorisée. Si le numéro PIN introduit et la valeur mémorisée concordent, l'utilisateur reçoit l'autorisation d'utiliser la carte; sinon la carte ne fonctionnera pas pour générer un mot de passe. Quant au numéro d'identification publique, il identifie la carte elle-même vis-à-vis de l'unité 3 parmi toutes les cartes avec lesquelles le système est appelé à travailler. La carte 2 comporte un clavier 6 destiné à permettre l'introduction d'informations, telles que par exemple les numéros d'identification déjà mentionnés, ainsi que diverses touches de fonction 7. Elle comporte également un écran d'affichage 8 et est dotée d'un circuit intégré 9 comportant notamment un microcontrôleur dûment programmé ainsi que les mémoires ROM et RAM habituelles.This being the case, it can be seen in FIG. 1 that according to a particular embodiment, the system according to the invention can comprise at least a first unit 2 called "card" and at least a second unit 3. It will be noted that the control system access according to the invention may include a large number of first units and one or more second units, but in any case in a generally significantly lower number. The numbers of units 2 and 3 are therefore in no way limitative of the invention. The first unit or card 2 is preferably portable and personalized in order to be personally assigned to a given user. It is for example in the form of a calculator or a credit card and it has a public identification number 5 shown schematically in Figure 1. This number can be written in plain text and assigned to it at the time of its initialization. It can also be formed by the name of the user or by any other information specific to the user. The personal identification number, or PIN, is secret and normally known only to the authorized user of the card. In the preferred embodiment, to use the card, the PIN number must be entered there by the user, the card comparing the PIN number entered with a value which is stored there. If the PIN number entered and the stored value match, the user receives authorization to use the card; otherwise the card will not work to generate a password. As for the public identification number, it identifies the card itself vis-à-vis unit 3 among all the cards with which the system is called to work. The card 2 comprises a keyboard 6 intended to allow the introduction of information, such as for example the identification numbers already mentioned, as well as various function keys 7. It also comprises a display screen 8 and is provided with 'An integrated circuit 9 comprising in particular a duly programmed microcontroller as well as the usual ROM and RAM memories.
La carte 2 comporte également un dispositif de communication 10 permettant de communiquer avec la seconde unité 3, soit directement, soit par une liaison de transmission à plus ou moins longue distance. Ce dispositif peut se présenter sous de nombreux aspects par exemple une liaison téléphonique en DTMF, un dispositif de transmission de données par rayons infrarouges, un dispositif dit "en mode connecté" dans lequel la carte est insérée dans un lecteur approprié ou tout autre dispositif de transmission bien connu dans la technique.The card 2 also includes a communication device 10 making it possible to communicate with the second unit 3, either directly or by a transmission link at more or less long distance. This device can be presented in many aspects, for example a DTMF telephone link, a device for transmitting data by infrared rays, a device called "in connected mode" in which the card is inserted in an appropriate reader or any other device. transmission well known in the art.
La seconde unité 3 englobe tout d'abord des moyens d'interface permettant d'assurer la communication avec la carte 2. Dans le mode de réalisation représenté sur les figures 1 et 3B, ces moyens d'interface sont symbolises par un rectangle 12; ils peuvent se présenter sous de nombreuses formes. Il peut s'agir par exemple d'un lecteur dédicace spécialement, mais il peut également se présenter sous la forme d'un terminal d'ordinateur inséré par exemple dans un réseau, ou encore un ordinateur personnel équipe d'une interface a rayons infrarouges, etc. Leur particularité est qu'ils peuvent communiquer sous une forme appropriée avec la ou les cartes qui leur est ou sont associée(s). Les moyens d'interface 12 peuvent comprendre un clavier 13 et un écran d'affichage 14 pour permettre a un utilisateur d'introduire des informations à communiquer a une partie 15 de la seconde unité 3, telles que par exemple des mots de passe ou des données a authentifier relatives a la fonction 1. Toutefois, l'introduction de ces informations et/ou ces données "peut être réalisée d'autres manières, notamment automatiquement sans intervention manuelle de l'utilisateur, par exemple par la simple introduction de la carte dans l'interface 12 ou par l'un des boutons de fonction 7 provoquant par exemple l'émission de rayons infrarouges modulés.The second unit 3 first of all includes interface means making it possible to ensure communication with the card 2. In the embodiment shown in FIGS. 1 and 3B, these interface means are symbolized by a rectangle 12; they can come in many forms. It can be for example a dedicated dedication reader, but it can also be in the form of a computer terminal inserted for example in a network, or even a personal computer equipped with an interface with infrared rays. , etc. Their particularity is that they can communicate in an appropriate form with the card or cards which is or are associated with them. The interface means 12 can comprise a keyboard 13 and a display screen 14 to allow a user to enter information to be communicated to a part 15 of the second unit 3, such as for example passwords or data to be authenticated relating to function 1. However, the introduction of this information and / or this data " can be carried out in other ways, in particular automatically without manual intervention by the user, for example by the simple introduction of the card into the interface 12 or by one of the function buttons 7 causing by example the emission of modulated infrared rays.
L'interface 12 communique avec l'autre partie 15 de la seconde unité 3 appelée "serveur" dans la présente description. Cette communication symbolisée par la connexion 16 peut se faire à courte ou à longue distance par tout moyen approprié. Les informations circulant sur cette connexion sont notamment le mot de passe à contrôler dans le serveur 15 et éventuellement des données ou des messages à authentifier et à exploiter dans le serveur. Le serveur 15 comporte en particulier un processeur 17 et une mémoire ou banque de données 18. Le processeur est capable de libérer conditionnellement les fonctions 1, visées par les demandes d'accès formulées par les diverses cartes, ces fonctions pouvant être assurées à l'intérieur du serveur (comme représenté sur la figure 1) ou à l'extérieur. A noter que le serveur coopère généralement avec un grand nombre de cartes par l'intermédiaire d'interfaces telles que l'interface 12.The interface 12 communicates with the other part 15 of the second unit 3 called "server" in the present description. This communication symbolized by the connection 16 can be done at short or long distance by any suitable means. The information circulating on this connection is in particular the password to be checked in the server 15 and possibly data or messages to be authenticated and to be used in the server. The server 15 comprises in particular a processor 17 and a memory or data bank 18. The processor is able to conditionally release the functions 1, targeted by the access requests formulated by the various cards, these functions being able to be provided to the inside the server (as shown in Figure 1) or outside. Note that the server generally cooperates with a large number of cards via interfaces such as the interface 12.
La figure 2 représente un organigramme simplifié des diverses opérations qui se déroulent lorsqu'une demande d'accès à une fonction est formulée par l'utilisateur d'une carte.FIG. 2 represents a simplified flowchart of the various operations which take place when a request for access to a function is made by the user of a card.
Pour initier la procédure, le numéro d'identification publique 5 doit être communiqué au serveur 15. Cette opération peut être réalisée de diverses manières. Par exemple, il peut être communiqué directement au serveur dès lors que la carte est insérée dans l'interface 12. Il peut être directement tapé sur le clavier 13 de celui-ci par l'utilisateur lui-même, ou bien sur le clavier 6 de la carte 2 et transféré par le dispositif de communication 10. La communication peut "également se faire par une liaison à distance, telle qu'une " ligne téléphonique ou par voie hertzienne.To initiate the procedure, the public identification number 5 must be communicated to the server 15. This operation can be carried out in various ways. For example, it can be communicated directly to the server as soon as the card is inserted in the interface 12. It can be typed directly on the keyboard 13 thereof by the user himself, or else on the keyboard 6 of the card 2 and transferred by the communication device 10. The communication can " also be done by a remote link, such as a " telephone line or over the air.
L'utilisateur doit également donner sa légitimation en tapant en 20 son code d'identification personnelle ou code PIN sur le clavier 6 de la carte. Le code tapé est comparé en 21 avec un code PIN stocké dans la mémoire de la carte. En cas de non-concordance, la carte refuse toute utilisation en 22, l'utilisateur pouvant se voir allouer éventuellement plusieurs tentatives consécutives avant qu'un refus définitif lui soit opposé, si elles restent toutes infructueuses.The user must also give his legitimation by typing in 20 his personal identification code or PIN code on the keyboard 6 of the card. The code entered is compared at 21 with a PIN code stored in the card memory. In the event of a mismatch, the card refuses any use at 22, the user being able to be allocated possibly several consecutive attempts before a final refusal is opposed to him, if they all remain unsuccessful.
Si au contraire le code PIN introduit et le code PIN mémorisé concordent, le programme déclenche l'opération de calcul du mot de passe.If, on the contrary, the entered PIN code and the memorized PIN code match, the program triggers the password calculation operation.
Ce calcul consiste en un chiffrement à l'aide d'un algorithme de chiffrement qui peut être secret ou publique. Dans ce dernier cas, il peut s'agir d'un algorithme appelé DES (Data Encryption Standard) par les spécialistes de cette technique, le DES étant un algorithme publique travaillant avec une clé secrète.This calculation consists of an encryption using an encryption algorithm which can be secret or public. In the latter case, it may be an algorithm called DES (Data Encryption Standard) by specialists in this technique, DES being a public algorithm working with a secret key.
Selon la demande de brevet précitée, l'algorithme utilise des paramètres d'entrée fonctions de variables dynamiques qui dans un mode de réalisation particulier sont au nombre de trois. Ce concept est également utilisé dans le mode de réalisation décrit dans la présente description. Parmi ces variables dynamiques, une première est une variable N mémorisée dans un registre ou compteur 24 (figure 2) et fonction d'un nombre de demandes d'accès faites par la carte et une variable temporelle T mémorisée dans un registre ou compteur 25. Chaque variable est présentée sous 32 bits par exemple. Elles peuvent représenter la valeur réelle du nombre de demandes d'accès ou du temps ou également une valeur résultant de l'application de toute fonction mathématique à ces variables. La troisième variable dynamique est une clê de- chiffrement secrète Kn utilisée par l'algorithme pour chiffrer" les deux variables que l'on vient de mentionner. En variante, l'algorithme peut également produire une valeur en fonction des valeurs actuelles de Kn, N et T, ou Kn est chiffré avec une clé comprenant une valeur fonction de N et de T. La clé de chiffrement Kn est mémorisée dans un registre 26 et elle est mise à jour à chaque demande d'accès, comme expliqué plus loin à propos de la figure 8. La variable T à chiffrer est issue d'un compteur de temps 27 qui est piloté par une horloge de base 28 de la carte dont la sortie est divisée de manière que le compteur 27 soit incrémenté avec une résolution temporelle prédéterminée, par exemple toutes les 0,5 secondes. Le nombre contenu dans le compteur 27 est soumis à une opération d'extraction en 29 par laquelle en est séparé un nombre prédéterminé de digits de poids le plus faible (ou 8 bits dans l'exemple, ou plus généralement les digits de poids le plus faible de tout système de numération comme le système de numération binaire, hexadécimal etc.) . Ces digits sont rejetés et ne sont plus utilisés pour le calcul du mot de passe. Le rang du digit de'poids immédiatement supérieur par rapport aux digits rejetés détermine une résolution temporelle dont l'unité temporelle correspondant sera appelée X par la suite, et avec lequel le mot de passe pourra être calculé.According to the aforementioned patent application, the algorithm uses input parameters which are functions of dynamic variables which in a particular embodiment are three in number. This concept is also used in the embodiment described in the present description. Among these dynamic variables, a first is a variable N stored in a register or counter 24 (FIG. 2) and a function of a number of access requests made by the card and a time variable T stored in a register or counter 25. Each variable is presented in 32 bits for example. They can represent the real value of the number of access requests or time or also a value resulting from the application of any mathematical function to these variables. The third variable dynamic is a secret encryption key Kn used by the algorithm to encrypt " the two variables just mentioned. Alternatively, the algorithm can also produce a value based on the current values of Kn, N and T , or Kn is encrypted with a key comprising a value which is a function of N and T. The encryption key Kn is stored in a register 26 and it is updated on each access request, as explained below with regard to the figure 8. The variable T to be encrypted comes from a time counter 27 which is controlled by a base clock 28 of the card whose output is divided so that the counter 27 is incremented with a predetermined time resolution, for example every 0.5 seconds. The number contained in the counter 27 is subjected to an extraction operation at 29 by which a predetermined number of least significant digits is separated (or 8 bits in the example, or more general the least significant digits of any number system like the binary, hexadecimal number system etc.). These digits are rejected and are no longer used for calculating the password. The rank of the digit of weight immediately higher than the rejected digits determines a time resolution whose corresponding time unit will be called X later, and with which the password can be calculated.
Selon l'un des aspects de la présente invention, il est prévu de rendre réglable le nombre de digits rejetés pour permettre un choix de cette résolution que l'on pourra ainsi déterminer par programmation (symbolisée par le bloc 30 sur la figure 2), par exemple à l'initialisation de la carte en fonction du degré de sécurité que l'on souhaite y affecter ou éventuellement au cours de l'utilisation de la carte. En effet, plus la résolution est élevée, et plus la durée de validité d'un mot de passe calculé à un instant donné sera courte. Comme un 'fraudeur aura ainsi moins de temps disponible pour s'en emparer et éventuellement l'utiliser à la place de l'utilisateur légitime de la carte, la sécurité est renforcée d'autant plus que la résolution est importante.According to one aspect of the present invention, provision is made to make the number of rejected digits adjustable to allow a choice of this resolution which can thus be determined by programming (symbolized by block 30 in FIG. 2), for example upon initialization of the card as a function of the degree of security which it is desired to assign thereto or possibly during the use of the card. Indeed, the higher the resolution, the more the validity period of a password calculated at a given time will be short. As a 'fraudster will thus have less time available to grab it and possibly use it instead of the legitimate user of the card, security is reinforced all the more as the resolution is important.
Le nombre de digits restants (24 bits en l'occurrence) symbolisé en 31 est soumis à une opération de complémentation à 32 digits, par laquelle le nombre correspondant reçoit un certain nombre de digits (8 digits de valeur 0 dans l'exemple) sur ces rangs de poids le plus fort. Le nombre réel de digits reçus correspondra naturellement au nombre de digits séparés dans le module d'extraction 29.The number of remaining digits (24 bits in this case) symbolized at 31 is subjected to a 32-digit complementation operation, by which the corresponding number receives a certain number of digits (8 digits of value 0 in the example) on these ranks of the heaviest weight. The actual number of digits received will naturally correspond to the number of separate digits in the extraction module 29.
Le nombre résultant est la seconde variable proprement dite qui va être soumise au chiffrement. Il est stocké dans le registre 25. On notera que le digit de poids le plus faible constitue l'unité temporelle X qui détermine le résolution dont il a été question. Si le système travaille en numération binaire et si le pas du compteur 27 est de 0,5' ', comme indiqué ci-dessus à titre d'exemple, l'unité temporelle X peut avoir des valeurs de 0,5'', l'', 2'', 4'', 8" etc.The resulting number is the second variable proper which will be subject to encryption. It is stored in register 25. It will be noted that the least significant digit constitutes the time unit X which determines the resolution in question. If the system works in binary numeration and if the step of the counter 27 is 0.5 '', as indicated above by way of example, the time unit X can have values of 0.5 '', l '', 2 '', 4 '', 8 "etc.
Le contenu du registre 24 représentant le nombre de demandes d'authentification (appelé parfois nombre d'événements par les spécialistes) effectuées est placé dans un registre 24' .The content of the register 24 representing the number of authentication requests (sometimes called the number of events by specialists) made is placed in a register 24 '.
Les deux variables T et N ainsi engendrées sont soumises au chiffrement selon un processus de calcul de mot de passe schématisé dans le rectangle en traits mixtes 33. Ce calcul implique en 34 une concaténation ou toute autre combinaison mathématique et/ou logique des deux variables N et T à partir des registres 24' et 25, puis le chiffrement par l'algorithme en 35, ce dernier pouvant être un algorithme secret ou publique (DES) . Le calcul engendre un résultat A en 36 dont en 37 est ôté un groupe de digits de poids le plus faible -ou de poids le plus fort. Le nombre de digits de ce groupe est" fixé par une valeur prédéterminée "longueur A" ou Y (choisie à 56 dans l'exemple). Cette opération engendre la valeur Ac. En 38, cette valeur Ac est complétée avec des groupes de digits de poids le plus faible LSB(N) et LSB(T) des valeurs contenues dans les registres 24' et 25 respectivement (dans l'exemple, chacun de ces groupes comporte 4 digits) . Le chiffrement effectué par les opérations globalement désignées par le rectangle 33 engendre en 39 une nouvelle valeur de la variable N, la valeur actuelle N étant augmentée par exemple d'une unité. En variante, la nouvelle valeur de N peut être obtenue en augmentant chaque fois la valeur actuelle de deux unités (ou de toute autre valeur quelconque). Par ailleurs, la valeur d'augmentation peut être modifiée à chaque demande d'accès. Il est clair que l'augmentation elle-même ainsi que la façon d'augmenter doivent être les mêmes dans la carte et dans le serveur. La nouvelle valeur de N est utilisée pour une opération de calcul en 40 destinée à élaborer la nouvelle valeur Kn+1 de la troisième variable dynamique ou clé de chiffrement secrète. Le résultat de cette opération en 40 est substitué à l'ancienne clé Kn dans le registre 26 pour être utilisée lorsqu'une nouvelle demande d'authentification est présentée.The two variables T and N thus generated are subjected to encryption according to a password calculation process schematized in the rectangle in dashed lines 33. This calculation implies in 34 a concatenation or any other mathematical and / or logical combination of the two variables N and T from registers 24 ′ and 25, then the encryption by the algorithm at 35, the latter possibly being a secret or public algorithm (DES). The calculation generates a result A in 36 of which in 37 is removed a group of digits of the least weight - or of the most weight. The number of digits in this group is " fixed by a predetermined value" length A "or Y (chosen at 56 in the example). This operation generates the value Ac. In 38, this value Ac is completed with groups of digits least significant LSB (N) and LSB (T) of the values contained in the registers 24 'and 25 respectively (in the example, each of these groups has 4 digits). The encryption performed by the operations globally designated by the rectangle 33 generates a new value of variable N at 39, the current value N being increased for example by one unit. As a variant, the new value of N can be obtained by increasing each time the current value by two units (or by Any other value.) In addition, the increase value can be changed with each access request. It is clear that the increase itself as well as the way to increase must be the same in the map and in the server. The new val eur of N is used for a calculation operation at 40 intended to develop the new value Kn + 1 of the third dynamic variable or secret encryption key. The result of this operation at 40 is substituted for the old key Kn in the register 26 to be used when a new authentication request is presented.
La valeur obtenue en 38 est affichée sur 1 'écran 8 de la carte 2 pour être communiquée au serveur 15 par exemple en tapant le mot sur le clavier 13 de l'interface 12. Cette communication peut également être réalisée automatiquement par le biais des liaisons 10 et 16 ou par tout autre moyen de communication approprié (bloc 41).The value obtained at 38 is displayed on the screen 8 of the card 2 to be communicated to the server 15, for example by typing the word on the keyboard 13 of the interface 12. This communication can also be carried out automatically by means of the links 10 and 16 or by any other appropriate means of communication (block 41).
En se référant à la figure 3, on va maintenant décrire le déroulement des opérations effectuées par la seconde unité 3 pour traiter une demande d'authentification donnant accès à la fonction" 1, • formulée comme décrit ci-dessus par une carte 2.Referring to Figure 3, we will now describe the flow of operations performed by the second unit 3 to process an authentication request giving access to the function " 1, • formulated as described above by a card 2.
Le serveur 15 conserve dans sa mémoire ou banque de données 18 une table contenant plusieurs valeurs propres à chaque carte 2 (voir aussi les figures 4 à 7) . Ainsi, pour chacune des cartes 1, 2....X du système , la mémoire 18 contient notamment la valeur actuelle Kna de la clé de chiffrement et la valeur du nombre d'accès effectuées avec cette carte, ces variables étant engendrée de concert avec la production de ces mêmes variables dans la carte, leur relation pouvant être d'un type prédéterminé quelconque, l'identité étant la relation préférée et utilisée dans le mode de réalisation décrit. On notera à cet égard que ces variables ne sont jamais transférées des cartes au serveur, ni vice-versa et ne circulent donc jamais sur les lignes de transmission 10 et 16.The server 15 keeps in its memory or data bank 18 a table containing several values specific to each card 2 (see also Figures 4 to 7). Thus, for each of the cards 1, 2 .... X of the system, the memory 18 contains in particular the current value Kna of the encryption key and the value of the number of accesses made with this card, these variables being generated in concert with the production of these same variables in the map, their relation being able to be of any predetermined type, the identity being the preferred relation and used in the described embodiment. It will be noted in this regard that these variables are never transferred from the cards to the server, nor vice versa and therefore never circulate on the transmission lines 10 and 16.
Lors de la communication du mot de passe composé des éléments Ac, LSB(T) et LSB(N) , le numéro d'identification publique de l'utilisateur (bloc 5 de la figure 1) est également transmis au serveur 15 pour lui permettre d'extraire de sa mémoire les valeurs Kna et Na concernant la carte en question (bloc 50 de" la figure 3) . Les composantes du mot de passe sont alors restituées comme symbolisé respectivement en 51, 52 et 53. En ce qui concerne le nombre de demandes d'accès, on doit noter qu'il peut y avoir une dérive entre celui décompté dans la carte 2 et celui décompté dans le serveur 15. En effet, il se peut que l'utilisateur de la carte 2 formule une demande d'authentification sans l'achever, autrement dit sans par exemple transférer le mot de passe à la seconde unité 3. Ceci pourrait également être fait avec de mauvaises intentions par un fraudeur soucieux de perturber le système. Il est clair qu'une telle disparité entre le nombre comptabilisé dans la carte et celui compté dans le serveur ne peut aller que dans un sens, l'excédant se trouvant donc toujours "dans la carte.During the communication of the password composed of the elements Ac, LSB (T) and LSB (N), the public identification number of the user (block 5 of FIG. 1) is also transmitted to the server 15 to enable him to extract from its memory the values Kna and Na concerning the card in question (block 50 of "FIG. 3). The components of the password are then restored as symbolized respectively in 51, 52 and 53. With regard to the number of access requests, it should be noted that there may be a drift between the one counted in card 2 and the one counted in server 15. Indeed, the user of card 2 may make a request authentication without completing it, in other words without, for example, transferring the password to the second unit 3. This could also be done with bad intentions by a fraudster wishing to disrupt the system. It is clear that such a disparity between the number counted in the card and the one counted in the server can only go one way, the excess is therefore always " in the card.
Comme le nombre de demandes d'accès constitue l'une des variables soumises au chiffrement dans la carte et dans le serveur et que, par ailleurs, dans le mode de réalisation décrit la clé de chiffrement dépend de ce nombre, une demande d'accès complète suivant une ou plusieurs demandes d'accès non achevées doit donner lieu dans le serveur à un calcul itératif du mot de passe jusqu'à ce que la différence entre les nombres comptabilisés des deux côtés soit compensée.As the number of access requests constitutes one of the variables subject to encryption in the card and in the server and, moreover, in the embodiment described the encryption key depends on this number, an access request complete following one or more incomplete access requests must give rise to an iterative calculation of the password in the server until the difference between the numbers counted on both sides is compensated.
La valeur Na extraite en 54 de la mémoire 18 est donc soumise en 55 à une opération de substitution pendant laquelle la valeur LSB(Na) provenant de la mémoire 18 est remplacée par la valeur LSB(N) provenant de la carte 2, le restant HSB(N) de la valeur Na étant par hypothèse la même que celui de la variable N dans la carte 2. Cette opération engendre une valeur symbolisée près du bloc 56 et appelée Ne. Ainsi, cette variable Ne comprend un premier groupe substitué de digits de poids le plus faible LSB(N) et un groupe de digits de poids le plus fort HSB(N) ou valeur HSB(N) .The value Na extracted at 54 from memory 18 is therefore subjected in 55 to a substitution operation during which the value LSB (Na) coming from memory 18 is replaced by the value LSB (N) coming from card 2, the rest HSB (N) of the value Na being by hypothesis the same as that of the variable N in the card 2. This operation generates a value symbolized near block 56 and called Ne. Thus, this variable Ne includes a substituted first group of least significant digits LSB (N) and a group of most significant digits HSB (N) or HSB value (N).
Cette valeur Ne est soumise en 57 à un test pour déterminer si elle est strictement inférieure à la valeur Na extraite de la mémoire 18. Si elle est supérieure ou égale à cette valeur, le test est affirmatif et le processus passe à une opération de soustraction en 58 afin de calculer la différence D entre les valeurs Ne et Na. Le résultat détermine le nombre d'itérations nécessaires pour que le serveur "rattrape" par des calculs de mot de passe successifs le nombre correspondant dans la carte. Si la différence D est égale à zéro, il n'y avait aucune différence entre les nombres d'accès comptabilisés respectivement dans la carte et dans le serveur, si bien qu'aucune itération- n'est alors nécessaire. Dans le cas contraire, les itérations "requises sont effectuées en 59.This value Ne is subjected in 57 to a test to determine if it is strictly less than the value Na extracted from memory 18. If it is greater than or equal to this value, the test is affirmative and the process passes to a subtraction operation in 58 in order to calculate the difference D between the values Ne and Na. The result determines the number of iterations necessary for the server to "catch up" with successive password calculations the corresponding number in the card. If the difference D is equal to zero, there was no difference between the access numbers recorded in the card and in the server respectively, so that no iteration is then necessary. Otherwise, the " iterations " required are performed at 59.
Si le test 57 aboutit à une réponse négative, on incrémenté en 60 la valeur HSB(N) pour retrouver une valeur substituée et ajustée Ncl (bloc 61) . Cette valeur est alors prête en 62 pour servir de variable dynamique à chiffrer. Il convient de noter que la modification de la valeur HSB(N) doit être faite en accord avec le processus particulier choisi dans la carte (augmentation d'une ou de deux unités etc.) pour la dérivation de la nouvelle valeur de la variable N, processus qui est exécuté dans le module 39 de la figure 2 décrite ci-dessus.If the test 57 results in a negative response, the value HSB (N) is incremented at 60 to find a substituted and adjusted value Ncl (block 61). This value is then ready in 62 to serve as a dynamic variable to be encrypted. It should be noted that the modification of the HSB value (N) must be made in accordance with the particular process chosen in the card (increase of one or two units etc.) for the derivation of the new value of the variable N , process which is executed in the module 39 of figure 2 described above.
Les exemples concrets suivants permettent de comprendre ce mécanisme, le raisonnement étant fait par commodité en numération décimale. (Il sera analogue pour tout autre système de numération) . On rappelle que N sera toujours supérieur ou égal à Na.The following concrete examples allow us to understand this mechanism, the reasoning being done for convenience in decimal numbers. (It will be similar for any other numbering system). Recall that N will always be greater than or equal to Na.
Si N=Na=22, par exemple, LSB(N)=LSB(Na) et le test en 57 sera affirmatif. D=0 et aucune itération n'est nécessaire et la valeur Ne est directement utilisée (bloc 62) .If N = Na = 22, for example, LSB (N) = LSB (Na) and the test in 57 will be affirmative. D = 0 and no iteration is necessary and the value Ne is directly used (block 62).
Si N=24 et N=22, LSB(N) transmis avec le mot de passe sera 4 et Nc=24. D en 58 sera égal à 2, deux itérations seront nécessaires pour que Na devienne égal à N et Ne également égal à 24. Si N=31 et Na=22, LSB(N) transmis avec le mot de passe sera 1 et Ne en 56 sera égal à 21. Le test en 57 sera négatif, car Nc<Na. Par conséquent, la valeur HSB(N) sera augmentée d'une unité et une valeur Ncl égale à 31 est engendrée. D=9 et neuf itérations seront nécessaires pour que Na devienne égal à Ne (31) . Toutes les itérations étant effectuées, D=0 et Ne aura la valeur convenable pour que le chiffrement puisse être effectué (bloc 62) .If N = 24 and N = 22, LSB (N) transmitted with the password will be 4 and Nc = 24. D in 58 will be equal to 2, two iterations will be necessary so that Na becomes equal to N and Ne also equal to 24. If N = 31 and Na = 22, LSB (N) transmitted with the password will be 1 and Ne in 56 will be equal to 21. The test at 57 will be negative, because Nc <Na. Consequently, the HSB value (N) will be increased by one and an Ncl value equal to 31 is generated. D = 9 and nine iterations will be necessary for Na to become equal to Ne (31). All iterations being carried out, D = 0 and Ne will have the suitable value so that the encryption can be carried out (block 62).
On peut noter à ce stade qu'en tout état de cause, le nombre d'itérations nécessaires sera toujours relativement faible comparé au nombre d'itérations nécessaires dans le système du brevet US "5 361 062 précité dans lequel la clé de chiffrement est elle-même "fonction du temps. Dans l'exemple que l'on vient de décrire dans lequel la valeur HSB(N) peut être augmenté d'une unité, la différence maximale admissible D est égale à 9 est l'accès sera refusé si D>10 (en unités décimales). Il est éventuellement possible d'imposer une limite à la dérive du nombre de demandes d'accès comptabilisé dans le serveur 15 par rapport à celui dénombré dans la carte 2. La valeur D peut donc être soumise à un test en 63 pour vérifier si elle est supérieure à une valeur Dx constituant la différence maximale admissible. S'il est constaté que cette valeur est dépassée, l'accès pourra être refusé en 64.It can be noted at this stage that in any event, the number of iterations required will always be relatively low compared to the number of iterations required in the system of the aforementioned US patent " 5,361,062 in which the encryption key is itself " a function of time. In the example just described in which the HSB (N) value can be increased by one unit, the maximum admissible difference D is equal to 9 and access will be refused if D> 10 (in decimal units ). It is possibly possible to impose a limit on the drift of the number of access requests recorded in the server 15 compared to that counted in the card 2. The value D can therefore be subjected to a test at 63 to verify if it is greater than a value Dx constituting the maximum admissible difference. If it is found that this value is exceeded, access may be refused in 64.
Si la différence maximale Dx est supérieure à 9 (Dx>10) , il peut être nécessaire d'incrémenter HSB(N) d'une valeur supérieure à l'unité. Dans un tel mode de réalisation, l'accès n'est pas refusé par le module 86, lorsque le test en 85 est négatif, mais la valeur HSB de Ne est incrémentée d'une unité supplémentaire comme représenté par les traits en pointillés 61A sur la figure 3A. La différence entre la nouvelle valeur de Ne et Na est calculée (module 58) et l'accès est refusé si D>Dx (module 63) . Si D≤Dx, le processus se poursuit comme décrit ci-dessus jusqu'à ce que avec Aa≈Ac, l'accès soit accordé (module 85) ou avec Aa≠Ac, l'accès soit refusé (module 86) .If the maximum difference Dx is greater than 9 (Dx> 10), it may be necessary to increment HSB (N) by a value greater than unity. In such an embodiment, access is not denied by the module 86, when the test at 85 is negative, but the HSB value of Ne is incremented by an additional unit as represented by the dotted lines 61A on Figure 3A. The difference between the new value of Ne and Na is calculated (module 58) and access is refused if D> Dx (module 63). If D≤Dx, the process continues as described above until with Aa≈Ac, access is granted (module 85) or with Aa ≠ Ac, access is denied (module 86).
Il est à noter que la valeur HSB(N) peut également être modifiée d'autres façons que par incrémentation d'une unité pour retrouver la valeur Ne conformément aux diverses variantes d'incrémentation de la variable N. Autrement dit, cette modification peut être faite conformément à toute fonction mathématique appropriée.It should be noted that the value HSB (N) can also be modified in other ways than by incrementing a unit to find the value Ne in accordance with the various variants of incrementing the variable N. In other words, this modification can be done in accordance with any appropriate mathematical function.
Avant de décrire le processus d'établissement de la variable temporelle dans le serveur, il convient de préciser que le système de contrôle d'accès selon l'invention connaît un temps de référence REF-TIME par rapport auquel toutes les cartes et le ou les serveurs sont référencés. Ce temps est par exemple l'instant où le système est mis en service pour la première fois (par exemple le 1 janvier 1996 à OOhOO'OO' ' ) .Before describing the process of establishing the time variable in the server, it should be noted that the access control system according to the invention knows a REF-TIME reference time in relation to which all the cards and the server or servers are referenced. This time is for example the moment when the system is put into service for the first time (for example on January 1, 1996 at OOhOO'OO '').
Le serveur comporte une horloge de base 70 ou horloge système (figure 3B) dont la précision est en principe nettement plus élevée que celle des horloges des cartes 2. Un registre 71 contient la différence entre la position de cette horloge et l'heure de référence REF-TIME, cette différence étant appelée ΔREF-TIME.The server includes a base clock 70 or system clock (FIG. 3B), the precision of which is in principle much higher than that of the clocks of the cards 2. A register 71 contains the difference between the position of this clock and the reference time. REF-TIME, this difference being called ΔREF-TIME.
Le serveur 15 établit en 72 la différence entre la valeur de son horloge de base et la valeur ΔREF-TIME, ce qui donne lieu en 73 à une valeur HORL.SERV. d'horloge de serveur établie sur 32 digits. Cette valeur d'horloge HORL.SERV. présente la même résolution temporelle que la valeur HORL.CARTE contenue dans le compteur 27 (0,5'' dans l'exemple décrit). A l'initialisation de chaque carte, la valeur HORL.CARTE qui représente la différence entre le temps actuel et la valeur ΔREF-TIME est chargée dans le registre 27 (figure 2) de la carte considérée. En d'autres termes, si toutes les horloges étaient idéales et sans dérive, on aurait à chaque instant une égalité entre les valeurs HORL.CARTE et HORL.SERV. des registres 27 et 73. En réalité, toutes les horloges ont une dérive qui est plus importante pour celles des cartes que pour celle(s) de ou des serveurs du système.The server 15 establishes in 72 the difference between the value of its base clock and the value ΔREF-TIME, which gives rise in 73 to a value HORL.SERV. server clock established on 32 digits. This clock value HORL.SERV. has the same time resolution as the value HORL.CARTE contained in the counter 27 (0.5 '' in the example described). At the initialization of each card, the value HORL.CARTE which represents the difference between the current time and the value ΔREF-TIME is loaded into register 27 (FIG. 2) of the card considered. In other words, if all the clocks were ideal and without drift, we would have at all times an equality between the values HORL.CARTE and HORL.SERV. registers 27 and 73. In reality, all clocks have a drift which is more important for those of the cards than for that (s) of or servers of the system.
On va tout d'abord examiner comment le système selon l'invention se synchronise sur chaque carte au moment d'une demande d'authentification afin d'aboutir à un mot de passe compatible avec celui calculé dans la carte pendant cette demande d'authentification, malgré la dérive relativement importante que l'horloge de la carte peut présenter. On a déjà vu que le mot de passe calculé dans la carte est accompagné d'un groupé de digits LSB(T), lorsqu'il est transmis au serveur. Ce groupe de digits (quatre bits dans l'exemple décrit) constitue une information de synchronisation qui est exploitée de la façon suivante dans le serveur 15.We will first of all examine how the system according to the invention is synchronized on each card at the time of an authentication request in order to arrive at a password compatible with that calculated in the card during this authentication request. , despite the relatively large drift that the card clock can present. We have already seen that the password calculated in the card is accompanied by a group of LSB (T) digits, when it is transmitted to the server. This group of digits (four bits in the example described) constitutes synchronization information which is used in the following manner in the server 15.
La valeur actuelle HORL.SERV. du registre 73 est soumise à plusieurs opérations en 74 qui sont identiques à celles effectuées dans la carte 2 et schématisées par les modules 29 à 32 de la figure 2. Elles ne sont donc pas détaillées sur la figure 3B.The current value HORL.SERV. of the register 73 is subjected to several operations at 74 which are identical to those carried out in the card 2 and shown diagrammatically by the modules 29 to 32 of FIG. 2. They are therefore not detailed in FIG. 3B.
La valeur résultante est symbolisée dans le bloc 75. Un groupe de digits LSB(Ta) de poids le plus faible (quatre bits dans l'exemple; valeur Ts) est ôté de cette valeur résultante et remplacée par la valeur LSB(T) du bloc 53, opération qui est symbolisée par le bloc 76. Cette substitution engendre une valeur substituée Tel inscrite dans le module 77. Elle comporte donc la valeur de synchronisation LSB(T) envoyée par la carte au serveur pendant le transfert du mot de passe Ac. Cette dernière valeur constitue un groupe de digits de poids le plus faible. Le reste des digits 'de la valeur substituée Tel forme un groupe de digits HSB(T) de poids le plus fort.The resulting value is symbolized in block 75. A group of least significant LSB digits (Ta) (four bits in the example; Ts value) is removed from this resulting value and replaced by the LSB value (T) of the block 53, operation which is symbolized by block 76. This substitution generates a substituted value Tel written in the module 77. It therefore includes the synchronization value LSB (T) sent by the card to the server during the transfer of the password Ac . This last value constitutes a group of least significant digits. The rest of the digits' of the substituted value Tel forms a group of most significant HSB (T) digits.
Le serveur contient dans sa mémoire 18 une information ou plage de validité Tv (qui est formée par la différence entre la valeur Ta et la valeur T) pour la valeur de synchronisation qui de ce fait est soumise à un seuil. Selon deux protocoles de calcul distincts, cette plage de validité Tv peut se présenter sous les formes suivantes : -5 ≤ Ts < +4 (bloc 78) ouThe server contains in its memory 18 information or range of validity Tv (which is formed by the difference between the value Ta and the value T) for the synchronization value which is therefore subject to a threshold. According to two separate calculation protocols, this range of validity Tv can take the following forms: -5 ≤ Ts <+4 (block 78) or
Ta - 5 < Tel (ou Tc2 ou Tc3) < Ta+4Ta - 5 <Tel (or Tc2 or Tc3) <Ta + 4
Ts étant la différence entre la valeur Ta et la valeur Tel déterminée en particulier par la valeur LSB(T) provenant de la carte 2. On notera que la plage de validité Tv est de préférence réglable, ce qui sera décrit plus en détail par la suite à propos de la figure 4.Ts being the difference between the value Ta and the value Tel determined in particular by the value LSB (T) coming from card 2. It will be noted that the validity range Tv is preferably adjustable, which will be described in more detail below with reference to FIG. 4.
La valeur substituée Tel présente dans le module 77 est soumise à un processus de synchronisation au moyen duquel elle est modifiée, le cas échéant, en fonction de la plage de validité Tv afin de compenser la dérive que présente le contenu du compteur ou registre 27 par rapport à celui du compteur ou registre 73 du serveur 15. Ce processus commence par un test en 79 pour vérifier si la valeur Tel est compatible avec la plage de validité Tv. En considérant le premier protocole de calcul mentionné ci-dessus, cette opération implique d'abord le calcul de la différence entre les valeurs Ta et Tel, cette différence étant soumise à une comparaison avec la première plage de validité Tv mentionnée ci-dessus.The substituted value Tel present in module 77 is subjected to a synchronization process by means of which it is modified, if necessary, as a function of the validity range Tv in order to compensate for the drift presented by the content of the counter or register 27 by compared to that of the counter or register 73 of the server 15. This process begins with a test at 79 to verify whether the value Tel is compatible with the range of validity Tv. Considering the first calculation protocol mentioned above, this operation involves first the calculation of the difference between the values Ta and Tel, this difference being subjected to a comparison with the first range of validity Tv mentioned above.
Si la réponse au test en 79 est affirmative, cela signifie que la différence tombe dans la plage si bien qu'il y à compatibilité avec elle. En effet, dans ces conditions, Ta≈Tcl de sorte que Tel peut être utilisé en 80 pour le chiffrement en tant que variable Te (figure 3A) .If the answer to the test in 79 is yes, this means that the difference falls within the range so that there is compatibility with it. Indeed, under these conditions, Ta≈Tcl so that Tel can be used at 80 for encryption as a variable Te (Figure 3A).
Dans le cas contraire, une opération en 81 soustrait une unité du digit de poids le plus faible du groupe de digits HSB(T) et le résultat Tc2 (qui est une première variable substituée et ajustée) est de nouveau soumis à un test en 82 pour vérifier s'il est compatible avec la plage Tv. Si la réponse est affirmative, ce sera cette valeur Tc2 qui sera adoptée en 80 pour le chiffrement sous la forme de la variable Te. Dans le cas contraire, une opération symbolisée en 83 incrémenté d'une unité dans la valeur Tel le digit de poids le plus faible du groupe de digits HSB(T). Le résultat Tc3 (qui est une seconde variable substituée et ajustée) est de nouveau soumis à un test en 84 pour vérifier s'il est compatible avec la plage de validité Tv. Si la réponse est affirmative, le rés'ultat est adopté en 80 en tant que variable Te pour effectuer le chiffrement. Les tests 82 et 84 sont identiques au test 79 et ils impliquent donc également le calcul de la différence entre la valeur substituée Ta et la valeur substituée et ajustée Tc2 ou Tc3, respectivement, puis une comparaison de cette différence avec la plage de validité Tv.Otherwise, an operation in 81 subtracts a unit of the least significant digit from the group of HSB digits (T) and the result Tc2 (which is a first variable substituted and adjusted) is again subjected to a test in 82 to check if it is compatible with the range Tv. If the answer is affirmative, it will be this value Tc2 which will be adopted in 80 for the encryption in the form of the variable Te. Otherwise, an operation symbolized at 83 increments by one in the value Tel the least significant digit of the group of HSB digits (T). The result Tc3 (which is a second substituted and adjusted variable) is again subjected to a test at 84 to check whether it is compatible with the range of validity Tv. If the answer is If so, the res' ultat is adopted 80 as Te variable to perform encryption. Tests 82 and 84 are identical to test 79 and therefore also involve the calculation of the difference between the substituted value Ta and the substituted and adjusted value Tc2 or Tc3, respectively, then a comparison of this difference with the range of validity Tv.
Un exemple concret permettra de comprendre cette procédure de synchronisation selon le premier protocole de calcul qui produit la valeur actuelle Te pouvant être utilisée pour calculer le mot de passe dans le serveur 15. Cet exemple est résumé dans le tableau 1 ci-dessus est il est basé sur la numération décimale (Aa étant le mot de passe calculé dans le serveur (modules 33a à 36a) ) .A concrete example will make it possible to understand this synchronization procedure according to the first calculation protocol which produces the current value Te which can be used to calculate the password in the server 15. This example is summarized in table 1 above and it is based on the decimal number (Aa being the password calculated in the server (modules 33a to 36a)).
TABLEAU 1TABLE 1
Registre 25 LSB(T) Registre 75 CalculRegister 25 LSB (T) Register 75 Calculation
(Te) (Ta) Tests 79, 82 carte 2 serveur 15 et 84(Te) (Ta) Tests 79, 82 card 2 server 15 and 84
.22 ,25 Tcl=...22 Ta-Tcl=+3=> calculer Aa.22, 25 Tcl = ... 22 Ta-Tcl = + 3 => calculate Aa
.19 ,22 Tcl=...29 Ta-Tcl=-7 Tc2=...19 Ta-Tc2=3=> calculer Aa.19, 22 Tcl = ... 29 Ta-Tcl = -7 Tc2 = ... 19 Ta-Tc2 = 3 => calculate Aa
.22 18 Tcl=...12.22 18 Tcl = ... 12
Ta-Tcl=6Ta-Tcl = 6
Tc2=...02Tc2 = ... 02
Ta-Tc2=16Ta-Tc2 = 16
Tc3=...22Tc3 = ... 22
Ta-Tc3=-4=> calculer Aa On voit donc da"ns cet exemple que le système accepte une plage de validité de "10 fois l'unité temporelle X qui est centré sur la valeur Ta constituant le contenu du registre 75. Si l'unité temporelle X est égale à 128*' ou 2'8'' par exemple, la plage de validité s'étend sur 21'20*'. En supposant que la dérive maximale par jour dans la carte est de ± 0,5' et si la durée de vie de la carte est de deux ans, la dérive maximale de la carte sera de ± 6'. En supposant également que l'erreur à l'initialisation du compteur 27 de la carte est de ± l' et que l'erreur de l'horloge 73 du serveur 15 par rapport au temps de référence à chaque instant est de ± l' , la différence maximale à chaque instant entre l'horloge de la carte et celle du serveur sera de ± 8'. Cette différence maximale (± 8') se trouve à l'intérieur de la plage de validité (21'20'') mentionnée ci-dessus. Si la plage de validité est choisie avec une étendue de plus de 10 unités temporelles X, il faudra exécuter un processus similaire à celui mis en oeuvre pour le nombre de demandes d'accès N, lorsque la différence maximale admissible Dx>9. Ceci veut dire que la valeur HSB(T) peut être incrémentée -ou décrémentée de plus d'une unité. Naturellement dans ce cas, si le test fait en 85 sur la base de la valeur incrémentée est négatif, il devra être répété sur la base de la valeur décrémentée à condition que tant la valeur incrémentée que la valeur décrémentée tombent dans la plage de validité. On doit noter également qu'à l'image du processus suivi pour le nombre de demandes d'accès N, le calcul temporel peut impliquer, au lieu d'une incrémentation ou d'une décrémentation par une unité de la valeur HSB(T), toute autre modification de cette valeur mettant en oeuvre toute fonction mathématique appropriée.Ta-Tc3 = -4 => calculate Aa It is thus seen da "ns this example that the system accepts a validity range of" 10 times the unit time X which is centered on the Ta value constituting the content of register 75. If the unit time X is equal to 128 * 'or 2'8''for example, the validity range extends to 21'20 *'. Assuming that the maximum drift per day in the card is ± 0.5 'and if the life of the card is two years, the maximum drift in the card will be ± 6'. Assuming also that the error on initialization of the counter 27 of the card is ± l 'and that the error of the clock 73 of the server 15 with respect to the reference time at each instant is ± l, the maximum difference at any time between the card clock and the server clock will be ± 8 '. This maximum difference (± 8 ') is within the validity range (21'20'') mentioned above. If the validity range is chosen with a range of more than 10 time units X, a process similar to that implemented for the number of access requests N must be executed, when the maximum admissible difference Dx> 9. This means that the HSB (T) value can be increased or decreased by more than one unit. Naturally in this case, if the test made in 85 on the basis of the incremented value is negative, it must be repeated on the basis of the decremented value provided that both the incremented value and the decremented value fall within the validity range. It should also be noted that, like the process followed for the number of access requests N, the temporal calculation may involve, instead of an increment or a decrement by a unit of the value HSB (T) , any other modification of this value implementing any appropriate mathematical function.
On doit également noter que si le défaut de synchronisation en ce qui concerne tant le nombre de demandes d'accès N que le temps T, dépasse les plages corrigeables décrite's ci-dessus, la carte et le serveur ne pourront engendrer des mo'ts de passe concordants. La carte devra alors être ré-initialisée avant de pouvoir être utilisée à nouveau. La plage de validité (de 21'20" dans l'exemple choisi ci-dessus) implique que le processus d'authentification ne sera pas compromis par la dérive des horloges indiquée à titre d'exemple. Il est à souligner toutefois que la sécurité du système reste préservée puisque dans cette plage le système peut calculer potentiellement dix mots de passe différents en se basant lors d'une demande d'accès sur la nouvelle valeur temporelle augmentée de l'unité temporelle X par rapport à la valeur temporelle précédente. On ne conserve donc pas le même mot de passe pendant la plage de validité.It should also be noted that if the synchronization failure with regard to both the number of access requests N and the time T, exceeds the ranges correctable described's above, the card and the server may not generate mo 'ts of the corresponding pass. The card will then have to be reinitialized before it can be used again. The validity range (of 21'20 "in the example chosen above) implies that the authentication process will not be compromised by the drift of the clocks indicated by way of example. It should however be emphasized that security of the system remains preserved since in this range the system can potentially calculate ten different passwords based on an access request on the new time value increased by the time unit X compared to the previous time value. therefore does not keep the same password during the validity period.
Le calcul du mot de passe dans le serveur 15 à l'aide des variables Ne et Te ainsi que de la clé de chiffrement Ka se déroule de la même façon que dans la carte en suivant les opérations schématisées dans le rectangle 33 de la figure 2 (bloc 33a de la figure 3A) . Il donne lieu à la production du mot de passe Aa en 36a, ce dernier étant soumis à un test de comparaison en 85 pour vérifier s'il est égal au mot de passe Ac transmis à partir de la carte 2 (module 51) .The calculation of the password in the server 15 using the variables Ne and Te as well as the encryption key Ka takes place in the same way as in the card by following the operations shown schematically in the rectangle 33 of FIG. 2 (block 33a of FIG. 3A). It gives rise to the production of the password Aa at 36a, the latter being subjected to a comparison test at 85 to verify whether it is equal to the password Ac transmitted from card 2 (module 51).
Si le test conclut à une inégalité, l'authentification est refusée en 86. Sinon, l'accès à la fonction 1 est autorisée. Une nouvelle valeur du nombre de demandes d'accès est calculée en 87 (Na=Nc+l) et inscrite dans la mémoire 18. La nouvelle valeur de la clé Ka est également calculée en 88 et inscrite dans la mémoire 18, les deux nouvelles valeurs remplaçant les précédentes dans celle-ci aux adresses correspondant à la carte qui vient de formuler la demande d'authentification. Le calcul des nouvelles valeurs de Na et de Ka est réalisé d'une manière analogue à celle utilisée pour le calcul des valeurs N et K dans la carte comme décrit ci-dessus. L'étendue de la plage de validité Tv dont il a été question ci-dessus est" déterminée par la résolution temporelle c'est-à-dire par l'unité temporelle X choisie (opérations 29 à 31 dans la carte et globalement l'opération 74 dans le serveur. Ainsi par exemple, si on utilise une unité temporelle de 2'8'', la plage s'étend autour de la valeur Ta comme suit:If the test concludes with an inequality, authentication is refused at 86. Otherwise, access to function 1 is authorized. A new value for the number of access requests is calculated in 87 (Na = Nc + 1) and written to memory 18. The new value of the key Ka is also calculated to 88 and written to memory 18, the two new values replacing the previous ones in this one at the addresses corresponding to the card which has just formulated the authentication request. The calculation of the new values of Na and Ka is carried out in a manner analogous to that used for the calculation of the values N and K in the map as described above. The extent of the range of validity Tv mentioned above is " determined by the temporal resolution, that is to say by the temporal unit X chosen (operations 29 to 31 in the map and overall the operation 74 in the server. For example, if we use a time unit of 2'8 ", the range extends around the value Ta as follows:
-10'40' ' < Ta < +8'32' ' . Si on double l'unité temporelle, la plage devient: -21'20'' < Ta < +17'4*'-10'40 '' <Ta <+ 8'32 ''. If we double the time unit, the range becomes: -21'20 '' <Ta <+ 17'4 * '
La figure 4 représente une variante de l'invention dans laquelle la plage de validité Tv est rendue variable en fonction du temps d'utilisation de chaque carte. A cet effet, la mémoire 18 du serveur 15 conserve pour chacune des cartes une valeur représentant sa date de mise en service ou d'initialisation. Cette valeur en est extraite en 93 à chaque demande d'authentification à la suite de l'opération 50 (figure 3A) . La position de l'horloge 70 du serveur 15 est algébriquement combinée en 94 avec cette valeur et le résultat est soumis à un test en 90 pour vérifier si depuis la date de mise en service, il s'est écoulée une période de temps prédéterminée (1 année par exemple) . Tant que la réponse au test reste négatif, la plage de validité Tv établie en 78 (figure 3B) est fixée en 91 dans des limites prédéterminées relativement faibles, par exemple -3 < Ts < +2. Lorsque le test s'avère affirmatif, une année s'est écoulée depuis la mise en service de la carte de sorte que l'on peut admettre une plage de validité plus grande, l'horloge de la carte ayant alors subie une dérive qui reste dans des limites admissibles. La plage de validité Tv est définie avec de nouvelles limites en 92 fixées par exemple à -5 < Ts < +4. Bien entendu, les limites de la plage de validité Tv peuvent être modulées d'autres manières à l'aide d'autres valeurs que celles que l'on vient d'indiquer. Le processus de" synchronisation exécuté dans le serveur 15 à chaque demande d'accès correspond à une certaine valeur de synchronisation qui représente la différence Toffset entre les horloges de la carte 2 et du serveur 15 au temps où une demande d'authentification est formulée. Cette valeur Toffset peut être utilisée dans le serveur pour le calcul du mot de passe. Deux autres variantes du système suivant l'invention représentées sur les figures 5 et 6 permettent de mettre en oeuvre ce processus de recalage et le Tableau 2 ci-dessous l'illustre par un exemple chiffré en unités temporelles X, Toffsetl et Toffset2 étant respectivement les dérives pour une demande d'authentification donnée et pour une demande d'authentification immédiatement suivante. On notera également que dans cet exemple, on utilise le second protocole et la seconde plage mentionnés ci-dessus (seuls les digits de plus faible poids des diverses valeurs ont été indiqués) :FIG. 4 represents a variant of the invention in which the range of validity Tv is made variable as a function of the time of use of each card. To this end, the memory 18 of the server 15 keeps a value for each of the cards representing its date of commissioning or initialization. This value is extracted therefrom at 93 on each authentication request following operation 50 (FIG. 3A). The position of the clock 70 of the server 15 is algebraically combined at 94 with this value and the result is subjected to a test at 90 to verify whether since the date of commissioning, a predetermined period of time has elapsed ( 1 year for example). As long as the response to the test remains negative, the range of validity Tv established at 78 (FIG. 3B) is fixed at 91 within relatively low predetermined limits, for example -3 <Ts <+2. When the test proves to be affirmative, a year has passed since the card was put into service so that a wider range of validity can be accepted, the card clock having then suffered a drift which remains within admissible limits. The validity range Tv is defined with new limits at 92 fixed for example at -5 <Ts <+4. Of course, the limits of the validity range Tv can be modulated in other ways using other values than those which have just been indicated. The "synchronization process" executed in the server 15 at each access request corresponds to a certain synchronization value which represents the difference Toffset between the clocks of the card 2 and of the server 15 at the time when an authentication request is made. This Toffset value can be used in the server for calculating the password Two other variants of the system according to the invention shown in FIGS. 5 and 6 make it possible to implement this registration process and Table 2 below. "illustrates by an example encrypted in time units X, Toffsetl and Toffset2 being respectively the drifts for a given authentication request and for an immediately following authentication request. It will also be noted that in this example, the second protocol and the second range mentioned above (only the least significant digits of the various values have been indicated):
TABLEAU 2TABLE 2
Reg 25 LSB(T) Reg 75 Toffseitl Plage Tv To: Efset2Reg 25 LSB (T) Reg 75 Toffseitl Range Tv To: Efset2
Te carte Ta admise serveur pour TeTe card Your server admitted for Te
22 2 23 0 18-27 -122 2 23 0 18-27 -1
18 8 23 -1 17-26 -518 8 23 -1 17-26 -5
15 5 23 -5 13-22 -815 5 23 -5 13-22 -8
19 9 23 -8 10-19 -419 9 23 -8 10-19 -4
16 6 23 -4 14-23 -716 6 23 -4 14-23 -7
11 1 23 -7 11-20 -12 06-1511 1 23 -7 11-20 -12 06-15
La mémoire 18 du serveur 15 (figure 5) comporte une section dans laquelle sont enregistrées pour toutes les cartes du systèmes des valeurs ΔREF-TIME particulières. Ces valeurs sont mises à "jour pour chaque carte au moment où une demande d'accès s'achève." Pour cela, la valeur générale ΔREF-TIME (module 71) du système est combinée additivement en 100 à la valeur Toffset de la demande d'accès en cours (module 101) et le résultat de cette opération est mémorisée dans la mémoire 18 à une adresse propre à la carte considérée. Pendant une demande d'accès suivante, cette valeur est extraite de la mémoire 18 et soustraite en 102 de la valeur actuelle de l'horloge 70 du système et le résultat est placé dans le registre 73 du serveur pour être utilisé pour cette demande d'accès. Ce processus se déroule individuellement pour chaque carte à chaque demande d'accès que l'on fait avec elle. Dans la variante représentée sur la figure 6, la valeur Toffset elle-même (module 110) constatée pour une carte donnée pendant une demande d'accès est enregistrée dans la mémoire 18 du serveur 15 au moment où cette demande d'accès s'achève. Elle en est extraite pour la demande d'accès suivante pour être combinée additivement en 111 à la valeur contenue dans le registre 73 pour donner naissance à la valeur corrigée de la valeur d'horloge de serveur (module 112) . Celle-ci est utilisée pendant cette demande d'accès suivante pour le calcul effectué dans le serveur 15.The memory 18 of the server 15 (FIG. 5) comprises a section in which are recorded for all the cards of the system particular ΔREF-TIME values. These values are updated " for each card when an access request is completed. " For this, the general value ΔREF-TIME (module 71) of the system is additively combined in 100 to the value Toffset of the request d access in progress (module 101) and the result of this operation is stored in memory 18 at an address specific to the card in question. During a subsequent access request, this value is extracted from the memory 18 and subtracted at 102 from the current value of the system clock 70 and the result is placed in the register 73 of the server to be used for this request for access. This process takes place individually for each card for each access request made with it. In the variant shown in FIG. 6, the value Toffset itself (module 110) observed for a given card during an access request is recorded in the memory 18 of the server 15 at the time when this access request ends . It is extracted therefrom for the following access request to be combined additively in 111 with the value contained in the register 73 to give rise to the corrected value of the server clock value (module 112). This is used during this next access request for the calculation performed in the server 15.
La figure 7 représente une autre variante de l'invention permettant de contrôler l'évolution de la dérive et, le cas échéant, d'en tirer des conclusions sur l'opportunité d'autoriser ou non une utilisation ultérieure de la carte.FIG. 7 represents another variant of the invention making it possible to control the evolution of the drift and, if necessary, to draw conclusions therefrom on the advisability of authorizing or not a subsequent use of the card.
La mémoire 18 du serveur 15 mémorise pour chaque carte la valeur de dérive et la position de l'horloge 70 du serveur valables lors de la demande d'accès précédente. La valeur de dérive est utilisée, comme représenté sur la " figure 6, pour donner la valeur ajustée (module 112) . La valeur précédente de l'horloge 70 est soustraite de la valeur actuelle de celle-ci en 113 pour donner une valeur ΔT qui représente le temps s'étant écoulé depuis la dernière demande d'accès (module 114) . Le serveur 15 fait le calcul de la valeur Te comme décrit précédemment à propos de la figure 3B, l'ensemble des opérations de calcul correspondantes étant résumé sur la figure 7 par le module 115. La combinaison algébrique (module 116) du résultat du calcul et de la valeur du bloc 73 donne alors la nouvelle valeur de la dérive (module 117) constatée pendant ia demande d'accès en cours. Cette valeur est combinée algébriquement avec la valeur de dérive précédente extraite de la mémoire 18 (module 118) et le résultat Δoffset (module 119) est confronté à la valeur ΔT obtenue en 114 au cours d'un test en 120 qui vérifie si l'écart constaté correspond à des critères de cohérence prédéterminés. Par exemple, on peut poser que la dérive ne doit pas dépasser une valeur donnée pendant un laps de temps d'utilisation prédéterminée faute de quoi une anomalie constatée par le serveur 15 conduit à une rejet de la carte en 121 empêchant toute nouvelle demande d'accès. Les nouvelles valeurs de l'horloge et de la dérive sont enregistrées dans la mémoire 18 aux adresses de la carte considérée si le test en 120 s'avère affirmatif (modules 122 et 123, respectivement) pour être utilisées pour la demande d'accès suivante. Le Tableau 3 ci-dessous montre un exemple concret de ce contrôle de dérive, les valeurs étant en unités temporelles de 64'' et le calcul tenant compte des imprécisions temporelles inhérentes du système (Les valeurs indiquent seulement les digits de poids le plus faible et le calcul" suit le second protocole décrit ci- dessus) :The memory 18 of the server 15 stores for each card the drift value and the position of the clock 70 of the server valid during the previous access request. The drift value is used, as shown in " Figure 6, to give the adjusted value (module 112). The previous value of the clock 70 is subtracted from the current value of this at 113 to give a value ΔT which represents the time that has elapsed since the last access request (module 114). The server 15 calculates the value Te as described previously with respect to FIG. 3B, the set of corresponding calculation operations being summarized in FIG. 7 by the module 115 The algebraic combination (module 116) of the calculation result and the value of block 73 then gives the new value of the drift (module 117) observed during the access request in progress. This value is algebraically combined with the value of previous drift extracted from memory 18 (module 118) and the result Δoffset (module 119) is compared with the value ΔT obtained in 114 during a test in 120 which checks whether the difference observed corresponds to criteria of coh For example, it can be assumed that the drift must not exceed a given value during a predetermined period of use, otherwise an anomaly noted by the server 15 leads to a rejection of the card by 121 preventing any further request access. The new values of the clock and of the drift are recorded in the memory 18 at the addresses of the card considered if the test at 120 proves to be affirmative (modules 122 and 123, respectively) to be used for the next access request. . Table 3 below shows a concrete example of this drift control, the values being in time units of 64 '' and the calculation taking into account the inherent time inaccuracies of the system (The values indicate only the most significant digits of weight weak and the calculation " follows the second protocol described above):
Figure imgf000032_0001
- TABLEAU 3
Figure imgf000032_0001
- TABLE 3
Reg Reg Dérive Plage Dérive Δ ΔTReg Reg Drift Range Drift Δ ΔT
25 75 carte Tv n+1 offset (sera. )25 75 Tv card n + 1 offset (will.)
Te Ta 2 admiseTe Ta 2 admitted
22 23 0 18-27 - 1 -1 322 23 0 18-27 - 1 -1 3
18 23 -1 17-26 -5 -4 818 23 -1 17-26 -5 -4 8
15 23 -5 13-26 -8 - 3 715 23 -5 13-26 -8 - 3 7
19 23 -8 10-19 -4 +4 719 23 -8 10-19 -4 +4 7
Détection d'anomalie du sens de la dérive 16 23 -4 14-23 -7 -3 8 11 23 -7 11-20 -12 -5 1Drift direction anomaly detection 16 23 -4 14-23 -7 -3 8 11 23 -7 11-20 -12 -5 1
Accès refusé, anomalie de la dérive trop importanteAccess denied, excess drift anomaly
La figue 7 illustre encore une autre variante de l'invention selon laquelle la valeur Δoffset est utilisée pour recentrer la plage de validité sur la valeur du moduleFig. 7 illustrates yet another variant of the invention according to which the value Δoffset is used to center the validity range on the value of the module
73. Par exemple, si la dérive se produit dans un sens négatif, la plage sera de -7 < Ts≤ +2 et dans le cas contraire, elle sera de -3 < Ts < +6, ces valeurs n'étant ici données uniquement à titre illustratif. Ainsi, la valeur obtenue en 119 de la figure 7 sert à définir la nouvelle plage de validité en 124, l'adaptation pouvant se faire à chaque nouvelle demande d'accès.73. For example, if the drift occurs in a negative direction, the range will be -7 <Ts≤ +2 and if not, it will be -3 <Ts <+6, these values being given here for illustrative purposes only. Thus, the value obtained at 119 in FIG. 7 is used to define the new range of validity at 124, the adaptation being able to be made with each new access request.
La figure 8 montre comment la clé de chiffrement Kn (Kna) peut dériver d'une demande à la suivante en fonction de la valeur Nn (Nna) du nombre de demandes formulées, les deux valeurs pouvant être combinées logiquement puis chiffrées pour donner naissance à la clé de chiffrement Kn+1 (Kan+1) utilisée pendant la demande d'accès suivante.FIG. 8 shows how the encryption key Kn (Kna) can be derived from one request to the next depending on the value Nn (Nna) of the number of requests made, the two values being able to be logically combined and then encrypted to give rise to the encryption key Kn + 1 (Kan + 1) used during the next access request.
Ces opérations sont réalisées de concert à la fois dans la carte 2 et dans le serveur 15. D'abord, les valeurs Nn+1 et Kn (modules 130 et 131) sont soumises en 132 à une opération de combinaison logique, par exemple une opération OU-EXCLUSIF, ou en variante à une autre fonction mathématique quelconque. La variable intermédiaire Z qui en résulte est soumise à un chiffrement en 133 à l'aide d'un algorithme secret ou publique qui peut éventuellement être le même que celui utilisé en 33 et 33a (figures 2 et 3A) . Le chiffrement peut être réalisé à l'aide d'une clé de chiffrement qui est de préférence la valeur de la variable dynamique Kn actuelle, bien qu'une autre clé secrète Q (module 134) puisse également être utilisée.These operations are carried out in concert both in the card 2 and in the server 15. First, the values Nn + 1 and Kn (modules 130 and 131) are subjected in 132 to a logical combination operation, for example an EXCLUSIVE operation, or alternatively to any other mathematical function. The resulting intermediate variable Z is subject to encryption at 133 using a secret or public algorithm which may possibly be the same as that used in 33 and 33a (FIGS. 2 and 3A). The encryption can be carried out using an encryption key which is preferably the value of the current dynamic variable Kn, although another secret key Q (module 134) can also be used.
Le résultat de l'opération de chiffrement en 133 est la nouvelle valeur Kn+1 de la clé de chiffrement qui sera utilisée pour la demande d'accès suivante (module 135) . The result of the encryption operation at 133 is the new value Kn + 1 of the encryption key which will be used for the next access request (module 135).

Claims

REVENDICATIONS
1.- Système d'authentification de personnes et/ou de messages, comprenant au moins une première unité (2) portable personnalisée pour un utilisateur et au moins une seconde unité (3) de vérification capable de délivrer une fonction d'authentification (1) pour authentifier ladite personne et/ou lesdits messages, caractérisé en ce que1.- Authentication system for people and / or messages, comprising at least a first portable unit (2) personalized for a user and at least a second verification unit (3) capable of delivering an authentication function (1 ) to authenticate said person and / or said messages, characterized in that
(A) ladite première unité comprend: des premiers moyens générateurs (25 à 32 ; 24,24') pour engendrer au moins une première variable (T,N); des premiers moyens de calcul (33) destinés à produire un premier mot de passe (A, Ac) à l'aide d'au moins un premier algorithme de chiffrement (35) utilisant une clé de chiffrement (Kn) pour chiffrer au moins ladite première variable (T, N) ; des moyens de transmission (10, 12) pour transmettre ledit premier mot de passe (A, Ac) à ladite seconde unité (3) ;(A) said first unit comprises: first generating means (25 to 32; 24.24 ') for generating at least one first variable (T, N); first calculation means (33) intended to produce a first password (A, Ac) using at least one first encryption algorithm (35) using an encryption key (Kn) to encrypt at least said encryption first variable (T, N); transmission means (10, 12) for transmitting said first password (A, Ac) to said second unit (3);
(B) ladite seconde unité comprend: des seconds moyens générateurs (70 à 75 ; 18,54) pour, en réponse à une demande d'authentification faite par une spécifiée desdites premières unités (2), engendrer au moins une seconde variable (Ta, Na) assignée à ladite première unité; des seconds moyens de calcul (33a) pour produire un second mot de passe (Aa) à l'aide d'au moins un second algorithme de chiffrement utilisant une clé de chiffrement(B) said second unit comprises: second generating means (70 to 75; 18,54) for, in response to an authentication request made by a specified one of said first units (2), generating at least one second variable (Ta , Na) assigned to said first unit; second calculation means (33a) for producing a second password (Aa) using at least a second encryption algorithm using an encryption key
(Kna) pour chiffrer au moins ladite seconde variable (Ta,(Kna) to encrypt at least said second variable (Ta,
Na) , lesdites première et seconde variables étant produites de concert, mais de façon indépendante dans lesdites première et seconde unités (2, 3) ; des moyens (85) pour comparer lesdits premier et second mots de passe (Ac, Aa) ; des moyens"pour, dans le cas ou lesdits mots de passe présentent une cohérence prédéterminée, délivrer ladite fonction d'authentification (1); lesdits moyens de transmission (10, 12) étant configurés de telle manière qu'ils transmettent ledit premier mot de passe avec n digits de poids le plus faibleNa), said first and second variables being produced in concert, but independently in said first and second units (2, 3); means (85) for comparing said first and second passwords (Ac, Aa); means " for, in the case where said passwords have a predetermined consistency, delivering said authentication function (1); said transmission means (10, 12) being configured in such a way that they transmit said first password pass with n least significant digits
[LSB(T) ;LSB(N) ] de ladite première variable (T, N) de ladite première unité à ladite seconde unité; et en ce que[LSB (T); LSB (N)] from said first variable (T, N) from said first unit to said second unit; and in that
(C) ladite seconde unité comprend gaiement: a) des moyens de substitution (76,77 ; 55,56) pour, sur la base de la valeur actuelle de ladite seconde variable (Ta, Na) , engendrer une valeur substituée (Tcl;Ncl) dans laquelle n digits de poids le plus faible [LSB(Ta) ;LSB(Na) ] sont remplacés par lesdits n digits de poids le plus faible [LSB(T) ;LSB (N) ] de ladite première variable (T,N), ladite seconde variable comprenant ainsi un premier groupe de digits de poids le plus faible et un second groupe de m digits de poids le plus fort [HSB(T) ;HSB(N) ] ; b) des troisième moyens de calcul (79,81 à(C) said second unit cheerfully comprises: a) substitution means (76,77; 55,56) for, on the basis of the current value of said second variable (Ta, Na), generating a substituted value (Tcl; Ncl) in which n least significant digits [LSB (Ta); LSB (Na)] are replaced by said n least significant digits [LSB (T); LSB (N)] of said first variable (T , N), said second variable thus comprising a first group of least significant digits and a second group of m most significant digits [HSB (T); HSB (N)]; b) third means of calculation (79.81 to
84;57,58,60,61) pour c) retenir comme 'seconde variable (Te;Ne) pour le calcul dudit second mot de passe (Aa) ladite variable substituée, si celle-ci et la valeur actuelle (Ta;Na) de ladite seconde variable correspondent à au moins une première condition prédéterminée, d) au cas où ladite première condition n'est pas satisfaite, ajuster dans ladite variable substituée par une unité (81, 83; 61) ledit second groupe de digits de poids le plus fort [HSB (T) ;HSB(N) ] , cet ajustement étant fonction d'une seconde condition prédéterminée et conduisant à la production d'une variable substituée et ajustée (Tcl,Tc2,Tc3;Ncl) et e) retenir comme seconde variable (Te, Ne) pour le calcul dudit second mot de passe (Aa) ladite variable substituée et ajustée.84; 57,58,60,61) for c) retain as' second variable (Te; Ne) for the calculation of said second password (Aa) said substituted variable, if the latter and the current value (Ta; Na ) of said second variable correspond to at least a first predetermined condition, d) if said first condition is not satisfied, adjust in said variable substituted by a unit (81, 83; 61) said second group of weight digits the strongest [HSB (T); HSB (N)], this adjustment being a function of a second predetermined condition and leading to the production of a substituted and adjusted variable (Tcl, Tc2, Tc3; Ncl) and e) retain as a second variable (Te, Ne) for the calculation of said second password (Aa) said substituted and adjusted variable.
2.- Système suivant la revendication 1, caractérisé en ce que lesdits premiers moyens générateurs (25 à 32 ; 24,24') sont agencés pour engendrer des première et troisième variables; lesdits seconds moyens générateurs (70 à 75 ; 18,54) sont agencés pour engendrer des secondes et quatrième variables; et en ce que lesdites troisième et quatrième variables subissent des opérations de calcul analogues à celles appliquées respectivement auxdites première et seconde variables.2.- System according to claim 1, characterized in that said first generator means (25 to 32; 24.24 ') are arranged to generate first and third variables; said second generator means (70 to 75; 18.54) are arranged to generate second and fourth variables; and in that said third and fourth variables undergo calculation operations similar to those applied to said first and second variables respectively.
3.- Système suivant la revendication 2, caractérisé en ce que lesdites première et seconde unités (2,3) comprennent respectivement des premiers et seconds moyens de combinaison (31,33a) pour combiner respectivement lesdites première et troisième variables (T,N) et lesdites seconde et quatrième variables (Ta,Na) à l'aide d'une fonction mathématique prédéterminée avant qu'elles soient soumises au chiffrement par lesdits premier et second algorithmes de chiffrement respectifs (36, 36a) .3.- System according to claim 2, characterized in that said first and second units (2,3) respectively comprise first and second combining means (31,33a) for respectively combining said first and third variables (T, N) and said second and fourth variables (Ta, Na) using a predetermined mathematical function before they are subject to encryption by said respective first and second encryption algorithms (36, 36a).
4.- Système suivant la revendication 3, caractérisé en ce que ladite fonction mathématique consiste en une concaténation respectivement desdites première et troisième variables (T,N) et desdites seconde et quatrième variables (Ta,Na) .4.- System according to claim 3, characterized in that said mathematical function consists of a concatenation of said first and third variables (T, N) and said second and fourth variables (Ta, Na) respectively.
5.- Système suivant l'une quelconque des revendications 1 à 4, caractérisé en ce que lesdits premiers et seconds moyens générateurs prévus dans lesdites première et seconde unités (2,3) sont agencées respectivement pour engendrer l'une desdits variables en fonction du nombre de demandes d'authentification (N, Na)" faites par ladite première unité. 5.- System according to any one of claims 1 to 4, characterized in that said first and second generator means provided in said first and second units (2,3) are arranged respectively to generate one of said variables as a function of the number of authentication requests (N, Na) " made by said first unit.
6.- Système suivant l'une quelconque des revendications 1 à 4, caractérisé en ce que lesdits premiers et seconds moyens générateurs prévus dans lesdites première et seconde unités (2,3) sont agencées respectivement pour engendrer l'une desdites variables en fonction du temps (T,Ta) .6.- System according to any one of claims 1 to 4, characterized in that said first and second generating means provided in said first and second units (2,3) are arranged respectively to generate one of said variables depending on the time (T, Ta).
7.- Système suivant l'une quelconque des revendications 1 à 6, caractérisé en ce que lesdits troisièmes moyens de calcul comprennent en outre a) des moyens (57) qui, pour mettre en oeuvre ladite première condition, sont agencés pour déterminer si ladite variable substituée (Na) est supérieure ou égale à ladite valeur actuelle (na) de la variable respective engendrée dans ladite seconde unité (3) ; et b) des moyens (60,61) qui pour la mise en oeuvre de ladite seconde condition, incrémentent d'une unité ledit second groupe de m digits de poids le plus fort [HSB(N)], si ladite variable substituée (Na) est strictement inférieure à ladite valeur actuelle (Na) pour engendrer ainsi une valeur substituée 'et incrémentée (Ncl) et pour retenir ladite valeur substituée et incrémentée (Ncl) pour le chiffrement par ledit second algorithme de chiffrement (36a) .7.- System according to any one of claims 1 to 6, characterized in that said third calculation means further comprises a) means (57) which, to implement said first condition, are arranged to determine whether said substituted variable (Na) is greater than or equal to said current value (na) of the respective variable generated in said second unit (3); and b) means (60,61) which, for the implementation of said second condition, increment by one unit said second group of m most significant digits [HSB (N)], if said substituted variable (Na ) is strictly less than said current value (Na) to thereby generate a substituted and incremented value (Ncl) and to retain said substituted and incremented value (Ncl) for encryption by said second encryption algorithm (36a).
8.- Système suivant l'une quelconque des revendications 1 à 6, caractérisé en ce que lesdits troisièmes moyens de calcul comprennent en outre des moyens (79) mettant en oeuvre ladite première condition agencés pour a) calculer une première différence entre ladite valeur actuelle (Ta) et ladite valeur substituée (Tel); déterminer si ladite première différence se situe dans une plage (Tv) dont l'étendue est au plus égale au nombre d'unités ayant le poids le plus fort pn dans ledit premier groupe de n digits, tel que représenté par le digit ayant le poids le plus faible pn+ι dans ledit groupe de m digits de poids le plus fort [HSB(T)], b) retenir comme variable à chiffrer (Te) dans ladite seconde unité (3), ladite variable substituée (Tel), si ladite différence se trouve dans ladite plage, et des moyens (82,84) mettant en oeuvre ladite second condition agencés pour a) ajuster (81) d'une unité dans un premier sens ledit poids le plus faible pn+ι, si ladite différence se situe à l'extérieur de ladite plage (Tv) pour engendrer une première variable substituée et ajustée (Tc2) , b) calculer une seconde différence entre ladite valeur actuelle (Ta) et ladite première variable substituée et ajustée (Tc2) , c) déterminer si ladite seconde différence se situe dans ladite plage (Tv) , d) retenir comme variable à chiffrer (Te) dans ladite seconde unité (3) ladite première variable substituée et ajustée (Tc2), si ladite seconde différence se situe dans ladite plage, e) ajuster d'une unité (82) dans un second sens opposé au premier sens ledit digit de poids le plus faible pn+1 si ladite seconde différence se situe en dehors de ladite plage (Tv) pour engendrer une seconde variable substituée et ajustée (Tc3) , et f) retenir comme variable à chiffrer dans ladite seconde unité ladite seconde variable substituée et ajustée.8.- System according to any one of claims 1 to 6, characterized in that said third calculation means further comprises means (79) implementing said first condition arranged to a) calculate a first difference between said current value (Ta) and said substituted value (Tel); determining if said first difference lies in a range (Tv) whose extent is at most equal to number of units with the highest weight p n in said first group of n digits, as represented by the digit with the lowest weight p n + ι in said group of m most significant digits [HSB (T )], b) retain as variable to be encrypted (Te) in said second unit (3), said substituted variable (Tel), if said difference is within said range, and means (82,84) implementing said second condition arranged to a) adjust (81) by a unit in a first direction said lowest weight p n + ι, if said difference is outside of said range (Tv) to generate a first variable substituted and adjusted ( Tc2), b) calculating a second difference between said current value (Ta) and said first substituted and adjusted variable (Tc2), c) determining whether said second difference is within said range (Tv), d) retaining as variable to be quantified (Te) in said second unit (3) said first variable subst ituted and adjusted (Tc2), if said second difference is within said range, e) adjust by one unit (82) in a second direction opposite to the first direction said least significant digit p n + 1 if said second difference is outside of said range (Tv) to generate a second substituted and adjusted variable (Tc3), and f) retain as said variable to be encrypted in said second unit said second substituted and adjusted variable.
9.- Système suivant l'une quelconque des revendications 1 à 6, caractérisé en ce que lesdits troisièmes moyens de calcul comprennent également des moyens pour définir une plage de valeurs dont l'étendue est au plus égale au nombre d'unités ayant le poids le plus fort Pn " dans ledit premier groupe de n digits tel que représenté par le digit ayant le poids le plus faible Pn+ι dans ledit groupe de m digits de poids le plus fort [HSB(T)]; des moyens pour engendrer des première et seconde valeurs de vérification respectivement égales à la somme algébrique de ladite valeur actuelle et la valeur limite inférieure de ladite plage et ladite valeur actuelle et la limite supérieure de ladite plage; des moyens pour mettre en oeuvre ladite première condition agencés pour a) déterminer si ladite variable substituée (Tsl) se situe entre lesdites première et seconde valeurs de vérification; b) retenir comme variable à chiffrer (Te) dans ladite seconde unité (3), ladite variable substituée (Tel), si elle se trouve entre lesdites valeurs de vérification; des moyens mettant en oeuvre ladite second condition agencés pour a) ajuster d'une unité dans un premier sens ledit poids le plus faible pn+ι, si ladite valeur substituée se situe à l'extérieur desdites valeurs de vérification pour engendrer une première variable substituée et ajustée (Tc2), b) déterminer si ladite seconde variable substituée et ajustée (Tc2) se situe entre lesdites valeurs de vérification, c) retenir comme variable à chiffrer (Te) dans ladite seconde unité (3) ladite première variable substituée et ajustée (Tc2) , si elle se situe entre lesdites valeurs de vérification, d) ajuster d'une unité dans un second sens opposé au premier sens ledit digit de poids le plus faible Pr,+1 si ladite première variable substituée et ajustée (Tc2) se situe en dehors desdites valeurs de vérification pour engendrer une seconde variable substituée et ajustée (Tc3) , et e) retenir comme variable à chiffrer (te)dans ladite seconde unité ladite seconde variable substituée et ajustée (Tc3) .9.- System according to any one of claims 1 to 6, characterized in that said third calculation means also comprise means for defining a range of values whose extent is at most equal to the number of units having the highest weight P n " in said first group of n digits as represented by the digit having the lowest weight P n + ι in said group of m most significant digits [HSB (T)]; means for generating first and second verification values respectively equal to the algebraic sum of said current value and the lower limit value of said range and said current value and the upper limit of said range; means for implementing said first condition arranged for a ) determining whether said substituted variable (Tsl) is between said first and second verification values; b) retaining as variable to be encrypted (Te) in said second unit (3), said substituted variable (Tel), if it is between said verification values; means implementing said second condition arranged to a) adjust by one unit in a first direction said lowest weight p n + ι, if said substitute value uée is located outside of said verification values to generate a first substituted and adjusted variable (Tc2), b) determining if said second substituted and adjusted variable (Tc2) is between said verification values, c) retain as variable at encrypt (Te) in said second unit (3) said first substituted and adjusted variable (Tc2), if it is between said verification values, d) adjust by one unit in a second direction opposite to the first direction said weight digit the lowest P r , +1 if said first substituted and adjusted variable (Tc2) is outside of said verification values for generate a second substituted and adjusted variable (Tc3), and e) retain as variable to be encrypted (te) in said second unit said second substituted and adjusted variable (Tc3).
10.- Système suivant l'une quelconque des revendications 1 à 9, caractérisé en ce que lesdits troisièmes moyens de calcul comprennent également des moyens pour soustraire l'une desdites variables (Ne) subissant dans ladite seconde unité (3) le chiffrement par ledit second algorithme de ladite variable substituée (Ne) ou, le cas échéant, de ladite variable substituée et ajustée (Ncl) pour engendrer une valeur de différence (D) , et lesdits seconds moyens de calcul comprennent également des moyens (59) pour calculer itérativement ledit second mot de passe (Aa) en fonction de ladite valeur de différence (D) .10.- System according to any one of claims 1 to 9, characterized in that said third calculation means also comprise means for subtracting one of said variables (Ne) undergoing in said second unit (3) the encryption by said second algorithm of said substituted variable (Ne) or, where appropriate, of said substituted and adjusted variable (Ncl) for generating a difference value (D), and said second calculation means also comprises means (59) for calculating iteratively said second password (Aa) as a function of said difference value (D).
11.- Système suivant l'une quelconque des revendication 6 à 10, caractérisé en ce que lesdits premiers et seconds moyens générateurs comprennent également: une horloge de base'(28;70) destinée à fournir un signal d'horloge de base composé des impulsions successives d'une fréquence prédéterminée, des moyens de comptage (27,73) destinés à compter ces impulsions, des moyens de suppression de digits (29;74) destinés à éliminer un nombre prédéterminé de digits de poids le plus faible du contenu desdits moyens de comptage pour engendrer respectivement dans ladite première unité une première valeur temporelle intermédiaire et dans ladite seconde unité une seconde valeur temporelle intermédiaire, lesdits variables fonction du temps étant engendrées en tant que fonctions respectives desdites valeurs temporelles intermédiaires. 11.- System according to any one of claims 6 to 10, characterized in that said first and second generating means also comprise: a basic clock '(28; 70) intended to supply a basic clock signal composed of successive pulses of a predetermined frequency, counting means (27,73) intended to count these pulses, means for suppressing digits (29; 74) intended to eliminate a predetermined number of digits with the lowest weight from the content of said pulses counting means for respectively generating in said first unit a first intermediate time value and in said second unit a second intermediate time value, said time-dependent variables being generated as respective functions of said intermediate time values.
12.- Système suivant la revendication 11, caractérisé en ce que lesdits premiers et seconds moyens générateurs comprennent en outre des moyens d'ajustement (30) pour ajuster ledit nombre prédéterminé de digits de poids le plus faible à ôter du contenu desdits moyens de comptage (27,73).12.- System according to claim 11, characterized in that said first and second generating means further comprise adjustment means (30) for adjusting said predetermined number of digits with the lowest weight to be removed from the content of said counting means (27.73).
13.- Système suivant l'une quelconque des revendications 11 et 12, caractérisé en ce que lesdits premiers et seconds moyens générateurs comprennent également des moyens (32,74) pour ajouter un nombre prédéterminés de digits auxdites valeurs temporelles intermédiaires de leur côté de poids le plus fort.13.- System according to any one of claims 11 and 12, characterized in that said first and second generating means also comprise means (32,74) for adding a predetermined number of digits to said intermediate time values on their weight side The Strongest.
14.- Système suivant l'une quelconque des revendications 8 et 9, caractérisé en ce que ladite seconde unité comprend en outre des moyens de mémoire (18) destinés à mémoriser la date d'initialisation de chacune desdites premières unités (2) , des moyens (90) pour, au moment où une demande d'authentication est formulée à l'aide d'une première unité (2), comparer l'intervalle de temps qui s'est écoulé depuis la date correspondant à cette première unité (2) et mémorisée dans lesdits moyens de mémoire (18), à au moins un intervalle de temps prédéterminé, et des moyens pour augmenter ladite plage (Tv), lorsque ledit intervalle de temps écoulé dépasse ledit intervalle de temps prédéterminé.14.- System according to any one of claims 8 and 9, characterized in that said second unit further comprises memory means (18) intended to memorize the date of initialization of each of said first units (2), means (90) for, when an authentication request is made using a first unit (2), to compare the time interval which has elapsed since the date corresponding to this first unit (2 ) and stored in said memory means (18), at least at a predetermined time interval, and means for increasing said range (Tv), when said elapsed time interval exceeds said predetermined time interval.
15.- Système suivant l'une quelconque des revendications 1 à 11, caractérisé en ce que lesdits troisièmes moyens de calcul comprennent en outre des moyens pour, après achèvement d'une demande d'authentification à l'aide d'une desdits premières unités, faire la somme algébrique de la valeur actuelle de l'une des variables (Ta) engendrées dans ladite seconde unité et ladite variable substituée (Tel) ou, le cas échéant, ladite variable substituée" et ajustée (Tc2;Tc3) de façon à engendrer une valeur de dérive (TOFFSET) , des moyens (18) pour mémoriser ladite valeur de dérive (TOFFSET) en tant que valeur actuelle de dérive, lesdits seconds moyens de calcul étant agencés de telle façon que pendant au moins une demande d'authentification consécutive formulée avec ladite même première unité (2), ils calculent ladite variable substituée (Tel)ou, le cas échéant, ladite variable substituée et ajustée (Tc2, Tc3), en fonction de ladite valeur actuelle de dérive.15.- System according to any one of claims 1 to 11, characterized in that said third calculation means further comprises means for, after completion of an authentication request using one of said first units , make the algebraic sum of the current value of one of the variables (Ta) generated in said second unit and said substituted variable (Tel) or, where appropriate, said substituted variable " and adjusted (Tc2; Tc3) so as to generate a drift value (TOFFSET), means (18) for storing said drift value (TOFFSET) as a current drift value, said second calculation means being arranged in such a way that during at least one consecutive authentication request formulated with said same first unit (2), they calculate said substituted variable (Tel) or, where appropriate, said substituted and adjusted variable (Tc2, Tc3), in as a function of said current value of drift.
16.- Système suivant la revendication 15, caractérisé en ce que lesdits troisièmes moyens de calcul sont agencés pour adapter lesdites première et seconde conditions en fonction de ladite valeur actuelle de dérive (TOFFSET) . 16.- System according to claim 15, characterized in that said third calculation means are arranged to adapt said first and second conditions according to said current value of drift (TOFFSET).
17.- Système suivant la revendication 6, caractérisé en ce que lesdits premiers et seconds moyens générateurs comprennent également une horloge de base (28,70) destinée à fournir un signal d'horloge de base composé d'impulsions successives d'une fréquence prédéterminée, des moyens de comptage (27,73) destinés à compter ces impulsions, lesdites première et seconde variables temporelles (T,Ta) étant engendrées respectivement en fonction du contenu desdits moyens de comptage, des moyens de mémorisation (18) agencés pour mémoriser, pour chacune desdites unités, une valeur de compensation (TOFFSET NOUVEAU) pour compenser le contenu desdits moyens de comptage de ladite seconde unité vis-à-vis de la dérive desdits horloges de base desdites premières et seconde unités (2,3) respectivement, et lesdits troisièmes moyens de calcul comprennent également des moyens (115,116,117) pour engendrer ladite valeur de compensation (TOFFSET NOUVEAU) en fonction de la valeur de dérive temporelle desdites horloges. 17.- System according to claim 6, characterized in that said first and second generating means also comprise a basic clock (28,70) intended to supply a basic clock signal composed of successive pulses of a predetermined frequency , counting means (27, 73) intended to count these pulses, said first and second time variables (T, Ta) being generated respectively as a function of the content of said counting means, storage means (18) arranged to store, for each of said units, a compensation value (TOFFSET NEW) for compensating for the content of said counting means of said second unit with respect to the drift of said base clocks of said first and second units (2,3) respectively, and said third calculation means also include means (115,116,117) for generating said compensation value (TOFFSET NEW) as a function of the value of d time series of said clocks.
18.- Système suivant la revendication 17, caractérisé en ce que lesdits troisièmes moyens de calcul comprennent également: des premiers moyens (18,70,113) de détermination pour déterminer l'intervalle de temps ΔT s'écoulant entre une demande d'authentification actuelle formulée par ladite première unité et une demande d'authentification suivante formulée par celle-ci, des seconds moyens (118) de détermination pour déterminer la différence entre la valeur de dérive temporelle calculée après achèvement de la demande actuelle d'authentification et la valeur temporelle de dérive calculée après achèvement de la demande suivante d'authentification , des moyens (120,121) pour refuser la demande suivante d'authentification si la différence entre les valeurs temporelles de dérive dépasse une valeur prédéterminée par comparaison audit intervalle de temps ΔT déterminé par lesdits premiers moyens de détermination. 18.- System according to claim 17, characterized in that said third calculation means also comprise: first means (18,70,113) for determining to determine the time interval ΔT elapsing between a current authentication request formulated by said first unit and a subsequent authentication request formulated by the latter, second determination means (118) for determining the difference between the time drift value calculated after completion of the current authentication request and the time value of drift calculated after completion of the next authentication request, means (120,121) for refusing the next authentication request if the difference between the drift time values exceeds a predetermined value by comparison with said time interval ΔT determined by said first means of determination.
19.- Système suivant l'une quelconque des revendications précédentes, caractérisé en ce que lesdits premiers et seconds moyens de calcul (130 à 135) sont agencés pour calculer lesdits clés de chiffrement utilisées respectivement dans lesdites première et seconde unités (2,3) comme clés de chiffrement dynamiques (Kn,Kna) variant en fonction respectivement de variables correspondantes (N,Na) dans lesdites première et seconde unités. 19.- System according to any one of the preceding claims, characterized in that said first and second calculation means (130 to 135) are arranged to calculate said encryption keys used respectively in said first and second units (2,3) as dynamic encryption keys (Kn, Kna) varying as a function respectively of corresponding variables (N, Na) in said first and second units.
PCT/FR1997/000504 1996-03-22 1997-03-21 Function access control system comprising a clock synchronisation device WO1997036263A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
AU22974/97A AU2297497A (en) 1996-03-22 1997-03-21 Function access control system comprising a clock synchronisation device
JP9534076A JP2000508098A (en) 1996-03-22 1997-03-21 System for controlling access to functions with clock synchronization
EP97915536A EP0891610B1 (en) 1996-03-22 1997-03-21 Function access control system comprising a clock synchronisation device
AT97915536T ATE218233T1 (en) 1996-03-22 1997-03-21 ACCESS CONTROL SYSTEM TO A FUNCTION INCLUDING A CLOCK SYNCHRONIZING DEVICE
DE69712881T DE69712881T2 (en) 1996-03-22 1997-03-21 AN ACCESS CONTROL SYSTEM CONTAINING A CLOCK SYNCHRONIZING DEVICE FOR A FUNCTION
DK97915536T DK0891610T3 (en) 1996-03-22 1997-03-21 Access control system for a function comprising a clock synchronizer

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/620,162 US5737421A (en) 1996-03-22 1996-03-22 System for controlling access to a function having clock synchronization
US08/620,162 1996-03-22
FR9604797A FR2747814B1 (en) 1996-04-17 1996-04-17 SYSTEM FOR ACCESSING A FUNCTION COMPRISING A CLOCK SYNCHRONIZATION DEVICE
FR96/04797 1996-04-17

Publications (1)

Publication Number Publication Date
WO1997036263A1 true WO1997036263A1 (en) 1997-10-02

Family

ID=26232657

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1997/000504 WO1997036263A1 (en) 1996-03-22 1997-03-21 Function access control system comprising a clock synchronisation device

Country Status (11)

Country Link
EP (1) EP0891610B1 (en)
JP (1) JP2000508098A (en)
AT (1) ATE218233T1 (en)
AU (1) AU2297497A (en)
CA (1) CA2249462A1 (en)
DE (1) DE69712881T2 (en)
DK (1) DK0891610T3 (en)
ES (1) ES2180961T3 (en)
PT (1) PT891610E (en)
TW (1) TW322672B (en)
WO (1) WO1997036263A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999018546A1 (en) 1997-10-02 1999-04-15 Activcard Authenticating system with microcircuit card
EP1074906A1 (en) * 1999-08-05 2001-02-07 Sony Corporation Card-shaped semiconductor storage device and operation setting method of the same

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272723B1 (en) * 1999-01-15 2007-09-18 Safenet, Inc. USB-compliant personal key with integral input and output devices
JP4839516B2 (en) * 2001-02-27 2011-12-21 ソニー株式会社 Authentication system and authentication method
WO2006043446A1 (en) * 2004-10-19 2006-04-27 Matsushita Electric Industrial Co., Ltd. Communication apparatus and authenticating method
JP5184627B2 (en) 2007-06-26 2013-04-17 G3−ビジョン リミテッド Communication device, authentication system and method, and carrier medium
JP2009130882A (en) * 2007-11-28 2009-06-11 Oki Electric Ind Co Ltd Check value confirming method and apparatus
JP5163178B2 (en) * 2008-02-25 2013-03-13 沖電気工業株式会社 Encryption key generation apparatus and method
CN104464048B (en) * 2014-11-14 2016-09-14 中国建设银行股份有限公司 A kind of electronic password lock method for unlocking and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0215291A1 (en) * 1985-09-10 1987-03-25 Hülsbeck &amp; Fürst GmbH. &amp; Co. KG Electronic locking device for motor vehicles
EP0419306A1 (en) * 1989-09-20 1991-03-27 ROCKWELL BODY AND CHASSIS SYSTEMS - FRANCE, en abrégé: ROCKWELL BCS - FRANCE Method and apparatus for generating and validating a numerical message and application of such an apparatus
DE4223258A1 (en) * 1992-07-15 1994-01-20 Telefunken Microelectron Verifiable reliably decoded data transmission procedure - comparing transmitter message with receiver message to verify transmission of secret message when they agree
EP0698706A1 (en) * 1994-08-26 1996-02-28 TEMIC TELEFUNKEN microelectronic GmbH Method for operating a locking system for lockable objects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0215291A1 (en) * 1985-09-10 1987-03-25 Hülsbeck &amp; Fürst GmbH. &amp; Co. KG Electronic locking device for motor vehicles
EP0419306A1 (en) * 1989-09-20 1991-03-27 ROCKWELL BODY AND CHASSIS SYSTEMS - FRANCE, en abrégé: ROCKWELL BCS - FRANCE Method and apparatus for generating and validating a numerical message and application of such an apparatus
DE4223258A1 (en) * 1992-07-15 1994-01-20 Telefunken Microelectron Verifiable reliably decoded data transmission procedure - comparing transmitter message with receiver message to verify transmission of secret message when they agree
EP0698706A1 (en) * 1994-08-26 1996-02-28 TEMIC TELEFUNKEN microelectronic GmbH Method for operating a locking system for lockable objects

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999018546A1 (en) 1997-10-02 1999-04-15 Activcard Authenticating system with microcircuit card
EP1074906A1 (en) * 1999-08-05 2001-02-07 Sony Corporation Card-shaped semiconductor storage device and operation setting method of the same
US6513719B1 (en) 1999-08-05 2003-02-04 Sony Corporation Card-shaped semiconductor storage device and operation setting method of the same

Also Published As

Publication number Publication date
ATE218233T1 (en) 2002-06-15
DK0891610T3 (en) 2002-09-23
EP0891610A1 (en) 1999-01-20
TW322672B (en) 1997-12-11
DE69712881D1 (en) 2002-07-04
CA2249462A1 (en) 1997-10-02
AU2297497A (en) 1997-10-17
ES2180961T3 (en) 2003-02-16
PT891610E (en) 2002-10-31
DE69712881T2 (en) 2003-01-09
JP2000508098A (en) 2000-06-27
EP0891610B1 (en) 2002-05-29

Similar Documents

Publication Publication Date Title
EP0941525B1 (en) Authenticating system with microcircuit card
EP1442557B1 (en) System and method for creating a secure network using identity credentials of batches of devices
EP0055986B1 (en) Security system and apparatus for the three-way communication of confidential data
US5737421A (en) System for controlling access to a function having clock synchronization
US5802176A (en) System for controlling access to a function, using a plurality of dynamic encryption variables
EP1004100B1 (en) Portable electronic device for safe communication system, and method for initialising its parameters
EP1129438B1 (en) Authenticating method between a smart card and a terminal
EP0891611B1 (en) Function access control system with encryption using a plurality of dynamic variables
FR2802666A1 (en) COMPUTER SYSTEM FOR ACCREDITATION ACCESS APPLICATION
JPH10171909A (en) User aucentication device and its method
FR2738934A1 (en) ANONYMOUS ACCOUNTING SYSTEM FOR INFORMATION FOR STATISTICAL PURPOSES, IN PARTICULAR FOR ELECTRONIC VOTING OPERATIONS OR PERIODIC CONSUMPTION RECORDS
EP1055203B1 (en) Protocol between an electronic key and a lock
EP0891610B1 (en) Function access control system comprising a clock synchronisation device
EP2742645B1 (en) Method for managing and checking data from different identity domains organized into a structured set
EP3729307B1 (en) Methods and devices for enrolling and authenticating a user with a service
EP3417592A1 (en) System for authenticating a user with a server
WO2016135419A1 (en) Method of transaction without physical support of a security identifier and without token, secured by the structural decoupling of the personal and service identifiers
FR2747814A1 (en) Access control system with clock synchronisation facility
WO2002005226A1 (en) Micropayment transaction management method, client devices, trader and financial intermediary
FR2747815A1 (en) Control system for access to services
EP3899765A1 (en) Reinitialization of an application secret by way of the terminal
FR2782564A1 (en) Electronic purse and payment protocol for making secure payments in different currencies, comprises storage of certificated conversion table and comparison of electronic signatures
FR2793979A1 (en) Data management method for telephone card includes allocation of channel to card on reading within security module associated with reader

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA CN JP SG

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2249462

Country of ref document: CA

Ref country code: CA

Ref document number: 2249462

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1997915536

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1997915536

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1997915536

Country of ref document: EP