La crittografia SHA-1 è?

3

Ho letto che SHA-1 è una funzione di hash crittografica. In un esame, SHA-1 è stato fornito come un possibile algoritmo di crittografia unidirezionale. SHA-1 richiede una chiave come input? È necessaria una chiave per qualificarsi come "crittografia"?

    
posta T. Webster 22.01.2013 - 07:11
fonte

6 risposte

7

Potrebbe facilmente essere cercato su google o wikipedia'd , ma qui va:

SHA-1 è una funzione di hash crittografica, ma non è una funzione di crittografia. Tutto ciò su cui funzioni la funzione SHA-1 è irreversibile.

SHA-1 potrebbe essere fatto usando una chiave, ma ciò renderebbe un codice di autenticazione dei messaggi (MAC, vedi HMAC ).

Sono d'accordo con la tua ultima frase. Affinché qualcosa sia crittografato, avrai bisogno di avere qualche chiave, o qualcosa che corrisponda a uno. Supponiamo che tu abbia una (piuttosto scadente) funzione di crittografia che capovolge i bit dell'input, la tua chiave è "capovolgi ogni bit". Un'altra funzione può essere una rete feistel utilizzando la funzione rotonda F e una chiave K = 281474976710656 come input per quella funzione.

    
risposta data 22.01.2013 - 08:33
fonte
9

Per definizione, una funzione di hash non è crittografia .

Encryption is the process of encoding messages (or information) in such a way that eavesdroppers cannot read it, but that authorized parties can.

e

Hash function is an algorithm that takes an arbitrary block of data and returns a fixed-size bit string, the cryptographic hash value, such that any change to the data will (with very high probability) change the hash value.

La crittografia fornisce riservatezza mentre le funzioni hash forniscono integrità .

Le funzioni di hash vengono utilizzate insieme alla crittografia per le loro funzionalità di integrità.

    
risposta data 22.01.2013 - 08:45
fonte
6

C'è un uso errato ma diffuso del termine "crittografia" per cose che non sono crittografia, ma, per esempio, hashing.

La definizione rigorosa di crittografia presuppone che alcuni dati vengano trasformati, in modo tale che:

  • dopo la trasformazione, i dati non sono più leggibili;
  • esiste un processo inverso, chiamato decryption , che può recuperare i dati originali dall'output crittografato, utilizzando la conoscenza di alcuni dati extra che non sono pubblicamente noti.

In qualche modo è necessario per la crittografia che il processo di crittografia utilizzi un parametro che è collegato ai dati segreti utilizzati per la decrittografia; quel parametro, chiamiamo un tasto . Quando la chiave per la crittografia è identica ai dati segreti utilizzati per la decrittografia, allora questa è crittografia simmetrica . Quando la chiave di crittografia è collegata matematicamente ai dati segreti ma è ancora distinta, in modo che la chiave di crittografia possa essere resa pubblica in modo sicuro, allora questa è crittografia asimmetrica .

