Puncte:11

De ce sunt câmpurile finite atât de importante în criptografie?

drapel id

Tocmai intru în criptografie și în prezent învăț încercând să implementez niște algoritmi cripto.

Implementând în prezent algoritmul de partajare secretă Shamir, ceea ce am observat este că câmpurile finite continuă să apară.

Pur și simplu nu înțeleg de ce sunt relevante încă.

Un lucru pe care îl văd este că se pot asigura că niciunul dintre rezultatele tale nu este zecimal, deci nu există erori de rotunjire, dar mă îndoiesc puternic că acesta este motivul pentru care sunt atât de importante. Ar fi grozav dacă cineva mi-ar putea da o intuiție de ce este nevoie de ele.

De asemenea, faptul că sunt finite dăunează securității?

kelalaka avatar
drapel in
Dlog este ușor în domenii reale și complexe. Întrebarea ta nu are un răspuns perfect. În Criptografie ne bazăm pe probleme grele și formăm scheme pe deasupra lor. Cercetătorii le folosesc ori de câte ori sunt disponibile. Perspectiva dvs. în mare parte corectă, dar nu suficientă: [Există primitive criptografice (asimetrice) care nu se bazează pe aritmetică peste câmpuri prime și/sau câmpuri finite?](https://crypto.stackexchange.com/q/54263/18298)
fgrieu avatar
drapel ng
Câmpurile finite sunt importante în criptografie, deoarece câmpurile sunt importante în știință, iar criptografia este o știință care se ocupă de mulțimi finite.
TonyK avatar
drapel us
iammadab, Dlog înseamnă [problema logaritmului discret](https://en.wikipedia.org/wiki/Discrete_logarithm). @kelalaka, nu văd cu adevărat cum ar fi trebuit să afle iammadab asta -- nu se găsește pe Google.
kelalaka avatar
drapel in
@TonyK în afara contextului, totuși, dacă inserați un rezultat al căutării Google, acolo Google folosește câteva etichete la interogare care pot scurge unele informații (nu a căutat niciodată ce sunt acestea!). Mi-am șters comentariile inutile.
Puncte:17
drapel ng

Un subiect deosebit de important pentru această întrebare este cel al dimensiunea de codificare. Aceasta provine din următorul „fapt trivial”:

Pentru un set infinit $A$, nu există unele $s\în \mathbb{N}$ astfel încât fiecare $a\în A$ poate fi descris în $s$ biți.

Se poate rezolva această problemă făcând apel la codificări cu lungime variabilă, dar acest lucru poate duce cu ușurință la probleme de securitate --- poate fi oarecum ușor să obțineți în mod pasiv unele informații despre dimensiunea unui element codificat. Dacă acest lucru ar oferi vreo indicație despre ce element a fost codificat, ar fi rău. Deci, dacă doriți ca obiectele din criptosistemul dvs. să aibă o codificare de dimensiuni uniforme, sunteți blocat cu obiecte finite.

Un avantaj (mai mic) al lucrului în structuri finite este că există distribuția uniformă. Este:

  • Distribuția maximă a entropiei pe o mulțime
  • Invariant sub bijecții
    • Aceasta include, pentru un grup $G\ni g$, bijectia $x\mapsto x+g$, care este incredibil uzual.

Aceste proprietăți sunt suficiente pentru a arăta securitatea pad-ului unic, care este destul de fundamental și deseori se dorește să apeleze la el (deseori după înlocuirea obiectelor „reale” cu unele idealizate, de exemplu, înlocuirea unui PRG cu o funcție aleatorie).

Pentru anumite grupuri infinite se pot obține distribuții cu proprietăți similare, în special Măsură Haar. Dar asta este mult mai complex din punct de vedere tehnic, deci faptul că distribuția uniformă este atât de simplă (în timp ce are proprietăți grozave) este cu siguranță un punct în favoarea terenurilor finite, deși mai puțin important decât punctul fix de dimensiune de codare în ochii mei.

Nimic din toate acestea nu răspunde de ce este finit câmpuri, în loc de doar structuri algebrice finite. Dar adesea câmpurile finite sunt folosite numai ca sursă de grupuri finite, de exemplu $\mathbb{F}_p^\times$. S-ar putea argumenta de ce se dorește mai degrabă grupuri decât structuri algebrice mai slabe, dar am doar puncte vagi pe această temă.

Poate că punctul final este „de ce nu structuri finite" --- ceva de genul $(\mathbb{Z}/pq\mathbb{Z})^\times$ pentru $p, q$ de $\aproximativ 1024$ bits este atât de ridicol de mare încât, deși nu este tehnic infinit, este „în esență”, așa că --- de exemplu, există aproximativ $2^{270}$ atomi din univers, care este mult mai mic ca $2^{2048}$, deci într-un anumit sens este „mai mare decât universul nostru” (în timp ce este încă finit desigur). În timp ce ceva de genul $\mathbb{R}$ este infinit, dacă cineva induce erori de rotunjire (după cum menționați), probabil că lucrați cu aproximări în virgulă mobilă, care în general folosesc cel mult $128$ biți, deci se lucrează de fapt (implicit) cu a mai mica set finit decât cel folosit de criptografi.

Puncte:8
drapel ng
SSA

Voi încerca să dau un răspuns generic la asta.

Un câmp finit notat cu ${F_p}$, unde p este un număr prim, funcționează bine cu algoritmi criptografici precum AES, RSA etc. din următoarele motive:

  • Trebuie să decriptăm mesajul criptat, acest lucru este posibil numai atunci când este disponibil un invers unic (bijectiv) al unei funcții. Acest lucru este posibil numai atunci când nu există un divizor zero în funcție și, de asemenea, este injectiv și surjectiv.

  • De asemenea, oferă funcționare închisă, ceea ce înseamnă că, orice operațiune pe care o faceți în teren, rezultatul va rămâne în câmp, acest lucru face să varieze ușor de implementat algoritmi criptografici.

  • Câmpul finit generat de prim (număr prim sau polinom ireductibil) are aceste caracteristici necesare.

  • Nu este folosit doar în Criptografie, ci și în codificarea canalelor, cum ar fi codarea BCH sau Reed-Solomon. este omniprezent în majoritatea codurilor de corectare a erorilor de comunicare, securitatea datelor/conținutului, de asemenea, extensiile lor, cum ar fi Grupuri și inele, sunt folosite în chimie și în alte domenii științifice.

poncho avatar
drapel my
Notă minoră: RSA nu se face într-un câmp finit...
drapel ar
@poncho: Este oarecum interesant de observat, totuși, că inelul RSA (de numere întregi modulo $n=pq$) este „aproape un câmp” în sensul că divizorii lui zero sunt rari și, de fapt, găsirea unui nul diferit de zero. unul este echivalent cu factorizarea modulului $n$ și astfel spargerea criptosistemului.
poncho avatar
drapel my
„aproape un câmp” $\ne$ „un câmp”
drapel id
@poncho: RSA este „terminat” într-un câmp finit, prin aceea că, în timp ce întregul inel de numere întregi mod pq nu este un câmp, operațiunile RSA de succes vor folosi doar acele părți ale inelului în care se comportă ca un câmp (operațiuni care se poticnesc pe părți în care nu se comportă ca un câmp va eșua).
Puncte:5
drapel bd

Punctele ridicate de Mark și SSA sunt principalele lucruri. Avem o clasă bine studiată de structuri care vin împreună cu probleme adecvate considerate în prezent a fi insolubile din punct de vedere computațional (în ciuda faptului că sunt bine studiate). De fapt, toate mapările liniare afine $x\mapsto ax+b$ sunt bijecții (vezi ce a spus Mark despre entropia maximă) oricând $a$ este un element diferit de zero al câmpului. Dacă nu am avea un domeniu în special, acest lucru nu ar ține.

De asemenea, vreau să adaug câteva proprietăți ale câmpurilor finite ale caracteristicii două în special ($GF(2^n)$ sau $\Bbb{F}_{2^n}$):

  • Spațiul de taste (sau spațiul de mesaje sau altele) are apoi o dimensiune care este un număr întreg exact de biți. Desigur, aceasta nu este o preocupare presantă. Mai mult ca o comoditate.
  • Având în jur structura câmpului face posibilă analiza anumitor operațiuni eficiente din punct de vedere computațional din punct de vedere al securității. De exemplu, funcțiile monomiale au fost studiate pe larg din punctul de vedere al criptoanalizei diferențiale. Căutați funcții APN (=Almost Perfect Non-linear). Cu o structură mai aleatorie, astfel de analize ar fi mai impozante.

Cu toate acestea, există și dezavantaje în aceste domenii

  • structura suplimentară înseamnă că, de exemplu, DLP-ul poate fi mai manevrabil decât A) într-un grup „cutie neagră” de aceeași dimensiune sau chiar B) într-un câmp principal de aproape aceeași dimensiune
