Puncte:2

Este practic să construiești un cifr de criptare simetric care necesită schimbarea cheii „principale” pentru fiecare text simplu?

drapel us

Am citit despre un cifr de criptare care necesită schimbarea cheii „principale” pentru criptarea fiecărui text simplu. Uneori, această modificare depinde de textul simplu și se face automat.

Întrebare: Este practic să construiești un cifr de criptare simetric care necesită schimbarea cheii „principale” pentru fiecare text simplu?

[Editare] Unele cifruri preiau unele aspecte ale textului simplu și îl includ în cheie, acesta este un exemplu de automatizare. Nu este în regulă?

Notă: Îmi pare rău, cred că întrebarea trebuie încă rafinată.

Nat avatar
drapel de
Nat
Exemplul evident ar fi un bloc unic (OTP).
user2357 avatar
drapel us
@Nat Dar blocul unic nu este atât de practic
Nat avatar
drapel de
Nat
Depinde de ceea ce evaluezi caracterul practic -- nu chiar pentru streaming YouTube, ci pentru doi prieteni care doresc să rămână în contact, partajarea prealabilă a unui bloc pentru dialoguri text necesită destul de puțin spațiu și tinde să fie ușor de făcut.
user2357 avatar
drapel us
@Nat Mulțumesc.
Puncte:3
drapel ng

Este practic să construiți un cifr de criptare simetric care trebuie să schimbe cheia pentru fiecare proces?

Așa cum este, această afirmație este o contradicție a definiție a unui cifr și este cheia. Cheia este definită a fi o intrare a cifrului, prin urmare cifrul în sine nu o poate schimba. Mai important, modelele de atac (doar text cifrat, text clar cunoscut, text clar ales, text cifrat ales) presupune reutilizarea cheii, deci nicio modificare a cheii pentru mesaje diferite. Această ipoteză importantă se potrivește cu utilizarea reală pe teren și, probabil, datează de la Kerckhoffs.

Urmează că One Time Pad nu se potrivește cu definiția unui cifr. OTP este în cel mai bun caz o metodă de criptare. Dacă ceva în intrarea lui a cifru trebuie schimbat de la mesaj la mesaj (ceea ce este obișnuit), nu asta este cheia, este un Vector de inițializare. Dacă ceva care nu este o intrare a unui cifr se schimbă pe măsură ce mesajul este procesat, aceasta nu este cheia cifrului, aceasta este o starea interioara a cifrului (care poate fi cheia unui cifru intern).

Prin urmare, trebuie să facem una sau mai multe dintre următoarele pentru a face sens din întrebare:

  1. Înlocuiește cuvântul cheie de starea internă configurată inițial la cheia cifrului, că cifrul este acum liber să se schimbe. Este o potrivire corectă pentru ceea ce se cere, este practic, dar nu este destul de comun. De exemplu, este logic să schimbați cheia unui cifr de bloc după fiecare bloc, pentru a dejuta unele atacuri DPA.
  2. Înlocuiește cuvântul cheie de starea internă configurată inițial în funcție de cheia cifrului (și, eventual, altă intrare a cifrului, cum ar fi IV). Acum, asta este practic și mainstream (după cum s-a arătat în acest raspuns): starea internă poate fi o cheie de sesiune, folosită ca cheie a unui cifru auxiliar intern, derivată din cheia totală a cifrului și schimbată după un anumit număr de octeți de text simplu ai cifrului general. Cu toate acestea, aceasta este mai puțin o potrivire pentru ceea ce este cerut, pentru că ceea ce este schimbare este o cheie internă, care nu se potrivește niciodată cu cheia cifrului general.
  3. Schimbare cifru la metodă sau dispozitiv. Acest lucru ne face liberi să schimbăm cheia cifrului și să ignorăm problemele reale, testate în luptă, pe care utilizatorii le vor reutiliza cheia introdusă inițial metodei sau dispozitivului, indiferent de prescripția împotriva acesteia. Pentru a ilustra pericolul acestei reutilizari, vezi de ex. acesta este gadgetul în un alt răspuns. Chiar dacă folosește Quantum Key Distribution, încă are nevoie de un cheia secretă inițială (sursă) trimis prin mijloace tradiționale ca un curier de încredere. Dacă acel secret este reutilizat deoarece legătura QKD nu se sincronizează, revendicarea de securitate a dispozitivului se destramă.

