He leído que SHA-1 es una función criptográfica de hash. En un examen, se dio SHA-1 como un posible algoritmo de cifrado unidireccional. ¿SHA-1 requiere una clave como entrada? ¿Se requiere una clave para calificar como "cifrado"?
He leído que SHA-1 es una función criptográfica de hash. En un examen, se dio SHA-1 como un posible algoritmo de cifrado unidireccional. ¿SHA-1 requiere una clave como entrada? ¿Se requiere una clave para calificar como "cifrado"?
Esto podría fácilmente ser googled o wikipedia'd , pero aquí va:
SHA-1 es una función criptográfica hash, pero no es una función de cifrado. Todo en lo que trabajas la función SHA-1 es irreversible.
SHA-1 podría hacerse usando una clave, pero eso lo convertiría en un Código de autenticación de mensaje (MAC, consulte HMAC ).
Estoy de acuerdo con tu última frase. Para que algo esté encriptado, necesitará tener alguna clave, o algo que corresponda a uno. Digamos que tiene una función de cifrado (bastante mala) que cambia los bits de la entrada, su clave es "voltear cada bit". Otra función puede ser una red de feistel que utiliza la función redonda F, y una tecla K = 281474976710656 como entrada para esa función.
Por definición, una función hash no es cifrado .
Cifrado es el proceso de codificación de mensajes (o información) de tal manera que los intrusos no pueden leerlo, pero las partes autorizadas pueden hacerlo.
y
Función de hash es un algoritmo que toma un bloque de datos arbitrario y devuelve una cadena de bits de tamaño fijo, el hash criptográfico valor, de manera que cualquier cambio en los datos será (con muy alta probabilidad) cambiar el valor de hash.
El cifrado proporciona confidencialidad mientras que las funciones de hash proporcionan integridad .
Las funciones de hash se utilizan junto con el cifrado para sus capacidades de integridad.
Hay un uso incorrecto pero generalizado del término "cifrado" para cosas que no son cifrado, pero, por ejemplo, hash.
La definición estricta de cifrado asume que algunos datos se transforman, de manera tal que:
De alguna manera es necesario para el cifrado que el proceso de cifrado utilice un parámetro que está vinculado a los datos secretos utilizados para el descifrado; Ese parámetro, llamamos una clave . Cuando la clave para el cifrado es idéntica a la información secreta utilizada para el descifrado, entonces esto es cifrado simétrico . Cuando la clave de cifrado se vincula matemáticamente con los datos secretos pero aún así es distinta, de tal manera que la clave de cifrado pueda hacerse pública de manera segura, esto es cifrado asimétrico .
Por lo tanto, no puede haber "cifrado unidireccional", y SHA-1 no es cifrado. SHA-1 es hashing : sin clave, salida de tamaño fijo (160 bits para SHA-1), sin proceso inverso (en particular, la entrada puede ser bastante mayor que los 160 bits de salida).
Desafortunadamente, las personas que escribieron la pregunta de tu examen aparentemente usaron la terminología incorrecta; Lo mejor que puedes hacer es seguir su terminología durante el examen. Esta es la misma confusión que lleva a algunas personas a hablar sobre "contraseñas encriptadas" para contraseñas que en realidad están encriptadas.
SHA-1 no es un algoritmo de cifrado, es una función hash. Te diré la diferencia. Una función criptográfica es obtener texto y clave como entrada. Utilizando la tecla. realizar algún algoritmo en el texto sin formato y luego dar salida como texto cifrado. Considera que si ingresas 'abcdef' como entrada y '123' como clave, devolverá un texto cifrado de 'abc' usando un algoritmo como DES, AES, etc. Esto requiere una clave. Es como poner texto en un cuadro y bloquear el cuadro con una tecla. El tamaño de salida variará de acuerdo con el tamaño de entrada. Es decir, si asigna 1000 caracteres para cifrar, obtendrá texto cifrado que tiene un tamaño similar. El tamaño puede variar para algunos algoritmos.
La función de hash no es cifrar valores. La función hash es como índice para valores. Considere un escenario simple. Tengo un número N, y el hash de ese número se define N% 100. Por ejemplo, si doy N, 123 Hash de N es 123% 100 que es 23, si N es 1245621345, entonces su hash será 1245621345% 100 que es 45. Tenga en cuenta que si estoy dando una entrada pequeña o una entrada grande, el hash será De longitud fija. Aquí está 2 dígitos. De manera similar, SHA-1 obtendrá un valor de entrada y calculará su hash. Todo el valor de hash SHA-1 tendrá 160 bits. Es decir, si da un solo carácter o 100000 caracteres, el tamaño de salida será de solo 160 bits. Así que SHA-1 no necesita llave. Se utiliza para fines de autenticación. Puedes buscar en Google los usos de las funciones Hash.
SHA-1 es una función hash. Las funciones de hash están destinadas a realizar una "transformación unidireccional"; El mensaje original no se puede recuperar del resumen, en absoluto. Por lo tanto, si SHA-1 constituye un "cifrado unidireccional" depende de la definición de ese término de su clase . Podría tener varias definiciones lógicas posibles dependiendo de la semántica:
Si se pretende que "cifrado" sea sinónimo de "ofuscación", y "unidireccional" significa "irreversible por cualquier significa", entonces SHA-1, como un hash, cumpliría con esto (muy suelto) definición del término.
La "clave" implícitamente requerida podría tomarse como la "sal", que es un componente de la mayoría de los hash criptográficos que cambia el hash producido de una manera determinista pero impredecible, y por lo tanto se requiere que sea correcto para reproducirse El mismo hash del mismo mensaje. Sin embargo, técnicamente, la sal que se usa para los hashes no es un secreto, como suele ser una clave.
Si "cifrado unidireccional" == "hash con clave", entonces SHA-1, en su forma primitiva, no cumple con la definición. Sin embargo, SHA-1 se puede usar como función hash de un HMAC, que es un "hash con clave" diseñado para la autenticación de mensajes (solo el mensaje correcto, con la clave correcta, producirá el mismo HMAC). Los HMAC se utilizan en una variedad de esquemas de seguridad, como en los modos de bloque de cifrado autenticados o en pruebas de conocimiento cero. El HMAC basado en SHA-1 se llama apropiadamente HMAC-SHA1.
Si "cifrado" se define como "un método de ofuscación reversible basado en clave", entonces "cifrado unidireccional" == "cifrado trampilla" también conocido como "cifrado asimétrico", que SHA-1 en cualquier la forma no es Se utilizan dos claves, cualquiera de las cuales, cuando se usa en el algoritmo de cifrado, produce una transformación en el mensaje que es irreversible sin el conocimiento de la otra clave. Los algoritmos RSA y de curva elíptica son ejemplos, no SHA-1.
Los cifrados son biyectivos y las funciones hash no. Aunque todavía puede crear un cifrado al XORear la entrada con un hash (cifrado) y hacer lo mismo una vez más para el descifrado.
Lea otras preguntas en las etiquetas hash cryptography encryption sha