CH716295A2 - A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network. - Google Patents

A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network. Download PDF

Info

Publication number
CH716295A2
CH716295A2 CH00767/19A CH7672019A CH716295A2 CH 716295 A2 CH716295 A2 CH 716295A2 CH 00767/19 A CH00767/19 A CH 00767/19A CH 7672019 A CH7672019 A CH 7672019A CH 716295 A2 CH716295 A2 CH 716295A2
Authority
CH
Switzerland
Prior art keywords
transaction
enclave
fragments
network
called
Prior art date
Application number
CH00767/19A
Other languages
French (fr)
Inventor
Attia Jonathan
Louiset Raphaël
Original Assignee
Lapsechain Sa C/O Leax Avocats
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lapsechain Sa C/O Leax Avocats filed Critical Lapsechain Sa C/O Leax Avocats
Priority to CH00767/19A priority Critical patent/CH716295A2/en
Publication of CH716295A2 publication Critical patent/CH716295A2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/117Biometrics derived from hands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Abstract

L'invention concerne un procédé de signature numérique multiple d'une transaction ( TX ) destinée à être inscrite dans un nouveau bloc ( 4 ) d'une blockchain ( 5 ), dans lequel la transaction ( TX ) est initiée par un émetteur et transmise à une enclave ( 8 ) cryptographique d'un nœud de calcul ; des fragments ( 15.i ) d'une première clé ( 15 ) privée associée à l'émetteur, ainsi que des fragments ( 16.i ) d'une deuxième clé ( 16 ) privée associée à un terminal tiers, et stockés sur des nœuds du réseau, sont chargés dans l'enclave ( 8 ), les clés ( 15 , 16 ) sont reconstituées à partir de ces fragments ( 15.i , 16.i ) et appliquées à la transaction ( TX ) pour former une transaction ( STX ) signée, laquelle est ensuite inscrite dans un nouveau bloc ( 4 ) de la blockchain ( 5 ).The invention relates to a method of multiple digital signature of a transaction (TX) intended to be registered in a new block (4) of a blockchain (5), in which the transaction (TX) is initiated by an issuer and transmitted. to a cryptographic enclave (8) of a computing node; fragments (15.i) of a first private key (15) associated with the sender, as well as fragments (16.i) of a second private key (16) associated with a third-party terminal, and stored on nodes of the network, are loaded into the enclave (8), the keys (15, 16) are reconstituted from these fragments (15.i, 16.i) and applied to the transaction (TX) to form a transaction ( STX) signed, which is then registered in a new block (4) of the blockchain (5).

Description

DOMAINE TECHNIQUETECHNICAL AREA

[0001] L'invention a trait au domaine de l'informatique, et plus précisément à la technologie de la chaîne de blocs ou, en terminologie anglo-saxonne, blockchain (dans ce qui suit, on préférera la terminologie anglo-saxonne, en raison de son emploi courant dans la plupart des langues, y compris en langue française). The invention relates to the field of computing, and more specifically to blockchain technology or, in Anglo-Saxon terminology, blockchain (in what follows, the Anglo-Saxon terminology is preferred, in because of its current use in most languages, including French).

ART ANTERIEURPRIOR ART

[0002] La technologie blockchain est organisée en couches. Elle comprend : Une couche d'infrastructure matérielle, appelée „réseau blockchain“ ; Une couche protocolaire appelée „protocole blockchain“ ; Une couche informationnelle, appelée „registre blockchain“.[0002] Blockchain technology is organized in layers. She understands : A layer of hardware infrastructure, called a “blockchain network”; A protocol layer called the “blockchain protocol”; An information layer, called the “blockchain register”.

[0003] Le réseau blockchain est un réseau informatique décentralisé, dit réseau pair-à-pair (en terminologie anglo-saxonne Peer-to-Peer ou P2P), constitué d'une pluralité d'ordinateurs (au sens fonctionnel du terme : il s'agit d'un appareil pourvu d'une unité de traitement informatique programmable, qui peut se présenter sous forme d'un smartphone, d'une tablette, d'un ordinateur de bureau, d'une station de travail, d'un serveur physique ou virtuel, c'est-à-dire un espace de calcul et de mémoire alloué au sein d'un serveur physique et sur lequel tourne un système d'exploitation ou une émulation de système d'exploitation), appelés „nœuds“ en référence à la théorie des graphes, capables de communiquer entre eux (c'est-à-dire de s'échanger des données informatiques), deux à deux, au moyen de liaisons filaires ou sans fil. [0003] The blockchain network is a decentralized computer network, called a peer-to-peer network (in Peer-to-Peer or P2P terminology), consisting of a plurality of computers (in the functional sense of the term: it is a device provided with a programmable computer processing unit, which can be in the form of a smartphone, a tablet, a desktop computer, a workstation, a physical or virtual server, i.e. computing and memory space allocated within a physical server and on which an operating system or operating system emulation runs), called "nodes" with reference to the theory of graphs, capable of communicating with each other (ie exchanging computer data), two by two, by means of wired or wireless links.

[0004] Un réseau1blockchain comprenant des nœuds2communiquant par des liaisons3est illustré sur laFIG.1. Par souci de simplification et de conformité à la théorie des graphes, sur laFIG.1, les nœuds2du réseau1sont représentés par des cercles ; les liaisons3, par des arêtes reliant les cercles. Pour ne pas surcharger de traits le dessin, seules certaines liaisons3entre les nœuds2sont représentées. A network1blockchain comprising nodes2communicating by links3 is illustrated in theFIG.1. For the sake of simplification and conformity with graph theory, on FIG.1, the nodes2 of the network1 are represented by circles; the bonds3, by edges connecting the circles. In order not to overload the drawing with lines, only certain links3 between nodes2 are shown.

[0005] Les nœuds2peuvent être disséminés sur de larges régions géographiques ; ils peuvent également être regroupés dans des régions géographiques plus restreintes. [0005] Nodes2 can be scattered over large geographic regions; they can also be grouped into smaller geographic regions.

[0006] Le protocole blockchain se présente sous forme d'un programme informatique implémenté dans chaque nœud2du réseau1blockchain, et qui inclut, outre des fonctions de dialogue - c'est-à-dire d'échange des données informatiques - avec les autres nœuds2du réseau1, un algorithme de calcul qui, à partir de données d'entrée appelées „transactions“ (qui sont des transcriptions d'interactions entre un ou plusieurs terminaux informatiques émetteurs et un ou plusieurs terminaux informatiques destinataires) : <tb><SEP>- Élabore des fichiers4de données structurées appelés „blocs“, chaque bloc4comprenant un corps4Acontenant des empreintes numériques de transactions, et un en-tête4Bcontenant : <tb><SEP><SEP>o Un numéro d'ordre, ou rang, ou encore hauteur (height en anglais), sous forme d'un nombre entier qui désigne la position du bloc4au sein d'une chaîne dans l'ordre croissant à partir d'un bloc initial (Genesis block en anglais) ; <tb><SEP><SEP>o Une empreinte numérique unique des données du corps4A ; <tb><SEP><SEP>o Une empreinte numérique unique, appelée pointeur, de l'en-tête du bloc4précédent, <tb><SEP><SEP>o Une donnée d'horodatage (timestamp en anglais) ; <tb><SEP>- Met en œuvre un mécanisme de validation des blocs4par consensus entre tout ou partie des nœuds2 ; <tb><SEP>- Concatène les blocs4validés pour former un registre5(le registre blockchain) sous forme d'un agrégat dans lequel chaque bloc4est relié mathématiquement au précédent par son pointeur.[0006] The blockchain protocol is in the form of a computer program implemented in each node2 of the network1blockchain, and which includes, in addition to dialogue functions - that is to say exchange of computer data - with the other nodes2 of the network1 , a calculation algorithm which, from input data called "transactions" (which are transcriptions of interactions between one or more transmitting computer terminals and one or more recipient computer terminals): <tb> <SEP> - Builds structured data files4 called "blocks", each block4 including a body4containing digital transaction fingerprints, and a header4Bcontaining: <tb><SEP> <SEP> o A sequence number, or row, or height (height in English), in the form of an integer which designates the position of block4 within a chain in the order growing from an initial block (Genesis block); <tb><SEP> <SEP> o A unique digital fingerprint of body4A data; <tb><SEP> <SEP> o A unique digital fingerprint, called a pointer, of the header of the previous block4, <tb><SEP> <SEP> o A timestamp data; <tb> <SEP> - Implements a mechanism for validating blocks4 by consensus between all or part of the nodes2; <tb> <SEP> - Concatenates validated blocks4 to form a register5 (the blockchain register) in the form of an aggregate in which each block4 is mathematically linked to the previous one by its pointer.

[0007] La moindre modification des données du corps4Aou de l'en-tête4Bd'un bloc4affecte la valeur de son empreinte numérique et rompt par conséquent le lien existant entre ce bloc4ainsi modifié et le bloc4suivant dont le pointeur ne correspond plus. [0007] The slightest modification of the data of the corps4Aou of the header4B of a bloc4affects the value of its digital fingerprint and consequently breaks the existing link between this bloc4 thus modified and the following bloc4 whose pointer no longer corresponds.

[0008] Selon un mode particulier de réalisation, l'empreinte numérique de chaque bloc4est un condensé (ou condensat, en anglais hash) des données du bloc4, c'est-à-dire le résultat d'une fonction de hachage appliquée aux données du bloc4(y compris le corps4Aet l'en-tête4Bà l'exception de l'empreinte numérique elle-même). La fonction de hachage est typiquement SHA-256. [0008] According to a particular embodiment, the digital fingerprint of each bloc4 is a digest (or hash) of the data of bloc4, that is to say the result of a hash function applied to the data of block4 (including body4A and header4B except for the digital fingerprint itself). The hash function is typically SHA-256.