Uneori, această modificare depinde de textul simplu și se face automat.

Acest lucru nu este nemaiauzit și este în regulă cel puțin în thory.Un cifru bloc în CBC sau CFB modul și alte cifruri își schimbă starea internă în funcție de text simplu și cheie. Cu toate acestea, amestecul de text simplu și cheie trebuie analizat cu atenție, deoarece poate fi atacat.

Paul Uszak avatar
drapel cn
Nu există chei de sesiune?
fgrieu avatar
drapel ng
@Paul Uszak: cheile de sesiune nu sunt „cheia” (a cifrului). Ele sunt o stare internă. Am să clarific asta.
user2357 avatar
drapel us
@fgrieu Unele cifruri preiau unele aspecte ale textului simplu și îl includ în cheie, acesta este un exemplu de automatizare. Nu este în regulă?
user2357 avatar
drapel us
@fgrieu nu deschide asta ușa pentru construirea de sisteme de criptare, având un prng și xor rezultatul cu textul simplu și schimbarea cheii în fiecare proces, așa cum fac majoritatea cifrurilor haotice? De fapt, îl folosesc în cheia principală, nu în cheia internă.
fgrieu avatar
drapel ng
@ThePrince: După definițiile pe care le folosesc, „cheia” cifrului nu poate fi schimbată de cifr. Cifrul poate schimba doar o stare internă setată inițial la „cheie”.
user2357 avatar
drapel us
@fgrieu Deci, cum rămâne cu schimbarea automată a cheii principale pentru fiecare text simplu nou?
fgrieu avatar
drapel ng
@ThePrince: „Schimbarea automată a cheii principale pentru fiecare text clar nou” nu poate fi _pentru un cifru_, după definiția modernă a cifrului și a cheii, deoarece într-un cifr aceeași cheie trebuie să fie reutilizabilă cu texte clare diferite. De aceea OTP nu este un cifr. Nu există nimic care să împiedice un _dispozitiv de criptare_ sau o _metodă de criptare_ să-și schimbe automat cheia pentru fiecare text simplu; totuși, dacă o astfel de metodă este utilizată într-un cifr, cheia acelei metode este o stare internă a cifrului, setată inițial la cheia cifrului. Și cifrul este rupt dacă nu poate fi folosit în siguranță pentru diferite texte clare cu aceeași cheie.
user2357 avatar
drapel us
@fgrieu Mulțumesc foarte mult. Plănuiesc să editez întrebarea. În primul rând, trebuie să trec în revistă ceva material și să vin cu un exemplu cel puțin. Mi-ar lua ceva timp să o fac o întrebare mai riguroasă. Este greu să pui o întrebare fermă despre sistemul liber, adică. e., Cifre bazate pe haos. Nu sunt un fan al lor, dar trebuie să le criptoanalizez. Una peste alta, lucrez la editarea întrebării. Mulțumesc pentru răbdarea dvs
Puncte:2
drapel de
Nat

tl;drâ Exemplul obișnuit al unei transformări cripto simetrice care utilizează o cheie diferită de fiecare dată ar fi pad-urile unice (OTP), unde cheia este un subset încă neutilizat al blocului unic, care este un secret partajat între părțile care comunică. . Schemele cu clichet își pot modifica cheile la fiecare pas, iar alte scheme le pot modifica și cheile.


Cifruri simetrice cu chei schimbătoare.

O cheie simetrică este un secret cunoscut de ambele părți. Dacă aceasta ar fi schimbată în fiecare criptare, cum ar cunoaște fiecare parte noul secret?

