Lire un article signature Bitcoin Schnorr

le chiffrement à clé publique-privée est la pierre angulaire de la sécurité monétaire, la navigation Web sécurisée des affaires monétaires et financières chiffrées. paire de clés publique-privée est asymétrique, ce qui signifie que d'une chaîne de nombres (privé), peuvent être exportés vers une autre chaîne (clé publique). Cependant, au contraire est impossible. Il est cette asymétrie permet aux gens de partager ouvertement la clé publique, public peut être sûr que personne ne peut en déduire la clé privée (à garder le secret des besoins clé privée et sécurisée).

paire de clés asymétriques est utilisé principalement pour deux applications:

· Dans l'authentification, vous devez vous prouver à maîtriser la clé privée;

· Dans le processus de cryptage, les informations peuvent être codées, seuls ceux qui ont la clé privée peut décrypter et lire le message.

Présentation Benpian signature numérique, nous allons discuter d'une classe particulière de clés: une clé dérivée de la courbe elliptique, il existe d'autres systèmes asymétriques dans lesquels le plus important est le produit de nombres premiers programmes basés, y compris la clé RSA .

Nous supposons que vous connaissez la cryptographie à courbe elliptique (Elliptic Curve Cryptography) les bases, il n'a pas d'importance si vous ne pouvez pas comprendre la section précédente à la compréhension originale.

· Faites le point

Ceci est une introduction interactive aux signatures numériques, utilisez le code Rust pour démontrer certaines des idées mentionnées dans cet article, afin que vous puissiez voir comment ils fonctionnent, le code utilisé dans cet article est sous-bibliothèques libsecp256k-rs.

Le nom est un peu difficile à prononcer, mais secp256k1 est le nom de la courbe elliptique, qui est utilisé pour protéger un grand nombre de transactions en devises de cryptage, y compris Bitcoin.

Cette bibliothèque particulière offre quelques fonctionnalités intéressantes, nous réécrivons l'addition et la multiplication des opérateurs de regards de code Rouille plus comme une formule mathématique, ce qui le rend plus facile à tester l'idée que nous voulons mettre en uvre.

Conseils! Ne pas utiliser cette bibliothèque dans le processus de l'écriture de code, il n'a pas été vérifiée, le cas échéant, vous pouvez utiliser ce sous-bibliothèque à la place.

· Plus la signature de Schnorr

· Les clés publiques et privées

La première chose que nous devons faire est de créer une clé publique et privée de la courbe elliptique.

En secp256k1, la clé privée est tout simplement une des valeurs entières scalaires entre 0 à 2256, autant que le nombre correspondant au nombre d'atomes dans l'univers, donc il y a des possibilités infinies.

Secp256k1 un point particulier sur la courbe, appelé G, qui agit en tant que « origine ». La clé publique est par elle-même appliquée sur la courbe G, multipliée par le « Ka », ce qui est la définition de la multiplication par un scalaire écrit:

Pa = KaG

Par exemple, quand écrire un format non compressé, la clé publique 1 est 0479BE667 ... C47D08FFB10D4B8, le code suivant illustre ceci:

· Créer une signature

A titre de

Lors de l'utilisation des valeurs aléatoires choisies pour le calcul de multiplication scalaire droit inverser ECC (à savoir, division) est presque impossible (, ). Cette propriété est appelée problème de logarithme discret (Discrete Log problème), comme beaucoup de cryptage de change et la signature numérique derrière le principe. Les signatures numériques sont de signatures valides fournissent la preuve qu'ils prennent conscience de la preuve associée au public un message / clé privée, ou un problème de logarithme discret a été résolu preuves.

DEVENEZ signature de la méthode toujours suivre les méthodes suivantes: 1. Générer une seule fois un secret r numérique (appelé nombres aléatoires). 2. Créez un R publique de r, où (R = rg). 3. Les éléments suivants envoyé pour vous à votre destinataire du message Bob-- (m), R et votre clé publique (P = kG).

La signature réelle est créée en combinant tous les hachage au-dessus de l'information pour créer un problème, e:

e = H (R || P || m)

La sélection d'une fonction de hachage, la clé électronique privée a la même gamme, dans notre cas, nous voulons que les informations retournées est de 256 numéros, donc SHA256 est un bon choix.

Maintenant, utilisez vos informations personnelles pour construire une signature: s = r + ke

Bob peut maintenant calculer e, parce qu'il connaît déjà m, R, P, mais il ne sait pas votre clé privée ou un nombre aléatoire.

