Puncte:1

Ce este o cheie privată bună și antiglonț pentru curbele ECC?

drapel it

Sunt destul de nou în criptografia detaliilor matematice de nivel scăzut, deși am lucrat în zona criptografiei timp de 2,5 ani înainte. Deci, dacă greșesc cu privire la oricare dintre părțile de mai jos, vă rog să mă corectați fără un gest de palmă ;)

Există deja câteva discuții despre acest lucru, împreună cu întrebări despre ce este o cheie privată validă, dar niciunul dintre aceste răspunsuri nu este convingător. Cel puțin nu sunt de acord cu argumentele lor că orice cheie privată validă este o cheie bună.

de exemplu.

EdDSA (Ed25519) este un număr aleatoriu suficient pentru o cheie privată bună? Da .... răspuns 28 oct. '17 la 9:03 Frank Denis

Sunt valide toate cheile private EC posibile? @Fozi: 1 nu este nici mai bun, nici mai rău decât 0x3b6ddba1f4b325cee4505084bc507d2019e86539f8d4be027004b69f9aa0bc74, atâta timp cât au probabilitate egală de a apărea, și anume probabilitatea de a apărea unul sau mai bun, și anume 1/2/2/5¼ probabilitatea de a avea un adversar mai mare de 1/2/5¼ primul. Rețineți că probabilitatea de a obține unul dintre ele individual este neglijabilă, la fel ca orice alt scalar secret posibil. â Osifrage zguduitoare 11 septembrie '17 la 18:28

Iată argumentul meu:

AFAIK, o cheie publică se calculează prin înmulțire n timpii punctului generator G, unde n este un număr aleator generat ca cheie privată.

Noțiunea este pub = n * G

Apoi, pentru orice curbă cunoscută, pot calcula un milion de chei publice ca un tabel asemănător curcubeului, unde n variază de la 1 la 1.000.000. Asta ar lua doar 32 MiB de spațiu în cazul unei curbe de 256 de biți.Dacă cineva folosește orice valoare din acel interval pentru a genera o cheie publică, o pot obține cu ușurință comparând-o cu tabelul. În practică, vectorii de testare pentru o curbă dată pornesc în mod normal de la n = 1, 2, 3, ... de exemplu. https://crypto.stackexchange.com/a/21206/95843

La o scară mai sălbatică, cineva poate stoca chiar și un 1TiB sau 1PiB (oh bani!) acest tip de masă. Deci, în acest sens, orice cheie privată mai mică de 2^20 sau chiar 2^50 nu este bună!

Acum, din deducerea de mai sus, limita inferioară a cheii private este stabilită. Dar există o limită superioară? Sau oricare valabil numărul de deasupra limitei inferioare este bun și suficient de rezistent la glonț?

drapel jp
0x3b6ddba1f4b325cee4505084bc507d2019e86539f8d4be027004b69f9aa0bc74 este o cheie privată destul de bună și rezistentă la glonț. Ar trebui să-l folosești pe acela. (aceasta este o glumă)
jjj avatar
drapel cn
jjj
De ce ar crea cineva un astfel de tabel? Nu s-ar sparge niciodată vreo cheie generată aleatoriu, deoarece este atât de puțin probabil ca acestea să se afle în acest interval. Acestea fiind spuse, acestea sunt la fel de bune ca orice altă cheie aleatorie
jjj avatar
drapel cn
jjj
Când excludeți primul milion, atunci al 2-lea milion va deveni primul nou. Prin inducție, asta ar însemna că nicio cheie nu este bună
Match Man avatar
drapel it
Mulțumesc mult tuturor răspunsurilor și comentariilor la acest subiect. Închid conversația deoarece am primit deja ceea ce caut.
Puncte:7
drapel us

Ce este atât de special la primul 1 milion chei? Nu există și o masă curcubeu mică care conține chei în intervalul 1M până la 2M și o masă curcubeu mică care conține chei în intervalul 2M până la 3M și o masă curcubeu mică care conține chei în intervalul 842347283958M până la 84234728395M etc etc?

Aceeași logică care vă face să vă preocupați de cheile mici (mai puțin de 1 M) vă poate face, de asemenea, să vă îngrijorați de cheile din orice gamă! Indiferent ce cheie am, există într-adevăr o mică masă curcubeu acolo undeva care ar putea permite cuiva să-mi spargă cu ușurință cheia. Dar un atacator ar trebui să știe care dintre ele $2^{236}$ dintre posibilele mese curcubeu (game de chei) de încercat!

Cred că este o greșeală să te gândești la o special gama de taste (de la 0 la 1M, de exemplu) ca fiind problematice într-un mod special. Dacă cea mai mică gamă de chei este deosebit de proastă, atunci procesul de generare a cheilor ar trebui să le evite. Dar apoi Următorul cea mai mică gamă de taste devine proastă după aceeași logică, așa că ar trebui să le evitați și pe acestea. Acest lanț de logică se încheie fără chei sigure din care să alegeți.