[0009] Pour un bloc4donné de rang N (N un entier), le pointeur assure avec le bloc4précédent de rang N-1 une liaison inaltérable. En effet, toute modification des données du bloc4de rang N-1 aboutirait à la modification de son empreinte, et donc à un défaut de correspondance entre cette empreinte (modifiée) du bloc4de rang N-1 et le pointeur mémorisé parmi les métadonnées du bloc4de rang N. [0009] For a bloc4donné of rank N (N an integer), the pointer ensures an unalterable link with the preceding bloc4 of rank N-1. Indeed, any modification of the data of block4 of rank N-1 would lead to the modification of its fingerprint, and therefore to a lack of correspondence between this (modified) fingerprint of block4 of rank N-1 and the pointer stored among the metadata of block4 of rank NOT.

[0010] La succession des blocs4reliés entre eux deux à deux par correspondance du pointeur d'un bloc4donné de rang N avec l'empreinte numérique du bloc précédent de rang N-1 constitue par conséquent le registre5blockchain sous forme d'un agrégat de blocs4corrélés, dans lequel la moindre modification des données d'un bloc4de rang N-1 se traduit par une rupture du lien avec le bloc4suivant de rang N - et donc la rupture du registre blockchain. The succession of blocks4 interconnected two by two by correspondence of the pointer of a bloc4donné of rank N with the digital imprint of the previous block of rank N-1 therefore constitutes the register5blockchain in the form of an aggregate of correlated blocks4, in which the slightest modification of the data of a block4 of rank N-1 results in a breaking of the link with the following block4 of rank N - and therefore the breaking of the blockchain register.

[0011] C'est cette structure particulière qui procure aux données contenues dans le registre5blockchain une réputation d'immuabilité, garantie par le fait que le registre5blockchain est répliqué sur tous les nœuds2du réseau1, obligeant tout attaquant, non seulement à modifier tous les blocs4de rang supérieur au bloc4modifié, mais à déployer ces modifications (alors même que le registre5blockchain continue de se constituer par les nœuds2appliquant le protocole blockchain) à l'ensemble des nœuds2. It is this particular structure which gives the data contained in the ledger5blockchain a reputation for immutability, guaranteed by the fact that the ledger5blockchain is replicated on all the nodes2 of the network1, forcing any attacker, not only to modify all the blocks4 of rank greater than the modified block4, but to deploy these modifications (even though the register5blockchain continues to be constituted by the nodes2 applying the blockchain protocol) to all the nodes2.

[0012] Sauf mention contraire, et par souci de simplification, l'expression simple „chaîne de blocs“ ou „blockchain“ désigne le registre5blockchain lui-même. [0012] Unless otherwise stated, and for the sake of simplicity, the simple expression "blockchain" or "blockchain" designates the register5blockchain itself.

[0013] Quel que soit le type de consensus appliqué par le mécanisme de validation des blocs4, la plupart des technologies blockchain ont pour fonction primaire d'enregistrer, dans la blockchain5, des transactions passées entre un ou plusieurs terminaux émetteurs, et un ou plusieurs terminaux récepteurs, indifféremment appelés „utilisateurs“. Whatever the type of consensus applied by the block validation mechanism4, most blockchain technologies have the primary function of recording, in the blockchain5, transactions between one or more issuing terminals, and one or more receiving terminals, interchangeably called "users".

[0014] A chaque utilisateur est associé un compte, appelé de manière simplificatrice „portefeuille électronique“ (en anglais digital wallet), qui contient une zone mémoire et une interface programmatique ayant des fonctions d'interaction avec le réseau1blockchain pour lui soumettre des transactions, et des fonctions de synchronisation avec la blockchain5pour inscrire, dans la zone mémoire, les transactions validées par inscription dans la blockchain5. Each user is associated with an account, called in a simplified manner "electronic wallet" (in English digital wallet), which contains a memory area and a programmatic interface having interaction functions with the network1blockchain to submit transactions to it, and synchronization functions with the blockchain5 to enter, in the memory area, the transactions validated by registration in the blockchain5.

[0015] Le portefeuille comprend en outre un jeu de clés, et plus précisément au moins une paire de clés appariées, à savoir une clé publique et une clé privée associée. La clé publique est généralement utilisée (directement en tant que telle, ou indirectement par l'intermédiaire d'un condensat) en tant qu'identifiant de l'utilisateur. Quant à la clé privée, elle est généralement utilisée pour signer les transactions émises à partir du portefeuille. [0015] The wallet further comprises a set of keys, and more precisely at least one pair of matched keys, namely a public key and an associated private key. The public key is generally used (directly as such, or indirectly through a hash) as the user's identifier. As for the private key, it is generally used to sign transactions issued from the wallet.

[0016] On comprend dès lors que la clé privée est une donnée critique, dont il convient, pour l'utilisateur, de maintenir une confidentialité stricte vis-à-vis des tiers qui, en possession de la clé privée, pourraient usurper l'identité de l'utilisateur et signer des transactions à sa place. Ces transactions étant inscrites de manière immuable dans la blockchain5, il n'est possible, pour l'utilisateur authentique, ni de les annuler, ni de les inverser. It is therefore understood that the private key is critical data, of which it is necessary, for the user, to maintain strict confidentiality vis-à-vis third parties who, in possession of the private key, could usurp the user identity and sign transactions for them. Since these transactions are immutable in the blockchain5, it is not possible for the authentic user to cancel or reverse them.

[0017] Perdre un portefeuille électronique revient, pour l'utilisateur, à perdre sa capacité de signer des transactions. Se faire subtiliser ou pirater un portefeuille électronique revient, pour l'utilisateur, à permettre à un tiers (généralement malveillant) de signer les transactions à sa place. Losing an electronic wallet amounts, for the user, to losing his ability to sign transactions. For the user to be stolen or hacked into an electronic wallet amounts to allowing a third party (usually malicious) to sign the transactions in his place.

[0018] Il existe différentes versions de portefeuilles électroniques, selon leur mode d'installation. [0018] There are different versions of electronic wallets, depending on their method of installation.

[0019] Dans une première version purement logicielle, le portefeuille électronique est installé localement, sur un terminal communiquant (typiquement un ordinateur de bureau, fixe ou portable, ou encore un smartphone). In a first purely software version, the electronic wallet is installed locally, on a communicating terminal (typically a desktop, fixed or portable computer, or even a smartphone).

[0020] Cette première version n'est pas sans défaut : comme le terminal est en réseau, elle nécessite de protéger celui-ci des intrusions, en installant des filtres et des passerelles dont l'infaillibilité ne saurait cependant être garantie. Les cas de perte de clés (consécutive à une panne matérielle ou logicielle, ou encore à une désinstallation intempestive du portefeuille) ne sont pas rares. De nombreux cas de vol de clés sont également à déplorer. This first version is not without flaw: as the terminal is networked, it requires protecting it from intrusions, by installing filters and gateways, the infallibility of which cannot however be guaranteed. Cases of loss of keys (following a hardware or software failure, or even an untimely uninstallation of the wallet) are not rare. There are also many cases of key theft.

[0021] Dans une deuxième version physique, le portefeuille électronique est installé localement encore, sur un dispositif électronique dédié (de type clé USB). In a second physical version, the electronic wallet is still installed locally, on a dedicated electronic device (of the USB key type).

[0022] Ce portefeuille ne devient actif que lorsque le dispositif est branché sur un terminal assurant la connexion au réseau blockchain. This portfolio only becomes active when the device is plugged into a terminal providing connection to the blockchain network.

[0023] Cependant les portefeuilles physiques ne vont pas non plus sans défaut. Ils souffrent d'une grande sensibilité aux dégradations (notamment du fait de l'exposition à l'humidité et aux chocs), sont susceptibles d'être perdus, ou d'être volés (avec les mêmes conséquences que la version purement logicielle du portefeuille). [0023] However, physical portfolios are not flawless either. They suffer from a great sensitivity to degradation (in particular due to exposure to humidity and shocks), are likely to be lost, or to be stolen (with the same consequences as the purely software version of the wallet ).

[0024] Dans une troisième version, le portefeuille électronique est installé sur un serveur distant, administré par un tiers (qui en détient par conséquent les clés cryptographiques) et auquel l'utilisateur se connecte via un terminal. [0024] In a third version, the electronic wallet is installed on a remote server, administered by a third party (which therefore holds the cryptographic keys) and to which the user connects via a terminal.

[0025] Si cette version est présumée mieux sécurisée que la première version (purement logicielle et locale) contre la perte et le vol par des tiers, elle présente cependant une faille majeure : le vol des clés par l'administrateur lui-même (et de fait, des cas ont été répertoriés). If this version is presumed to be better secure than the first version (purely software and local) against loss and theft by third parties, it nevertheless has a major flaw: the theft of keys by the administrator himself (and in fact, cases have been identified).

[0026] En résumé, la première version est pratique, mais peu fiable. In summary, the first version is practical, but unreliable.

[0027] La deuxième version est un peu plus fiable que la première, mais beaucoup moins pratique. [0027] The second version is a little more reliable than the first, but much less practical.

[0028] Quant à la troisième version, elle paraît plus pratique que les deux premières, tout en étant plus fiable que la première mais moins, toutefois, que la seconde. As for the third version, it seems more practical than the first two, while being more reliable than the first but less, however, than the second.

[0029] Quoiqu'il en soit, aucune des versions des portefeuilles électroniques n'est à la fois pratique et fiable. However, none of the versions of electronic wallets is both practical and reliable.

[0030] Dans tous les cas, pour se prémunir notamment de la perte des clés, les utilisateurs sont incités à en conserver une version imprimée, qu'il convient de garder dans un endroit discret et protégé, tel qu'un coffre-fort. Certains préconisent même de garder cette version imprimée dans un coffre-fort bancaire. Ces techniques anachroniques de conservation du secret ralentissent considérablement l'adoption à grande échelle des technologies de blockchain. In all cases, to protect themselves in particular from the loss of the keys, users are encouraged to keep a printed version, which should be kept in a discreet and protected place, such as a safe. Some even recommend keeping this printed version in a bank safe. These anachronistic secrecy techniques are significantly slowing the large-scale adoption of blockchain technologies.

