2009-06-13 40 views

Respuesta

77

SHA no es cifrado, es una función hash unidireccional. AES (Advanced_Encryption_Standard) es un estándar de cifrado simétrico.

AES Reference

5

SHA representa Secure Hash Algorithm, mientras que AES significa Advanced Encryption Standard. Entonces, SHA es un conjunto de algoritmos hash. AES, por otro lado, es un cifrado que se utiliza para encriptar. Los algoritmos SHA (SHA-1, SHA-256, etc.) tomarán una entrada y producirán un resumen (hash), esto se usa típicamente en un proceso de firma digital (producen un hash de algunos bytes y firman con una clave privada) .

67

SHA es una familia de algoritmos "Secure Hash" que han sido desarrollados por la Agencia Nacional de Seguridad. Actualmente hay una competencia entre docenas de opciones para quién se convertirá en SHA-3, el nuevo algoritmo hash para 2012+.

a usar funciones SHA tomar un documento de gran tamaño y calcular un "Digest" (también llamado "control") de la entrada. Es importante darse cuenta de que este es un proceso unidireccional. No puede tomar un resumen y recuperar el documento original.

AES, el Advanced Encryption Standard es un algoritmo simétrico de bloques. Esto significa que toma bloques de 16 bytes y los encripta. Es "simétrico" porque la clave permite cifrado y descifrado.

ACTUALIZACIÓN:Keccak fue nombrado el ganador SHA-3, el 2 de octubre de 2012.

4

SHA es una función hash y AES es un estándar de cifrado. Dada una entrada, puede usar SHA para producir una salida que es muy poco probable que se produzca a partir de cualquier otra entrada. Además, se pierde cierta información al aplicar la función, por lo que incluso si supiera cómo producir una entrada que produzca la misma salida, esa entrada probablemente no sea la misma que se usó en primer lugar. Por otro lado, AES está destinado a proteger de la divulgación a terceros cualquier información enviada entre dos partes que comparten la misma clave de cifrado. Esto significa que una vez que conoce la clave de encriptación y la salida (y la IV ...) puede regresar sin problemas a la entrada original. Tenga en cuenta que SHA no requiere nada más que una entrada para aplicarse, mientras que AES requiere al menos 3 thin: lo que está encriptando/descifrando, una clave de cifrado y el vector de inicialización (IV).

44

SHA y AES tienen diferentes propósitos. SHA se utiliza para generar un hash de datos y AES se utiliza para cifrar datos.

Aquí hay un ejemplo de cuando un hash SHA es útil para usted. Digamos que quería descargar una imagen ISO de DVD de alguna distribución de Linux. Este es un archivo grande y algunas veces las cosas salen mal, por lo que desea validar que lo que descargó sea correcto. Lo que haría sería ir a una fuente confiable (como el punto de descarga de distribución oficial) y generalmente tienen el hash SHA para la imagen ISO disponible. Ahora puede generar el hash SHA comparable (usando cualquier cantidad de herramientas abiertas) para sus datos descargados. Ahora puede comparar los dos hash para asegurarse de que coincidan, lo que validaría que la imagen que descargó es correcta. Esto es especialmente importante si obtiene la imagen ISO de una fuente no confiable (como un torrente) o si tiene problemas para usar la ISO y desea verificar si la imagen está dañada.

Como se puede ver en este caso el SHA ha sido utilizado para validar los datos que no está dañado. Tienes todo el derecho de ver los datos en el ISO.

AES, por otro lado, se usa para encriptar datos, o para evitar que las personas vean esos datos sabiendo algún secreto.

AES utiliza una clave compartida, lo que significa que la misma clave (o una clave relacionada) se utiliza para cifrar los datos que se utilizan para descifrar los datos. Por ejemplo, si cifré un correo electrónico usando AES y le envié ese correo electrónico, usted y yo necesitaríamos conocer la clave compartida utilizada para cifrar y descifrar el correo electrónico. Esto es diferente de los algoritmos que usan una clave pública como PGP o SSL.

Si desea unirlos, puede encriptar un mensaje usando AES y luego enviar un SHA1 hash del mensaje desencriptado para que cuando se descifre el mensaje puedan validar los datos. Este es un ejemplo algo artificial.

Si usted quiere saber más acerca de estos algunos términos de búsqueda Wikipedia (más allá de AES y SHA) que desea desea intentar incluir:

algoritmo

de clave simétrica (AES) función hash criptográfica (SHA) Criptografía de clave pública (para PGP y SSL)

2

SHA no requiere nada más que una entrada para aplicarse, mientras que AES requiere al menos 3 cosas: lo que está encriptando/descifrando, una clave de cifrado y la inicialización vector.

+1

[Esto se marcó como una "respuesta tardía a una pregunta anterior, proporcionada por un usuario nuevo. Mi comentario es en ese contexto.] Esto no parece agregar ninguna información sobre lo que ya se proporcionó en otras respuestas a esta pregunta. – danfuzz

+0

Eso es incorrecto. No necesita un vector de inicialización (IV) para usar AES. Algunos modos de operación para AES requieren una IV (que es totalmente diferente). –

Cuestiones relacionadas