Remarque: La création de la signature d'une telle signature est appelée Schnorr, nous continuerons à discuter plus tard, il y a d'autres façons de créer s, tels que ceux utilisés dans Bitcoins dans ECDSA .

Voir par exemple: = sG (r + ke) G

La multiplication à droite: = sG rG + (kG) e

En variante R = rG et P = kG, peuvent être obtenus: sG = R + Pe

Par conséquent, Bob doit calculer les est égale à la droite, qui est connu à la fois le message de Bob signatures correspondant (de la) S.G. clé publique, et vérifier l'équation (R + Pe).

· Nécessité d'un nombre aléatoire Nonce Pourquoi la signature Normaliser nombres aléatoires?

Supposons que nous venons de signer le message m:

e = H (P || m)

Signature s = ek

Comme d'habitude, nous pouvons vérifier la signature est valide?

Jusqu'à présent, tous normaux, mais maintenant tout le monde peut lire votre clé privée, parce que s est un scalaire, donc de k = / e est pas difficile, car le nombre aléatoire, doit être résolu k = (sr) / e, r est inconnue, mais , tant que r est choisi au hasard, ce n'est pas un calcul viable.

On peut montrer qu'aucun nombre aléatoire est en effet très précaire:

· Qu'est-ce que ECDH?

Comment les parties veulent obtenir une communication sécurisée Pour générer une clé partagée est utilisée pour chiffrer le message? Un procédé connu sous la courbe elliptique échange Diffie-Hellmam (Elliptic Curve échange Diffie-Hellmam), qui est un procédé simple.

ECDH utilisé dans de nombreux endroits, y compris le réseau de la foudre lors de la négociation de canal .

Voici comment cela fonctionne, Alice et Bob veulent communiquer en toute sécurité, un moyen facile est d'utiliser l'autre de la clé publique et calculer:

Pour des raisons de sécurité, le plus souvent choisis au hasard clé privée (qui implique une utilisation du terme « clé temporaire ») pour chaque session, mais le problème que nous avons rencontré était certain que l'autre identité du parti conformément à leurs demandes (possible il est un middle ).

Vous pouvez utiliser d'autres étapes d'authentification pour résoudre le problème, non détaillé ici.

· Signature Schnorr

Si vous vous concentrez souvent sur les nouvelles devises de cryptage, vous savez que Bitcoin est une signature multi-Schnorr sujet brûlant.

Mais en fait, cela est considéré comme de vieilles nouvelles, la signature Schnorr est traité comme un modèle aléatoire oracle le schéma de signature numérique sécurisée simple, il est très efficace et génère une signature courte, le brevet US 4995082, qui brevet a expiré en Février 2008 .

Pourquoi la signature Schnorr peut être source de préoccupation?

signature de Schnorr si charmant et dangereux en raison de la simplicité. signature Schnorr est linéaire, ayant ainsi un certain nombre d'excellentes propriétés.

Multiplier un ayant des propriétés courbe elliptique, donc, s'il y a deux points correspondant X, Y et x correspondant scalaire, y, alors:

(X + y) = G xG + yG = X + Y

signature de Schnorr de la forme s = r + ek, cette structure est linéaire, de sorte qu'il est très approprié pour la courbe elliptique mathématique linéaire.

Sur un linéaire a été présenté, lorsque nous vérifions la signature, la signature Schnorr linéaire très attractif, qui comprend: 1. une signature de polymérisation; 2. atomes l'échange; 3. Script « pas de script »

· Polymérisation de signature Naïf

Voyons voir, comment la propriété linéaire de signature Schnorr pour la construction de plusieurs signatures.

Quand Alice et Bob veulent signer quelque chose (comme transaction Tari) sans avoir à faire confiance, qui est, dont ils ont besoin pour prouver la propriété de leurs clés respectives, et seulement Alice et Bob fournissent leur section, de la signature globale est valide.

En supposant que la clé privée est exprimée en ki, la clé publique est représentée comme Pi. Si nous demandons Alice et Bob fournissent chacun un nombre aléatoire, vous pouvez essayer:

Ainsi, Alice et Bob peuvent fournir leur propre R, chacun peut construire deux signatures de la somme de la clé publique de deux R, il est en effet possible:

Mais ce cadre n'est pas sûr!

Clé éliminer les attaques

Toujours au-dessus de scénario, mais cette fois-ci, après la publication Alice, Bob à l'avance de la clé publique d'Alice et un nombre aléatoire.