[0031] L'invention vise à proposer une technique alternative de portefeuille électronique dédié aux transactions de blockchain, qui soit à la fois pratique, fiable, sûr, et qui dispense les utilisateurs de devoir effectuer des sauvegardes matérielles de leurs clés. The invention aims to propose an alternative technique of electronic wallet dedicated to blockchain transactions, which is at the same time practical, reliable and secure, and which frees users from having to make physical backups of their keys.

RESUME DE L'INVENTIONSUMMARY OF THE INVENTION

[0032] Il est proposé un procédé de signature numérique d'une transaction initiée par une unité de traitement informatique, dite émetteur, reliée à un réseau pair-à-pair, cette transaction numérique étant destinée à être inscrite dans un nouveau bloc d'une chaîne de blocs, ce procédé comprenant les opérations suivantes : <tb><SEP>- Générer la transaction par l'émetteur, cette transaction contenant un identifiant d'émetteur ; <tb><SEP>- Sélectionner parmi le réseau un nœud dit de calcul, équipé d'une unité de traitement dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave ; <tb><SEP>- Instancier l'enclave ; <tb><SEP>- Charger la transaction numérique dans l'enclave, via une ligne de communication sécurisée ; <tb><SEP>- Identifier au moins un terminal tiers, distinct de l'émetteur, à l'autorisation duquel est soumise la signature de la transaction ; <tb><SEP>- Soumettre au terminal tiers la transaction accompagnée d'une requête d'autorisation et de données d'authentification ; <tb><SEP>- Charger l'autorisation dans l'enclave, à partir du terminal tiers, via une ligne de communication sécurisée, cette autorisation étant accompagnée de données d'authentification ; <tb><SEP>- Dans l'enclave, vérifier si ces données d'authentification satisfont une condition d'authentification prédéfinie ; <tb><SEP>- Si les données d'authentification satisfont la condition d'authentification prédéfinie, sélectionner parmi le réseau des nœuds sur lesquels sont stockés des fragments d'une première clé cryptographique privée associée à l'identifiant d'émetteur contenu dans la transaction ; <tb><SEP>- Charger lesdits fragments de la première clé dans l'enclave du nœud de calcul ; <tb><SEP>- Sélectionner parmi le réseau des nœuds sur lesquels sont stockés des fragments d'une deuxième clé cryptographique privée associée aux données d'authentification contenu chargées à partir du terminal tiers ; <tb><SEP>- Charger les fragments de la deuxième clé dans l'enclave du nœud de calcul <tb><SEP>- Dans l'enclave du nœud de calcul : <tb><SEP><SEP>o Reconstituer la première clé cryptographique privée à partir de ses fragments ainsi chargés ; <tb><SEP><SEP>o Reconstituer la deuxième clé cryptographique privée à partir de ses fragments ainsi chargés ; <tb><SEP><SEP>o Signer numériquement la transaction par chiffrement de tout ou partie des informations de celle-ci au moyen de chaque clé cryptographique privée ainsi reconstituée, pour former une transaction signée ; <tb><SEP>- Inscrire la transaction signée dans un nouveau bloc destiné à la chaîne (5) de blocs.There is proposed a method for digitally signing a transaction initiated by a computer processing unit, called the sender, connected to a peer-to-peer network, this digital transaction being intended to be recorded in a new block of a chain of blocks, this method comprising the following operations: <tb> <SEP> - Generate the transaction by the sender, this transaction containing an sender identifier; <tb> <SEP> - Select from the network a so-called computing node, equipped with a processing unit in which an execution environment secured by cryptography, called an enclave, is implemented; <tb> <SEP> - Instantiate the enclave; <tb> <SEP> - Load the digital transaction into the enclave, via a secure communication line; <tb> <SEP> - Identify at least one third-party terminal, separate from the sender, to whose authorization the signature of the transaction is subject; <tb> <SEP> - Submit to the third-party terminal the transaction accompanied by an authorization request and authentication data; <tb> <SEP> - Load the authorization into the enclave, from the third-party terminal, via a secure communication line, this authorization being accompanied by authentication data; <tb> <SEP> - In the enclave, check if this authentication data satisfies a predefined authentication condition; <tb> <SEP> - If the authentication data satisfies the predefined authentication condition, select from the network nodes on which are stored fragments of a first private cryptographic key associated with the issuer identifier contained in the transaction ; <tb> <SEP> - Load said fragments of the first key into the compute node enclave; <tb> <SEP> - Select from the network nodes on which are stored fragments of a second private cryptographic key associated with the authentication data content loaded from the third-party terminal; <tb> <SEP> - Load the fragments of the second key into the compute node enclave <tb> <SEP> - In the compute node enclave: <tb><SEP> <SEP> o Reconstitute the first private cryptographic key from its fragments thus loaded; <tb><SEP> <SEP> o Reconstitute the second private cryptographic key from its fragments thus loaded; <tb><SEP> <SEP> o Digitally sign the transaction by encryption of all or part of the information thereof by means of each private cryptographic key thus reconstituted, to form a signed transaction; <tb> <SEP> - Write the signed transaction in a new block intended for the chain (5) of blocks.

BREVE DESCRIPTION DES FIGURESBRIEF DESCRIPTION OF THE FIGURES

[0033] D'autres objets et avantages de l'invention apparaîtront à la lumière de la description d'un mode de réalisation, faite ci-après en référence aux dessins annexés dans lesquels : <tb><SEP>LaFIG.1est un schéma fonctionnel simplifié illustrant un réseau pair-à-pair sur lequel est distribuée une chaîne de blocs ; <tb><SEP>LaFIG.2est un schéma fonctionnel simplifié illustrant différents composants d'une unité de traitement informatique impliqués dans la création et l'exploitation d'un environnement d'exécution sécurisé appelé enclave ; <tb><SEP>LaFIG.3est un diagramme fonctionnel illustrant des étapes de contrôle préalable à une signature d'une transaction à destination d'une blockchain ; <tb><SEP>LaFIG.4est un diagramme fonctionnel prolongeant le diagramme de laFIG.3et illustrant des étapes de signature et d'inscription de la transaction dans la blockchain.Other objects and advantages of the invention will become apparent in the light of the description of an embodiment, given below with reference to the accompanying drawings in which: <tb> <SEP> LaFIG.1 is a simplified block diagram illustrating a peer-to-peer network on which a chain of blocks is distributed; <tb> <SEP> LaFIG.2 is a simplified functional diagram illustrating different components of a computer processing unit involved in the creation and operation of a secure execution environment called an enclave; <tb> <SEP> LaFIG.3 is a functional diagram illustrating the stages of control prior to a signature of a transaction intended for a blockchain; <tb> <SEP> TheFIG.4 is a functional diagram extending the diagram of theFIG.3 and illustrating the steps of signing and recording the transaction in the blockchain.

DESCRIPTION DETAILLEE DE L'INVENTIONDETAILED DESCRIPTION OF THE INVENTION

[0034] L'environnement auquel est destiné le procédé proposé est un réseau1blockchain comprenant une pluralité de nœuds2interconnectés par des liaisons3. Sur ce réseau1est déployé un registre5contenant des blocs4constitué en chaîne, ou chaîne de blocs (blockchain), dont les caractéristiques sont conformes à la description faite ci-dessus en introduction. The environment for which the proposed method is intended is a network1blockchain comprising a plurality of nodes2 interconnected by links3. On this network1 is deployed a register5containing blocks4constituted in a chain, or chain of blocks (blockchain), the characteristics of which conform to the description given above in the introduction.

[0035] Sur le réseau1est implémentée une couche applicative qui se présente sous forme d'un environnement de développement permettant de programmer des applications, appelées „contrats intelligents“ (en anglais Smart contracts), qui peuvent être déployées sur la blockchain5à partir des nœuds2. On the network 1 is implemented an application layer which is in the form of a development environment for programming applications, called "smart contracts", which can be deployed on the blockchain5 from the nodes2.

[0036] Un contrat intelligent comprend deux éléments : Un compte, appelé „compte de contrat“ (en anglais Contract account), dans la zone mémoire duquel est inscrit un code source contenant des instructions informatiques implémentant les fonctions attribuées au contrat intelligent ; Un code exécutable (en anglais Executable Bytecode) résultant d'une compilation du code source, ce code exécutable étant mémorisé ou déployé au sein du registre5blockchain, c'est-à-dire inséré en tant que transaction dans un bloc4du registre5blockchain.[0036] A smart contract comprises two elements: An account, called a “Contract account”, in the memory area of which is written a source code containing computer instructions implementing the functions assigned to the smart contract; An executable code (in English Executable Bytecode) resulting from a compilation of the source code, this executable code being stored or deployed within the register5blockchain, that is to say inserted as a transaction in a block4 of the register5blockchain.

