If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

XOR i klucz jednorazowy

Dlaczego należy używać operatora XOR?

Czy ma to większe znaczenie, którego operatora bitowego (AND, OR, XOR) użyjemy do szyfrowania kluczem jednorazowym? Odpowiedź brzmi TAK i jest to niezwykle ważne aby zrozumieć dlaczego. Przywołując poprzedni wpis, weźmy pod uwagę tablicę prawdy dla operatora AND. Na podstawie tej tabeli możemy wywnioskować, że 0 pojawi się w wyniku z prawdopodobieństwem równym 75%, natomiast 1 z 25%. Podobną zależność możemy zaobserwować w przypadku operatora OR, 0 pojawi się w wyniku z prawdopodobieństwem równym 25%, natomiast 1 z 75%. Natomiast operator XOR ma 50% prawdopodobieństwo, że zwróci 0 lub 1.
Porównajmy zatem operatory AND, OR oraz XOR i sprawdźmy jaki wpływ powyższa zależność będzie miała na szyfrowanie obrazu. Do celów testowych użyjemy cyfrowy obraz Charles Babbage:
Powyższy obraz składa się z tysięcy malutkich kolorowych kwadratów, zwanych pikselami. Każdy piksel w przedstawionym obrazie, jest reprezentowany przez 24 bitowy ciąg (24 występujące po sobie zera lub jedynki), jak było to pokazane w poprzednim wpisie. Nazwijmy to naszym niezaszyfrowanym obrazem (niezaszyfrowaną wiadomością)
Najpierw zobaczmy co stanie się jeśli użyjemy operatora AND na każdym bicie niezaszyfrowanego obrazu przy użyciu ciągu losowych bitów

AND

Zauważmy, że większość szyfrowanego obrazu wyłania się spod szumu/szyfru. Taka sytuacja występuje zawsze gdy jest użyty w ciągu zamieniający bit równy 1 lub kiedy bit piksela w obrazie źródłowym, równy jest 0:
Teraz zobaczmy co stanie się jeśli użyjemy operatora OR na każdym bicie niezaszyfrowanego obrazu przy użyciu ciągu losowych bitów

OR

Zauważmy, że większość oryginalnej wiadomości (obrazu) przebija się przez szum/szyfr. Taka sytuacja wystąpi za każdym razem, kiedy bit w ciągu zmieniającym jest równy 0 lub kiedy bit piksela w oryginalnym obrazie równa jest 1:
W końcu, zobaczmy co stanie się jeśli użyjemy operatora OR na każdym bicie niezaszyfrowanego obrazu przy użyciu ciągu losowych bitów
(werble, proszę...)

XOR

Gdzie podział się Charles?
Zauważ, że oryginaly obraz widać tylko w 50% co generalnie skutkuje szumem ponieważ każdy z pikseli może zostać zamieniony w 0 albo 1 z jednakowym prawdopodobieństwem.
Ten obraz nie zawiera żadnych informacji na temat  oryginalnego obrazu. Jeżeli niepodalibyśmy ciągu szyfrującego, przywrócenie obrazu do jego pierwotnej formy byłoby niemożliwe. Mógłbyś spróbować użyć każdej możliwej sekwencji ale w ten sposób uzyskałbyś wszystkie możliwe obrazy! Jaką będziemy mieli pewność, że oryginalnym obrazem źródłowym był Babbage? Tak samo prawdopodobne jest to, że oryginalnym obrazem było Twoje zdjęcie lub cokolwiek innego co mogło przyjść Ci do głowy
Czy to nie jest interesujące? Uśmiecham się za każdym razem, gdy to widzę!
W kolejnym rozdziale zajmiemy się operatorami XOR, OR i AND i przy tej okazji odkryjemy jeszcze więcej interesujących własności ....

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.