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

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?

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...

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.

2

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1