[0037] Dans la technologie blockchain proposée par Ethereum, un smart contrat est activé par un appel (en anglais Call) adressé par un autre compte, dit compte initiateur (qui peut être un compte utilisateur ou un compte de contrat), cet appel se présentant sous forme d'une transaction contenant, d'une part, un fonds de réserve à transférer (c'est-à-dire un paiement) depuis le compte initiateur au compte de contrat et, d'autre part, des conditions initiales. In the blockchain technology proposed by Ethereum, a smart contract is activated by a call (in English Call) sent by another account, said initiator account (which can be a user account or a contract account), this call is presenting in the form of a transaction containing, on the one hand, a reserve fund to be transferred (i.e. a payment) from the initiating account to the contract account and, on the other hand, initial conditions.

[0038] Cet appel est inscrit en tant que transaction dans le registre5blockchain. Il déclenche : Le transfert du fonds de réserve du compte initiateur au compte de contrat ; La désignation, parmi le réseau1blockchain, d'un nœud d'exécution associé à un compte utilisateur ; L'activation, dans une unité de traitement informatique du nœud d'exécution, d'un environnement d'exécution ou machine virtuelle (appelé Ethereum Virtual Machine ou EVM dans le cas d'Ethereum) ; L'exécution pas-à-pas des étapes de calcul du code exécutable par la machine virtuelle à partir des conditions initiales, chaque étape de calcul étant accompagnée d'un transfert d'une fraction (appelée gas dans le cas d'Ethereum) du fonds de réserve depuis le compte de contrat vers le compte utilisateur du nœud d'exécution, et ce jusqu'à épuisement des étapes de calcul, au terme desquelles est obtenu un résultat ; L'inscription (éventuellement sous forme d'une empreinte numérique) de ce résultat en tant que transaction dans le registre5blockchain.This call is recorded as a transaction in the register5blockchain. It triggers: The transfer of the reserve fund from the initiating account to the contract account; The designation, among the network1blockchain, of an execution node associated with a user account; The activation, in a computer processing unit of the execution node, of an execution environment or virtual machine (called Ethereum Virtual Machine or EVM in the case of Ethereum); The step-by-step execution of the steps for calculating the executable code by the virtual machine from the initial conditions, each step of calculation being accompanied by a transfer of a fraction (called gas in the case of Ethereum) of the reserve fund from the contract account to the user account of the execution node, until the calculation steps are exhausted, at the end of which a result is obtained; The entry (possibly in the form of a digital fingerprint) of this result as a transaction in the ledger5blockchain.

[0039] Le compte initiateur récupère (c'est-à-dire, en pratique, télécharge) le résultat lors de sa synchronisation au registre5blockchain. The initiating account retrieves (that is to say, in practice, downloads) the result when it is synchronized to the register5blockchain.

[0040] Par ailleurs, certains au moins des nœuds2sont équipés d'unités6de traitement sur lesquelles est implémenté un environnement d'exécution sécurisé ou, en terminologie anglo-saxonne, trusted execution environment (TEE). [0040] Furthermore, at least some of the nodes2 are equipped with processing units6 on which a secure execution environment is implemented or, in English terminology, trusted execution environment (TEE).

[0041] Un environnement d'exécution sécurisé (Trusted execution environment ou TEE) est, au sein d'une unité6de traitement informatique pourvue d'un processeur ou CPU (Central Processing Unit)7, un espace temporaire de calcul et de stockage de données, appelé (par convention) enclave, ou encore enclave cryptographique, qui se trouve isolé, par des moyens cryptographiques, de toute action non autorisée résultant de l'exécution d'une application hors de cet espace, typiquement du système d'exploitation. A secure execution environment (Trusted execution environment or TEE) is, within a computer processing unit provided with a processor or CPU (Central Processing Unit) 7, a temporary space for calculation and data storage. , called (by convention) an enclave, or even cryptographic enclave, which is isolated, by cryptographic means, from any unauthorized action resulting from the execution of an application outside this space, typically the operating system.

[0042] Intel® a, par exemple, revu à partir de 2013 la structure et les interfaces de ses processeurs pour y inclure des fonctions d'enclave, sous la dénomination Software Guard Extension, plus connue sous l'acronyme SGX. SGX équipe la plupart des processeurs de type XX86 commercialisés par Intel® depuis 2015, et plus précisément à partir de la sixième génération incorporant la microarchitecture dite Skylake. Les fonctions d'enclave proposées par SGX ne sont pas accessibles d'office : il convient de les activer via le système élémentaire d'entrée/sortie (Basic Input Output System ou BIOS). [0042] Intel®, for example, from 2013 revised the structure and interfaces of its processors to include enclave functions, under the name Software Guard Extension, better known by the acronym SGX. SGX equips most of the XX86 type processors marketed by Intel® since 2015, and more specifically from the sixth generation incorporating the so-called Skylake microarchitecture. The enclave functions offered by SGX are not automatically accessible: they must be activated via the elementary input / output system (Basic Input Output System or BIOS).

[0043] Il n'entre pas dans les nécessités de la présente description de détailler l'architecture des enclaves, dans la mesure où : En dépit de sa relative jeunesse, cette architecture est relativement bien documentée, notamment par Intel® qui a déposé de nombreux brevets, cf. par ex., parmi les plus récents, la demande de brevet américain US 2019/0058696 ; Des processeurs permettant de les implémenter sont disponibles sur le marché - notamment les processeur Intel® précités ; Seules les fonctionnalités permises par l'enclave nous intéressent ici, ces fonctionnalités pouvant être mises en œuvre via des lignes de commande spécifiques. A ce titre, l'homme du métier pourra se référer au guide édité en 2016 par Intel® : Software Guard Extensions, Developer Guide.It does not come within the requirements of the present description to detail the architecture of the enclaves, insofar as: Despite its relative youth, this architecture is relatively well documented, in particular by Intel® which has filed numerous patents, cf. e.g., among the most recent, the US patent application US 2019/0058696; Processors making it possible to implement them are available on the market - in particular the aforementioned Intel® processors; Only the functionalities allowed by the enclave are of interest to us here, these functionalities being able to be implemented via specific command lines. As such, those skilled in the art may refer to the guide published in 2016 by Intel®: Software Guard Extensions, Developer Guide.

[0044] Pour une description plus accessible des enclaves, et plus particulièrement d'Intel® SGX, l'homme du métier peut également se référer à A. Adamski, Overview of Intel SGX - Part 1, SGX Internai, ou à D. Boneh, Surnaming Schemes, Fast Verification, and Applications to SGX Technology, in Topics in Cryptology, CT - RSA 2017, The Cryptographers' Track at the RSA Conférence 2017, San Francisco, CA, USA, Feb.14-17, 2017, Proceedings, pp.149-164, ou encore à K. Severinsen, Secure Programming with Intel SGX and Novel Applications, Thesis submitted for the Degree of Master in Programming and Networks, Dept. Of Informatics, Faculty of Mathematics and Natural Science, University of Oslo, Autumn 2017. For a more accessible description of the enclaves, and more particularly of Intel® SGX, those skilled in the art can also refer to A. Adamski, Overview of Intel SGX - Part 1, SGX Internai, or to D. Boneh , Nickaming Schemes, Fast Verification, and Applications to SGX Technology, in Topics in Cryptology, CT - RSA 2017, The Cryptographers' Track at the RSA Conférence 2017, San Francisco, CA, USA, Feb. 14-17, 2017, Proceedings, pp. 149-164, or to K. Severinsen, Secure Programming with Intel SGX and Novel Applications, Thesis submitted for the Degree of Master in Programming and Networks, Dept. Of Informatics, Faculty of Mathematics and Natural Science, University of Oslo, Autumn 2017.

[0045] Pour résumer, en référence à laFIG.2, une enclave8comprend, en premier lieu, une zone9mémoire sécurisée (dénommée Page Cache d'enclave, en anglais Enclave Page Cache ou EPC), qui contient du code et des données relatives à l'enclave elle-même, et dont le contenu est chiffré et déchiffré en temps réel par une puce dédiée dénommée Moteur de Chiffrement de Mémoire (en anglais Memory Encryption Engine ou MEE). L'EPC9est implémentée au sein d'une partie de la mémoire vive dynamique (DRAM)10allouée au processeur7, et à laquelle les applications ordinaires (notamment le système d'exploitation) n'ont pas accès. To summarize, with reference to theFIG.2, an enclave8includes, first of all, a secure memory zone9 (called Enclave Page Cache, in English Enclave Page Cache or EPC), which contains code and data relating to the 'enclave itself, and the content of which is encrypted and decrypted in real time by a dedicated chip called the Memory Encryption Engine (MEE). The EPC9 is implemented within a part of the dynamic random access memory (DRAM) 10 allocated to the processor7, and to which ordinary applications (in particular the operating system) do not have access.

[0046] L'enclave8comprend, en deuxième lieu, des clés cryptographiques employées pour chiffrer ou signer à la volée les données sortant de l'EPC9, ce grâce à quoi l'enclave8peut être identifiée (notamment par d'autres enclaves), et les données qu'elle génère peuvent être chiffrées pour être stockées dans des zones de mémoire non protégées (c'est-à-dire hors de l'EPC9). The enclave8 includes, secondly, cryptographic keys used to encrypt or sign on the fly the data leaving the EPC9, whereby the enclave8 can be identified (in particular by other enclaves), and the The data it generates can be encrypted to be stored in unprotected memory areas (i.e. outside of the EPC9).

[0047] Pour pouvoir exploiter une telle enclave8, une application11doit être segmentée en, d'une part, une ou plusieurs parties12non sécurisées (en anglais untrusted part(s)), et, d'autre part, une ou plusieurs parties13sécurisées (en anglais trusted part(s)). In order to be able to operate such an enclave8, an application11 must be segmented into, on the one hand, one or more unsecured parts12 (untrusted part (s)), and, on the other hand, one or more secure parts13 (in English trusted part (s)).

[0048] Seuls les processus induits par la (les) partie(s)13sécurisée(s) de l'application11peuvent accéder à l'enclave8. Les processus induits par la (les) partie(s)12non sécurisée(s) ne peuvent pas accéder à l'enclave8, c'est-à-dire qu'ils ne peuvent pas dialoguer avec les processus induits par la (les) partie(s)13sécurisée(s). Only the processes induced by the secure part (s) 13 of the application11 can access the enclave8. The processes induced by the unsecured part (s) 12 cannot access the enclave8, i.e. they cannot dialogue with the processes induced by the part (s) (s) 13secure (s).

[0049] La création (également dénommée instanciation) de l'enclave8et le déroulement de processus en son sein sont commandés via un jeu14d'instructions particulières exécutables par le processeur7et appelées par la (les) partie(s)13sécurisée(s) de l'application11. The creation (also called instantiation) of the enclave8 and the flow of processes within it are controlled via a set of particular instructions executable by the processor7et called by the part (s) 13secure (s) of the application11.

[0050] Parmi ces instructions : ECREATE commande la création d'une enclave8 ; EINIT commande l'initialisation de l'enclave8 ; EADD commande le chargement de code dans l'enclave8 ; EENTER commande l'exécution de code dans l'enclave8 ; ERESUME commande une nouvelle exécution de code dans l'enclave8 ; EEXIT commande la sortie de l'enclave8, typiquement à la fin d'un processus exécuté dans l'enclave8.Among these instructions: ECREATE commands the creation of an enclave8; EINIT commands the initialization of the enclave8; EADD commands code loading into the enclave8; EENTER commands code execution in the enclave8; ERESUME commands a new execution of code in the enclave8; EEXIT controls the exit of enclave8, typically at the end of a process running in enclave8.

[0051] On a, sur laFIG.2, représenté de manière fonctionnelle l'enclave8sous la forme d'un bloc (en traits pointillés) englobant la partie13sécurisée de l'application11, le jeu14d'instructions du processeur7, et l'EPC9. Cette représentation n'est pas réaliste ; elle vise simplement à regrouper visuellement les éléments qui composent ou exploitent l'enclave8. We have, on laFIG.2, functionally represented the enclave8 in the form of a block (in dotted lines) encompassing the secure part13 of the application11, the set14d'instructions of the processor7, and the EPC9. This representation is not realistic; it simply aims to visually group together the elements that make up or exploit the enclave8.

[0052] Nous expliquerons ci-après comment sont exploitées les enclaves. We will explain below how the enclaves are exploited.

[0053] Le procédé proposé vise à permettre la signature numérique décentralisée d'une transactionTXnumérique à destination d'une blockchain5. The proposed method aims to allow the decentralized digital signature of a digital TX transaction intended for a blockchain5.

[0054] La signature doit être effectuée par chiffrement de la transactionTXau moyen de plusieurs clés15,16cryptographiques privées (au moins au nombre de deux), stockées sur le réseau1en application des règles de Shamir (dites du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing). The signature must be performed by encryption of the TX transaction by means of several private cryptographic keys15,16 (at least two in number), stored on the network1 in application of Shamir's rules (known as Shamir's Secret Sharing, in English Shamir's Secret Sharing).

[0055] Selon les règles de Shamir, chaque clé15,16privée a, auparavant, été fragmentée en un ensemble de N fragments respectifs15.i,16.i(N un entier prédéterminé, N>3, i un indice entier, 1≤i≤N), tel qu'un sous-ensemble de K fragments15.i,16.i(K un entier prédéterminé, 1<K<N, avec 1≤i≤K) est suffisant pour reconstituer la clé respective15,16. According to Shamir's rules, each private key15,16 has previously been fragmented into a set of N respective fragments15.i, 16.i (N a predetermined integer, N> 3, i an integer index, 1≤i ≤N), such that a subset of K fragments15.i, 16.i (K a predetermined integer, 1 <K <N, with 1≤i≤K) is sufficient to reconstitute the respective key15,16.

[0056] Chaque fragment15.i,16iest stocké séparément dans un nœud2du réseau1. Each fragment15.i, 16is stored separately in a node2 of the network1.

[0057] La transactionTXest initiée par une unitéEde traitement informatique (équipant par ex. un ordinateur personnel fixe ou portable, une tablette ou encore un smartphone), reliée au réseau1et appelée émetteur. The transactionTX is initiated by a computer processing unit (eg equipping a fixed or portable personal computer, a tablet or even a smartphone), connected to the network1and called the transmitter.

[0058] Ce procédé comprend plusieurs phases, à savoir : Une phase de chargement ; Une phase de contrôle ; Une phase de signature ; Une phase de déploiement.This method comprises several phases, namely: A loading phase; A control phase; A signing phase; A deployment phase.

[0059] La phase de chargement comprend une première opération101qui consiste, à l'initiative de l'émetteurE, à établir une connexion au réseau1, via une requête (REQ) adressée à celui-ci. The loading phase comprises a first operation 101 which consists, on the initiative of the transmitter, in establishing a connection to the network 1, via a request (REQ) addressed to the latter.

[0060] Une deuxième opération102consiste, parmi le réseau1, à sélectionner un nœud2Pdit de calcul, équipé d'une unité de traitement dans laquelle est implémentée une enclave8. A second operation 102 consists, among the network 1, in selecting a computing node 2 Pdit, equipped with a processing unit in which an enclave 8 is implemented.

[0061] Une troisième opération103consiste, au sein du nœud2Pde calcul, à instancier l'enclave8. A third operation 103 consists, within the computation node2P, in instantiating the enclave8.

[0062] Une quatrième opération104consiste, au sein de l'émetteurE, à générer la transactionTX. A fourth operation104 consists, within the issuerE, in generating the transactionTX.

[0063] Cette transactionTXcontient typiquement un identifiant associé à l'émetteurEou à son utilisateur personne physique (cette identité se présente par ex. sous forme d'une clé cryptographique publique, ou d'un dérivé de cette clé cryptographique publique, par ex. un condensat de cette clé, notamment par la méthode SHA-256). This transactionTX typically contains an identifier associated with the issuer or with its user, a physical person (this identity is for example in the form of a public cryptographic key, or a derivative of this public cryptographic key, for example a condensate of this key, in particular by the SHA-256 method).

[0064] Dans l'hypothèse où la transactionTXest émise à l'intention d'un destinataire, elle contient également un identifiant associé à ce destinataire (par ex. sous forme d'une clé publique ou d'un dérivé de cette clé publique, par ex. un condensat). In the event that the transactionTX is sent to a recipient, it also contains an identifier associated with this recipient (eg in the form of a public key or a derivative of this public key, e.g. condensate).

[0065] Elle contient par ailleurs un actif (qui peut se présenter sous forme de données quelconques - il peut s'agir d'un nombre, correspondant par ex. à un montant exprimé dans une devise). It also contains an asset (which can be in the form of any data - it can be a number, corresponding for example to an amount expressed in a currency).

[0066] Une cinquième opération105consiste à charger la transactionTXdans l'enclave, via une ligne17de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS). A fifth operation105 consists in loading the transactionTX in the enclave, via a secure communication line (eg using the Transport Layer Security or TLS protocol).

[0067] Les phases de contrôle, de signature et de déploiement sont conduites au sein ou à partir de l'enclave8. The control, signature and deployment phases are carried out within or from the enclave8.

[0068] Selon un mode préféré de réalisation, les opérations relatives au contrôle et à la signature sont effectuées suivant les instructions d'un contrat intelligentSCdéployé sur la blockchain5. According to a preferred embodiment, the operations relating to the control and to the signature are carried out according to the instructions of an intelligent contract SC deployed on the blockchain5.

[0069] Comme illustré sur laFIG.3, une sixième opération106consiste, pour l'enclave8, à appeler (CALL) le contrat intelligentSC. As illustrated in laFIG.3, a sixth operation 106consists, for the enclave8, in calling (CALL) the intelligent contract SC.

[0070] Une septième opération107consiste, en retour, à charger le code du contrat intelligentSCdans l'enclave8pour exécution. Est également chargée dans l'enclave8une machine virtuelle (EVM lorsque le contrat intelligentSCest programmé selon les spécifications d'Ethereum) destinée à permettre l'exécution du code du contrat intelligentSC. A seventh operation 107 consists, in return, in loading the code of the intelligent contract SC in the enclave 8 for execution. Also loaded into the enclave8 is a virtual machine (EVM when the smart contract SC is programmed according to Ethereum's specifications) intended to allow execution of the code of the smart contract SC.

[0071] La phase de contrôle a pour objectif de vérifier que certaines conditions concernant la transactionTXsont remplies, en soumettant la transactionTXà l'autorisation d'au moins un tiers de confiance, placé derrière un terminal tiersTT, pour minimiser les risques d'usurpation d'identité. The objective of the control phase is to verify that certain conditions concerning the transaction TX are met, by subjecting the transaction TX to the authorization of at least one trusted third party, placed behind a third party terminal TT, to minimize the risks of theft. 'identity.

[0072] La phase de contrôle comprend en particulier des opérations d'authentification du tiers de confiance. The control phase comprises in particular authentication operations of the trusted third party.

[0073] Selon un mode particulier de réalisation, la phase de contrôle comprend même une authentification du (ou des) individu(s) personne(s) physique(s) derrière l'émetteurE. According to a particular embodiment, the control phase even comprises an authentication of the individual (s) physical person (s) behind the transmitter.

[0074] L'authentification est ici réalisée ici par comparaison de données biométriques. Authentication is performed here by comparison of biometric data.

[0075] L'émetteur E est équipé de (ou relié à) un dispositif18de capture biométrique ou scanneur. Le scanneur18est configuré pour réaliser une capture de données19biométriques de l'individu au niveau d'un membre (par ex. un ou plusieurs doigt(s), une main) ou d'un organe (par ex. un oeil, le visage, une oreille, une partie du réseau veineux) de cet individu. The transmitter E is equipped with (or connected to) a biometric capture device or scanner. The scanner18 is configured to capture biometric data19 of the individual at a limb (e.g. one or more finger (s), a hand) or organ (e.g. an eye, face, body). ear, part of the venous system) of this individual.

[0076] De même, le terminal tiersTTest équipé de (ou relié à) un dispositif20biométrique ou scanneur. Le scanneur20est configuré pour réaliser une capture de données21de l'individu au niveau d'un membre (par ex. un ou plusieurs doigt(s), une main) ou d'un organe (par ex. un oeil, le visage, une oreille, une partie du réseau veineux) de cet individu. Likewise, the third-party terminal is equipped with (or connected to) a biometric device or scanner. The scanner20 is configured to capture data21 of the individual at a limb (e.g. one or more finger (s), hand) or organ (e.g. eye, face, ear , part of the venous network) of this individual.

[0077] Ainsi, une huitième opération108consiste, pour l'enclave8, à transmettre à l'émetteurEune requête d'authentification. Thus, an eighth operation 108 consists, for the enclave8, in transmitting to the sender an authentication request.

[0078] Une neuvième opération109consiste, au niveau de l'émetteurE, à réaliser, au moyen de son scanneur18, une capture des données19biométriques de l'individu. Dans l'exemple illustré, ces données19biométriques sont issues d'une empreinte digitale. A ninth operation109 consists, at the level of the transmitterE, in carrying out, by means of its scanner18, a capture of the biometric data19 of the individual. In the example illustrated, these biometric data come from a fingerprint.

[0079] Une dixième opération110consiste, à partir de l'émetteurE, à charger, dans l'enclave8du nœud2Pde calcul via une ligne17de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS), les données19biométriques ainsi capturées. A tenth operation 110 consists, from the transmitter E, in loading, into the computation node 2 P enclave 8 via a secure communication line (eg using the Transport Layer Security or TLS protocol), the biometric data thus captured.

[0080] Parallèlement, ou subséquemment, une onzième opération111consiste, pour l'enclave8, à sélectionner parmi le réseau1un nœud2Bde stockage sur lequel est stocké un premier conteneur 22 crypté contenant des premières données23biométriques de référence, et à transmettre à ce nœud2Bde stockage une requête (REQ) de communication de ce conteneur22. At the same time, or subsequently, an eleventh operation111 consists, for the enclave8, in selecting from the network1a storage node2B on which is stored a first encrypted container 22 containing first reference biometric data23, and in transmitting to this storage node2B a request ( REQ) of communication of this container 22.

[0081] Une douzième opération112consiste, à partir du nœud2Bde stockage, à charger dans l'enclave8le premier conteneur22crypté. A twelfth operation112 consists, from the storage node2B, in loading into the enclave8 the first encrypted container22.

[0082] Le déchiffrement des données23biométriques de référence du premier conteneur22crypté nécessite une première clé24cryptographique de déchiffrement, stockée sur le réseau1. The decryption of the biometric reference data23 of the first encrypted container22 requires a first decryption cryptographic key24, stored on the network1.

[0083] Selon un mode préféré de réalisation, et comme illustré sur laFIG.3, la première clé24est distribuée sur le réseau1en application des règles de Shamir (dites du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing). According to a preferred embodiment, and as illustrated in theFIG.3, the first key 24 is distributed over the network 1 in application of Shamir's rules (known as Shamir's Secret Sharing, in English Shamir's Secret Sharing).

[0084] Plus précisément, selon les règles de Shamir, la première clé24a, auparavant, été fragmentée en un ensemble de N fragments24.i(N un entier prédéterminé, N>3, i un indice entier, 1≤i≤N) tel qu'un sous-ensemble de K fragments24.i(K un entier prédéterminé, 1<K<N, avec 1≤i≤K) est suffisant pour reconstituer la clé24, chaque fragment24.iétant stocké séparément dans un nœud2Cde stockage du réseau1. More specifically, according to Shamir's rules, the first key24a, previously, was fragmented into a set of N fragments24.i (N a predetermined integer, N> 3, i an integer index, 1≤i≤N) such that a subset of K fragments24.i (K a predetermined integer, 1 <K <N, with 1≤i≤K) is sufficient to reconstitute the key24, each fragment24.iet being stored separately in a storage node2C of the network1.

[0085] Une treizième opération113consiste par conséquent, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Cde stockage sur lesquels sont stockés K fragments24.irespectifs, et à transmettre à chaque nœud2Cde stockage une requête (REQ) de communication de son fragment24.i. A thirteenth operation113 therefore consists, for the enclave8, in selecting from among the network1K storage nodes2C on which K fragments24.irespectives are stored, and in transmitting to each storage node2C a request (REQ) to communicate its fragment24.i.

[0086] Comme illustré sur laFIG.3, une quatorzième opération114consiste, à partir des nœuds2Cde stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments24.i. As illustrated in laFIG.3, a fourteenth operation114 consists, from the storage nodes2C thus selected, to be loaded into the enclave8the K fragments24.i.

[0087] Une quinzième opération115consiste, pour l'enclave8, à reconstituer la première clé24à partir des K fragments24.iainsi chargés. A fifteenth operation115 consists, for the enclave8, in reconstituting the first key24 from the K fragments24.iainsi loaded.

[0088] Une seizième opération116consiste, pour l'enclave8, à déchiffrer les données23biométriques de référence du premier conteneur22en lui appliquant la première clé24ainsi reconstituée. A sixteenth operation116 consists, for the enclave8, in decrypting the reference biometric data23 of the first container22 by applying the first key24 to it, thus reconstituted.

[0089] Une dix-septième opération117consiste, pour l'enclave8, à comparer les données19biométriques issues de la capture effectuée par le scanneur18et les données23biométriques de référence ainsi déchiffrées. La comparaison peut être effectuée par une technique classique (typiquement par mesure des distances entre minuties dans le cas de l'empreinte digitale). A seventeenth operation117 consists, for the enclave8, in comparing the biometric data19 resulting from the capture carried out by the scanner18 and the reference biometric data23 thus deciphered. The comparison can be carried out by a conventional technique (typically by measuring the distances between minutiae in the case of the fingerprint).

[0090] Parallèlement, ou subséquemment, une dix-huitième opération118consiste, pour l'enclave, à soumettre la transactionTXau terminal tiersTT, accompagnée d'une requête (REQ) d'autorisation et de données d'authentification. At the same time, or subsequently, an eighteenth operation118consists, for the enclave, in submitting the transactionTX to the third party terminalTT, accompanied by a request (REQ) for authorization and authentication data.

[0091] Une dix-neuvième opération119consiste, au niveau du terminal tiersTT, à réaliser, au moyen du scanneur20, une capture des données21biométriques de l'individu utilisateur du terminal tiersTT. Dans l'exemple illustré, ces données21biométriques sont issues d'une empreinte digitale. A nineteenth operation119 consists, at the level of the third TT terminal, in carrying out, by means of the scanner 20, a capture of the biometric data of the individual user of the third TT terminal. In the example illustrated, these biometric data come from a fingerprint.

[0092] Une vingtième opération120consiste, à partir du terminal tiersTT, à charger dans l'enclave8, via une ligne17'de communication sécurisée (par ex. utilisant le protocole Transport Layer Security ou TLS), une autorisation de la transactionTX, accompagnée des données21(biométriques) d'authentification. A twentieth operation120 consists, from the third-party TT terminal, to be loaded into the enclave8, via a secure communication line17 '(eg using the Transport Layer Security or TLS protocol), an authorization of theTX transaction, accompanied by the data21 (biometric) authentication.

[0093] Parallèlement, ou subséquemment, une vingt-et-unième opération121consiste, pour l'enclave8, à sélectionner parmi le réseau1un nœud2Bde stockage sur lequel est stocké un deuxième conteneur25crypté contenant des deuxièmes données26biométriques de référence, et à transmettre à ce nœud2Bde stockage une requête (REQ) de communication de ce conteneur25. At the same time, or subsequently, a twenty-first operation121 consists, for the enclave8, in selecting from the network1a storage node2B on which is stored a second encrypted container25 containing second reference biometric data26, and in transmitting to this storage node2B a communication request (REQ) from this container 25.

[0094] Une vingt-deuxième opération122consiste, à partir du nœud2Bde stockage, à charger dans l'enclave8le deuxième conteneur25crypté. A twenty-second operation122 consists, from the storage node2B, in loading into the enclave8 the second encrypted container25.

[0095] Le déchiffrement des données26biométriques de référence du deuxième conteneur25crypté nécessite une deuxième clé27cryptographique de déchiffrement, stockée sur le réseau1. The decryption of the biometric reference data26 of the second encrypted container25 requires a second decryption cryptographic key27, stored on the network1.

[0096] Selon un mode préféré de réalisation, et comme illustré sur laFIG.3, la deuxième clé27est distribuée sur le réseau1en application des règles de Shamir (dites du Partage de Secret de Shamir, en anglais Shamir's Secret Sharing). According to a preferred embodiment, and as illustrated in theFIG.3, the second key 27 is distributed over the network 1 in application of Shamir's rules (called Shamir's Secret Sharing, in English Shamir's Secret Sharing).

[0097] Plus précisément, selon les règles de Shamir, la deuxième clé27a, auparavant, été fragmentée en un ensemble de N fragments27.i(N un entier prédéterminé, N>3, i un indice entier, 1≤i≤N), tel qu'un sous-ensemble de K fragments27.i(K un entier prédéterminé, 1<K<N, avec 1≤i≤K) est suffisant pour reconstituer la clé27, chaque fragment27.iétant stocké séparément dans un nœud2Cde stockage du réseau 1. More precisely, according to Shamir's rules, the second key27a, previously, was fragmented into a set of N fragments27.i (N a predetermined integer, N> 3, i an integer index, 1≤i≤N), such that a subset of K fragments27.i (K a predetermined integer, 1 <K <N, with 1≤i≤K) is sufficient to reconstitute the key27, each fragment27.i being stored separately in a storage node2C of the network 1.

[0098] Une vingt-troisième opération123consiste par conséquent, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Cde stockage sur lesquels sont stockés K fragments27.irespectifs, et à transmettre à chaque nœud2Cde stockage une requête (REQ) de communication de son fragment27.i. A twenty-third operation123 therefore consists, for the enclave8, in selecting from among the network1K storage nodes2C on which K fragments27.irespectives are stored, and in transmitting to each storage node2C a request (REQ) to communicate its fragment27. i.

[0099] Comme illustré sur laFIG.3, une vingt-quatrième opération124consiste, à partir des nœuds2Cde stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments27.i. As illustrated in laFIG.3, a twenty-fourth operation124 consists, from the storage nodes2C thus selected, in loading into the enclave8the K fragments27.i.

[0100] Une vingt-cinquième opération125consiste, pour l'enclave8, à reconstituer la deuxième clé27à partir des K fragments27.iainsi chargés. [0100] A twenty-fifth operation125 consists, for the enclave8, in reconstituting the second key27 from the K fragments27.iainsi loaded.

[0101] Une vingt-sixième opération126consiste, pour l'enclave8, à déchiffrer les données26biométriques de référence du deuxième conteneur25en lui appliquant la deuxième clé27ainsi reconstituée. A twenty-sixth operation 126 consists, for the enclave8, in decrypting the reference biometric data26 of the second container25 by applying the second key27 to it, thus reconstituted.

[0102] Une vingt-septième opération127consiste, pour l'enclave8, à comparer les deuxièmes données21biométriques issues de la capture effectuée par le scanneur20et les données26biométriques de référence ainsi déchiffrées. La comparaison peut être effectuée par une technique classique (typiquement par mesure des distances entre minuties dans le cas de l'empreinte digitale). A twenty-seventh operation 127 consists, for the enclave8, in comparing the second biometric data 21 resulting from the capture carried out by the scanner 20 and the reference biometric data thus deciphered. The comparison can be carried out by a conventional technique (typically by measuring the distances between minutiae in the case of the fingerprint).

[0103] Si la comparaison des données biométriques issues de l'émetteur E et/ou du terminal tiersTTest un échec, les données19,23et/ou les données21,26sont décrétées ne pas correspondre, et il est mis fin au processus de signature. L'émetteurEen est informé. Les opérations de capture et de comparaison des données biométriques peuvent être répétées, pour minimiser le risque de faux négatif. If the comparison of the biometric data from the transmitter E and / or the third-party terminal TT is a failure, the data19,23 and / or the data21,26 are declared not to correspond, and the signing process is terminated. The sender is informed. The biometric data capture and comparison operations can be repeated, to minimize the risk of false negatives.

[0104] Si au contraire la comparaison est un succès, les données19,23et les données21,26sont décrétées correspondre, et la phase de signature est initiée. Pour conduire celle-ci, l'enclave8doit disposer de la première clé15privée (correspondant à l'émetteurE) et de la deuxième clé16privée (correspondant au terminal tiersTT). If, on the contrary, the comparison is successful, the data 19,23 and the data 21,26 are declared to correspond, and the signing phase is initiated. To drive this, the enclave8 must have the first private key15 (corresponding to the transmitterE) and the second private key16 (corresponding to the third party TT terminal).

[0105] Une vingt-huitième opération128consiste, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Ade stockage sur lesquels sont stockés K fragments15.ide la première clé15, et à transmettre à chaque nœud2Ade stockage une requête (REQ) de communication de son fragment15.i(FIG.4). A twenty-eighth operation128 consists, for the enclave8, in selecting from the network1K storage nodes2A on which are stored K fragments15.ide the first key15, and in transmitting to each storage node2A a request (REQ) for communication of its fragment15 .i (FIG. 4).

[0106] Comme illustré sur laFIG.4, une vingt-neuvième opération129consiste, à partir des nœuds2Ade stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments15.i. As illustrated in laFIG.4, a twenty-ninth operation129 consists, from the storage nodes2A thus selected, in loading into the enclave8the K fragments15.i.

[0107] Une trentième opération130consiste, pour l'enclave8, à reconstituer la clé15à partir des K fragments16.iainsi chargés. A thirtieth operation 130 consists, for the enclave8, in reconstituting the key15 from the K fragments16.iainsi loaded.

[0108] Une trente-et-unième opération131consiste, pour l'enclave8, à sélectionner parmi le réseau1K nœuds2Ade stockage sur lesquels sont stockés K fragments16.ide la deuxième clé16, et à transmettre à chaque nœud2Ade stockage une requête (REQ) de communication de son fragment16.i(FIG.4). A thirty-first operation131 consists, for the enclave8, in selecting from among the network1K storage nodes2A on which are stored K fragments16.ide the second key16, and in transmitting to each storage node2A a communication request (REQ) of its fragment16.i (FIG. 4).

[0109] Comme illustré sur laFIG.4, une trente-deuxième opération132consiste, à partir des nœuds2Ade stockage ainsi sélectionnés, à charger dans l'enclave8les K fragments16.i. As illustrated in laFIG.4, a thirty-second operation132 consists, from the storage nodes2A thus selected, in loading the K fragments16.i into the enclave8.

[0110] Une trente-troisième opération133consiste, pour l'enclave8, à reconstituer la deuxième clé16à partir des K fragments16.iainsi chargés. [0110] A thirty-third operation133 consists, for the enclave8, in reconstituting the second key16 from the K fragments16.iainsi loaded.

[0111] Une trente-quatrième opération134consiste à signer la transactionTXen chiffrant tout ou partie des informations de celle-ci au moyen de chaque clé15,16privée ainsi reconstituée, le résultat étant une transactionSTXsignée. [0111] A thirty-fourth operation134 consists in signing the transactionTX by encrypting all or part of the information of the latter by means of each private key15,16 thus reconstituted, the result being a signed transactionSTX.

[0112] La phase de déploiement peut alors être initiée : il s'agit de soumettre la transactionSTXsignée au réseau1pour validation et inscription dans la blockchain5. The deployment phase can then be initiated: it involves submitting the signed transaction STX to the network1 for validation and registration in the blockchain5.

[0113] A cet effet, et selon un mode de réalisation illustré sur laFIG.4, une trente-cinquième opération135consiste, pour l'enclave8, à établir une session de communication avec au moins un nœud2du réseau1, une trente-sixième opération136consistant alors à transmettre à ce nœud2la transactionSTXsignée, en vue de son inscription dans la blockchain5. La transactionSTXsignée est alors distribuée sur plusieurs nœuds2validateurs du réseau1, aux fins de vérification préalable à l'inscription. To this end, and according to an embodiment illustrated in theFIG.4, a thirty-fifth operation135 consists, for the enclave8, in establishing a communication session with at least one node2 of the network1, a thirty-sixth operation136 then consisting of transmit the signed STX transaction to this node2, with a view to its registration in the blockchain5. The signed STX transaction is then distributed to several validator nodes2 of the network1, for the purpose of verification prior to registration.

[0114] La vérification de la transactionSTXcomprend au moins la vérification (c'est-à-dire la reconnaissance) de la signature ; elle peut en outre comprendre la reconnaissance, sur la blockchain5, des identifiants de l'émetteur et du destinataire, et le constat que l'émetteur E dispose effectivement d'un solde suffisant. The verification of the transactionSTX comprises at least the verification (that is to say the recognition) of the signature; it can also include the recognition, on the blockchain5, of the identifiers of the sender and the recipient, and the observation that the sender E does indeed have a sufficient balance.

[0115] Après que la transactionSTXsignée a été vérifiée, une trenteseptième opération137consiste, pour un ou plusieurs nœuds2validateurs, à l'inscrire dans un nouveau bloc4destiné à la blockchain5. Une trente-huitième opération138consiste, pour l'un des nœuds2validateurs, à ajouter le nouveau bloc4contenant la transaction STX signée à la blockchain5, après l'achèvement d'un mécanisme de consensus tel que preuve de travail (en anglais proof-of-work ou PoW), preuve d'autorité (en anglais proof-of-authority ou PoA) ou preuve d'enjeu (en anglais proof-of-stake ou PoS). [0115] After the signed STX transaction has been verified, a thirtieth operation137 consists, for one or more validator2 nodes, in entering it in a new block4 intended for the blockchain5. A thirty-eighth operation138 consists, for one of the validator nodes2, in adding the new block4 containing the signed STX transaction to the blockchain5, after the completion of a consensus mechanism such as proof-of-work (in English proof-of-work or PoW), proof-of-authority (PoA) or proof-of-stake (PoS).

[0116] Le procédé qui vient d'être décrit présente les avantages suivants. The process which has just been described has the following advantages.

[0117] Premièrement, il permet d'offrir une nouvelle version, distribuée, de portefeuille électronique sur la blockchain5. L'émetteurEne dispose pas des clés15,16privées utilisées pour signer les transactionsTX : ces clés15,16sont stockées de manière distribuée sur des nœuds2Adu réseau1. Le portefeuille électronique est ainsi indépendant de l'émetteurE, tout en demeurant associé à son utilisateur en tant que personne physique. First, it makes it possible to offer a new, distributed version of an electronic wallet on the blockchain5. The sender does not have the private keys15,16 used to sign the TX transactions: these keys15,16 are stored in a distributed manner on nodes2A of the network1. The electronic wallet is thus independent of the issuer, while remaining associated with its user as a natural person.

[0118] Il en va de même du terminal tiersTT, qui ne dispose pas des clés16privées : le portefeuille électronique est donc également indépendant de celui-ci, tout en étant activable sous son contrôle. The same applies to the third-party TT terminal, which does not have private keys: the electronic wallet is therefore also independent of the latter, while being activated under its control.

[0119] Il en résulte une praticité, une fiabilité et une sécurité accrues. L'utilisateur est dispensé d'effectuer des sauvegardes de sa clé15privée. Le fait, en particulier, de soumettre la transactionTXà une double signature permet d'accroître la sécurité d'utilisation du portefeuille électronique, typiquement lorsque le montant d'une transaction dépasse un seuil prédéterminé. [0119] This results in increased practicality, reliability and safety. The user is exempted from making backups of his private key. The fact, in particular, of subjecting the transaction TX to a double signature makes it possible to increase the security of use of the electronic wallet, typically when the amount of a transaction exceeds a predetermined threshold.

[0120] Les clés15,16étant fragmentées, aucun nœud2du réseau1n'en dispose seul, et ne peut par conséquent reconstituer les clés15,16pour usurper l'identité de l'utilisateur derrière l'émetteurEou le terminal tiers, et signer des transactions à leur place. [0120] The keys15,16 being fragmented, no node2 of the network1 has them alone, and can therefore reconstitute the keys15,16 to usurp the identity of the user behind the sender or the third party terminal, and sign transactions in their place. .

[0121] Diverses variantes d'exécution peuvent être prévues. [0121] Various variant embodiments can be provided.

[0122] Dans l'exemple qui vient d'être décrit, la transactionSTXsignée est inscrite dans une blockchain5déployée sur le réseau1auquel appartiennent le nœud2Cde calcul et les nœuds2Ade stockage des fragments des clés15,16privées. Cependant on peut imaginer que le réseau sur lequel la blockchain5est déployée, et le réseau auquel appartiennent le nœud2Cde calcul et les nœuds2Ade stockage, soient différents. Dans ce cas, on comprend que le nœud2Cde calcul doive être relié au réseau sur lequel la blockchain5est déployé ; en revanche, l'émetteurEet le terminal tiersTTne le sont pas nécessairement : le nœud2Cde calcul peut alors être considéré comme un mandataire de l'émetteurE, autorisé à appliquer la double signature à la transactionTX, à destination de la blockchain5déployée sur ce réseau. In the example which has just been described, the signed transaction STX is recorded in a blockchain5 deployed on the network1 to which the computation node2C and the storage nodes2A of the fragments of the private keys15,16 belong. However, we can imagine that the network on which the blockchain5 is deployed, and the network to which the compute2C node and the storage2A nodes belong, are different. In this case, we understand that the computation node2C must be connected to the network on which the blockchain5 is deployed; on the other hand, the senderEand the third-party terminalTT are not necessarily: the computation node2C can then be considered as a proxy of the senderE, authorized to apply the double signature to the transactionTX, to the blockchain5 deployed on this network.

Claims (1)

1. Procédé de signature numérique d'une transaction (TX) initiée par une unité de traitement informatique, dite émetteur (E), reliée à un réseau (1) pair-à-pair, cette transaction (TX) numérique étant destinée à être inscrite dans un nouveau bloc (4) d'une chaîne (5) de blocs, ce procédé comprenant les opérations suivantes : - Générer la transaction par l'émetteur (E), cette transaction contenant un identifiant d'émetteur ; - Sélectionner parmi le réseau (1) un nœud (2P) dit de calcul, équipé d'une unité de traitement dans laquelle est implémenté un environnement d'exécution sécurisé par cryptographie, dit enclave (8) ; - Instancier l'enclave (8) ; - Charger la transaction (TX) numérique dans l'enclave (8), via une ligne (16) de communication sécurisée ; - Identifier au moins un terminal (TT) tiers, distinct de l'émetteur (E), à l'autorisation duquel est soumise la signature de la transaction (TX) ; - Soumettre au terminal (TT) tiers la transaction (TX) accompagnée d'une requête d'autorisation et de données d'authentification ; - Charger l'autorisation dans l'enclave (8), à partir du terminal (TT) tiers, via une ligne (17) de communication sécurisée, cette autorisation étant accompagnée de données d'authentification ; - Dans l'enclave (8), vérifier si ces données d'authentification satisfont une condition d'authentification prédéfinie ; - Si les données d'authentification satisfont la condition d'authentification prédéfinie, sélectionner parmi le réseau (1) des nœuds (2A) sur lesquels sont stockés des fragments (15.i) d'une première clé (15) cryptographique privée associée à l'identifiant d'émetteur contenu dans la transaction (TX) ; - Charger lesdits fragments (15.i) de la première clé (15) dans l'enclave (8) du nœud (2P) de calcul ; - Sélectionner parmi le réseau (1) des nœuds (2A) sur lesquels sont stockés des fragments (16.i) d'une deuxième clé (16) cryptographique privée associée aux données d'authentification contenu chargées à partir du terminal (TT) tiers ; - Charger les fragments de la deuxième clé dans l'enclave (8) du nœud (2P) de calcul ; - Dans l'enclave (8) du nœud (2P) de calcul : o Reconstituer la première clé (15) cryptographique privée à partir de ses fragments (15.i) ainsi chargés ; o Reconstituer la deuxième clé (16) cryptographique privée à partir de ses fragments (16.i) ainsi chargés ; o Signer numériquement la transaction (TX) par chiffrement de tout ou partie des informations de celle-ci au moyen de chaque clé (15,16) cryptographique privée ainsi reconstituée, pour former une transaction (STX) signée ; - Inscrire la transaction (STX) signée dans un nouveau bloc (4) destiné à la chaîne (5) de blocs.1. A method of digitally signing a transaction (TX) initiated by a computer processing unit, called the transmitter (E), connected to a peer-to-peer network (1), this digital transaction (TX) being intended to be registered in a new block (4) of a chain (5) of blocks, this method comprising the following operations: - Generate the transaction by the issuer (E), this transaction containing an issuer identifier; - Select from the network (1) a node (2P) called computation, equipped with a processing unit in which is implemented an execution environment secured by cryptography, called enclave (8); - Instantiate the enclave (8); - Load the digital transaction (TX) into the enclave (8), via a secure communication line (16); - Identify at least one third-party terminal (TT), separate from the sender (E), to whose authorization the signature of the transaction (TX) is subject; - Submit to the third-party terminal (TT) the transaction (TX) accompanied by an authorization request and authentication data; - Load the authorization into the enclave (8), from the third-party terminal (TT), via a secure communication line (17), this authorization being accompanied by authentication data; - In the enclave (8), check whether these authentication data satisfy a predefined authentication condition; - If the authentication data satisfy the predefined authentication condition, select from the network (1) nodes (2A) on which are stored fragments (15.i) of a first private cryptographic key (15) associated with the sender identifier contained in the transaction (TX); - Load said fragments (15.i) of the first key (15) into the enclave (8) of the computing node (2P); - Select from the network (1) nodes (2A) on which are stored fragments (16.i) of a second private cryptographic key (16) associated with the content authentication data loaded from the third-party terminal (TT) ; - Load the fragments of the second key into the enclave (8) of the computing node (2P); - In the enclave (8) of the compute node (2P): o Reconstitute the first private cryptographic key (15) from its fragments (15.i) thus loaded; o Reconstitute the second private cryptographic key (16) from its fragments (16.i) thus loaded; o Digitally sign the transaction (TX) by encryption of all or part of the information thereof by means of each private cryptographic key (15,16) thus reconstituted, to form a signed transaction (STX); - Enter the signed transaction (STX) in a new block (4) intended for the chain (5) of blocks.
CH00767/19A 2019-06-07 2019-06-07 A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network. CH716295A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH00767/19A CH716295A2 (en) 2019-06-07 2019-06-07 A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH00767/19A CH716295A2 (en) 2019-06-07 2019-06-07 A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.

Publications (1)

Publication Number Publication Date
CH716295A2 true CH716295A2 (en) 2020-12-15

Family

ID=73727426

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00767/19A CH716295A2 (en) 2019-06-07 2019-06-07 A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.

Country Status (1)

Country Link
CH (1) CH716295A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113343311A (en) * 2021-06-04 2021-09-03 北京邮电大学 Block chain consensus method and system based on reputation model and digital signature mechanism
CN113506104A (en) * 2021-05-07 2021-10-15 杭州宇链科技有限公司 Software and hardware combined signature generation and verification method and system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113506104A (en) * 2021-05-07 2021-10-15 杭州宇链科技有限公司 Software and hardware combined signature generation and verification method and system
CN113506104B (en) * 2021-05-07 2024-03-01 杭州宇链科技有限公司 Signature generation and verification modes and system combining software and hardware
CN113343311A (en) * 2021-06-04 2021-09-03 北京邮电大学 Block chain consensus method and system based on reputation model and digital signature mechanism

Similar Documents

Publication Publication Date Title
EP3547203A1 (en) Method and system for managing access to personal data by means of an intelligent contract
EP0941525B1 (en) Authenticating system with microcircuit card
CH716295A2 (en) A method of multiple signature of a transaction intended for a blockchain, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.
FR3035248A1 (en) SECURE-OPERATING-ON-CHIP SYSTEM AND USES THEREOF
CH716294A2 (en) Decentralized signature process, under biometric control and under conditions of personal identification and geolocation, of a transaction intended for a blockchain.
EP3327607B1 (en) Data verification method
WO2020136206A1 (en) Platform for securing data
CH716285A2 (en) Method for checking the biometric data of an individual, with registration, in a blockchain, of an analysis result.
CH716299A2 (en) Method of signing a transaction intended for a blockchain, by means of a cryptographic key distributed among the nodes of a peer-to-peer network.
CH716302A2 (en) Process of decentralized signature of a transaction intended for a blockchain, following the instructions of a smart contract.
CH716300A2 (en) Process for signing a transaction intended for a blockchain, by means of a cryptographic key distributed among the nodes of a peer-to-peer network on which this blockchain is deployed.
CH716291A2 (en) Decentralized signature process, under biometric control, of a transaction intended for a blockchain.
CH716296A2 (en) A method of multiple signature of a transaction intended for a blockchain, subject to geolocation, by means of cryptographic keys distributed among the nodes of a peer-to-peer network.
CH716293A2 (en) Decentralized signature process, under biometric control and subject to personal identification, of a transaction intended for a blockchain.
CH716292A2 (en) Decentralized signature process, under biometric control and subject to geolocation, of a transaction intended for a blockchain.
CH716301A2 (en) Method of signing a transaction intended for a blockchain deployed on a peer-to-peer network, by means of a cryptographic key distributed among the nodes of another peer-to-peer network.
CH716298A2 (en) A method of storing, in encrypted form, an application on a blockchain network, with prior audit of the source code of this application.
FR3002056A1 (en) MANUFACTURED SIGNATURE AUTHENTICATION DIGITIZED.
EP2285042A1 (en) Software security module using the ciphering of a hash from a password concatenated with a seed
CH716287A2 (en) Process for processing biometric data of an individual, with phases of calibration and control and registration, in a blockchain, of an analysis result.
CH716289A2 (en) A method of checking the biometric data of an individual, with registration, in a blockchain, subject to personal identification, of an analysis result.
CH716286A2 (en) A method of checking the biometric data of an individual under condition of geolocation, with registration, in a blockchain, of an analysis result.
CH716288A2 (en) Process for processing biometric data of an individual, with phases of calibration and control and registration, in a blockchain, subject to geolocation, of an analysis result.
CH716290A2 (en) Method of checking biometric data of an individual under conditions of identification and geolocation, with registration, in a blockchain, of an analysis result.
CH716261A2 (en) A method of storing computer data by distributing an encrypted container and its decryption key on a blockchain network.

Legal Events

Date Code Title Description
AZW Rejection (application)