Puncte:1

Flux de cheie în loc de program cheie

drapel tf
Tom

Să luăm în considerare un cifru bloc în modul CTR. Și să considerăm un PRNG cu cheie sau doar un PRNG bun cu o sămânță ca cheie. PRNG-ul trebuie să fie foarte rapid.

Este o idee bună să puneți deoparte programarea cheilor și să faceți o programare „infinită” a cheilor prin generarea unui flux de chei? Apoi fiecare bloc din cifru va fi criptat cu o cheie diferită.

Desigur, chiar și un PRNG rapid are nevoie de ceva timp pentru a genera câteva 128 - chei de biți pentru un cifr. Dar nu crește acest lucru foarte mult securitatea unui astfel de algoritm? Dacă algoritmul în sine este o primitivă foarte rapidă (să zicem, la fel de rapid ca Chacha20), ar trebui să aibă o securitate excelentă și o viteză bună dacă este asociat cu un „flux de program cheie” ca acesta.

Cu toate acestea, bănuiesc că viteza unei astfel de soluții poate fi un obstacol semnificativ. Bine, deci să facem o schimbare de fiecare dată când algoritmul este repetat (criptare unică) - răsturnând doar un bit de cheie pe rundă. Dacă algoritmul necesită o cheie pe rundă și are zece runde, avem nevoie doar de zece biți. PRNG va genera astfel de biți foarte repede. Apoi cheile sunt schimbate după fiecare criptare, nu mult (schimbăm doar un bit în fiecare cheie), dar ar trebui să fie un obstacol imens pentru atacator.

Poate că am putea folosi ceva simplu, cum ar fi două runde de AES, dar nu adăugam alte două runde la cifr. Deci, să folosim acest lucru pentru a genera un flux de chei care să se amestece cu cheile într-o nouă criptare.

Întrebarea mea este despre dezavantajele unei astfel de soluții. Din câte știu eu, nu este folosit - de ce? Cu alte cuvinte, de ce folosim constante și aceleași chei în runde (când criptăm un număr mare de mesaje) când cheile pot fi modificate la un cost redus după fiecare criptare; de exemplu, prin adăugarea unui bit mod 2 (după o altă criptare, adăugăm un alt bit pe o poziție mai înaltă și așa mai departe, schimbând toate cheile de 128 de biți după 128 de criptări).

SAI Peregrinus avatar
drapel si
Modul CTR este folosit pentru a transforma un cifr de bloc într-un cifr de flux. Cifrurile bloc sunt destul de inutile pentru criptare (deoarece pot cripta un bloc pe cheie în siguranță), așa că folosim diferite moduri de operare pentru a cripta efectiv lucrurile cu ele. Există, de asemenea, cifruri de flux native, PRNG-uri cu cheie eficientă, care nu au un cifru bloc intern. Propuneți introducerea internă a unui cifr de bloc cu un cifru de flux, apoi să îl utilizați în modul CTR pentru a-l transforma înapoi într-un cifr de flux. De ce nu folosiți pur și simplu codul de flux direct? Ce avantaje ar avea construcția ta?
Tom avatar
drapel tf
Tom
Avantajul este un nivel mai ridicat de securitate pentru cifrarea blocurilor.Mai mult, dacă am putea construi o îmbunătățire a cifrului bloc cu această tehnologie - care este mai rapidă și în același timp mai sigură decât algoritmul original - de ce să nu o folosim? Dacă AES cu runde scurte, dar tastarea cu un cifr de flux ar fi mai rapid, de ce să nu o faci? Poate că există algoritmi care pot fi îmbunătățiți și accelerați în acest fel. A avea un generator de chei subiacent, independent de cifr, ar putea fi o mare îmbunătățire în ceea ce privește securitatea, cred.
SAI Peregrinus avatar
drapel si
Întrebări principale: Ar îmbunătăți acest lucru securitatea față de un cifru de flux? ChaCha20 este (probabil) mai sigur decât AES-256, pentru aceeași dimensiune a cheii. Utilizarea ChaCha20 în locul programului de chei al AES ar elimina slăbiciunea programului de chei care face AES mai slab, dar ar face cifrul rezultat mai lent sau mai rapid și ar fi semnificativ mai sigur decât ChaCha20? De ce sau de ce nu (încercați să vă demonstrați aceste lucruri)?
Tom avatar
drapel tf
Tom
Pentru a decide dacă merită, trebuie să tăiem câteva runde de AES și să le înlocuim cu transmisie cheie. Nu, nu pot spune dacă va merita. Dar bănuiesc că putem obține un cifr mai rapid și mai sigur în acest fel. Am pus o întrebare pentru a afla dacă este evident o idee proastă într-un fel. Desigur, acum nu am idee dacă se poate face cu vreun cifr. Dar faptul că folosim chei „permanente” în criptografie atât de frecvent mi se pare de neînțeles din punctul de vedere pe care l-am prezentat.
SAI Peregrinus avatar
drapel si
Programul cheie al AES este FOARTE rapid. Nu este un blocaj pentru AES. Înlocuirea acestuia cu ChaCha20 ar încetini lucrurile și *nu adaugă securitate suplimentară în afară de ceea ce obțineți doar din cifrul fluxului*. Chiar dacă ai redus numărul rundelor. De asemenea, rareori (dacă vreodată) folosim chei permanente.Majoritatea cheilor (de exemplu, pentru conexiunile TLS) sunt efemere, ele sunt șterse imediat ce conexiunea este închisă. Cheile de criptare a discurilor durează mai mult, desigur, dar asta se datorează în mare parte faptului că discurile au o mulțime de date și re-criptarea acestora ar fi lentă, nu pentru că programarea cheilor este lentă (nu este).
Maarten Bodewes avatar
drapel in
Am avut alte întrebări referitoare la înlocuirea programului cheie cu altceva. Întrebarea actuală are următoarea problemă după părerea mea: 1. folosiți cumva un alt program de taste rapide - acum **trebuie să arătați** că acesta este sigur sau 2.utilizați un program de chei securizate cunoscut, caz în care **trebuie să afișați** beneficiile de securitate față de utilizarea directă a fluxului de chei securizate.

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.