haker - ehaker.com


Login

Hasło

--Wstęp--
--Artykuły--
--Archiwa--
--Bios--
--Edytory--
--Systemowe--
--Poczta--
--Gwiazdki--
--Serwery--
--Inne--
--Członkostwo--
--Linki--
--Wyszukiwarka--
--Wyszukiwarka--
--Wyszukiwarka--
www.ehaker.com
mail@ehaker.com
brak


Algorytm DES.

 
Algorytm DES został opracowany przez firmę IBM w latach 70-tych na bazie algorytmu Lucifer Horsta Feistela. W roku 1977 Narodowe Biuro Standardów USA zaakceptowało ten algorytm jako standard szyfrowania danych nie utajnionych przez agencje rządowe. Obecnie DES jest jednym z najbardziej rozpowszechnionych algorytmów szyfrujących. W algorytmie szyfrowane są 64-bitowe bloki danych 56-bitowym kluczem.
Algorytm przedstawiono na Rys.1. Blok wejściowy M jest najpierw przekształcany w permutacji początkowej IP dając M0 = IP(M).  Następnie M0 jest podawane na wejście pierwszej spośród 16 iteracji specjalnej funkcji F. Rezultat 16 iteracji funkcji F jest poddawany permutacji IP-1 (jest to permutacja odwrotna do IP). Permutacje IP i IP-1 są przedstawione na rys.2. (Tablice permutacji należy czytać począwszy od pierwszej kolumny i pierwszego rzędu, od lewej do prawej, od góry do dołu; na przykład w IP pierwszy bit wejścia jest przesuwany na pozycję 58 na wyjściu, drugi bit  na pozycję 51, itd.) Pomiędzy permutacjami IP i IP-1 w algorytmie wykonywane jest 16 iteracji funkcji F łączącej podstawienia i permutacje. Niech Xi oznacza rezultat i-tej iteracji, a Li i Ri odpowiednio jego lewą i prawą połowę, czyli Xi  = LiRi, gdzie:
Li = t1, ..., t32
Ri = t33, ..., t64.


Rys.1.Alogorymt DES
..: Powiększ :..


Zachodzi:
Li = Ri-1
Ri = Li-1 ? F(Ri-1,Ki),
gdzie Ki jest 48-bitowym kluczem iteracyjnym opisanym dalej. Zauważmy, że po ostatniej iteracji lewa i prawa połowa są zamieniane, a otrzymany blok R16L16 jest wejściem dla permutacji IP-1. Jest to konieczne, aby algorytm mógł być użyty zarówno do szyfrowania, jak i deszyfrowania.


Rys.2.Permutacje IP i IP-1.
..: Powiększ :..


Rys.3.Funkcja F DES.
..: Powiększ :..

Na Rys.3 przedstawiono funkcję F.
Najpierw Ri-1 jest rozszerzane do 48-bitowego bloku E(Ri-1) przy użyciu tablicy wyboru bitów E, przedstawionej na Rys.4. Tablica ta jest używana w ten sam sposób, co tablice permutacji, z wyjątkiem tego, że kilka bitów Ri-1 jest wybranych więcej niż raz; tak więc dla Ri-1 = r1, r2, ..., r32, E(Ri-1) = r32, r1, r2, ..., r32, r1.


Rys.4.Rozszerzenie E.
..: Powiększ :..

Każdy 6-bitowy blok Bj, i=1,2,...,8, jest następnie używany jako wejście do skrzynki podstawieniowej Sj, która na wyjściu daje 4-bitowy blok Sj(Bj). Bloki te są łączone razem i otrzymany 32-bitowy blok wynikowy jest przetwarzany w permutacji P opisanej na Rys.5.


Rys.5.Permutacja P.
..: Powiększ :..
S1
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
1
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
2
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
3
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13

S2
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
1
3
13
4
7
15
2
8
14
12
0
1
10
6
9
11
5
2
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
3
13
10
1
3
15
4
2
11
6
7
12
0
5
14
9

S3
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
1
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
2
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
3
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12

S4
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
1
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
2
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14

S5
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
1
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
6
2
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
3
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3

