Ogłoszenie


Zapraszam serdecznie na strone DARMOWYCH FILMÓW I SERIALI. Każdy znajdzie coś dla siebie. Mam w bazie artykuły dot. webmasteringu, hackeringu i wiele wiele innych. Dodatkowo forum :) Nie czekaj zarejestruj się już dziś : www.Ogladamy.xorg.pl

#1 2008-10-31 19:32:25

RedEagle

Admin

status RedEagle
891470
Zarejestrowany: 2008-09-04
Posty: 1047
Komputer: Windows XP
Gra: GTA VC
Książka: Jim C.Hines-,,Zadanie Goblina"
Muzyka: Green Day

Szyfrowanie danych algorytmem XOR

Szyfrowanie danych algorytmem XOR

Metoda szyfrowania danych przy użyciu XOR'ów, mimo niezbyt dużego
stopnia skomplikowania jest bardzo skuteczna. Należy jednak najpierw
zrozumieć, jak działa dwuargumentowa funkcja logiczna XOR (zwana też
inaczej alternatywą wyłączającą). Zwraca ona wartość 1 (true) tylko
wtedy, gdy jeden argument będzie miał wartość 1 (true), a drugi 0
(false):

0 xor 0 -> funkcja zwróci: 0
1 xor 0 -> funkcja zwróci: 1
0 xor 1 -> funkcja zwróci: 1
1 xor 1 -> funkcja zwróci: 0

Aby skorzystać z szyfrowania XOR, należy najpierw zamienić
wprowadzone dane na zapis binarny.
Załóżmy, że nasze dane składają się ze znaków ASCII. Każdy znak
ASCII posiada swój unikatowy (dziesiętny) kod liczbowy, który możemy
zapisać w postaci dwójkowej.
Dla przypomnienia, zamiana liczby dziesiętnej na binarną odbywa się
przez dzielenie tej liczby przez 2 i zapisywanie reszty z dzielenia.
Przykładowa zamiana na system dziesiętny litery m (kod 109):

109/2 = 54 (r: 1)
54/2 = 27 (r: 0)
27/2 = 13 (r: 1)
13/2 = 6 (r: 1)
6/2 = 3 (r: 0)
3/2 = 1 (r: 1)
1/2 = 0 (r: 1)

Litera 'm' dwójkowo to więc: 1101101. Ponieważ każdą literę zapisuje
się standardowo przy pomocy 8 bitów, wrzucamy jeszcze jedno zero na
początek i mamy: 01101101. W ten sposób zamieniamy binarnie cały tekst.
Aby przystąpić do szyfrowania niezbędne jest klucz (hasło). Również
on musi zostać zamieniony na postać binarną.

SZYFROWANIE
Teraz dochodzimy do właściwego szyfrowania. Polega ono na
xorowaniu kolejnych bitów tekstu, który chcemy zaszyfrować, z
kolejny bitami klucza.

Przykładowo:

Tekst: 0 1 1 0 1 1 0 1
Hasło: 1 1 0 0 1 0 1 0
--------------------
Wynik: 1 0 1 0 0 1 1 1

W wyniku szyfrowania danych 01101101 otrzymaliśmy: 10100111.

DESZYFRACJA
Warto zwrócić uwagę na pewną szczególną cechę xorowania:
funkcja xor wykonana 2 razy na tych samych danych nie zmienia ich
(tzn. (A xor B) xor B -> funkcja zwróci: A). Przykład:
A = 0
B = 1
A xor B = 1
1 xor B = 0 = A

Aby odszyfrować więc dane wystarczy xorować bity zaszyfrowanych
danych z hasłem. Wracając jeszcze raz do naszego przykładu:
Tekst: 1 0 1 0 0 1 1 1
Hasło: 1 1 0 0 1 0 1 0
--------------------
Wynik: 0 1 1 0 1 1 0 1

Oczywiście hasła nie muszą (a nawet nie powinny!) zawierać jedynie 8
bitów. Np. hasło zawierające 8 znaków będzie składało się z 64
bitów, co daje nam już względne bezpieczeństwo. Jeśli dodatkowo w
algorytmie będziemy tworzyć określone permutacje (kombinacje) bitów
z klucza (nawet tak banalne, jak czytanie ich od tyłu), to szyfr
będzie praktycznie nie do złamania.

Uwaga dla programujących w C/C++: aby xorować 2 zmienne, należy użyć symbolu: ^. Xorowanie zmiennych a i b będzie więc wyglądać tak: a^b

Artykuł Pochodzi ze strony Cyber-Crime


http://i37.tinypic.com/sbm42f.png
http://i38.tinypic.com/29x82na.png

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora