Language selection

Search

Patent 3163728 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 3163728
(54) English Title: PROCEDE DE COGENERATION D'UN MATERIEL CRYPTOGRAPHIQUE PARTAGE, DISPOSITIFS, SYSTEME ET PROGRAMME D'ORDINATEUR CORRESPONDANT
(54) French Title: METHOD FOR COGENERATING A SHARED CRYPTOGRAPHIC MATERIAL, DEVICES, SYSTEM AND CORRESPONDING COMPUTER PROGRAM
Status: Report sent
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04L 9/08 (2006.01)
(72) Inventors :
  • GERAUD, REMI (France)
(73) Owners :
  • BANKS AND ACQUIRERS INTERNATIONAL HOLDING (France)
(71) Applicants :
  • BANKS AND ACQUIRERS INTERNATIONAL HOLDING (France)
(74) Agent: OYEN WIGGS GREEN & MUTALA LLP
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 2020-11-25
(87) Open to Public Inspection: 2021-06-10
Examination requested: 2022-09-30
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/EP2020/083427
(87) International Publication Number: WO2021/110518
(85) National Entry: 2022-06-03

(30) Application Priority Data:
Application No. Country/Territory Date
FR1913816 France 2019-12-05

Abstracts

English Abstract

The disclosure relates to a method for cogenerating a shared cryptographic material, said method being implemented within a first electronic device, the first electronic device being connected to a second electronic cogeneration device and to a third electronic cogeneration device. Such a method comprises: - a step (P10) of determining a shared encryption material (pkx), depending on the set of cogeneration parameters ECG; - a step (P20) of transmitting the shared encryption material (pkx) - a step (P30) of receiving corresponding shared encryption materials (pky, pkz) originating from other devices; - a step (P40) of calculating a shared random variable (mx), as a function of the shared encryption materials (pkx, pky, pkz) and of the set of cogeneration parameters ECG; - a step (P50) of transmitting a masked form (Ox) of the shared random variable (mx); - a step (P60) of receiving masked forms (Oy, Oz) of the corresponding shared random variables (my, mz) originating from the other devices; - a step (P70) of calculating the definitive random variable (ad), as a function of the masked forms (Ox, Oy,Oz) of the shared random variables (mx, my, mz) and the set of cogeneration parameters ECG.


French Abstract

La divulgation se rapporte à un procédé de cogénération d'un matériel cryptographique partagé, procédé mis en uvre au sein d'un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération. Un tel procédé comprend: - une étape de détermination (P10) d'un matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG; - une étape de transmission (P20) dudit d'un matériel de chiffrement partagé (pkx) - une étape de réception (P30) des matériels de chiffrement partagés (pky, pkz) correspondants en provenance des autres dispositifs; - une étape de calcul (P40) d'un alea partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG; - une étape de transmission (P50) d'une forme masquée (Ox) dudit alea partagé (mx); - une étape de réception (P60) de forme masquées (Oy, Oz) des aléas partagés (my, mz) correspondants en provenance des autres dispositifs; - une étape de calcul (P70) de l'aléa définitif (ad), en fonction des formes masquées (Ox, Oy,Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG.

Claims

Note: Claims are shown in the official language in which they were submitted.


16
Revendications
1. Procédé de cogénération d'un matériel cryptographique partagé, procédé
mis en uvre au
sein d'un premier dispositif électronique, ledit premier dispositif
électronique étant
connecté à un deuxième dispositif électronique de cogénération et à un
troisième dispositif
électronique de cogénération, procédé caractérisé en ce qu'il comprend :
- une étape de détermination (P10) d'un matériel de chiffrement partagé
(pkx), en fonction
dudit ensemble de paramètres de cogénération ECG ;
- une étape de transmission (P20) dudit d'un matériel de chiffrement
partagé (pkx)
- une étape de réception (P30) des matériels de chiffrement partagés (pky,
pkz)
correspondants en provenance des autres dispositifs ;
- une étape de calcul (P40) d'un alea partagé (mx), en fonction desdits
matériels de
chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de
cogénération
ECG ;
- une étape de transmission (P50) d'une forme masquée (Ox) dudit alea
partagé (mx) ;
- une étape de réception (P60) de forme masquées (0y, Oz) des aléas
partagés (my, mz)
correspondants en provenance des autres dispositifs ;
- une étape de calcul (P70) de l'aléa définitif (ad), en fonction des
formes masquées (Ox, 0y,
Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de
cogénération
ECG ;.
2. Procédé de cogénération selon la revendication 1 caractérisé en ce que
l'étape de
détermination (P10) du matériel de chiffrement partagé (pkx), en fonction
dudit ensemble
de paramètres de cogénération ECG comprend :
- une étape de sélection, au sein d'un groupe cyclique G, d'un nombre sx,
plus petit que p ;
- une étape de calcul du matériel de chiffrement partagé (pkx) en
effectuant une opération
du nombre sx avec le générateur g du groupe G.
3. Procédé de cogénération selon la revendication 1 caractérisé en ce que
l'étape de calcul
(P40) de l'aléa partagé (mx), en fonction desdits matériels de chiffrement
partagés (pkx,
pky, pkz) et dudit ensemble de paramètres de cogénération ECG comprend :
- une étape d'obtention d'un nombre aléatoire rx ;

17
- une étape de calcul de l'aléa partagé rx à partir du nombre aléatoire rx
et des matériels de
chiffrement partagés pkx, pky, pkz et d'une fonction de hachage H ;
4. Procédé de cogénération selon la revendication 1 caractérisé en ce que
l'étape de calcul
(P70) de l'aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz)
desdits aléas
partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG
comprend :
- une étape d'addition des formes masquées (Ox, Oy, Oz) ; et
- une étape de hachage, à l'aide d'une fonction de hachage H, du résultat
de l'addition
précédente, délivrant m'aléa définitif (ad).
5. Procédé de cogénération selon la revendication 2 caractérisé en ce que
le groupe cyclique
G appartient au groupe comprenant :
- Curve25519 ;
- sec256p ;
- head 25619 ;
- Curve448.
6. Procédé de cogénération selon l'une des revendications 3 et 4
caractérisé en ce que ladite
fonction de hachage appartient au groupe comprenant :
- SHA-1 ;
- MD5 ;
- SHA-3, en mode SHAKE128 ;
7. Procédé de cogénération selon la revendication 1 caractérisé en ce qu'il
comprend en outre
une étape de vérification de la validité de l'aléa définitif (ad) comprenant
une génération
d'un nombre aléatoire et un calcul d'une valeur de hachage d'une somme dudit
nombre
aléatoire et l'aléa définitif.
8. Dispositif de cogénération d'un matériel cryptographique partagé,
procédé mis en uvre
au sein d'un premier dispositif électronique, ledit premier dispositif
électronique étant
connecté à un deuxième dispositif électronique de cogénération et à un
troisième dispositif
électronique de cogénération, dispositif caractérisé en ce qu'il comprend :

18
- Des moyens de détermination d'un matériel de chiffrement partagé, en
fonction dudit
ensemble de paramètres de cogénération ;
- Des moyens de transmission dudit d'un matériel de chiffrement partagé
- Des moyens de réception des matériels de chiffrement partagés
correspondants en
provenance des autres dispositifs ;
- Des moyens de calcul d'un alea partagé, en fonction desdits matériels de
chiffrement
partagés et dudit ensemble de paramètres de cogénération ;
- Des moyens de transmission d'une forme masquée dudit alea partagé ;
- Des moyens de réception de forme masquées des aléas partagés
correspondants en
provenance des autres dispositifs ;
- Des moyens de calcul de l'aléa définitif, en fonction des formes masquées
desdits aléas
partagés et dudit ensemble de paramètres de cogénération.
9. Système de cogénération d'un matériel cryptographique partagé
caractérisé en ce qu'il
comprend au moins trois dispositifs de cogénération selon la revendication 8,
connectés
entre eux.
10. Produit programme d'ordinateur téléchargeable depuis un réseau de
communication et/ou
stocké sur un support lisible par ordinateur et/ou exécutable par un
microprocesseur,
caractérisé en ce qu'il comprend des instructions de code de programme pour
l'exécution
d'un procédé de cogénération d'un matériel cryptographique partagé selon l'une
des
revendications 1 à 7, lorsqu'il est exécuté sur un ordinateur.

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
1
Titre : Procédé de cogénération d'un matériel cryptographique partagé,
dispositifs, système et
programme d'ordinateur correspondant
1. Domaine technique
La divulgation se rapporte au domaine du chiffrement. Plus particulièrement,
la divulgation
se rapporte à la génération de matériels cryptographiques de base, servant à
sécuriser des données
échangées entre deux dispositifs. De telles situations peuvent par exemple se
rencontrer dans le
domaine de l'Internet des objets (loT) : le comptage intelligent, le
stationnement intelligent, la
surveillance de la santé, de l'environnement et d'autres applications sont des
exemples typiques de
système nécessitant un chiffrement de données. Alors que le coût et
l'efficacité énergétique sont
les principaux facteurs qui contribuent à la popularité des appareils
commerciaux dans le domaine
de l'IoT, les fonctionnalités de sécurité sont de plus en plus recherchées.
Les fonctions de paiement,
qui sont mises en oeuvre soit en ligne soit hors ligne reposent également sur
une confidentialité des
données échangées entre les dispositifs qui interviennent dans l'opération de
paiement elle-même,
par exemple un smartphone et un terminal de paiement ou encore un ordinateur
personnel et un
serveur d'un marchand en ligne.
2. Technique antérieure
Le chiffrement des échanges réalisées entre deux parties est une problématique
vielle de
plusieurs millénaires. Avec l'apparition des systèmes informatisés et le
développement de théorie
mathématiques adéquates, les techniques de chiffrement ont gagné en sécurité
et en efficacité.
Notamment, des cryptosystèmes complexes ont fait leur apparition, comme par
exemple RSA (pour
Rivest, Shamir et Adleman. ) ont permis de sécuriser de nombreux systèmes à
travers le monde.
Avec l'évolution des technologies, de nombreux dispositifs sont équipés de
capacités de
chiffrement et de déchiffrement en utilisant des algorithmes efficaces,
publiés et testés afin de
garantir la confidentialité des échanges de données, souvent matériellement.
C'est par exemple le
cas de l'algorithme RSA 2048. Cependant, cet algorithme, comme d'autres,
reposent sur la
détermination de nombres aléatoires.
Plus particulièrement, pour RSA, la génération d'un couple de clefs
(privée/publique)
demande de choisir deux nombres premiers de grande taille, de façon qu'il soit
calculatoirement
impossible de factoriser leur produit (c'est-à-dire de déterminer, à partir de
leur seul produit, les
deux entiers qui ont été utilisés pour obtenir ce produit).
Pour déterminer un nombre premier de grande taille, on utilise un procédé qui
fournit à la
demande un entier impair aléatoire d'une taille suffisante : un test de
primalité permet de

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
2
déterminer ce nombre entier est premier ou non, et on s'arrête dès qu'un
nombre premier est
obtenu. Le théorème des nombres premiers assure que l'on trouve un nombre
premier au bout
d'un nombre raisonnable d'essais. La méthode requiert l'utilisation d'un test
de primalité rapide.
Ainsi, en règle générale un test probabiliste est mis en oeuvre, tel que le
test de primalité de Miller-
Rabin ou une variante d'un tel test. Rien ne garantit que le nombre soit
réellement premier, mais
on obtient uniquement une forte probabilité qu'il le soit. Typiquement, ces
opérations sont
désormais intégrées de manière standard dans de nombreux dispositif et/ou de
nombreuses
bibliothèques de codes et utilisées de manière standard. Ainsi, les
dispositifs précités sont équipés
de puces qui peuvent mettre en oeuvre de manière accélérée des protocoles de
chiffrement de
données, rendant celui-ci plus ou moins transparent pour le système.
Cependant, pour RSA ou d'autres cryptosystèmes, la seule description des
principes
mathématiques sur lesquels repose l'algorithme n'est pas suffisante. La mise
en oeuvre concrète
demande de tenir compte d'autres paramètres qui sont essentielles pour la
sécurité. Par exemple
le couple (clé privée, clé publique) doit être engendré par un procédé
réellement aléatoire, procédé
qui même s'il devait être connu, ne permet pas de reconstituer la clé privée.
Or, bien que les algorithmes cryptographiques de confidentialité et
d'authenticité sont pris
en charge matériellement sur une classe courante de périphériques, comme
expliqué
précédemment, il n'existe généralement pas, dans le matériel grand public, de
prise en charge
adéquate de la génération de nombres aléatoires (également appelé seed
dans la littérature) :
en effet, une protection de la prise en charge de la génération de nombres
aléatoire nécessite
d'appliquer des dispositifs matériels qui interviennent comme des boucliers
rendant la génération
des nombres aléatoires insensibles aux perturbations extérieures, ce qui coûte
cher et est donc
négligé par les fabricants. Ainsi, il est souvent possible de manipuler
passivement (ou activement)
la source embarquée de génération de nombres aléatoires, et ainsi possible de
saper la sécurité
fournie par des algorithmes cryptographiques (autrement) puissants. En
d'autres termes, en
modifiant la manière dont les nombres aléatoires sont produits, il est
possible de réduire de
manière importante la complexité des problèmes mathématiques sous-jacents à
l'obtention de clés
privées, et ainsi réduire ou anéantir l'efficacité d'un algorithme de
chiffrement pourtant réputé
efficace.
C'est typiquement la situation dans laquelle se trouvent les appareils mobiles
grand public
ou des dispositifs de l'IoT qui ne sont pas conçus pour la cryptographie. Ils
n'incorporent pas de
composants matériels ni de logiciels dédiés à la génération d'aléa de haute
qualité. Au mieux,

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
3
certains appareils haut de gamme sont équipés d'un module de sécurité dont
la conception et
les sources d'entropie sont généralement gardées secrètes et ne peuvent donc
pas être auditées.
Une solution naturelle consiste à utiliser un périphérique externe, tel qu'un
HSM ou un
serveur distant, pour fournir une source aléatoire. Comme la communication a
un coût, seule un
nombre aléatoire ( seed ) est généralement fourni, à partir de duquel une
séquence de bits
pseudo-aléatoires est dérivée. Or la transmission de ce nombre aléatoire par
le serveur distant
utilise lui -même un algorithme de chiffrement qui utilise.., un nombre
aléatoire. Ainsi, la solution
consistant à utiliser un dispositif distant se heurte elle-même à la
nécessaire implémentation
préalable d'une solution de chiffrement à base de nombre aléatoire qui est
bien entendu généré
sur le dispositif qualifié de non sécurisé . Une telle faille, matérielle,
permet à un attaquant de
capturer (ou d'inférer ou choisir) le nombre aléatoire et d'obtenir tous les
bits pseudo-aléatoires
utilisés par le périphérique, ce qui n'est bien sûr pas souhaitable.
Ainsi, pour établir un canal de communication sécurisé avec le périphérique
consommateur, en premier lieu, des nombres aléatoires de haute qualité sont
nécessaires. Il existe
donc un besoin de fournir une méthode d'obtention d'un nombre aléatoire
sécurisé qui permette
d'obtenir des nombres aléatoires qualitatifs en toute sécurité.
3. Résumé de l'invention
La divulgation permet de répondre en partie au moins aux problématiques posées
par l'art
antérieur. Plus particulièrement, la divulgation se rapporte à un procédé de
cogénération d'un
matériel cryptographique partagé, procédé mis en oeuvre au sein d'un premier
dispositif
électronique, ledit premier dispositif électronique étant connecté à un
deuxième dispositif
électronique de cogénération et à un troisième dispositif électronique de
cogénération. Un tel
procédé comprend :
- une étape de détermination d'un matériel de chiffrement partagé, en
fonction dudit
ensemble de paramètres de cogénération [CG;
- une étape de transmission dudit d'un matériel de chiffrement partagé
- une étape de réception de matériels de chiffrement partagés
correspondants en
provenance des autres dispositifs ;
- une étape de calcul d'un alea partagé, en fonction desdits matériels de
chiffrement
partagés et dudit ensemble de paramètres de cogénération [CG;
- une étape de transmission d'une forme masquée dudit alea partagé ;

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
4
- une étape de réception de formes masquées des aléas partagés
correspondants en
provenance des autres dispositifs ;
- une étape de calcul de l'aléa définitif, en fonction des formes masquées
desdits aléas
partagés et dudit ensemble de paramètres de cogénération [CG.
Ainsi, il est permis d'obtenir un aléa définitif de grande qualité (i.e. dont
la probabilité qu'il
soit aléatoire est très élevée) de manière simple et ce même si l'in des
dispositifs participant à son
élaboration est compromis.
Selon un mode de réalisation particulier, l'étape de détermination du matériel
de
chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération
[CG comprend :
- une étape de sélection, au sein d'un groupe cyclique G, d'un nombre sx,
plus petit que p;
- une étape de calcul du matériel de chiffrement partagé en effectuant une
opération du
nombre sx avec le générateur g du groupe G.
Ainsi, il est possible d'obtenir un matériel de chiffrement sécurisé.
L'opération mise en oeuvre est
par exemple une multiplication ou une exponentiation et elle varie en fonction
du groupe
sélectionné ce qui permet d'augmenter la sécurité.
Selon un mode de réalisation particulier, l'étape de calcul de l'aléa partagé,
en fonction desdits
matériels de chiffrement partagés et dudit ensemble de paramètres de
cogénération [CG
comprend :
- une étape d'obtention d'un nombre aléatoire rx;
- une étape de calcul de l'aléa partagé rx à partir du nombre aléatoire rx
et des matériels de
chiffrement partagés pkx, pky, pkz et d'une fonction de hachage H ;
Ainsi, chaque participant utilise les données fournies par les autres
participants et par lui-même
pour générer un alea partagé.
Selon une caractéristique particulière, l'étape de calcul de l'aléa définitif,
en fonction des formes
masquées desdits aléas partagés et dudit ensemble de paramètres de
cogénération [CG
comprend :
- une étape d'addition des formes masquées ; et
- une étape de hachage, à l'aide d'une fonction de hachage H, du résultat
de l'addition
précédente, délivrant m'aléa définitif.
Ainsi, aucun des participant ne peut influencer négativement (i.e. dans le
sens d'une moindre
sécurité) la génération de l'aléa définitif.
Selon un mode de réalisation particulier, le groupe cyclique appartient au
groupe comprenant :

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
- Curve25519 ;
- sec256p ;
- head 25619;
- Curve448.
5 Selon un mode de réalisation particulier ladite fonction de hachage
appartient au groupe
comprenant :
- SHA-1 ;
- MD5 ;
- SHA-3, en mode SHAKE128 ;
Selon une caractéristique particulière, le Procédé de cogénération comprend en
outre une
étape de vérification de la validité de l'aléa définitif comprenant une
génération d'un nombre
aléatoire et un calcul d'une valeur de hachage d'une somme dudit nombre
aléatoire et l'aléa
définitif.
Ainsi, chaque dispositif participant à la cogénération est en mesure de
vérifier que les
autres dispositifs possèdent le même aléa définitif partagé.
La divulgation se rapporte également à un dispositif de cogénération d'un
matériel
cryptographique partagé, procédé mis en oeuvre au sein d'un premier dispositif
électronique, ledit
premier dispositif électronique étant connecté à un deuxième dispositif
électronique de
cogénération et à un troisième dispositif électronique de cogénération. Un tel
dispositif comprend :
- des moyens de détermination d'un matériel de chiffrement partagé, en
fonction dudit
ensemble de paramètres de cogénération;
- des moyens de transmission dudit d'un matériel de chiffrement partagé
- des moyens de réception des matériels de chiffrement partagés
correspondants en
provenance des autres dispositifs ;
- des moyens de calcul d'un alea partagé, en fonction desdits matériels de
chiffrement
partagés et dudit ensemble de paramètres de cogénération;
- des moyens de transmission d'une forme masquée dudit alea partagé ;
- des moyens de réception de forme masquées des aléas partagés
correspondants en
provenance des autres dispositifs ;
- des moyens de calcul de l'aléa définitif, en fonction des formes masquées
desdits aléas
partagés et dudit ensemble de paramètres de cogénération.

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
6
Un tel dispositif peut se présenter sous la forme d'un terminal de
communication d'utilisateur, muni
d'un processeur généraliste, non nécessairement sécurisé. Il peut également
prendre la forme d'un
secure element ou équivalent, également présent au sein d'un (ou connecté à
un) terminal de
communication d'utilisateur, comprenant un processeur sécurisé. Il peut
également prendre la
forme d'un serveur distant. Il peut également prendre la forme d'un terminal
de paiement ou d'un
terminal d'authentification, disposant de composants de traitement de données
sécurisés.
La divulgation se rapporte également à un système de cogénération d'un
matériel
cryptographique partagé. Un tel système comprend au moins trois dispositifs de
cogénération tel
que présentés précédemment connectés entre eux. Plus particulièrement, dans un
mode de
réalisation, un tel système peut comprendre un terminal de communication
d'utilisateur, muni d'un
processeur généraliste, non nécessairement sécurisé ; un secure element ou
équivalent,
également présent au sein du (ou connecté au) terminal de communication
d'utilisateur,
comprenant un processeur sécurisé ; un serveur distant, connecté au terminal
de communication.
Ces trois dispositifs mettent chacun en oeuvre le procédé précédemment décrit
pour aboutir, dans
le cadre de ce système, à la génération d'un aléa définitif tel que proposé.
Selon une implémentation préférée, les différentes étapes des procédés selon
la présente
divulgation sont mises en oeuvre par un ou plusieurs logiciels ou programmes
d'ordinateur,
comprenant des instructions logicielles destinées à être exécutées par un
processeur de données
d'un dispositif d'exécution selon la présente technique et étant conçu pour
commander l'exécution
des différentes étapes des procédés, mis en oeuvre au niveau du terminal de
communication, du
dispositif électronique d'exécution et/ou du serveur distant, dans le cadre
d'une répartition des
traitements à effectuer et déterminés par un codes source scripté.
En conséquence, la présente technique vise aussi des programmes, susceptibles
d'être
exécutés par un ordinateur ou par un processeur de données, ces programmes
comportant des
instructions pour commander l'exécution des étapes des procédés tel que
mentionnés ci-dessus.
Un programme peut utiliser n'importe quel langage de programmation, et être
sous la
forme de code source, code objet, ou de code intermédiaire entre code source
et code objet, tel
que dans une forme partiellement compilée, ou dans n'importe quelle autre
forme souhaitable.
La présente technique vise aussi un support d'informations lisible par un
processeur de
données, et comportant des instructions d'un programme tel que mentionné ci-
dessus.
Le support d'informations peut être n'importe quelle entité ou dispositif
capable de stocker
le programme. Par exemple, le support peut comporter un moyen de stockage, tel
qu'une ROM,

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
7
par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un
moyen
d'enregistrement magnétique, par exemple un support mobile (carte mémoire) ou
un disque dur
ou un SSD.
D'autre part, le support d'informations peut être un support transmissible tel
qu'un signal
électrique ou optique, qui peut être acheminé via un câble électrique ou
optique, par radio ou par
d'autres moyens. Le programme selon la présente technique peut être en
particulier téléchargé sur
un réseau de type Internet.
Alternativement, le support d'informations peut être un circuit intégré dans
lequel le
programme est incorporé, le circuit étant adapté pour exécuter ou pour être
utilisé dans l'exécution
du procédé en question.
Selon un mode de réalisation, la présente technique est mise en oeuvre au
moyen de
composants logiciels et/ou matériels. Dans cette optique, le terme "module"
peut correspondre
dans ce document aussi bien à un composant logiciel, qu'à un composant
matériel ou à un
ensemble de composants matériels et logiciels.
Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un
ou
plusieurs sous-programmes d'un programme, ou de manière plus générale à tout
élément d'un
programme ou d'un logiciel apte à mettre en oeuvre une fonction ou un ensemble
de fonctions,
selon ce qui est décrit ci-dessous pour le module concerné. Un tel composant
logiciel est exécuté
par un processeur de données d'une entité physique (terminal, serveur,
passerelle, set-top-box,
routeur, etc.) et est susceptible d'accéder aux ressources matérielles de
cette entité physique
(mémoires, supports d'enregistrement, bus de communication, cartes
électroniques
d'entrées/sorties, interfaces utilisateur, etc.).
De la même manière, un composant matériel correspond à tout élément d'un
ensemble
matériel (ou hardware) apte à mettre en oeuvre une fonction ou un ensemble de
fonctions, selon
ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un
composant matériel
programmable ou avec processeur intégré pour l'exécution de logiciel, par
exemple un circuit
intégré, une carte à puce, une carte à mémoire, une carte électronique pour
l'exécution d'un
micrologiciel (firmware), etc.
Chaque composante du système précédemment décrit met bien entendu en oeuvre
ses
propres modules logiciels.
Les différents modes de réalisation mentionnés ci-dessus sont combinables
entre eux pour
la mise en oeuvre de la présente technique.

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
8
4. Brève description des dessins
D'autres caractéristiques et avantages apparaîtront plus clairement à la
lecture de la
description suivante d'un mode de réalisation préférentiel, donné à titre de
simple exemple
illustratif et non limitatif, et des dessins annexés, parmi lesquels :
- La figure 1 expose le principe général du procédé de cogénération;
- La figure 2 expose un mode de réalisation particulier du procédé de
cogénération de la
figure 1;
- La figure 3 illustre un dispositif de cogénération.
5. Description détaillée
Le principe général de la présente technique repose sur la mise en oeuvre
d'une génération
tripartite d'un nombre aléatoire. Comme explicité précédemment, en lien avec
l'art antérieur,
lorsque l'on souhaite obtenir un nombre aléatoire de qualité sur un dispositif
d'utilisateur classique
(de type smartphone, loT, etc.), on fait appel à un serveur qui va se charger
de fournir un tel
nombre, avec cependant le risque que ce nombre (ou bien que le nombre pseudo
aléatoire dérivé
de ce nombre) soit intercepté, rendant ainsi inutile et couteux le recours à
un tel serveur distant.
Le procédé proposé permet de surmonter ce problème lié à la potentielle
interception
et/ou manipulation d'un nombre aléatoire qui est généré à distance par un
serveur. Plus
particulièrement, il est proposé un procédé symétrique de cogénération (au
sens création) d'un
nombre aléatoire faisant intervenir trois dispositifs (au moins) de traitement
de données. Le
procédé décrit permet d'obtenir un nombre aléatoire d'une grande qualité tout
en réduisant ou
annulant les risques de fraude ou d'interception de ce nombre aléatoire.
Ainsi, la présente technique se rapporte à un procédé de cogénération d'un
matériel
cryptographique partagé, procédé mis en oeuvre au sein d'un premier dispositif
électronique, ledit
dispositif électronique étant connecté à un deuxième dispositif électronique
de cogénération par
l'intermédiaire d'un réseau de communication, ledit deuxième dispositif
électronique mettant
également en oeuvre le procédé de cogénération du matériel cryptographique
partagé, le procédé
étant caractérisé en ce qu'il est en outre mis en oeuvre par un troisième
dispositif électronique de
cogénération, connecté audit premier dispositif électronique de cogénération
et audit deuxième
dispositif électronique de cogénération.

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
9
Plus particulièrement, selon la présente technique, le procédé de cogénération
est basé sur
l'utilisation commune, par les trois dispositifs parties à la cogénération,
d'un ensemble de
paramètres de cogénération. Selon la présente technique, dans un mode de
réalisation particulier,
cet ensemble de paramètres comprend notamment un groupe cyclique G (ou un sous-
groupe d'un
groupe cyclique), de générateur g et d'ordre p. Cet ensemble comprend
également une fonction de
hachage commune H. Cet ensemble de paramètres de cogénération est noté [CG.
Dans un mode
de réalisation, général, en connaissance de ces paramètres de cogénération
[CG, chaque partie à
la cogénération met en oeuvre un procédé identique. L'objet de cette
cogénération est de pallier
les déficiences éventuelles d'un des trois dispositifs, pour au final, obtenir
un nombre aléatoire de
grande qualité, sans risque que ce nombre soit exposé ou manipulé.
Pour les besoins de l'exposé, on considère que la cogénération est tripartite
et qu'elle est
mise en oeuvre par trois dispositifs électroniques nommés respectivement {A},
{B} et {C}. On
considère également que le dispositif {B} est un dispositif grand public
auquel on n'accorde pas de
confiance quant à la qualité des nombres aléatoire qu'il génère. Cela ne
signifie pas qu'il s'agisse
d'un dispositif de génération de mauvaise qualité, mais uniquement que ce
dispositif peut
éventuellement être soumis à des perturbations extérieures et/ou à des
manipulations rendant son
fonctionnement incertain, et donc auquel on n'accorde pas de confiance, par
principe. On suppose
également que le dispositif {B} souhaite échanger, avec le dispositif {A}, des
données, de manière
confidentielle (c'est-à-dire que l'on souhaite chiffrer le contenu des
échanges de {A} vers {B} et
réciproquement.
Dans le cadre de la présente technique, on fait donc intervenir un troisième
dispositif {C},
qui est connecté à {A} et {B}. On considère que {A} et {C} ne sont pas soumis
à des perturbations
extérieures, par exemple parce que {A} et {C} sont des serveurs distants,
protégés et qu'ils se
trouvent hors d'atteinte d'éventuelles perturbation, et/ou parce que {A} et
{C} sont protégés contre
les attaques extérieures et disposent de solutions de protections matérielles
rendant leur
surveillance ou manipulation difficile voire impossible pour un attaquant.
Ainsi, le dispositif {A} peut être un serveur distant, par exemple un serveur
bancaire ou
encore un serveur médical, tandis que la dispositif {C} peut être un serveur
(également un serveur
bancaire ou un serveur de génération spécifique) ou encore un dispositif de
cogénération
particulier, spécifiquement dédié à cette tâche (il peut s'agir d'un
dispositif indépendant, intégré
ou connecté au dispositif {A} ou au dispositif {B}, comme par exemple une puce
dédiée ou encore
un dongle USB, bien que de telles mises en oeuvre ne soient pas privilégiées).

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
En d'autres termes, dans le contexte de la présente invention, il existe deux
dispositifs : un
dispositif de confiance {A}, capable de générer un caractère aléatoire de
haute qualité (en utilisant
n'importe quelle technique de génération de haute qualité connue de l'homme du
métier); et un
autre dispositif {13}, capable d'effectuer toute opération déterministe mais
auquel on n'accorde pas
5 de crédit pour générer un caractère aléatoire de haute qualité. On
considéré que ces dispositifs
communiquent ensemble, mais on ne suppose pas qu'un canal sécurisé a déjà été
établi entre eux.
En effet, établir un tel canal nécessite généralement une source de qualité
aléatoire de grande
qualité ; ou nécessite que le périphérique {B} incorpore des clés secrètes
cryptographiques. Le
problème avec cette deuxième situation est que le stockage sécurisé de clés
secrètes dans {13} peut
10 être difficile, car dans le contexte des attaquants de type boîte
blanche , une telle clé peut être
extraite. Avec les conceptions typiques à clé publique, la fuite d'une telle
clé de déchiffrement
annule immédiatement le schéma.
Ainsi, on propose de résoudre ce problème en introduisant un troisième
dispositif de
confiance {C} et un protocole tripartite permettant d'obtenir en toute
sécurité sur un caractère
aléatoire partagé.
Selon la présente technique, le procédé comprend plusieurs étapes, certaines
impliquant
des échanges de données entre les trois parties. Selon la présente technique,
dans un mode de
réalisation décrit en relation avec la figure 1, le procédé suivant est mis en
oeuvre par chaque
dispositif ({A}, {13}, {C}), et il comprend, pour un dispositif x, appartenant
à l'ensemble ({A}, {13}, {C}) :
- une étape de détermination (P10) d'un matériel de chiffrement partagé
(pkx), en fonction
dudit ensemble de paramètres de cogénération [CG;
- une étape de transmission (P20) dudit d'un matériel de chiffrement
partagé (pkx)
- une étape de réception (P30) des matériels de chiffrement partagés (pky,
pkz)
correspondants en provenance des autres dispositifs ;
- une étape de calcul (P40) d'un alea partagé (mx), en fonction desdits
matériels de
chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de
cogénération
[CG;
- une étape de transmission (P50) d'une forme masquée (Ox) dudit alea
partagé (mx) ;
- une étape de réception (P60) de forme masquées (Oy, Oz) des aléas
partagés (my, mz)
correspondants en provenance des autres dispositifs ;

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
11
- une étape de calcul (P70) de l'aléa définitif (ad), en fonction des
formes masquées (Ox, 0y,
Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de
cogénération
[CG.
Ainsi, à la différence du procédé classique, n'impliquant que deux dispositifs
{A} et {B}, le
procédé de la présente technique permet d'assurer que même si {B} est
compromis, l'aléa définitif
est d'une qualité suffisante pour permettre d'assurer une efficacité
importante du chiffrement qui
résultera de l'utilisation de cet aléa. De plus, à la différence de l'autre
procédé classique, impliquant
l'utilisation d'un serveur complémentaire transmettant directement un aléa au
dispositif {B}, le
procédé de la présente technique permet d'assurer que l'aléa transmis par le
serveur
.. complémentaire (qui par analogie pourrait être considéré comme le
dispositif {C}) n'est pas
compromis, manipulé ou intercepté et pour cause : dans la présente technique,
le dispositif {C} ne
transmet jamais d'aléa, mais une forme masqué d'un aléa partagé, cette forme
masquée ne
constituant, au final, qu'une composante de l'aléa définitif. Comme compris,
cette forme masquée
n'est pas destinée à être démasquée (c'est-à-dire pas destinée, pour le
récipiendaire de la forme
masquée, à obtenir la valeur initiale), puisque l'aléa est définitif est
calculé en fonction des formes
masquées, et non pas en fonction des aléas partagés. L'aléa initial est masqué
(brouillé) pour former
une valeur qui elle-même va être utilisée pour former l'aléa partagé final.
Par ailleurs, comme l'ensemble des dispositifs ({A}, {B}, {C}) participent à
génération du
même aléa définitif, chaque participant ({A}, {B}, {C}), est en mesure de
vérifier que l'aléa définitif
est correct en comparant son propre aléa définitif avec l'aléa définitif
obtenu par les autres
participants. Or comme deux des participants ({A} et {C}) sont sécurisés (a
priori), il n'est pas
possible à priori de tromper ceux-ci. On note par ailleurs qu'avec trois
participants (ou plus), au
moins l'un d'entre eux masque la valeur aléatoire produite par l'autre (i.e.
dans le cas de trois
participants, la valeur aléatoire produite par {B} est réellement masquée : la
valeur aléatoire, qui
.. est masquée, peut donc être initialement égale à zéro sans qu'aucun
participant à l'échange ne
puisse le détecter (sauf le producteur de cette valeur bien entendu). Dès
lors, un intervenant mal
intentionné, qui produirait cette valeur non aléatoire (i.e. par exemple 0
ou une autre valeur
prédéterminée) pour tenter d'influencer l'aléa ne pourrait pas influencer le
caractère aléatoire du
résultat. Bien entendu, plus le nombre de participants est important, plus les
chances d'obtenir un
.. résultat non conforme diminuent.
Le procédé de la présente technique a été décrit d'une manière générale.
Certaines étapes
de celui-ci sont fonction de l'ensemble de paramètres de cogénération [CG.
Notamment, il n'est

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
12
pas toujours nécessaire de disposer d'un groupe cyclique pour pouvoir mettre
en oeuvre la
technique proposée, et d'autres paramètres peuvent être utilisés s'il s'avère
qu'ils sont plus
adaptés à la situation concrète d'application.
On décrit ci-après, en relation avec la figure 2, chaque étape de mise en
oeuvre du procédé
.. général présenté précédemment, dans un certain mode de réalisation.
L'étape de détermination (P10) du matériel de chiffrement partagé (pkx), en
fonction dudit
ensemble de paramètres de cogénération [CG comprend :
- une étape de sélection, au sein du groupe cyclique G (ou d'un sous-groupe
du groupe
cyclique G), d'un nombre sx, plus petit que p;
- une étape de calcul du matériel de chiffrement partagé (pkx) en
effectuant une opération
du nombre sx avec le générateur g du groupe G; L'opération en question peut
être une
opération additive ou une opération multiplicative, en fonction de la nature
du groupe G.
cette opération est notée, dans ce mode de réalisation entre crochets [] ;
ainsi, pkx = [sx]g.
L'étape de de calcul (P40) de l'aléa partagé (mx), en fonction desdits
matériels de
chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de
cogénération [CG
comprend :
- une étape d'obtention d'un nombre aléatoire rx ;
- une étape de calcul de l'aléa partagé mx à partir du nombre aléatoire rx
et des matériels de
chiffrement partagés pkx, pky, pkz et de la fonction de hachage H ;
Dans ce mode de réalisation, ce calcul suit une règle particulière en fonction
d'un rang que
le dispositif possède dans l'ensemble de dispositifs.
Ainsi, le dispositif {A} calcule spécifiquement : mA = xA + hAB + hAC ;
Ainsi, le dispositif {B} calcule spécifiquement : mB = xB ¨ hBA + hBC ;
Ainsi, le dispositif {B} calcule spécifiquement : mC = xC ¨ hCA - hCB ;
Pour chacun de ces calculs spécifiques on définit hXY = H(pkA, pkB, pkC, [sX]
pkY).
En fonctions des modes de réalisation, et du nombre de dispositifs impliqués,
il est bien sur
envisageable de définir d'autres expressions de l'aléa partagé mx.
Le calcul de la forme masquée (Ox) dudit alea partagé (mx) est réalisée en
effectuant une
opération sur le groupe, comme pour le calcul du matériel de chiffrement
partagé. Plus
.. particulièrement, la forme masquée Ox = [mx]g.

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
13
Toujours dans ce mode de réalisation, l'étape de calcul (P70) de l'aléa
définitif (ad), en
fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz)
et dudit ensemble
de paramètres de cogénération [CG comprend :
- une étape d'addition des formes masquées (Ox, Oy, Oz) ; et
- une étape de hachage, à l'aide de la fonction de hachages H, du résultat
de l'addition
précédente, délivrant m'aléa définitif (ad).
Cet aléa définitif est donc bien la combinaison de l'ensemble des aléas
précédemment
obtenus, et on note que le procédé présenté est fabriqué de sorte que le
résultat obtenu est H([xA
+ x6 + xC]g) qui représente un alea de la qualité escomptée. D'autres formes
et mode de réalisation
de ce protocole peuvent être envisagés, conduisant à un résultat similaire ou
identique.
Ainsi, on évite d'utiliser des clés secrètes à long terme et des problèmes
causés par un
mauvaise aléa (seed). En outre, il est également possible pour (A) de vérifier
que (B) a reçu le bon
alea (seed), car les deux dispositifs connaissent sa valeur. Par exemple, le
protocole de
connaissance zéro suivant peut être utilisé :
- {A] (dispositif de confiance) envoie un aléa rT à {B};
- {B} répond à {A} en transmettant le résultat Res du calcul H (ad, rT) ;
- {A} vérifie que H (ad, rT) correspond au résultat H (ad, rT) que {B} a
transmis.
Lorsque le résultat est identique, cela signifie que l'aléa définitif (ad)
produit par {B} est
identique à celui produit par {A}, et donc que cet aléa définitif est bien
fonction d'un alea de bonne
.. qualité rC qui a été créé par {C}, sans que cet aléa rC n'ait subit de
transformation, de malveillance
ou d'usurpation. Ceci est particulièrement vrai puisque le protocole de
connaissance zéro utilisé
précédemment peut également être mis en oeuvre entre {A} et {C} afin de
valider la connaissance
définitif (ad) par {A} et {C}.
On note également, que selon la présente technique, il est avantageux de
disposer de trois
(ou plus) participants : l'un d'eux masque la valeur aléatoire produite par le
dispositif (B). Ainsi, rB
peut effectivement être nul dans le protocole ci-dessus, sans que cela
n'affecte la qualité de la
valeur aléatoire définitive (ad) obtenue à la fin du procédé.
A titre indicatif, une implémentation concrète de la technique précédemment
décrite peut-
être mise avec les groupes cycliques suivants : Curve25519 ; 5ec256p, head
25619, Curve448. Ces
groupes permettent de générer des aléas de bonne qualité en accord avec la
présente technique.
Par ailleurs, toute fonction de hachage peut être utilisée (SHA-1, MD5, etc.).
Cependant,
l'utilisation de la fonction SHA-3 (en mode SHAKE128 notamment) présente
l'avantage de pouvoir

CA 03163728 2022-06-03
WO 2021/110518 PCT/EP2020/083427
14
sélectionner la taille du résultat de sortie, par exemple 256 bits, ce qui
représente un avantage dans
le cadre du calcul de l'aléa. En d'autres termes, avec l'utilisation de cette
fonction, il est possible de
déterminer, à l'avance quelle sera la taille de l'entier résultant du hachage
et donc d'adapter cette
taille, par exemple aux capacités respectives des dispositifs {A} et {13} afin
d'assurer un compromis
.. entre le besoin de sécurité et les capacités de traitement, notamment du
dispositif {13}. Dans un
mode de réalisation particulier, adapté à l'utilisation de terminaux de
communication mobiles (de
type smartphone), la taille de sortie sélectionnée est de 256bits. Cela
signifie que l'aléa définitif
possède une longueur de 256 bits.
On présente, en relation avec la figure 3, une architecture simplifiée d'un
dispositif
électronique apte à effectuer le traitement de cogénération d'aléa tel que
présenté
précédemment. Un dispositif électronique comprend une mémoire 31, une unité de
traitement 32
équipée par exemple d'un microprocesseur, et pilotée par un programme
d'ordinateur 33, mettant
en oeuvre le procédé tel que précédemment décrit. Dans au moins un mode de
réalisation, la
présente technique est mise en oeuvre sous la forme d'une application
installée sur ce dispositif.
Un tel dispositif comprend, en fonction des modes de réalisation :
- des moyens de détermination d'un matériel de chiffrement partagé, en
fonction dudit
ensemble de paramètres de cogénération;
- des moyens de transmission dudit d'un matériel de chiffrement partagé
- des moyens de réception des matériels de chiffrement partagés
correspondants en
provenance des autres dispositifs ;
- des moyens de calcul d'un alea partagé, en fonction desdits matériels de
chiffrement
partagés et dudit ensemble de paramètres de cogénération;
- des moyens de transmission d'une forme masquée dudit alea partagé ;
- des moyens de réception de forme masquées des aléas partagés
correspondants en
provenance des autres dispositifs ;
- des moyens de calcul de l'aléa définitif, en fonction des formes masquées
desdits aléas
partagés et dudit ensemble de paramètres de cogénération.
Comme explicité précédemment, ces moyens sont mis en oeuvre par
l'intermédiaire de
modules et/ou de composants, par exemple sécurisés. Ils permettent ainsi de
maintenir
confidentielles les données nécessaires à la définition de clés utiles dans un
cryptosystème pour le
chiffrement de données.

CA 03163728 2022-06-03
WO 2021/110518
PCT/EP2020/083427
PAGE LAISSÉE INTENTIONNELLEMENT
EN BLANC

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(86) PCT Filing Date 2020-11-25
(87) PCT Publication Date 2021-06-10
(85) National Entry 2022-06-03
Examination Requested 2022-09-30

Abandonment History

There is no abandonment history.

Maintenance Fee

Last Payment of $100.00 was received on 2023-10-24


 Upcoming maintenance fee amounts

Description Date Amount
Next Payment if small entity fee 2024-11-25 $50.00
Next Payment if standard fee 2024-11-25 $125.00

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee 2022-06-03 $407.18 2022-06-03
Request for Examination 2024-11-25 $814.37 2022-09-30
Maintenance Fee - Application - New Act 2 2022-11-25 $100.00 2022-10-20
Maintenance Fee - Application - New Act 3 2023-11-27 $100.00 2023-10-24
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
BANKS AND ACQUIRERS INTERNATIONAL HOLDING
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Abstract 2022-06-03 2 97
Claims 2022-06-03 3 97
Drawings 2022-06-03 3 79
Description 2022-06-03 15 655
Representative Drawing 2022-06-03 1 8
Patent Cooperation Treaty (PCT) 2022-06-03 20 699
International Search Report 2022-06-03 5 144
National Entry Request 2022-06-03 5 182
Voluntary Amendment 2022-06-03 6 220
Request for Examination 2022-09-30 3 96
Cover Page 2022-11-17 1 51
Description 2022-06-04 15 945
Interview Record with Cover Letter Registered 2024-04-18 1 19
Claims 2022-06-03 3 114
Abstract 2022-06-03 1 30
Drawings 2022-06-03 3 109
Voluntary Amendment 2022-06-03 6 321
Description 2022-06-03 13 766
Examiner Requisition 2024-04-23 4 247
PCT Correspondence 2023-04-21 4 150
Office Letter 2023-08-24 1 196