Authentication process

Neural networks are used to enhance the security and reliability of electronic device authentication by recognizing features, classifying data, and generating random data, addressing vulnerabilities in existing authentication methods.

FR3164040A1Pending Publication Date: 2026-01-02STMICROELECTRONICS INT NV
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
FR2024007028
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-28
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

Existing authentication methods in electronic circuits and devices lack security and reliability, making them vulnerable to unauthorized access and data breaches.

Method used

Implementing neural networks for authentication processes to enhance security by recognizing features, classifying data, extracting hidden data, and generating random data to verify device authenticity.

Benefits of technology

Enhances the security and reliability of authentication processes by using neural networks to improve the detection of unauthorized devices and protect against malicious access.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Authentication Method This description concerns an authentication method (200) of a first device (P) to a second device (V), comprising the following successive steps: - Sending, by said second device (V), to said first device (P), at least one first piece of data (Chall200); - Using, by said first device (P), a first neural network to provide a second piece of data (Rsp200) from said at least one first piece of data (Chall200); - Sending, by said first device, said second piece of data (Rsp200) to said second device (V). Figure for the abstract: Fig. 2
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Authentication method technical field

[0001] This description relates generally to electronic circuits and devices, and more particularly to the security of electronic circuits and devices. More specifically, this description relates to the implementation of an authentication method enabling, for example, several electronic devices to initiate reliable communication. Previous technique

[0002] Communication between two electronic devices, or circuits, is often preceded by an authentication phase. During this phase, an authentication process, implemented by both devices, verifies whether the two devices are authorized to communicate with each other.

[0003] Authentication methods are often used during communication between a terminal device and a peripheral device or piece of electronic equipment, such as a consumable or accessory. In this case, the authentication method can validate the peripheral device's access to the data and / or functionalities of the terminal device. The authentication method is a first line of defense against malicious devices attempting to access data and / or functionalities of other devices.

[0004] It would be desirable to be able to improve, at least in part, the known authentication methods. Summary of the invention

[0005] There is a need for increasingly secure authentication processes, enabling more reliable authentication of one circuit or electronic device with another circuit or electronic device.

[0006] There is a need for electronic circuits and devices implementing more secure authentication processes.

[0007] An embodiment overcomes all or part of the drawbacks of known authentication methods, and of circuits or devices implementing such methods.

[0008] One embodiment provides for the use of neural networks for the implementation of an authentication process.

[0009] One embodiment provides circuits and devices adapted to implement neural networks to execute such authentication processes.

[0010] One embodiment provides neural network learning methods adapted to the implementation of such authentication methods.

[0011] One embodiment provides, in particular, for the use of neural networks to recognize the presence of a feature in data.

[0012] Another embodiment provides, in particular, for the use of neural networks to classify data into one of several categories.

[0013] Another embodiment provides, in particular, for the use of neural networks to extract data hidden in other data.

[0014] Another embodiment provides, in particular, for the use of neural networks enabling the generation of random data.

[0015] One embodiment provides for a method of authenticating a first device with a second device, comprising the following successive steps: - Sending, by said second device, to said first device, at least one first piece of data; - To use, by the said first device, a first neural network to provide a second piece of data from the said at least one first piece of data; - Send, via the said first device, the said second data to the said second device.

[0016] Another embodiment provides for an electronic device adapted to be the first electronic device in the process of authenticating the first device with a second device, comprising the following successive steps: - Sending, by said second device, to said first device, at least one first piece of data; - To use, by the said first device, a first neural network to provide a second piece of data from the said at least one first piece of data; - Send, via the said first device, the said second data to the said second device.

[0017] Another embodiment provides for an electronic device adapted to be the second electronic device in the process of authenticating a first device with the second device, comprising the following successive steps: - Sending, by said second device, to said first device, at least one first piece of data; - To use, by the said first device, a first neural network to provide a second piece of data from the said at least one first piece of data; - Send, via the said first device, the said second data to the said second device.

[0018] According to one embodiment, said first neural network is adapted to recognize the presence of a feature in said at least one first piece of data, and said second data is a binary data indicating whether said characteristic is recognized or not.

[0019] According to one embodiment, said at least one first data is chosen by a first group comprising third data pre-processed by said first neural network.