Maintenant, la clé publique de Bob pour mentir et dire qu'il était P'b = Pb-Pa, nombre aléatoire commun est R'b = Ra-Rb.

Bob ne connaît pas la valeur de l'impact privé forgé, mais pas beaucoup.

Selon le schéma de polymérisation, tout le monde suppose Sagg = Ra + R'b + e (Pa + P'b).

Mais Bob peut créer votre propre signature ceci:

Une meilleure méthode de polymérisation

En pour annuler l'attaque, Bob ne sait pas les valeurs clé privée R et P libéré, on peut lui demander de signer un message à prouver qu'il sait vraiment la clé privée, si l'attaque Bob a échoué.

Ceci est efficace, mais il faut une autre série de passage de messages entre les parties, ce qui est peu propice à une bonne expérience utilisateur.

Une meilleure approche est une ou plusieurs fonctions suivantes de la méthode: Il suffit de montrer que, en général, le public est un modèle sûr, sans avoir à confirmer et nouvelles connexes clés, parce que nous pouvons demander à Bob de prouver en mode naïf . Il doit répondre à l'équation de Schnorr classique qui peut vérifier les signatures obtenues par la forme R + eX d'expression. Il permet la signature globale interactive (IAS), signataire besoin de se rencontrer. · Il permet signature globale non interactive (NAS), dans lequel la polymérisation peut être effectuée par quiconque. · Il permet à chaque signataire signé le même message, m. · Il permet à chaque signataire a signé son propre message, mi.

· Multi-signature

Est un multi-signature (, ) Signature schéma de simple agrégation récemment proposé, qui satisfait toutes les propriétés de la section précédente.

· Démo multi-signature

Nous serons là pour montrer interactif système multi-signature, chaque signataire a signé le même message, le programme fonctionne comme suit: 1. Comme mentionné précédemment, chaque signataire a une paire de clés publique-privée. 2. Chaque signataire part un engagement (sauter cette étape dans cette démo) pour leur nombre aléatoire du public, cette étape est nécessaire pour empêcher certains types de clés d'attaques malveillantes. 3. Chaque signataire ont sorti leur nombre aléatoire, la clé publique de Ri. 4. Calcul tous les mêmes « clé partagée publique », X comme suit:

Notez que, dans le décrit ci-dessus ordre public clé, devrait suivre certaines règles établies, par exemple, une séquence de clé lexicographique. 1. Chaque personne calcule également le nombre aléatoire partagé, R = Ri. 2. problème, e est H (R X || || m). 3. Chaque signataire est tenu de fournir une contribution de signature:

Notez que le seul point de départ est la signature standard Schnorr contient le facteur ai.

La somme totale de la polymérisation est généralement une signature, s = si.

vérification de la certification de la manière suivante: sG = R + eX

preuve:

Utilisons la triple signature pour démontrer:

· Sécurité démo

En guise de démonstration finale, laissez-nous vous montrer comment résister à l'élimination des attaques multi-signatures de schéma de signature naïve. L'élimination de l'attaque avec la partie clé de la même idée, Bob fournit une fausse valeur dans son nombre aléatoire et la clé publique:

Cela conduit à Alice et Bob ont conjointement mené le calcul suivant:

Bob puis après la construction unilatérale de signature multi-signature:

Nous supposons maintenant que la clé privée de Bob ks pas besoin d'être, mais il ne peut pas utiliser les renseignements connus pour Derive, pour en faire des signatures valides doit être vérifiée R + eX, par conséquent:

Avant l'attaque, Bob a obtenu toutes les informations nécessaires à partir du côté droit de l'équation est des calculs similaires à la signature multiple, Bob doit connaître la clé privée d'Alice et d'une clé privée forgé d'une certaine façon (ces termes ne sont plus annulés) pour créer une signature unilatérale, de sorte que son échec à éliminer les attaques.

· Attaque Replay

Chaque cérémonie de signature doit choisir un nouveau nombre aléatoire, ce qui est crucial, la meilleure approche consiste à utiliser la sécurité de chiffrement (pseudo) générateur de nombres aléatoires (CSPRNG).

Mais même si tel est le cas, la cérémonie signature attaquant peut « retour rapide » au moment de la section de génération de signature à tromper, nous avons signé un nouveau message, cette fois-ci, l'attaquant fournit un message différent, e « = H (. .. || m « ) à signer, sans faire aucun doute, chaque section côté recalcule leurs signatures:

Un attaquant peut toujours accéder à la première série de signatures, il suffit de faire la soustraction:

Tous les messages sont en fin de compte le côté droit de l'équation pour obtenir l'attaquant, donc il peut facilement extraire la clé privée de chaque personne, difficile à défendre contre de telles attaques. Une façon est plus difficile de mettre fin et relancer la cérémonie de signature, si la cérémonie multi-signature est interrompue, vous devrez recommencer à partir de la première étape, ce qui est assez ergonomique, avant l'avènement de la solution plus puissante, il peut être le plus bonne solution!

références:

"RSA (Cryptosystem)" .. Https://en.wikipedia.org/wiki/RSA_ (cryptosystème) Accès Date: 11/10/2018 "Elliptic Curve Digital Signature Algorithm", Wikipedia .. Https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm accès Date: 11/10/2018 . "BOLT # 8: le cryptage et la transmission d'authentification, la foudre RFC", Github .https: accès //github.com/lightningnetwork/lightning-rfc/blob/master/08-transport.md Date: 11/10/2018 "homme dans l'attaque du milieu", Wikipédia .https: accès //en.wikipedia.org/wiki/Man-in-the-middle_attack Date: « ? Mot de passe sécurisé générateur de nombres aléatoires Comment ça marche? » 11/10/2018 StackOverflow " . Date d'accès Https://stackoverflow.com/questions/2449594/how-does-a-cryptographically-secure-random-number-generator-work: 11/10/2018 « sécurisé nombres pseudo-aléatoires Cryptographie générateur », Wikipedia . Https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator visite: .. 11/10/2018 "signature Schnorr", Wikipedia . Https://en.wikipedia.org/wiki/Schnorr_signature visite: .. 19/09/2018 "signature Schnorr polymérisation clé", Blockstream . Https://blockstream.com/2018/01/23/musig-key-aggregation-schnorr-signatures.html_ visite: .. 19/09/2018 Gregory Maxwell, Andrew Poelstra, Yannick et Pieter Seurin Wuille "simple signature de Schnorr Bitcoin multi-usage" .https: //eprint.iacr.org/2018/068.pdf visite: .. 19/09/2018 Manu Drijvers, Kasra Edalatnejad, Bryan Ford, Eike Kiltz, perte Julian, Gregory Neven et Igors Stepanovs, « La sécurité sur deux signatures multiples », cryptographie archives ePrint, rapport 2018/417 . Https://eprint.iacr.org/2018/417.pdf visite: 21/02/2019.

Collaborateurs:

· CjS77 · SWvHeerden · Hansieodendaal · neonknight64 · anselld

Cet article Source: First Class, est une information sur le projet de chaîne de bloc national et international professionnel collecte, l'analyse de projets, services d'information d'information de suivi d'avancement des projets des entreprises, les investisseurs nationaux et étrangers pour la chaîne de bloc, fournissant des projets de diligence raisonnable et de la chaîne de bloc services d'analyse.

Source d'origine: https: //tlu.tarilabs.com/cryptography/digital_signatures/introduction_schnorr_signatures.html

Organisation centrale Département, « les anciens académiciens de base révolutionnaires et experts » activités dans le Jingdezhen
Précédent
Au lieu d'utiliser Avalon Reiz, Toyota cette fois j'ai gagné
Prochain
90000 étage acheter cette voiture, pensé pour être 200.000 personnes dans le village?
Hall bleu porcelaine de Jingdezhen contemporaine Fame et paysage blanc première personne - Yang Shuhua
2.0T + 8AT, 21,28 empreinte Vanda, la quatrième génération de Santa Fe Can Highlander rips cheval?
Le marché eZ de Zotye, avec un grand panneau de commande central, la vie de la batterie 210 kilomètres, mais un peu cher
Freshmen Raiders | amusant de voir comment les étudiants de porcelaine de Jingdezhen céramique ......
Moyen-Orient est devenu la plupart des régions chaotiques du monde, il y a un remède? Terre Connaissance Bureau
Vision Chine conflit de droits d'auteur détoné: violation réfractaire, la technologie de la chaîne de bloc à résoudre
Burst! Nanchang deux enfants à l'école maternelle 45 vomissements sévères dernière réponse officielle à la ......
Aussi la conduite, pourquoi facturez-vous plus de pétrole que d'autres?
Le coup soudain de la station, il est conseillé de touristes chinois de ne pas aller
Jingdezhen 8 grands snacks, consommés, quelle piste est votre favori? Je ne mangeais pas, vous êtes les bienvenus à la porcelaine goût ......
Pourquoi voiture blanche si facile à vendre?