Posibilitati:

  1. Ei cunosc deja setul de chei care trebuie folosit. Acesta este modul în care funcționează schema de blocare unică (OTP).

    • Oamenii, de obicei, nu se gândesc la schemele unice-pad ca la un cifr de bloc, deoarece nu se limitează la operarea pe blocuri. Totuși, poate funcționa și pe blocuri.
  2. Ele modifică secretele anterioare pentru a genera altele noi. De exemplu, poate șterge cheia anterioară simetrică. Asta ar fi clichet.

    • Adesea ideea este de a obține secretul înainte, care este proprietatea unui nou compromis-cheie care nu compromite secretul mesajelor mai vechi.
  3. Ei împărtășesc informații printr-un canal diferit.

  4. Ei modifică cheia pe baza informațiilor obținute dintr-un mesaj anterior.

Sau o combinație a acestora.


Concepte înrudite.

Conceptele înrudite includ:

  1. Valori de inițializare (IV).
    Valorile de inițializare sunt valori care modifică fiecare mesaj pentru a ajuta la îmbunătățirea criptării. Cu toate acestea, astfel de valori nu sunt considerate secrete, deci nu sunt considerate în general parte a unei chei.

  2. Re-introducerea tastelor.
    Părțile pot face schimburi de chei asimetrice pentru a conveni asupra cheilor noi. Ei ar putea opta pentru a face acest lucru înainte de fiecare nou mesaj simetric, dacă le-ar păsa.


Notă: Acest lucru poate necesita o schemă de comandă.

În unele contexte, codul simetric de bază implică mesaje neordonate. Aceasta înseamnă că decriptatorul ar trebui să poată decripta textele cifrate chiar dacă nu știe în ce ordine au fost generate acele texte cifrate.

Cu toate acestea, schemele care schimbă cheile, în general, trebuie să abordeze problema ordinii, deoarece cheile se schimbă. Poate că pot presupune că un canal oferă comandă; poate ei pot eticheta mesajele; sau poate altceva.

Adesea, nu ar fi o problemă dificil de abordat, deși ar fi ceva de care trebuie să fii conștient.

user2357 avatar
drapel us
Dar pad-ul unic nu este atât de practic.
Nat avatar
drapel de
Nat
@ThePrince: OTP are cu siguranță utilizările sale; are garanții puternice de securitate și necesită foarte puține calcule pentru a cripta/decripta. Dacă aveți două puncte finale care au puțin spațiu de stocare, OTP poate fi un instrument util. Desigur, nu este potrivit pentru orice, dar de obicei selectăm cripto-metode de la caz la caz.
user2357 avatar
drapel us
Mulțumesc foarte mult.
Puncte:1
drapel cn

Da.

Am citit despre un cifr de criptare care trebuie să schimbe cheia pentru fiecare proces de criptare.

Nu sunt sigur ce a "proces" este, dar da, schimbarea/rotirea automată a tastelor este din ce în ce mai frecventă. La fel de:-

qkdn

Cheile sunt (cuantice) distribuite între site-urile A și B la o viteză de 10 kbit/s. Aceste chei sunt apoi transmise pe dispozitivele fizice de criptare. Aceste dispozitive folosesc criptarea convențională (poate AES sau Light Encryption Algorithm) pentru a transmite cea mai mare parte a datelor la o rată mult mai mare decât folosind canalul cuantic (40 Gbits/s).

Cheile de criptare pot fi apoi schimbate la fiecare câteva secunde. O cheie de 256 de biți poate fi partajată în 26 ms. Deci nu este chiar o schimbare pre-proces, ci mai degrabă periodică. Nu ar fi în afara limitelor posibilității de a schimba cheia de criptare per rafală de date/sesiune așa cum sugerați. Switch-urile oferă până la urmă managementul calității serviciului (QoS). Aceasta ar putea fi o extensie a acesteia. Și complet practic.

Deci nu cifrul real necesită schimbarea constantă a cheii, ci implementarea care îl folosește. Destul de aproape?


Aceste detalii se bazează pe Clavis300 trusa.

Puncte:1
drapel cr

Da, este o practică obișnuită. Într-adevăr, așa funcționează, de exemplu, TLS. Pentru TLS, acest proces este explicat pe această pagină în pasul „Calcul chei de criptare client”.

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.