S6
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
11
1
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
2
9
14
15
5
2
8
12
3
7
0
4
10
1
13
11
6
3
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13

S7
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
4
11
2
14
15
0
8
13
3
12
9
7
5
10
6
1
1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
2
1
4
11
13
12
3
7
14
10
15
6
8
0
5
9
2
3
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12

S8
Rząd
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
13
2
8
4
6
15
11
1
10
9
3
14
5
0
12
7
1
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
2
7
11
4
1
9
12
14
2
0
6
10
13
15
3
5
8
3
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11

Każda skrzynka podstawieniowa Sj przekształca 6-bitowy blok
Bj = b1, b2, b3, b4, b5, b6 w blok 4-bitowy zgodnie z tablicami podstawień przedstawionymi na Rys.6. Wykonywane jest to następująco: liczba całkowita utworzona z dwóch skrajnych bitów słowa Bi czyli b1, b6 wybiera rząd w tabeli, podczas gdy liczba utworzona ze środkowych bitów Bi b2, b3, b4, b5 wybiera kolumnę. Wartość Sj(Bj) jest wtedy 4-bitową reprezentacją liczby całkowitej w tym rzędzie i kolumnie.
Jeżeli na przykład B1 = 011100, to S1 zwraca wartość z rzędu 0, kolumny 14; jest to 0, które będzie przedstawione jako 0000.

W i-tej iteracji algorytmu DES używany jest 48-bitowy klucz Ki, wyprowadzony z 56-bitowego klucza głównego w algorytmie generowania kluczy iteracyjnych. Na Rys.15 przedstawiono sposób, w jaki jest to realizowane. Wejściem jest 64-bitowy klucz główny K (bity 8,16,24,32,40,48,56,64 to bity parzystości; są one odrzucane, a wykorzystywanych jest pozostałych 56 bitów). Permutacja PC1 odrzuca bity parzystości i przenosi pozostałe bity tak, jak Rys.15. jest to pokazane na Rys.16.


Rys.15
..: Powiększ :..

Rezultat PC1(K) jest następnie dzielony na połówki używane do generowania kluczy Ki. Oznaczmy przez Ci i Di odpowiednio lewą i prawą połówkę używaną do generowania klucza i-tej iteracji Ki. Zachodzi:
Ci = LSi(Ci-1),
Di = LSi(Di-1), i=1,2,...,16
gdzie RLi jest rotacją w lewo (cyklicznym przesunięciem w lewo) o liczbę pozycji zgodnie z tabelą na Rys.17, a C0 i D0 wartościami na wyjściu permutacji PC1. Klucz Ki jest dany przez
Ki = PC2(Ci, Di)
gdzie PC-2 jest permutacją przedstawioną na Rys.18.


Rys.16.Permutacja klucza PC1.
..: Powiększ :..


Rys.17.Rozkład klucza lewych zmian LS.
..: Powiększ :..


Rys.18.Permutacja klucza PC-2.
..: Powiększ :..

Deszyfrowanie jest realizowane przy pomocy tego samego algorytmu, z tą różnicą, że klucze iteracyjne są używane w odwrotnej kolejności, tzn. K16 zostaje użyty w pierwszej iteracji, K15 w drugiej, itd.. Istotne, że zmieniana jest tylko kolejność kluczy, podczas gdy algorytm pozostaje ten sam.

Źródło:
http://www.bezpieczenstwoit.pl/Artykuly/ Kryptografia/Redakcja,Algorytm_DES/index.html

W razie problemów z działaniem serwisu:
admin@ehaker.com

Artykuł
  Jak zapewnić bezpieczne przesyłanie danych w sieci Internet ?
 
Artykuł
  Szyfrowanie plików w Windows 2k/XP (Encrypting File System)
 
Artykuł
  Kryptografia
Masz jakiś materiał dotyczący łamania haseł ?

program lub opis

Wyślij go na adres
e-mail: mail@ehaker.com
Co byś chciał zobaczyć w serwisie ?
   Phreak
   Podsłuch
   Dekodery
   Mail
   Inne
Wpisz szukane pojęcie ?
google.com

© 2003-2008 ehaker.com

test1| test2