[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

EP3266148A1 - Device and method for administering a digital escrow server - Google Patents

Device and method for administering a digital escrow server

Info

Publication number
EP3266148A1
EP3266148A1 EP16710269.8A EP16710269A EP3266148A1 EP 3266148 A1 EP3266148 A1 EP 3266148A1 EP 16710269 A EP16710269 A EP 16710269A EP 3266148 A1 EP3266148 A1 EP 3266148A1
Authority
EP
European Patent Office
Prior art keywords
machine
administration
value
function
machines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP16710269.8A
Other languages
German (de)
French (fr)
Other versions
EP3266148B1 (en
Inventor
Bertrand WALLRICH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institut National de Recherche en Informatique et en Automatique INRIA
Original Assignee
Institut National de Recherche en Informatique et en Automatique INRIA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institut National de Recherche en Informatique et en Automatique INRIA filed Critical Institut National de Recherche en Informatique et en Automatique INRIA
Publication of EP3266148A1 publication Critical patent/EP3266148A1/en
Application granted granted Critical
Publication of EP3266148B1 publication Critical patent/EP3266148B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Definitions

  • the invention relates to computer security in general, and more particularly the confidentiality of digital data.
  • Encryption involves applying a cryptographic function to numeric, block, or message data, using a particular value as a parameter. This particular value corresponds to what is called an encryption key in the art. Subject to knowing the cryptographic function used, which is generally the case when the algorithms are public, it is necessary and sufficient to know the value of a decryption key to decrypt the digital data.
  • this decryption key is such that it can not be easily found. Generally a key of significant value is used, which makes it practically impossible to recover the encrypted data without knowing the value of the key, in particular by successive attempts.
  • the decryption key which is generally referred to as "private key” differs from the encryption key, which is then called “public key”. It is sometimes said that these keys are asymmetrical.
  • the encryption key also allows decryption. It is said that the key is symmetrical.
  • the confidentiality of encrypted digital data relies on the ability to keep the secret decryption key.
  • the value of the decryption key is kept secretly by the recipient of the digital data, or disseminated in a strictly limited way to third parties authorized to access this data.
  • the decryption keys can be securely stored by a trusted third party which limits access to them. It is in particular a digital receiver server, a receiver corresponding to an encrypted form of the confidential digital data.
  • the key to decrypt a digital escrow can be secretly kept by a single person. Generally, it is a recipient of the receiver, especially the owner, or the administrator of the server. In this case, however, the sequestered data may be lost if the person in question is no longer able to indicate the value of the decryption key.
  • the administrator function of an escrow server is sometimes provided by several people, each of these people having knowledge of the value of the decryption key. This affects the confidentiality of the data: each administrator can decipher a receiver. The risks to the confidentiality of receivers are increased: the administrators of the receiver server are more frequently the target of computer attacks since a successful attack can provide access to the data of several receivers.
  • Another practice is to establish a convention for the generation of the decryption key, to reconstruct it in case of loss.
  • the knowledge of the convention and the data necessary for its application is equivalent to knowing the key itself.
  • a flaw is introduced in the data security, in that knowledge of the convention makes it possible to determine all the encryption keys conforming to the convention.
  • Another practice is to provide a recovery key for the encrypted data.
  • An encryption algorithm is used such that the encrypted data can be decrypted either by the encryption key, kept by the user, or by the recovery key, entrusted to a trusted third party.
  • each third party can recover the encrypted data alone. And we multiply the security vulnerabilities due to a wider distribution of key values for decryption of data.
  • the same value of recovery key is often used for encryption keys corresponding to different users. And the validity period of a recovery key is generally much greater than that of the user encryption keys.
  • An alternative is to distribute the decryption key between several trusted third parties: it is necessary to gather all the key parts of third parties to obtain the recovery key.
  • the security is greatly improved insofar as it is necessary to know and attack each of the third parties to hope to recover the encryption key.
  • One variant is to share this recovery key between trusted third parties, according to a secret sharing algorithm, such as Shamir type or equivalent.
  • the recovery key can be rebuilt by all third parties, or by a subset, also called "quorum" of these third parties.
  • a vulnerability persists: once the recovery key is rebuilt, it can be disclosed. There is no longer a quorum of administrators to access all the encrypted data.
  • the invention improves the situation.
  • an administration machine for a digital receiver server including at least one communication interface, memory storing a list integer values each corresponding to a respective machine of a group of administrative machines of the digital receiver server, and a set of parameters relating to an encryption function to perform a sequestration.
  • the machine further comprises a computer capable of executing a polynomial function of degree less than or equal to the number of machines of the group of administration machines, the polynomial function being specific to the administration machine, an initialization function arranged for call the polynomial function with each integer value of the list to obtain a row list of first secret values, construct at least one message comprising, for each administration machine homologous machine of the administration machine group, at least the first corresponding secret value to the integer value of this peer administration machine, in response to at least one message comprising, for each administration machine peer machine, at least one second secret value obtained from the call of the function polynomial of this counterpart administration machine on the entire value of the administration machine, consule a resultant secret value specific to the administration machine from the first and second secret values.
  • the calculator is further capable of performing a collection function arranged to process at least a portion of a digital receiver using the resulting secret value specific to the administration machine and resulting secret values specific to the counterpart administration machines. the administration machine group.
  • the proposed machine is capable of recovering a receiver by cooperating with the homologous machines of the group of administration machines, if necessary with only a subset of the machines of this group.
  • recovery a receiver is meant the process of deciphering the receiver without knowledge of the decryption key.
  • Each administration machine can recover the receiver if it has cooperated with a sufficient number of counterpart administration machines.
  • the number of machines that must cooperate to recover a receiver is configurable.
  • the machines of the group of administration machines operate in a similar manner to one another.
  • the proposed machine and the homologous machines do not need to know each other. No master key is used, which greatly improves the security of the receivers.
  • Certain sequester decryption parameters may be stored on the receiver server itself, for example encrypted with a key specific to each administration machine.
  • server corruption the confidentiality of the receivers remains assured, as well as the identity of the administrators and the means of deciphering the receivers.
  • a user can deposit a receiver. This user can not recover his escrow himself. This avoids any attack based on identity theft for the receiver.
  • the escrow server does not have to maintain a partial or temporary key, neither on disk nor in RAM. All decryption operations are executed on the administration machine.
  • the secret value used for recovery is specific to the administration machine. It is partly defined by secret values relating to the other administration machines.
  • a digital escrow exchange and processing infrastructure comprising an escrow server and a group of administration machines comprising at least two administration machines of the type proposed above for the escrow server, two administration machines being homologous to each other.
  • a method for administering a digital receiver server comprising the steps of: on each machine of a group of administration machines, calling a respective polynomial function of degree less than or equal to the number of machines in the group of administration machines with each value of a list of integer values each corresponding to a respective machine of the administration machine group to obtain a list of secret values; on each machine of the administration machine group, constructing at least one message comprising at least one secret value corresponding to the integer value of a destination administration machine; on each machine in the administration machine group, construct a resultant secret value specific to this machine from the calculated secret values, by the other machines in the administration machine group, for the integer value corresponding to the administration machine ; on at least some of the machines in the administration machine group, decrypting a digital receiver using this resulting secret value
  • FIG. 1 represents a block diagram illustrating an area of receivers
  • FIG. 2 represents a block diagram which illustrates a server module for a receiver domain
  • FIG. 3 is a block diagram illustrating a higher level administrator module for an escrow domain
  • FIG. 4 is a block diagram illustrating an administrator module for a receiver domain
  • FIG. 5 represents a block diagram which illustrates a client module for a receiver domain
  • FIG. 6 represents a flowchart illustrating successive operational modes of an escrow domain
  • FIG. 7 represents a flowchart illustrating the establishment of an escrow domain
  • FIG. 8 represents the domain of FIG. 1 in a first operational mode
  • FIG. 9 represents a flowchart that illustrates the operation of a higher level administration machine corresponding to a first operational mode of an escrow domain
  • FIG. 10 represents a flowchart that illustrates the operation of a receiver server corresponding to the first operational mode of an escrow domain
  • FIG. 11 represents a flowchart that illustrates the operation of an administration machine corresponding to the first operational mode of an escrow domain
  • FIG. 13 is similar to Figure 11;
  • Fig. 14 is a flow chart that details a step of Fig. 13;
  • FIG. 15 represents a flowchart that illustrates the operation of a receiver server corresponding to a second operational mode of a receiver domain;
  • FIG. 16 is a block diagram illustrating the domain of FIG. 1 in a second operational mode
  • FIG. 17 represents a flow chart that illustrates the operation of a client machine corresponding to the second operational mode of a sequester domain
  • Fig. 18 is a block diagram illustrating the sequester domain of Fig. 1 in a third operational mode
  • FIG. 19 represents a flowchart illustrating the third operational mode of an escrow domain
  • FIG. 20 is a flowchart illustrating the operation of an administration machine corresponding to the third operational mode of an escrow domain; - Figure 21 is similar to Figure 20;
  • FIG. 22 represents a flowchart that illustrates the operation of a receiver server corresponding to the third operational mode of an escrow domain
  • FIG. 23 represents a flowchart that illustrates the operation of an administration machine corresponding to the third operational mode of an escrow domain.
  • Figure 1 shows a computing infrastructure of exchange and processing of digital receivers organized in a domain 1.
  • the domain 1 is further organized to store digital receivers.
  • a "digital sequestration” or “sequestration” in short, corresponds to an encrypted form of a sequence of bytes of any size stored, or intended to be, securely on a third-party machine.
  • the original sequence of bytes is sometimes referred to as "secret” in the art.
  • a secret can for example correspond to a string of characters, a number, a sequence of numbers, a computer file or a list of files.
  • the domame 1 is organized on an infrastructure, hardware and software, computer network.
  • the base network comprises machines, hardware and software of the network, capable of communicating with each other according to any network protocol, for example on the basis of socket, hypertext transfer protocol, or http protocol, possibly in the version secure (https protocol) or RPC protocol, for "Remote Procedure Call” or remote procedure call in French, or more generally any structured data exchange protocol.
  • the machines of domain 1 communicate with each other according to a protocol allowing the exchange of data between the machines of domain 1.
  • the protocol can be encoded in any way so long as the machines of domain 1 can exchange data with each other the others, for example in ASN. l, JSON or XML.
  • the receiver area 1 comprises a receiver server 10 which, on the one hand, stores the digital receivers, and, on the other hand, partially controls at least the domain 1.
  • the server 10 can be distributed over several machines, hardware and / or software.
  • the server 10 may comprise a first machine dedicated to the storage of the digital receivers and a second, different machine, dedicated to the control of the domain 1.
  • Domain 1 further comprises a higher level administration machine, or higher administration machine 20, capable of communicating with the server 10.
  • the upper administration machine 20 controls the server 10.
  • Domain 1 further comprises a group of administration machines 30, here comprising a first administration machine 32, a second administration machine 34 and a third administration machine 36. Each machine of the group 30 is able to communicate. Group 30 machines operate on digital receivers.
  • Domain 1 finally comprises one or more client machines 40 which are each capable of communicating with the server 10, in particular in order to deposit one or more digital receivers therein.
  • FIG. 2 shows a server module 100 for use for example for the server 10 of FIG. 1.
  • the server module 100 comprises a main controller 110 and a data storage structure 120.
  • the controller 1 10 is able to read, write and process data in the storage structure 120.
  • the structure of this storage 120 maintains in particular a set management data relating to the escrow domain, including data related to the escrow setting.
  • the server module 100 further comprises at least a first communication interface 130 which can be controlled by the controller 1 10 to communicate with the machines of an escrow domain, for example the domain 1 of FIG. 1.
  • the server module 100 further comprises a second communication interface 140 that can be controlled by the controller 1 to exchange data exclusively with a digital receivers storage machine.
  • the controller 1 10 is able to send to the second interface 140 one or more messages including digital receivers for storage on the machine in question
  • the escrow storage machine may be arranged to periodically connect to the controller 110 via the second communication interface 140 in order to retrieve requests from the waiting server module 100 and to transmit to this module responses to requests relating to the previous connection.
  • the escrow storage machine corresponds to what is sometimes called a "cold server", usually designated by the equivalent English equivalent of "cold server”.
  • the server module 100 can be implemented in the form of a web-based software server equipped with JSON type libraries (for "Java Script Object Notation” or Javascript object notation in French) executed by a central computer unit.
  • the storage structure 120 may be organized in the storage memory of the computer in question.
  • FIG. 3 shows a super administrator module 200 for use, for example, in the super-administrator machine 20 of FIG. 1.
  • the super administrator module comprises a main controller 210 and a storage structure 220 which stores the data relating to the super administrator function.
  • the controller 210 can read, write and process the data in the storage structure 220.
  • the super administrator module 200 further comprises a user interface 230, for example of graphical type, which interacts with the main controller 210.
  • the administrator module further comprises a communication interface 220 which can be controlled by the main controller 210 to transmit and receive data through a sequestering domain, for example the domain 1 of FIG. 1.
  • the super administrator module 200 can take the form of a Java application that runs on a central computer unit.
  • the storage structure 220 may be organized in the storage memory of the computer in question.
  • FIG. 4 shows an administrator module that can be used in an administration machine, for example each of the first machine 32, the second machine 34 and the third machine 36 of the administration group 30 of FIG.
  • the administration module 300 comprises a main controller 310 and a data storage structure 320 with which the controller can interact, in particular, to read, write and process data.
  • the administrator module includes a user interface capable of interacting with the main controller 310.
  • the user interface is of graphic type.
  • the administration module 300 further comprises a communication interface 340 which can be controlled by the controller 310 for exchanging data through an infrastructure of receivers, for example the domain 1 of FIG. 1.
  • the administrator module can be made as a Java application that runs on a central computer unit.
  • the storage structure 320 may be organized in a storage memory of this central unit.
  • FIG. 5 shows a client module 400 used for example in the client machine 40 of the domain 1 of FIG. 1.
  • the client module 400 includes a controller 430 and a data storage structure 440 with which the main controller 410 can interact to read, write, and store data.
  • the client module 400 further comprises a user interface 430 which interacts with the main controller 410.
  • the user interface 430 may be of graphic type.
  • the client module 400 further comprises a communication interface 440 which can be controlled by the main controller 410 to exchange data through a sequestration infrastructure, in particular, the domain 1 of FIG. 1.
  • Client module 400 can be implemented as a Java application running on a central computer unit.
  • the storage structure 420 can be organized in the storage memory of this calculation unit.
  • server modules 100, super administrator 200, administrator 300 and client 400 are integrated in the same application, for example Java, which runs on a machine as a particular module according to the associated rights in the domain to an identifier of the user of the machine in question.
  • FIG. 6 generally illustrates various operational modes of a digital receiver infrastructure, in particular domain 1 of FIG. 1.
  • a first operational mode illustrated by block 5
  • at least some of the software and hardware elements of an infrastructure computer network cooperate to establish an escrow domain.
  • a second operational mode illustrated by block 7, at least some of the hardware and software elements of the infrastructure cooperate to allow registering a receiver on a server of the infrastructure, for example the server 10 of FIG.
  • At least some hardware and software elements of the infrastructure cooperate to recover at least one of the receivers stored on the infrastructure server, that is to say to allow the decryption of the digital receiver in the absence of at least some of the data used for the encryption of the digital receiver in question.
  • Figures 7 and 8 detail the establishment of a sequestering infrastructure such as the domain 1 of Figure 1 for example.
  • the establishment of the infrastructure begins with a configuration phase, represented here by block 50.
  • it involves setting at least some of the parameters necessary for the operation of the infrastructure, at least in an initial phase.
  • This involves at least defining, among the hardware and software elements of a network infrastructure, an infrastructure controller, an escrow storage server, possibly assembled in a single machine, and a group of administration machines for the receivers. . This definition may involve user intervention.
  • the configuration of the receiver infrastructure can be performed from a particular machine in the network infrastructure, such as a higher level administration machine, for example the machine 20 of FIG. 8.
  • Configuration data infrastructure are maintained on the controller, to which the administration machines can access. In the example of FIG. 8, these data are maintained on the sequester server 10, for example in a structure similar to the storage structure 120 of FIG. 2.
  • the configuration data of the receiver infrastructure can be transmitted to the escrow controller by the highest level administration machine in a specific domain creation message, or CREATJDOM message, as shown in FIG. 8.
  • the establishment of the sequestrator infrastructure is continued by the generation of cryptographic parameters for use in the infrastructure, which corresponds to block 52 of FIG. 7, and by the sharing of these parameters between at least some of the machines of the sequestration infrastructure. infrastructure, which corresponds to block 53 of Figure 7.
  • Each administration machine for example each machine in the group 30 of FIG. 1, generates a first set of cryptographic parameters of its own. Then the cryptographic parameters of the first set of administration machines are shared between the peer machines of the administration machine group. The sharing of these parameters can be done through the infrastructure controller, which prevents the administration machines from having to communicate directly with each other. For example, each administration machine transmits data from its first set of cryptographic parameters to the controller, using an initialization message.
  • each of a first administrator station 32, a second administrator station 34 and a third administrator station 36 sends the server 10 an administrator initialization message, or ADMJNIT message.
  • the controller of the escrow infrastructure stores the cryptographic parameters received from the administration machines in a collection of first cryptographic parameters relating to the group of the administration machines, then makes this collection available to these administration machines.
  • each of the first administration machine 32, the second administration machine 34 and the third administration machine 36 receives from the server 10 a message containing administrative configuration data. Domain 1, or DOM_CFG_ADM message.
  • This data includes a collection of first cryptographic parameters.
  • Each administration machine stores the collection of first cryptographic parameters.
  • Each administration machine generates a second set of cryptographic parameters from the collection of first cryptographic parameters. This corresponds to block 54 of FIG. 7.
  • the second set of cryptographic parameters comprises cryptographic data specific to the administration machine that generated it and cryptographic data for use more generally by other machines of the infrastructure. in particular other administration machines.
  • the parameters of the second set are then shared between the administration machines. This corresponds to block 55 of FIG. 7. Sharing can be done through the receiver controller.
  • each administration machine transmits to the server 10 a data sharing message, or ADM_SHAR message, which contains the data of its second set of parameters.
  • the establishment of the receiver infrastructure ends with the calculation of cryptographic parameters for use in this infrastructure, in particular for the deposit of a receiver, from the collection of cryptographic parameters.
  • the cryptographic parameters in question comprise in particular a public key valid for the receiver infrastructure.
  • This public key can be made available to the infrastructure machines on a server of the infrastructure, typically the receiver server or the controller.
  • This public key can be used to encrypt digital data for sequestration purposes.
  • FIG. 9 illustrates a first main function for a higher level administration machine, for example the machine 20 of FIG. 8, for use in the first operational mode of an escrow infrastructure. This may be, for example, the operation of the main controller 210 of Figure 3.
  • the function starts in a step 5000.
  • the function receives an identifier for the receiver infrastructure, or identifier Domld, for example in the form of a character string, a total number of administration machines for the infrastructure, or number DomAdmMax, a minimum number of administrative machines necessary for the recovery of a receiver, or DomAdmMin number, and an identifier for each infrastructure administration machine, noted generically DomAdm_i for an i-th machine, for example under the form of a string of characters.
  • These data are stored in memory, for example in a structure similar to the storage structure 220 of FIG. 3.
  • the identifiers DomAdm_i can be stored in an array of dimension n, where the number n corresponds to the number DomAdmMax.
  • the function constructs an infrastructure creation message. , for example a CREAT DOM message, comprising an identifier of the host machine, here the identifier SAdmld, as issuer, and the identifier of a controller of the infrastructure as a recipient, or identifier SRVRId.
  • the message contains as data the Domld string, the DomAdmMax number and the DomAdmMin number, and a table of the type of the DomAdm array, each element of which corresponds to the identifier of an infrastructure administration machine. or the like.
  • FIG. 10 illustrates a first main function for a controller, for example the server 10 of FIG. 8, in the first operational mode of an escrow infrastructure. This is for example the operation of the controller 110 of Figure 2.
  • the function starts in 5100.
  • the function receives a domain creation message from a higher level administration machine, for example a CREATJDOM message.
  • the message includes a domain identifier, for example the Domld string, a number of administration machines, for example the DomAdmMax number, a minimum number of administration machines, for example the DomAdmMin number, and a list of machine identifiers. administration, for example the DomAdm board.
  • the function stores the received data locally.
  • the function stores the identifier of each administration machine, noted generically DomAdm_i, in relation to a respective integer value (non-zero), noted generically value DomAdmRk_i.
  • the function fills an array relating to the group of administration machines, here a table DomAdmGr, each element includes a DomAdm_i identifier, in relation to a value DomAdmRk_i.
  • the DomAdmRkJ value can be an index value of the DomAdm_i ID in the DomAdmGr array. This index may correspond to the order in which the administration machine received the user identifiers. Random scheduling can also be implemented. In addition or in replacement, integer values can be generated randomly.
  • FIG. 11 illustrates a first function for an administration machine, for example the main function 310 of the administration module 300 of FIG. 4, corresponding to the first operational mode of a Domain infrastructure. This first function is intended for generating a first set of cryptographic data.
  • the function starts in 5200.
  • the function receives the identifier DomAdmId_i of an administration machine i.
  • the function also receives a code whose value conditions access to this machine i.
  • the code is for example a password, which is generically noted DomAdmPwd_, for example in the form of a character string, where appropriate chosen by or for a user of the machine i.
  • the function In the next step 5204, the function generates a pair of values corresponding to a public key, or key PubKy, and a private key, or key PvtKy, of an asymmetric type of encryption function.
  • the key PvtKy and the key PubKy are generated randomly on the machine i and are specific to this machine i.
  • the asymmetric encryption function can be of the RSA or El Gamal type, for example.
  • the function randomly generates an integer in an interval [1 .. pO-2], where pO is an integer value that corresponds to a parameter common to machines in the receiver infrastructure. The generated value is used as the PvtKy key.
  • the function then calculates the key PubKy using a generating value gO, in the interval [1 .. pO-2], raised to the power PvtKy and brought back to the interval [1 ... p0_2] (modulo pO).
  • the generating value gO may be common to the receiver infrastructure.
  • the values of the parameters p0 and g0 can be coded in the function to avoid exchanging these values between machines of the infrastructure. This improves the security of the sequestration infrastructure.
  • the values of the parameters p0 and g0 may be specific to each administration machine. In this case, these values are communicated to the peer machine in the group of administrative machines.
  • the key PvtKy is encrypted by means of a symmetrical type function, for example of the AES type, with a code specific to the machine i as a parameter, for example the string DomAdmPwd_i.
  • a code specific to the machine i for example the string DomAdmPwd_i.
  • the key PvtKy, the key PubKy and the value EncPvtKy are specific to the machine i.
  • the function constructs a message destined for a controller of the infrastructure, for example the server 10 of FIG. 8, indicating the identifier of the administration machine DomAdm_i as issuer.
  • the message includes data corresponding to the key PubKy_i generated on the machine i and the value EncPvtKy_i encrypted for the machine i. This is for example an ADM_INIT message in Figure 8.
  • the function then stops in 5210.
  • FIG. 12 illustrates a second function for a controller, for example the server 10 of FIG. 8, for use in the first operational mode of an escrow infrastructure. This is for example the operation of the main controller 210 of Figure 3.
  • the function starts at 5300.
  • the function starts a loop structure by initializing a counter j.
  • the function receives a message from an administration machine i of the infrastructure.
  • the message comprises two values respectively corresponding to a public key value specific to the machine i, here the key PubKyJ, and an encrypted value for this machine i a private key specific to the machine i, here the value EncPvt y_i. This is for example an ADM_INIT message.
  • the function stores the data from the previous step.
  • the data is gathered as an index element j of a GrpDomAdm array.
  • the function adds to the received data the integer value DomAdmRk i of the administration machine i.
  • step 5308 the counter j is incremented.
  • the function verifies that the counter ja reaches its final value. This value is the DomAdmMax number.
  • the function checks that it has received and processed an initialization message from each of the sequestration infrastructure administration machines.
  • Steps 5300 to 5312 correspond to the storage, on the controller of the receiver infrastructure, of cryptographic data for the secure exchange of data between management machines, directly or through the controller.
  • This cryptographic data comprises, for each administration machine, a respective value for use as a public key.
  • this cryptographic data further comprises an encrypted value, for the machine in question, of the private key corresponding to the public key The latter can become optional, insofar as at least some of the administration machines can keep their private key without addressing it to the controller or counterpart machines.
  • Fig. 13 illustrates a second main function for an administration machine, for example one of the first 32, second 34 and third 36 administration machines of Fig. 8, corresponding to the first operational mode of a sequestration infrastructure.
  • This second function corresponds to the exchange of parameters of a first set of cryptographic parameters between administration machines. This is for example the operation of the main controller 310 of Figure 4.
  • the function starts in a step 5400.
  • the function receives a message from a controller of the infrastructure comprising data relating to each administration machine i of the receiver infrastructure.
  • the data comprises, for each administration machine i, a machine identifier, for example the identifier DomAdmId_i, a public key value specific to this machine i, for example the key PubKyJ, an encrypted value for this machine i of a private key generated by this machine i, by example the key value EncPvtKyJ, and a rank DomAdmRk_i of this machine.
  • the data can be collected in a table similar to the GrpDomAdm table.
  • the function receives a code which conditions access to the machine, for example the string DomAdmPwd.
  • Steps 5400 to 5406 correspond to the recovery, by a particular administration machine, of the data of its first set of cryptographic parameters, in particular its public key value and an encrypted version of its private key value. This makes it possible to use physically different equipment as an administration machine i between steps 52 and 54. This also prevents the machine from storing cryptographic data on equipment, which greatly improves security. However, these steps are optional in that this cryptographic data can be securely stored on a particular piece of equipment.
  • the function generates data defining a polynomial of degree corresponding to the number DomAdmMin minus one.
  • the coefficients of the polynomial are generated randomly in a discrete integer space whose dimension, represented here by the integer q, is common to the administration machines of the sequestrator infrastructure.
  • the polynomial is specific to the machine that generated it.
  • the peer machines in the administration machine group do not necessarily use the same polynomial.
  • step 5408 the function stores as an index element j of an array Poly_i the result of a random generation function with values in an interval [1 .. q-2].
  • the counter j is incremented in the next step 5412.
  • step 5414 the function verifies that the counter ja reaches its final value, that is to say the number DomAdmMin.
  • the function verifies that a coefficient has been generated for each term of the polynomial. If so, then the function continues to the next step 5416. Otherwise, the function returns to step 5410 where it generates a value for the higher degree coefficient and then stores it in the Poly_i table.
  • a local public key value specific to the administration machine i is calculated from the data of the table Poly_i.
  • key LocKy L is calculated from the data of the table Poly_i.
  • the key LocKy_i is computed with the generator value g of the infrastructure, in the interval [1 .. p-2], by using the term of the polynomial of degree zero, here the integer of zero index of the table Poly_i.
  • the value LocKy_i is specific to the administration machine i considered.
  • the function calculates a collection of secret values relating to the other domain administration machines.
  • a secret value for a generic administration machine k is encrypted with the key PubKy_k of this administration machine, for example as received in step 5402.
  • the encrypted secret values are gathered here in an array EncRemKy_i .
  • the secret value for the administration machine k is stored as an index item k-1 in this table.
  • the function constructs a message to the server for cryptographic data sharing, or message ADM_ SHAR.
  • the message in question includes the value of the local key LocKy_i of the host machine i and an array of secret values, where appropriate encrypted, corresponding to the table EncRemKy_i.
  • the encryption of secret values makes it possible to ensure their confidentiality. In other words, only the administration machine can access the secret calculated for it by the administration machine i. This makes it possible to confidentially gather the secret values on a server of the infrastructure.
  • the encryption can become optional in the case where it is possible to ensure in another way the confidentiality of the secret, for example in the context of an exchange of secret values directly between the administration machines.
  • FIG. 14 details step 5418 of FIG. 13.
  • the function starts a loop structure by initializing a first counter j to the value 0 (zero).
  • the function creates a calculation table RemKy_i and initializes the index element j of this array to 0 (zero).
  • the function starts a second loop structure, nested in the first, by setting a second counter k to 0 (zero).
  • the function stores in the calculation table RemKy_i, as index element j, the value corresponding to this index j, to which the degree coefficient k of the signature polynomial is added, it is ie the integer value of index k in the table Poly_i, that multiplies the rank of the administration machine j + 1, or DomAdmRkJ + 1 to the power k.
  • the function increments the loop counter k, before checking, in a step 54188, that this loop counter ka reaches its final value, corresponding to the number DomAdmMin. If yes, then the function continues to the next step 54190. Otherwise, the function returns to step 54184.
  • the steps 54182 to 54188 correspond to the calculation of a result-value of the polynomial function which serves as a signature function to the administration machine i for a particular value.
  • This particular value corresponds to the integer value DomAdmRkj of an administration machine j of the infrastructure.
  • the result value is generated on a particular administration machine, based on a function specific to that machine. This value can be seen as a signature value.
  • the result value is also a secret value. This result value is calculated on the basis of an integer value uniquely corresponding to a peer machine in the administration machine group. It can be seen as part of a secret value unique to this peer machine.
  • the function encrypts the secret value corresponding to an administration machine j, for example the index value j in the key table Rem y_i, with the key PubKy_j of this machine j.
  • the encryption here uses a function of the El Gamal type, the parameters of which are common to the administration machines of the sequestrator infrastructure, for example the parameters g_u and p_0 described in connection with step 5204.
  • the values these parameters are coded in the function.
  • the first loop counter j is incremented, and it is verified in a step 54194 that the loop counter j has reached the value DomAdmMax.
  • FIG. 15 illustrates a third main function for a controller, for example the server 10 of FIG. 8, in the first operational mode of an infrastructure of receivers. This third function corresponds to a phase of exchange of encryption parameters.
  • the function starts in step 5500.
  • the function initiates a loop structure initializing a first counter j to 0 (zero).
  • the controller receives a message from an administration machine i, for example an ADM_SHAR message.
  • the message contains a signature value of the administration machine i, for example a value LocKy_i, and an encrypted value EncRemKy_i J of a secret value RemKy_iJ of the machme i calculated for each other administration machine j, from the integer value corresponding to the latter.
  • the encryption was done with the PubKyJ key of each machine j. For example, these values are collected in an indexed array EncRemKy_i.
  • a value corresponding to the integer value of the machine i is stored as an index element j of an array GrpDomAdm, for example the value DomAdmRkJ, an identifier of this machine, for example the an identifier DomAdmId_i, a public key value specific to this machine, or key PubKy_i, an encrypted value of a private key value generated by this machine, for example the value EncPvtKy_i, the signature of this machine, or value LocKy_i, and encrypted values EncRemK J of signatures generated by the machine i for each other administration machine j of the infrastructure.
  • an index element j of an array GrpDomAdm for example the value DomAdmRkJ
  • an identifier of this machine for example the an identifier DomAdmId_i
  • a public key value specific to this machine or key PubKy_i
  • an encrypted value of a private key value generated by this machine for example the value EncPvtK
  • the function increments the loop counter j.
  • the function verifies that the loop counter ja reaches its final value, which corresponds to the number DomAdmMax. If so, then the server has received a message from each of the domain's administration machines. Otherwise, the function returns to step 5504 and waits for one or more messages from other administration machines. Once the server has received and processed the messages from all infrastructure management machines, i.e. the test in step 5510 is positive, the server starts a second structure of loop initiating a second counter k to the value 0 (zero) in a step 12.
  • the server creates a DomPubKy calculation variable.
  • the variable DomPubKy is initialized to the value 1 (one).
  • the new value of the variable DomPubKy is calculated as the old value of this variable DomPubKy multiplied by the local public key of the administration machine k, or key LocKy_k.
  • the next step 5518 is to increment the second loop counter k.
  • the next step 5520 it is verified that the loop counter k has reached its final value, which corresponds to the number DomAdmMax.
  • step 5522 If so, then the function stops at the next step 5522. Otherwise, the function returns at 5516.
  • the result of steps 5514 to 5520 is a final value of the variable DomPubKy which corresponds to the product of the respective local key values LocKy_k of each administration machine of the sequestration infrastructure.
  • FIG. 16 illustrates the sequester domain 1 in the second operational mode, which corresponds to the deposit of a receiver on the server 10 from a client machine 40.
  • the client machine 40 receives from the server a message comprising cryptographic parameters for use in the domain, or message DOM_CFG_CLT.
  • This data includes a public key value for use in the domain 1, that is to say, to use to encrypt a receiver for this infrastructure. This is the final value of the DomPubKy variable.
  • the client machine 40 processes a series of bytes of any size to be sequestered using the received cryptographic parameters and local parameters, and then sends a message containing the sequester to be stored to the server 10, or message ADD_ESCRW.
  • the encrypted byte sequence corresponds to what is sometimes called a "secret" in the art.
  • the secret can be a string, a number or a sequence of numbers, a file or a list of files.
  • Fig. 17 illustrates a main function for a client machine of a sequestration infrastructure, for example the machine 40 of Fig. 16, in the second operational mode of the infrastructure.
  • the function starts in a step 700.
  • the function receives the secret to be processed, for example a string of characters CltScrtStrg.
  • the function randomly generates an integer value CltSesKy, here using a subfunction kygnrtr ().
  • the function encrypts the string CltScrtStrg with the integer value CltSesky.
  • the function uses a symmetric type encryption algorithm, for example of the AES type. We get an encrypted string, or string EncCltScrtStrg.
  • the integer value CltSesky is a session key for the client machine, i.e., this integer value is used only for encrypting a CltScrtStrg string or a limited number of analog strings. This CltSesKy value is unique to the client machine.
  • the function randomly generates a value r in the range [1 .. p-2].
  • the function encrypts the session key CltSesky with the value DomPubky, which corresponds to a public key for the escrow domain.
  • the function uses an El Gamal type encryption function with, as parameters, the p-dimension and g-generator values of the infrastructure. These values may have been received from the server as cryptographic parameters or integrated directly into the function.
  • Encryption uses as parameter the integer value r generated randomly as a private key.
  • the escrow includes the encrypted form of the session key.
  • the sequester includes a first digit Alpha which is equal to the generating value g of the domain raised to the power r modulo p, and a second digit Beta which corresponds more particularly to the encrypted form of the session key, calculated as the public key to the power. r that multiplies the CltSesky session key, all modulo p.
  • the client machine sends a message to an infrastructure controller, for example an ADD_ESCRW message.
  • the message contains an identifier of the client machine, or identifier DomCltld, a sequester identifier, for example in the form of a string CltEscwid, and the sequester comprising the values Alpha and Beta corresponding to the encrypted value EncCltSesKy of the session key CltSesKy.
  • the message may further contain the encrypted form EncCltScrtStrg of the string CltScrtStrg, i.e., the secret of the user of the client machine. In a way, this encrypted form can be seen as part of the sequestration.
  • the client machine is identified with the infrastructure controller to receive the operating parameters of the infrastructure, in particular the values of the parameters p and g and the public key.
  • the client machine, or its user is not necessarily authenticated. In other words, the controller does not keep any authentication data relating to the client machine or its user. The function then stops at step 712.
  • the infrastructure controller may issue an acknowledgment to the client machine.
  • the server stores the receiver, in particular in a cold storage type server, and the data relating to the client machine.
  • Fig. 18 illustrates the third operational mode of a receiver infrastructure such as domain 1 of Fig. 1.
  • a subset of the domain 1 administration machine group cooperates to recover a digital receiver, for example the Alpha and Beta values corresponding to the encrypted form of the CltSesKy key.
  • this is the second administration machine 34 and the third administration machine 36.
  • Each of the administration machines receives a message containing the cryptographic configuration data of the domain, or DOM_CFG_ADM message.
  • the escrow recovery consists of four main transactions.
  • a first operation illustrated by block 90 of FIG. 19, at least some of the machines of the group of administration machines, here the second machine 32 and the third machine 36, each calculate a respective additional value from the cryptographic data. calculated for them by all the other administration machines of the sequestration infrastructure.
  • This additional value is secret since it is calculated for the first time on the administration machine concerned, from secret values calculated and encrypted for this administration machine.
  • the sequester is recovered, or at least the value of Alpha.
  • a next operation represented by block 94, the administration machines that calculated their additional secret value re-encrypt the value Alpha.
  • the Alpha value corresponds to a part of the escrow, in particular a part of the encrypted value EncCltSes y of the key CltSes y. This step of encrypting the Alpha value can be seen as over-encryption.
  • each administration machine having calculated an additional secret value decrypts the receiver. In other words, each of these administration machines retrieves the value of the session key CltSesKy. As an option, at least some of these machines can decrypt the EncCltScrtStrg secret.
  • FIG. 20 illustrates a second main function for an administration machine of a sequestration infrastructure and intended for the calculation of a secret value specific to this machine, generically denoted as the administration machine j, or DomAdmJ machine.
  • the function starts in a step 9000.
  • the function receives from an infrastructure controller a message containing a public key value for use in the infrastructure, for example the key DomPubKy, and the data relating to cryptographic parameters of the infrastructure. , for example grouped in an array of the GrpDomAdm table type. This is for example a DOM_CFG_ADM message.
  • the cryptographic parameters include in particular the set of secret values calculated by each administration machine i for the other administration machines j of the group of administration machines.
  • each secret value is encrypted with the public key of the administration machine for which it is intended, that is to say whose integer value was used for the calculation.
  • the function receives a code which conditions the access to the administration machine j, for example a chain analogous to the chain DomAdmPwdJ.
  • the function searches in the cryptographic parameters of the infrastructure for the entire value DomAdmRkJ corresponding to an administration machine j.
  • the function decrypts the EncPvt yJ value of the machine j with the password DomAdmPwdJ entered in step 9004. This results in a private key value corresponding to the administration machine j, or key PvtKyJ.
  • Steps 9004 to 9008 are optional. They aim to find the key value PvtKy_i of the machine i, as it was calculated at the initialization of the domain of receivers.
  • the function starts a loop structure by initializing a counter k to the value 0 (zero).
  • the function creates a calculation variable AdmScrtJ for the administration machine that it sets to zero.
  • the function assigns the calculation variable AdmScrtJ the previous value of this variable to which it adds the decrypted version of the secret value computed by the administration machine k for the administration machine j.
  • this value corresponds to the index element j-1 of the EncRemky_k + 1 array.
  • the function increments the counter k.
  • the function verifies that the counter ka reaches its final value, which corresponds to the number DomAdmMax. If so, then the function ends in the next step 9020. Otherwise, the function returns to step 9014.
  • the resulting value AdmScrtJ corresponds to an additional secret value of the administration machine j calculated from the secret values calculated for this machine by the other infrastructure administration machines.
  • at least some of the administration machines send a message with identifiers corresponding to the receivers, for example a username and a receiver name. This is for example a GET_ESCRW message.
  • a receiver controller is arranged to return the value Alpha to these administration machines.
  • FIG. 22 illustrates a second main function for a sequestration infrastructure administration machine in the third operational mode of this infrastructure, for example one of the second machine 34 and the third machine 36 of FIG. 18. This is to re-encrypt part of the sequestrum, the Alpha value, with a secret value specific to the administration machine and established from secret values computed for it by the homologous machines of the group of administration machines. .
  • the function starts in a step 9400.
  • the function receives a message comprising the value Alpha corresponding to a portion of a digital receiver. Typically, this is a portion of the EncCltSesKy encrypted value of the CltSesKy session key.
  • the function calculates an encrypted value EncCalpha_i of the value Alpha with an additional secret value AdmScrtJ of the machine i.
  • the function raises the Alpha value to a power corresponding to the additional secret value AdmScrtJ of the machine i, all modulo p.
  • the function initiates a loop structure by initializing a counter k to the value 0 (zero).
  • the function calculates an encrypted value of the value EncCalphaJ using the key PubKy_k + 1 corresponding to the administration machine k + 1.
  • the result is for example stored as index element k of a table, noted here EncCalphaJ table.
  • the function increments the loop counter k.
  • the function checks that the loop counter k has reached its final value, which corresponds to the number DomAdmMax.
  • step 9414 the function has established a collection of encrypted values each corresponding to the value EncAlpha_i of Alpha encrypted with the additional secret value of the machine i encrypted again with the pubKy_k public key of another k administration machine of the infrastructure. These steps are intended to encrypt the exchange of EncAlpha_j values each specific to a respective administrative machine of the infrastructure between the administration machines i through the infrastructure. These steps are optional.
  • the administration machine i constructs a message intended for the infrastructure controller, for example an ADM_SCRYPT_ESCRW message.
  • the message comprises the collection of EncCalpha_i_k values, for example in the form of an indexed EncAlpha_i list of values of which a generic index element k comprises a value of EneAlpha_i encrypted with the key PubKyJk corresponding to the index value.
  • the function then stops at step 9416.
  • Fig. 22 illustrates a third function for a receiver infrastructure controller such as server 10 of Fig. 18 in the third operational mode of this infrastructure.
  • step 9500 The function starts with step 9500.
  • step 9502 the function initiates a loop structure by initializing a counter j to 0 (zero).
  • the server receives a message from an administration machine i.
  • the message includes the collection of encrypted values of Alpha by the machine i encrypted for each other administration machine of the receiver infrastructure.
  • these values are gathered in a table of the type of the table EncCalpha_i [..]
  • the function creates a table to hold the encrypted values of Alpha for the domain, or DomCalpha array.
  • the function stores therein the collection of values computed by the administration machine i, or table EnCalphaJ as an index element j, here in relation with an identifier of this machine, for example the identifier Admld__i
  • the function increments the loop counter j.
  • step 9510 the function verifies that the loop counter j has reached its final value, which corresponds to the number DomAdmMin. If so, then the function has received and processed as many messages as the minimum number of administration machines to recover a receiver. The function then continues with step 9512. Otherwise, the function returns to step 9504.
  • step 9512 the function initiates a loop structure by initializing a second counter k to the value 0 (zero).
  • the function retrieves an identifier of the machine whose calculated data is stored as an index element k in the DomCalpha array. This identifier is that of the administration machine i, generically noted Admld_i.
  • the function controls the transmission of a message to the administration machine k.
  • the message contains the DomCalpha array and the Beta value.
  • the function increments the second loop counter k.
  • the function verifies that the counter k has reached its final value, namely the number DomAdmMin.
  • the function has issued a message to each administration machine involved in the collection of a receiver. And the function stops at the next step 9520. Otherwise, the function returns to step 9513 to issue a message to another receiving machine of the receiver.
  • Fig. 23 illustrates a second function for an administration machine for use in decrypting the sequester.
  • the function starts with a step 9600.
  • the function receives a message from a controller of an escrow infrastructure, for example the server 10 of FIG. 18, containing a set of alpha values encoded with the secret values of the machines. administration of the escrow, each value itself being encrypted with a public key value of an administration machine.
  • these values are contained in an array of the type of the DomCalpha array.
  • the message may further include the Beta portion of the digital receiver.
  • the function initiates a loop structure by initializing a first counter j to the value 1 (one).
  • the function creates a SummC calculation variable that it initializes to zero.
  • the function starts a second loop structure, nested in the first, by setting a second counter k to 0 (zero).
  • the function initializes a second calculation variable, or Lambda variable J, to the value 1 (one).
  • the function checks that the integer value DomAdmRk k of the machine k differs from that DomAdmRkJ of the administration machine DomAdm J. If yes, then the function calculates a LambdaJ value by multiplying the previous value of the variable LambdaJ by the integer value DomAdmRk_k corresponding to the machine DomAdm_k and dividing the result by the value of the difference of the integer value DomAdmRkJ corresponding to the administration machine k and that DomAdmRk J corresponding to the machine DomAdm J, the whole modulo p. In the next step 9614, the function increments the second loop counter k.
  • step 9616 the function verifies that the loop counter k has reached its final value, which corresponds to the number DomAdmMin. If so, then the function continues with step 9618. Otherwise, the function returns to step 9610.
  • Steps 9608 to 9616 correspond to calculating a Lagrange coefficient value from the DomAdmRk integer values corresponding to the administration machine k and to the counterpart administration machines of at least a subset of the group 'administration.
  • step 9618 the function computes SummC as the previous value of the SummC variable to which it adds the EncCalpha value of Alpha encrypted for the administration machine i to the LambdaJ power.
  • step 9620 the function increments the loop counter j.
  • step 9622 the function checks that the loop counter ja reaches its final value, which corresponds to the number DomAdmMin. If so, then the function continues with step 9626. Otherwise, the function returns to step 9608.
  • the function calculates a decrypted version DcphKy_i of Beta for the administration machine i. This value is calculated by multiplying the value Beta by the last calculated value of the SummC variable to the power minus one (-1).
  • the function finds the secret value of the user CltScrtStrg by decrypting the encrypted version EncCltScrtStrg using the decryption key DcphKy_i.
  • This decryption key DcphKy_i corresponds to the integer value used for the symmetric encryption of the secret to be processed, for example the value CltSesKy described in connection with FIG. 17. Then the function stops at the next step 9630.
  • Steps 9600 to 9630 can be executed on each of the quorum sequestration administration machines, i.e., machines having calculated an over-encrypted version of Alpha.
  • Decryption involves a subset of domain administration machines whose cardinal is the DomAdmMin number.
  • the DomAdmMin number is defined as a parameter. It is similar to what could be called a "quorum" of administration machines.
  • the escrow's storage server mainly acts to provide the quorum administration machines with the different Alpha and Beta parts of the escrow.
  • the administration machines are arranged to recover only the session key of the client machine, and to communicate this value to the client machine.
  • a sequestration infrastructure has just been described in which the administration machines take care of the recovery of digital receivers and part of the initialization of this infrastructure.
  • a machine comprises the hardware and software elements necessary for the described operation.
  • the software elements may be common to at least some of the administration machines.
  • the administration machines are essentially distinguished from each other by their DomAdmld identifier in the infrastructure.
  • the identifier of an administration machine may be replaced by a user identifier insofar as the controller is able to relate a user identifier to an address for the messages, or, to a similar extent, by a software identifier
  • the control of access to an administration machine is conditioned to the provision of a code.
  • this code can be associated with an equivalent more easily memorized for the user.
  • the equivalent in question can take various forms, such as a computer file, a certificate, a token, which is called “token” in the art, possibly stored on storage media such as a smart card for example .
  • the equivalent can also correspond to a person's biometric parameters, such as fingerprints for example
  • the controller or the receiver server may provide the parameters of the cryptographic function for use in the domain.
  • the receiver server is arranged to store a receiver including the Alpha and Beta values of an El Gamal number corresponding to a symmetric encryption key and optionally the symmetrically encrypted form of a secret.
  • the server may store only a portion of this receiver, for example the Alpha and Beta values.
  • the described server performs a dual function, namely (i) keep encrypted user secrets, (ii) stores in encrypted form the encryption keys used on the user secrets with access.
  • the user can decipher his secret if he knows the value of the encryption key. In the opposite case, it may require the recovery of this key from its asymmetrically encrypted form. Recovery implies that a predetermined number of administration machines, or quorum, accesses the encrypted form of the encryption key. It is the server that gives access to this encrypted form.
  • the server may correspond to a machine dedicated to this function or a machine that also provides other functions within the infrastructure, for example one of the administration machines.
  • the exchange of cryptographic data between the administration machines, in particular the secret values, the secret keys or the sequestration, is done here by message exchanges which are centralized on the receiver controller.
  • This centralized architecture of the infrastructure can be abandoned in favor of an architecture in which at least some of the messages are directly exchanged between machines in the group of administration machines.
  • most of the messages addressed by the server to a respective administration machine contain data of interest only to other administration machines.
  • the confidentiality of this data is ensured by the use of encryption using the public key of the administration machine interested by the data.
  • the server only sends to each administration machine the data of interest to this machine.
  • Homologous administration machines have been described, that is to say which are able to function, in relation to the infrastructure, in a similar manner to one another. Homologous administration machines may differ materially from one another. In a presently preferred embodiment, each administration machine results from the execution on a central computer unit of a product of the same computer program. However, it can be envisaged that at least some of the administration machines are distinguished from each other by the product in question.
  • Administration or client machines in particular have been described which memorize a set of parameters relating to an encryption function for the operation of the infrastructure of a receiver.
  • This storage is to be understood here in a broad sense, encompassing, for example, parameters integrated in the program corresponding to the product running on a central computer unit, or temporary storage, limited to the time required for encryption / decryption / recovery calculations.
  • the invention has been described in the form of an escrow infrastructure including in particular one or more administration machines. It can be expressed as a method of administering an escrow server.
  • the described infrastructure or its variants, have the following particularities: - To recover the confidential data of the receiver, an evil person must corrupt the entire quorum of the administration machinery
  • the infrastructure works without a master key. No decryption key is rebuilt. Each administration machine over-encrypts at least a portion of the escrow with a secret value of its own.
  • the receiver server does not maintain any temporary or partial key useful for the recovery of a receiver. No secret key is available on the server, in memory, or in a file. The server maintains only encrypted digital data, without any element allowing their decryption. - All cryptographic operations, including the random generation of encryption parameters, are performed in a distributed manner on machines separate from the server / controller of receivers. The escrow is encrypted on the client machine.
  • No infrastructure user can recover his or her secret alone, i.e. without the participation of a quorum of administration machines. This avoids any theft of secrecy by identity theft.
  • the client machines, the administration machines and / or the higher level administration machine can be implemented in the form of the same software, or computer program product, executed on one or more computer equipment, typically a central computer unit.
  • the function of the resulting machine in the receiver infrastructure can be determined by user-related identification data, for example an identifier / password pair.
  • the identification data is associated, for example in the receiver controller, with a function such as administrator or super administrator. This does not necessarily apply to the client machine, since its user, i.e. the infrastructure client does not have to be authenticated.
  • the infrastructure works with a public key for encryption of receivers. No private key is associated with this public key.
  • the recovery is based on over-encryption using a secret shared in Shamir's way.
  • each machine initially generates a random encryption key in an asymmetric protocol.
  • Each machine has the public key of the server / controller, in particular coded in the program whose executable product is used for the implementation of the machine.
  • the overlay function is further arranged to, in response to a message comprising at least a portion of a digital receiver, calculate, with the resulting secret value specific to the administration machine, an encrypted version of this portion of the digital receiver. construct at least one message including this encrypted version of the digital receiver portion, and, in response to at least one message including encrypted versions of the portion of the digital receiver, computed with at least some of the resulting secret values specific to the sequestration machines. administration machine group, recover the receiver using at least some of these encrypted versions.
  • At least one of the first secret values corresponding to an integer value corresponding to a peer administration machine of the administration machine group, is included in the message or messages in encrypted form with a corresponding public key value to this counterpart administration machine.
  • the overlay function is arranged to calculate, for each homologous administration machine of at least a subset of the group of administration machines, a Lagrange coefficient value from the integer values corresponding to the machine of administration and to the subassembly homologous administration machines, and to apply this Lagrange coefficient value to the encrypted version of the portion of the digital sequester calculated with the resultant secret value specific to this counterpart administration machine.
  • the recovery function is furthermore arranged to process the part of the digital receiver using a value corresponding to the sum of the encrypted versions of the portion of the digital receiver calculated respectively with the resulting secret values specific to the administration machines. counterparts of said subset, each time raised to a power corresponding to a respective value of Lagrange coefficient.
  • the digital sequestration results from an El Gamal type encryption, the public key of which corresponds to a product of public keys each calculated with the aid of a corresponding integer value corresponding to the counterpart machine management machines of the group of machines. administration.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)

Abstract

An administration machine (32) for a digital escrow server (10) stores integer values each corresponding to a machine (32;34;36) of a group of administration machines (30). An initialisation function calls a polynomial function, unique to the administration machine, of a degree less than or equal to the number of administration machines, with each integer value, in order to obtain first secret values. The function constructs a message comprising, for each administration machine, the first secret value corresponding to the integer value of said machine. In response to a message comprising, for each administration machine, a second secret value obtained on calling the polynomial function of said machine on the integer value of the administration machine (32), the function constructs a resulting secret value from the first and second secret values. An overlay function processes a digital escrow using the resulting secret value unique to the administration machine (32) and resulting secret values unique to similar administration machines (34;36).

Description

Dispositif et procédé d'administration d'un serveur de séquestres numériques  Device and method for administering a digital receiver server
L'invention concerne la sécurité informatique en général, et plus particulièrement la confidentialité de données numériques. The invention relates to computer security in general, and more particularly the confidentiality of digital data.
Pour assurer la confidentialité de données numériques, on a l'habitude de les chiffrer. Les données numériques chiffrées sont inutilisables en l'état : elles doivent être préalablement déchiffrées. Le chiffrement consiste à appliquer une fonction cryptographique aux données numériques, par bloc ou par messages, en utilisant une valeur particulière en tant que paramètre. Cette valeur particulière correspond à ce que l'on appelle une clé de chiffrement dans la technique. Sous réserve de connaître la fonction cryptographique utilisée, ce qui est généralement le cas lorsque les algorithmes sont publics, il faut et il suffit de connaître la valeur d'une clé de déchiffrement pour déchiffrer les données numériques. To ensure the confidentiality of digital data, it is customary to encrypt them. The encrypted digital data is unusable as it is: it must be previously decrypted. Encryption involves applying a cryptographic function to numeric, block, or message data, using a particular value as a parameter. This particular value corresponds to what is called an encryption key in the art. Subject to knowing the cryptographic function used, which is generally the case when the algorithms are public, it is necessary and sufficient to know the value of a decryption key to decrypt the digital data.
La valeur de cette clé de déchiffrement est telle qu'elle ne peut pas être aisément retrouvée. Généralement on utilise une clé de valeur importante, ce qui rend pratiquement impossible le recouvrement des données chiffrées sans connaître la valeur de la clé, en particulier par tentatives successives. The value of this decryption key is such that it can not be easily found. Generally a key of significant value is used, which makes it practically impossible to recover the encrypted data without knowing the value of the key, in particular by successive attempts.
Dans le cas d'une fonction crypto graphique asymétrique, la clé de déchiffrement, que l'on désigne généralement par "clé privée", diffère de la clé de chiffrement, que l'on désigne alors par "clé publique". On dit parfois que ces clés sont asymétriques. Dans le cas d'une fonction cryptographique symétrique, la clé de chiffrement permet aussi le déchiffrement. On dit alors que la clé est symétrique. La confidentialité des données numériques chiffrées repose sur la capacité à conserver la clé de déchiffrement secrète. La valeur de la clé de déchiffrement est conservée secrètement par le destinataire des données numériques, ou diffusée de manière strictement limitative à des tiers autorisés à accéder à ces données. In the case of an asymmetric cryptographic function, the decryption key, which is generally referred to as "private key", differs from the encryption key, which is then called "public key". It is sometimes said that these keys are asymmetrical. In the case of a symmetric cryptographic function, the encryption key also allows decryption. It is said that the key is symmetrical. The confidentiality of encrypted digital data relies on the ability to keep the secret decryption key. The value of the decryption key is kept secretly by the recipient of the digital data, or disseminated in a strictly limited way to third parties authorized to access this data.
Les clés de déchiffrement, et plus généralement toutes données numériques confidentielles, peuvent être conservées de manière sécurisée par un tiers de confiance qui en limite l'accès. Il s'agit en particulier d'un serveur de séquestres numériques, un séquestre correspondant à une forme chiffrée des données numériques confidentielles.  The decryption keys, and more generally all confidential digital data, can be securely stored by a trusted third party which limits access to them. It is in particular a digital receiver server, a receiver corresponding to an encrypted form of the confidential digital data.
La clé de déchiffrement d'un séquestre numérique peut être conservée secrètement par une unique personne. Généralement, il s'agit d'un destinataire du séquestre, en particulier son propriétaire, ou l'administrateur du serveur. Dans ce cas cependant, les données séquestrées peuvent être perdues si la personne en question n'est plus en mesure d'indiquer la valeur de la clé de déchiffrement. The key to decrypt a digital escrow can be secretly kept by a single person. Generally, it is a recipient of the receiver, especially the owner, or the administrator of the server. In this case, however, the sequestered data may be lost if the person in question is no longer able to indicate the value of the decryption key.
Cela se révèle généralement assez critique puisque les données chiffrées sont des données sensibles et importantes. Leur disponibilité pour leur propriétaire, individu ou entreprise, est essentielle. Il en résulte que l'administrateur du serveur de séquestres doit montrer une disponibilité sans faille. This is usually quite critical as the encrypted data is sensitive and important. Their availability for their owner, individual or company, is essential. As a result, the administrator of the receiver server must show a flawless availability.
La fonction d'administrateur d'un serveur de séquestres est parfois assurée par plusieurs personnes, chacune de ces personnes ayant connaissance de la valeur de la clé de déchiffrement. Cela nuit à la confidentialité des données : chaque administrateur peut déchiffrer un séquestre. Les risques sur la confidentialité des séquestres se trouvent augmentés : les administrateurs du serveur de séquestres sont plus fréquemment la cible d'attaques informatiques dans la mesure où une attaque couronnée de succès peut permettre d'accéder aux données de plusieurs séquestres. The administrator function of an escrow server is sometimes provided by several people, each of these people having knowledge of the value of the decryption key. This affects the confidentiality of the data: each administrator can decipher a receiver. The risks to the confidentiality of receivers are increased: the administrators of the receiver server are more frequently the target of computer attacks since a successful attack can provide access to the data of several receivers.
Une autre pratique consiste à établir une convention pour la génération de la clé de déchiffrement, permettant de la reconstituer en cas de perte. Dans les faits, la connaissance de la convention et des données nécessaires à son application équivaut à la connaissance de la clé elle-même. On introduit une faille dans la sécurité des données, en ce que la connaissance de la convention permet de déterminer l'ensemble des clés de chiffrement conformes à la convention. Une autre pratique encore consiste à prévoir une clé de recouvrement pour les données chiffrées. On utilise un algorithme de chiffrement tel que les données chiffrées puissent être déchiffrées soit par la clé de chiffrement, conservée par l'utilisateur, soit par la clé de recouvrement, confiée à un tiers de confiance. Another practice is to establish a convention for the generation of the decryption key, to reconstruct it in case of loss. In fact, the knowledge of the convention and the data necessary for its application is equivalent to knowing the key itself. A flaw is introduced in the data security, in that knowledge of the convention makes it possible to determine all the encryption keys conforming to the convention. Another practice is to provide a recovery key for the encrypted data. An encryption algorithm is used such that the encrypted data can be decrypted either by the encryption key, kept by the user, or by the recovery key, entrusted to a trusted third party.
Dans ce cas cependant, chaque tiers peut recouvrer seul les données chiffrées. Et on multiplie les failles de sécurité du fait d'une diffusion plus large des valeurs de clé permettant le déchiffrement des données En outre, une même valeur de clé de recouvrement est souvent utilisée pour des clés de chiffrement correspondant à des utilisateurs différents. Et la durée de validité d'une clé de recouvrement est généralement bien plus grande que celle des clés de chiffrement utilisateurs. In this case, however, each third party can recover the encrypted data alone. And we multiply the security vulnerabilities due to a wider distribution of key values for decryption of data In addition, the same value of recovery key is often used for encryption keys corresponding to different users. And the validity period of a recovery key is generally much greater than that of the user encryption keys.
Une variante consiste à répartir la clé de déchiffrement entre plusieurs tiers de confiance : il faut réunir l'ensemble des parties de clé des tiers pour obtenir la clé de recouvrement. La sécurité se trouve grandement améliorée dans la mesure où il faut connaître et attaquer chacun des tiers pour espérer récupérer la clé de chiffrement. Toutefois, on est ramené à une situation où le défaut d'une seule personne, en l'espèce un tiers de confiance, empêche le recouvrement du séquestre. An alternative is to distribute the decryption key between several trusted third parties: it is necessary to gather all the key parts of third parties to obtain the recovery key. The security is greatly improved insofar as it is necessary to know and attack each of the third parties to hope to recover the encryption key. However, we are reduced to a situation where the default of a single person, in this case a trusted third party, prevents the recovery of the receiver.
Une variante consiste à partager cette clé de recouvrement entre tiers de confiance, selon un algorithme de partage de secret, de type Shamir par exemple ou équivalent. La clé de recouvrement peut être reconstruite par l'ensemble des tiers, ou par un sous- ensemble, aussi appelé "quorum" de ces tiers. Cependant une vulnérabilité persiste : une fois la clé de recouvrement reconstruite, cette dernière peut être divulguée. Il n'y a alors plus besoin du quorum d'administrateurs pour avoir accès à l'ensemble des données chiffrées. One variant is to share this recovery key between trusted third parties, according to a secret sharing algorithm, such as Shamir type or equivalent. The recovery key can be rebuilt by all third parties, or by a subset, also called "quorum" of these third parties. However, a vulnerability persists: once the recovery key is rebuilt, it can be disclosed. There is no longer a quorum of administrators to access all the encrypted data.
L'invention vient améliorer la situation. The invention improves the situation.
On propose une machine d'administration pour un serveur de séquestres numériques comprenant au moins une interface de communication, de la mémoire stockant une liste de valeurs entières correspondant chacune à une machine respective d'un groupe de machines d'administration du serveur de séquestres numériques, et un jeu de paramètres relatif à une fonction de chiffrement pour réaliser un séquestre. La machine comprend en outre un calculateur capable d'exécuter une fonction polynomiale de degré inférieur ou égal au nombre de machines du groupe de machines d'administration, la fonction polynomiale étant propre à la machine d'administration, une fonction d'initialisation agencée pour appeler la fonction polynomiale avec chaque valeur entière de la liste pour obtenir une liste rangée de premières valeurs secrètes, construire au moins un message comprenant, pour chaque machine d'administration homologue du groupe de machines d'administration, au moins la première valeur secrète correspondant à la valeur entière de cette machine d'administration homologue, en réponse à au moins un message comprenant, pour chaque machine d'administration homologue du groupe de machines d'administration, au moins une seconde valeur secrète obtenue de l'appel de la fonction polynomiale de cette machine d'administration homologue sur la valeur entière de la machine d'administration, construire une valeur secrète résultante propre à la machine d'administration à partir des premières et secondes valeurs secrètes. Le calculateur est en outre capable d'exécuter une fonction de recouvrement agencée pour traiter une partie au moins d'un séquestre numérique en utilisant la valeur secrète résultante propre à la machine d'administration et des valeurs secrètes résultantes propres aux machines d'administration homologues du groupe de machines d'administration. There is provided an administration machine for a digital receiver server including at least one communication interface, memory storing a list integer values each corresponding to a respective machine of a group of administrative machines of the digital receiver server, and a set of parameters relating to an encryption function to perform a sequestration. The machine further comprises a computer capable of executing a polynomial function of degree less than or equal to the number of machines of the group of administration machines, the polynomial function being specific to the administration machine, an initialization function arranged for call the polynomial function with each integer value of the list to obtain a row list of first secret values, construct at least one message comprising, for each administration machine homologous machine of the administration machine group, at least the first corresponding secret value to the integer value of this peer administration machine, in response to at least one message comprising, for each administration machine peer machine, at least one second secret value obtained from the call of the function polynomial of this counterpart administration machine on the entire value of the administration machine, cons truce a resultant secret value specific to the administration machine from the first and second secret values. The calculator is further capable of performing a collection function arranged to process at least a portion of a digital receiver using the resulting secret value specific to the administration machine and resulting secret values specific to the counterpart administration machines. the administration machine group.
La machine proposée est capable de recouvrer un séquestre en coopérant avec les machines homologues du groupe de machines d'administration, le cas échéant avec seulement un sous-ensemble des machines de ce groupe. Par "recouvrer un séquestre" on désigne le processus qui conduit à déchiffrer ce séquestre sans connaissance de la clé de déchiffrement. The proposed machine is capable of recovering a receiver by cooperating with the homologous machines of the group of administration machines, if necessary with only a subset of the machines of this group. By "recovering a receiver" is meant the process of deciphering the receiver without knowledge of the decryption key.
Le recouvrement du séquestre se fait sans reconstruction d'une éventuelle clé de déchiffrement. Chaque machine d'administration peut recouvrer le séquestre dès lors qu'elle a coopéré avec un nombre suffisant de machines d'administration homologues. Le nombre de machines devant coopérer en vue de recouvrer un séquestre est paramétrable. Recovery of the sequestrator is done without reconstruction of a possible decryption key. Each administration machine can recover the receiver if it has cooperated with a sufficient number of counterpart administration machines. The number of machines that must cooperate to recover a receiver is configurable.
Lors du recouvrement d'un séquestre, les machines du groupe des machines d'administration opèrent de manière analogue les unes aux autres. La machine proposée et les machines homologues n'ont pas besoin de se connaître les unes les autres. Aucune clé maîtresse n'est utilisée, ce qui améliore considérablement la sécurité des séquestres. When recovering a sequestrator, the machines of the group of administration machines operate in a similar manner to one another. The proposed machine and the homologous machines do not need to know each other. No master key is used, which greatly improves the security of the receivers.
Certains paramètres de déchiffrement des séquestres peuvent être stockés sur le serveur de séquestres lui-même, par exemple chiffré avec une clé propre à chaque machine d'administration. En cas de corruption du serveur, la confidentialité des séquestres reste assurée, tout comme l'identité des administrateurs et les moyens de déchiffrer les séquestres. Un utilisateur peut déposer un séquestre. Cet utilisateur ne peut pas recouvrer lui-même son séquestre. Ceci évite toute attaque basée sur une usurpation d'identité pour le séquestre. Le serveur de séquestres n'a pas à maintenir une clé partielle ou temporaire, ni sur disque ni en mémoire vive. Toutes les opérations de déchiffrement sont exécutées sur la machine d'administration. Certain sequester decryption parameters may be stored on the receiver server itself, for example encrypted with a key specific to each administration machine. In case of server corruption, the confidentiality of the receivers remains assured, as well as the identity of the administrators and the means of deciphering the receivers. A user can deposit a receiver. This user can not recover his escrow himself. This avoids any attack based on identity theft for the receiver. The escrow server does not have to maintain a partial or temporary key, neither on disk nor in RAM. All decryption operations are executed on the administration machine.
La valeur secrète utilisée pour le recouvrement est propre à la machine d'administration. Elle est en partie définie par des valeurs secrètes relatives aux autres machines d'administration. The secret value used for recovery is specific to the administration machine. It is partly defined by secret values relating to the other administration machines.
On propose également une infrastructure d'échange et de traitement de séquestres numériques comprenant un serveur de séquestres et un groupe de machines d'administration comprenant au moins deux machines d'administration du type de celle proposée ci-dessus pour le serveur de séquestres, les deux machines d'administration étant homologues l'une de l'autre. On propose encore un procédé d'administration d'un serveur de séquestres numériques comprenant les étapes suivantes : sur chaque machine d'un groupe de machines d'administration, appeler une fonction polynomiale respective de degré inférieur ou égal au nombre de machines du groupe de machines d'administration avec chaque valeur d'une liste de valeurs entières correspondant chacune à une machine respective du groupe de machines d'administration pour obtenir une liste de valeurs secrètes ; sur chaque machine du groupe de machines d'administration, construire au moins un message comprenant au moins une valeur secrète correspondant à la valeur entière d'une machine d'administration destinataire ; sur chaque machine du groupe de machines d'administration, construire une valeur secrète résultante propre à cette machine à partir des valeurs secrètes calculées, par les autres machines du groupe de machines d'administration, pour la valeur entière correspondant à la machine d'administration ; sur certaines au moins des machines du groupe de machines d'administration, déchiffrer un séquestre numérique en utilisant cette valeur secrète résultante et les valeurs secrètes résultantes de machines d'administration homologues. There is also provided a digital escrow exchange and processing infrastructure comprising an escrow server and a group of administration machines comprising at least two administration machines of the type proposed above for the escrow server, two administration machines being homologous to each other. A method for administering a digital receiver server is proposed, comprising the steps of: on each machine of a group of administration machines, calling a respective polynomial function of degree less than or equal to the number of machines in the group of administration machines with each value of a list of integer values each corresponding to a respective machine of the administration machine group to obtain a list of secret values; on each machine of the administration machine group, constructing at least one message comprising at least one secret value corresponding to the integer value of a destination administration machine; on each machine in the administration machine group, construct a resultant secret value specific to this machine from the calculated secret values, by the other machines in the administration machine group, for the integer value corresponding to the administration machine ; on at least some of the machines in the administration machine group, decrypting a digital receiver using this resulting secret value and the resulting secret values of peer administration machines.
On propose enfin un produit de programme informatique susceptible de coopérer avec une unité centrale d'ordinateur pour constituer une machine d'administration du type proposé ci-dessus. Finally, a computer program product capable of cooperating with a central computer unit is proposed to constitute an administration machine of the type proposed above.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels : Other features and advantages of the invention will appear on examining the detailed description below, and the attached drawings, in which:
- La figure 1 représente un schéma fonctionnel illustrant un domaine de séquestres ; FIG. 1 represents a block diagram illustrating an area of receivers;
- la figure 2 représente un schéma fonctionnel qui illustre un module serveur pour un domaine de séquestres ; FIG. 2 represents a block diagram which illustrates a server module for a receiver domain;
- la figure 3 représente un schéma fonctionnel qui illustre un module d'administrateur de plus haut niveau pour un domaine de séquestres ; - la figure 4 représente un schéma fonctionnel qui illustre un module administrateur pour un domaine de séquestre ; FIG. 3 is a block diagram illustrating a higher level administrator module for an escrow domain; FIG. 4 is a block diagram illustrating an administrator module for a receiver domain;
- la figure 5 représente un schéma fonctionnel qui illustre un module client pour un domaine de séquestre ; FIG. 5 represents a block diagram which illustrates a client module for a receiver domain;
- la ligure 6 représente un ordinogramme qui illustre des modes opérationnels successifs d'un domaine de séquestres ; - la figure 7 représente un ordinogramme qui illustre l'établissement d'un domaine de séquestres ; FIG. 6 represents a flowchart illustrating successive operational modes of an escrow domain; FIG. 7 represents a flowchart illustrating the establishment of an escrow domain;
- la figure 8 représente le domaine de la figure 1 dans un premier mode opérationnel ; - la figure 9 représente un ordinogramme qui illustre le fonctionnement d'une machine d'administration de plus haut niveau correspondant à un premier mode opérationnel d'un domaine de séquestres ; FIG. 8 represents the domain of FIG. 1 in a first operational mode; FIG. 9 represents a flowchart that illustrates the operation of a higher level administration machine corresponding to a first operational mode of an escrow domain;
- la figure 10 représente un ordinogramme qui illustre le fonctionnement d'un serveur de séquestre correspondant au premier mode opérationnel d'un domaine de séquestres ; FIG. 10 represents a flowchart that illustrates the operation of a receiver server corresponding to the first operational mode of an escrow domain;
- la figure 1 1 représente un ordinogramme qui illustre le fonctionnement d'une machine d'administration correspondant au premier mode opérationnel d'un domaine de séquestres ; FIG. 11 represents a flowchart that illustrates the operation of an administration machine corresponding to the first operational mode of an escrow domain;
- la figure 12 est analogue à la figure 10 ; - Figure 12 is similar to Figure 10;
- la figure 13 est analogue à la figure 11 ; la figure 14 représente un ordinogramme qui détaille une étape de la figure 13 ; - la figure 15 représente un ordinogramme qui illustre le fonctionnement d'un serveur de séquestres correspondant à un second mode opérationnel d'un domaine de séquestre ; - Figure 13 is similar to Figure 11; Fig. 14 is a flow chart that details a step of Fig. 13; FIG. 15 represents a flowchart that illustrates the operation of a receiver server corresponding to a second operational mode of a receiver domain;
- la figure 16 représente un schéma fonctionnel qui illustre le domaine de la figure 1 dans un second mode opérationnel ; FIG. 16 is a block diagram illustrating the domain of FIG. 1 in a second operational mode;
- la figure 17 représente un ordinogramme qui illustre le fonctionnement d'une machine client correspondant au second mode opérationnel d'un domaine de séquestre ; - la figure 18 représente un schéma fonctionnel illustrant le domaine de séquestres de la figure 1 dans un troisième mode opérationnel ; FIG. 17 represents a flow chart that illustrates the operation of a client machine corresponding to the second operational mode of a sequester domain; Fig. 18 is a block diagram illustrating the sequester domain of Fig. 1 in a third operational mode;
- la figure 19 représente un ordinogramme qui illustre le troisième mode opérationnel d'un domaine de séquestres ; FIG. 19 represents a flowchart illustrating the third operational mode of an escrow domain;
- la figure 20 représente un ordinogramme qui illustre le fonctionnement d'une machine d'administration correspondant au troisième mode opérationnel d'un domaine de séquestres ; - la figure 21 est analogue à la figure 20 ; FIG. 20 is a flowchart illustrating the operation of an administration machine corresponding to the third operational mode of an escrow domain; - Figure 21 is similar to Figure 20;
- la figure 22 représente un ordinogramme qui illustre le fonctionnement d'un serveur de séquestres correspondant au troisième mode opérationnel d'un domaine de séquestres ; et FIG. 22 represents a flowchart that illustrates the operation of a receiver server corresponding to the third operational mode of an escrow domain; and
- la figure 23 représente un ordinogramme qui illustre le fonctionnement d'une machine d'administration correspondant au troisième mode opérationnel d'un domaine de séquestres. FIG. 23 represents a flowchart that illustrates the operation of an administration machine corresponding to the third operational mode of an escrow domain.
Les dessins annexés contiennent des éléments de caractère certain et pourront par conséquent non seulement servir à compléter l'invention, mais aussi contribuer à sa définition, le cas échéant. La figure 1 montre une infrastructure informatique d'échange et de traitement de séquestres numériques organisée en un domaine 1. Ici, le domaine 1 est en outre organisé de manière à stocker des séquestres numériques. The attached drawings contain elements of a certain character and may therefore not only serve to complete the invention, but also contribute to its definition, if necessary. Figure 1 shows a computing infrastructure of exchange and processing of digital receivers organized in a domain 1. Here, the domain 1 is further organized to store digital receivers.
De façon générale, un "séquestre numérique", ou "séquestre" en bref, correspond à une forme chiffrée d'une suite d'octets de taille quelconque stockée, ou destinée à l'être, de manière sécurisée sur une machine tierce. La suite d'octets originale est parfois désignée "secret" dans la technique. Un secret peut par exemple correspondre à une chaîne de caractères, un chiffre, une suite de chiffres, un fichier informatique ou une liste de fichiers. In general, a "digital sequestration" or "sequestration" in short, corresponds to an encrypted form of a sequence of bytes of any size stored, or intended to be, securely on a third-party machine. The original sequence of bytes is sometimes referred to as "secret" in the art. A secret can for example correspond to a string of characters, a number, a sequence of numbers, a computer file or a list of files.
Le domame 1 est organisé sur une infrastructure, matérielle et logicielle, de réseau informatique. Le réseau de base comprend des machines, éléments matériels et logiciels du réseau, capables de communiquer les unes avec les autres selon un protocole réseau quelconque, par exemple sur la base de socket, protocole de transfert hypertexte, ou protocole http, éventuellement dans la version sécurisée (protocole https) ou encore protocole RPC, pour "Remote Procédure Call" ou appel de procédure distante en français, ou plus généralement tout protocole d'échange de données structuré. The domame 1 is organized on an infrastructure, hardware and software, computer network. The base network comprises machines, hardware and software of the network, capable of communicating with each other according to any network protocol, for example on the basis of socket, hypertext transfer protocol, or http protocol, possibly in the version secure (https protocol) or RPC protocol, for "Remote Procedure Call" or remote procedure call in French, or more generally any structured data exchange protocol.
Les machines du domaine 1 communiquent les unes avec les autres selon un protocole permettant l'échange de données entre les machines du domaine 1. Le protocole peut être encodé de manière quelconque du moment que les machines du domaine 1 peuvent échanger des données les unes avec les autres, par exemple en ASN. l, JSON ou encore XML. The machines of domain 1 communicate with each other according to a protocol allowing the exchange of data between the machines of domain 1. The protocol can be encoded in any way so long as the machines of domain 1 can exchange data with each other the others, for example in ASN. l, JSON or XML.
Le domaine de séquestres 1 comprend un serveur de séquestres 10 qui, d'une part, stocke les séquestres numériques, et, d'autre part, contrôle en partie au moins le domaine 1. Le serveur 10 peut être réparti sur plusieurs machines, matérielles et/ou logicielles. En particulier, le serveur 10 peut comprendre une première machine dédiée au stockage des séquestres numériques et une seconde machine, différente, dédiée au contrôle du domaine 1. Le domaine 1 comprend en outre une machine d'administration de plus haut niveau, ou machine d'administration supérieure 20, capable de communiquer avec le serveur 10. La machine d'administration supérieure 20 contrôle le serveur 10. The receiver area 1 comprises a receiver server 10 which, on the one hand, stores the digital receivers, and, on the other hand, partially controls at least the domain 1. The server 10 can be distributed over several machines, hardware and / or software. In particular, the server 10 may comprise a first machine dedicated to the storage of the digital receivers and a second, different machine, dedicated to the control of the domain 1. Domain 1 further comprises a higher level administration machine, or higher administration machine 20, capable of communicating with the server 10. The upper administration machine 20 controls the server 10.
Le domaine 1 comprend encore un groupe de machines d'administration 30, comprenant ici une première machine d'administration 32, une seconde machine d'administration 34 et une troisième machine d'administration 36. Chaque machine du groupe 30 est capable de communiquer. Les machines du groupe 30 agissent sur les séquestres numériques. Domain 1 further comprises a group of administration machines 30, here comprising a first administration machine 32, a second administration machine 34 and a third administration machine 36. Each machine of the group 30 is able to communicate. Group 30 machines operate on digital receivers.
Le domaine 1 comprend enfin une ou plusieurs machines clientes 40 qui sont chacune capables de communiquer avec le serveur 10, en particulier afin d'y déposer un ou plusieurs séquestres numériques. Domain 1 finally comprises one or more client machines 40 which are each capable of communicating with the server 10, in particular in order to deposit one or more digital receivers therein.
La figure 2 montre un module serveur 100 à usage par exemple pour le serveur 10 de la figure 1. FIG. 2 shows a server module 100 for use for example for the server 10 of FIG. 1.
Le module serveur 100 comprend un contrôleur principal 110 et une structure de stockage de données 120. Le contrôleur 1 10 est capable de lire, écrire et traiter des données dans la structure de stockage 120. La structure de ce stockage 120 maintient en particulier un ensemble de données de gestion relatif au domaine de séquestre, y compris des données relatives au paramétrage du séquestre. The server module 100 comprises a main controller 110 and a data storage structure 120. The controller 1 10 is able to read, write and process data in the storage structure 120. The structure of this storage 120 maintains in particular a set management data relating to the escrow domain, including data related to the escrow setting.
Le module serveur 100 comprend en outre au moins une première interface de communication 130 qui peut être commandée par le contrôleur 1 10 pour communiquer avec les machines d'un domaine séquestre, par exemple le domaine 1 de la figure 1. The server module 100 further comprises at least a first communication interface 130 which can be controlled by the controller 1 10 to communicate with the machines of an escrow domain, for example the domain 1 of FIG. 1.
Ici, le module serveur 100 comprend en outre une seconde interface de communication 140 qui peut être commandée par le contrôleur 1 10 pour échanger des données exclusivement avec une machine de stockage de séquestres numériques. En particulier, le contrôleur 1 10 est capable de faire émettre à la seconde interface 140 un ou plusieurs messages comprenant des séquestres numériques destinés à être stockés sur la machine en question Here, the server module 100 further comprises a second communication interface 140 that can be controlled by the controller 1 to exchange data exclusively with a digital receivers storage machine. In particular, the controller 1 10 is able to send to the second interface 140 one or more messages including digital receivers for storage on the machine in question
La machine de stockage de séquestres peut être agencée pour se connecter périodiquement au contrôleur 110 par l'intermédiaire de la seconde interface de communication 140 afin de récupérer des requêtes du module serveur 100 en attente et de transmettre à ce module des réponses aux requêtes relatives à la précédente connexion. Dans cette configuration, la machine de stockage de séquestres correspond à ce que l'on appelle parfois un "serveur froid", désigné le plus souvent par le tenue équivalent en anglais de "cold server". The escrow storage machine may be arranged to periodically connect to the controller 110 via the second communication interface 140 in order to retrieve requests from the waiting server module 100 and to transmit to this module responses to requests relating to the previous connection. In this configuration, the escrow storage machine corresponds to what is sometimes called a "cold server", usually designated by the equivalent English equivalent of "cold server".
Le module serveur 100 peut être implémenté sous la forme d'un serveur logiciel web doté de bibliothèques de type JSON (pour "Java Script Object Notation" ou notation objet Javascript en français) exécuté par une unité centrale d'ordinateur. La structure de stockage 120 peut être organisée dans de la mémoire de stockage de l'ordinateur en question. The server module 100 can be implemented in the form of a web-based software server equipped with JSON type libraries (for "Java Script Object Notation" or Javascript object notation in French) executed by a central computer unit. The storage structure 120 may be organized in the storage memory of the computer in question.
La figure 3 montre un module super administrateur 200 à usage par exemple dans la machine super administrateur 20 de la figure 1. FIG. 3 shows a super administrator module 200 for use, for example, in the super-administrator machine 20 of FIG. 1.
Le module super administrateur comprend un contrôleur principal 210 et une structure de stockage 220 qui mémorise les données relatives à la fonction de super administrateur. Le contrôleur 210 peut lire, écrire et traiter les données dans la structure de stockage 220. The super administrator module comprises a main controller 210 and a storage structure 220 which stores the data relating to the super administrator function. The controller 210 can read, write and process the data in the storage structure 220.
Le module super administrateur 200 comprend en outre une interface utilisateur 230, par exemple de type graphique, qui interagit avec le contrôleur principal 210. Le module administrateur comprend en outre une interface de communication 220 qui peut être commandée par le contrôleur principal 210 pour émettre et recevoir des données au travers d'un domaine de séquestre, par exemple le domaine 1 de la figure 1. The super administrator module 200 further comprises a user interface 230, for example of graphical type, which interacts with the main controller 210. The administrator module further comprises a communication interface 220 which can be controlled by the main controller 210 to transmit and receive data through a sequestering domain, for example the domain 1 of FIG. 1.
Le module super administrateur 200 peut prendre la forme d'une application Java qui s'exécute sur une unité centrale d'ordinateur. La structure de stockage 220 peut être organisée dans de la mémoire de stockage de l'ordinateur en question. The super administrator module 200 can take the form of a Java application that runs on a central computer unit. The storage structure 220 may be organized in the storage memory of the computer in question.
La figure 4 montre un module administrateur qui peut être utilisé dans une machine d'administration, par exemple chacune de la première machine 32, de la seconde machine 34 et de la troisième machine 36 du groupe d'administration 30 de la figure 1. FIG. 4 shows an administrator module that can be used in an administration machine, for example each of the first machine 32, the second machine 34 and the third machine 36 of the administration group 30 of FIG.
Le module d'administration 300 comprend un contrôleur principal 310 et une structure de stockage de données 320 avec laquelle le contrôleur peut interagir, en particulier, pour lire, écrire et traiter des données. The administration module 300 comprises a main controller 310 and a data storage structure 320 with which the controller can interact, in particular, to read, write and process data.
Le module administrateur comprend une interface utilisateur capable d'interagir avec le contrôleur principal 310. Par exemple, l'interface utilisateur est de type graphique. The administrator module includes a user interface capable of interacting with the main controller 310. For example, the user interface is of graphic type.
Le module d'administration 300 comprend en outre une interface de communication 340 qui peut être commandée par le contrôleur 310 pour échanger des données au travers d'une infrastructure de séquestres, par exemple le domaine 1 de la figure 1. The administration module 300 further comprises a communication interface 340 which can be controlled by the controller 310 for exchanging data through an infrastructure of receivers, for example the domain 1 of FIG. 1.
Le module administrateur peut être réalisé sous la forme d'une application Java qui s'exécute sur une unité centrale d'ordinateur. La structure de stockage 320 peut être organisée dans une mémoire de stockage de cette unité centrale. The administrator module can be made as a Java application that runs on a central computer unit. The storage structure 320 may be organized in a storage memory of this central unit.
La figure 5 montre un module client 400 à usage par exemple dans la machine client 40 du domaine 1 de la figure 1. Le module client 400 comprend un contrôleur 430 et une structure de stockage de données 440 avec laquelle le contrôleur principal 410 peut interagir pour lire, écrire et stocker des données. Le module client 400 comprend en outre une interface utilisateur 430 qui interagit avec le contrôleur principal 410. L'interface utilisateur 430 peut être de type graphique. FIG. 5 shows a client module 400 used for example in the client machine 40 of the domain 1 of FIG. 1. The client module 400 includes a controller 430 and a data storage structure 440 with which the main controller 410 can interact to read, write, and store data. The client module 400 further comprises a user interface 430 which interacts with the main controller 410. The user interface 430 may be of graphic type.
Le module client 400 comprend en outre une interface de communication 440 qui peut être commandée par le contrôleur principal 410 pour échanger des données à travers une infrastructure de séquestre, en particulier, le domaine 1 de la figure 1. The client module 400 further comprises a communication interface 440 which can be controlled by the main controller 410 to exchange data through a sequestration infrastructure, in particular, the domain 1 of FIG. 1.
Le module client 400 peut être réalisé sous la forme d'une application Java exécutée sur une unité centrale d'ordinateurs. La structure de stockage 420 peut être organisée dans la mémoire de stockage de cette unité de calcul. Client module 400 can be implemented as a Java application running on a central computer unit. The storage structure 420 can be organized in the storage memory of this calculation unit.
Dans une forme de réalisation, certains au moins des modules serveur 100, super administrateur 200, administrateur 300 et client 400 sont intégrés dans une même application, par exemple Java, qui s'exécute sur une machine comme un module particulier selon les droits associés dans le domaine à un identifiant de l'utilisateur de la machine en question. In one embodiment, at least some of the server modules 100, super administrator 200, administrator 300 and client 400 are integrated in the same application, for example Java, which runs on a machine as a particular module according to the associated rights in the domain to an identifier of the user of the machine in question.
La figure 6 illustre généralement différents modes opérationnel d'une infrastructure de séquestres numérique, en particulier le domaine 1 de la figure 1. Selon un premier mode opérationnel, illustré par le bloc 5, certains au moins des éléments logiciels et matériels d'une infrastructure de réseau informatique coopèrent en vue de l'établissement d'un domaine de séquestres. FIG. 6 generally illustrates various operational modes of a digital receiver infrastructure, in particular domain 1 of FIG. 1. According to a first operational mode, illustrated by block 5, at least some of the software and hardware elements of an infrastructure computer network cooperate to establish an escrow domain.
Selon un second mode opérationnel, illustré par le bloc 7, certains au moins des éléments logiciels et matériels de l'infrastructure coopèrent afin de permettre l'enregistrement d'un séquestre sur un serveur de l'infrastructure, par exemple le serveur 10 de la figure 1. According to a second operational mode, illustrated by block 7, at least some of the hardware and software elements of the infrastructure cooperate to allow registering a receiver on a server of the infrastructure, for example the server 10 of FIG.
Selon un troisième mode opérationnel, illustré par le bloc 9, certains au moins des éléments matériels et logiciels de rinfrastructure coopèrent en vue de recouvrer l'un au moins des séquestres stockés sur le serveur de l'infrastructure, c'est-à-dire de permettre le déchiffrement du séquestre numérique en l'absence de certaines au moins des données utilisées pour le chiffrement du séquestre numérique en question. Les ligures 7 et 8 détaillent la mise en place d'une infrastructure de séquestre telle que le domaine 1 de la figure 1 par exemple. According to a third operational mode, illustrated by block 9, at least some hardware and software elements of the infrastructure cooperate to recover at least one of the receivers stored on the infrastructure server, that is to say to allow the decryption of the digital receiver in the absence of at least some of the data used for the encryption of the digital receiver in question. Figures 7 and 8 detail the establishment of a sequestering infrastructure such as the domain 1 of Figure 1 for example.
L'établissement de l'infrastructure débute par une phase de configuration, représentée ici par le bloc 50. Il s'agit en particulier de fixer certains au moins des paramètres nécessaires au fonctionnement de l'infrastructure, au moins dans une phase initiale. Ceci implique au minimum de définir, parmi les éléments matériels et logiciels d'une infrastructure réseau, un contrôleur d'infrastructure, un serveur de stockage de séquestres, éventuellement rassemblés en une seule machine, et un groupe de machines d'administration pour les séquestres. Cette définition peut impliquer une intervention utilisateur. The establishment of the infrastructure begins with a configuration phase, represented here by block 50. In particular, it involves setting at least some of the parameters necessary for the operation of the infrastructure, at least in an initial phase. This involves at least defining, among the hardware and software elements of a network infrastructure, an infrastructure controller, an escrow storage server, possibly assembled in a single machine, and a group of administration machines for the receivers. . This definition may involve user intervention.
La configuration de l'infrastructure de séquestres peut être réalisée depuis une machine particulière de l'infrastructure réseau, telle qu'une machine d'administration de plus haut niveau, par exemple la machine 20 de la figure 8. Des données relatives à la configuration de rinfrastructure sont maintenues sur le contrôleur, auquel les machines d'administration peuvent accéder. Sur l'exemple de la figure 8, ces données sont maintenues sur le serveur de séquestres 10, par exemple dans une structure analogue à la structure de stockage 120 de la figure 2. Les données de configuration de l'infrastructure de séquestres peuvent être transmises au contrôleur de séquestres par la machine d'administration de plus haut niveau dans un message spécifique de création de domaine, ou message CREATJDOM, comme cela est illustré sur la figure 8. The configuration of the receiver infrastructure can be performed from a particular machine in the network infrastructure, such as a higher level administration machine, for example the machine 20 of FIG. 8. Configuration data infrastructure are maintained on the controller, to which the administration machines can access. In the example of FIG. 8, these data are maintained on the sequester server 10, for example in a structure similar to the storage structure 120 of FIG. 2. The configuration data of the receiver infrastructure can be transmitted to the escrow controller by the highest level administration machine in a specific domain creation message, or CREATJDOM message, as shown in FIG. 8.
L'établissement de l'infrastructure de séquestres se poursuit par la génération de paramètres cryptographiques à usage dans l'infrastructure, ce qui correspond au bloc 52 de la figure 7, et par le partage de ces paramètres entre certaines au moins des machines de l'infrastructure, ce qui correspond au bloc 53 de la figure 7. The establishment of the sequestrator infrastructure is continued by the generation of cryptographic parameters for use in the infrastructure, which corresponds to block 52 of FIG. 7, and by the sharing of these parameters between at least some of the machines of the sequestration infrastructure. infrastructure, which corresponds to block 53 of Figure 7.
Chaque machine d'administration, par exemple chaque machine du groupe 30 de la figure 1, génère un premier jeu de paramètres cryptographiques qui lui est propre. Puis les paramètres cryptographiques du premier jeu des machines d'administration sont partagés entre les machines homologues du groupe des machines d'administration. Le partage de ces paramètres peut se faire par l'intermédiaire du contrôleur de l'infrastructure, ce qui évite aux machines d'administration d'avoir à communiquer directement les unes avec les autres. Par exemple, chaque machine d'administration transmet les données de son premier jeu de paramètres cryptographiques au contrôleur, à l'aide d'un message d'initialisation. Sur la figure 8 par exemple, chacun d'un premier poste administrateur 32, d'un second poste administrateur 34 et d'un troisième poste administrateur 36 envoie au serveur 10 un message d'initialisation administrateur, ou message ADMJNIT. Each administration machine, for example each machine in the group 30 of FIG. 1, generates a first set of cryptographic parameters of its own. Then the cryptographic parameters of the first set of administration machines are shared between the peer machines of the administration machine group. The sharing of these parameters can be done through the infrastructure controller, which prevents the administration machines from having to communicate directly with each other. For example, each administration machine transmits data from its first set of cryptographic parameters to the controller, using an initialization message. In FIG. 8, for example, each of a first administrator station 32, a second administrator station 34 and a third administrator station 36 sends the server 10 an administrator initialization message, or ADMJNIT message.
Le contrôleur de l'infrastructure de séquestres mémorise les paramètres cryptographiques reçus des machines d'administration en une collection de premiers paramètres cryptographiques, relative au groupe des machines d'administration, puis met cette collection à disposition de ces machines d'administration. The controller of the escrow infrastructure stores the cryptographic parameters received from the administration machines in a collection of first cryptographic parameters relating to the group of the administration machines, then makes this collection available to these administration machines.
Dans le mode de réalisation illustré sur la figure 8, chacune de la première machine d'administration 32, de la seconde machine d'administration 34 et de la troisième machine d'administration 36 reçoit du serveur 10 un message contenant des données de configuration administrative du domaine 1, ou message DOM_CFG_ADM. Ces données comprennent une collection de premiers paramètres cryptographiques. Chaque machine d'administration mémorise la collection de premiers paramètres cryptographiques. Chaque machine d'administration génère un second jeu de paramètres cryptographiques à partir de la collection de premiers paramètres cryptographiques. Ceci correspond au bloc 54 de la figure 7. Le second jeu de paramètres cryptographiques comprend des données cryptographiques propres à la machine d'administration qui l'a généré et des données cryptographiques à usage plus généralement par d'autres machines de l'infrastructure, en particulier d'autres machines d'administration. Les paramètres du second jeu sont ensuite partagés entre les machines d'administration. Ceci correspond au bloc 55 de la figure 7. Le partage peut se faire par l'intermédiaire du contrôleur de séquestres. Sur la figure 8 par exemple, chaque machine d'administration transmet au serveur 10 un message de partage de données, ou message ADM_SHAR, qui contient les données de son second jeu de paramètres. In the embodiment illustrated in FIG. 8, each of the first administration machine 32, the second administration machine 34 and the third administration machine 36 receives from the server 10 a message containing administrative configuration data. Domain 1, or DOM_CFG_ADM message. This data includes a collection of first cryptographic parameters. Each administration machine stores the collection of first cryptographic parameters. Each administration machine generates a second set of cryptographic parameters from the collection of first cryptographic parameters. This corresponds to block 54 of FIG. 7. The second set of cryptographic parameters comprises cryptographic data specific to the administration machine that generated it and cryptographic data for use more generally by other machines of the infrastructure. in particular other administration machines. The parameters of the second set are then shared between the administration machines. This corresponds to block 55 of FIG. 7. Sharing can be done through the receiver controller. In FIG. 8, for example, each administration machine transmits to the server 10 a data sharing message, or ADM_SHAR message, which contains the data of its second set of parameters.
L'établissement de l'infrastructure de séquestres s'achève par le calcul de paramètres cryptographiques à usage dans cette infrastructure, en particulier pour le dépôt d'un séquestre, à partir de la collection de paramètres cryptographiques. Ceci correspond au bloc 56 sur la figure 7. Les paramètres cryptographiques en question comprennent en particulier une clé publique valable pour l'infrastructure de séquestres. Cette clé publique peut être mise à disposition des machines de l'infrastructure sur un serveur de l'infrastructure, typiquement le serveur de séquestres ou le contrôleur. Cette clé publique peut être utilisée pour chiffrer des données numériques en vue d'en réaliser un séquestre. La figure 9 illustre une première fonction principale pour une machine d'administration de niveau supérieur, par exemple la machine 20 de la figure 8, à usage dans le premier mode opérationnel d'une infrastructure de séquestres. Il peut s'agir, par exemple, du fonctionnement du contrôleur principal 210 de la figure 3. La fonction débute en une étape 5000. À l'étape suivante 5002, la fonction reçoit un identifiant pour l'infrastructure de séquestres, ou identifiant Domld, par exemple sous la forme d'une chaîne de caractères, un nombre total de machines d'administration pour l'infrastructure, ou nombre DomAdmMax, un nombre minimal de machines d'administration nécessaires au recouvrement d'un séquestre, ou nombre DomAdmMin, et un identifiant pour chaque machine d'administration de l'infrastructure, noté génériquement DomAdm_i pour une i-ème machine, par exemple sous la forme d'une chaîne de caractères. Ces données sont stockées en mémoire, par exemple dans une structure analogue à la structure de stockage 220 de la figure 3. Les identifiants DomAdm_i peuvent être stockés dans un tableau de dimension n, où le nombre n correspond au nombre DomAdmMax. Ici il s'agit du tableau DomAdm. Ces valeurs peuvent être saisies depuis la machine d'administration de plus haut niveau, en particulier à travers une interface analogue à l'interface 230 de la figure 3. A l'étape suivante 5004, la fonction construit un message de création d'infrastructure, par exemple un message CREAT DOM, comprenant un identifiant de la machine hôte, ici l'identifiant SAdmld, en tant qu'émetteur, et l'identifiant d'un contrôleur de l'infrastructure en tant que destinataire, ou identifiant SRVRId. Le message contient en tant que données la chaîne Domld, le nombre DomAdmMax et le nombre DomAdmMin, ainsi qu'un tableau du type du tableau DomAdm, dont chaque élément correspond à l'identifiant d'une machine d'administration de l'infrastructure, ou analogue. The establishment of the receiver infrastructure ends with the calculation of cryptographic parameters for use in this infrastructure, in particular for the deposit of a receiver, from the collection of cryptographic parameters. This corresponds to block 56 in FIG. 7. The cryptographic parameters in question comprise in particular a public key valid for the receiver infrastructure. This public key can be made available to the infrastructure machines on a server of the infrastructure, typically the receiver server or the controller. This public key can be used to encrypt digital data for sequestration purposes. FIG. 9 illustrates a first main function for a higher level administration machine, for example the machine 20 of FIG. 8, for use in the first operational mode of an escrow infrastructure. This may be, for example, the operation of the main controller 210 of Figure 3. The function starts in a step 5000. In the next step 5002, the function receives an identifier for the receiver infrastructure, or identifier Domld, for example in the form of a character string, a total number of administration machines for the infrastructure, or number DomAdmMax, a minimum number of administrative machines necessary for the recovery of a receiver, or DomAdmMin number, and an identifier for each infrastructure administration machine, noted generically DomAdm_i for an i-th machine, for example under the form of a string of characters. These data are stored in memory, for example in a structure similar to the storage structure 220 of FIG. 3. The identifiers DomAdm_i can be stored in an array of dimension n, where the number n corresponds to the number DomAdmMax. Here it is the DomAdm board. These values can be entered from the higher level administration machine, in particular through an interface similar to the interface 230 of FIG. 3. In the next step 5004, the function constructs an infrastructure creation message. , for example a CREAT DOM message, comprising an identifier of the host machine, here the identifier SAdmld, as issuer, and the identifier of a controller of the infrastructure as a recipient, or identifier SRVRId. The message contains as data the Domld string, the DomAdmMax number and the DomAdmMin number, and a table of the type of the DomAdm array, each element of which corresponds to the identifier of an infrastructure administration machine. or the like.
La fonction s'arrête ensuite, à l'étape 5006. The function then stops at step 5006.
La figure 10 illustre une première fonction principale pour un contrôleur, par exemple le serveur 10 de figure 8, dans le premier mode opérationnel d'une infrastructure de séquestres. Il s'agit par exemple du fonctionnement du contrôleur 110 de la figure 2. La fonction débute en 5100. À l'étape suivante 5102, la fonction reçoit un message de création de domaine d'une machine d'administration de niveau supérieur, par exemple un message CREATJDOM. Le message comprend un identifiant de domaine, par exemple la chaîne Domld, un nombre de machines d'administration, par exemple le nombre DomAdmMax, un nombre minimum de machines d'administration par exemple le nombre DomAdmMin, et une liste d'identifiants de machines d'administration, par exemple le tableau DomAdm. FIG. 10 illustrates a first main function for a controller, for example the server 10 of FIG. 8, in the first operational mode of an escrow infrastructure. This is for example the operation of the controller 110 of Figure 2. The function starts in 5100. In the next step 5102, the function receives a domain creation message from a higher level administration machine, for example a CREATJDOM message. The message includes a domain identifier, for example the Domld string, a number of administration machines, for example the DomAdmMax number, a minimum number of administration machines, for example the DomAdmMin number, and a list of machine identifiers. administration, for example the DomAdm board.
À l'étape suivante 5104, la fonction stocke localement les données reçues. La fonction mémorise l'identifiant de chaque machine d'administration, noté génériquement DomAdm_i, en relation avec une valeur entière (non nulle) respective, notée génériquement valeur DomAdmRk_i. In the next step 5104, the function stores the received data locally. The function stores the identifier of each administration machine, noted generically DomAdm_i, in relation to a respective integer value (non-zero), noted generically value DomAdmRk_i.
Par exemple, la fonction remplit un tableau relatif au groupe de machines d'administration, ici un tableau DomAdmGr, dont chaque élément comprend un identifiant DomAdm_i, en relation avec une valeur DomAdmRk_i. La valeur DomAdmRkJ peut correspondre à une valeur d'index de l'identifiant DomAdm_i dans le tableau DomAdmGr. Cet index peut correspondre à l'ordre dans lequel la machine d'administration a reçu les identifiants utilisateurs. Un ordonnancement aléatoire peut également être mis en œuvre. En complément ou en remplacement, les valeurs entières peuvent être générées aléatoirement. For example, the function fills an array relating to the group of administration machines, here a table DomAdmGr, each element includes a DomAdm_i identifier, in relation to a value DomAdmRk_i. The DomAdmRkJ value can be an index value of the DomAdm_i ID in the DomAdmGr array. This index may correspond to the order in which the administration machine received the user identifiers. Random scheduling can also be implemented. In addition or in replacement, integer values can be generated randomly.
La fonction s'achève ensuite en une étape 5106. La figure 11 illustre une première fonction pour une machine d'administration, par exemple la fonction principale 310 du module d'administration 300 de la figure 4, correspondant au premier mode opérationnel d'une infrastructure du domaine. Cette première fonction est destinée à la génération d'un premier jeu de données cryptographiques. The function then ends in a step 5106. FIG. 11 illustrates a first function for an administration machine, for example the main function 310 of the administration module 300 of FIG. 4, corresponding to the first operational mode of a Domain infrastructure. This first function is intended for generating a first set of cryptographic data.
La fonction débute en 5200. À l'étape suivante 5202, la fonction reçoit l'identifiant DomAdmId_i d'une machine d'administration i. Ici, la fonction reçoit en outre un code dont la valeur conditionne l'accès à cette machine i. Le code est par exemple un mot de passe, que l'on note génériquement DomAdmPwd_ , par exemple sous la forme d'une chaîne de caractères, le cas échéant choisie par ou pour un utilisateur de la machine i. The function starts in 5200. In the next step 5202, the function receives the identifier DomAdmId_i of an administration machine i. Here, the function also receives a code whose value conditions access to this machine i. The code is for example a password, which is generically noted DomAdmPwd_, for example in the form of a character string, where appropriate chosen by or for a user of the machine i.
A l'étape suivante 5204, la fonction génère un couple de valeurs correspondant à une clé publique, ou clé PubKy, et une clé privée, ou clé PvtKy, d'une fonction de chiffrement de type asymétrique. La clé PvtKy et la clé PubKy sont générées aléatoirement sur la machine i et sont propres à cette machine i. La fonction de chiffrement asymétrique peut être de type RSA ou El Gamal par exemple. Par exemple, la fonction génère aléatoirement un nombre entier dans un intervalle [1.. pO-2], où pO est une valeur entière qui correspond à un paramètre commun aux machines de l'infrastructure de séquestres. La valeur générée est utilisée en tant que clé PvtKy. La fonction calcule ensuite la clé PubKy à l'aide d'une valeur génératrice gO, comprise dans l'intervalle [1.. pO-2], élevée à la puissance PvtKy et ramenée dans l'intervalle [1 ... p0_2] (modulo pO). La valeur génératrice gO peut être commune à l'infrastructure de séquestres. Par exemple, les valeurs des paramètres pO et gO peuvent être codées dans la fonction pour éviter d'échanger ces valeurs entre machines de l'infrastructure. On améliore ainsi la sécurité de l'infrastructure de séquestres. En variante, les valeurs des paramètres pO et gO peuvent être propres à chaque machine d'administration. Dans ce cas, ces valeurs sont communiquées aux machines homologues du groupe des machines d'administration. In the next step 5204, the function generates a pair of values corresponding to a public key, or key PubKy, and a private key, or key PvtKy, of an asymmetric type of encryption function. The key PvtKy and the key PubKy are generated randomly on the machine i and are specific to this machine i. The asymmetric encryption function can be of the RSA or El Gamal type, for example. For example, the function randomly generates an integer in an interval [1 .. pO-2], where pO is an integer value that corresponds to a parameter common to machines in the receiver infrastructure. The generated value is used as the PvtKy key. The function then calculates the key PubKy using a generating value gO, in the interval [1 .. pO-2], raised to the power PvtKy and brought back to the interval [1 ... p0_2] (modulo pO). The generating value gO may be common to the receiver infrastructure. For example, the values of the parameters p0 and g0 can be coded in the function to avoid exchanging these values between machines of the infrastructure. This improves the security of the sequestration infrastructure. Alternatively, the values of the parameters p0 and g0 may be specific to each administration machine. In this case, these values are communicated to the peer machine in the group of administrative machines.
À l'étape suivante 5206, la clé PvtKy est chiffrée au moyen d'une fonction de type symétrique, par exemple de type AES, avec un code propre à la machine i en tant que paramètre, par exemple la chaîne DomAdmPwd_i. On obtient une valeur chiffrée de la clé PvtKy, ou valeur EncPvtKy. La clé PvtKy, la clé PubKy et la valeur EncPvtKy sont propres à la machine i. A l'étape suivante 5208, la fonction construit un message à destination d'un contrôleur de l'infrastructure, par exemple le serveur 10 de la figure 8, en indiquant l'identifiant de la machine d'administration DomAdm_i comme émetteur. Le message comporte les données correspondant à la clé PubKy_i générée sur la machine i et à la valeur EncPvtKy_i chiffrée pour la machine i. Il s'agit par exemple d'un message ADM_INIT sur la figure 8. La fonction s'arrête ensuite en 5210. In the next step 5206, the key PvtKy is encrypted by means of a symmetrical type function, for example of the AES type, with a code specific to the machine i as a parameter, for example the string DomAdmPwd_i. We obtain an encrypted value of the key PvtKy, or EncPvtKy value. The key PvtKy, the key PubKy and the value EncPvtKy are specific to the machine i. In the next step 5208, the function constructs a message destined for a controller of the infrastructure, for example the server 10 of FIG. 8, indicating the identifier of the administration machine DomAdm_i as issuer. The message includes data corresponding to the key PubKy_i generated on the machine i and the value EncPvtKy_i encrypted for the machine i. This is for example an ADM_INIT message in Figure 8. The function then stops in 5210.
La figure 12 illustre une seconde fonction pour un contrôleur, par exemple le serveur 10 de la figure 8, à usage dans le premier mode opérationnel d'une infrastructure de séquestres. Il s'agit par exemple du fonctionnement du contrôleur principal 210 de la figure 3. FIG. 12 illustrates a second function for a controller, for example the server 10 of FIG. 8, for use in the first operational mode of an escrow infrastructure. This is for example the operation of the main controller 210 of Figure 3.
La fonction débute en 5300. A l'étape suivante 5302, la fonction commence une structure de boucle en initialisant un compteur j. The function starts at 5300. At the next step 5302, the function starts a loop structure by initializing a counter j.
A l'étape suivante 5304, la fonction reçoit un message d'une machine d'administration i de l'infrastructure. Le message comprend deux valeurs correspondant respectivement à une valeur de clé publique propre à la machine i, ici la clé PubKyJ, et à une valeur chiffrée pour cette machine i d'une clé privée propre à la machine i, ici la valeur EncPvt y_i. Il s'agit par exemple d'un message ADM_INIT. In the next step 5304, the function receives a message from an administration machine i of the infrastructure. The message comprises two values respectively corresponding to a public key value specific to the machine i, here the key PubKyJ, and an encrypted value for this machine i a private key specific to the machine i, here the value EncPvt y_i. This is for example an ADM_INIT message.
A l'étape suivante 5306, la fonction stocke les données de l'étape précédente. Ici les données sont rassemblées en tant qu'élément d'index j d'un tableau GrpDomAdm. La fonction ajoute aux données reçue la valeur entière DomAdmRk i de la machine d'administration i. In the next step 5306, the function stores the data from the previous step. Here the data is gathered as an index element j of a GrpDomAdm array. The function adds to the received data the integer value DomAdmRk i of the administration machine i.
À l'étape suivante 5308, le compteur j est incrémenté. In the next step 5308, the counter j is incremented.
À l'étape suivante 5310, la fonction vérifie que le compteur j a atteint sa valeur finale. Cette valeur correspond au nombre DomAdmMax. La fonction vérifie qu'elle a reçu et traité un message d'initialisation de chacune des machines d'administration de l'infrastructure de séquestres. In the next step 5310, the function verifies that the counter ja reaches its final value. This value is the DomAdmMax number. The function checks that it has received and processed an initialization message from each of the sequestration infrastructure administration machines.
Si oui, alors la fonction se termine à l'étape suivante 5312. Sinon, la fonction retourne à l'étape 5304 où elle attend un message d'initialisation d'une autre machine d'administration. If so, then the function ends in the next step 5312. Otherwise, the function returns to step 5304 where it waits for an initialization message from another administration machine.
Les étapes 5300 à 5312 con-espondent au stockage, sur le contrôleur de l'infrastructure de séquestres, de données cryptographiques pour l'échange sécurisé de domiées entre machines d'administration, directement ou par l'intermédiaire du contrôleur. Ces données cryptographiques comprennent, pour chaque machine d'administration, une valeur respective à usage en tant que clé publique. Ici, ces données cryptographiques comprennent en outre une valeur chiffrée, pour la machine en question, de la clé privée correspondant à la clé publique Cette dernière peut devenir optionnelle, dans la mesure où certaines au moins des machines d'administration peuvent conserver leur clé privée sans l'adresser au contrôleur ou aux machines d'administrations homologues. Steps 5300 to 5312 correspond to the storage, on the controller of the receiver infrastructure, of cryptographic data for the secure exchange of data between management machines, directly or through the controller. This cryptographic data comprises, for each administration machine, a respective value for use as a public key. Here, this cryptographic data further comprises an encrypted value, for the machine in question, of the private key corresponding to the public key The latter can become optional, insofar as at least some of the administration machines can keep their private key without addressing it to the controller or counterpart machines.
La figure 13 illustre une seconde fonction principale pour une machine d'administration, par exemple l'une des première 32, seconde 34 et troisième 36 machines d'administration de la figure 8, correspondant au premier mode opérationnel d'une infrastructure de séquestre. Cette seconde fonction correspond à l'échange de paramètres d'un premier jeu de paramètres cryptographiques entre machines d'administration. Il s'agit par exemple du fonctionnement du contrôleur principal 310 de la figure 4. La fonction débute en une étape 5400. Fig. 13 illustrates a second main function for an administration machine, for example one of the first 32, second 34 and third 36 administration machines of Fig. 8, corresponding to the first operational mode of a sequestration infrastructure. This second function corresponds to the exchange of parameters of a first set of cryptographic parameters between administration machines. This is for example the operation of the main controller 310 of Figure 4. The function starts in a step 5400.
A l'étape suivante 5402, la fonction reçoit un message d'un contrôleur de l'infrastructure comprenant des données relatives à chaque machine d'administration i de l'infrastructure de séquestres. En particulier, les données comprennent, pour chaque machine d'administration i, un identifiant de machine, par exemple l'identifiant DomAdmId_i, une valeur de clé publique propre à cette machine i, par exemple la clé PubKyJ, une valeur chiffrée pour cette machine i d'une clé privée générée par cette machine i, par exemple la valeur clé EncPvtKyJ, et un rang DomAdmRk_i de cette machine. Les données peuvent être rassemblées dans un tableau analogue au tableau GrpDomAdm. In the next step 5402, the function receives a message from a controller of the infrastructure comprising data relating to each administration machine i of the receiver infrastructure. In particular, the data comprises, for each administration machine i, a machine identifier, for example the identifier DomAdmId_i, a public key value specific to this machine i, for example the key PubKyJ, an encrypted value for this machine i of a private key generated by this machine i, by example the key value EncPvtKyJ, and a rank DomAdmRk_i of this machine. The data can be collected in a table similar to the GrpDomAdm table.
À l'étape suivante 5404, la fonction reçoit un code qui conditionne l'accès à la machine, par exemple la chaîne DomAdmPwd. In the next step 5404, the function receives a code which conditions access to the machine, for example the string DomAdmPwd.
Ceci permet, à l'étape suivante 5406, de déchiffrer la valeur EncPvtKyJ correspondant à la machine i. On obtient la clé PvtKy_i relative à cette machine i. Les étapes 5400 à 5406 correspondent à la récupération, par une machine d'administration particulière, des données de son premier jeu de paramètres cryptographiques, en particulier sa valeur de clé publique et une version chiffrée de sa valeur de clé privée. Cela permet d'utiliser des équipements physiquement différents en tant que machine d'administration i entre les étapes 52 et 54. Cela évite en outre à la machine i de mémoriser des données cryptographiques sur un équipement, ce qui améliore grandement la sécurité. Toutefois, ces étapes sont optionnelles dans la mesure où ces données cryptographiques peuvent être mémorisées de façon sûre sur un équipement particulier. Dans les étapes suivantes, la fonction génère des données définissant un polynôme de degré correspondant au nombre DomAdmMin moins un. Les coefficients du polynôme sont générés aléatoirement dans un espace d'entiers discret dont la dimension, représentée ici par l'entier q, est commune aux machines d'administration de l'infrastructure de séquestres. Le polynôme est propre à la machine qui l'a générée. Les machines homologues du groupe de machines d'administration n'utilisent pas nécessairement le même polynôme. This allows, in the next step 5406, to decipher the value EncPvtKyJ corresponding to the machine i. We obtain the key PvtKy_i relating to this machine i. Steps 5400 to 5406 correspond to the recovery, by a particular administration machine, of the data of its first set of cryptographic parameters, in particular its public key value and an encrypted version of its private key value. This makes it possible to use physically different equipment as an administration machine i between steps 52 and 54. This also prevents the machine from storing cryptographic data on equipment, which greatly improves security. However, these steps are optional in that this cryptographic data can be securely stored on a particular piece of equipment. In the following steps, the function generates data defining a polynomial of degree corresponding to the number DomAdmMin minus one. The coefficients of the polynomial are generated randomly in a discrete integer space whose dimension, represented here by the integer q, is common to the administration machines of the sequestrator infrastructure. The polynomial is specific to the machine that generated it. The peer machines in the administration machine group do not necessarily use the same polynomial.
Ceci se fait en initialisant d'abord un compteur de boucle j à une valeur nulle dans une étape 5408. À l'étape suivante 5410, la fonction mémorise en tant qu'élément d'index j d'un tableau Poly_i le résultat d'une fonction de génération aléatoire à valeurs dans un intervalle [1 .. q-2]. Le compteur j est incrémenté à l'étape suivante 5412. A l'étape suivante 5414, la fonction vérifie que le compteur j a atteint sa valeur finale, c'est-à-dire le nombre DomAdmMin. La fonction vérifie qu'un coefficient a été généré pour chaque terme du polynôme. Si oui, alors la fonction se poursuit à l'étape suivante 5416. Sinon, la fonction retourne à l'étape 5410 où elle génère une valeur pour le coefficient de degré supérieur puis le stocke dans le tableau Poly_i. This is done by first initializing a loop counter j to a null value in a step 5408. In the next step 5410, the function stores as an index element j of an array Poly_i the result of a random generation function with values in an interval [1 .. q-2]. The counter j is incremented in the next step 5412. In the next step 5414, the function verifies that the counter ja reaches its final value, that is to say the number DomAdmMin. The function verifies that a coefficient has been generated for each term of the polynomial. If so, then the function continues to the next step 5416. Otherwise, the function returns to step 5410 where it generates a value for the higher degree coefficient and then stores it in the Poly_i table.
À l'étape 5416, on calcule une valeur de clé publique locale propre à la machine d'administration i, ou clé LocKy L à partir des données du tableau Poly_i. On utilise ici une fonction de chiffrement de type El Gamal. La clé LocKy_i est calculée avec la valeur génératrice g de l'infrastructure, dans l'intervalle [1.. p-2], en utilisant le terme du polynôme de degré zéro, ici l'entier d'index zéro du tableau Poly_i. La valeur LocKy_i est propre à la machine d'administration i considérée. In step 5416, a local public key value specific to the administration machine i, or key LocKy L, is calculated from the data of the table Poly_i. Here we use an El Gamal type encryption function. The key LocKy_i is computed with the generator value g of the infrastructure, in the interval [1 .. p-2], by using the term of the polynomial of degree zero, here the integer of zero index of the table Poly_i. The value LocKy_i is specific to the administration machine i considered.
A l'étape suivante 5418, la fonction calcule une collection de valeurs secrètes relatives aux autres machines d'administration du domaine. Une valeur secrète pour une machine d'administration générique k est chiffrée avec la clé PubKy_k de cette machine d'administration, par exemple telle qu'elle a été reçue à l'étape 5402. Les valeurs secrètes chiffrées sont rassemblées ici dans un tableau EncRemKy_i. Par exemple, la valeur secrète pour la machine d'administration k est mémorisée en tant qu'élément d'index k-1 dans ce tableau. In the next step 5418, the function calculates a collection of secret values relating to the other domain administration machines. A secret value for a generic administration machine k is encrypted with the key PubKy_k of this administration machine, for example as received in step 5402. The encrypted secret values are gathered here in an array EncRemKy_i . For example, the secret value for the administration machine k is stored as an index item k-1 in this table.
A l'étape suivante 5420, la fonction construit un message à destination du serveur destiné au partage des données cryptographiques, ou message ADM_ SHAR. Le message en question comprend la valeur de la clé locale LocKy_i de la machine hôte i et un tableau de valeurs secrètes, le cas échéant chiffrées, correspondant au tableau EncRemKy_i. In the next step 5420, the function constructs a message to the server for cryptographic data sharing, or message ADM_ SHAR. The message in question includes the value of the local key LocKy_i of the host machine i and an array of secret values, where appropriate encrypted, corresponding to the table EncRemKy_i.
La fonction s'arrête à l'étape suivante 5422. The function stops at the next step 5422.
Le chiffrement des valeurs secrètes permet d'en assurer la confidentialité. Autrement dit, seule la machine d'administration peut accéder au secret calculé pour elle par la machine d'administration i. Cela permet de rassembler confidentiellement les valeurs secrètes sur un serveur de l'infrastructure. Toutefois, le chiffrement peut devenir optionnel dans le cas où l'on peut assurer d'une autre façon la confidentialité du secret, par exemple dans le cadre d'un échange de valeurs secrètes directement entre machines d'administration. The encryption of secret values makes it possible to ensure their confidentiality. In other words, only the administration machine can access the secret calculated for it by the administration machine i. This makes it possible to confidentially gather the secret values on a server of the infrastructure. However, the encryption can become optional in the case where it is possible to ensure in another way the confidentiality of the secret, for example in the context of an exchange of secret values directly between the administration machines.
La figure 14 détaille l'étape 5418 de la figure 13. Dans une étape 54180, la fonction commence une structure de boucle en initialisant un premier compteur j à la valeur 0 (zéro). FIG. 14 details step 5418 of FIG. 13. In a step 54180, the function starts a loop structure by initializing a first counter j to the value 0 (zero).
À l'étape suivante 54181, la fonction crée un tableau de calcul RemKy_i et initialise l'élément d'index j de ce tableau à la valeur 0 (zéro). In the next step 54181, the function creates a calculation table RemKy_i and initializes the index element j of this array to 0 (zero).
À l'étape suivante 54182, la fonction commence une seconde structure de boucle, imbriquée dans la première, en initialisant un second compteur k à la valeur 0 (zéro). In the next step 54182, the function starts a second loop structure, nested in the first, by setting a second counter k to 0 (zero).
À l'étape suivante 54184, la fonction mémorise dans le tableau de calcul RemKy_i, en tant qu'élément d'index j, la valeur correspondant à cet index j auquel on ajoute le coefficient de degré k du polynôme de signature, c'est-à-dire la valeur entière d'index k dans le tableau Poly_i, que multiplie le rang de la machine d'administration j+1, ou DomAdmRkJ+1 à la puissance k. À l'étape suivante 54186, la fonction incrémente le compteur de boucle k, avant de vérifier, dans une étape 54188, que ce compteur de boucle k a atteint sa valeur finale, correspondant au nombre DomAdmMin. Si oui, alors la fonction se poursuit à l'étape suivante 54190. Sinon, la fonction retourne à l'étape 54184. Les étapes 54182 à 54188 correspondent au calcul d'une valeur-résultat de la fonction polynômiale qui sert de fonction signature à la machine d'administration i pour une valeur particulière. Cette valeur particulière correspond à la valeur entière DomAdmRkj d'une machine d'administration j de l'infrastructure. La valeur résultat est générée sur une machine d'administration particulière, sur la base d'une fonction propre à cette machine. Cette valeur peut être vue comme une valeur signature. La valeur résultat est en outre une valeur secrète. Cette valeur résultat est calculée sur la base d'une valeur entière correspondant de manière univoque à une machine homologue du groupe des machines d'administration. Elle peut être vue comme une partie d'une valeur secrète propre à cette machine homologue. In the next step 54184, the function stores in the calculation table RemKy_i, as index element j, the value corresponding to this index j, to which the degree coefficient k of the signature polynomial is added, it is ie the integer value of index k in the table Poly_i, that multiplies the rank of the administration machine j + 1, or DomAdmRkJ + 1 to the power k. In the next step 54186, the function increments the loop counter k, before checking, in a step 54188, that this loop counter ka reaches its final value, corresponding to the number DomAdmMin. If yes, then the function continues to the next step 54190. Otherwise, the function returns to step 54184. The steps 54182 to 54188 correspond to the calculation of a result-value of the polynomial function which serves as a signature function to the administration machine i for a particular value. This particular value corresponds to the integer value DomAdmRkj of an administration machine j of the infrastructure. The result value is generated on a particular administration machine, based on a function specific to that machine. This value can be seen as a signature value. The result value is also a secret value. This result value is calculated on the basis of an integer value uniquely corresponding to a peer machine in the administration machine group. It can be seen as part of a secret value unique to this peer machine.
À l'étape 54190, la fonction chiffre la valeur secrète correspondant à une machine d'administration j, par exemple la valeur d'index j dans le tableau de clé Rem y_i, avec la clé PubKy_j de cette machine j. Le chiffrement utilise ici une fonction de type El Gamal, dont les paramètres sont communs aux machines d'administration de l'infrastructure de séquestres, par exemple les paramètres g_ û et p_0 décrits en relation avec l'étape 5204. De préférence, les valeurs de ces paramètres sont codées dans la fonction. In step 54190, the function encrypts the secret value corresponding to an administration machine j, for example the index value j in the key table Rem y_i, with the key PubKy_j of this machine j. The encryption here uses a function of the El Gamal type, the parameters of which are common to the administration machines of the sequestrator infrastructure, for example the parameters g_u and p_0 described in connection with step 5204. Preferably, the values these parameters are coded in the function.
A l'étape suivante 54192, on incrémente le premier compteur de boucle j, et l'on vérifie, en une étape 54194 que le compteur de boucle j a atteint la valeur DomAdmMax. In the next step 54192, the first loop counter j is incremented, and it is verified in a step 54194 that the loop counter j has reached the value DomAdmMax.
Si oui, alors la fonction s'arrête, ce qui correspond à la fin de l'étape 5418 de la figure 13. Sinon, on retourne à l'étape 54181. La figure 15 illustre une troisième fonction principale pour un contrôleur, par exemple le serveur 10 de la figure 8, dans le premier mode opérationnel d'une infrastructure de séquestres. Cette troisième fonction correspond à une phase d'échange de paramètres de chiffrement. If so, then the function stops, which corresponds to the end of step 5418 of FIG. 13. Otherwise, we return to step 54181. FIG. 15 illustrates a third main function for a controller, for example the server 10 of FIG. 8, in the first operational mode of an infrastructure of receivers. This third function corresponds to a phase of exchange of encryption parameters.
La fonction débute en une étape 5500. The function starts in step 5500.
À l'étape suivante 5502, la fonction initie une structure de boucle initialisant un premier compteur j à la valeur 0 (zéro). In the next step 5502, the function initiates a loop structure initializing a first counter j to 0 (zero).
À l'étape suivante 5504, le contrôleur reçoit un message d'une machine d'administration i, par exemple un message ADM_SHAR. Le message contient une valeur de signature de la machine d'administration i, par exemple une valeur LocKy_i, et une valeur chiffrée EncRemKy_i J d'une valeur secrète RemKy_iJ de la machme i calculée pour chaque autre machine d'administration j, à partir de la valeur entière correspondant à cette dernière. Ici, le chiffrement a été réalisé avec la clé PubKyJ de chaque machine j. Par exemple, ces valeurs sont rassemblées dans un tableau indexé EncRemKy_i. In the next step 5504, the controller receives a message from an administration machine i, for example an ADM_SHAR message. The message contains a signature value of the administration machine i, for example a value LocKy_i, and an encrypted value EncRemKy_i J of a secret value RemKy_iJ of the machme i calculated for each other administration machine j, from the integer value corresponding to the latter. Here, the encryption was done with the PubKyJ key of each machine j. For example, these values are collected in an indexed array EncRemKy_i.
À l'étape suivante 5506, on stocke en tant qu'élément d'index j d'un tableau GrpDomAdm une valeur correspondant à la valeur entière de la machine i, par exemple la valeur DomAdmRkJ, un identifiant de cette machine, par exemple l'identifiant DomAdmId_i, une valeur de clé publique propre à cette machine, ou clé PubKy_i, une valeur chiffrée d'une valeur de clé privée générée par cette machine, par exemple la valeur EncPvtKy_i, la signature de cette machine, ou valeur LocKy_i, et les valeurs chiffrées EncRemK J de signatures générées par la machme i pour chaque autre machine d'administration j de l'infrastructure. In the next step 5506, a value corresponding to the integer value of the machine i is stored as an index element j of an array GrpDomAdm, for example the value DomAdmRkJ, an identifier of this machine, for example the an identifier DomAdmId_i, a public key value specific to this machine, or key PubKy_i, an encrypted value of a private key value generated by this machine, for example the value EncPvtKy_i, the signature of this machine, or value LocKy_i, and encrypted values EncRemK J of signatures generated by the machine i for each other administration machine j of the infrastructure.
À l'étape suivante 5508, la fonction incrémente le compteur de boucle j. A l'étape suivante 5510, la fonction vérifie que le compteur de boucle j a atteint sa valeur finale, laquelle correspond au nombre DomAdmMax. Si oui, alors le serveur a reçu un message de chacune des machines d'administration du domaine. Sinon, la fonction retourne à l'étape 5504 et attend un ou plusieurs messages d'autres machines d'administration. Une fois que le serveur a reçu et traité les messages de l'ensemble des machines d'administration de l'infrastructure, c'est-à-dire que le test de l'étape 5510 est positif, le serveur commence une seconde structure de boucle initialisant un second compteur k à la valeur 0 (zéro) au cours d'une étape 5 12. In the next step 5508, the function increments the loop counter j. In the next step 5510, the function verifies that the loop counter ja reaches its final value, which corresponds to the number DomAdmMax. If so, then the server has received a message from each of the domain's administration machines. Otherwise, the function returns to step 5504 and waits for one or more messages from other administration machines. Once the server has received and processed the messages from all infrastructure management machines, i.e. the test in step 5510 is positive, the server starts a second structure of loop initiating a second counter k to the value 0 (zero) in a step 12.
À l'étape suivante 5514, le serveur crée une variable de calcul DomPubKy. La variable DomPubKy est initialisée à la valeur 1 (un). In the next step 5514, the server creates a DomPubKy calculation variable. The variable DomPubKy is initialized to the value 1 (one).
Au cours d'une étape 5516, on calcule comme nouvelle valeur de la variable DomPubKy, l'anciemie valeur de cette variable DomPubKy que multiplie la clé publique locale de la machine d'administration k, ou clé LocKy_k. In a step 5516, the new value of the variable DomPubKy is calculated as the old value of this variable DomPubKy multiplied by the local public key of the administration machine k, or key LocKy_k.
L'étape suivante 5518 consiste à incrémenter le second compteur de boucle k. À l'étape suivante 5520 on vérifie que le compteur de boucle k a atteint sa valeur finale, laquelle correspond au nombre DomAdmMax. The next step 5518 is to increment the second loop counter k. In the next step 5520 it is verified that the loop counter k has reached its final value, which corresponds to the number DomAdmMax.
Si oui, alors la fonction s'arrête à l'étape suivante 5522. Sinon, la fonction retourne en 5516. II résulte des étapes 5514 à 5520 une valeur finale de la variable DomPubKy qui correspond au produit des valeurs de clé locale LocKy_k respectives de chaque machine d'administration de l'infrastructure de séquestres. If so, then the function stops at the next step 5522. Otherwise, the function returns at 5516. The result of steps 5514 to 5520 is a final value of the variable DomPubKy which corresponds to the product of the respective local key values LocKy_k of each administration machine of the sequestration infrastructure.
La ligure 16 illustre le domaine de séquestre 1 dans le second mode opérationnel, lequel correspond au dépôt d'un séquestre sur le serveur 10 depuis une machine cliente 40. FIG. 16 illustrates the sequester domain 1 in the second operational mode, which corresponds to the deposit of a receiver on the server 10 from a client machine 40.
La machine cliente 40 reçoit du serveur un message comprenant des paramètres cryptographiques à usage dans le domaine, ou message DOM_CFG_CLT. Ces données comprennent notamment une valeur de clé publique à usage dans le domaine 1 , c'est-à- dire à utiliser pour chiffrer un séquestre destiné à cette infrastructure. Il s'agit en particulier de la valeur finale de la variable DomPubKy. La machine cliente 40 traite une suite d'octets de taille quelconque à séquestrer à l'aide des paramètres cryptographiques reçus et de paramètres locaux, puis émet un message contenant le séquestre à stocker à destination du serveur 10, ou message ADD_ESCRW. The client machine 40 receives from the server a message comprising cryptographic parameters for use in the domain, or message DOM_CFG_CLT. This data includes a public key value for use in the domain 1, that is to say, to use to encrypt a receiver for this infrastructure. This is the final value of the DomPubKy variable. The client machine 40 processes a series of bytes of any size to be sequestered using the received cryptographic parameters and local parameters, and then sends a message containing the sequester to be stored to the server 10, or message ADD_ESCRW.
La suite d'octets chiffrée correspond à ce que l'on appelle parfois un "secret" dans la technique. Le secret peut correspondre à une chaîne de caractères, un chiffre ou une suite de chiffres, un fichier ou une liste de fichiers. La figure 17 illustre une fonction principale pour une machine cliente d'une infrastructure de séquestre, par exemple la machine 40 de la figure 16, dans le second mode opérationnel de l'infrastructure. The encrypted byte sequence corresponds to what is sometimes called a "secret" in the art. The secret can be a string, a number or a sequence of numbers, a file or a list of files. Fig. 17 illustrates a main function for a client machine of a sequestration infrastructure, for example the machine 40 of Fig. 16, in the second operational mode of the infrastructure.
La fonction débute en une étape 700. The function starts in a step 700.
À l'étape suivante 702, la fonction reçoit le secret à traiter, par exemple une chaîne de caractères CltScrtStrg. In the next step 702, the function receives the secret to be processed, for example a string of characters CltScrtStrg.
À l'étape suivante 704, la fonction génère aléatoirement une valeur entière CltSesKy, ici à l'aide d'une sous-fonction kygnrtr( ). In the next step 704, the function randomly generates an integer value CltSesKy, here using a subfunction kygnrtr ().
À l'étape suivante 706, la fonction chiffre la chaîne CltScrtStrg avec la valeur entière CltSesky. La fonction utilise un algorithme de chiffrement de type symétrique, par exemple du type AES. On obtient une chaîne chiffrée, ou chaîne EncCltScrtStrg. La valeur entière CltSesky correspond à une clé de session pour la machine cliente, c'est-à- dire que cette valeur entière n'est utilisée que pour le chiffrement d'une chaîne CltScrtStrg ou d'un nombre limité de chaînes analogues. Cette valeur CltSesKy est propre à la machine cliente. À l'étape suivante 707, la fonction génère aléatoirement une valeur r comprise dans l'intervalle [1 .. p-2]. A l'étape suivante 708, la fonction chiffre la clé de session CltSesky avec la valeur DomPubky, qui correspond à une clé publique pour le domaine de séquestre. La fonction utilise une fonction de chiffrement de type El Gamal avec, en tant que paramètres, les valeurs de dimension p et de générateur g de l'infrastructure. Ces valeurs peuvent avoir été reçues du serveur en tant que paramètres cryptographiques ou intégrées directement dans la fonction. In the next step 706, the function encrypts the string CltScrtStrg with the integer value CltSesky. The function uses a symmetric type encryption algorithm, for example of the AES type. We get an encrypted string, or string EncCltScrtStrg. The integer value CltSesky is a session key for the client machine, i.e., this integer value is used only for encrypting a CltScrtStrg string or a limited number of analog strings. This CltSesKy value is unique to the client machine. In the next step 707, the function randomly generates a value r in the range [1 .. p-2]. In the next step 708, the function encrypts the session key CltSesky with the value DomPubky, which corresponds to a public key for the escrow domain. The function uses an El Gamal type encryption function with, as parameters, the p-dimension and g-generator values of the infrastructure. These values may have been received from the server as cryptographic parameters or integrated directly into the function.
Le chiffrement fait intervenir comme paramètre la valeur entière r générée aléatoirement en tant que clé privée. Encryption uses as parameter the integer value r generated randomly as a private key.
Le séquestre comprend la forme chiffrée de la clé de session. Le séquestre comprend un premier chiffre Alpha qui vaut la valeur génératrice g du domaine élevé à la puissance r modulo p, et un second chiffre Beta qui correspond plus particulièrement à la forme chiffrée de la clé de session, calculée comme la clé publique à la puissance r que multiplie la clé de session CltSesky, le tout modulo p. The escrow includes the encrypted form of the session key. The sequester includes a first digit Alpha which is equal to the generating value g of the domain raised to the power r modulo p, and a second digit Beta which corresponds more particularly to the encrypted form of the session key, calculated as the public key to the power. r that multiplies the CltSesky session key, all modulo p.
À l'étape suivante 710, la machine cliente émet un message à destination d'un contrôleur d'infrastructure, par exemple un message ADD_ESCRW. Le message contient un identifiant de la machine cliente, ou identifiant DomCltld, un identifiant de séquestre, par exemple sous la forme d'une chaîne CltEscwid, et le séquestre comprenant les valeurs Alpha et Beta correspondant à la valeur chiffrée EncCltSesKy de la clé de session CltSesKy. En option, le message peut en outre contenir la forme chiffrée EncCltScrtStrg de la chaîne CltScrtStrg, c'est-à-dire du secret de l'utilisateur de la machine cliente. D'une certaine manière, cette forme chiffrée peut être vue comme faisant également partie du séquestre. In the next step 710, the client machine sends a message to an infrastructure controller, for example an ADD_ESCRW message. The message contains an identifier of the client machine, or identifier DomCltld, a sequester identifier, for example in the form of a string CltEscwid, and the sequester comprising the values Alpha and Beta corresponding to the encrypted value EncCltSesKy of the session key CltSesKy. Optionally, the message may further contain the encrypted form EncCltScrtStrg of the string CltScrtStrg, i.e., the secret of the user of the client machine. In a way, this encrypted form can be seen as part of the sequestration.
La machine cliente est identifiée auprès du contrôleur d'infrastructure afin de recevoir les paramètres de fonctionnement de l'infrastructure, en particulier les valeurs des paramètres p et g et de la clé publique. La machine cliente, ou son utilisateur, ne sont pas nécessairement authentifiés. Autrement dit, le contrôleur ne conserve aucune donnée d'authentification relative à la machine cliente ou à son utilisateur. La fonction s'arrête ensuite à l'étape 712. The client machine is identified with the infrastructure controller to receive the operating parameters of the infrastructure, in particular the values of the parameters p and g and the public key. The client machine, or its user, is not necessarily authenticated. In other words, the controller does not keep any authentication data relating to the client machine or its user. The function then stops at step 712.
À réception du message ADDJ3SCRW, le contrôleur- de l'infrastructure peut émettre un accusé de réception à destination de la machine cliente. Le serveur stocke le séquestre, en particulier dans un serveur de type stockage à froid, et les données relatives à la machine cliente. Upon receipt of the ADDJ3SCRW message, the infrastructure controller may issue an acknowledgment to the client machine. The server stores the receiver, in particular in a cold storage type server, and the data relating to the client machine.
La figure 18 illustre le troisième mode opérationnel d'une infrastructure de séquestres telle que le domaine 1 de la figure 1. Fig. 18 illustrates the third operational mode of a receiver infrastructure such as domain 1 of Fig. 1.
Dans ce mode opérationnel, seul un sous-ensemble du groupe des machines d'administration du domaine 1 coopère en vue de recouvrer un séquestre numérique, par exemple les valeurs Alpha et Beta correspondant à la forme chiffrée de la clé CltSesKy. Dans l'exemple de la figure 18, il s'agit de la seconde machine d'administration 34 et de la troisième machine d'administration 36. Chacune des machines d'administration reçoit un message contenant les données de configuration cryptographiques du domaine, ou message DOM_CFG_ADM. In this operational mode, only a subset of the domain 1 administration machine group cooperates to recover a digital receiver, for example the Alpha and Beta values corresponding to the encrypted form of the CltSesKy key. In the example of FIG. 18, this is the second administration machine 34 and the third administration machine 36. Each of the administration machines receives a message containing the cryptographic configuration data of the domain, or DOM_CFG_ADM message.
Le recouvrement de séquestre comprend quatre opérations principales. Dans une première opération, illustrée par le bloc 90 de la figure 19, certaines au moins des machines du groupe des machines d'administration, ici la seconde machine 32 et la troisième machine 36, calculent chacune une valeur supplémentaire respective à partir des données cryptographiques calculées pour elles par l'ensemble des autres machines d'administration de l'infrastructure de séquestre. Cette valeur supplémentaire est secrète puisqu'elle est calculée pour la première fois sur la machine d'administration concernée, à partir de valeurs secrètes calculées et chiffrées pour cette machine d'administration. The escrow recovery consists of four main transactions. In a first operation, illustrated by block 90 of FIG. 19, at least some of the machines of the group of administration machines, here the second machine 32 and the third machine 36, each calculate a respective additional value from the cryptographic data. calculated for them by all the other administration machines of the sequestration infrastructure. This additional value is secret since it is calculated for the first time on the administration machine concerned, from secret values calculated and encrypted for this administration machine.
A l'opération suivante, représentée par le bloc 92, on récupère le séquestre, ou, à tout le moins, la valeur de Alpha. At the next operation, represented by block 92, the sequester is recovered, or at least the value of Alpha.
Dans une opération suivante, représentée par le bloc 94, les machines d'administration qui ont calculé leur valeur secrète supplémentaire chiffrent une nouvelle fois la valeur Alpha. La valeur Alpha correspond à une partie du séquestre, en particulier une partie de la valeur chiffrée EncCltSes y de la clé CltSes y. Cette étape de chiffrement de la valeur Alpha peut être vue comme un sur-chiffrement. Dans une opération suivante, représentée par le bloc 96, chaque machine d'administration ayant calculé une valeur secrète supplémentaire déchiffre le séquestre. Autrement dit, chacune de ces machines d'administration récupère la valeur de la clé de session CltSesKy. En option, certaines au moins de ces machines peuvent déchiffrer le secret EncCltScrtStrg. In a next operation, represented by block 94, the administration machines that calculated their additional secret value re-encrypt the value Alpha. The Alpha value corresponds to a part of the escrow, in particular a part of the encrypted value EncCltSes y of the key CltSes y. This step of encrypting the Alpha value can be seen as over-encryption. In a next operation, represented by block 96, each administration machine having calculated an additional secret value decrypts the receiver. In other words, each of these administration machines retrieves the value of the session key CltSesKy. As an option, at least some of these machines can decrypt the EncCltScrtStrg secret.
La figure 20 illustre une seconde fonction principale pour une machine d'administration d'une infrastructure de séquestre et destinée au calcul d'une valeur secrète propre à cette machine, notée génériquement machine d'administration j, ou machine DomAdmJ. La fonction débute en une étape 9000. FIG. 20 illustrates a second main function for an administration machine of a sequestration infrastructure and intended for the calculation of a secret value specific to this machine, generically denoted as the administration machine j, or DomAdmJ machine. The function starts in a step 9000.
A l'étape suivante 9002, la fonction reçoit d'un contrôleur d'infrastructure un message contenant une valeur de clé publique à usage dans l'infrastructure, par exemple la clé DomPubKy, et les données relatives à des paramètres cryptographiques de l'infrastructure, par exemple regroupée dans un tableau du type du tableau GrpDomAdm. Il s'agit par exemple d'un message DOM_CFG_ADM. Les paramètres crypto graphiques comprennent en particulier l'ensemble des valeurs secrètes calculées par chaque machine d'administration i pour les autres machines d'administration j du groupe des machines d'administration. Ici, chaque valeur secrète est chiffrée avec la clé publique de la machine d'administration à laquelle elle est destinée, c'est-à-dire dont la valeur entière a servi au calcul. In the next step 9002, the function receives from an infrastructure controller a message containing a public key value for use in the infrastructure, for example the key DomPubKy, and the data relating to cryptographic parameters of the infrastructure. , for example grouped in an array of the GrpDomAdm table type. This is for example a DOM_CFG_ADM message. The cryptographic parameters include in particular the set of secret values calculated by each administration machine i for the other administration machines j of the group of administration machines. Here, each secret value is encrypted with the public key of the administration machine for which it is intended, that is to say whose integer value was used for the calculation.
À l'étape suivante 9004, la fonction reçoit un code qui conditionne l'accès à la machine d'administration j, par exemple une chaîne analogue à la chaîne DomAdmPwdJ. À l'étape suivante 9006, la fonction recherche dans les paramètres cryptographiques de l'infrastructure la valeur entière DomAdmRkJ correspondant à une machine d'administration j . À l'étape suivante 9008, la fonction déchiffre la valeur EncPvt yJ de la machine j grâce au mot de passe DomAdmPwdJ saisi à l'étape 9004. Il en résulte une valeur de clé privée correspondant à la machine d'administration j, ou clé PvtKyJ. In the next step 9004, the function receives a code which conditions the access to the administration machine j, for example a chain analogous to the chain DomAdmPwdJ. In the next step 9006, the function searches in the cryptographic parameters of the infrastructure for the entire value DomAdmRkJ corresponding to an administration machine j. In the next step 9008, the function decrypts the EncPvt yJ value of the machine j with the password DomAdmPwdJ entered in step 9004. This results in a private key value corresponding to the administration machine j, or key PvtKyJ.
Les étapes 9004 à 9008 sont facultatives. Elles visent à retrouver la valeur de clé PvtKy_i de la machine i, telle qu'elle a été calculée à l'initialisation du domaine de séquestres. Steps 9004 to 9008 are optional. They aim to find the key value PvtKy_i of the machine i, as it was calculated at the initialization of the domain of receivers.
À l'étape suivante 9010, la fonction commence une structure de boucle en initialisant un compteur k à la valeur 0 (zéro). In the next step 9010, the function starts a loop structure by initializing a counter k to the value 0 (zero).
A l'étape suivante 9012, la fonction crée une variable de calcul AdmScrtJ pour la machine d'administration j qu'elle met à la valeur nulle. In the next step 9012, the function creates a calculation variable AdmScrtJ for the administration machine that it sets to zero.
A l'étape suivante 9014, la fonction attribue à la variable de calcul AdmScrtJ la valeur précédente de cette variable à laquelle elle ajoute la version déchiffrée de la valeur secrète calculée par la machine d'administration k pour la machine d'administration j. Ici, cette valeur correspond à l'élément d'index j-1 du tableau EncRemky_k+l . In the next step 9014, the function assigns the calculation variable AdmScrtJ the previous value of this variable to which it adds the decrypted version of the secret value computed by the administration machine k for the administration machine j. Here, this value corresponds to the index element j-1 of the EncRemky_k + 1 array.
À l'étape suivante étape 9016, la fonction incrémente le compteur k. In the next step 9016, the function increments the counter k.
À l'étape suivante 9018, la fonction vérifie que le compteur k a atteint sa valeur finale, laquelle correspond au nombre DomAdmMax. Si oui, alors la fonction s'achève à l'étape suivante 9020. Sinon, la fonction retourne à l'étape 9014. La valeur résultante AdmScrtJ correspond à une valeur secrète supplémentaire de la machine d'administration j calculée à partir des valeurs secrètes calculées pour cette machine j par les autres machines d'administration de l'infrastructure. Dans une phase non détaillée, certaines au moins des machines d'administration envoient un message avec des identifiants correspondant aux séquestres, par exemple un nom d'utilisateur et un nom de séquestre. Il s'agit par exemple d'un message GET_ESCRW. En retour, un contrôleur de séquestres est agencé pour renvoyer la valeur Alpha à ces machines d'administration. In the next step 9018, the function verifies that the counter ka reaches its final value, which corresponds to the number DomAdmMax. If so, then the function ends in the next step 9020. Otherwise, the function returns to step 9014. The resulting value AdmScrtJ corresponds to an additional secret value of the administration machine j calculated from the secret values calculated for this machine by the other infrastructure administration machines. In a non-detailed phase, at least some of the administration machines send a message with identifiers corresponding to the receivers, for example a username and a receiver name. This is for example a GET_ESCRW message. In return, a receiver controller is arranged to return the value Alpha to these administration machines.
La figure 22 illustre une seconde fonction principale pour une machine d'administration d'une infrastructure de séquestres dans le troisième mode opérationnel de cette infrastructure, par exemple l'une de la seconde machine 34 et de la troisième machine 36 de la figure 18. Il s'agit de chiffrer une nouvelle fois une partie du séquestre, la valeur Alpha, avec une valeur secrète propre à la machine d'administration et établie à partir de valeurs secrètes calculées pour elle par les machines homologues du groupe des machines d'administration. FIG. 22 illustrates a second main function for a sequestration infrastructure administration machine in the third operational mode of this infrastructure, for example one of the second machine 34 and the third machine 36 of FIG. 18. This is to re-encrypt part of the sequestrum, the Alpha value, with a secret value specific to the administration machine and established from secret values computed for it by the homologous machines of the group of administration machines. .
La fonction commence en une étape 9400. The function starts in a step 9400.
A l'étape suivante 9402, la fonction reçoit un message comprenant la valeur Alpha correspondant à une partie d'un séquestre numérique. Typiquement, il s'agit d'une partie de la valeur chiffrée EncCltSesKy de la clé de session CltSesKy. In the next step 9402, the function receives a message comprising the value Alpha corresponding to a portion of a digital receiver. Typically, this is a portion of the EncCltSesKy encrypted value of the CltSesKy session key.
A l'étape suivante 9404, la fonction calcule une valeur chiffrée EncCalpha_i de la valeur Alpha avec une valeur secrète supplémentaire AdmScrtJ de la machine i. La fonction élève la valeur Alpha à une puissance correspondant à la valeur secrète supplémentaire AdmScrtJ de la machine i, le tout modulo p. In the next step 9404, the function calculates an encrypted value EncCalpha_i of the value Alpha with an additional secret value AdmScrtJ of the machine i. The function raises the Alpha value to a power corresponding to the additional secret value AdmScrtJ of the machine i, all modulo p.
A l'étape suivante 9406, la fonction initie une structure de boucle en initialisant un compteur k à la valeur 0 (zéro). In the next step 9406, the function initiates a loop structure by initializing a counter k to the value 0 (zero).
À l'étape suivante 9408, la fonction calcule une valeur chiffrée de la valeur EncCalphaJ en utilisant la clé PubKy_k+l correspondant à la machine d'administration k+1. Le résultat est par exemple stocké en tant qu'élément d'index k d'un tableau, noté ici tableau EncCalphaJ. À l'étape suivante 9410, la fonction incrémente le compteur de boucle k. In the next step 9408, the function calculates an encrypted value of the value EncCalphaJ using the key PubKy_k + 1 corresponding to the administration machine k + 1. The result is for example stored as index element k of a table, noted here EncCalphaJ table. In the next step 9410, the function increments the loop counter k.
À l'étape suivante 9412, la fonction vérifie que le compteur de boucle k a atteint sa valeur finale, laquelle correspond au nombre DomAdmMax. In the next step 9412, the function checks that the loop counter k has reached its final value, which corresponds to the number DomAdmMax.
Si oui, alors la fonction passe à l'étape suivante 9414. Sinon, la fonction retourne à l'étape 9408. À l'issue des étapes 9406 à 9412, la fonction a établi une collection de valeurs chiffrées correspondant chacune à la valeur EncAlpha_i de Alpha chiffrée avec la valeur secrète supplémentaire de la machine i chiffrée à nouveau avec la clé publique PubKy_k d'une autre machine d'administration k de l'infrastructure. Ces étapes sont destinées à chiffrer l'échange des valeurs EncAlpha_j propres chacune à une machine d'admmistration respective de l'infrastructure entre les machines d'administration i à travers l'infrastructure. Ces étapes sont optionnelles. If so, then the function proceeds to the next step 9414. Otherwise, the function returns to step 9408. At the end of steps 9406 to 9412, the function has established a collection of encrypted values each corresponding to the value EncAlpha_i of Alpha encrypted with the additional secret value of the machine i encrypted again with the pubKy_k public key of another k administration machine of the infrastructure. These steps are intended to encrypt the exchange of EncAlpha_j values each specific to a respective administrative machine of the infrastructure between the administration machines i through the infrastructure. These steps are optional.
A l'étape 9414, la machine d'administration i constrait un message à destination du contrôleur de l'infrastructure, par exemple un message ADM_SCRYPT_ESCRW. Le message comprend la collection de valeurs EncCalpha_i_k, par exemple sous forme d'une liste EncAlpha_i indexée de valeurs dont un élément générique d'index k comprend une valeur de EneAlpha_i chiffrée avec la clé PubKyJk correspondant à la valeur d'index. La fonction s'arrête ensuite, à l'étape 9416. In step 9414, the administration machine i constructs a message intended for the infrastructure controller, for example an ADM_SCRYPT_ESCRW message. The message comprises the collection of EncCalpha_i_k values, for example in the form of an indexed EncAlpha_i list of values of which a generic index element k comprises a value of EneAlpha_i encrypted with the key PubKyJk corresponding to the index value. The function then stops at step 9416.
La figure 22 illustre une troisième fonction pour un contrôleur d'infrastructure de séquestres tel que le serveur 10 de la figure 18 dans le troisième mode opérationnel de cette infrastructure. Fig. 22 illustrates a third function for a receiver infrastructure controller such as server 10 of Fig. 18 in the third operational mode of this infrastructure.
La fonction commence par une étape 9500. À l'étape suivante 9502, la fonction initie une structure de boucle en initialisant un compteur j à la valeur 0 (zéro). The function starts with step 9500. In the next step 9502, the function initiates a loop structure by initializing a counter j to 0 (zero).
À l'étape suivante 9504, le serveur reçoit un message d'une machine d'administration i. Le message comprend la collection de valeurs chiffrées d'Alpha par la machine i chiffrées pour chaque autre machine d'administration de l'infrastructure de séquestres. Ici ces valeurs sont rassemblées dans un tableau du type du tableau EncCalpha_i[..] In the next step 9504, the server receives a message from an administration machine i. The message includes the collection of encrypted values of Alpha by the machine i encrypted for each other administration machine of the receiver infrastructure. Here these values are gathered in a table of the type of the table EncCalpha_i [..]
À l'étape suivante 9506, la fonction crée un tableau destiné à contenir les valeurs chiffrées de Alpha pour le domaine, ou tableau DomCalpha. La fonction y mémorise la collection de valeurs calculées par la machine d'administration i, ou tableau EnCalphaJ en tant qu'élément d'index j, ici en relation avec un identifiant de cette machine, par exemple l'identifiant Admld__i A l'étape suivante 9508, la fonction incrémente le compteur de boucle j. In the next step 9506, the function creates a table to hold the encrypted values of Alpha for the domain, or DomCalpha array. The function stores therein the collection of values computed by the administration machine i, or table EnCalphaJ as an index element j, here in relation with an identifier of this machine, for example the identifier Admld__i At step following 9508, the function increments the loop counter j.
À l'étape suivante 9510, la fonction vérifie que le compteur de boucle j a atteint sa valeur finale, laquelle correspond au nombre DomAdmMin. Si oui, alors la fonction a reçu et traité autant de messages que le nombre minimum de machines d'administration pour recouvrer un séquestre. La fonction poursuit alors avec l'étape 9512. Sinon, la fonction retourne à l'étape 9504. In the next step 9510, the function verifies that the loop counter j has reached its final value, which corresponds to the number DomAdmMin. If so, then the function has received and processed as many messages as the minimum number of administration machines to recover a receiver. The function then continues with step 9512. Otherwise, the function returns to step 9504.
À l'étape 9512, la fonction initie une structure de boucle en initialisant un second compteur k à la valeur 0 (zéro). In step 9512, the function initiates a loop structure by initializing a second counter k to the value 0 (zero).
À l'étape suivante 9513, la fonction récupère un identifiant de la machine dont les données calculées sont stockées en tant qu'élément d'index k dans le tableau DomCalpha. Cet identifiant est celui de la machine d'administration i, génériquement noté Admld_i. À l'étape suivante 9514, la fonction commande l'émission d'un message à la machine d'administration k. Le message contient le tableau DomCalpha et la valeur Beta. In the next step 9513, the function retrieves an identifier of the machine whose calculated data is stored as an index element k in the DomCalpha array. This identifier is that of the administration machine i, generically noted Admld_i. In the next step 9514, the function controls the transmission of a message to the administration machine k. The message contains the DomCalpha array and the Beta value.
À l'étape suivante 9516, la fonction incrémente le second compteur de boucle k. In the next step 9516, the function increments the second loop counter k.
À l'étape suivante 9518, la fonction vérifie que le compteur k a atteint sa valeur finale, à savoir le nombre DomAdmMin. In the next step 9518, the function verifies that the counter k has reached its final value, namely the number DomAdmMin.
Si oui, alors la fonction a émis un message à chaque machine d'administration impliquée dans le recouvrement d'un séquestre. Et la fonction s'arrête à l'étape suivante 9520. Sinon, la fonction retourne à l'étape 9513 pour émettre un message à destination d'une autre machine d'administration du séquestre. If so, then the function has issued a message to each administration machine involved in the collection of a receiver. And the function stops at the next step 9520. Otherwise, the function returns to step 9513 to issue a message to another receiving machine of the receiver.
La figure 23 illustre une seconde fonction pour une machine d'administration à usage dans le déchiffrement du séquestre. Fig. 23 illustrates a second function for an administration machine for use in decrypting the sequester.
La fonction commence par une étape 9600. The function starts with a step 9600.
À l'étape suivante 9602, la fonction reçoit un message d'un contrôleur d'une infrastructure de séquestres, par exemple le serveur 10 de la figure 18, contenant un ensemble de valeurs d'Alpha codées avec les valeurs secrètes des machines d'administration du séquestre, chaque valeur étant elle-même chiffrée avec une valeur de clé publique d'une machine d'administration. Ici, ces valeurs sont contenues dans un tableau du type du tableau DomCalpha. Le message peut en outre comprendre la partie Beta du séquestre numérique. In the next step 9602, the function receives a message from a controller of an escrow infrastructure, for example the server 10 of FIG. 18, containing a set of alpha values encoded with the secret values of the machines. administration of the escrow, each value itself being encrypted with a public key value of an administration machine. Here, these values are contained in an array of the type of the DomCalpha array. The message may further include the Beta portion of the digital receiver.
A l'étape suivante 9604, la fonction initie une structure de boucle en initialisant un premier compteur j à la valeur 1 (un). A l'étape suivante 9606, la fonction crée une variable de calcul SummC qu'elle initialise à la valeur nulle. À l'étape suivante 9608, la fonction commence une seconde structure de boucle, imbriquée dans la première, en initialisant un second compteur k à la valeur 0 (zéro). In the next step 9604, the function initiates a loop structure by initializing a first counter j to the value 1 (one). In the next step 9606, the function creates a SummC calculation variable that it initializes to zero. In the next step 9608, the function starts a second loop structure, nested in the first, by setting a second counter k to 0 (zero).
À l'étape suivante 9609, la fonction initialise une seconde variable de calcul, ou variable Lambda J, à la valeur 1 (un). In the next step 9609, the function initializes a second calculation variable, or Lambda variable J, to the value 1 (one).
À l'étape suivante 9610, la fonction vérifie que la valeur entière DomAdmRk k de la machine k diffère de celle DomAdmRkJ de la machine d'administration DomAdm J. Si oui, alors la fonction calcule une valeur LambdaJ en multipliant la valeur antérieure de la variable LambdaJ par la valeur entière DomAdmRk_k correspondant à la machine DomAdm_k et en divisant le résultat par la valeur de la différence de la valeur entière DomAdmRkJ correspondant à la machine d'administration k et à celle DomAdmRk J correspondant à la machine DomAdm J, le tout modulo p. A l'étape suivante 9614, la fonction incrémente le second compteur de boucle k. In the next step 9610, the function checks that the integer value DomAdmRk k of the machine k differs from that DomAdmRkJ of the administration machine DomAdm J. If yes, then the function calculates a LambdaJ value by multiplying the previous value of the variable LambdaJ by the integer value DomAdmRk_k corresponding to the machine DomAdm_k and dividing the result by the value of the difference of the integer value DomAdmRkJ corresponding to the administration machine k and that DomAdmRk J corresponding to the machine DomAdm J, the whole modulo p. In the next step 9614, the function increments the second loop counter k.
A l'étape suivante 9616, la fonction vérifie que le compteur de boucle k a atteint sa valeur finale, laquelle correspond au nombre DomAdmMin. Si oui, alors la fonction poursuit par l'étape 9618. Sinon, la fonction retourne à l'étape 9610. In the next step 9616, the function verifies that the loop counter k has reached its final value, which corresponds to the number DomAdmMin. If so, then the function continues with step 9618. Otherwise, the function returns to step 9610.
Les étapes 9608 à 9616 correspondent au calcul d'une valeur de coefficient de Lagrange à partir des valeurs entières DomAdmRk correspondant à la machine d'administration k et aux machines d'administration homologues d'un sous-ensemble au moins du groupe des machines d'administration. Steps 9608 to 9616 correspond to calculating a Lagrange coefficient value from the DomAdmRk integer values corresponding to the administration machine k and to the counterpart administration machines of at least a subset of the group 'administration.
À l'étape 9618, la fonction calcule SummC comme la valeur antérieure de la variable SummC à laquelle elle ajoute la valeur EncCalpha de Alpha chiffrée pour la machine d'administration i à la puissance LambdaJ. À l'étape suivante 9620, la fonction incrémente le compteur de boucle j. À l'étape suivante 9622, la fonction vérifie que le compteur de boucle j a atteint sa valeur finale, laquelle correspond au nombre DomAdmMin. Si oui, alors la fonction poursuit par l'étape 9626. Sinon, la fonction retourne à l'étape 9608. À l'étape suivante 9626, la fonction calcule une version déchiffrée DcphKy_i de Beta pour la machine d'administration i. Cette valeur est calculée en multipliant la valeur Beta par la dernière valeur calculée de la variable SummC à la puissance moins un (-1). In step 9618, the function computes SummC as the previous value of the SummC variable to which it adds the EncCalpha value of Alpha encrypted for the administration machine i to the LambdaJ power. In the next step 9620, the function increments the loop counter j. In the next step 9622, the function checks that the loop counter ja reaches its final value, which corresponds to the number DomAdmMin. If so, then the function continues with step 9626. Otherwise, the function returns to step 9608. In the next step 9626, the function calculates a decrypted version DcphKy_i of Beta for the administration machine i. This value is calculated by multiplying the value Beta by the last calculated value of the SummC variable to the power minus one (-1).
À l'étape suivante 9628, la fonction retrouve la valeur secrète de l'utilisateur CltScrtStrg en déchiffrant la version chiffrée EncCltScrtStrg à l'aide de la clé de déchiffrement DcphKy_i. Cette clé de déchiffrement DcphKy_i correspond à la valeur entière utilisée pour le chiffrement symétrique du secret à traiter, par exemple la valeur CltSesKy décrite en relation avec la figure 17. Puis la fonction s'arrête à l'étape suivante 9630. In the next step 9628, the function finds the secret value of the user CltScrtStrg by decrypting the encrypted version EncCltScrtStrg using the decryption key DcphKy_i. This decryption key DcphKy_i corresponds to the integer value used for the symmetric encryption of the secret to be processed, for example the value CltSesKy described in connection with FIG. 17. Then the function stops at the next step 9630.
Les étapes 9600 à 9630 peuvent être exécutées sur chacune des machines d'administration du séquestre du quorum, c'est-à-dire des machines ayant calculé une version surchiffrée d'Alpha. Steps 9600 to 9630 can be executed on each of the quorum sequestration administration machines, i.e., machines having calculated an over-encrypted version of Alpha.
Le déchiffrement implique un sous-ensemble de machines d'administration du domaine dont le cardinal correspond au nombre DomAdmMin. Le nombre DomAdmMin est défini en tant que paramètre. Il s'apparente à ce que l'on pourrait appeler un "quorum" de machines d'administration. Decryption involves a subset of domain administration machines whose cardinal is the DomAdmMin number. The DomAdmMin number is defined as a parameter. It is similar to what could be called a "quorum" of administration machines.
Dans ce processus de déchiffrement, le serveur de stockage du séquestre agit principalement pour mettre à disposition des machines d'administration du quorum les différentes parties Alpha et Beta du séquestre. Dans une variante de réalisation, les machines d'administration sont agencées pour recouvrer uniquement la clé de session de la machine cliente, et pour communiquer cette valeur à la machine cliente. On vient de décrire une infrastructure de séquestre dans laquelle des machines d'administration s'occupent du recouvrement de séquestres numériques et d'une partie de l'initialisation de cette infrastructure. Une machine comprend les éléments matériels et logiciels nécessaires au fonctionnement décrit. En particulier, les éléments logiciels peuvent être communs à certaines au moins des machines d'administration. Les machines d'administration se distinguent essentiellement les unes des autres par leur identifiant DomAdmld dans l'infrastructure. L'identifiant d'une machine d'administration peut être remplacé par un identifiant d'utilisateur dans la mesure où le contrôleur est capable de mettre en relation un identifiant utilisateur avec une adresse pour les messages, ou, dans une mesure analogue, par un identifiant logiciel In this decryption process, the escrow's storage server mainly acts to provide the quorum administration machines with the different Alpha and Beta parts of the escrow. In an alternative embodiment, the administration machines are arranged to recover only the session key of the client machine, and to communicate this value to the client machine. A sequestration infrastructure has just been described in which the administration machines take care of the recovery of digital receivers and part of the initialization of this infrastructure. A machine comprises the hardware and software elements necessary for the described operation. In particular, the software elements may be common to at least some of the administration machines. The administration machines are essentially distinguished from each other by their DomAdmld identifier in the infrastructure. The identifier of an administration machine may be replaced by a user identifier insofar as the controller is able to relate a user identifier to an address for the messages, or, to a similar extent, by a software identifier
Le contrôle de l'accès à une machine d'administration est conditionné à la fourniture d'un code. En pratique, ce code peut être associé à un équivalent plus facilement mémorisable pour l'utilisateur. L'équivalent en question peut prendre des formes variées, telles qu'un fichier informatique, un certificat, un jeton, que l'on appelle "token" dans la technique, éventuellement stockés sur des supports à mémoire comme une carte à puce par exemple. L'équivalent peut aussi correspondre à des paramètres biométriques d'une personne, tels que des empreintes digitales par exemple The control of access to an administration machine is conditioned to the provision of a code. In practice, this code can be associated with an equivalent more easily memorized for the user. The equivalent in question can take various forms, such as a computer file, a certificate, a token, which is called "token" in the art, possibly stored on storage media such as a smart card for example . The equivalent can also correspond to a person's biometric parameters, such as fingerprints for example
Le contrôleur ou le serveur de séquestres peuvent mettre à disposition les paramètres de la fonction cryptographique à usage dans le domaine. The controller or the receiver server may provide the parameters of the cryptographic function for use in the domain.
Le serveur de séquestres est agencé pour stocker un séquestre comprenant les valeurs Alpha et Beta d'un chiffre El Gamal correspondant à une clé de chiffrement symétrique ainsi qu'en option la forme chiffrée symétriquement d'un secret. En variante, le serveur peut ne stocker qu'une partie de ce séquestre, par exemple les valeurs Alpha et Beta. Le serveur décrit assure une double fonction, à savoir (i) conserver sous forme chiffrée des secrets utilisateurs, (ii) conserve sous forme chiffrée les clés de chiffrement utilisées sur les secrets utilisateurs avec accès. L'utilisateur peut déchiffrer son secret s'il connaît la valeur de la clé de chiffrement. Dans le cas contraire, il peut requérir le recouvrement de cette clé à partir de sa forme chiffrée asymétriquement. Le recouvrement implique qu'un nombre prédéterminé de machines d'administration, ou quorum, accède à la forme chiffrée de la clé de chiffrement. C'est le serveur qui donne accès à cette forme chiffrée. Physiquement, le serveur peut correspondre à une machine dédiée à cette fonction ou une machine assurant en outre d'autres fonctions au sein de l'infrastructure, par exemple l'une des machines d'administration. The receiver server is arranged to store a receiver including the Alpha and Beta values of an El Gamal number corresponding to a symmetric encryption key and optionally the symmetrically encrypted form of a secret. Alternatively, the server may store only a portion of this receiver, for example the Alpha and Beta values. The described server performs a dual function, namely (i) keep encrypted user secrets, (ii) stores in encrypted form the encryption keys used on the user secrets with access. The user can decipher his secret if he knows the value of the encryption key. In the opposite case, it may require the recovery of this key from its asymmetrically encrypted form. Recovery implies that a predetermined number of administration machines, or quorum, accesses the encrypted form of the encryption key. It is the server that gives access to this encrypted form. Physically, the server may correspond to a machine dedicated to this function or a machine that also provides other functions within the infrastructure, for example one of the administration machines.
Les échanges de données cryptographiques entre machines d'administration, en particulier les valeurs secrètes, les clés secrètes ou encore le séquestre, se font ici par des échanges de message qui sont centralisés sur le contrôleur de séquestres. Cette architecture centralisée de l'infrastructure peut être délaissée au profit d'une architecture dans laquelle certains au moins des messages sont directement échangés entre machines du groupe de machines d'administration. Dans la description qui précède, la plupart des messages adressés par le serveur à une machine d'administration respective contiennent des données qui intéressent uniquement d'autres machines d'administration. La confidentialité de ces données est assurée par l'utilisation d'un chiffrement à l'aide de la clé publique de la machine d'administration intéressée par les données. En variante, le serveur n'adresse à chaque machine d'administration que les données qui intéressent cette machine. On a décrit des machines d'administration homologues, c'est-à-dire qui sont capables de fonctionner, vis-à-vis de l'infrastructure, de manière analogue les unes aux autres. Des machines d'administration homologues peuvent matériellement différer les unes des autres. Dans une forme de réalisation actuellement préférée, chaque machine d'administration résulte de l'exécution sur une unité centrale d'ordinateur d'un produit de même programme informatique. On peut envisager cependant que certaines au moins des machines d'administration se distinguent les unes des autres par le produit en question. The exchange of cryptographic data between the administration machines, in particular the secret values, the secret keys or the sequestration, is done here by message exchanges which are centralized on the receiver controller. This centralized architecture of the infrastructure can be abandoned in favor of an architecture in which at least some of the messages are directly exchanged between machines in the group of administration machines. In the foregoing description, most of the messages addressed by the server to a respective administration machine contain data of interest only to other administration machines. The confidentiality of this data is ensured by the use of encryption using the public key of the administration machine interested by the data. In a variant, the server only sends to each administration machine the data of interest to this machine. Homologous administration machines have been described, that is to say which are able to function, in relation to the infrastructure, in a similar manner to one another. Homologous administration machines may differ materially from one another. In a presently preferred embodiment, each administration machine results from the execution on a central computer unit of a product of the same computer program. However, it can be envisaged that at least some of the administration machines are distinguished from each other by the product in question.
On a décrit des machines d'administration ou cliente notamment qui mémorisent un jeu de paramètres relatif à une fonction de chiffrement pour le fonctionnement de l'infrastructure d'un séquestre. Ce stockage est à entendre ici dans un sens large, englobant par exemple des paramètres intégrés dans le programme correspondant au produit exécuté sur une unité centrale d'ordinateur, ou encore un stockage temporaire, limité à la durée nécessaire aux calculs de chiffrement/déchiffrement/recouvrement. Administration or client machines in particular have been described which memorize a set of parameters relating to an encryption function for the operation of the infrastructure of a receiver. This storage is to be understood here in a broad sense, encompassing, for example, parameters integrated in the program corresponding to the product running on a central computer unit, or temporary storage, limited to the time required for encryption / decryption / recovery calculations.
L'invention a été décrite sous la forme d'une infrastructure de séquestre comprenant notamment une ou plusieurs machines d'administration. Elle peut s'exprimer sous la forme d'un procédé d'administration d'un serveur de séquestres. The invention has been described in the form of an escrow infrastructure including in particular one or more administration machines. It can be expressed as a method of administering an escrow server.
L'infrastructure décrite, ou ses variantes, présentent les particularités suivantes : - Pour récupérer les données confidentielles du séquestre, une personne malveillante doit corrompre l'ensemble du quorum des machmes d'administration The described infrastructure, or its variants, have the following particularities: - To recover the confidential data of the receiver, an evil person must corrupt the entire quorum of the administration machinery
- L'infrastructure fonctionne sans clé maîtresse. Aucune clé de déchiffrement n'est reconstruite. Chaque machine d'administration sur-chiffre une partie au moins du séquestre avec une valeur secrète qui lui est propre. - The infrastructure works without a master key. No decryption key is rebuilt. Each administration machine over-encrypts at least a portion of the escrow with a secret value of its own.
- Dans l'hypothèse où l'infrastructure serait corrompue, il n'y aurait pas de divulgation d'informations concernant les machines d'administration ou les utilisateurs de ces machines, ni sur les secrets conservés par l'infrastructure en question. - In the event that the infrastructure is corrupt, there would be no disclosure of information concerning the administration machines or the users of these machines, nor on the secrets kept by the infrastructure in question.
- Seul un sous-ensemble des machines d'admimstration peut recouvrer le séquestre. Ces machines ou leurs utilisateurs n'ont pas besoin de connaître l'identité des uns ou des autres. - Le serveur de séquestres, ou le contrôleur, ne maintient aucune clé temporaire ou partielle utile pour le recouvrement d'un séquestre. Aucune clé secrète n'est disponible sur le serveur, ni en mémoire, ni dans un fichier. Le serveur ne maintient que des données numériques chiffrées, sans aucun élément permettant leur déchiffrement. - Toutes les opérations cryptographiques, y compris la génération aléatoire de paramètres de chiffrement, sont exécutées de manière distribuée sur des machines distinctes du serveur/contrôleur de séquestres. Le séquestre est chiffré sur la machine cliente. - Only a subset of the admimstration machines can recover the sequestration. These machines or their users do not need to know the identity of one or the other. - The receiver server, or the controller, does not maintain any temporary or partial key useful for the recovery of a receiver. No secret key is available on the server, in memory, or in a file. The server maintains only encrypted digital data, without any element allowing their decryption. - All cryptographic operations, including the random generation of encryption parameters, are performed in a distributed manner on machines separate from the server / controller of receivers. The escrow is encrypted on the client machine.
- Aucun utilisateur de l'infrastructure ne peut recouvrer seul son secret, i.e. sans participation d'un quorum de machines d'administration. On évite ainsi tout vol de secret par usurpation d'identité. - No infrastructure user can recover his or her secret alone, i.e. without the participation of a quorum of administration machines. This avoids any theft of secrecy by identity theft.
- Les machines clientes, les machines d'administration et/ou la machine d'administration de niveau supérieur peuvent être mises en oeuvre sous la forme d'un même logiciel, ou produit de programme informatique, exécuté sur un ou plusieurs équipements informatiques, typiquement une unité centrale d'ordinateur. La fonction de la machine résultante dans l'infrastructure de séquestres peut être déterminée par des données d'identification relative à l'utilisateur, par exemple un couple identifiant/mot de passe. Dans ce cas, les données d'identification sont associées, par exemple dans le contrôleur de séquestres, à une fonction telle qu'administrateur ou super administrateur. Ceci ne s'applique pas nécessairement à la machine cliente, dans la mesure où son utilisateur, i.e. le client de l'infrastructure n'a pas à être authentifié. The client machines, the administration machines and / or the higher level administration machine can be implemented in the form of the same software, or computer program product, executed on one or more computer equipment, typically a central computer unit. The function of the resulting machine in the receiver infrastructure can be determined by user-related identification data, for example an identifier / password pair. In this case, the identification data is associated, for example in the receiver controller, with a function such as administrator or super administrator. This does not necessarily apply to the client machine, since its user, i.e. the infrastructure client does not have to be authenticated.
- L'infrastructure fonctionne avec une clé publique pour le chiffrement de séquestres. Aucune clé privée n'est associée à cette clé publique. Le recouvrement est basé sur un sur-chiffrement à l'aide d'un secret partagé à la manière de Shamir. - The infrastructure works with a public key for encryption of receivers. No private key is associated with this public key. The recovery is based on over-encryption using a secret shared in Shamir's way.
- Les messages échangés entre les machines de l'infrastructure et le serveur/contrôleur sont chiffrés. Pour ce faire, chaque machine génère initialement de façon aléatoire une bi-clé de chiffrement dans un protocole asymétrique. Chaque machine possède la clé publique du serveur/contrôleur, en particulier codée dans le programme dont le produit exécutable sert à la mise en œuvre de la machine. - The messages exchanged between the machines of the infrastructure and the server / controller are encrypted. To do this, each machine initially generates a random encryption key in an asymmetric protocol. Each machine has the public key of the server / controller, in particular coded in the program whose executable product is used for the implementation of the machine.
L'invention n'est pas limitée aux modes de réalisation décrits ci-avant, mais englobe toutes les variantes que pourra envisager l'homme de l'art. Des caractéristiques optionnelles, complémentaires, ou de remplacement, de la machine d'administration selon l'invention sont énoncés ci-après : The invention is not limited to the embodiments described above, but encompasses all the variants that may be considered by those skilled in the art. Optional, complementary or replacement characteristics of the administration machine according to the invention are set out below:
La fonction de recouvrement est en outre agencée pour, en réponse à un message comprenant une partie au moins d'un séquestre numérique, calculer, avec la valeur secrète résultante propre à la machine d'administration, une version chiffrée de cette partie du séquestre numérique, construire au moins un message comprenant cette version chiffrée de la partie du séquestre numérique, et, en réponse à au moins un message comprenant des versions chiffrées de la partie du séquestre numérique, calculées avec certaines au moins des valeurs secrètes résultantes propres aux machines d'administration homologues du groupe de machines d'administration, recouvrer le séquestre à l'aide de certaines au moins de ces versions chiffrées. The overlay function is further arranged to, in response to a message comprising at least a portion of a digital receiver, calculate, with the resulting secret value specific to the administration machine, an encrypted version of this portion of the digital receiver. construct at least one message including this encrypted version of the digital receiver portion, and, in response to at least one message including encrypted versions of the portion of the digital receiver, computed with at least some of the resulting secret values specific to the sequestration machines. administration machine group, recover the receiver using at least some of these encrypted versions.
- L'une au moins des premières valeurs secrètes, correspondant à une valeur entière correspondant à une machine d'administration homologue du groupe de machines d'administration, est comprise dans le ou les messages sous une forme chiffrée avec une valeur de clé publique correspondant à cette machine d'administration homologue. - At least one of the first secret values, corresponding to an integer value corresponding to a peer administration machine of the administration machine group, is included in the message or messages in encrypted form with a corresponding public key value to this counterpart administration machine.
- La fonction de recouvrement est agencée pour calculer, pour chaque machine d'administration homologue d'un sous-ensemble au moins du groupe de machines d'administration, une valeur de coefficient de Lagrange à partir des valeurs entières correspondant à la machine d'administration et aux machines d'administration homologues du sous-ensemble, et pour appliquer cette valeur de coefficient de Lagrange à la version chiffrée de la partie du séquestre numérique calculée avec la valeur secrète résultante propre à cette machine d'administration homologue. - The overlay function is arranged to calculate, for each homologous administration machine of at least a subset of the group of administration machines, a Lagrange coefficient value from the integer values corresponding to the machine of administration and to the subassembly homologous administration machines, and to apply this Lagrange coefficient value to the encrypted version of the portion of the digital sequester calculated with the resultant secret value specific to this counterpart administration machine.
- La fonction de recouvrement est en outre agencée pour traiter la partie du séquestre numérique à l'aide d'une valeur correspondant à la somme des versions chiffrées de la partie du séquestre numérique calculées respectivement avec les valeurs secrètes résultantes propres aux machines d'administration homologues dudit sous-ensemble, à chaque fois élevées à une puissance correspondant à une valeur respective de coefficient de Lagrange. - Le séquestre numérique résulte d'un chiffrement de type El Gamal, dont la clé publique correspond à un produit de clés publiques calculées chacune à l'aide d'une valeur entière respective correspondant aux machines d'administration homologues du groupe de machines d'administration. The recovery function is furthermore arranged to process the part of the digital receiver using a value corresponding to the sum of the encrypted versions of the portion of the digital receiver calculated respectively with the resulting secret values specific to the administration machines. counterparts of said subset, each time raised to a power corresponding to a respective value of Lagrange coefficient. The digital sequestration results from an El Gamal type encryption, the public key of which corresponds to a product of public keys each calculated with the aid of a corresponding integer value corresponding to the counterpart machine management machines of the group of machines. administration.

Claims

Revendications claims
1. Machine d'administration (32) pour un serveur de séquestres numériques (10) comprenant : An administration machine (32) for a digital receiver server (10) comprising:
- au moins une interface de communication (340) ; at least one communication interface (340);
- de la mémoire stockant (320) :  storing memory (320):
— une liste de valeurs entières correspondant chacune à une machine respective (32;34;36) d'un groupe de machines d'administration (30) du serveur de séquestres numériques (10),  A list of integer values each corresponding to a respective machine (32; 34; 36) of a group of administration machines (30) of the digital receiver server (10),
— un jeu de paramètres relatif à une fonction de chiffrement pour réaliser un séquestre ;  A set of parameters relating to an encryption function for carrying out a sequestration;
- un calculateur capable d'exécuter :  a calculator capable of executing:
~ une fonction polynomiale de degré inférieur ou égal au nombre de machines (32;34;36) du groupe de machines d'administration (30), la fonction polynomiale étant propre à la machine d'administration,  a polynomial function of degree less than or equal to the number of machines (32; 34; 36) of the group of administration machines (30), the polynomial function being specific to the administration machine,
— une fonction d'initialisation agencée pour :  An initialization function arranged for:
— appeler la fonction polynomiale avec chaque valeur entière de la liste pour obtenir une liste rangée de premières valeurs secrètes,  Call the polynomial function with each integer value of the list to obtain a row list of first secret values,
— construire au moins un message (ADM_SHAR) comprenant, pour chaque machine d'administration homologue (34;36) du groupe de machines d'administration (30), au moins la première valeur secrète correspondant à la valeur entière de cette machine d'administration homologue (34;36),  - constructing at least one message (ADM_SHAR) comprising, for each peer administration machine (34; 36) of the administration machine group (30), at least the first secret value corresponding to the integer value of that machine; peer administration (34; 36),
— en réponse à au moins un message (GET_DOM_CFG) comprenant, pour chaque machine d'administration homologue (34;36) du groupe de machines d'administration (30), au moins une seconde valeur secrète obtenue de l'appel de la fonction polynomiale de cette machine d'administration homologue (34;36) sur la valeur entière de la machine d'administration (32), construire une valeur secrète résultante propre à la machine d'administration (32) à partir des premières et secondes valeurs secrètes,  In response to at least one message (GET_DOM_CFG) comprising, for each peer administration machine (34; 36) of the administration machine group (30), at least one second secret value obtained from the call of the function polynomial of this peer administration machine (34; 36) on the integer value of the administration machine (32), constructing a resultant secret value specific to the administration machine (32) from the first and second secret values ,
— une fonction de recouvrement agencée pour traiter une partie au moins d'un séquestre numérique en utilisant la valeur secrète résultante propre à la machine d'administration (32) et des valeurs secrètes résultantes propres aux machines d'administration homologues (34;36) du groupe de machines d'administration (30). A recovery function arranged to process at least a portion of a digital receiver using the resulting secret value specific to the machine (32) and resulting secret values specific to the peer administration machines (34; 36) of the administration machine group (30).
2. Machine selon la revendication 1, dans laquelle la fonction de recouvrement est en outre agencée pour : 2. Machine according to claim 1, wherein the recovery function is further arranged for:
— en réponse à un message comprenant une partie au moins d'un séquestre numérique, calculer, avec la valeur secrète résultante propre à la machine d'administration (32), une version chiffrée de cette partie du séquestre numérique,  In response to a message comprising at least a portion of a digital receiver, calculating, with the resulting secret value specific to the administration machine (32), an encrypted version of this part of the digital receiver,
— construire au moins un message (ADM_SCRYPT_ESCRW) comprenant cette version chiffrée de la partie du séquestre numérique, et  Constructing at least one message (ADM_SCRYPT_ESCRW) including this encrypted version of the portion of the digital receiver, and
— en réponse à au moins un message (DOM_CFG_ADM) comprenant des versions chiffrées de la partie du séquestre numérique, calculées avec certaines au moins des valeurs secrètes résultantes propres aux machines d'administration homologues (34;36) du groupe de machines d'administration (30), recouvrer le séquestre à l'aide de certaines au moins de ces versions chiffrées.  In response to at least one message (DOM_CFG_ADM) comprising encrypted versions of the portion of the digital receiver, calculated with at least some of the resulting secret values specific to the peer administration machines (34; 36) of the administration machine group. (30), recover the receiver using at least some of those encrypted versions.
3. Machine selon l'une des revendications 1 et 2, dans laquelle la fonction d'initialisation est agencée pour : 3. Machine according to one of claims 1 and 2, wherein the initialization function is arranged for:
— calculer une valeur de clé publique à partir d'une valeur constante de la fonction polynômiale, et  Calculate a public key value from a constant value of the polynomial function, and
— construire au moins un message (DOM_CFG_CLT) comprenant cette valeur de clé publique.  - construct at least one message (DOM_CFG_CLT) including this public key value.
4. Machine selon l'une des revendications précédentes, dans laquelle l'une au moins des premières valeurs secrètes, correspondant à une valeur entière correspondant à une machine d'administration homologue (34;36) du groupe de machines d'administration (30), est comprise dans le ou les messages (ADM_SHAR;GET_DOM_CFG) sous une forme chiffrée avec une valeur de clé publique correspondant à cette machine d'administration homologue (34;36). 4. Machine according to one of the preceding claims, wherein at least one of the first secret values, corresponding to an integer value corresponding to a homologous administration machine (34; 36) of the group of administration machines (30). ), is included in the message (s) (ADM_SHAR; GET_DOM_CFG) in an encrypted form with a public key value corresponding to that peer machine (34; 36).
5. Machine selon l'une des revendications précédentes, dans laquelle la fonction de recouvrement est agencée pour traiter la partie du séquestre numérique qui correspond à une valeur alpha d'un chiffrement de type El Gamal. 5. Machine according to one of the preceding claims, wherein the recovery function is arranged to process the part of the digital receiver which corresponds to an alpha value of El Gamal type encryption.
6. Machine selon l'une des revendications précédentes, dans laquelle la fonction de recouvrement est agencée pour calculer, pour chaque machine d'administration homologue (34;36) d'un sous-ensemble (32;34) au moins du groupe de machines d'administration (30), une valeur de coefficient de Lagrange à partir des valeurs entières correspondant à la machine d'administration et aux machines d'administration homologues (34;36) du sous-ensemble (32;34), et pour appliquer cette valeur de coefficient de Lagrange à la version chiffrée de la partie du séquestre numérique calculée avec la valeur secrète résultante propre à cette machine d'administration homologue (34;36). 6. Machine according to one of the preceding claims, wherein the overlap function is arranged to calculate, for each homologous administration machine (34; 36) of a subset (32; 34) at least of the group of administration machines (30), a Lagrange coefficient value from the integer values corresponding to the administration machine and the counterpart administration machines (34; 36) of the subassembly (32; 34), and for applying this Lagrange coefficient value to the encrypted version of the portion of the computed digital receiver with the resulting secret value specific to that peer machine (34; 36).
7. Machine selon la revendication 6, dans laquelle la fonction de recouvrement est en outre agencée pour traiter la partie du séquestre numérique à l'aide d'une valeur correspondant à la somme des versions chiffrées de la partie du séquestre numérique calculées respectivement avec les valeurs secrètes résultantes propres aux machines d'administration homologues (34;36) dudit sous-ensemble (32;34), à chaque fois élevées à une puissance correspondant à une valeur respective de coefficient de Lagrange. 7. Machine according to claim 6, wherein the recovery function is further arranged to process the part of the digital receiver using a value corresponding to the sum of the numerical versions of the part of the digital receiver calculated respectively with the resulting secret values specific to the counterpart administration machines (34; 36) of said subset (32; 34), each raised to a power corresponding to a respective value of Lagrange coefficient.
8. Machine selon l'une des revendications précédentes, dans laquelle le séquestre numérique résulte d'un chiffrement de type El Gamal, dont la clé publique correspond à un produit de clés publiques calculées chacune à l'aide d'une valeur entière respective correspondant aux machines d'administration homologues (34;36) du groupe de machines d'administration (30). 8. Machine according to one of the preceding claims, wherein the digital sequester results from an El Gamal type of encryption, whose public key corresponds to a product of public keys each calculated using a corresponding respective integer value. to the counterpart administration machines (34; 36) of the administration machine group (30).
9. Machine selon l'une des revendications précédentes, comprenant une fonction de génération aléatoire de nombres, dans laquelle la fonction d'initialisation est agencée pour appeler répétitivement la fonction de génération aléatoire de nombres pour établir certains au moins des coefficients de la fonction polynomiale, préalablement à l'appel de cette dernière. 9. Machine according to one of the preceding claims, comprising a random number generation function, wherein the initialization function is arranged to repeatedly call the random number generation function to establish at least some of the coefficients of the polynomial function. , before the call of the latter.
10. Machine selon l'une des revendications précédentes, dans laquelle la fonction polynomiale présente un degré inférieur au nombre de machines (32;34;36) du groupe de machines d'administration (30). 10. Machine according to one of the preceding claims, wherein the polynomial function has a degree lower than the number of machines (32; 34; 36) of the group of administration machines (30).
11. Infrastructure d'échange et de traitement de séquestres numériques comprenant un serveur de séquestres (10) et un groupe de machines d'administration (30) comprenant au moins deux machines d'administration selon l'une des revendications précédentes pour le serveur de séquestres, les deux machines d'administration (32;34;36) étant homologues l'une de l'autre. A digital escrow exchange and processing infrastructure comprising an escrow server (10) and a group of administration machines (30) comprising at least two management machines according to one of the preceding claims for the server sequestra, the two administration machines (32; 34; 36) being homologous to one another.
12. Infrastructure selon la revendication 11, dans laquelle une valeur de clé publique pour le dépôt de séquestres numériques résulte de valeurs de clés publiques correspondant chacune à une valeur entière correspondant à une machine d'administration (32;34;36) respective du groupe de machines d'administration (30). The infrastructure of claim 11, wherein a public key value for the digital receivers deposit results from public key values each corresponding to an integer value corresponding to a respective administration machine (32; 34; 36) of the group. administration machines (30).
13. Infrastructure selon l'une des revendications 1 1 et 12 comprenant une machine cliente (40) comprenant au moins une interface de communication (440), de la mémoire (420) stockant au moins une donnée numérique secrète, et un calculateur capable d'exécuter une fonction de chiffrement agencée pour générer aléatoirement une clé locale et pour chiffrer symétriquement la donnée numérique secrète en utilisant la clé locale. 13. Infrastructure according to one of claims 1 1 and 12 comprising a client machine (40) comprising at least one communication interface (440), the memory (420) storing at least one secret digital data, and a computer capable of executing an encryption function arranged to randomly generate a local key and to symmetrically encrypt the secret digital data using the local key.
14. Infrastructure selon la revendication 13, dans laquelle la machine cliente (40) mémorise un jeu de paramètres relatif à un algorithme de chiffrement pour réaliser un séquestre et dans laquelle la fonction de chiffrement de la machine cliente (40) est agencée pour construire un message comprenant la clé locale chiffrée conforaiément audit jeu de paramètres. The infrastructure of claim 13, wherein the client machine (40) stores a set of parameters relating to an encryption algorithm to perform a sequester and wherein the encryption function of the client machine (40) is arranged to construct a message comprising the encrypted local key in accordance with said set of parameters.
15. Procédé d'administration d'un serveur de séquestres numériques comprenant : 15. A method of administering a digital receiver server comprising:
— sur chaque machine (32;34;36) d'un groupe de machines d'administration (30), appeler une fonction polynomiale respective de degré inférieur ou égal au nombre de machines du groupe de machines d'administration (30) avec chaque valeur d'une liste de valeurs entières correspondant chacune à une machine (32;34;36) respective du groupe de machines d'administration (30) pour obtenir une liste de valeurs secrètes, - on each machine (32; 34; 36) of a group of administration machines (30), to call a respective polynomial function of degree less than or equal to the number of machines of the administration machine group (30) with each value of a list of integer values each corresponding to a respective machine (32; 34; 36) of the administration machine group (30) to obtain a list of values secret,
— sur chaque machine (32;34;36) du groupe de machines d'administration (30), construire au moins un message comprenant au moins une valeur secrète correspondant à la valeur entière d'une machine (32;34;36) d'administration destinataire,  - on each machine (32; 34; 36) of the administration machine group (30), constructing at least one message including at least one secret value corresponding to the integer value of a machine (32; 34; 36) d administration,
— sur chaque machine (32;34;36) du groupe de machines d'administration (30), construire une valeur secrète résultante propre à cette machine (32;34;36) à partir des valeurs secrètes calculées, par les autres machines (32;34;36) du groupe de machines d'administration (30), pour la valeur entière correspondant à la machine d'administration (32;34;36),  - on each machine (32; 34; 36) of the group of administration machines (30), constructing a resultant secret value specific to this machine (32; 34; 36) from the calculated secret values by the other machines ( 32; 34; 36) of the administration machine group (30) for the integer value corresponding to the administration machine (32; 34; 36),
~ sur certaines au moins des machines (32;34;36) du groupe de machines d'administration (30). déchiffrer un séquestre numérique en utilisant cette valeur secrète résultante et les valeurs secrètes résultantes de machines d'administration homologues (32;34;36).  ~ on at least some of the machines (32; 34; 36) of the administration machine group (30). decrypting a digital sequester using this resulting secret value and the resulting secret values of peer administration machines (32; 34; 36).
16. Produit de programme informatique susceptible de coopérer avec une unité centrale d'ordinateur pour constituer une machine d'administration selon l'une des revendications 1 à 10. 16. Computer program product capable of cooperating with a central computer unit to constitute a delivery machine according to one of claims 1 to 10.
EP16710269.8A 2015-03-04 2016-03-04 Device and method for administering a digital escrow server Active EP3266148B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1551830A FR3033466B1 (en) 2015-03-04 2015-03-04 DEVICE AND METHOD FOR ADMINISTERING A SERVER OF DIGITAL SEQUESTERS
PCT/FR2016/050503 WO2016139435A1 (en) 2015-03-04 2016-03-04 Device and method for administering a digital escrow server

Publications (2)

Publication Number Publication Date
EP3266148A1 true EP3266148A1 (en) 2018-01-10
EP3266148B1 EP3266148B1 (en) 2018-12-12

Family

ID=55129938

Family Applications (1)

Application Number Title Priority Date Filing Date
EP16710269.8A Active EP3266148B1 (en) 2015-03-04 2016-03-04 Device and method for administering a digital escrow server

Country Status (4)

Country Link
US (1) US10439810B2 (en)
EP (1) EP3266148B1 (en)
FR (1) FR3033466B1 (en)
WO (1) WO2016139435A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10756896B2 (en) * 2018-10-12 2020-08-25 Jeff Pickhardt Trustless account recovery

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2331442C (en) * 1998-05-22 2009-10-13 Certco Incorporated Robust efficient distributed rsa-key generation
US7349538B2 (en) * 2002-03-21 2008-03-25 Ntt Docomo Inc. Hierarchical identity-based encryption and signature schemes
DE102014204044A1 (en) * 2014-03-05 2015-09-10 Robert Bosch Gmbh Procedure for revoking a group of certificates

Also Published As

Publication number Publication date
US10439810B2 (en) 2019-10-08
EP3266148B1 (en) 2018-12-12
FR3033466B1 (en) 2017-02-17
WO2016139435A1 (en) 2016-09-09
FR3033466A1 (en) 2016-09-09
US20180131513A1 (en) 2018-05-10

Similar Documents

Publication Publication Date Title
EP2323306B1 (en) Secured data transmission method and encryption and decryption system enabling such a transmission
EP2673732B1 (en) Secure transaction method from a non-secure terminal
US20160337124A1 (en) Secure backup and recovery system for private sensitive data
EP2153613A2 (en) Method for securing information exchange, and corresponding device and computer software product
CN102318262A (en) trusted cloud computing and service framework
EP2213038A1 (en) Information system and method of identifying a user by an application server
CN104168320B (en) The method and system that a kind of user data is shared
EP2517397A1 (en) Encryption and decryption method
EP3724799A1 (en) Technique for protecting a cryptographic key by means of a user password
EP3758322A1 (en) Method and system for generating encryption keys for transaction or connection data
EP3266148B1 (en) Device and method for administering a digital escrow server
EP2622785A1 (en) System for exchanging data between at least one sender and one receiver
EP3673633B1 (en) Method for authenticating a user with an authentication server
EP4024239A1 (en) Method and system for storing and sharing data
FR2913153A1 (en) Identity based cryptographic method for encrypting and decrypting electronic message, involves encrypting electronic message using symmetric encryption key in transmitting entity, and diffusing cryptogram and encrypted message from entity
FR3121243A1 (en) Management of access rights to digital files with possible delegation of rights
EP1642413B1 (en) Method for encoding/decoding a message and associated device
EP2409474A1 (en) Method for generating security data, and corresponding device and computer program
Ekong et al. Hybridized Cryptography and Cloud Folder Model (CFM) for Secure Cloud-Based Storage
WO2021156078A1 (en) Method and device for evaluating the correspondence of structured data sets protected by encryption
FR3148102A1 (en) A secure method of backing up and restoring data in a device
Wang Improved group key transfer protocols from the protocol of Harn et al.
FR2985626A1 (en) Method for transmission of confidential data divided into segments to e.g. fixed terminals, in network gaming field, involves decoding segments actually transmitted by error correction code to find value of segments of data
FR3034551A1 (en) METHOD FOR OBTAINING A LIST OF AT LEAST ONE SENSITIVE DATA

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20170905

AK Designated contracting states

Kind code of ref document: A1

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

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

RIC1 Information provided on ipc code assigned before grant

Ipc: H04L 9/08 20060101AFI20180611BHEP

Ipc: H04L 29/06 20060101ALI20180611BHEP

Ipc: H04L 9/32 20060101ALI20180611BHEP

INTG Intention to grant announced

Effective date: 20180628

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

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

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 1077423

Country of ref document: AT

Kind code of ref document: T

Effective date: 20181215

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602016008194

Country of ref document: DE

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

Free format text: LANGUAGE OF EP DOCUMENT: FRENCH

REG Reference to a national code

Ref country code: NL

Ref legal event code: FP

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190312

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190312

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1077423

Country of ref document: AT

Kind code of ref document: T

Effective date: 20181212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190313

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190412

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190412

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602016008194

Country of ref document: DE

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

REG Reference to a national code

Ref country code: LU

Ref legal event code: PD

Owner name: CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE - CN

Free format text: FORMER OWNER: INRIA - INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE

Effective date: 20191021

26N No opposition filed

Effective date: 20190913

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20190331

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

Free format text: REGISTERED BETWEEN 20191205 AND 20191211

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190331

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190304

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190331

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190331

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602016008194

Country of ref document: DE

Representative=s name: ZIMMERMANN & PARTNER PATENTANWAELTE MBB, DE

Ref country code: DE

Ref legal event code: R081

Ref document number: 602016008194

Country of ref document: DE

Owner name: LE CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQU, FR

Free format text: FORMER OWNER: INRIA - INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE, LE CHESNAY, FR

Ref country code: DE

Ref legal event code: R081

Ref document number: 602016008194

Country of ref document: DE

Owner name: INRIA - INSTITUT NATIONAL DE RECHERCHE EN INFO, FR

Free format text: FORMER OWNER: INRIA - INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE, LE CHESNAY, FR

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20160304

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181212

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 20240325

Year of fee payment: 9

Ref country code: LU

Payment date: 20240325

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20240326

Year of fee payment: 9

Ref country code: GB

Payment date: 20240327

Year of fee payment: 9

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20240325

Year of fee payment: 9