2. Kryptografia

2.6. Wykorzystanie niewłaściwych metod kryptograficznych

Nawet wykorzystanie poprawnego algorytmu szyfrującego, jakim jest AES w niewłaściwy sposób może ujawniać informację. Przywołując cytat Ray-a Marsha „Everybody knows ECB mode is bad because we can see the penguin”[18] możemy pokazać, że wykorzystanie trybu ECB szyfrowania w niewłaściwym kontekście ujawnia zawartość.
Trzy obrazy, kolejno od lewej - obraz logo Linuxa - pingwin, dwa pozostałe logo poddane szyfrowaniu w trybie ECB

Dopiero wykorzystanie poprawnego w tym kontekście trybu CBC w sposób poprawny ukrywa informację:

Trzy obrazy, od lewej logo Linuxa - pingwin, dwa pozostałe - logo po szyfrowaniu w trybie CBC

Polecenia wykorzystane do uzyskania powyższych wyników wykorzystują narzędzie openssl:

Tryb ECB:

KEY=$(openssl rand -hex 16)
openssl enc -aes-128-ecb -K $KEY -e -nopad -in img.raw -out img.enc

Tryb CBC:

KEY=$(openssl rand -hex 16)
IV=$(openssl rand -hex 16)
openssl enc -aes-128-cbc -K $KEY -e -iv $IV -nopad -in img.raw -out img.enc

Obraz wejściowy musi być w niekompresowanym formacie PGM.