2010-05-02 15 views
5

W artykule na Wikipedii pod numerem Block Cipher Modes znajduje się schludny mały diagram niezaszyfrowanego obrazu , ten sam obraz zaszyfrowany przy użyciu trybu ECB i innej wersji tego samego obrazu zaszyfrowanego przy użyciu innej metody.Jak wyświetlić lub wyświetlić zaszyfrowane dane w postaci zaszyfrowanej?

UnencryptedECB ModeCBC Mode

Na uniwersytecie opracowali własną implementację algorytmu DES (you can find it here) i musimy demo naszą realizację w prezentacji.

Chciałbym wyświetlić podobny przykład jak pokazano powyżej, korzystając z naszej implementacji. Jednak większość plików graficznych zawiera bloki nagłówków, które podczas szyfrowania pliku za pomocą naszej implementacji również zostają zaszyfrowane. Kiedy więc otworzysz je w przeglądarce obrazów, zakłada się, że są uszkodzone i nie można ich wyświetlić.

Zastanawiam się, czy ktoś nowy z prostego formatu obrazu bez nagłówka, który możemy użyć, aby wyświetlić te? A może ktoś wpadł na pomysł, jak oryginalny twórca powyższych zdjęć osiągnął powyższy rezultat?

Każda pomoc będzie mile widziane,

Dzięki

Uwaga: Zdaję sobie sprawę toczenia własne biblioteki kryptografii jest głupie i DES jest uważany łamane, a tryb ECB jest bardzo wadliwy jakiegokolwiek użytecznego kryptografii, to było czysto akademickie ćwiczenie dla szkoły. Więc proszę, nie wygłaszaj wykładów, znam ćwiczenia.

Odpowiedz

3

Jeśli używasz języka wysokiego poziomu, takiego jak Java, Python, itp., Jedną rzeczą, którą możesz zrobić, to załadować obraz i odczytać dane pikseli do tablicy w pamięci. Następnie wykonaj szyfrowanie na tych surowych bajtach, a następnie zapisz obraz, gdy skończysz. Niech wszystkie dane nagłówka będą obsługiwane przez biblioteki dowolnego języka, którego używasz. Innymi słowy, nie traktuj pliku jako nieprzetworzonej sekwencji bajtów. Nadzieja, która pomaga.

+0

+1 Chciałbym zasugerować to samo. –

+0

Tak, rozważałem to. Opracowaliśmy go w C++ i naprawdę nie powinniśmy używać żadnych zewnętrznych bibliotek. Również nasz program ma na celu ogólny szyfrowanie dowolnego pliku. Dzięki za odpowiedź. –

+0

@Brian, ładowanie i zapisywanie 32-bitowych (bez palety) plików bitmap jest naprawdę trywialne. Nie potrzebujesz biblioteki innej firmy. –

3

Po prostu odetnij nagłówki przed zaszyfrowaniem (zapisz je gdzieś). Następnie zaszyfruj tylko resztę. Następnie dodaj nagłówki przed wynikiem.

Jest to szczególnie łatwe w przypadku formatu Netpbm, ponieważ wystarczy wiedzieć, ile linii należy uciąć. Dane są przechowywane jako liczby dziesiętne, więc powinieneś wziąć to pod uwagę podczas szyfrowania (najpierw konwertuj je na pliki binarne).

+0

To będzie działać tylko w niektórych formatach obrazu, które przechowują "zwykłe" wartości pikseli (być może BMP, TGA lub PPM - nie GIF, PNG, JPEG) - i nawet wtedy należy wziąć pod uwagę liczbę bajtów na piksel/wiersz oraz w jaki sposób ma to związek z rozmiarem bloku kodującego. W przeciwnym razie wyniki byłyby bez znaczenia – leonbloy

+0

@leonboy: To prawda, aktualizowałem swoją odpowiedź podczas pisania komentarza. –

Powiązane problemy