[0020] According to one embodiment, said at least one first data point is chosen by a second group comprising fourth data points pre-processed by said first neural network, said second group satisfying the following mathematical formula: [Math 1] dist(VO, V'O) = dis! ~ dist in which: - V0 and V'O are pre-processed data leading to the first value of the output data; - VI and V'1 are pre-processed data leading to the second value of the output data; - dist is a function that calculates a distance in a multidimensional space containing the data V0, V'0, VI, and V'1; and - ~ is a symbol representing a relative equality of the type "of the order of".

[0021] According to one embodiment, said first neural network is adapted to classify said at least one first data point according to at least three categories, and said second data point indicating which category said at least one first data point belongs to.

[0022] According to one embodiment, said second data has been hidden in said at least one first data, and said first neural network is adapted to extract the second piece of data from said at least one first piece of data.

[0023] According to one embodiment, said second data was hidden in said at least one first data using at least one steganography technique implemented by a second neural network.

[0024] According to one embodiment, said first neural network is adapted to generate said second data randomly from at least two first data comprising a fifth generation data and at least a sixth context data.

[0025] According to one embodiment, said first device sends, in addition to said second data, at least one seventh context data different from the sixth context data, said second device being adapted to generate an eighth piece of data randomly using said fifth generation data and said at least a seventh piece of context data, said second device using the second data and the eighth data to verify whether the first device is authenticated or not with the second device.

[0026] According to one embodiment, the method further includes a step of verifying said second data by said second device allowing to indicate whether the first device is authenticated or not with the second device.

[0027] According to one embodiment, the method further includes a step of verifying the number of times that a first specific data point is provided to the first device.

[0028] According to one embodiment, the method further comprises a step of verifying the response time of the first device, implemented by said second device.

[0029] According to one embodiment, the method further includes a step of encrypting the second data before sending it to the second device.

[0030] Another embodiment provides for a method of learning a neural network of a first device for the implementation of an authentication method described above.

[0031] Another embodiment provides for a system comprising a device described above and a device described above.

[0032] Another embodiment provides for a computer program product comprising program code instructions for executing the steps of the process described above as being said first device, when said program is executed on a computer.

[0033] Another embodiment provides a computer program product comprising program code instructions for executing the steps of the process described above as being said second device, when said program is executed on a computer. Brief description of the drawings

[0034] These features and advantages, as well as others, will be described in detail in the following description of particular embodiments, given by way of non-limiting example, in relation to the accompanying figures, among which:

[0035] [Fig.1] represents an example of an electronic device adapted to implement the methods of implementation of authentication processes described in relation to Figures 2 to 17;

[0036] [Fig.2] represents a block diagram illustrating a method of implementing a process for authenticating a first device with a second device;

[0037] [Fig.3] represents a block diagram illustrating a method of implementing a process for preparing the authentication process of [Fig.2];

[0038] [Fig.4] represents a block diagram illustrating another way of implementing a process for authenticating a first device with a second device;

[0039] [Fig.5] represents a block diagram illustrating a method of implementing a process for preparing the authentication process of [Fig.4];

[0040] [Fig.6] represents, very schematically, the implementation of a neural network;

[0041] [Fig.7] represents a block diagram illustrating another way of implementing a process for authenticating a first device with a second device;

[0042] [Fig.8] represents a block diagram illustrating a method of implementing a process for preparing the authentication process of [Fig.7];

[0043] [Fig.9] represents a block diagram illustrating another way of implementing a process for authenticating a first device with a second device;

[0044] [Fig. 10] represents a block diagram illustrating the implementation of a steganography technique;

[0045] [Fig.1 1] represents a block diagram illustrating a method of implementing a process for preparing the authentication process of [Fig.9];

[0046] [Fig. 12] represents a block diagram illustrating another way of implementing a method for preparing the authentication process of [Fig. 9];

[0047] [Fig. 13] represents a block diagram illustrating another way of implementing a process for authenticating a first device with a second device;

[0048] [Fig. 14] represents a block diagram illustrating a method of implementing a process for preparing the authentication process of [Fig. 13];

[0049] [Fig. 15] represents a block diagram illustrating the generation of random numbers using two neural networks.

[0050] [Fig. 16] represents a block diagram illustrating another way of implementing a process for authenticating a first device with a second device;

[0051] [Fig. 17] represents a block diagram illustrating a method of implementing a process for preparing the authentication process of [Fig. 15]. Description of the implementation methods

[0052] The same elements have been designated by the same reference numerals in the different figures. In particular, the structural and / or functional elements common to the different embodiments may have the same reference numerals and may have identical structural, dimensional and material properties.

[0053] For the sake of clarity, only the steps and elements useful for understanding the described embodiments have been represented and are detailed.

[0054] Unless otherwise specified, when referring to two elements connected together, this means directly connected without intermediate elements other than conductors, and when referring to two elements coupled together, this means that these two elements can be connected or linked through one or more other elements.

[0055] In the following description, when reference is made to absolute position qualifiers, such as the terms "front", "back", "top", "bottom", "left", "right", etc., or relative position qualifiers, such as the terms "above", "below", "superior", "inferior", etc., or to orientation qualifiers, such as the terms "horizontal", "vertical", etc., reference is made, unless otherwise specified, to the orientation of the figures.

[0056] Unless otherwise specified, the expressions "approximately", "roughly", and "in the order of" mean within 10%, preferably within 5%.

[0057] The embodiments described below relate to the implementation of an authentication method for authenticating a first electronic device with a second electronic device, for example, for the purpose of future communication between these first and second devices. More specifically, these embodiments are Verifier / Prover type authentication methods, also called Verifier / Candidate type, in which a verifying device, here the second device, sends data to the proving device, here the first device, so that the latter can apply a transformation. The proving device then sends the result of this transformation back to the verifying device for verification. If the result of the verification is correct, then the proving device is authenticated with the verifying device.

[0058] An authentication system is an electronic system comprising a verification device and a proving device.

[0059] The embodiments described below relate more specifically to the implementation of an authentication process using at least one neural network. More precisely, this refers to a Verifier / Prover type authentication process in which the proving device uses a neural network to provide the result data intended for the verifying device. For this purpose, the proving device can use any type of neural network. Four specific types of neural networks that can be used are detailed below. The first type is a neural network trained to check whether a particular characteristic is present in a data point or not. The second type is a neural network trained to classify a data point according to several categories. The third type is a neural network trained to extract hidden data from another data point. A fourth type is a neural network trained to generate random or pseudo-random data. These embodiments are described in detail with reference to Figures 2 to 17.

[0060] Furthermore, the embodiments described above are particularly suitable for use in any type of industrial market where authentication between two electronic devices is required. More specifically, such an authentication method may be intended for: - the automotive industry, for example in the field of automotive electrification or in the field of Advanced Driver Assistance Systems (ADAS); - the industrial industry, for example in the field of green energy, in the field of infrastructure electrification, the Internet of Things (IoT) and Smart Homes, where electricity and energy consumption and data exchange are key elements; - the personal electronics industry, for example in the field of mobile telephony and the Internet of Things (IoT), as well as in the field of broadband interfaces; and - the communications equipment, computer and peripherals industry, for example in the field of infrastructure and data centers, and in the field of low Earth Orbit (LEO) satellites.

[0061] Furthermore, the embodiments described below are particularly well-suited to any type of system in which two electronic devices need to communicate with each other reliably. Such a system may be, for example, a system comprising a terminal device and a portable device, or a system comprising a terminal device and a consumable device. Another example is a system comprising two electronic devices formed on the same chip and requiring reliable communication.

[0062] Figure 1 is a block diagram representing, very schematically, the architecture of an example of an electronic device 100 adapted to implement an authentication process according to one embodiment. The device 100 can be, interchangeably, a verification device and / or a proving device for said authentication process. The device 100 can even constitute an authentication system by itself, comprising both the verification device and the proving device.

[0063] According to one example, the electronic device 100 includes a processor 101 (CPU) adapted to perform various data processing operations on data stored in memories and / or provided by other circuits of the device 100. According to a In this embodiment, the 101 processor is adapted to implement an authentication process, and / or one or more neural networks.

[0064] According to one example, the electronic device 100 further comprises different types of memory 102 (MEM), including, for example, non-volatile memory, volatile memory, and / or read-only memory. Each memory 102 can be adapted to store different types of data.

[0065] In one example, the electronic device 100 further comprises a secure element 103 (SE) adapted to process sensitive and / or secret data. The secure element 103 may include its own processor(s), its own memory(ies), etc. In one embodiment, the secure element 101 is adapted to implement an authentication process and / or one or more neural networks.

[0066] In one example, the electronic device 100 may further include interface circuits 104 (IN / OUT) adapted to send and / or receive data from outside the device 100. The interface circuits 104 may also be adapted to implement a data display, for example, a display screen. In one embodiment, the interface circuits 104 are adapted to implement an authentication method, and / or one or more neural networks.

[0067] According to one example, the electronic device 100 further comprises various circuits 105 (FCT1) and 106 (FCT2) adapted to perform different functions. By way of example, circuits 105 and 106 may include measurement circuits, data conversion circuits, etc. According to one embodiment, circuits 105 and 106 may include one or more circuits adapted to implement an authentication process and / or one or more neural networks. According to a particular embodiment, circuits 105 may include measurement circuits, analog-to-digital converters, calculation circuits, etc.

[0068] According to one example, the electronic device 100 further comprises one or more data buses 107 adapted to transfer data between its different components.

[0069] According to one embodiment, an authentication system comprising two devices of the type of device 100 can be adapted to implement one of the authentication processes according to an embodiment described below.

[0070] According to a particular embodiment, the electronic device 100 may be a complex electronic device, such as a computer, comprising means or program code instructions enabling the implementation of the implementation methods of the authentication process described below, when said program is executed on a computer.

[0071] Figure 2 is a block diagram illustrating an implementation method of an authentication process 200 for authenticating a first electronic device P, also called proving device P, alongside a second electronic device V, also called verifying device V. In other words, the authentication process 200 is adapted to be implemented by an authentication system comprising devices P and V. According to one embodiment, devices P and V are of the type of device 100 described in relation to [Fig.1].

[0072] As described previously, the authentication process 200 is a Verifier / Prover type process.

[0073] At an initial step 201 (Send Challenge), the authentication process 200 begins, for this the verifying device V selects a Chall200 data, also called Challenge Data, or challenge Chall200, to send it to the proving device P.

[0074] According to one embodiment, the data Chall200 is chosen from a finite group of data enabling the implementation of the authentication process 200. The data set from which the data Chall200 is defined in more detail in relation to [Fig.3].

[0075] According to one example, device V can use a secure communication channel to send the Chall200 data to device P.

[0076] At a step 202 (Receive Challenge), successive to step 201, the proving device P receives the data Chall200 and can begin to implement the authentication process on its side.

[0077] According to one example, in step 202, the device P can implement one or more verification steps for the data Chall200. According to one example, the device P can check the number of times it has already received a particular value of the data Chall200, and refuse to implement the authentication process if it has received the particular value too many times. According to another example, the device P can check the format of the data Chall200. An example of such a verification step is described in more detail in relation to [Fig. 4].

[0078] In a step 203 (Neural Networks), subsequent to step 202, the proving device P uses a neural network to provide, or to generate, a response data Rsp200 from the data Chall200. Specific examples of different neural network modes that can be used here are described below. The response data Rsp can take different forms depending on the use of the neural network.

[0079] At a step 204 (Send Response), device P sends the response data Rsp200 to device V.

[0080] According to one example, in step 202, device P can implement one or more encryption steps for the Rsp200 data before sending it to device V. According to one example, device P can send a signature of the Rsp200 data to device V. An example of such an encryption step is described in more detail in relation to [Fig.7].

[0081] According to one example, device P can use a secure communication channel to send the response data Rsp200 to device V.

[0082] At a step 205 (Receive Response), successive to step 204, the verifying device V receives the response data from the proving device P.

[0083] According to one example, the verification device V can implement one or more verification steps and one or more steps for decrypting the response data Rsp200.

[0084] According to another example, the checking device V can, in addition, check the response time of the proving device P. Such a step is described in more detail in relation to [Fig.4].

[0085] At a step 206 (Verify), the verifying device V uses the response data Rsp200 to conclude on the authentication, or not, of the proving device P. According to one embodiment, the device V can use a mathematical verification function, for example a comparison function, or a mathematical verification function implemented by a neural network.

[0086] Fig. 3 is a block diagram illustrating an implementation method of a process 300 for preparing the authentication process 200 described in relation to Fig. 2.

[0087] In general, the method 300 comprises a method for training the neural network used by the device P, and a method for generating a data set from which the data Chall200 is selected. The method 300 further comprises the preparation of the devices V and P.

[0088] In an initial step 301 (Prepared Data), a set of data suitable for use as training data for the neural network of device P is generated. For example, this data set can be an existing data set or a data set generated for the authentication process 200.

[0089] In another initial step 302 (Select Model), a neural network model is chosen from among the various existing neural network models. This step may, in addition, include a calculation of the adaptive parameters, also called weights, defining the neural network.

[0090] At a step 303 (Train Model), successive to steps 301 and / or 302, the neural network model defined in step 302 is trained using the data from the data group generated in step 301. According to an example, the data group from step 301 can be consolidated following this training.

[0091] At step 304 (Pick Challenge Sets), data are selected to form a dataset used to implement the authentication process 200. For this purpose, data can be generated in the same way as the data of step 301, and / or data may be selected from the group generated in step 301, and, if necessary, consolidated in step 303. In one embodiment, the data group formed in step 304 comprises less data, or in rare cases the same number of data, as the data group generated in step 301.

[0092] According to one variant, the dataset is formed by applying one or more operations to data from the data group of step 301.

[0093] At a step 305 (Verify), the data set defined in step 304 is loaded, stored, in the device V so that it can be used to implement the authentication process 200.

[0094] At a step 306 (Implement Model), the neural network has finished being trained, it can then be implemented in a circuit or an electronic device.

[0095] At a step 307 (Prover), the prover device P is equipped with the circuit or device in which said neural network is implanted.

[0096] Thus, a learning process for the neural network of device P in [Fig.2] comprises the following steps: - a training data set suitable for use in the authentication process 200 is generated; - a neural network model is chosen; - said neural network model is trained using the data from said data set; and - Optionally, said data group is consolidated during the implementation of the model training.

[0097] Fig. 4 is a block diagram illustrating a first example of an implementation method of an authentication process 400 allowing the proving device P to be authenticated with the verifying device V, both defined in relation to Fig. 2.

[0098] The authentication method 400 is a Verifier / Prover type method of the authentication method 200 described in relation to [Fig. 2]. The elements common to methods 200 and 400 are not described again in detail here. Only the differences between these methods are highlighted.

[0099] As previously stated, the authentication process 200 uses a neural network, implemented by the proving device P. In the authentication process 400, this neural network is adapted to recognize the presence or absence of a feature in a piece of data, and to provide data indicating this presence or absence. For example, if the data is an image, the feature could be the presence or absence of a particular object or animal in that image. Such a neural network can also be called a classifier.

[0100] At an initial step 401 (Send Challenge), the authentication process 400 begins, for this the verifying device V selects a Chall400 data to send it to the proving device P.

[0101] According to one embodiment, the data Chall400 is chosen from a finite group of data allowing the implementation of the authentication process 400. Examples of data sets from which the data Chall400 is chosen are defined in more detail in relation to Figures 5 and 6.

[0102] In addition, each Chall400 data in the data group is associated with a Chall400Rsp response data representing the value that device P must provide to device V to be authenticated.

[0103] At a 402 step (Receive Challenge), subsequent to the 401 step, the proving device P receives the Chall400 data and can begin to implement the authentication process on its side.

[0104] At a 403 (Cnt Challenge) step, device P can check whether the Chall400 data has already been sent to it too many times. More specifically, within the implementation of process 400, for each data value received from another device, device P increments a counter. When the value of this counter reaches a limit, a subsequent step is a 404 (Fail) step where device P considers that process 400 has failed. As an example, at step 404, device P can send data indicating that the process has been abandoned to device V.

[0105] If the counter value does not exceed the limit value, the next step is a 405 (Neural Networks Classifier) ​​step.

[0106] In step 405, following step 403, the proving device P uses a neural network to provide, or to generate, a response data Rsp400 from the data Chall400. The response data Rsp400 is a binary data representing a bit indicating the presence or absence of a feature in the data Chall400. Thus, according to one embodiment, the response data Rsp400 can only take two values, a first value indicating the presence of the feature, and a second value indicating the absence of this feature.

[0107] At a step 406 (Send Response), device P sends the response data Rsp400 to device V.

[0108] In a step 407 (Timer) implemented following step 401, device V checks the response time of device P. To do this, as soon as the data Chall400 is sent, device V starts a timer which it stops either when it receives the data Rsp400 or when the timer value reaches a limit value. When the value of this timer reaches a limit value, a subsequent step is a step 408 (Fail) where device V considers that process 400 has failed.

[0109] If device V receives the data Rsp400 before the timer reaches the limit value, the next step is a 409 (Receive Response) step.

[0110] At step 409, following step 404, the verifying device V receives the response data from the proving device P.

[0111] At a step 410 (Verify), the verifying device V uses the response data Rsp400 to determine whether or not the proving device P is authenticated. To do this, the device V can, for example, compare the response data Rsp400 with the response data Chall400Rsp. According to another example, at this step the device V implements a verification function taking as input the data Rsp400, the data Chall400, and / or Chall400Rsp.

[0112] One advantage of this embodiment is that it allows the use of neural networks already known in the literature.

[0113] Fig. 5 is a block diagram illustrating an implementation method of a process 500 for preparing the authentication process 400 described in relation to Fig. 4.

[0114] In general, method 500 comprises a method for training the neural network used by device P, and a method for generating a data set from which data Chall400 is selected. Method 500 further comprises the preparation of devices V and P.

[0115] In an initial step 501 (Prepared Data), a set of data suitable for use as training data for the neural network of device P is generated. For example, this data set can be an existing data set or a data set generated for the authentication process 400.

[0116] In another initial step 502 (Select Model), a neural network model enabling the detection of a feature of a data point is chosen from among the various existing neural network models. This step may, in addition, include a calculation of the adaptive parameters, also called weights, defining the neural network.

[0117] At a step 503 (Train Model), successive to steps 501 and / or 502, the neural network model defined in step 502 is trained using the data from the data group generated in step 501. According to an example, the data group from step 501 can be consolidated following this training; this example is detailed in relation to [Fig. 6].

[0118] At a 504 step (Pick Challenge Sets), data is selected to form a dataset used to implement the 400 authentication process. For this purpose, data may be generated in the same way as the data in 501 step, and / or data may be selected from the group generated in 501 and, if necessary, consolidated in 503 step. In one embodiment, the group the data group formed in step 504 includes less data, or in rare cases the same amount of data, than the data group generated in step 501.

[0119] At a step 505 (Verify), the dataset defined in step 504 is loaded, stored, in the device V so that it can be used to implement the authentication process 400.

[0120] At a step 506 (Implement Model), the neural network has finished being trained, it can then be implemented in a circuit or an electronic device.

[0121] At a step 507 (Prover), the prover device P is equipped with the circuit or device in which said neural network is implanted.

[0122] Thus, a learning process for the neural network of device P in [Fig.4] comprises the following steps: - a training data set suitable for use in the 400 authentication process is generated; - a neural network model is chosen; - said neural network model is trained using the data from said data set; and - Optionally, said data group is consolidated during the implementation of the model training.

[0123] Fig. 6 represents, very schematically, the implementation of a neural network 600 of the type of neural network used by device P in process 400 described in relation to al [Fig. 1].

[0124] The neural network 600 is adapted to receive input data IN600 and to provide output data OUT600.

[0125] The IN600 input data is raw data that may include several parameters and / or sub-data. By way of example, the IN600 input data may be data comprising several data bits, a set of binary data, a data vector, an image comprising several pixels, etc.

[0126] The output data OUT600 is a data representing a data bit, that is, a data whose value can only take two values, such as TRUE and FALSE. This is the case here because the 600 neural network allows verification of the presence or absence of a feature in the input data IN600. Thus, a first value that the output data OUT600 can take indicates the presence of said feature, and a second value that the output data OUT600 can take indicates the absence of said feature.

[0127] To provide the output data OUT600, the neural network 600 performs several processing steps on the input data IN600. More specifically, the neural network 600 includes a first set of processing steps 601, also called pre processes 601, allowing the preparation of the input data IN600, and a second set of processes 602 allowing the provision of the output data OUT600.

[0128] The first processing set 601 provides preprocessed EMB600 data to the second processing set 602. This preprocessed EMB600 data is also called embedding. For example, the processing in set 601 adapts the format of the input data IN600, reduces noise in the input data IN600, highlights important elements of the input data IN600, and so on. In other words, the processing in set 601 provides set 602 with standardized preprocessed EMB600 data, which is suitable for use as is by the neural network 600 to make a decision. Such pre-processed EMB6000 data is also called by the English term "embeddings" which is defined in the literature as a low-dimensional "continuous" encoding, for example a vector of real numbers, representing discrete data, most often obtained during a learning phase.An "embedding", which can also constitute a continuous dataset, is better suited to manipulation and processing by neural networks.

[0129] The second processing set 602 allows the output data OUT600 to be generated from the EMB600 input. In other words, the processing elements of set 602 are the layers of the neural network 600 adapted to effectively recognize the presence, or absence, of the characteristic in question in the input data. However, the processing elements of set 602 cannot be applied directly to raw data, hence the need for processing set 601.

[0130] During a training phase of the 600 neural network, it is possible to generate a large amount of pre-processed data of the type of EMB600 data. This simply requires presenting a large amount of raw data to the 600 neural network. As previously stated, it is possible to consolidate a group of data used to train a neural network; adding pre-processed data is an example of consolidating this group.

[0131] According to a first embodiment, in step 504, described in relation to [Fig. 5], of selecting the data used for implementing the authentication process 400 described in relation to [Fig. 4], it is possible to create a group composed solely of preprocessed data to be loaded into the device V. This can offer several advantages. A first advantage is that preprocessed data is no longer easily readable by an eavesdropping device, and therefore can make observation of process 400 more difficult. A second advantage is that it can allow the use of a truncated version of a neural network, that is, a neural network comprising only a set of processing steps of the type of set 602. A third advantage is that generally preprocessed data of The "embedding" type is smaller in dimension and therefore smaller than discrete data to be fed to a neural network. Using such a neural network can also make it more difficult to use spying devices.

[0132] According to a second embodiment, still at step 504, it is possible to create a group composed solely of preprocessed data to be loaded into device V, and it is also possible to generate a group of preprocessed data whose analysis by set 602 is more difficult. To do this, it suffices to create a group composed of very similar preprocessed data but leading to different output data. Mathematically, such a group can be defined as a set comprising preprocessed data leading to the first value of the output data and preprocessed data leading to the second value of the output data, and satisfying the following mathematical formula: [Math 2] dist(V0, V'0) dist(VI, V'1) = dist(VO, V1) where: - V0 and V0 are pre-processed data leading to the first value of the output data; - VI and VI are pre-processed data leading to the second value of the output data; - dist is a function that calculates a distance in a multidimensional space containing the data V0, V0, VI, and V'I; and - ~ is a symbol representing a relative equality of the type "of the order of".

[0133] An example of a method for generating two data items from such a data group may be the following: - generate at least one DO data leading to the first value of the output data; - generate at least one DI data leading to the second value of the output data; - generate at least one data point D2 by averaging the first and second data points DO and D1, using, for example, the dist function described previously; - determine whether the data point D2 leads to the first value of the output data or to the second value of the output data; - if the data D2 leads to the first value of the output data, replace the value of the data DO with the value of the data D2, otherwise replace the value of the data Dl with the value of the data D2; - repeat the last three steps until the distance between the DO and DI data is less than a limit distance, considered negligible, the DO and DI data can then be used as data for the authentication process 400.

[0134] This second embodiment has all the advantages of the first embodiment described above, but also has the advantage of making the creation of a clone more difficult, for example for an adversary who would try to duplicate the classification function performed by the neural network by observing only the content of the data chosen in step 504 described in relation to [Fig.5] to form the dataset used to implement the authentication process 400.

[0135] Fig. 7 is a block diagram illustrating a second example of an implementation method of an authentication process 700 allowing the proving device P to be authenticated with the verifying device V, both defined in relation to Fig. 2.

[0136] The authentication method 700 is a Verifier / Prover type method of the authentication method 200 described in relation to [Fig. 2]. The elements common to methods 200 and 700 are not described again in detail here. Only the differences between these methods are highlighted.

[0137] As previously stated, the authentication process 200 uses a neural network, implemented by the proving device P. In the authentication process 700, this neural network is adapted to classify data according to several categories, preferably at least three categories. For example, if the data is an image, the categories could be the presence of different specific objects, or different animals in that image. Such a neural network can also be called a classifier.

[0138] At an initial step 701 (Send Challenge), the authentication process 700 begins, for this the verifying device V selects a Chall700 data to send it to the proving device P.

[0139] According to one embodiment, the data Chall700 is chosen from a finite group of data enabling the implementation of the authentication process 700. The set of data from which the data Chall700 is chosen is defined in more detail in relation to [Fig.8].

[0140] In addition, each Chall700 data in the data group is associated with a Chall700Rsp response data representing the value that device P must provide to device V to be authenticated.

[0141] At a step 702 (Receive Challenge), subsequent to step 701, the proving device P receives the data Chall700 and can begin to implement the authentication process on its side.

[0142] At a 703 step (Cnt Challenge), device P can check whether the Chall700 data has already been sent to it too many times, using a counter. This step is similar to step 403 described in relation to [Fig. 4]. When the value of this counter reaches a limit, a subsequent step is a 704 step (Fail) where device P considers that process 700 has failed. If the counter value does not exceed the limit, the subsequent step is a 705 step (Neural Networks Decoder).

[0143] In step 705, following step 703, the proving device P uses a neural network to provide, or generate, a response data Rsp700 from the data Chall700. The response data Rsp700 indicates the category to which the data Chall700 belongs. Thus, the response data Rsp700 is a binary data that can take at least three different values, each value indicating a category. As an example, if the data Chall700 is an image of an animal, the response data Rsp700 can represent different kinds of animals.

[0144] At an optional step 706 (Hash), the device P can encrypt the response data Rsp700, for example using a cipher algorithm, a signature algorithm, a hashing algorithm, etc.

[0145] At a step 707 (Send Response), device P sends the response data Rsp700 to device V, or, where appropriate, the encrypted version of the response data Rsp700.

[0146] In a step 708 (Timer) implemented following step 701, device V checks the response time of device P using a timer. Step 708 is similar to step 407 described in relation to [Fig. 4]. When the timer value reaches a limit value, a subsequent step is step 709 (Fail) where device V considers that process 700 has failed. If device V receives the data Rsp700 before the timer reaches the limit value, the subsequent step is step 710 (Receive Response).

[0147] At step 710, following step 704, the verification device V receives the response data from the proving device P. If the data Rsp700 has been encrypted, a decryption step can be implemented here.

[0148] At a step 711 (Verify), the verifying device V uses the response data Rsp700 to determine whether or not the proving device P is authenticated. To do this, the device V can, for example, compare the response data Rsp700 with the response data Chall700Rsp. According to another example, at this step the device V implements a verification function taking as input the data Rsp700, the data Chall700, and / or Chall700Rsp.

[0149] One advantage of this embodiment is that it allows the response data provided by the proving device P to be made more complex. This therefore makes the authentication process 700 more difficult to circumvent.

[0150] The [Fig.8] is a block diagram illustrating an implementation method of a process 800 for preparing the authentication process 700 described in relation to the [Fig.7].

[0151] In general, method 800 comprises a method for training the neural network used by device P, and a method for generating a data set from which data Chall700 is selected. Method 800 further comprises the preparation of devices V and P.

[0152] At an initial step 801 (Prepared Data), a set of data suitable for use as training data for the neural network of device P is generated. For example, this data set can be an existing data set or a data set generated for the authentication process 700.

[0153] In another initial step 802 (Select Model), a neural network model enabling the detection of a feature of a data point is chosen from among the various existing neural network models. This step may, in addition, include a calculation of the adaptive parameters, also called weights, defining the neural network.

[0154] At a step 803 (Train Model), successive to steps 801 and / or 802, the neural network model defined in step 802 is trained using the data from the data group generated in step 801. According to an example, the data group from step 801 can be consolidated following this training.

[0155] In step 804 (Pick Challenge Sets), data is selected to form a dataset used to implement the authentication process 200. For this purpose, data may be generated in the same way as the data in step 801, and / or data may be selected from the set generated in step 801 and, if necessary, consolidated in step 803. In one embodiment, the data set formed in step 804 comprises fewer data items, or in rare cases the same number of data items, as the data set generated in step 801.

[0156] According to one embodiment, the data selected in step 804 can be preprocessed data of the same type as the EMB600 data described in relation to [Fig. 6]. The neural network used is then of the same type as that described in Figures 4 to 6.

[0157] At a step 805 (Verify), the dataset defined in step 804 is loaded, or stored, in the device V so that it can be used to implement the authentication process 700.

[0158] At step 806 (Implement Model), the neural network has finished being trained, it can then be implemented in a circuit or an electronic device.

[0159] At a step 807 (Prover), the prover device P is equipped with the circuit or device in which said neural network is implanted.

[0160] Thus, a learning process for the neural network of device P in [Fig.7] comprises the following steps: - a training data set suitable for use in the 700 authentication process is generated; - a neural network model is chosen; - said neural network model is trained using the data from said data set; and - Optionally, said data group is consolidated during the implementation of the model training.

[0161] Fig. 9 is a block diagram illustrating a third example of an implementation method of an authentication process 900 allowing the proving device P to be authenticated with the verifying device V, both defined in relation to Fig. 2.

[0162] The 900 authentication method is a Verifier / Prover type method of the 200 authentication method described in relation to [Fig. 2]. The elements common to the 200 and 900 methods are not described again in detail here. Only the differences between these methods are highlighted.

[0163] As previously stated, the authentication process 200 uses a neural network, implemented by the proving device P. In the authentication process 900, this neural network is adapted to extract a secret piece of data hidden within another piece of data. For example, the secret piece of data is a binary word and the other piece of data is an image. More specifically, the secret piece of data can be hidden within the other piece of data using steganography techniques.

[0164] At an initial step 901 (Send Challenge), the authentication process 900 begins, for this the verifying device V selects a Chall900 data to send it to the proving device P.

[0165] According to one embodiment, the data Chall900 is chosen from a finite group of data enabling the 900 authentication process to be implemented. The set of data from which the data Chall900 is chosen is defined in more detail in relation to [Fig. 10].

[0166] In addition, each Chall900 data point in the data group is associated with a Chall900Rsp response data point representing, for example, the value that device P must provide to device V to be authenticated.

[0167] According to one embodiment, the Chall900 data is here a data in which a secret data, corresponding, for example, to the answer data Chall900Rsp, is hidden. According to a particular example, the Chall900 data is an image in in which the response data Chall900Rsp was hidden using steganography techniques.

[0168] According to an alternative, related to the process described in relation to [Fig. 12], in step 901, the device V selects the data Chall900 and generates the corresponding random secret Chal900Rsp. To do this, the device V uses an encoder-type neural network, as described below, to implant the secret.

[0169] At a step 902 (Receive Challenge), subsequent to step 901, the proving device P receives the data Chall900 and can begin to implement the authentication process on its side.

[0170] At a step 903 (Cnt Challenge), device P can check whether the data Chall900 has already been sent to it too many times, using a counter. This step is similar to step 403 described in relation to [Fig. 4]. When the counter value reaches a limit, a subsequent step is step 904 (Fail) where device P considers that process 900 has failed. If the counter value does not exceed the limit, the subsequent step is step 905 (Neural Networks Stegano).

[0171] In step 905, following step 903, the proving device P uses a neural network to provide, or generate, an answer value Rsp900 from the data Chall900. The neural network here works to recover the hidden data within the data Chall900 and provides an answer value Rsp900 corresponding to this hidden data. Thus, the answer value Rsp900 is a binary value whose number of possible values ​​is limited only by its format.

[0172] At an optional step 906 (Hash), the device P can encrypt the response data Rsp900, for example using a encryption algorithm, a signature algorithm, a hashing algorithm, etc.

[0173] At a step 907 (Send Response), device P sends the response data Rsp900 to device V, or, where appropriate, the encrypted version of the response data Rsp900.

[0174] In a step 908 (Timer) implemented following step 901, device V checks the response time of device P using a timer. Step 908 is similar to step 407 described in relation to [Fig. 4]. When the timer value reaches a limit value, a subsequent step is step 909 (Fail) where device V considers that process 900 has failed. If device V receives the data Rsp900 before the timer reaches the limit value, the subsequent step is step 910 (Receive Response).

[0175] At step 910, following step 904, the verification device V receives the response data from the proving device P. If the data Rsp900 has been encrypted, a decryption step can be implemented here.

[0176] At a step 911 (Verify), the verifying device V uses the response data Rsp900 to determine whether or not the proving device P is authenticated. To do this, the device V can, for example, compare the response data Rsp900 with the response data Chall900Rsp. According to another example, at this step the device V implements a verification function taking as input the data Rsp900 and either the data Chall900 or Chall900Rsp.

[0177] One advantage of this embodiment is that it allows the response data provided by the proving device P to be used to be made even more complex. This therefore makes the authentication process 900 more difficult to circumvent.

[0178] The [Fig. 10] is a block diagram illustrating the implementation of a steganography technique 1000 using neural networks.

[0179] Technique 1000 uses three neural networks, among which: - a neural network 1001 (E) playing the role of encoder, hereinafter referred to as encoder 1001; - a 1002 neural network (D) acting as a decoder, hereinafter referred to as decoder 1002; and - a 1002 neural network (D) playing the role of determinant, hereafter referred to as determinant 1002.

[0180] The 1001 encoder is adapted to receive two data, including a secret data Sec 1000 and an ImlOOO data in which the secret data is hidden. For example, the ImlOOO data is an image comprising several pixels arranged in a matrix. For example, the ImlOOO data is a natural image, that is, an image that has not undergone any preprocessing. Examples of data that can be used are given in the article "Zhang, Kevin Alex and Cuesta-Infante, Alfredo and Veeramachaneni, Kalyan, "SteganoGAN: High Capacity Image Steganography with G ANs", MIT EECS, January 2019", and in the article "Varsha Kishore, Xiangyu Chen, Yan Wang, Boyi Li, Kilian Q Weinberger, "Fixed Neural Network Steganography: Train the images, not the network", ICLR 2022, January 2022". Encoder 1001 is trained to hide the secret data SeclOOO in the data ImlOOO and to provide a new data ImSeclOOO of the same format as the data ImlOOO.

[0181] The 1002 decoder is adapted to receive the ImSeclOOO data and to find the secret SeclOOO data therein.

[0182] Determinant 1003 is adapted to determine whether the secret data SeclOOO is effectively hidden within the data ImSeclOOO. To this end, determinant 1003 attempts to find the secret data SeclOOO within the data ImSeclOOO and defines a score for evaluating the encoder's performance. This score can be used in a training phase of encoder 1001.

[0183] [Fig. 11] is a block diagram illustrating one implementation of a process 1100 for preparing the authentication process 900 described in relation to [Fig. 9]. This preparation process 1100 is a first example of a possible preparation process; a second example is described in relation to [Fig. 12].

[0184] In general, method 1100 comprises a method for training the neural network used by device P, and a method for generating a data set from which data Chall900 is selected. Method 1100 further comprises the preparation of devices V and P.

[0185] At an initial step 1101 (Prepared Data), a set of data suitable for use as training data for the neural network of device P is generated. For example, this data set could be an existing data set or a data set generated for the authentication process 900. This data set therefore includes data in which secret data could be hidden, but in which no secret data has yet been hidden.

[0186] At a step 1102 (Train Stegano Model), successive to step 1101, an encoder-type neural network, of the type of encoder 1001 of [Fig. 10], and a decoder-type neural network, of the type of decoder 1002 of [Fig. 10], are trained using the data from the data group selected in step 1101. More particularly, these neural networks used can be trained using the technique described in relation to [Fig. 10].

[0187] At a step 1103 (Implement Decoder Model), the decoder-type neural network has finished being trained, it can then be implemented in a circuit or electronic device.

[0188] At a step 1104 (Prover), the prover device P is equipped with the circuit or device in which said neural network is implanted.

[0189] At a step 1105 (Generate Challenge Sets), a data set in which secret data is hidden is created using, for example, an encoder-type neural network trained at the same time as the decoder-type neural network with which the device P is equipped at step 1104. According to one example, the encoder-type neural network is then deleted.

[0190] At a step 1106 (Pick Challenge Sets), data are chosen to form a data set used to implement the authentication process 900. According to one embodiment, the data set formed at step 1106 comprises less data, or in rare cases the same number of data, than the data set generated at step 1105.

[0191] At a step 1107 (Verify), the dataset defined in step 1106 is loaded and stored in the device V so that it can be used to implement the authentication process 900.

[0192] Thus, a learning process for the neural network of device P in [Fig.9] comprises the following steps: - training data is generated; and - Encoder and decoder type neural networks are trained using training data using, for example, the steganography technique 1000 described in relation to [Fig.1]0.

[0193] [Fig. 12] is a block diagram illustrating one implementation of a process 1200 for preparing the authentication process 900 described in relation to [Fig. 9]. This preparation process 1200 is a second example of a possible preparation process.

[0194] In general, method 1200 comprises a method for learning the neural network used by device P, and a method for generating a data set from which data Chall900 is selected. Method 1200 further comprises the preparation of devices V and P.

[0195] At an initial step 1201 (Prepared Data), a set of data suitable for use as training data for the neural network of device P is generated. For example, this data set could be an existing data set or a data set generated for the authentication process 900. This data set therefore includes data in which secret data could be hidden, but in which no secret data has yet been hidden.

[0196] At a step 1202 (Train Stegano Model), successive to step 1201, an encoder-type neural network, of the type of encoder 1001 of [Fig. 10], and a decoder-type neural network, of the type of decoder 1002 of [Fig. 10], are trained using the data from the data set generated in step 1201. More particularly, these neural networks used can be trained using the technique described in relation to [Fig. 10].

[0197] At a step 1203 (Implement Decoder Model), the decoder-type neural network has finished being trained, it can then be implemented in a circuit or electronic device.

[0198] At a step 1204 (Prover), the prover device P is equipped with the circuit or device in which said decoder-type neural network is implanted.

[0199] At a step 1205 (Select Challenge Set), a data group is selected in which it is possible to hide secret data, for example part of the group established at step 1201 or a new data group.

[0200] At a step 1206 (Implement Encoder Model), the encoder-type neural network has finished being trained, it can then be implemented in a circuit or an electronic device.

[0201] At a step 1207 (Verify), the verification device V is equipped with the circuit or device in which said encoder-type neural network is implemented. Thus, at each start of the authentication process 900, the verification device P can generate a challenge data using a secret data and the associated image of the data group generated at step 1205.

[0202] Thus, a learning process for the encoder-type neural network of device V, and for the decoder-type neural network of device P in [Fig.9] comprises the following steps: - training data is generated; and - Encoder and decoder type neural networks are trained using training data using, for example, the steganography technique 1000 described in relation to [Fig.1]0.

[0203] Fig. 13 is a block diagram illustrating a fourth example of a setting mode implementation of an authentication process 1300 allowing the authentication of the proving device P with the verifying device V, both defined in relation to [Fig.2],

[0204] Authentication method 1300 is a Verifier / Prover type method of authentication method 200 described in relation to [Fig. 2]. The elements common to methods 200 and 1300 are not described again in detail here. Only the differences between these methods are highlighted.

[0205] As previously stated, the authentication process 200 uses a neural network, implemented by the proving device P. In the authentication process 1300, this neural network is adapted to generate random or pseudo-random data from a "seed" data and one or more context data.

[0206] At an initial step 1301 (Send Challenge), the authentication process 1300 begins, for this the verifying device V selects a "seed" data S1300, or generation data S1300, and one or more context data Ctxtl300-0, ..., Ctxtl300-nl to send to the proving device P. In the example of [Fig. 13], the device V sends n context data, n being a natural number.

[0207] According to one embodiment, the data S1300 and Ctxtl300-0, ..., Ctxtl300-n-1 are chosen from a finite set of data enabling the implementation of the 1300 authentication process. The dataset from which the data S1300 and Ctxtl300-0, ..., Ctxtl300-n-1 are chosen is defined in more detail in relation to [Fig. 14]. In the following description, a pair is a set of data comprising a "seed" data and one or more context data.

[0208] In addition, to each pair of data S1300 and Ctxtl300-0, ..Ctxtl300-nl of the data group is associated a response data Challl300Rsp representing the random value that device P must provide to device V to be authenticated.

[0209] At a step 1302 (Receive Challenge), subsequent to step 1301, the proving device P receives the data S1300 and Ctxtl300-0, ..., Ctxtl300-nl and can begin to implement the authentication process on its side.

[0210] At step 1303 (Cnt Challenge), device P can check whether the data pair S1300 and Ctxtl300-0, ..., Ctxtl300-nl has already been sent to it too many times, using a counter. This step is similar to step 403 described in relation to [Fig. 4]. When the counter value reaches a limit, a subsequent step is step 1304 (Fail) where device P considers that process 1300 has failed. If the counter value does not exceed the limit, the subsequent step is step 1305 (Neural Networks PRNG).

[0211] In step 1305, following step 1303, the proving device P uses a neural network to provide, or to generate, a response data Rspl300 from the data S1300 and Ctxtl300-0, ..., Ctxtl300-nl. The neural network here generates a random number from the "seed" data S1300 and the context data Ctxtl300-0, ..., Ctxtl300-nl. Thus, the response data Rspl300 is a binary data whose number of values ​​is limited only by its format.

[0212] At an optional step 1306 (Hash), the device P can encrypt the response data Rspl300, for example using a cipher algorithm, a signature algorithm, a hashing algorithm, etc.

[0213] At a step 1307 (Send Response), device P sends the response data Rspl300 to device V, or, where appropriate, the encrypted version of the response data Rspl300.

[0214] In a step 1308 (Timer) implemented following step 1301, device V checks the response time of device P using a timer. Step 1308 is similar to step 407 described in relation to [Fig. 4]. When the timer value reaches a limit value, a subsequent step is step 1309 (Fail) where device V considers that process 1300 has failed. If device V receives the data Rspl300 before the timer reaches the limit value, the subsequent step is step 1310 (Receive Response).

[0215] At step 1310, following step 1304, the verification device V receives the response data from the proving device P. If the data Rspl300 has been encrypted, a decryption step can be implemented here.

[0216] At a step 1311 (Verify), the verifying device V uses the response data Rspl300 to conclude whether or not the proving device P is authenticated. To do this, the device V can, for example, compare the response data Rspl300 with the The response data is Challl300Rsp. According to another example, at this stage the device V implements a verification function taking as input the data Rspl300, and the data Challl300 or Challl300Rsp.

[0217] One advantage of this embodiment is that it allows the response data provided by the proving device P to be made even more complex. This therefore makes the authentication process 1300 more difficult to circumvent.

[0218] The [Fig. 14] is a block diagram illustrating an implementation method of a process 1400 for preparing the authentication process 1300 described in relation to the [Fig.13].

[0219] In general, the method 1400 comprises a method for learning the neural network used by the device P, and a method for generating a data set from which the data S1300 and Ctxt1300-0, ..., Ctxtl300-nl are selected. The method 1400 further comprises the preparation of the devices V and P.

[0220] In an initial step 1401 (Train PRNG Model), a neural network of the random or pseudo-random number generator type is trained. There are several techniques for training a neural network to generate a random number.

[0221] A first example of a technique consists of modeling the behavior of a neural network on that of a real random or pseudo-random number generator. To do this, such a generator is configured with context data and provided with a "seed" input. This "seed" input and the context data are also provided to the neural network. The numbers generated by the generator and by the neural network are compared by another neural network of the discriminator type. The discriminator neural network adjusts the weights of the generator-type neural network so that its operation increasingly resembles that of the real generator.

[0222] A second example of a technique involves using a random number generator or pseudo-random number generator neural network and a predictor neural network. The generator neural network is improved until the predictor neural network is no longer able to predict the output data of the generator neural network.

[0223] Other examples of neural network training techniques for generating random or pseudo-random numbers are within the reach of a person skilled in the art.

[0224] At a step 1402 (Implement PRNG Model), the neural network of the random or pseudo-random number generator type has finished being trained, it can then be implemented in a circuit or an electronic device.

[0225] At a step 1403 (Prover), the prover device P is equipped with the circuit or device in which said neural network of the random or pseudo-random number generator type is implanted.

[0226] In step 1404 (Generate Challenges), a dataset is created to implement the 1300 authentication process. The neural network of the random or pseudo-random number generator type trained in step 1402 is used. Several pairs of "seed" and context data are generated and used by the neural network to generate random or pseudo-random data. These data pairs and the pseudo-random data they generate form the dataset for implementing the 1300 authentication process. Once this dataset is generated and step 1403 is completed, the neural network of the random or pseudo-random number generator type can be removed.

[0227] At a step 1405 (Verify), the data group generated at step 804 is loaded, stored, into the device V so that it can be used to implement the authentication process 1300.

[0228] The [Fig. 15] is a block diagram illustrating an example of implementation of a 1500 random or pseudo-random number generation process using two neural networks 1501 (NN-1) and 1502 (NN-2).

[0229] As described above, a neural network trained to generate random data generally receives as input a "seed" data point and one or more context data points, preferably several context data points. For the purpose of implementing an authentication process, it is possible to "divide" a neural network into several neural networks, for example, two neural networks having, for example, at least one common part, enabling the generation of the same random data point or the same sequence of random data points by taking as input the same "seed" data point and different context data points.

[0230] More specifically, process 1500 uses two neural networks, 1501 and 1502, derived from the same initial neural network (not shown in [Fig. 15]) adapted to generate random data. Here, the initial neural network is considered to take as input a "seed" data point, Seddl500, and n context data points, Ctxtl500-0,..., Ctxtl500-nl, where n is defined in relation to [Fig. 13]. The two neural networks, 1501 and 1502, are obtained by directly integrating certain context data points into the initial neural network. As an example, the two neural networks, 1501 and 1502, may have a common component, as explained later.

[0231] More precisely, the 1501 neural network is obtained by hardcoding a part Ctxtl501 (Ctxt-1) of the context data Ctxtl500-0,..., Ctxtl500-nl, for example p context data Ctxtl500-0,..., Ctxtl500-pl, p being an integer between 0 and n-1. The expression "hard-coded" here means that the Ctxtl501 portion of the context data is directly written into the code of neural network 1501. Similarly, neural network 1502 is obtained by hard-coding a Ctxtl502 portion (Ctxt-2) of the context data Ctxtl500-0,..., Ctxtl500-nl, for example, np context data Ctxtl500-p,..., Ctxtl500-nl. In one embodiment, the union of the Ctxtl501 and Ctxtl502 portions is equal to the n context data Ctxtl500-0,..., Ctxtl500-nl. Put another way, the Ctxtl501 and 1502 portions are said to be complementary, and neural networks 1501 and 1502 are said to be complementary.

[0232] Thus, to obtain the same random data Randl500 using neural networks 1501 and 1502, it suffices to provide: - the "seed" data Seedl500 to each neural network 1501, 1502; - the Ctxtl502 part of the neural network 1501; and - the Ctxtl501 part to the neural network 1502.

[0233] The [Fig. 16] is a block diagram illustrating a fourth example of an implementation method of an authentication process 1600 allowing the authentication of the proving device P with the verifying device V, both defined in relation to the [Fig. 2],

[0234] The authentication method 1600 is a Verifier / Prover type method of the authentication method 200 described in relation to [Fig. 2] and of the authentication method 1300 described in relation to [Fig. 13]. The elements common to methods 200, 1300, and 1600 are not described again in detail here. Only the differences between these methods are highlighted.

[0235] The authentication process 1600 uses two neural networks of the type of neural networks 1501 and 1502 described in relation to [Fig. 15].

[0236] At an initial step 1601 (Send Challenge), the authentication process 1600 begins, for this the verifying device V generates a "seed" data S1600, or generation data S1600, and a first group of context data CtxtlôOO-0, ..., Ctxtl600-pl, of the type of the part Ctxtl501 or Ctxtl502 described in relation to [Fig. 15], to send it to the proving device P. In the example of [Fig. 13], the device V sends p context data, p being the integer defined in relation to [Fig.15].

[0237] At a step 1602 (Receive Challenge), successive to step 1601, the proving device P receives the data S1600 and Ctxtl600-0, ..., Ctxtl600-pl and can begin to implement the authentication process on its side.

[0238] At a step 1603 (Cnt Challenge), the device P can check whether the data pair S1600 and Ctxtl600-0, ..., Ctxtl600-nl has already been sent to it too many times, using a counter. This step is similar to step 403 described in relation with [Fig. 4]. When the counter value reaches a limit value, the next step is step 1604 (Fail), where device P considers process 1600 to have failed. If the counter value does not exceed the limit value, the next step is step 1605 (Semi-NN PRNG-1).

[0239] In step 1605, following step 1603, the proving device P uses a neural network of the type of neural network 1501 or 1502 described in relation to [Fig. 15], to provide, or to generate, a response data RsplôOO from the data S1600 and Ctxtl600-0, ..., Ctxtl600-pl. The neural network here generates a random number from the "seed" data S1600 and the context data Ctxtl600-0, ..., Ctxtl600-pl. Thus, the response data RsplôOO is a binary data whose number of values ​​is limited only by its format.

[0240] More specifically, if device P implements a neural network of the type of neural network 1501 described in relation to [Fig. 15], the context data group sent by device V is part Ctxtl502 described in relation to [Fig. 15]. Conversely, if device P implements a neural network of the type of neural network 1502 described in relation to [Fig. 15], the context data group sent by device V is part Ctxtl501 described in relation to [Fig. 15].

[0241] At step 1606 (Semi-Context), device P prepares a set of context data complementary to the set of context data it received from device V. For example, if device P receives a set of data of the type of part Ctxtl502, it prepares a set of data of the type of part Ctxtl501. Conversely, if device P receives a set of data of the type of part Ctxtl501, it prepares a set of data of the type of part Ctxtl502. The preparation of this set of data includes, for example, retrieving this set of data into a memory of device P. For example, this set of data can be hard-coded, that is, encoded, into the neural network of device P.

[0242] The 1600 process could include a step of encrypting the response data RsplôOO and the context data group including, for example, the data Ctxtl600-pl, ..., Ctxtl600-nl, for example using a cipher algorithm, a signature algorithm, a hashing algorithm, etc.

[0243] At a step 1607 (Send Response), device P sends the response data RsplôOO and the context data group including, for example, the data Ctxtl600-pl, ..., Ctxtl600-nl, to device V, or, where appropriate, the encrypted version of this data.

[0244] In a step 1608 (Timer) implemented following step 1601, device V checks the response time of device P using a timer. Step 1608 is similar to step 407 described in relation to [Fig. 4]. When the timer value reaches If a limit value is reached, the next step is a 1609 (Fail) step where device V considers that process 1600 has not succeeded. If device V receives the RsplôOO data and the context data group before the timer reaches the limit value, the next step is a 1610 (Receive Response) step.

[0245] At step 1610, following step 1604, the verifying device V receives the response data RsplôOO and the context data group from the proving device P. If this data has been encrypted, a decryption step can be implemented here.

[0246] At a step 1611 (Semi-NN PRNG-2), the checking device implements a neural network of the type of neural network 1502, if device P implements a neural network of the type of neural network 1501, using the "seed" data SeedlôOO and the context data group, for example the context data Ctxtl600-pl, ..., Ctxtl600-nl, sent by device P. This allows device V to generate a random data RndlôOO.

[0247] At a step 1611 (Verify), the verifying device V uses the response data RsplôOO and the random data RndlôOO to determine whether or not the proving device P is authenticated. To do this, the device V can, for example, compare the response data RsplôOO with the data RndlôOO. According to another example, at this step the device V implements a verification function that takes the response data RsplôOO and the data RndlôOO as input.

[0248] One advantage of this embodiment is that it allows the response data provided by the proving device P to be used to be made even more complex. This therefore makes the authentication process 1600 more difficult to circumvent.

[0249] Another advantage is that this embodiment allows for the diversification of neural networks implemented in the P and V devices. It is therefore possible to have several different P and V devices with different neural networks. This diversification makes extracting network parameters more difficult for an attacker.

[0250] Another advantage is that it allows no result data to be stored in the device V.

[0251] The [Fig. 17] is a block diagram illustrating an implementation method of a process 1700 for preparing the authentication process 1600 described in relation to the [Fig.10].

[0252] In general, method 1700 comprises a method for training the neural networks used by devices P and V, and a method for generating a data set from which the data S1600 and Ctxtl600-0, ..., Ctxtl600-nl are selected. Method 1700 further comprises the preparation of devices V and P.

[0253] At an initial step 1701 (Train PRNG Model), a neural network of the random or pseudo-random number generator type is trained, for example, using the techniques described in relation to [Fig. 14].

[0254] At a step 1702 (Generate NN-1), an NN-1 neural network of the type of neural network 1501 or 1502 described in relation to [Fig. 15] is generated from the neural network trained at step 1701. This neural network can then be implemented in a circuit or electronic device.

[0255] At a step 1703 (Prover), the prover device P is equipped with the circuit or device in which said neural network NN-1 is implanted, and also with a means of storing, for example a memory or by direct encoding in the neural network NN-1, a part of the context data.

[0256] At step 1704 (Generate NN-2), a neural network NN-2 of the type of neural network 1502 or 1501 described in relation to [Fig. 15] is generated from the neural network trained in step 1701. This neural network can then be implemented in a circuit or electronic device. According to one embodiment, the neural network NN-2 is complementary to the neural network NN-1 generated in step 1702.

[0257] At a step 1705 (Verify), the verifying device V is equipped with the circuit or device in which said neural network NN-2 is implanted, and also with a means of storing, for example a memory or by direct encoding in the neural network NN-2, a part of the context data different from the part of the context data stored in the proving device P.

[0258] Various embodiments and variations have been described. A person skilled in the art will understand that certain features of these various embodiments and variations could be combined, and other variations will become apparent to a person skilled in the art.

[0259] Finally, the practical implementation of the embodiments and variants described is within the reach of a person skilled in the art, based on the functional indications given above.

Claims

Demands

1. Authentication method (200; 400; 700; 900; 1300; 1600) of a first device (P) to a second device (V), comprising the following successive steps: - Sending, by said second device (V), to said first device (P), at least one first data (Chall200; Chall400; Chall700; Chall900; Seedl300, Ctxtl300-0, Ctxtl300-nl; SeedlôOO, Ctxtl300-0, Ctxtl600-pl); - Use, by said first device (P), a first neural network to provide a second data (Rsp200; Rsp400; Rsp700; Rsp900; Rspl300; RsplôOO) from said at least one first data (Chall200; Chall400; Chall700; Chall900; Seedl300, Ctxtl300-0, ..., Ctxtl300-nl; SeedlôOO, Ctxtl300-0, ..., Ctxtl600-pl); - Send, by said first device, said second data (Rsp200; Rsp400; Rsp700; Rsp900; Rspl300; RsplôOO) to said second device (V).

2. A method according to claim 1, wherein said first neural network is adapted to recognize the presence of a feature in said at least one first data point (Chall400), and said second data point (Rsp400) is a binary data point indicating whether said feature is recognized or not.

3. Method according to claim 2, wherein said at least one first data (Chall400) is chosen by a first group comprising third data pre-processed (EmbôOO) by said first neural network.

4. Method according to claim 3, wherein said at least one first data point (Chall400) is chosen by a second group comprising fourth pre-processed data points (EmbôOO) by said first neural network, said second group satisfying the following mathematical formula: [Math 3] dist(V0, VO) = ​​dist (Vl, Vl) dist (V0, Vl) in which: - V0 and V'O are pre-processed data points leading to the first value of the output data; - VI and V'1 are pre-processed data leading to the second value of the output data; - dist is a function allowing the calculation of a distance in a multi-dimensional space including the data VO, V'O, VI and V'1; and - ~ is a symbol representing a relative equality of the type "of the order of".

5. Method according to claim 1, wherein said first neural network is adapted to classify said at least one first data point (Chall700) according to at least three categories, and said second data point (Rsp700) indicating which category said at least one first data point (Chall700) belongs to.

6. Method according to claim 1, wherein said second data (Rsp900) has been hidden in said at least one first data (Chall900), and said first neural network is adapted to extract the second data (Rsp900) from said at least one first data (Chall900).

7. A method according to claim 6, wherein said second data (Rsp900) has been hidden in said at least one first data (Chall900) using at least one steganography technique implemented by a second neural network.

8. Method according to claim 1, wherein said first neural network is adapted to generate said second data (Rspl300; RsplôOO) randomly from at least two first data comprising a fifth generation data (Seedl300; SeedlôOO) and at least a sixth context data (Ctxtl300-0, ..., Ctxtl300-nl; Ctxt1300-0, ..., Ctxtl300-pl).

9. Method according to claim 8, wherein said first device (P) sends, in addition to said second data (RsplôOO), at least one seventh context data (Ctxtl600-pl, ..., Ctxtl600-n-1) different from the sixth context data (Ctxt1600-0, ..., Ctxtl600-pl), said second device (V) being adapted to generate an eighth data (RndlôOO) randomly using said fifth generation data (SeedlôOO) and said at least one seventh context data (Ctxtl600-pl, ..., Ctxtl600-nl), said second device (V) using the second data (RsplôOO) and the eighth data (RndlôOO) to check whether the first device (P) is authenticated or not with the second device (V).

10. A method according to any one of claims 1 to 9, wherein the method further comprises a verification step (206; 410; 711; 911; 1311; 1612) of said second data (Rsp200; Rsp400; Rsp700; Rsp900; Rspl300; RsplôOO) by said second device (V) enabling it to indicate whether the first device (P) is authenticated or not with the second device (V).

11. A method according to any one of claims 1 to 10, wherein the method further comprises a verification step (403; 703; 903; 1303; 1603) of the number of times a specific first data point (Chall200; Chall400; ChalüOO; Chall900; Seedl300, Ctxtl300-0, ..., Ctxtl300-nl; SeedlôOO, Ctxtl300-0, ..., Ctxtl600-pl) is supplied to the first device (P).

12. A method according to any one of claims 1 to 11, wherein the method further comprises a verification step (407; 708; 908; 1308; 1608) of the response time of the first device (P), implemented by said second device (V).

13. A method according to any one of claims 1 to 12, wherein the method further comprises an encryption step (706; 906; 1306) of the second data (Rsp200; Rsp400; Rsp700; Rsp900; Rspl300; RsplôOO) before sending it to the second device (V).

14. Method for learning a neural network of a first device (P) for implementing an authentication method according to any one of claims 1 to 13.

15. An electronic device adapted to be the first electronic device (P) in the authentication process (200; 400; 700; 900; 1300; 1600) of the first device (P) to a second device (V), comprising the following successive steps: - Sending, by said second device (V), to said first device (P), at least one first piece of data (Chall200; Chall400; Chall700; Chall900; Seedl300, Ctxtl300-0, ..., Ctxtl300-nl; SeedlôOO, Ctxtl300-0,..., Ctxtl600-pl); - Using, by said first device (P), a first neural network to provide a second piece of data (Rsp200; Rsp400; Rsp700; Rsp900; Rspl300; RsplôOO) from said at least a first data (Chall200 ; Chall400 ; Chall700 ; Chall900 ; Seedl300, Ctxtl300-0, Ctxtl300-nl ; SeedlôOO, Ctxtl300-0, Ctxtl600-pl); - Send, by the said first device, the said second data (Rsp200 ; Rsp400 ; Rsp700 ; Rsp900 ; Rspl300 ; RsplôOO) to the said second device (V).

16. Electronic device being adapted to be the second electronic device (V) in the authentication process (200; 400; 700; 900; 1300; 1600) of a first device (P) to the second device (V), comprising the following successive steps: - Sending, by said second device (V), to said first device (P), at least one first data (Chall200; Chall400; Chall700; Chall900; Seedl300, Ctxtl300-0, ..., Ctxtl300-nl; SeedlôOO, Ctxtl300-0,..., Ctxtl600-pl); - Using said first device (P), a first neural network to provide a second piece of data (Rsp200; Rsp400; Rsp700; Rsp900; Rspl300; RsplôOO) from said at least one first piece of data (Chall200; Chall400; Chall700; Chall900; Seedl300, Ctxtl300-0, ..., Ctxtl300-nl; SeedlôOO, Ctxtl300-0, ..., Ctxtl600-pl); - Send, by the said first device, the said second data (Rsp200; Rsp400; Rsp700; Rsp900; Rspl300; RsplôOO) to the said second device (V).

17. System comprising a device according to any one of claims 15 and a device according to any one of claims 16.

18. Product computer program comprising program code instructions for carrying out the steps of the process (200; 400; 700; 900; 1300; 1600) according to any one of claims 1 to 13 as being said first device (P), when said program is executed on a computer.

19. Product computer program comprising program code instructions for performing the steps of the process (200; 400; 700; 900; 1300; 1600) according to any one of claims 1 to 13 as being said second device (V), when said program is executed on a computer.

Citation Information

Patent Citations

  • Identifying ephemeral computing assets using machine learning

    US11539733B1

  • Method for authenticating a clent mobile terminal with a remote server

    US20100293376A1

  • Systems and methods for detecting and preventing spoofing

    US20170070534A1