drapel cn
Problema ar putea fi că, dacă este un om care alege manual `n`, au o tendință puternică de a merge cu valori foarte scăzute. Cunosc unii oameni care pot recunoaște hash-ul md5 al unui șir gol pentru că l-au văzut atât de des. Nu ar fi surprins dacă unii oameni care lucrează foarte mult cu criptografii pot recunoaște unele chei care sunt folosite în exemple tot timpul.
Match Man avatar
drapel it
Pentru că este ușor de înțeles. Și ieftin. De asemenea, datorită unui „expert” în domeniul de securitate susține că 0 sau 1 este la fel de sigur ca 0x3b6ddba1f4b325cee4505084bc507d2019e86539f8d4be027004b69f9aa0bc74, așa că cineva le va folosi ca un număr de „cheie publică” pentru a-și genera un număr „cheie publică”. Și o persoană capabilă poate scana toată cheia publică pentru a vedea dacă cineva „din fericire” folosește un număr aleator prea mic pentru a o genera. Aceleași reguli se aplică și pentru motivul pentru care `123456` sau ziua ta de naștere nu este o parolă bună. Pentru că toate sunt atât de ușor de încercat.
drapel us
Securitatea nu este o proprietate intrinsecă a unei chei *particulare*. Vine din *procesul* de alegere a cheii. Dacă aveți procesul corect, atunci toate aceste preocupări dispar.
Match Man avatar
drapel it
>Acest lanț de logică se încheie fără chei sigure din care să alegeți.
Match Man avatar
drapel it
În al doilea rând, lanțul nu se repetă la infinit, din cauza limitării stocării. Se trimite https://theconversation.com/the-worlds-data-explained-how-much-were-producing-and-where-its-all-stored-159964#:~:text=In%202018%2C%20the% 20total%20amount,One%20zettabyte%20is%208%2C000%2C000%2C000%2C000%2C000%2C000%2C000%20bits., până în 2020 există 59 de stocare ZB în lume. Atunci este *aproape* imposibil să stocați masa de 590 ZB, chiar și alimentată de tehnologia de comprimare. În acest sens, un număr aleatoriu mai mare de 590 ZB este tratat ca sigur antiglonț. Care este peste 2^82.
Match Man avatar
drapel it
Care este peste 2^82.... Dar este încă relativ mic, în comparație cu întregul spațiu cheie, cum ar fi 2^256 sau 2^512.
drapel us
Prin urmare, orice cheie de peste $2^{82}$ este „bulletproof safe”. Atunci propuneți să aveți un proces de generare a cheilor care exclude complet cheile
Match Man avatar
drapel it
Nu, ideea este că oricine poate alege o gamă pe care o consideră suficient de sigură. Și o petrecere capabilă, sau să zicem că un prădător urmărește doar cea mai ușoară țintă.
Puncte:2
drapel ng

