Wektor inicjujący w AES - co z nim potem zrobić.

Wektor inicjujący w AES - co z nim potem zrobić.
A9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 411
0

Cześć, piszę aplikację, która używa algorytmu AES z użyciem trybu CBC. Mimo szukania, nie bardzo rozumiem co zrobić z wektorem inicjującym po zaszyfrowaniu danych. Rozumiem, że atakujący nie powinien znać tego wektora? Jeśli nie może go znać, to co zrobić, aby ten wektor był bezpieczny?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

IV nie musi być tajne, często w ogóle dokleja się je jako 1 blok szyfrogramu. To klucz ma być tajny! Ja bym jednak zadał sobie pytanie czy CBC to w roku 2019 dobry pomysł, ale to inna sprawa... State of the art to raczej AE/AEAD i jakiś AES-GCM.

IV samo w sobie jest dla atakujacego bezużyteczne, równie dobrze mógłby po prostu potraktować 1 blok jako IV i atakować resztę szyfrogramu, będzie mu na koniec brakować tylko tego pierwszego bloku.

Pamiętaj też, jakie możliwości twoja aplikacja udostępnia atakującemu. Jeśli może deszyfrować dowolny szyfrogram, a ty np. raportujesz mu "błąd deszyfrowania", to można w ten sposób odszyfrować dowolne dane za pomocą padding oracle...

A9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 411
0

@Shalom: Myślałem nad użyciem innego trybu, ale na chwilę obecną chcę użyć biblioteki, która nie wspiera trybu GCM: https://github.com/bricke/Qt-AES
W każdym razie dzięki za odpowiedź na pytanie oraz na uświadomienie mnie w kwestii padding oracle. Mam zamiar jeszcze raz zweryfikować bardzo dokładnie mój pomysł, aby to szyfrowanie było bezpieczne.

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
2

@arkadiusz97: jak chcesz być bezpieczny, to zapomnij o tym, że jakiekolwiek szyfry istnieją - https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2009/july/if-youre-typing-the-letters-a-e-s-into-your-code-youre-doing-it-wrong/

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

@arkadiusz97: spoko, jakby co to możesz potem przedstawić pomysł / demo a ja i @msm pokażemy ci jak to połamać... :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.