Puncte:7

Găsiți parametrii curbei eliptice, a și b, având în vedere două puncte de pe curbă

drapel th

Sunt nou în criptografia cu curbe eliptice și lucrez la o provocare CTF care folosește curbe eliptice. În prezent, încerc să găsesc generatorul, $G$și mi se dau cheile publice și private, $P$ și $k$, s.t. $P = [k]G$, precum și un alt punct aleatoriu pe curbă. Cunosc ordinea, $n$, al grupului și cunosc cele două numere prime, $p$ și $q$, care sunt singurii factori ai $n$.

eu citit că, dacă aveți cheile private și publice, puteți calcula generatorul ca...

$$G = [k^{-1}]P\pmod n$$

... Unde $k^{-1} = n - k$.

Totul este grozav, dar, din păcate, nu cunosc parametrii, $a$ și $b$, a curbei eliptice, $y^2 = x^3 + ax + b$, și așa că am probleme cu înmulțirea punctelor EC cu $k^{-1}$.

Mă gândeam, deoarece cunosc valorile a două puncte de pe curbă, am în esență următorul sistem de ecuații liniare:

\begin{align} y_1^2 &= x_1^3 + ax_1 + b\ y_2^2 &= x_2^3 + ax_2 + b\ \end{align}

Am încercat să rezolv acest lucru folosind soluția de teoremă z3, dar mi s-a dat un răspuns, afirmând că sistemul este nesatisfăcător. Apoi am încercat să-mi modific sistemul de ecuații, astfel încât ambele părți ale ecuației să fie calculate modulo $n$, dar acest lucru a dus la z3 să dureze o veșnicie pentru a găsi soluția, probabil pentru că $a$ și $b$ sunt numere de 128 de biți și $n$ este un număr de 512 biți. Acest lucru m-a făcut să mă gândesc la orele mele de licență de informatică, unde îmi amintesc că am aflat despre diverse probleme din informatică, iar acest lucru pare similar cu Programare cu numere întregi, care este NP-complet.

Prin urmare, este posibil să se calculeze eficient parametrii, $a$ și $b$, a unei curbe eliptice dacă cunosc ordinea $n$ si doua puncte $P$ și $Q$ pe curba?

knaccc avatar
drapel es
Pentru a inversa $k$ pentru a obține $k^{-1}$, trebuie să faceți un „modulo multiplicativ invers”. Consultați https://en.wikipedia.org/wiki/Modular_multiplicative_inverse
Puncte:8
drapel in

Date două puncte pe curbă $P=(x_1,y_1), Q=(x_2,y_2)$ putem determina parametrii formei Weierstrass scurte $y^2 = x^2 + ax +b$. Introduceți coordonatele punctelor în ecuația curbei pentru a obține două ecuații așa cum ați făcut;

\begin{align} y_1^2 &= x_1^3 + ax_1 + b &\pmod{n} \ y_2^2 &= x_2^3 + ax_2 + b &\pmod{n}\ \hline & & \text{subtract}\ y_1^2 - y_2^2 &= x_1^3 - x_2^3 + a (x_1 - x_2) &\pmod{n}\ (y_1^2 - y_2^2) -(x_1^3 - x_2^3)&= a (x_1 - x_2) &\pmod{n}\ [(y_1^2 - y_2^2) -(x_1^3 - x_2^3)] \cdot (x_1 - x_2)^{-1}&= a &\pmod{n}\ \end{align}

Pentru a putea găsi $a$ singura problemă este existenţa inversă multiplicativă modulară de $(x_1 - x_2)$ la $\bmod n$.

  • Dacă $\gcd((x_1 - x_2),n) = 1$ atunci inversul multiplicativ modular există și poate fi ușor de găsit cu Algoritm euclidian extins (Ext-GCD)
  • Dacă $\gcd((x_1 - x_2),n) \neq 1$ atunci nu există invers (vezi Ce se întâmplă mai jos).
  • Rețineți că, în cazul $x_1 - x_2 = 0$ atunci noi avem $\gcd(0,n) = n.$ Cu alte cuvinte, nu există invers.