Pertanto, non può esistere una "crittografia unidirezionale" e SHA-1 non è una crittografia. SHA-1 è hashing : nessuna chiave, uscita a dimensione fissa (160 bit per SHA-1), nessun processo inverso (in particolare, l'input può essere molto più grande dei 160 bit di uscita).

Sfortunatamente, le persone che hanno scritto la tua domanda d'esame hanno apparentemente usato la terminologia errata; la cosa migliore da fare è seguire la loro terminologia per tutta la durata dell'esame. Questa è la stessa confusione che porta alcune persone a parlare di "password crittografate" per le password che sono effettivamente sottoposte a hash.

    
risposta data 22.01.2013 - 16:29
fonte
2

SHA-1 non è un algoritmo di crittografia, è una funzione di hash. Ti dirò la differenza. Una funzione crittografica sta ricevendo testo e chiave come input. Usando la chiave. eseguire alcuni algoritmi sul testo semplice e quindi fornire l'output come testo crittografato. Considera che se si restituisce 'abcdef' come input e '123' come chiave, verrà restituito un testo crittografato di 'abc' utilizzando un algoritmo come DES, AES ecc. Ciò richiede una chiave. È come mettere il testo in una scatola e bloccare la scatola usando una chiave. Le dimensioni dell'output variano in base alla dimensione dell'input. Cioè se si assegnano 1000 caratteri per crittografare si otterrà un testo crittato di dimensioni simili. Le dimensioni possono variare per alcuni algoritmi.

La funzione hash non consiste nel crittografare i valori. La funzione di hash è come l'indice per i valori. Considera uno scenario semplice. Ho un numero N e l'hash di quel numero è definito N% 100. Per esempio, se io do N come 123 Hash di N è 123% 100 che è 23, se N è 1245621345 allora il suo hash sarà 1245621345% 100 che è 45. Si noti che sto dando un input piccolo o un grande input l'hash sarà fissato in lunghezza. Qui sono 2 cifre. In modo simile, SHA-1 otterrà il valore di input e calcolerà il suo hash. tutto il valore di hash SHA-1 avrà 160 bit. Ovvero se si attribuisce un carattere singolo o 100000 caratteri, la dimensione dell'output sarà solo di 160 bit. Quindi SHA-1 non ha bisogno di chiave. Viene utilizzato per scopi di autenticazione. Puoi utilizzare Google per le funzioni di hash.

    
risposta data 22.01.2013 - 08:34
fonte
2

SHA-1 è una funzione di hash. Le funzioni hash hanno lo scopo di eseguire una "trasformazione a senso unico"; il messaggio originale non può essere recuperato dal digest, del tutto. Pertanto, se SHA-1 costituisce "crittografia unidirezionale" dipende dalla definizione di quel termine dalla classe . Potrebbe avere diverse definizioni logiche possibili a seconda della semantica:

  • Se "crittografia" è da intendersi come sinonimo di "offuscamento" e "a senso unico" significa "irreversibile da qualsiasi significa", quindi SHA-1, come un hash, incontrerebbe questo (molto sciolto) definizione del termine.

    La "chiave" implicitamente richiesta potrebbe essere considerata come il "sale", che è un componente della maggior parte degli hash crittografici che modifica l'hash prodotto in modo deterministico ma imprevedibile e pertanto è necessario che sia corretto per riprodurre lo stesso hash dello stesso messaggio. Tuttavia, tecnicamente il sale usato per gli hash non è un segreto, come normalmente lo è una chiave.

  • Se "crittografia unidirezionale" == "hash con chiave", allora SHA-1, nella sua forma primitiva, non soddisfa la definizione. Tuttavia, SHA-1 può essere utilizzato come funzione hash di un HMAC, che è un "hash con chiave" progettato per l'autenticazione dei messaggi (solo il messaggio corretto, con la chiave corretta, produrrà lo stesso HMAC). Gli HMAC sono utilizzati in una varietà di schemi di sicurezza, come nelle modalità di blocco cifrate autenticate o in prove a conoscenza zero. L'HMAC basato su SHA-1 è, abbastanza appropriatamente, denominato HMAC-SHA1.

  • Se "crittografia" è definita come "un metodo di offuscamento basato su chiavi reversibile", quindi "crittografia unidirezionale" == "crittografia trapdoor" alias "crittografia asimmetrica", che SHA-1 in qualsiasi la forma non lo è. Vengono utilizzate due chiavi, ciascuna delle quali quando viene utilizzata nell'algoritmo di crittografia produce una trasformazione sul messaggio che è irreversibile senza conoscenza dell'altro tasto. Gli algoritmi RSA e curva ellittica sono esempi, non SHA-1.

risposta data 22.01.2013 - 20:42
fonte
-3

I cifrari sono biettivi e le funzioni di hash non lo sono. Sebbene tu possa ancora costruire un cifrario XORando l'input con un hash (crittografia) e facendo lo stesso una volta di più per la decodifica.

    
risposta data 02.01.2015 - 18:45
fonte

Leggi altre domande sui tag