Puncte:0

Asigurați-vă că textul cifrat satisface un polinom secret fix

drapel uz

Există un algoritm de criptare care să se asigure că, având în vedere o intrare, va genera un text cifrat într-un mod care va satisface întotdeauna un polinom fix?

Pot fi flexibil în partea de intrare, dar partea de ieșire ar trebui să fie fixată la un set finit sau infinit de vectori care satisfac polinomul gradului $d$.

Polinomul este secret. Cei care criptează nu știu că este polinomul exact. Textul simplu este prea mic, la fel de mare ca un singur întreg de 128 de biți.

kelalaka avatar
drapel in
$X^q-X$ peste $\mathbb F_q$. https://en.wikipedia.org/wiki/Finite_field#Polynomial_factorization
drapel uz
@kelalaka problema este că nu am nevoie de un câmp/un inel de polinoame multiple. Probabil am nevoie de un câmp de coordonate care să satisfacă un polinom fix.
Puncte:0
drapel dz

În general, dorim ca rezultatul de criptare să arate aleatoriu, așa că mă îndoiesc că există orice funcție de criptare așa cum doriți.

Dar cred că îți poți atinge obiectivul printr-un proces în două etape.

  1. Criptați datele folosind AES, folosind un mod adecvat, cum ar fi CBC sau GCM. Această etapă este responsabilă de securitate.
  2. Convertiți fiecare bloc de text cifrat AES în forma de care aveți nevoie. Aici puteți utiliza orice algoritm care convertește un număr întreg de 128 de biți într-un format vectorial care se potrivește obiectivului dvs. Probabil ar fi convenabil dacă acesta poate gestiona blocuri de 128 de biți, dar dacă acesta este prea mare, puteți împărți blocul în (să zicem) patru blocuri de 32 de biți și puteți gestiona fiecare dintre blocurile mai mici separat. Destinatarul ar converti apoi fiecare vector înapoi în blocuri de 32 de biți și va concatena patru blocuri succesive de 32 de biți pentru a recrea blocul original de text cifrat AES de 128 de biți și va alimenta acel bloc în algoritmul de decriptare AES corespunzător. Această etapă convertește doar datele în formatul dorit și nu are scopul de a adăuga nicio securitate.

Ca exemplu de algoritm de etapa 2, să presupunem că dorim ca rezultatul nostru să fie valoarea y în polinom y = x2 + 3. Deci luăm blocul nostru de text cifrat AES de 128 de biți c ca număr întreg, calculează o = c2 + 3, apoi utilizați o ca rezultat final. (Bănuiesc că acest exemplu nu este tocmai ceea ce țintiți, dar sper să vă îndrepte într-o direcție adecvată).

Notă: asigurați-vă că algoritmul de conversie este inversabil (deci orice intrare o poate fi convertit în mod unic înapoi la original c) sau decriptarea nu va funcționa corect.

drapel uz
Nu am nevoie de decriptare. Dar trebuie să mă asigur că textul cifrat este generat folosind textul simplu așteptat. Dacă este o coordonată în polinom garantează, aceasta este variabilitatea.
drapel uz
De asemenea, criptatorul nu trebuie să știe ce este polinomul. Datele de text simplu sunt mici, la fel de mari ca un singur întreg de 128 de biți. Cred că acest lucru nu este menționat în întrebare, așa că ar trebui să actualizez.

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.