drapel bd
Acesta este mai degrabă un comentariu, dar prea lung pentru așa ceva. Ne cerem scuze pentru lățimea de bandă consumată.
Puncte:3
drapel sa

De ce un câmp: Ideea din spatele partajării secrete a lui Shamir este atât de a reconstrui secretul (funcționalitatea) cât și de a demonstra că orice secret partajat este posibil (securitate) folosind interpolarea polinomială.

În timp ce interpolarea polinomială se poate face pe mai multe structuri algebrice, va funcționa întotdeauna pe un câmp. (Peste un câmp, un polinom diferit de zero are cel mult tot atâtea zerouri cât gradul său. Peste alte structuri algebrice înrudite, acest lucru nu este de obicei adevărat.)

În timp ce împărtășirea secretă a lui Shamir se face de obicei pe câmpuri, a fost făcută peste multe alte structuri algebrice. Acest lucru necesită de obicei mare grijă și este complicat. Dacă nu trebuie cu adevărat, este mult mai ușor și de preferat să faci acest lucru pe câmpuri.

De ce finit: Nu este suficient pentru securitate ca orice secret partajat să fie posibil, fiecare secret partajat trebuie, de asemenea, să fie (aproape) la fel de probabil. Folosirea câmpurilor finite ne permite să alegem aleatoritatea dintr-o distribuție uniformă, care se dovedește a ne oferi exact ceea ce ne dorim.

