Cryptographic processing method, associated electronic device and computer program
The cryptographic processing method secures key generation and management within the electronic device by using an initialization phase, derivation of keys, and zero-knowledge proof transmission, addressing vulnerabilities in existing systems by ensuring confidentiality and integrity of private keys.
Patent Information
- Application Number
- FR2022010262
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-10-06
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2042-10-06
AI Technical Summary
Existing cryptographic systems face security vulnerabilities as keys are sometimes generated outside the electronic device and loaded into it without detection, compromising the confidentiality of the private key.
A cryptographic processing method involving an electronic device that generates and manages keys through an initialization phase, derivation of private and public keys, and zero-knowledge proof transmission to ensure key generation and management within the device, with optional features like certification and cooperation with configuration devices.
Enhances security by ensuring that key generation and management are confined to the electronic device, allowing secure verification without disclosing sensitive information, thus preventing unauthorized access and ensuring the integrity of the private key.
Smart Images

Figure 00000056_0000 
Figure 00000056_0001 
Figure 00000057_0000
Abstract
Description
Title of the invention: Cryptographic processing method, associated electronic device and computer program
[0001] The present invention relates to a cryptographic processing method, as well as an associated computer program and electronic device.
[0002] In asymmetric cryptography, the generation of a public key and a secret key, also called a private key, is necessary prior to the signing or encryption of messages by an electronic device.
[0003] The public key and the private key may be generated directly by the electronic device, or may be loaded into said electronic device after being generated by another device.
[0004] It is often required that the generation of these keys be carried out directly by the electronic device, in particular to ensure that the private key is known only to it.
[0005] However, despite this requirement, keys are sometimes generated outside the electronic device and then loaded into it without this being able to be detected during subsequent use of the electronic device.
[0006] An aim of the invention is to improve security for the generation of keys by an electronic device and the associated audit.
[0007] To this end, the present invention proposes a cryptographic processing method implemented by an electronic device, the electronic device cooperating with a verification device, and said method comprising: i) an initialization phase of a set of at least one first secret scalar forming a root private key associated with a root public key, the initialization phase comprising the following step: - recording the root private key in a memory of the electronic device, and (ii) a phase of generating a derived private key and a derived public key, comprising the following steps: - calculation of a second secret scalar forming the derived private key equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar, - calculation of the derived public key associated with the second secret scalar, then iii) a proof generation phase comprising the following step: - generation of a zero-knowledge proof that the public key derivative is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar forming the root private key associated with the root public key and 1 being equal to k, and (iv) a transmission phase comprising the following step: - transmission of the zero-knowledge proof to the verification device.
[0008] The method may also comprise the following optional features, taken alone or in combination whenever technically possible.
[0009] The electronic device further cooperates with a configuration device during the initialization phase, and the root public key is certified by the configuration device.
[0010] The cooperation between the electronic device and the configuration device is the sending by the electronic device to the configuration device, and / or the reception from the configuration device by the electronic device, of at least a first secret scalar of the root private key and / or of the associated root public key.
[0011] Certification of the root public key consists of registering the root public key in a list of at least one trusted public key, or of cryptographically signing said root public key, for example with a private certification key issued by a trusted authority.
[0012] The initialization phase further comprises the following steps: - calculation, before the recording step, of all the first secret scalars of the set forming the root private key, at least one first secret scalar of the root private key being calculated by random drawing or by application of a non-clonable physical function, then - calculation of the root public key from the root private key.
[0013] The configuration device has a fourth secret scalar forming a master private key associated with the root public key, and the initialization phase further comprises the following step before the registration step: - receiving, from the configuration device, at least one first secret scalar of the root private key, said at least one first secret scalar received from the configuration device being calculated from the master private key.
[0014] The electronic device receives from the configuration device all the first secret scalars of the set forming the root private key.
[0015] When the root private key is formed from a single first secret scalar, the first secret scalar received from the configuration device is the master private key.
[0016] When the root private key is formed from two first secret scalars, the electronic device receives from the configuration device said first two secret scalars. Typically, one of the first two secret scalars is determined by the configuration device by algebraic calculation from the fourth secret scalar and the other of the first two secret scalars, and said other of the first two secret scalars is determined by the configuration device by random selection or by application of a physical unclonable function (“PUF” or “physical unclonable function” according to the commonly used English term).
[0017] The configuration device further has a fifth secret scalar forming an additional private key associated with an additional public key, and said at least one first secret scalar received from the configuration device is calculated from the master private key and the additional private key.
[0018] The root private key is formed from a single first secret scalar.
[0019] The root private key is formed from a plurality of first secret scalars.
[0020] The initialization phase further comprises the following steps before step registration: - determination of a first secret scalar of the root private key, then - homomorphic encryption of the first determined secret scalar, then - transmission to the configuration device of the cipher of the first determined secret scalar, and during the reception step of the initialization phase, the electronic device: - receives another first secret scalar of the root private key, encrypted in the same homomorphic manner, the cipher of said other first secret scalar having been determined from the master private key and the cipher transmitted by the electronic device to the configuration device, and - decrypts the ciphertext of the other first secret scalar to obtain said at least one first secret scalar received from the configuration device.
[0021] The determination of a first secret scalar of the root private key is by random drawing or by application of a non-clonable physical function.
[0022] The third secret scalar k is determined by the electronic device by random selection or by application of a non-clonable physical function.
[0023] The initialization phase is implemented at an initialization site, and the phase of generating a derived private key and a derived public key is implemented at another site distinct from the initialization site.
[0024] Zero-knowledge proof is non-interactive proof.
[0025] Zero-knowledge proof is an interactive proof.
[0026] The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are in the form of a challenge-response protocol.
[0027] The invention also proposes a computer program comprising instructions executable by a processor and adapted for the implementation of a cryptographic processing method as defined previously, when these instructions are executed by the processor.
[0028] The invention also proposes an electronic device comprising means adapted for implementing a cryptographic processing method as defined previously.
[0029] The invention relates in particular to an electronic cryptographic processing device adapted to cooperate with a verification device and comprising: i) an initialization module configured to carry out an initialization phase of a set of at least one first secret scalar forming a root private key associated with a root public key, the initialization phase comprising the following step: - recording the root private key in a memory of the electronic device, ii) a key generation module configured to carry out a phase of generating a derived private key and a derived public key, comprising the following steps - calculation of a second secret scalar forming the derived private key equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar, - calculation of the derived public key associated with the second secret scalar, iii) a proof generation module configured to carry out a proof generation phase comprising the following step: - generation of a zero-knowledge proof that the derived public key is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar forming the root private key associated with the root public key and 1 being equal to k, iv) a transmission module configured to carry out a transmission phase comprising the following step: - transmission of the zero-knowledge proof to the verification device.
[0030] This electronic device can be configured to implement each of the embodiment possibilities envisaged for the cryptographic processing method as defined previously.
[0031] Of course, the various features, variants and embodiments of the invention may be combined with each other in various combinations to the extent that they are not incompatible or mutually exclusive.
[0032] Other characteristics and advantages of the present invention will emerge from the description given below, with reference to the appended figures which illustrate examples of realization without any limiting character.
[0033] In the figures:
[0034] [Fig-1] schematically represents the main elements of an electronic device electronics within which the invention is implemented, as well as a verification device and a configuration device with which the electronic device can cooperate according to the invention;
[0035] [Fig.2] represents an example of an elliptic curve and a group of points of the elliptic curve;
[0036] [Fig.3] represents in the form of a flowchart the main steps of a cryptographic processing method according to a first mode of implementation of the invention;
[0037] [Fig.4] represents in the form of a flowchart the main steps of a cryptographic processing method according to a second mode of implementation of the invention;
[0038] [Fig.5] represents in the form of a flowchart the main steps of a cryptographic processing method according to a third mode of implementation of the invention;
[0039] [Fig.6] represents in the form of a flowchart the main steps of a cryptographic processing method according to a fourth mode of implementation of the invention.
[0040] Unless otherwise indicated, elements common or similar to several figures bear the same reference signs and have identical or similar characteristics, so that these common elements are generally not described again for the sake of simplicity.
[0041] In the context of the present description, qualifiers “first”, “second”, “third”, “fourth”, “fifth” or “sixth” are only indicative to distinguish elements which they qualify, but do not imply an order between them.
[0042] [Fig.l] schematically represents the main elements of an electronic device in which the invention is implemented, as well as a verification device and a configuration device with which the electronic device can cooperate according to the invention.
[0043] [Fig.l] thus schematically represents an electronic device 2 comprising a processor 4 (for example a microprocessor), a storage block 6, a RAM 8 and a communication block 10.
[0044] The RAM 8 and the storage block 6 are each linked to the processor 4 so that the processor 4 can read or write data in the storage block 6 and / or the RAM 8.
[0045] The storage block 6 stores computer program instructions, some of which are designed to implement a cryptographic processing method such as at least one of those described with reference to FIGS. 3 to 6 when these instructions are executed by the processor 4.
[0046] The storage block 6 is for example in practice a hard disk or a non-volatile memory, possibly rewritable, for example of the EEPROM type (for "Electrically Erasable and Programmable Read-Only Memory" according to the commonly used Anglo-Saxon term).
[0047] Furthermore, the storage block 6 and / or the RAM 8 can store at least some of the elements (in particular the scalars and the points of an elliptic curve) manipulated during the various processing operations carried out during at least one of the methods described below.
[0048] In the remainder of the description, any one of the storage block 6 and the RAM 8 is called memory.
[0049] The electronic device 2 also comprises several modules not shown.
[0050] Typically, the electronic device 2 comprises an initialization module, a key generation module, a proof generation module and a transmission module.
[0051] These modules can in practice be implemented by a combination of hardware elements and software elements.
[0052] Each module is configured to carry out the steps of a phase described in the methods according to the invention and set out below, and therefore has a functionality described in the methods according to the invention and set out below. Thus, for each module, the electronic device 2 stores, for example, software instructions executable by the processor 4 of the electronic device 2 in order to use a hardware element (for example a communication interface or a memory) and thus implement the functionality offered by the module.
[0053] According to one possible embodiment, the computer program instructions stored in the storage block 6 have for example been received (for example from a remote computer) during an operating phase of the electronic device 2 prior to the methods described with reference to FIGS. 3 to 6.
[0054] The communication block 10 is connected to the processor 4 so as to allow the processor 4 to receive data from another electronic device and / or to transmit data to another electronic device (for example a configuration device 22 and / or a verification device 12 as described below). In certain embodiments, the processor 4 can thus receive data m from the other electronic device, for example a first secret scalar from a configuration device, as described with reference to FIGS. 3 and 6, and / or transmit other data, typically a zero-knowledge proof as also described with reference to FIGS. 3 and 6.
[0055] [Fig.l] also schematically represents a verification device 12 comprising a processor 14 (for example a microprocessor), a storage block 16, a RAM 18 and a communication block 20.
[0056] The RAM 18 and the storage block 16 are each linked to the processor 14 such that the processor 14 can read or write data in the storage block 16 and / or the RAM 18.
[0057] The storage block 16 stores computer program instructions, some of which are designed to cooperate with the electronic device 2 during a cryptographic processing method such as at least one of those described with reference to FIGS. 3 to 6 when these instructions are executed by the processor 14.
[0058] The storage block 16 may also store computer program instructions designed to cooperate with a configuration device.
[0059] The storage block 16 is for example in practice a hard disk or a non-volatile memory, possibly rewritable, for example of the EEPROM type (for "Electrically Erasable and Programmable Read-Only Memory" according to the commonly used English term).
[0060] The RAM 18 can for its part store at least some of the elements (in particular scalars and points of an elliptic curve) manipulated during the various processing operations carried out to cooperate with the electronic device 2 during at least one of the methods described below.
[0061] According to one possible embodiment, the computer program instructions stored in the storage block 16 have for example been received (for example from a remote computer) during an operating phase of the verification device 12 prior to the methods described with reference to FIGS. 3 to 6.
[0062] The communication block 20 is connected to the processor 14 so as to allow the processor 14 to receive data from another electronic device and / or to transmit data to another electronic device (for example a configuration device 22 as described below / or the electronic device 2). In certain embodiments, the processor 14 can thus receive data from the other electronic device, for example a zero-knowledge proof from the electronic device 2, as described with reference to FIGS. 3 and 6, and / or transmit other data, typically a challenge scalar as also described with reference to FIGS. 3 and 6.
[0063] A configuration device 22 is also shown schematically in [Fig.l]. The configuration device 22 comprises a processor 24 (for example a microprocessor), a storage block 26, a random access memory 28 and a communication block 30.
[0064] The RAM 28 and the storage block 26 are each linked to the processor 24 such that the processor 24 can read or write data to the storage block 26 and / or the RAM 28.
[0065] The storage block 26 stores computer program instructions, some of which are designed to cooperate with the electronic device 2 during a cryptographic processing method such as at least one of those described with reference to FIGS. 3 to 6 when these instructions are executed by the processor 24.
[0066] The storage block 26 can also store computer program instructions designed to cooperate with the verification device 12.
[0067] The storage block 26 is for example in practice a hard disk or a non-volatile memory, possibly rewritable, for example of the EEPROM type (for "Electrically Erasable and Programmable Read-Only Memory" according to the commonly used English term).
[0068] The RAM 28 can for its part store at least some of the elements (in particular scalars and points of an elliptic curve) manipulated during the various processing operations carried out to cooperate with the electronic device 2 during at least one of the methods described below.
[0069] According to one possible embodiment, the computer program instructions stored in the storage block 26 have for example been received (for example from a remote computer) during an operating phase of the configuration device 22 prior to the methods described with reference to FIGS. 3 to 6.
[0070] The communication block 30 is connected to the processor 24 so as to allow the processor 24 to receive data from another device and / or to transmit data to another electronic device (for example the verification device 12 and / or the electronic device 2). In certain embodiments, the processor 24 can thus receive data from the other electronic device, for example a first secret scalar from the electronic device 2 or a root public key, as described with reference to FIGS. 3 and 6, and / or transmit other data, typically a first secret scalar as also described with reference to FIGS. 3 and 6.
[0071] Each figure among figures 3 and 6 represents a cryptographic processing method in accordance with the invention.
[0072] Each of these methods is here implemented by the electronic device 2 (due to the execution of the computer program instructions stored in the storage block 6 as indicated above).
[0073] Each of the methods described with reference to Figures 3 and 4, implements operations in a finite group Gr of prime order n, of points of an elliptic curve E. This group Gr is equipped with an addition operation, noted hereinafter +, of two points of the elliptic curve E. A scalar product noted [x]-Y, is the multiplication of a point Y of the elliptic curve by a scalar x and corresponds to the iteration x-1 times of the addition operation of the group Gr on said point Y: Y + ... + Y. This scalar product can be based on the accumulation of multiples of this point. It will be noted that in the case particular of a scalar x worth 0, the result of the scalar product is the point at infinity of the group Gr.
[0074] The elliptic curve E is defined by a set of parameters including a point of the group Gr called generator point G, which is public. This generator point is therefore predetermined and can in practice be stored in the electronic device 2, for example in its storage block 6.
[0075] Any point of the group Gr can be uniquely associated with a set of z affine coordinates in a frame of reference of a space of dimension z.
[0076] Furthermore, each of the methods described with reference to Figures 3 and 4 implements algebraic calculations using algebraic operations (addition, product, subtraction) on scalars.
[0077] [Fig.2] represents an example of an elliptic curve E in an affine frame of dimension 2, and an example of a group Gr of points of the elliptic curve E defined on a body K.
[0078] The invention is not limited to this example of elliptic curve and group Gr. According to other examples, the elliptic curve E may have another form in this frame, or the elliptic curve E may be defined in another frame and / or another space, in particular of dimension greater than 2.
[0079] [Fig. 3] represents in the form of a flowchart the main steps of a cryptographic processing method according to a first mode of implementation of the invention.
[0080] This method is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.
[0081] According to a recording step E120, the processor 4 records in a memory of the electronic device 2 a root private key r.
[0082] This step is in a phase of the method called the initialization phase (Phase PI) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R.
[0083] This initialization phase is typically implemented by the initialization module of the electronic device 2.
[0084] Here the root private key r is formed from a single first secret scalar rb
[0085] In other words, the set of at least one first secret scalar, forming the root private key r, has a single first secret scalar, rb
[0086] The method is thus simplified. The method allows the use of a single root private key r for a given root public key R. The method also allows the use of a single root public key R for a given root private key r.
[0087] Typically, the root public key R is equal to the scalar product of the generator point G by the first secret scalar ri: R = [rJ-G .
[0088] According to one example, when the method is implemented by each electronic device of a plurality of electronic devices, the same first secret scalar and the same root public key R are used for each of the electronic devices of said plurality. Thus, the verification is simplified because it requires the use of a single and unique root public key R, which is common to all the electronic devices of said plurality.
[0089] According to another example, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality uses a first secret scalar and a root public key R which are specific to it, which makes the method more secure.
[0090] During this recording step (step E120), the processor 4 therefore records in a memory of the electronic device 2 the first secret scalar rb
[0091] The initialization phase (Phase PI) may comprise the following complementary steps (steps El 10, El 12 and El 14).
[0092] Thus the method can comprise, before the recording step (step E120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step E110), that is to say here of the first secret scalar rb
[0093] Typically, at least a first secret scalar of the root private key, here the first secret scalar ri can be calculated by random drawing or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 12 / 02 / 2019.
[0094] The method is thus particularly secure because the electronic device can ensure the confidentiality of the root private key r alone. In addition, the electronic device has its own root private key r.
[0095] The method then comprises a step of calculating the root public key R from the root private key r (step E1 12).
[0096] Typically, processor 4 may calculate the root public key R as follows: R = [rJ-G.
[0097] The method can then comprise a step of sending to a configuration device (step E1 14), typically the configuration device 22, the calculated root public key R.
[0098] Thus, advantageously the configuration device can certify the root public key R.
[0099] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0100] Certification of the root public key may consist of registering the key public root key in a list of at least one trusted public key, or in the cryptographic signature of said public root key, for example with a private certification key issued by a trusted authority.
[0101] The step of calculating the root public key R from the root private key r (step E1 12) and the step of sending the root public key R to a configuration device (step E1 14) are here executed before the registration step (E120) but the step of calculating the root public key R from the root private key r (step E1 12) and / or the step of sending to a configuration device (step E1 14) can be executed after the registration step (E120) as long as the step of sending to a configuration device (step E1 14) is executed after the step of calculating the root public key R from the root private key r (step E1 12).
[0102] It will further be noted that the step of sending the root public key R to a configuration device (step E1 14) can be omitted.
[0103] According to another possibility, the initialization phase (Phase PI) can comprise other complementary steps (steps El 11, El 12 and El 14 following).
[0104] Thus the method can comprise, before the recording step (step E120), a reception step (step E111), from the configuration device, of at least a first secret scalar of the root private key r, that is to say here of the first secret scalar rb, said at least a first secret scalar received from the configuration device being calculated from a master private key.
[0105] Typically, the configuration device has a fourth secret scalar forming the master private key.
[0106] The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.
[0107] Here the root private key r is formed from a single first secret scalar rb the electronic device therefore receives from the configuration device, all the first secret scalars of the set forming the root private key.
[0108] Thus, the efficiency of the method is increased by limiting the interactions between the configuration device and the electronic device.
[0109] According to one example, the first secret scalar received from the configuration device is the master private key.
[0110] According to another example, the first secret scalar received from the configuration device can be derived by the configuration device from the master private key using any suitable derivation function well known to those skilled in the art.
[0111] The root public key R can be calculated by the configuration device.
[0112] According to another possibility, the method can also comprise a calculation step by the electronic device 2 of the root public key R from the root private key r (step El 12) and a step of sending to the configuration device (step El 14) the calculated root public key R.
[0113] The step of calculating the root public key R from the root private key r (step E1 12) and the step of sending the root public key R to a configuration device (step E1 14) are illustrated in [Fig. 3] before the recording step (E120), but when they are not omitted after the receiving step (step E1 11), the step of calculating the root public key R from the root private key r (step E1 12) and / or the step of sending to a configuration device (step E1 14) can be executed after the recording step (step E120) as long as the step of sending to a configuration device (step E1 14) is executed after the step of calculating the root public key R from the root private key r (step E1 12).
[0114] Advantageously, the configuration device can certify the root public key R.
[0115] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0116] The certification of the root public key may consist of the registration of the root public key in a list of at least one trusted public key, or of the cryptographic signature of said root public key, for example with a private certification key issued by a trusted authority.
[0117] After the recording step (step E120), the method then comprises a step (step E220) of calculating a second secret scalar forming a derived private key a equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).
[0118] Here, the set of at least one first secret scalar has a single first secret scalar, the first secret scalar rb and the subset s therefore has a single first secret scalar, the first secret scalar r,.
[0119] The third secret scalar k may be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 12 / 02 / 2019.
[0120] According to a first example, the derivation function f can be defined as follows: f(s, k) = k-ri mod n.
[0121] According to a second example, the derivation function f can be defined as follows: f(s, k) = k + ri mod n.
[0122] The method then comprises a step of calculating an associated derived public key A to the second secret scalar a (step E240), i.e. to the derived private key a.
[0123] Typically, the processor 4 can calculate the derived public key A as follows: A = [a]-G . According to a first other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the first example described above, the processor 4 can calculate the derived public key A as follows: A = [k]-R .
[0124] According to a second other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the second example described above, the processor 4 can calculate the derived public key A as follows: A = R + [k]-G.
[0125] The step of calculating a second secret scalar (step E220) and the step of calculating a derived public key A (step E240) are in a phase of the method called the phase of generating a derived private key and a derived public key (phase P2).
[0126] This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.
[0127] The method then comprises a step of generating a zero-knowledge proof (step E320) that the derived public key A is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar, forming the root private key r associated with the root public key R and 1 being equal to k.
[0128] The step of generating a zero-knowledge proof (step E320) is in a phase of the method called the proof generation phase (phase P3).
[0129] This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.
[0130] The method then comprises a step of transmitting the zero-knowledge proof to the verification device (step E420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the zero-knowledge proof.
[0131] The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0132] Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the derived private key a, nor the third secret scalar k.
[0133] The step of transmitting the zero-knowledge proof to the verification device (step E420) is in a phase of the method called the phase of transmission (phase P4).
[0134] This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.
[0135] According to one implementation possibility, the zero-knowledge proof is a non-interactive proof.
[0136] The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.
[0137] When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the non-interactive zero-knowledge disclosure proof during the associated step (step E320).
[0138] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G where ti is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.
[0139] The processor 4 also calculates a second intermediate point as follows: S2 = [t2 ]-R where t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0140] The processor 4 then calculates a first digest of an intermediate data item by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by the NIST, the intermediate data item being the concatenation of the first intermediate point Si, of the second intermediate point S2, of the root public key R and of the derived public key A.
[0141] In other words, c = Ha(SJI S2IIRIIA), where c is the first condensate and Ha is the hash function.
[0142] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = 0 + c-ri mod n and s2 = t2 + ck mod n.
[0143] The zero-knowledge proof is thus made up of the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0144] During the step of transmitting the zero-knowledge proof to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0145] The verification device may verify the zero-disclosure proof of awareness.
[0146] Typically the verification device can calculate a third intermediate point S'i as follows: S'i = [sJ-G - [c]-R.
[0147] The verification device can also calculate a fourth intermediate point S'2 as follows: S'2 = [s2]-R - [c]-A .
[0148] The verification device can then calculate a second digest of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate point S'i, of the fourth intermediate point S' 2, of the root public key R and of the derived public key A.
[0149] In other words, c' = Ha(S'ill S'2IIRIIA), where c' is the second condensate.
[0150] The verification device can then compare the second digest c' with the first digest c. If the second digest c' is equal to the first digest c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0151] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device 22 and / or from the electronic device 2.
[0152] When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the non-interactive zero-knowledge disclosure proof during the associated step (step E320).
[0153] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G where 0 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.
[0154] The processor 4 also calculates a second intermediate point as follows: S2 = [t2 ]-G where t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0155] The processor 4 then calculates a first digest of an intermediate data item by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by the NIST, the intermediate data item being the concatenation of the first intermediate point Si, of the second intermediate point S2, of the root public key R and of the derived public key A.
[0156] In other words, c = Ha(SJI S2IIRIIA), where c is the first condensate and Ha is the hash function.
[0157] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = ti + c-ri mod n and s2 = t2 + ck mod n.
[0158] The zero-knowledge proof is thus made up of the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0159] During the step of transmitting the zero-knowledge proof to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0160] The verification device may verify the zero-knowledge proof.
[0161] Typically the verification device can calculate a third intermediate point S'i as follows: S'i = [sJ-G - [c]-R.
[0162] The verification device can also calculate a fourth intermediate point S'2 as follows: S'2 = [s2]-G - [c]-(AR).
[0163] The verification device can then calculate a second digest of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate point S'i, of the fourth intermediate point S' 2, of the root public key R and of the derived public key A.
[0164] In other words, c' = Ha(S'ill S'2IIRIIA), where c' is the second condensate.
[0165] The verification device can then compare the second digest c' with the first digest c. If the second digest c' is equal to the first digest c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0166] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device.
[0167] According to another implementation possibility, the zero-knowledge proof is an interactive proof.
[0168] The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.
[0169] The method thus allows the verification device to verify that the electronic device has the root private key r and the third secret scalar k, i.e. that the electronic device can carry out at least one processing involving all the first secret scalars of the set forming the root private key and at least one processing involving the third secret scalar k.
[0170] When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the zero-disclosure proof of interactive knowledge during the associated step (step E320).
[0171] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G where ti is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.
[0172] The processor 4 also calculates a second intermediate point as follows: S2 = [t2 ]-R where t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0173] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = ti + c-ri mod n and s2 = t2 + ck mod n, where c is a challenge scalar previously received by the electronic device 2 from the verification device.
[0174] The zero-knowledge proof is thus made up of the first intermediate point Si, the second intermediate point S2, the first proof scalar Si and the second proof scalar s2.
[0175] During the step of transmitting the zero-knowledge proof to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first intermediate point Si, the second intermediate point S2, the first proof scalar si and the second proof scalar s2.
[0176] Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar si and the second proof scalar s2, but after the electronic device 2 has sent to the verification device, the first intermediate point Si and the second intermediate point S2. The step of generating a zero-knowledge proof (step E320) and the step of transmitting the zero-knowledge proof to the verification device (step E420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).
[0177] The verification device may verify the zero-knowledge proof.
[0178] Typically the verification device can calculate a third intermediate point S'i as follows: S'i = Si + [c]-R.
[0179] The verification device can also calculate a fourth intermediate point S'2 as follows: S'2 = S2 + [c]-A .
[0180] The verification device can calculate a fifth intermediate point S”i as follows: S”i = [sJ-G.
[0181] The verification device can calculate a sixth intermediate point S”2 as follows: S”2 = [s2]-R .
[0182] The verification device can then respectively compare the third intermediate point S'i with the fifth intermediate point S”i and the fourth intermediate point S'2 with the sixth intermediate point S”2.
[0183] If the third intermediate point S'i is equal to the fifth intermediate point S”i, and if the fourth intermediate point S'2 is equal to the sixth intermediate point S”2, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least a first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.
[0184] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device 2.
[0185] When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the zero-disclosure proof of interactive knowledge during the associated step (step E320).
[0186] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G where 0 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.
[0187] The processor 4 also calculates a second intermediate point as follows: S2 = [t2 ]-G where t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0188] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = ti + c-ri mod n and s2 = t2 + ck mod n, where c is a challenge scalar previously received by the electronic device from the verification device.
[0189] The zero-knowledge proof is thus made up of the first intermediate point Sb, the second intermediate point S2, the first proof scalar Si and the second proof scalar s2.
[0190] During the step of transmitting the zero-knowledge proof to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first intermediate point Si, the second intermediate point S2, the first proof scalar si and the second proof scalar s2.
[0191] Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar si and the second proof scalar s2, but after the electronic device 2 has sent to the verification device, the first intermediate point Si and the second intermediate point S2. The step of generating a zero-knowledge proof (step E320) and the step of transmitting the zero-knowledge proof to the verification device (step E420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).
[0192] The verification device may verify the zero-knowledge proof.
[0193] Typically the verification device can calculate a third intermediate point S'i as follows: S'i = Si + [c]-R.
[0194] The verification device can also calculate a fourth intermediate point S'2 as follows: S'2 = S2 + [c]-(AR).
[0195] The verification device can calculate a fifth intermediate point S” i as follows: S”i = [sJ-G.
[0196] The verification device can calculate a sixth intermediate point S”2 as follows: S”2= [s2]-G .
[0197] The verification device can then respectively compare the third intermediate point S'i with the fifth intermediate point S”i and the fourth intermediate point S'2 with the sixth intermediate point S”2.
[0198] If the third intermediate point S'i is equal to the fifth intermediate point S”i, and if the fourth intermediate point S'2 is equal to the sixth intermediate point S”2, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least a first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.
[0199] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device.
[0200] A person skilled in the art will understand that the method described with reference to [Fig.3] with a root private key r formed from a single first secret scalar rb can be adapted for a root private key r formed from a plurality of first secret scalars.
[0201] Thus, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a root private key r which is specific to it and the same root public key R. The use of a root private key r specific to each electronic device of the plurality makes the method more secure against side channel attacks aimed at obtaining a root private key r. Furthermore, the verification is simplified because it requires the use of a single root public key R, which is common to all the electronic devices of said plurality.
[0202] [Fig.4] represents in the form of a flowchart the main steps of a cryptographic processing method according to a second mode of implementation of the invention.
[0203] This method is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.
[0204] According to a recording step El 120, the processor 4 records in a memory of the electronic device 2 a root private key r.
[0205] This step is in a phase of the method called the initialization phase (Phase PI) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R.
[0206] This initialization phase is typically implemented by the initialization module of the electronic device 2.
[0207] Here the root private key r is formed from two first secret scalars ri,r2.
[0208] In other words, the set of at least one first secret scalar, forming the root private key r, has two first secret scalars: rietr2.
[0209] Typically, the root public key R has a value defined as follows: R = [rJ-G + [r2]-H with H an additional public point of the elliptic curve E, the additional public point H being associated with an additional scalar h such that H = [h]-G.
[0210] During this recording step (step El 120), the processor 4 therefore records in a memory of the electronic device 2 the first two secret scalars ri and r2.
[0211] According to a first possibility, the initialization phase (Phase PI) can comprise the following complementary steps (steps El 110, El 112 and El 114).
[0212] Thus the method can comprise, before the recording step (step E1 120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step El 110), that is to say here of the first secret scalar ri and of the first secret scalar r2.
[0213] Typically, the first secret scalar rb and / or the first secret scalar r2, can be calculated by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 12 / 02 / 2019.
[0214] The method is thus particularly secure because the electronic device can ensure the confidentiality of the root private key r alone. In addition, the electronic device has its own root private key r.
[0215] The method then comprises a step of calculating the root public key R from the root private key r (step E1 112).
[0216] Typically, processor 4 may calculate the root public key R as follows: R = [rJ-G + [r2]-H.
[0217] The method can then comprise a step of sending to a configuration device (step E1 114), typically the configuration device 22, the calculated root public key R.
[0218] Thus, advantageously the configuration device can certify the root public key R.
[0219] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0220] The certification of the root public key may consist of the registration of the root public key in a list of at least one trusted public key, or of the cryptographic signature of said root public key, for example with a private certification key issued by a trusted authority.
[0221] The step of calculating the root public key R from the root private key r (step El 112) and the step of sending the root public key R to a configuration device (step El 114) are here executed before the registration step (El 120) but the step of calculating the root public key R from the root private key r (step El 112) and / or the step of sending to a configuration device (step El 114) can be executed after the registration step (El 120) as long as the step of sending to a configuration device (step El 114) is executed after the step of calculating the root public key R from the root private key r (step El 112).
[0222] It will further be noted that the step of sending the root public key R to a configuration device (step E1 114) can be omitted.
[0223] According to a second possibility, the initialization phase (Phase PI) can comprise another additional step (step El 111 described below).
[0224] Thus the method can comprise, before the recording step (step El 120), a reception step (step El 111), from the configuration device, of at least one first secret scalar of the root private key (r), for example the first secret scalar r2, said at least one first secret scalar received from the configuration device being calculated from a master private key.
[0225] Typically, the configuration device has a fourth secret scalar forming the master private key.
[0226] The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.
[0227] Typically, the master private key is a fourth secret scalar m such that R = [m]-G and the configuration device can calculate the first secret scalar r2 as follows:r2 = h '-(m - rj.
[0228] The root public key R can be calculated by the configuration device.
[0229] According to one implementation, the configuration device may have previously calculated the first secret scalar ri, for example by random drawing. In this implementation, during the reception step (step El 111), the electronic device further receives, from the configuration device, the first secret scalar ri.
[0230] According to another implementation, the configuration device may have previously received the first secret scalar r^n from the electronic device, said electronic device having previously calculated the first secret scalar r^, for example by random drawing or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 02 / 12 / 2019.
[0231] According to a third possibility, the initialization phase (Phase PI) can comprise the following different complementary steps (steps El 116, El 117, El 118 and El 119), before the recording step (step El 120).
[0232] Thus the method may comprise a step of determining a first secret scalar of the root private key (r) (step E1 116), for example the first secret scalar ri , typically by random drawing or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 02 / 12 / 2019.
[0233] When the method is implemented by each electronic device of a plurality of electronic devices, the method thus ensures that each of the electronic devices of said plurality uses a root private key r which is specific to it. Thus, the process is more secure.
[0234] The method then comprises a step of homomorphic encryption (step E1 117) of the first determined secret scalar, i.e. of the first secret scalar rb. The homomorphic encryption is for example a Paillier encryption.
[0235] Then the method comprises a step of transmitting to the configuration device the cipher of the first secret scalar determined (step E1 118), that is to say the cipher of the first secret scalar rb
[0236] The method then comprises a step of receiving (step E1 119), from the configuration device, another first secret scalar of the root private key (r). During this step, the electronic device 2 receives the other first secret scalar of the root private key (r) encrypted in the same homomorphic manner, the cipher of said other first secret scalar having been determined from the master private key and the cipher transmitted by the electronic device to the configuration device, and the electronic device 2 decrypts the cipher of the other first secret scalar.
[0237] The method is particularly secure because the determination of the root private key requires cooperation from the configuration device. The security of the method is further increased via the implementation by the electronic device of the determination of a first secret scalar of the root private key r, and the non-disclosure by the electronic device of the first secret scalar determined by said electronic device.
[0238] Typically, the master private key is a fourth secret scalar m such that R = [m]-G and the configuration device can determine the other first secret scalar of the root private key (r), encrypted in the same homomorphic manner, as follows: hom(r2) = h '•( hom(m)- hom(ri)) with hom the homomorphic encryption function and hom(ri) the homomorphically encrypted first secret scalar determined by the electronic device.
[0239] For each of these three possibilities, the configuration device can advantageously certify the root public key R.
[0240] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0241] The certification of the root public key may consist of the registration of the root public key in a list of at least one trusted public key, or of the cryptographic signature of said root public key, for example with a private certification key issued by a trusted authority.
[0242] After the recording step (step El 120), the method then comprises a step (step El220) of calculating a second secret scalar forming a derived private key a equal to f(s, k) where f is a derivation function, s is a non-empty subset of The set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).
[0243] Here, the set of at least one first secret scalar has two first secret scalars ri,r2, and the subset s has only one first secret scalar, the first secret scalar rb
[0244] The third secret scalar k may be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 12 / 02 / 2019.
[0245] According to a first example, the derivation function f can be defined as follows: f(s, k) = k-ri mod n.
[0246] According to a second example, the derivation function f can be defined as follows: f(s, k) = k + ri mod n.
[0247] The method then comprises a step of calculating a derived public key A associated with the second secret scalar a (step E1240), i.e. with the derived private key a.
[0248] Typically, processor 4 may calculate the derived public key A as follows: A = [a]-G.
[0249] According to a first other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the first example described above, the processor 4 can calculate the derived public key A as follows: A = [k]-R - [k.r2].H.
[0250] According to a second other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the second example described above, the processor 4 can calculate the derived public key A as follows: A = R + [k]-G - [r2].H.
[0251] The step of calculating a second secret scalar (step E1220) and the step of calculating a derived public key A (step E1240) are in a phase of the method called the phase of generating a derived private key and a derived public key (phase P2).
[0252] This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.
[0253] The method then comprises a step of generating a zero-knowledge proof (step E1320) that the derived public key A is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar, forming the root private key r associated with the root public key R and 1 being equal to k.
[0254] The step of generating a zero-knowledge proof (step El320) is in a phase of the process called the proof generation phase (phase P3).
[0255] This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.
[0256] The method then comprises a step of transmitting the zero-knowledge proof to the verification device (step E1420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the zero-knowledge proof.
[0257] The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0258] Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the derived private key a, nor the third secret scalar k.
[0259] The step of transmitting the zero-knowledge proof to the verification device (step E1420) is in a phase of the method called the transmission phase (phase P4).
[0260] This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.
[0261] According to one implementation possibility, the zero-knowledge proof is a non-interactive proof.
[0262] The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.
[0263] When the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the non-interactive zero-knowledge disclosure proof during the associated step (step E1320).
[0264] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G + [t2 ]-H where h is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data, and t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.
[0265] The processor 4 also calculates a second intermediate point as follows: S2 = [t3 ]-G where t3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0266] The processor 4 also calculates a third intermediate point as follows: S3 = [t4 ]-R - [t5]-H where t4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data item, and t5 is a fifth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data item.
[0267] The processor 4 then calculates a first digest of an intermediate data item by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by the NIST, the intermediate data item being the concatenation of the first intermediate point Si, the second intermediate point S2, the third intermediate point S3, the root public key R and the derived public key A.
[0268] In other words, c = Ha(Si II S2II S3II R II A), where c is the first condensate and Ha is the hash function.
[0269] Then the processor 4 respectively calculates a first proof scalar sb, a second proof scalar s2, a third proof scalar s3, a fourth proof scalar s4 and a fifth proof scalar s5 as follows: Si = ti + c-ri mod n, s2 = t2 + c- r2 mod n, s3 = t3 + c-rrk mod n, s4 = t4 + ck mod n and s5 = t5 + c- r2-k mod n.
[0270] The zero-knowledge proof is thus made up of the first condensate c, the first proof scalar sb, the second proof scalar s2, the third proof scalar s3, the fourth proof scalar s4 and the fifth proof scalar s5.
[0271] During the step of transmitting the zero-knowledge proof to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar sb, the second proof scalar s2, the third proof scalar s3, the fourth proof scalar s4 and the fifth proof scalar s5.
[0272] The verification device may verify the zero-knowledge proof.
[0273] Typically the verification device can calculate a fourth intermediate point S'i as follows: S'i = [sJ-G + [s2]-H - [c]-R.
[0274] The verification device can also calculate a fifth intermediate point S'2 as follows: S'2 = [s3]-G - [c]-A .
[0275] The verification device can also calculate a sixth intermediate point S'3 as follows: S'3 = [s4]-R - [s5]-H - [c]-A.
[0276] The verification device can then calculate a second condensate from another intermediate data by the hash function, the other intermediate data being the concatenation of the fourth intermediate point S'i, the fifth intermediate point S'2, the sixth intermediate point S'3, the root public key R and the derived public key A.
[0277] In other words, c' = Ha(S' Jl S'2II S'3II R II A), where c' is the second condensate.
[0278] The verification device can then compare the second digest c' with the first digest c. If the second digest c' is equal to the first digest c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0279] The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device 2.
[0280] When the derivation function f used during the step of calculating a second secret scalar (step El220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the zero-disclosure proof of interactive knowledge during the associated step (step El320).
[0281] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G + [t2 ]-H -where 0 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data, and t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.
[0282] The processor 4 also calculates a second intermediate point as follows: S2 = [t3 ]-G where t3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0283] The processor 4 also calculates a third intermediate point as follows: S3 = [t4 ]-G - [t2]-H where t4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0284] The processor 4 then calculates a first digest of an intermediate data item by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by the NIST, the intermediate data item being the concatenation of the first intermediate point If, from the second intermediate point S2, from the third intermediate point S3, from the root public key R and from the derived public key A.
[0285] In other words, c = Ha(SJI S2II S3II R II A), where c is the first condensate and Ha is the hash function.
[0286] Then the processor 4 respectively calculates a first proof scalar sb, a second proof scalar s2, a third proof scalar s3 and a fourth proof scalar s4 as follows: Si = b + c-ri mod n, s2 = t2 + c- r2 mod n, s3 = t3 + c-(r i+k) mod n and s4 = t4 + ck mod n.
[0287] The zero-knowledge proof is thus made up of the first condensate c, the first proof scalar sb, the second proof scalar s2, the third proof scalar s3 and the fourth proof scalar s4
[0288] During the step of transmitting the zero-knowledge proof to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar sb, the second proof scalar s2, the third proof scalar s3 and the fourth proof scalar s4.
[0289] The verification device may verify the zero-knowledge proof.
[0290] Typically the verification device can calculate a fourth intermediate point S'i as follows: S'i = [sJ-G + [s2]-H - [c]-R.
[0291] The verification device can also calculate a fifth intermediate point S'2 as follows: S'2 = [s3]-G - [c]-A .
[0292] The verification device can also calculate a sixth intermediate point S'3 as follows: S'3 = [s4]-R - [s2]-H - [c]-(AR).
[0293] The verification device can then calculate a second digest of another intermediate data by the hash function, the other intermediate data being the concatenation of the fourth intermediate point S'i, the fifth intermediate point S'2, the sixth intermediate point S'2, the root public key R and the derived public key A.
[0294] In other words, c' = Ha(S'ill S'2II S'3II R II A), where c' is the second condensate.
[0295] The verification device can then compare the second digest c' with the first digest c. If the second digest c' is equal to the first digest c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0296] The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example the configuration device and / or the electronic device 2.
[0297] According to another implementation possibility, the zero-knowledge proof is an interactive proof.
[0298] The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.
[0299] The method thus allows the verification device to verify that the electronic device has the root private key r and the third secret scalar k, i.e. the electronic device can carry out at least one processing operation involving all the first secret scalars of the set forming the root private key and at least one processing operation involving the third secret scalar k.
[0300] When the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the zero-disclosure proof of interactive knowledge during the associated step (step E1320).
[0301] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G + [t2 ]-H -where ti is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data, and t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.
[0302] The processor 4 also calculates a second intermediate point as follows: S2 = [t3 ]-G where t3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0303] The processor 4 also calculates a third intermediate point as follows: S3 = [t4 ]-R - [t5]-H where t4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data item, and t5 is a fifth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data item.
[0304] Then the processor 4 calculates respectively a first proof scalar sb a second proof scalar s2, a third proof scalar s3, a fourth proof scalar s4 and a fifth proof scalar s5 as follows: Si = ti + c-ri mod n, s2 = t2 + c- r2 mod n, s3 = t3 + c-rrk mod n, s4 = t4 + ck mod n, s5 = t5 + c- r2-k mod n where c is a challenge scalar previously received by the electronic device tronic 2 from the verification device.
[0305] The zero-knowledge proof is thus made up of the first intermediate point Sb, the second intermediate point S2, the third intermediate point S3, the first proof scalar sb, the second proof scalar s2, the third proof scalar s3, the fourth proof scalar s4 and the fifth proof scalar s5.
[0306] During the step of transmitting the zero-knowledge proof to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first intermediate point Si, the second intermediate point S2, the third intermediate point S3, the first proof scalar Si, the second proof scalar s2, the third proof scalar s3, the fourth proof scalar s4 and the fifth proof scalar s5.
[0307] Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar sb, the second proof scalar s2, the third proof scalar s3, the fourth proof scalar s4 and the fifth proof scalar s5, but after the electronic device 2 has sent to the verification device the first intermediate point Si, the second intermediate point S2 and the third intermediate point S3. The step of generating a zero-knowledge proof (step E1320) and the step of transmitting the zero-knowledge proof to the verification device (step E1420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).
[0308] The verification device may verify the zero-knowledge proof.
[0309] Typically the verification device can calculate a fourth intermediate point S'i as follows: S'i = Si + [c]-R.
[0310] The verification device can also calculate a fifth intermediate point S'2 as follows: S'2 = S2 + [c]-A .
[0311] The verification device can also calculate a sixth intermediate point S'3 as follows: S'3 = S3 + [c]-A .
[0312] The verification device can calculate a seventh intermediate point S” i as follows: S”i = [sJ-G + [s2]-H.
[0313] The verification device can calculate an eighth intermediate point S”2 as follows: S”2 = [s3]-G.
[0314] The verification device can calculate a ninth intermediate point S”3 as follows: S”3 = [s4]-R - [s5]-H.
[0315] The verification device can then compare the fourth point respectively intermediate point S'i with the seventh intermediate point S”î the fifth intermediate point S'2 with the eighth intermediate point S”2, and the sixth intermediate point S'3 with the ninth intermediate point S”3.
[0316] If the fourth intermediate point S'i is equal to the seventh intermediate point S” b if the fifth intermediate point S'2 is equal to the eighth intermediate point S”2, and if the sixth intermediate point S'3 is equal to the ninth intermediate point S”3, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least a first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.
[0317] The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device 2.
[0318] When the derivation function f used during the step of calculating a second secret scalar (step El220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the zero-disclosure proof of interactive knowledge during the associated step (step El320).
[0319] The processor 4 calculates a first intermediate point as follows: Si = [tJ-G + [t2 ]-H -where 0 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data, and t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.
[0320] The processor 4 also calculates a second intermediate point as follows: S2 = [t3 ]-G where t3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0321] The processor 4 also calculates a third intermediate point as follows: S3 = [t4 ]R - [t2]-H where t4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0322] Then the processor 4 calculates respectively a first proof scalar sb a second proof scalar s2, a third proof scalar s3 and a fourth proof scalar s4 as follows: Si = ti + cn mod n, s2 = t2 + c- r2 mod n, s3 = t3 + c-(r i+k) mod n and s4 = t4 + ck mod n where c is a previously received challenge scalar by the electronic device 2 from the verification device.
[0323] The zero-knowledge proof is thus made up of the first intermediate point Sb, the second intermediate point S2, the third intermediate point S3, the first proof scalar sb, the second proof scalar s2, the third proof scalar s3 and the fourth proof scalar s4.
[0324] During the step of transmitting the zero-knowledge proof to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first intermediate point Si, the second intermediate point S2, the third intermediate point S3, the first proof scalar Si, the second proof scalar s2, the third proof scalar s3 and the fourth proof scalar s4.
[0325] Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar sb, the second proof scalar s2, the third proof scalar s3 and the fourth proof scalar s4, but after the electronic device 2 has sent to the verification device the first intermediate point Si, the second intermediate point S2 and the third intermediate point S3. The step of generating a zero-knowledge proof (step E1320) and the step of transmitting the zero-knowledge proof to the verification device (step E1420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).
[0326] The verification device may verify the zero-knowledge proof.
[0327] Typically the verification device can calculate a fourth intermediate point S'i as follows: S'i = Si + [c]-R.
[0328] The verification device can also calculate a fifth intermediate point S'2 as follows: S'2 = S2 + [c]-A .
[0329] The verification device can also calculate a sixth intermediate point S'3 as follows: S'3 = S3 + [c]-(AR).
[0330] The verification device can calculate a seventh intermediate point S” i as follows: S”i = [sJ-G + [s2]-H.
[0331] The verification device can calculate an eighth intermediate point S”2 as follows: S”2 = [s3]-G.
[0332] The verification device can calculate a ninth intermediate point S”3 as follows: S”3 = [s4]-R - [s2]-H.
[0333] The verification device can then respectively compare the fourth intermediate point S'i with the seventh intermediate point S”ile fifth inter- median S'2 with the eighth intermediate point S”2, and the sixth intermediate point S'3 with the ninth intermediate point S”3.
[0334] If the fourth intermediate point S'i is equal to the seventh intermediate point S' ' b if the fifth intermediate point S'2 is equal to the eighth intermediate point S”2, and if the sixth intermediate point S'3 is equal to the ninth intermediate point S”3, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least a first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.
[0335] The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device!.
[0336] In an implementation of the method described with reference to [Fig.4], the additional public point H can be the generator point G, the additional scalar h having the value 1.
[0337] The process is thus simplified.
[0338] In another implementation of the method described with reference to [Fig.4], the additional scalar h is a fifth secret scalar forming an additional private key and the additional public point H is an associated additional public key. Thus, the configuration device has a fifth secret scalar forming an additional private key h associated with an additional public key H, and at least a first secret scalar received from the configuration device is calculated from the master private key and the additional private key.
[0339] Thus, the procedure makes it possible to secure the master private key.
[0340] The additional public point H may be recorded in a memory of the electronic device 2, typically during the initialization phase, for example after receiving it from the configuration device.
[0341] A person skilled in the art will understand that the method described with reference to [Fig.4] with a root private key r formed of two first secret scalars rbr2, can be adapted for a root private key r formed of three, or more, first secret scalars. Furthermore, a person skilled in the art can adapt the method described with reference to [Fig.4] to use a subset s, of the set of at least one first secret scalar, comprising a plurality of first secret scalars.
[0342] When the method described with reference to [Fig.4], is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a root private key r which is specific to it and the same root public key R. The use of a root private key r specific to each electronic device of the plurality makes the method more secure against side-channel attacks aimed at obtaining a root private key r. In addition, verification is simplified because it requires the use of a single root public key R, which is common to all the electronic devices of said plurality.
[0343] Each of the implementation modes described above with reference to figures 3 and 4, implements operations in a finite group Gr of prime order n, of points of an elliptic curve E.
[0344] Each of these implementation modes can be adapted to implement operations in a multiplicative subgroup of order q of the multiplicative group of a ring Fp, Fp being a ring of integers modulo p, p being a prime number, and q being a prime factor of p-1. Fp is therefore a finite field.
[0345] The finite field and the multiplicative subgroup of order q are defined by a set of parameters comprising a generator G which is a public integer of the multiplicative subgroup of order q. This generator G is also predetermined and can in practice be stored in the electronic device 2, for example in its storage block 6.
[0346] [Fig.5] represents in the form of a flowchart the main steps of a cryptographic processing method according to a third mode of implementation of the invention, which is a possibility of such an adaptation of the mode of implementation described with reference to [Fig.3].
[0347] Furthermore, like each of the implementation modes described above with reference to Figures 3 and 4, the implementation mode described with reference to [Fig.5], implements algebraic calculations using algebraic operations (addition, product, subtraction) on scalars.
[0348] The method according to this third mode of implementation is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.
[0349] According to a recording step E2120, the processor 4 records in a memory of the electronic device 2 a root private key r.
[0350] This step is in a phase of the method called the initialization phase (Phase PI) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R.
[0351] This initialization phase is typically implemented by the initialization module of the electronic device 2.
[0352] Here the root private key r is formed from a single first secret scalar rb
[0353] In other words, the set of at least one first secret scalar, forming the root private key r, has a single first secret scalar, rb
[0354] The method is thus simplified. The method allows the use of a single root private key r for a given root public key R. The method also allows the use of a single root public key R for a given root private key r.
[0355] Typically the root public key R has a value defined as follows: R = Ci'' mod p-
[0356] According to one example, when the method is implemented by each electronic device of a plurality of electronic devices, the same first secret scalar and the same root public key R are used for each of the electronic devices of said plurality. Thus, the verification is simplified because it requires the use of a single and unique root public key R, which is common to all the electronic devices of said plurality.
[0357] According to another example, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality uses a first secret scalar and a root public key R which are specific to it, which makes the method more secure.
[0358] During this recording step (step E2120), the processor 4 therefore records in a memory of the electronic device 2 the first secret scalar rb
[0359] The initialization phase (Phase PI) may comprise the following additional steps (steps E2110, E2112 and E2114).
[0360] Thus the method can comprise, before the recording step (step E2120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step E2110), that is to say here of the first secret scalar ri
[0361] Typically, the first secret scalar can be calculated by random sampling or by applying a non-clonable physical function, for example a function as described in the paper 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 12 / 02 / 2019.
[0362] The method is thus particularly secure because the electronic device can ensure the confidentiality of the root private key r alone. In addition, the electronic device has its own root private key r.
[0363] The method then comprises a step of calculating the root public key R from the root private key r (step E2112).
[0364] Typically, processor 4 may calculate the root public key R as follows: R = Gn mod p-
[0365] The method can then comprise a step of sending the key to a configuration device (step E2114), typically the configuration device 22. public calculated R root.
[0366] Thus, advantageously the configuration device can certify the root public key R.
[0367] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0368] The certification of the root public key may consist of the registration of the root public key in a list of at least one trusted public key, or of the cryptographic signature of said root public key, for example with a private certification key issued by a trusted authority.
[0369] The step of calculating the root public key R from the root private key r (step E2112) and the step of sending the root public key R to a configuration device (step E2114) are here executed before the registration step (E2120) but the step of calculating the root public key R from the root private key r (step E2112) and / or the step of sending to a configuration device (step E2114) can be executed after the registration step (E2120) as long as the step of sending to a configuration device (step E2114) is executed after the step of calculating the root public key R from the root private key r (step E2112).
[0370] It will further be noted that the step of sending the root public key R to a configuration device (step E2114) can be omitted.
[0371] According to another possibility, the initialization phase (Phase PI) can comprise other complementary steps (following steps E2111, E2112 and E2114).
[0372] Thus the method can comprise, before the recording step (step E2120), a reception step (step E2111), from the configuration device, of at least a first secret scalar of the root private key (r), that is to say here of the first secret scalar rb, said at least a first secret scalar received from the configuration device being calculated from a master private key.
[0373] Typically, the configuration device has a fourth secret scalar forming the master private key.
[0374] The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.
[0375] Here the root private key r is formed from a single first secret scalar rb the electronic device therefore receives from the configuration device, all the first secret scalars of the set forming the root private key.
[0376] Thus, the efficiency of the method is increased by limiting the interactions between the configuration device and the electronic device.
[0377] According to one example, the first secret scalar received from the configuration device is the master private key.
[0378] According to another example, the first secret scalar received from the configuration device can be derived by the configuration device from the master private key using any suitable derivation function well known to those skilled in the art.
[0379] The root public key R can be calculated by the configuration device.
[0380] According to another possibility, the method can also comprise a calculation step by the electronic device 2 of the root public key R from the root private key r (step E2112) and a step of sending to the configuration device (step E2114) the calculated root public key R.
[0381] The step of calculating the root public key R from the root private key r (step E2112) and the step of sending the root public key R to a configuration device (step E2114) are illustrated in [Fig.5] before the recording step (E2120) but when they are not omitted after the receiving step (step E2111), the step of calculating the root public key R from the root private key r (step E2112) and / or the step of sending to a configuration device (step E2114) can be executed after the recording step (E2120) as long as the step of sending to a configuration device (step E2114) is executed after the step of calculating the root public key R from the root private key r (step E2112).
[0382] Advantageously, the configuration device can certify the root public key R.
[0383] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0384] The certification of the root public key may consist of the registration of the root public key in a list of at least one trusted public key, or of the cryptographic signature of said root public key, for example with a private certification key issued by a trusted authority.
[0385] After the recording step (step E2120), the method then comprises a step (step E2220) of calculating a second secret scalar forming a derived private key a equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).
[0386] Here, the set of at least one first secret scalar has a single first secret scalar, the first secret scalar rb and the subset s therefore has a single first secret scalar, the first secret scalar rb
[0387] The third secret scalar k may be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02 / 12 / 2019.
[0388] According to one example, the derivation function f can be defined as follows: f(s, k) = k-ri mod q.
[0389] The method then comprises a step of calculating a derived public key A associated with the second secret scalar a (step E2240), i.e. with the derived private key a.
[0390] Typically, processor 4 may calculate the derived public key A as follows: A = Ga mod p-
[0391] According to another possibility, when the derivation function f used during the step of calculating a second secret scalar (step E2220) is defined according to the example described above, the processor 4 can calculate the derived public key A as follows: A - Ra mod p-
[0392] The step of calculating a second secret scalar (step E2220) and the step of calculating a derived public key A (step E2240) are in a phase of the method called the phase of generating a derived private key and a derived public key (phase P2).
[0393] This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.
[0394] The method then comprises a step of generating a zero-knowledge proof (step E2320) that the derived public key A is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar, forming the root private key r associated with the root public key R and 1 being equal to k.
[0395] The step of generating a zero-knowledge proof (step E2320) is in a phase of the method called the proof generation phase (phase P3).
[0396] This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.
[0397] The method then comprises a step of transmitting the zero-knowledge proof to the verification device (step E2420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the zero-knowledge proof.
[0398] The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0399] Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the private key derivative a, nor the third secret scalar k.
[0400] The step of transmitting the zero-knowledge proof to the verification device (step E2420) is in a phase of the method called the transmission phase (phase P4).
[0401] This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.
[0402] According to one implementation possibility, the zero-knowledge proof is a non-interactive proof.
[0403] The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.
[0404] When the derivation function f used during the step of calculating a second secret scalar (step E2220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the non-interactive zero-knowledge disclosure proof during the associated step (step E2320).
[0405] The processor 4 calculates a first intermediate element as follows: g — qù mod p where ti is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.
[0406] Processor 4 also calculates a second intermediate element as follows: — p1 p where t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0407] The processor 4 then calculates a first digest of an intermediate data item by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by the NIST, the intermediate data item being the concatenation of the first intermediate element Si, of the second intermediate element S2, of the root public key R and of the derived public key A.
[0408] In other words, c = Ha(SJI S2IIRIIA), where c is the first condensate and Ha is the hash function.
[0409] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = ti + c-ri mod q and s2 = t2 + ck mod q.
[0410] The zero-knowledge proof is thus made up of the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0411] During the step of transmitting the zero-knowledge proof to the verification device (step E2420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0412] The verification device may verify the zero-knowledge proof.
[0413] Typically the verification device can calculate a third intermediate element S'i as follows: $' — Q -R mod p-
[0414] The verification device can also calculate a fourth intermediate element S'2 as follows: S'2 = R • A'c mod p •
[0415] The verification device can then calculate a second digest of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate element S'i, of the fourth intermediate element S'2, of the root public key R and of the derived public key A.
[0416] In other words, c' = Ha(S' Jl S'JIRIIA), where c' is the second condensate.
[0417] The verification device can then compare the second digest c' with the first digest c. If the second digest c' is equal to the first digest c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0418] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device 2.
[0419] According to another implementation possibility, the zero-knowledge proof is an interactive proof.
[0420] The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.
[0421] The method thus allows the verification device to verify that the electronic device has the root private key r and the third secret scalar k, i.e. the electronic device can carry out at least one processing operation involving all the first secret scalars of the set forming the root private key and at least one processing operation involving the third secret scalar k.
[0422] When the derivation function f used during the step of calculating a second secret scalar (step E2220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the zero-disclosure proof of interactive knowledge during the associated step (step E2320).
[0423] The processor 4 calculates a first intermediate element as follows: _ qù niod p where ti is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.
[0424] The processor 4 also calculates a second intermediate element as follows: p where t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data.
[0425] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = ti + c-ri mod q and s2 = t2 + ck mod q, where c is a challenge scalar previously received by the electronic device from the verification device.
[0426] The zero-knowledge proof is thus made up of the first intermediate element Si, the second intermediate element S2, the first proof scalar Si and the second proof scalar s2.
[0427] During the step of transmitting the zero-knowledge proof to the verification device (step E2420), the electronic device 2 can then transmit to the verification device the first intermediate element Sb, the second intermediate element S2, the first proof scalar si and the second proof scalar s2.
[0428] Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar si and the second proof scalar s2, but after the electronic device 2 has sent to the verification device, the first intermediate element Si and the second intermediate element S2. The step of generating a zero-knowledge proof (step E2320) and the step of transmitting the zero-knowledge proof to the verification device (step E2420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).
[0429] The verification device may verify the zero-knowledge proof.
[0430] Typically the verification device can calculate a third intermediate element S'i as follows: S'j = S। ■ R mod p.
[0431] The verification device can also calculate a fourth intermediate element S'2 as follows: S'2 = S2-Ac mod p.
[0432] The verification device can calculate a fifth intermediate element S” i as follows: = Gsi moc] p.
[0433] The verification device can calculate a sixth intermediate element S”2 as follows: S"2 - R'] mod p-
[0434] The verification device can then respectively compare the third intermediate element S'i with the fifth intermediate element S”i, and the fourth intermediate element S'2 with the sixth intermediate element S”2.
[0435] If the third intermediate element S'i is equal to the fifth intermediate element S”i, and if the fourth intermediate element S'2 is equal to the sixth intermediate element S”2, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least a first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.
[0436] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device 2.
[0437] A person skilled in the art will understand that the method described with reference to [Fig.5] with a root private key r formed from a single first secret scalar rb can be adapted for a root private key r formed from a plurality of first secret scalars.
[0438] Thus, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a root private key r which is specific to it and the same root public key R. The use of a root private key r specific to each electronic device of the plurality makes the method more secure against side channel attacks aimed at obtaining a root private key r. Furthermore, the verification is simplified because it requires the use of a single root public key R, which is common to all the electronic devices of said plurality.
[0439] [Fig.6] represents in the form of a flowchart the main steps of a method of cryptographic processing according to a fourth mode of implementation of the invention.
[0440] In this fourth mode of implementation, the method implements operations in a group of unknown order p'-q' with p' and q' two prime numbers such that p = 2-p'+l and q=2-q'+l are also two prime numbers. The operations are done in a ring of integers modulo N where N = pq. N is therefore a module of type RSA.
[0441] A generator G is also used here. This generator G is an element of order p'-q' belonging to a group QR(N) defined as being the group of quadratic residues modulo N. QR(N) is a subgroup of the integers modulo N and deprived of zero.
[0442] This generator G is also predetermined and can in practice be stored in the electronic device 2, for example in its storage block 6.
[0443] Furthermore, as each of the methods described above with reference to Figures 3 to 5, the method described with reference to [Fig.6], implements algebraic calculations using algebraic operations (addition, product, subtraction) on scalars.
[0444] This method is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.
[0445] According to a recording step E3120, the processor 4 records in a memory of the electronic device 2 a root private key r.
[0446] This step is in a phase of the method called the initialization phase (Phase PI) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R.
[0447] This initialization phase is typically implemented by the initialization module of the electronic device 2.
[0448] Here the root private key r is formed from a single first secret scalar rb The first secret scalar ri is an integer belonging to an interval S(v,m) defined as follows: S(v,m) = [2V - 2m + 1, 2V + 2m - 1], with v and m positive integers, i.e. greater than or equal to 0.
[0449] In other words, the set of at least one first secret scalar, forming the root private key r, has a single first secret scalar, rb
[0450] The method is thus simplified. The method allows the use of a single root private key r for a determined root public key R. The method also allows the use of a single root public key R for a determined root private key r.
[0451] Typically R has a value defined as follows: R = (f mod N-
[0452] According to one example, when the method is implemented by each electronic device of a plurality of electronic devices, the same first secret scalar and the same root public key R are used for each of the electronic devices of said plurality. Thus, the verification is simplified because it requires the use of a single and unique root public key R, which is common to all the electronic devices of said plurality.
[0453] According to another example, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality uses a first secret scalar and a root public key R which are specific to it, which makes the method more secure.
[0454] During this recording step (step E3120), the processor 4 therefore records in a memory of the electronic device 2 the first secret scalar rb
[0455] The initialization phase (Phase PI) can also include the following additional steps (steps E3110, E3112 and E3114).
[0456] Thus the method can comprise, before the recording step (step E3120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step E3110), that is to say here of the first secret scalar ri
[0457] Typically, the first secret scalar can be calculated by random sampling or by applying a non-clonable physical function, for example a function as described in the paper 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 12 / 02 / 2019.
[0458] The method is thus particularly secure because the electronic device can ensure the confidentiality of the root private key r alone. In addition, the electronic device has its own root private key r.
[0459] The method then comprises a step of calculating the root public key R from the root private key r (step E3112).
[0460] Typically, processor 4 may calculate the root public key R as follows: R = Gr' mod N-
[0461] The method can then comprise a step of sending to a configuration device (step E3114), typically the configuration device 22, the calculated root public key R.
[0462] Thus, advantageously the configuration device can certify the root public key R.
[0463] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0464] The certification of the root public key may consist of the registration of the root public key in a list of at least one trusted public key, or of the cryptographic signature of said root public key, for example with a private certification key issued by a trusted authority.
[0465] The step of calculating the root public key R from the root private key r (step E3112) and the step of sending the root public key R to a configuration device (step E3114) are here executed before the registration step (E3120) but the step of calculating the root public key R from the root private key r (step E3112) and / or the step of sending to a configuration device (step E3114) can be executed after the registration step (E3120) as long as the step of sending to a configuration device (step E3114) is executed after the step of calculating the root public key R from the root private key r (step E3112).
[0466] It will further be noted that the step of sending the root public key R to a configuration device (step E3114) can be omitted.
[0467] According to another possibility, the initialization phase (Phase PI) can comprise other complementary steps (following steps E3111, E3112 and E3114).
[0468] Thus the method can comprise, before the recording step (step E3120), a step of receiving (step E3111), from the configuration device, at least a first secret scalar of the root private key (r), that is to say here the first secret scalar rb said at least a first secret scalar received from the configuration device being calculated from a master private key. The master private key is an integer belonging to the interval S(v,m).
[0469] Typically, the configuration device has a fourth secret scalar forming the master private key.
[0470] The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.
[0471] Here the root private key r is formed from a single first secret scalar rb the electronic device therefore receives from the configuration device, all the first secret scalars of the set forming the root private key.
[0472] Thus, the efficiency of the method is increased by limiting the interactions between the configuration device and the electronic device.
[0473] According to one example, the first secret scalar received from the configuration device is the master private key.
[0474] According to another example, the first secret scalar received from the configuration device can be derived by the configuration device from the master private key using any suitable derivation function well known to those skilled in the art.
[0475] The root public key R can be calculated by the configuration device.
[0476] According to another possibility, the method may also comprise a step of calculating the root public key R from the root private key r (step E3112) and a step of sending to the configuration device (step E3114) the calculated root public key R.
[0477] The step of calculating the root public key R from the root private key r (step E3112) and the step of sending the root public key R to a configuration device (step E3114) are illustrated in [Fig.6] before the recording step (E3120) but when they are not omitted after the receiving step (step E3111), the step of calculating the root public key R from the root private key r (step E3112) and / or the step of sending to a configuration device (step E3114) can be executed after the recording step (E3120) as long as the step of sending to a configuration device (step E3114) is executed after the step of calculating the root public key R from the root private key r (step E3112).
[0478] Advantageously, the configuration device can certify the root public key R.
[0479] The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.
[0480] The certification of the root public key may consist of the registration of the root public key in a list of at least one trusted public key, or of the cryptographic signature of said root public key, for example with a private certification key issued by a trusted authority.
[0481] After the recording step (step E3120), the method then comprises a step (step E3220) of calculating a second secret scalar forming a derived private key a equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).
[0482] Here, the set of at least one first secret scalar has a single first secret scalar, the first secret scalar rb and the subset s therefore has a single first secret scalar, the first secret scalar rb
[0483] Furthermore, the second secret scalar a and the third secret scalar are integers belonging to the interval S(v,m).
[0484] The third secret scalar k may be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 12 / 02 / 2019.
[0485] According to one example, the differentiation function f can be defined as follows: f(s, k) = kn.
[0486] The method then comprises a step of calculating a derived public key A associated with the second secret scalar a (step E3240), i.e. with the derived private key a.
[0487] Typically, processor 4 may calculate the derived public key A as follows: A^GflmodN-
[0488] According to another possibility, when the derivation function f used during the step of calculating a second secret scalar (step E3220) is defined according to the example described above, the processor 4 can calculate the derived public key A as follows: A = R* mod N-
[0489] The step of calculating a second secret scalar (step E3220) and the step of calculating a derived public key A (step E3240) are in a phase of the method called the phase of generating a derived private key and a derived public key (phase P2).
[0490] This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.
[0491] The method then comprises a step of generating a zero-knowledge proof (step E3320) that the derived public key A is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar, forming the root private key r associated with the root public key R and 1 being equal to k.
[0492] The step of generating a zero-knowledge proof (step E3320) is in a phase of the method called the proof generation phase (phase P3).
[0493] This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.
[0494] The method then comprises a step of transmitting the zero-knowledge proof to the verification device (step E3420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the zero-knowledge proof.
[0495] The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0496] Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the derived private key a, nor the third secret scalar k.
[0497] The step of transmitting the zero-knowledge proof to the verification device (step E3420) is in a phase of the method called the transmission phase (phase P4).
[0498] This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.
[0499] According to one implementation possibility, the zero-knowledge proof is a non-interactive proof.
[0500] The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.
[0501] When the derivation function f used during the step of calculating a second secret scalar (step E3220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the non-interactive zero-knowledge disclosure proof during the associated step (step E3320).
[0502] The processor 4 calculates a first intermediate element as follows: gj — qù niQçJ where ti is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a data item, and belonging to an interval S(v,e-(m+k')+2) defined as follows: S(v,e-(m+k')+2) = [2V - 2e (m+k )+2 + 1, 2V + 2e (m+k )+2 - 1] with e and k' predetermined parameters such that e is an integer whose value is strictly greater than one and k' is a natural number.
[0503] The processor 4 also calculates a second intermediate element as follows: niof] jç where t2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data, and belonging to the interval S(v,e-(m+k')+2).
[0504] The processor 4 then calculates a first digest of an intermediate data item by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by the NIST, the intermediate data item being the concatenation of the first intermediate element Si, of the second intermediate element S2, of the root public key R and of the derived public key A.
[0505] In other words, c = Ha(SJI S2IIRIIA), where c is the first condensate and Ha is the hash function.
[0506] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = ti - c-(rr 2V) and s2 = t2 - c-(k - 2V).
[0507] The zero-knowledge proof is thus made up of the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0508] During the step of transmitting the zero-knowledge proof to the verification device (step E3420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar Si and the second proof scalar s2.
[0509] The verification device may verify the zero-knowledge proof.
[0510] Typically the verification device can verify that the first proof scalar Si and the second proof scalar s2 received belong to the interval S(v,e-(m+k')+2).
[0511] The verification device can also calculate a third intermediate element S' * as follows: S\ = Gs'-(r-> .G2Y mod N-
[0512] The verification device can calculate a fourth intermediate element S'2 as follows: = R , \ > , mod N-
[0513] The verification device can then calculate a second condensate of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate element S'i, of the fourth inter- mediator S'2, of the root public key R and of the derived public key A.
[0514] In other words, c' = Ha(S' Jl S'2IIRIIA), where c' is the second condensate.
[0515] The verification device can then compare the second digest c' with the first digest c. If the second digest c' is equal to the first digest c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.
[0516] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device 2.
[0517] According to another implementation possibility, the zero-disclosure proof of knowledge is interactive proof.
[0518] The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.
[0519] The method thus allows the verification device to verify that the electronic device electronic device has the root private key r and the third secret scalar k, that is to say that the electronic device can carry out at least one processing involving all the first secret scalars of the set forming the root private key and at least one processing involving the third secret scalar k.
[0520] When the derivation function f used during the step of calculating a second secret scalar (step E3220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the zero-disclosure proof of interactive knowledge during the associated step (step E3320).
[0521] The processor 4 calculates a first intermediate element as follows: g— qù moc[ N where ti is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a data item, belonging to an interval S(v,e-(m+k')+2) defined as follows: S(v,e-(m+k')+2) = [2V - 2e (m+k )+2 + 1, 2V + 2e (m+k )+2 - 1] with e and k' predetermined parameters such that e is an integer whose value is strictly greater than one and k' is a natural integer.
[0522] The processor 4 also calculates a second intermediate element as follows: — pk mod N °ù k is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another data, belonging to the interval S(v,e-(m+k')+2).
[0523] Then the processor 4 respectively calculates a first proof scalar Si and a second proof scalar s2 as follows: Si = ti - c-(rr 2V) and s2 = 0 - c-(k - 2V), where c is a challenge scalar previously received by the electronic device from the verification device.
[0524] The zero-knowledge proof is thus made up of the first intermediate element SI, the second intermediate element S2, the first proof scalar si and the second proof scalar s2.
[0525] During the step of transmitting the zero-knowledge proof to the verification device (step E3420), the electronic device 2 can then transmit to the verification device the first intermediate element SI, the second intermediate element S2, the first proof scalar si and the second proof scalar s2.
[0526] Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar si and the second proof scalar s2, but after the electronic device 2 has sent to the verification device, the first intermediate element Si and the second intermediate element S2. The step of generating a zero-knowledge proof (step E3320) and the step of transmitting the zero-knowledge proof to the verification device (step E3420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).
[0527] The verification device may verify the zero-knowledge proof.
[0528] Typically the verification device can verify that the first proof scalar Si and the second proof scalar s2 received belong to the interval S(v,e-(m+k')+2).
[0529] The verification device can also calculate a third intermediate element S' , as follows:s, = S] । K ।( । ni(X| N
[0530] The verification device can calculate a fourth intermediate element S'2 as follows: = mod N-
[0531] The verification device can calculate a fifth intermediate element S” i as follows: S«} = GS| mal N-
[0532] The verification device can calculate a sixth intermediate element S”2 as follows: S"2 = R<2 mod N-
[0533] The verification device can then respectively compare the third intermediate element S'i with the fifth intermediate element S”i and the fourth element intermediate S'2 with the sixth intermediate element S”2.
[0534] If the third intermediate element S'i is equal to the fifth intermediate element S”i, and if the fourth intermediate element S'2 is equal to the sixth intermediate element S”2, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least a first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.
[0535] The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and / or the electronic device.
[0536] A person skilled in the art will understand that the method described with reference to [Fig.6] with a root private key r formed from a single first secret scalar rb can be adapted for a root private key r formed from a plurality of first secret scalars.
[0537] Thus, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a root private key r which is specific to it and the same root public key R. The use of a root private key r specific to each electronic device of the plurality makes the method more secure against side channel attacks aimed at obtaining a root private key r. Furthermore, the verification is simplified because it requires the use of a single root public key R, which is common to all the electronic devices of said plurality.
[0538] Advantageously, whatever the mode of implementation of the cryptographic processing method according to the invention, the initialization phase (phase PI) can be implemented at an initialization site, and the phase of generation of a derived private key a and a derived public key A (phase P2) is implemented at another site distinct from the initialization site.
[0539] Implementing the initialization phase and the generation phase on separate sites improves the security of the process.
Claims
Claims
1. A cryptographic processing method implemented by an electronic device, the electronic device cooperating with a verification device, and said method comprising: i) an initialization phase (PI) of a set of at least one first secret scalar (rl; r2) forming a root private key (r) associated with a root public key (R), the initialization phase comprising the following step: - recording (El20; El 120; E2120; E3120) of the root private key (r) in a memory of the electronic device, and ii) a generation phase (P2) of a derived private key (a) and a derived public key (A), comprising the following steps: - calculating (E220; E1220; E2220; E3220) a second secret scalar forming the derived private key (a) equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least a first secret scalar, and k is a third secret scalar, - calculation (E240; E1240; E2240;E3240) of the derived public key (A) associated with the second secret scalar (a), then iii) a proof generation phase (P3) comprising the following step: - generation (E320; E1320; E2320; E3320) of a zero-knowledge proof that the derived public key (A) is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar (ri; r2) forming the root private key (r) associated with the root public key (R) and 1 being equal to k, and iv) a transmission phase (P4) comprising the following step: - transmission (E420; E1420; E2420; E3420) of the zero-knowledge proof to the verification device.;
2. Cryptographic processing method according to the preceding claim in which - the electronic device further cooperates with a configuration device during the initialization phase, and - the root public key (R) is certified by the configuration device.
3. A cryptographic processing method according to any one of the re- preceding claims in which the initialization phase further comprises the following steps: - calculation (El 10; El 110; E2110; E3110), before the recording step, of all the first secret scalars of the set forming the root private key (r), at least one first secret scalar of the root private key (r) being calculated by random drawing or by application of a non-clonable physical function, then - calculation (El 12; El 112; E2112; E3112) of the root public key (R) from the root private key (r).
4. Cryptographic processing method according to claim 2 in which the configuration device has a fourth secret scalar forming a master private key associated with the root public key (R), and in which the initialization phase further comprises the following step before the recording step: - reception (El 11; El 111; El 119; E2111; E3111), from the configuration device, of at least a first secret scalar of the root private key (r), said at least a first secret scalar received from the configuration device being calculated from the master private key.
5. Cryptographic processing method according to claim 4 wherein the configuration device further has a fifth secret scalar forming an additional private key (h) associated with an additional public key (H), and wherein said at least one first secret scalar received from the configuration device is calculated from the master private key and the additional private key.
6. Cryptographic processing method according to any one of claims 1 to 4 in which the root private key (r) is formed from a single first secret scalar (rj.
7. Cryptographic processing method according to any one of claims 1 to 5 in which the root private key (r) is formed from a plurality of first secret scalars (ri; r2).
8. A cryptographic processing method according to claim 7 when dependent on claim 4, wherein the initialization phase further comprises the following steps before the recording step: - determination (El 116) of a first secret scalar of the root private key (r), then - homomorphic encryption (El 117) of the determined first secret scalar, then - transmission (El 118) to the configuration device of the ciphertext of the first determined secret scalar, and in which during the reception step (El 119) of the initialization phase, the electronic device: - receives another first secret scalar of the root private key (r), encrypted in the same homomorphic manner, the ciphertext of said other first secret scalar having been determined from the master private key and the ciphertext transmitted by the electronic device to the configuration device, and - decrypts the ciphertext of the other first secret scalar to obtain said at least one first secret scalar received from the configuration device.
9. Cryptographic processing method according to claim 8 in which the determination (El 116) of a first secret scalar of the root private key (r) is by random drawing or by application of a non-clonable physical function.
10. A cryptographic processing method according to any one of the preceding claims wherein the third secret scalar k is determined by the electronic device by random selection or by application of a non-clonable physical function.
11. Cryptographic processing method according to any one of the preceding claims in which - the initialization phase is implemented at an initialization site, and - the phase of generating a derived private key (a) and a derived public key (A) is implemented at another site distinct from the initialization site.
12. Computer program comprising instructions executable by a processor (4) and adapted to implement a method according to any one of claims 1 to 11 when these instructions are executed by the processor (4).
13. Electronic cryptographic processing device adapted to cooperate with a verification device and comprising: i) an initialization module configured to carry out a phase of initialization of a set of at least one first secret scalar (ri; r 2) forming a root private key (r) associated with a root public key (R), the initialization phase comprising the following step: - recording the root private key (r) in a memory of the electronic device, ii) a key generation module configured to carry out a phase of generation of a derived private key (a) and a derived public key (A), comprising the following steps: - calculation of a second secret scalar forming the derived private key (a) equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar, - calculation of the derived public key (A) associated with the second secret scalar (a), iii) a proof generation module configured to perform a proof generation phase comprising the following step: - generation of a zero-knowledge proof that the derived public key (A) is associated with a scalar equal to f(u, 1), u being the subset s of the set of at least one first secret scalar (ri. r2) forming the root private key (r) associated with the root public key (R) and 1 being equal to k, iv) a transmission module configured to carry out a transmission phase comprising the following step: - transmission of the zero-knowledge proof to the verification device.