Data Encryption Standard

Introduzione

Struttura

Untitled

Funzionamento

1) Setup

  1. Il plaintext di 64 bit viene diviso in due blocchi da 32
  2. il blocco di destra continua subito nell’algoritmo mentre il blocco di sinistra verrà utilizzato dopo
  3. Inoltre come mostra lo schema di prima, il blocco di destra viene pure copiato nel blocco di sinitra successivo (L2)

Untitled

2) Funzione di feistel

  1. Algoritmo riceve in input dei bit

  2. Algoritmo esegue una permutazione di espansione da 32 a 48 bit del plaintext. (Queste permutazioni sono state definite da IBM e quindi standardizzate)

  3. Il plaintext espanso viene Xorato con la chiave Kn

  4. Si dividono i bit in 8 blocchi da 6 bit che finiscono dentro 8 scatole nere chiamate S-Box che restituiscono 32 bit

  5. Ora bisogna riflettere in parallelo sulla chiave:

    1. La chiave è 64 bit ma di essa sono utili solo 56 bit poichè gli altri sono bit di parità, quindi la chiave permette $2^{56}$ combinazioni possibili.
    2. la chiave viene divisa in 2 e anch’essa subisce modifiche per poi diventare lunga 48 bit (per essere xorata con il testo)
  6. La chiave viene xorata con il testo e produce quindi 48 bit in uscita

  7. il testo viene fatto passare in 8 SBOX. Una SBOX funziona nel seguente modo:

    Untitled

  8. per ogni SBOX devo fare uscire 4 bit quando in input ne ho 6

  9. Ogni riga della SBOX ha celle piene di numeri tra 0 e 15 attentamente definiti da IBM ed NSA

  10. entra una sequenza di bit tipo 110011 di cui primo e ultimo sono utilizzati per indirizzare il valore nella tabella