Come cercare le tabelle di permutazione nel DES?

0

Per scoprire la permutazione finale o la permutazione iniziale in DES Encryption, dobbiamo cercare le tabelle di permutazione.

Prendendo un esempio: trova l'output della casella di permutazione iniziale quando l'input è dato in esadecimale come: 0x0000 0080 0000 0002. Dopo aver letto la soluzione , non riesco a capire:

  1. Come sono i bit 25 e bit 64 1s?

  2. Come diventa il bit di permutazione finale 25, il bit 64 e il bit 63 diventano bit 15?

Spiega i risultati.

    
posta Sahil Babbar 21.09.2015 - 20:27
fonte

1 risposta

3

DES è specificato in FIPS 46-3 , che è piuttosto vecchio standard che utilizza una numerazione un po 'rara di bit all'interno di byte. Ovvero, iniziano da 1 e contano i bit da sinistra a destra.

Quindi, nella seguente sequenza di byte:

00 00 00 80 00 00 00 02

Il primo byte è bit da 1 a 8, il secondo byte è bit da 9 a 16, il terzo byte è bit da 17 a 24, il quarto byte (quello con valore 80 ) è bit da 25 a 32 e così via. Se si considera che 80 è scritto in% co_de binario e che questi bit sono quindi numerati da 25 a 32 da sinistra a destra, quindi il bit 25 ha valore 1. Analogamente, l'ultimo byte ( 10000000 ) contiene bit da 57 a 64; il bit 63 ha valore 1.

La "soluzione" nel documento a cui fai il link contiene la frase:

Given the hex input, when we expand it to binary, we find that only bit 64 and bit 25 are 1s and the other bits are 0s.

che è sbagliato e probabilmente un errore tipografico. Dovrebbe essere visualizzato "solo bit 63 e bit 25 sono 1".

La "permutazione iniziale" è specificata a pagina 10 di FIPS 46-3; elenca i bit dell'emissione della permutazione e dice da dove provengono (questa è una tabella "viene da", non una tabella "va a"). Il bit di ingresso 25 va al bit di uscita 37 (il valore "25" è il 37 ° nella tabella), mentre il bit di ingresso 63 va al bit di uscita 57. Questo dovrebbe produrre:

00 00 00 00 08 00 00 80

che non è affatto ciò che il documento elenca come "soluzione". In effetti, la soluzione parla della "permutazione finale" (mentre la domanda riguardava la "permutazione iniziale"). Se supponiamo che la domanda abbia anche un errore tipografico (l'autore ha scritto "iniziale" ma ha pensato "finale"), allora possiamo provare la permutazione finale, la cui tabella si trova anche a pagina 10 di FIPS 46- 3. In quella tabella, il bit 25 dell'ingresso va al bit 64 dell'output (il numero "25" appare come 64 °, ovvero l'ultimo elemento della tabella di IP -1 ), mentre il bit 63 di l'input va al bit 15 dell'output (il numero "63" appare come 15esimo elemento nella tabella). In tal caso, ciò produrrebbe questo risultato:

00 02 00 00 00 00 00 01

che è ciò che la "soluzione" fornisce come risposta corretta.

Riepilogo: il documento contiene errori due :

  • Nella domanda, si dice "permutazione iniziale" ma dovrebbe essere "permutazione finale".
  • Nella soluzione, indica "bit 64 e 25", ma dovrebbe essere "bit 63 e 25".

Con queste due correzioni, la domanda e la soluzione ora si combinano tra loro.

Non ho esaminato le altre domande / soluzioni, ma due errori di questo tipo nella prima domanda non chiariscono la qualità del documento.

    
risposta data 21.09.2015 - 21:37
fonte

Leggi altre domande sui tag