Puncte:1

Este posibil să găsiți o cheie AES având în vedere o parte a cheii, textul cifrat, vectorul de inițializare și modul de criptare?

drapel es

Sunt date următoarele detalii:

  • Cheie parțială: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
  • Vector de inițializare: E898EF8E91F8C9B201E6E29DF87EE152
  • Bloc de text cifrat 1: 14B8D1412766A8520BACE4598F8AFAEE
  • Bloc de text cifrat 2: 7E687A49015FA6F1B914635325A6361B
  • Bloc de text cifrat 3: 8AD191394EF79CEC4B5A256313632CD4
  • Bloc de text cifrat 4: 8BB4D49F3FA7A917CDF02ECCAA8C4765
  • Modul CBC Fără umplutură
  • Set de caractere: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890â´â~@#$%^&*(){}[]+=-_<>,.?/!:\;â|"
  • Informații setul de caractere: interval [32.127), codificat ASCII, fiecare caracter este de 8 biți

Gândirea mea este că, într-un fel, va trebui să decriptați fiecare bloc de text cifrat cu fiecare dintre cei 32 de biți cunoscuți ai cheii și să lucrați în jos. Problema este că primul bloc de text cifrat are o cheie nepotrivită (XXX...)
Prin urmare, veți obține un text simplu cu toate caracterele cunoscute, cu excepția primilor 32 de biți.

kelalaka avatar
drapel in
@mti2935 da, întrebarea este ușoară (am ratat unele părți): Sugestie: Generați cheile, decriptați și verificați dacă textul simplu nu include niciun octet care nu este în seturile de caractere.
kelalaka avatar
drapel in
Nu, trebuie să utilizați modul CBC pentru a decripta și nu există umplutură înseamnă că textul simplu are dimensiunea completă a blocului. Decriptați toate blocurile și testați-le. De ce crezi că textul simplu pe 32 de biți? Decriptarea unui bloc lasă un rezultat de 128 de biți. Știți cum funcționează un cifru bloc și ce este modul CBC?
kelalaka avatar
drapel in
1) Puteți decripta doar un bloc complet (128 de biți pentru AES) 2) în timp ce căutați 2) cheia este dată în șir de biți înseamnă că trebuie să găsiți biții lipsă ai unei chei de 128 de biți. 3) Dacă doriți, puteți decripta doar primul bloc de text cifrat și puteți testa dacă trece testul, apoi decriptați totul și testați din nou. Mai bine decriptați tot textul cifrat simultan și testați. Dacă știți ceva codificare, puteți scrie acest cod într-un coupe de ore.
hft avatar
drapel ng
hft
@user274857 ar trebui să fie etichetat ca teme-și-exerciții dacă este teme. Trebuie să ne arăți ce ai încercat deja. În cele din urmă, în viitor, întrebările de genul acesta pot fi mai bine puse la schimbul de stive de criptare, mai degrabă decât la schimbul de stive infosec.
Puncte:3
drapel in

Poate cineva să caute spațiu de taste pe 32 de biți?

OpenSSL cu AES-NI poate opera 61510120 iterații pentru blocuri de 64 de octeți AES-128 în modul CBC la 3 secunde pe computerul meu.

alerga viteză openssl -evp AES128 pentru a vedea în aparatul dvs.

Asta face $2^{26}$ keyspace timp de trei secunde. Unul are nevoie $2^{6} =64*3$ secunde pentru a găsi candidații cheie cu o codificare bună.


Pentru cauza ta, creează 3 funcții;

  • $P = \operatorname{AES-Dec-CBC}(k, IV, C)$ Unde $C$ este blocurile de text cifrat și $P$ este textul simplu decriptat sub cheia curentă $k$ de $C$.
  • $k =\operatorname{GetNextCandidateKey(current)}$ Acest simplu crește curentul și creează o cheie $k = curent\mathbin\|1100\cdots011$ în formă binară. Trebuie să convertiți acest lucru în binar pentru a se potrivi cu bibliotecile standard de criptare
  • $b = \operatorname{VerificațiMesajul}(P)$. Această funcție primește un text simplu și verifică dacă octeții sunt în interval. Dacă nu se întoarce 0 altfel se întoarce 1

Acum cu aceste 3 funcții;


curent = -1

în timp ce curentul < 2^32 face:
    k = GetNextCandidateKey(current)
    P = AES-Dec-CBC(k, IV, C)
    b = VerificațiMesajul(P)

    dacă b == 1
        print(actual)
    curent++
Puncte:1
drapel ng
hft

Este posibil să găsiți o cheie AES având în vedere o parte a cheii, textul cifrat, vectorul de inițializare și modul de criptare?

Uneori este posibil. Uneori nu este posibil. Depinde cât de mult din cheie știi deja.

În cazul tău, se pare că știi toți, cu excepția celor 33 de biți ai cheii. Așadar, ar trebui să puteți forța brutală pentru a afla restul cheii.

hft avatar
drapel ng
hft
Uită-te la rezultatul decriptării. De exemplu, dacă vreun octet nu se află în intervalul specificat de dvs. (sau profesorul dumneavoastră) [32,127), puteți arunca acea cheie și începe să încercați alta.\

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.