O singura data $a$ este găsit cu succes, găsind $b$ este mai usor. Introduceți cunoscutul în ecuație, apoi rezolvați singura necunoscută $b$.


SageMath pentru inversul modular;

Zn = numere întregi (12)
a = Zn(5)
b = a^-1
A

dacă este setat $a = 4$ atunci vei primi eroarea: ZeroDivisionError: inversul lui Mod(4, 12) nu există.


Ce-ar fi dacă Nu există inversul lui $(x_1 - x_2)$ la $\bmod{n}$. Putem găsi soluții pentru mai jos?

$$(y_1^2 - y_2^2) -(x_1^3 - x_2^3)= a (x_1 - x_2) \pmod{n} \label{a}\tag{1}$$

Da, încă putem găsi soluții $\ref{a}$ dar nu vor fi unice.

Lema: Dacă $d$ este cel mai mare divizor comun al lui a și m apoi congruența liniară $ax \equiv b \pmod m$ are solutii daca si numai daca $d$ desparte $b$. Dacă $d$ desparte $b$, atunci sunt exact $d$ solutii

Pentru a le găsi, de la $a/d \cdot x \equiv b/d \pmod{m/d}$. Este clar că $\gcd(a/d,m/d)=1$. Apoi putem inversa $a/d$ si rezolva pt $x$. Atunci $\{x, x+\dfrac{m}{d},x+\dfrac{2m}{d}, \ldots, x+\dfrac{(d-1)m}{d} \}$ sunt cele $d$ soluții pentru ecuație $\ref{a}$.

Pentru fiecare dintre soluții, se așteaptă să aibă o altă soluție $b$, prin urmare, pentru a determina în mod unic, vor fi necesare informații suplimentare.

2.71828-asy avatar
drapel in
Ecuația $ab = c (\text{mod} n)$ poate fi valabilă chiar dacă nici a, nici b nu au invers multiplicativ. Condiția corectă nu ar trebui să fie dacă $(y_1^2 - y_2^2) - (x_1^3 - x_2^3)$ împarte $\gcd(x_1 - x_2, n)$?
kelalaka avatar
drapel in
@2.71828-asy Luați cazul $4x \equiv 6 \bmod 10$, $4x = 6 + 10 k$ împărțiți la 2, avem $2x = 3 \bmod 5$ deci $x = 4$ și celălalt este $x+5$ deoarece ambele satisfac $4x \equiv 6 \bmod 10$, ambele sunt solutii. Inversul, însă, trebuie să fie unic!
2.71828-asy avatar
drapel in
Ok, deci din moment ce știm că trebuie să existe un $a$ unic, știm că căutăm un invers și nu o soluție?
kelalaka avatar
drapel in
@2.71828-asy în timp ce răspundeam în primul caz, am luat în considerare și acest caz. Cu toate acestea, nu am crezut că PO va avea nevoie de asta atât de concentrat pe soluția unică. A adăugat o parte pentru asta. Într-o a doua privire, am văzut că ar putea avea nevoie. Adăugat ca **Dacă**, mulțumesc. Aceasta este o problemă foarte comună în soluțiile de criptare Hill pe care ne propunem să o analizăm...
jinscoe123 avatar
drapel th
@kelalaka Mulțumesc! Explicația ta m-a ajutat să-mi dau seama de greșeala mea. Făceam împărțirea obișnuită după $(x_1 - x_2)$, mai degrabă decât împărțirea modulară.
kelalaka avatar
drapel in
@jinscoe123 ECC este puțin complex, deoarece există un câmp în care coordonatele formează un grup în conformitate cu legea adunării. Cu toate acestea, fiecare operație se face pe câmpul de bază. L-am pus pe Sagemath să noteze că este nevoie de o comandă specială pentru a lăsa $a \in \mathbb Z_5$ sau să te descurci în alte limbaje de programare.

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.