Puncte:2

Este posibil să se calculeze inversul modular al unei chei publice secp256k1?

drapel jp

Știu că nu ar fi posibil să se utilizeze algoritmul euclidian extins, deoarece ar necesita capacitatea de a împărți o cheie publică și de a calcula restul. Mă întrebam dacă există alte modalități de a calcula inversul multiplicativ modular al unui punct pe o curbă eliptică (cum ar fi secp256k1)? Sau poate un motiv pentru care se dovedește imposibil? Există o modalitate (alta decât forța brută) de a găsi un număr întreg care are ca rezultat 1 atunci când cheia publică este înmulțită cu acel număr întreg?

Nu sunt foarte bine educat în matematică sau criptografie, dar mi se pare interesant, așa că poate pur și simplu nu cunosc terminologia corectă pentru a o cerceta eu.

Puncte:3
drapel my

Există o modalitate (alta decât forța brută) de a găsi un număr întreg care are ca rezultat 1 atunci când cheia publică este înmulțită cu acel număr întreg?

De fapt, având o cheie publică $H$, este ușor să găsiți cel mai mic număr întreg $x > 0$ astfel încât $xH = 1$. Pentru secp256k1 (și dacă $H$ nu este elementul neutru), atunci $x = 115792089237316195423570985008687907852837564279074904382605163141518161494337$. Acest lucru este adevărat indiferent în ce punct $H$ este; toate punctele de pe curba respectivă (altele decât elementul neutru) au această ordine.

Cu toate acestea, nu asta ne referim de obicei dacă ne referim la „mod inversul”; care sună mai degrabă ca „dat $xG$, găsiți punctul $x^{-1}G$", care se știe a fi echivalent cu problema CDH (care sperăm că este grea)

Puncte:1
drapel in

Acesta este un răspuns puțin extins;

Mă întrebam dacă există alte modalități de a calcula inversul multiplicativ modular al unui punct pe o curbă eliptică (cum ar fi secp256k1)? Sau poate un motiv pentru care se dovedește imposibil?

Comunitatea bitcoin numește de obicei înmulțirea scalară obișnuită drept înmulțire1. Ceea ce definim ca înmulțire scalară ca

$$[k]G : = \underbrace{G + G + \cdots + G}_{k-time}$$ cu alte cuvinte, adăugarea unui punct în sine $k$ ori.

Există deja o problemă definită pentru aceasta (folosind versiunea EC $r$ este ordinea elementului de bază $G$, curba este de ordin prim și $E(K)$ este mulțimea punctului curbei);

Definiții;

  • CDH : dat un triplu $(G,[a]G,[b])$ găsi $[ab]G$.
  • Inversa-DH : dat o pereche $(G, [a]G) \in E(K) - \{\mathcal{O}\}$ a elementelor de ordin prim $r$ în $E(K)$ a calcula $[a^{-1}]G$.
  • Pătrat-DH: Problema de calcul Square-DH este dată $(G, [a]G )$ Unde $G \în E(K)$ are ordin primar $r$ a calcula $[a^2]G$.

Reduceri;

  • $\text{Inverse-DH} \leq_R \text{CDH}$.

    Să presupunem că avem un oracol $O$ care rezolvă $\text{CDH}$. Ne este dat $(G,[a]G)$ dupa cum $\text{Inversa-DH}$ exemplu și vrem să găsim $P = [a]G$. Atunci noi avem $$G = [a^{-1}]P = [a^{-1}a]G = G$$

    Acum, sună oracolul $O$ cu $O(P,G,G) = O(P,[a^{-1}]P,[a^{-1}]P) $ iar ieșirile oracolului $[a^{-2}]P$. A inlocui $P$ a obține $$[a^{-2}]P = [a^{-2}a]G = [a^{-1}]G$$ Aceasta arată reducerea.

  • $\text{Pătrat-DH} \leq_R \text{Inverse-DH}$.

    Sa presupunem $O$ fii un oracol care rezolvă $\text{Inversa-DH}$ si lasa $(G, P = [a]G )$ să se acorde. Dacă $P = \mathcal{O}$ apoi întoarce-te $\mathcal{O}$ altfel $$O(P, G) = O(P , [a^{-1}]P) = [a]P = [a\cdot a]P = [a^2]P.$$ Aceasta arată reducerea.

Deci avem $\text{Square-DH} \leq_R \text{Inverse-DH} \leq_R \text{CDH}$. Dacă putem arăta asta $\text{CDH} \leq_R \text{Square-DH}$ atunci vom avea echivalența.

  • $\text{CDH} \leq_R \text{Square-DH}$

    lăsa $O$ fi un oracol de rezolvat $\text{Pătrat-DH}$ si ni se dau $(G,[a]G, [b]G)$ ca $\text{CDH}$ instanță.

    • Apel $O$ de două ori cu $O(G,[a]G)$ și $O(G,[b]G)$ a obține $P= [a^2]G$ și $Q= [b^2]G$, respectiv.

    • Acum încă un apel $O(G, P+Q) = O(G, [a+b]G)$ si ia $$R = [(a+b)^2]G = [a^2+2ab+b^2]G.$$

    • Acum, în sfârșit, calculează $$[2^{-1}](R - (P+Q)) = [2^{-1} (a^2+2ab+b^2 -a^2 -b^2)]G = [ ab]G$$ Aceasta arată reducerea.

Prin urmare, avem echivalența. Deci, dacă $\text{CDH}$ e greu atunci $\text{Inversa-DH}$ este si greu. Ei bine, sperăm că acest lucru este pentru adversari non-cuantici.

Există o modalitate (alta decât forța brută) de a găsi un număr întreg care are ca rezultat 1 atunci când cheia publică este înmulțită cu acel număr întreg?

Pot citi asta în două feluri;

  • $1$ este identitatea curbei pe care o scriem $\mathcal{O}$, atunci avem identitatea $[r]P = \mathcal{O}$ pentru fiecare element al unei curbe prime de ordine $r$. Aceasta este definiția lui ordinea unui element în teoria grupurilor.

  • $1$ dupa cum $[a\cdot a^{-1}]G = [\color{red}{1}]G = G$ atunci acesta este $\text{Inversa-DH}$ așa cum am discutat.


1Ei bine, se poate (defini | apela) adunarea punctelor ca înmulțire a punctelor, totuși, adunarea este istorică și toate cărțile majore de curbe eliptice folosesc adunarea punctelor; Peste numerele complexe, orice curbă eliptică poate fi realizată ca $\mathbb C/\Gamma$ pentru niște zăbrele $\Gamma$. În acest caz, adunarea vine pur și simplu din adunarea standard a numerelor complexe.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.