PDA

Visualizza la versione completa : [Algoritmo] Dubbio su DES


elilo
25-07-2008, 20:27
salve sto implementando l'algoritmo DES, ma vorrei avere dei chiarimenti...

- la scelta permutata 2 che si effettua sulle sub chiavi come funziona?? perchè sembra che dei valori precedentemente eliminati vengano recuperati(esattamente i bit di controllo di disparità, eliminati prima della scelta permutata 1)

io sto seguendo la spiegazione a questo indirizzo (http://www.amagri.it/crittologia/crittografia/algoritmi_crittografici/des/analisi_algoritmo.htm)

e il mio problema è relativo a questo passaggio

http://www.amagri.it/Immagini/Crittologia/1a900fc0.gif
grazie per gli eventuali aiuti

Habanero
25-07-2008, 21:20
Direi proprio che gli indici della seconda tabella si riferiscono alle posizioni della prima... non agli indici iniziali della chiave. Se noti, gli indici della scelta permutata 2 vanno esattamente da 1 a 56...

elilo
25-07-2008, 21:40
ah quindi tu dici che praticamente devo mettere una sotto l'altra le due tabelle 7x4 e rinumerare la tabella risultante con valori da 1 a 56 e poi applico la permutazione..

a questo punto mi sorgono altri 2 problemi:

1. con che logica vengono disposti i numeri della scelta permutata 2 ??

2. gli altri passaggi erano da interpretare in ugual modo ??

i passaggi che ho fatto sono questi:

http://www.dalgrande.com/Immagine.JPG

Habanero
25-07-2008, 21:54
Originariamente inviato da elilo
ah quindi tu dici che praticamente devo mettere una sotto l'altra le due tabelle 7x4 e rinumerare la tabella risultante con valori da 1 a 56 e poi applico la permutazione..


Esattamente.
In quel punto la logica degli indici cambia perchè l'entità dello spostamento a sinistra (vedi il passaggio precedente) è variabile a seconda del ciclo...


Originariamente inviato da elilo
a questo punto mi sorgono altri 2 problemi:

1. con che logica vengono disposti i numeri della scelta permutata 2 ??


In che senso?


Originariamente inviato da elilo
2. gli altri passaggi erano da interpretare in ugual modo ??

i passaggi che ho fatto sono questi:

http://www.dalgrande.com/Immagine.JPG


nei passaggi precedenti tutti gli indici si riferiscono alla chiave iniziale.

elilo
26-07-2008, 00:28
ok, sapendo che solo nell'ultimo passaggio "cambia il concetto di indice" sono sollevato.

per logica intendo che ho notato che nella prima permutazione lo spostamento dei campi seguiva uno schema e cioè

- per le prime 4 righe della matrice permutata venivano inserite le prime 4 colonne e mezza partendo dall'ultima riga

- per le ultime 4 righe della matrice permutata venivano inserite le ultime 4 colonne e mezza partendo dall'ultima riga

In questo caso non riesco a capire con che logica i campi vengono "spostati"

il codice per la prima permutazione:



'scelta permutata 1 => chiave da 56 bit
c = 0
r = 7
primo = True
For rA = 0 To 7
For cA = 0 To 6
If rA <= 3 Then
mKeyP1(rA)(cA) = mKeyI(r)(c)
r -= 1
If r < 0 Then
r = 7
c += 1
End If
Else
If primo Then
c = 6
r = 7
primo = False
End If
mKeyP1(rA)(cA) = mKeyI(r)(c)
r -= 1
If r < 0 Then
c -= 1
If c = 3 Then
r = 3
Else
r = 7
End If
End If
End If
Next
Next

Habanero
26-07-2008, 04:37
una "logica" nel senso che intendi tu non c'è... misteri della crittografia. :)

elilo
26-07-2008, 13:49
ah....che cosa strana...

quindi devo mettere in relazione i due blocchi con numeri progressivi



Blocco 1 < = > Sequenza di riferimento

49 41 33 25 17 09 01 01 02 03 04 05 06 07
58 50 42 34 26 18 10 08 09 10 11 12 13 14
02 59 51 43 35 27 19 15 16 17 18 19 20 21
11 03 60 52 44 36 57 22 23 24 25 26 27 28



Blocco 2 < = > Sequenza di riferimento

55 47 39 31 23 15 07 29 30 31 32 33 34 35
62 54 46 38 30 22 14 36 37 38 39 40 41 42
06 61 53 45 37 29 21 43 44 45 46 47 48 49
13 05 28 20 12 04 63 50 51 52 53 54 55 56


e poi seguendo la sequenza dell'immagine

http://www.amagri.it/Immagini/Crittologia/1a900fc0.gif
ottengo questa tabella



10 51 34 60 49 17
33 57 02 09 19 42
03 35 26 25 44 58
59 01 36 27 18 41
22 28 39 54 37 04
47 30 05 53 23 29
61 21 38 63 15 20
45 14 13 62 55 31


è giusto??

Habanero
27-07-2008, 17:25
direi di sì.

elilo
27-07-2008, 17:37
bene

ora però ho un'altra domanda

il DES si basa sul testo in chiaro e su una chiave pubblica?? Quindi per decodificare un testo criptato ho bisogno della stessa chive che ho usato per criptarlo, e quindi deve essere generata ad esempio da una parola di 8 lettere, ogni lettera codificata in binario e poi lavorata.

Habanero
27-07-2008, 17:55
Esattamente qual è la domanda? :zizi:

Loading