Am putea lucra pe un câmp infinit, cum ar fi numerele raționale, dar în acest caz ar fi foarte dificil să facem ca fiecare secret comun să fie aproape la fel de probabil. Acest lucru este legat de a nu avea o distribuție uniformă pe mulțimi infinite. În linii mari, o modalitate de a privi este că mărimea valorii este legată de mărimea coeficienților și de locul în care evaluăm, așa că dacă vrem să ascundem unul dintre coeficienți, trebuie să-l „înecăm” având ceilalți coeficienți să fie mult mai mari.

A face acest lucru peste numere întregi (nu un câmp!) se poate face, dar ajungerea la securitate necesită destul de multă muncă. Ca efect secundar (cel puțin pentru schema pe care m-am uitat), acțiunile ajung să fie mult mai mari. Nu doriți aceste costuri decât dacă aveți un motiv întemeiat. (Ceea ce faci, uneori.)

Am putea încerca să lucrăm peste o aproximare a unui câmp infinit, cum ar fi numerele reale sau complexe, dar în acest caz lucrurile devin mult mai complicate, deoarece trebuie să ne ocupăm și de aritmetica inexactă. Nu am văzut pe nimeni încercând să facă asta, decât din greșeală.

Alte domenii ale criptografiei: Câmpurile finite sunt folosite peste tot în criptografie. În mod obișnuit, acest lucru este legat de elemente diferite de zero în câmpuri care au inverse multiplicative, ceea ce ne dorim foarte des. Operația are, de asemenea, multe alte proprietăți frumoase, demonstrabile.

Partea finită este de obicei necesară pentru caracterul practic și uneori din cauza proprietăților particulare ale câmpurilor finite.

  • AES: Un exemplu este în AES sbox, unde multe proprietăți dezirabile decurg din proprietățile algebrice. Nu veți obține aceleași proprietăți algebrice de la numerele întregi modulo 256 (un inel), de exemplu.

  • Subgrup multiplicativ: Un alt exemplu este subgrupul multiplicativ al câmpului finit (elementele nenule ale unui câmp finit formează un grup ciclic), care pentru un câmp finit atent ales se dovedește a fi un grup potrivit pentru criptografia bazată pe d.log. (Logaritmii discreti sunt definiți într-un mod similar cu logaritmii obișnuiți, dar se dovedește că în unele grupuri par a fi foarte greu de calculat fără un computer cuantic.)

    În acest caz, am putea folosi și anumite inele, dar se dovedește că în practică câmpurile finite prime sunt mai bune pentru acest tip de aplicație. De exemplu, securitatea nu depinde de o ordine de grup secretă, ceea ce ne permite să facem unele lucruri pe care nu le puteți face dacă ordinea de grup este necunoscută. (RSA funcționează peste astfel de inele, dar are alte proprietăți și cerințe.)

  • Curbele eliptice: Un alt exemplu sunt curbele eliptice, care sunt utilizate pe scară largă în criptografie (chiar și cripto-post-cuantică). În timp ce ceva asemănător curbelor eliptice poate fi definit peste alte structuri algebrice, cum ar fi inelele, teoria bogată a curbelor eliptice necesită lucrul peste câmpuri.

    Studiul curbelor eliptice este o parte importantă a teoriei numerelor, dar, în scopuri criptografice, curbele definite pe câmpuri infinite sunt nepractice sau nepotrivite pentru scopuri funcționale și nu au proprietățile de securitate necesare. (De exemplu, un log discret aproximativ poate fi calculat analizând dimensiunea coordonatelor, care ar fi afectat securitatea, dacă nu ar fi fost mai întâi ruptă în mod cuprinzător caracterul practic.) Chiar dacă curbele eliptice definite pe câmpuri infinite nu sunt utilizate funcțional în criptografie, studiul lor este esențial pentru analiza criptografiei cu curbe eliptice.

    Curbele eliptice peste anumite inele finite au fost luate în considerare în contexte criptografice, dar cu excepția cazurilor obscure nu oferă nimic de interes. (Factorizarea curbei eliptice este în mod evident cu excepția!)

  • Alte exemple: Criptografia bazată pe zăbrele și criptografia bazată pe cod, care utilizează structuri algebrice definite pe câmpuri finite. Criptografia multivariată, care se bazează pe sisteme de ecuații polinomiale pe câmpuri finite.

    Din nou, multe din acest lucru se pot face pe anumite inele finite, dar există multe dezavantaje și nu prea multe de câștigat.

Puncte:1
drapel ph

În special pentru Shamir's Secret Sharing, articolul Wikipedia vorbește despre de ce sunt folosite câmpuri finite, în loc de alt inel.Într-un câmp finit, nicio informație despre secret nu este scursă prin cunoașterea unui număr de acțiuni sub prag. Motivul pentru aceasta este că fiecare funcție dintr-un câmp finit are o reprezentare polinomială unică (de gradul cel mult q-1)

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.