Passa al contenuto principale

6.1.2 PBES1 Decryption Operation (Operazione di Decifratura PBES1)

6.1.2 PBES1 Decryption Operation (Operazione di Decifratura PBES1)

L'operazione di decifratura per PBES1 consiste dei seguenti passaggi, che decifrano un testo cifrato C sotto una password P per recuperare un messaggio M:

  1. Ottenere il salt S di otto ottetti e il conteggio delle iterazioni c.

  2. Applicare la funzione di derivazione delle chiavi PBKDF1 (Sezione 5.1) alla password P, al salt S e al conteggio delle iterazioni c per produrre una chiave derivata DK di lunghezza 16 ottetti:

    DK = PBKDF1 (P, S, c, 16)
  3. Separare la chiave derivata DK in una chiave di cifratura K costituita dai primi otto ottetti di DK e un vettore di inizializzazione IV costituito dagli otto ottetti successivi:

    K = DK<0..7>
    IV = DK<8..15>
  4. Decifrare il testo cifrato C con il cifrario a blocchi sottostante (DES o RC2) in modalità CBC sotto la chiave di cifratura K con vettore di inizializzazione IV per recuperare un messaggio codificato EM. Se la lunghezza in ottetti del testo cifrato C non è un multiplo di otto, fornire in output "decryption error" e fermarsi.

  5. Separare il messaggio codificato EM in un messaggio M e una stringa di riempimento PS:

    EM = M || PS

    dove la stringa di riempimento PS consiste di un certo numero psLen di ottetti ciascuno con valore psLen, dove psLen è compreso tra 1 e 8. Se non è possibile separare il messaggio codificato EM in questo modo, fornire in output "decryption error" e fermarsi.

  6. Fornire in output il messaggio recuperato M.