Întrebarea este corectă că orice cheie privată mai mică de 250 poate fi găsit din cheia publică, iar metoda pe care o descrie ar fi practicabilă. in orice caz

  • Există metode mult mai bune, care pot găsi o cheie mai puțin decât k2 cu efort proporţional cu k (de exemplu. Pollard'd rho), și puțină memorie, cu probabilitate considerabilă. Astfel 250 operațiunile sunt suficiente pentru a găsi o cheie mai mică de 2100 cu o probabilitate considerabilă.
  • 250 este un număr mic pentru un număr de operațiuni de spargere cripto. În anii 1970, NSA a fost de acord că DES are 256 chei, pentru că știau că pot sparge asta dacă este necesar. Până în 2000, valoarea de bază pentru securitate era 280. Linia de bază modernă ar putea fi 296, iar practica pentru sisteme noi este de ordinul 2128 sau mai mult. Asta înainte de a da seama de atacurile de mai sus.

există o limită superioară?

Da. Pentru fiecare metodă de semnătură și curbă bazată pe curba eliptică, există un set prescris pentru cheile private. Pentru ECDSA, este intervalul [1, n-1] unde n este ordinea generatorului (nu a n în întrebare). Valoarea a n depinde de curba. Pentru curbă secp256k1, n este putin sub 2256. Astfel, efortul așteptat de a găsi cheia privată de către cheia publică folosind rho lui Pollard (sau orice altă metodă cunoscută) este de ordinul a 2128 operațiuni (adăugiri pe curba eliptică) sau mai multe.

Dacă limita superioară a fost depășită, cheia privată ar fi respinsă de software-ul compatibil. Dacă nu a fost respins și software-ul ar funcționa corect din punct de vedere matematic și pentru sistemele de semnătură în care cheia privată este direct ceea ce multiplică generatorul pentru a forma cheia publică (ca în întrebare și ECDSA), cheia ar funcționa ca dacă a fost redus modulo n (ordinea generatorului), atât pentru generarea cheii publice, cât și pentru semnare.

Regulile pentru generarea cheii private depind de sistemul de semnătură; de exemplu. Ed25519 specifică un spațiu pentru cheia privată care este mult mai mare decât n, pentru a îmbunătăți rezistența la unele atacuri (dar nu pentru a găsi o cheie privată care generează semnătură validă).


Îndepărtarea cheilor posibile într-un mod cunoscut adversarului scade securitate, deoarece adversarul are mai puține chei de testat. este admisibil pentru a elimina câteva chei posibile. Nu este de dorit în niciun fel.

Modul obișnuit/recomandat/cel mai bun de a selecta o cheie privată este uniform la întâmplare în setul de valori valide ale cheilor private. Este tolerabil să excludem unele valori (cum ar fi valorile mici ca în întrebare), dar asta doar atâta timp cât doar o mică parte din valori este respinsă. De exemplu. pentru ECDSA pe secp256k1 ar fi OK să respingi cheile private mai mici de 2192, deoarece asta elimină doar o proporție minusculă de aproximativ 2-64 (0,000000000000000005%) din spațiul de taste. Dar și asta nu are rost, pentru că este atât de improbabil să fie generată una dintre cheile excluse. Și creșterea limitei inferioare, astfel încât această proporție să devină neneglijabilă, va reduce în mod non-neglijabil alegerea noastră de chei, permițând unui algoritm special conceput de căutare a cheilor să o găsească mai ușor decât pentru o alegere uniform aleatorie.

O cheie privată ECDSA pe secp256k1 poate fi generată prin rularea unui zaruri hexagonale De 64 de ori (dacă primele 23 de aruncări au toate aceeași valoare, puneți la îndoială zarul și opriți-vă). Folosiți cu fidelitate cele 64 de rezultate, în ordinea big-endian. Rezultatul este o cheie privată validă (testul pe care l-am făcut asigură că rezultatul este în intervalul corespunzător).

Match Man avatar
drapel it
Vă mulțumesc foarte mult pentru că ați împărtășit cunoștințele despre acest subiect. Da 2^128 este un număr corect, dacă luăm în considerare o parte mai „capabilă” decât un individ civil.Dar vorbind despre limita superioară a unei chei „bune”, întrebarea mea este că dacă orice cheie suficient de mare validă este și o cheie bună, ceea ce înseamnă că nu există o limită superioară între cea mai mare cheie bună posibilă și cea mai mare cheie validă. de exemplu. întreaga zonă a spațiului de cheie este ca: [cheie privată cea mai puțin validă,2^128] ⪠[2^128+1, (gamă bună de chei) , cea mai mare cheie bună] ⪠[gap, cea mai mare cheie validă] â ª [cheie nevalidă...]
fgrieu avatar
drapel ng
@MatchMan: eliminarea cheilor posibile într-un mod cunoscut de adversar _scade_ securitatea, deoarece adversarul are mai puține chei de testat. Este _tolerabil_ să eliminați câteva chei posibile. Nu este de dorit în niciun fel.
Match Man avatar
drapel it
Mulțumesc, este foarte clar pentru mine acum.
drapel id
@fgrieu: Dacă unul generează multe chei, și de ex. 1% dintre ei ar putea fi testați cu forță brută cu 10% mai ieftin (cost *per candidat*) decât restul, apoi atacatorul ar putea căuta 1% din spațiul cheie cu doar 0,9% atât de mult efort cât ar fi necesar pentru a căuta. totul. Dacă cineva ar genera suficiente chei încât cel puțin unele s-ar încadra probabil în acel 1%, acest lucru ar reduce efortul atacatorului de a găsi cel puțin o cheie cu aproximativ 10%. Prin contrast, excluderea acelui 1% din chei ar reduce doar efortul necesar atacatorului cu 1%.
fgrieu avatar
drapel ng
@supercat: Căutarea cheilor în ECC (sau DSA sau RSA) nu se face prin scanarea spațiului de taste. Ed25519 are chei $>2^{252}$, iar scanarea chiar și 0,00â¦01% (unde ⦠înlocuiește 40 de zerouri) este imposibil de atins cu tot efortul irosit în mineritul bitcoin. Există atacuri mai puțin fezabile, care atacă direct cheile publice. Spre deosebire de cripto simetric uneori și RSA într-o măsură mult mai mică, atacarea simultană a multor chei ECC nu pare să ușureze ruperea uneia. Și nu reușesc să constat că există clase considerabile de chei (1%) care ar putea fi atacate mult mai repede (-10%) decât altele.
drapel id
@fgrieu: Răspunsul meu a fost legat de conceptul general conform căruia nu se poate defini numărul de taste „problematice” suficient de larg încât să se lovească accidental pe una, fără ca acesta să fie atât de larg încât excluderea acestora ar reduce spațiul cheilor de forță brută. Acest lucru ar fi vacuum adevărat pentru criptosistemele în care probabilitatea de a lovi o cheie „proastă” ar fi practic imposibil de distins de zero, dar nu cred că ar fi valabil pentru criptosistemele în care nu a fost vacuum adevărat.

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.