Algoritmos HASH

En una reciente jornada sobre digitalizacion certificada de facturas hubo un término que se utilizó con profusión y que, creo, es desconocido – HASH – o código Hash, o “huella digital” y que es utilizado para garantizar o verificar la integridad de dichas facturas.

Digitalización de documentos

Digitalización de documentos

El reglamento que desarrolla este proceso de digitalizacion certificada hace hincapié en garantizar la integridad de los documentos digitales que representan a las facturas en papel. Un objeto digital es íntegro si no se ha producido manipulación alguna del objeto original.

Un código Hash es una cadena de números, obtenida de aplicar una función matemática a un objeto digital; entendiendo por objeto digital cualquier archivo sea cual sea su formato: una imagen, una base de datos, un documento, audio, una película, etc.

Lo mejor será que lo pruebes. Accede a este sistema de cálculo en la web y pruébalo. Prueba a introducir una frase o un archivo de tu sistema, pero cuidado con el tamaño de archivo que seleccionas, puede eternizarse en el cálculo.

Yo lo he hecho y lo que me devuelve es un cuadro de resultados como el que sigue:

Digitalización de Documentos

Digitalización de Documentos

Lo primero que vemos es que nos devuelve distintos códigos Hash, basados en distintos algoritmos, en distintas funciones matemáticas. Además, vemos que dichos códigos tienen longitudes distintas, es decir, devuelven huellas más o menos cortas (MD5 de 128 bits, SHA-1 de 160 bits o el SHA-512, de 512 bits).

Estos algoritmos deben garantizar las siguientes propiedades:

  1. sea cual sea el tamaño del archivo de entrada, el código Hash siempre tendrá la misma longitud.
  2. si dos objetos digitales producen dos códigos Hash distintos, los dos objetos son diferentes.
  3. no hay dos objetos digitales que produzcan el mismo código Hash (imposibilidad de colisión).
  4. a partir de un código Hash no es posible obtener ni deducir el objeto digital.

Evidentemente, no lo harán de igual manera y seguridad algoritmos que generan códigos de 128 bits o de 512 bits. De hecho, se ha evidenciado algún caso de colisión en el algoritmo MD5 que ha sido uno de los más utilizados en los últimos años. Por eso mismo, se han desarrollado códigos de mayor longitud.

seguridadPero continuemos con la explicación. La utilización de este tipo de algoritmos para la digitalización certificada de facturas se soporta en la propiedad número 2. Es decir, las aplicaciones homologadas por AEAT y por nuestras Haciendas Forales generan un código Hash en el mismo momento del escaneado de las facturas y dicho código más la imagen digital (por ejemplo, un PDF) se firman con un certificado reconocido por dichas entidades.

Si después abrimos este PDF y lo modificamos una nada, incluso sólo con cambiarlo de versión por ejemplo, el código Hash de este nuevo archivo ya no será el mismo y así se evidenciará la no integridad de la factura.

Según Txomin Alkorta puedes probar a hacer una pequeña modificación en el archivo que has utilizado antes y vuelve a generar su código Hash, verás como ya no son iguales. Yo lo he hecho con una breve frase:

Digitalizacion certificada de facturas: ee17a01bf7d63bd84b96ce6f8338483c65c3fcce (SHA-1)

Digitalizacion certificada de facturas: e637b9de6fc61c243c6c9a4315e2bb1a0ef9f628 (SHA-1)

Veis que la única variación es el acento o la ausencia del mismo en la primera letra “o”. Si en un archivo fotográfico cambiásemos únicamente un pixel, el resultado también sería distinto.

Esta es la virtud de estas funciones y por qué se confía en ellos para dar confianza y seguridad en la utilización de los documentos digitales.

Espero haber contribuido a aclarar algo más este tema.

Results
Original text (binary only)
Original bytes 255044462d312e350d25e2e3cfd30d0a39322030206f626a0d… (length=178617)
Adler32 d91f3ed2
CRC32 4158094a
Haval 80e57aca6ef59d019749669b367bcdcf
MD2 53bdf78f8dc09af900cce0c7a5ac14bf
MD4 1fabc4fc2a7f87503fca944924b2d170
MD5 fbc2963188f0c68fc623de5f7418edf1
RipeMD128 c3ab74908e406488ce749a0eb5a7d899
RipeMD160 fbccf420fb024d8e34a9b42dccef9e363122a825
SHA-1 b20d57667a530e08791be4afc7ac471912bcdc19
SHA-256 1ca7aea4d8659ea821bcb0f8328db487b01c69c7498aaeb89063d1ed58c9f9a4
SHA-384 93ee624b58b158ecdcfe61c6eca5e6e0a957e29ed717d2e9d174388b9ece7e0c95c9e73d09029337233d58d6947f5288
SHA-512 af3f457879d4cea78926468292a7d283d5edb447df5079715570c25758de1b2e8f2842793b1f282563cd246b121efea2d400fa02f81c9fd6740c5364d10dae48
Tiger 0e7d5cedaae9259a746eb784a2e9919468b6418d6a9e5715
Whirlpool ff8a06f51dfd22e285774e91c28ceab17bce5542d1258fdec4bd83134a553e267fc12968a0d04f40277dde8c6fd78c3456edf39bd272f4fd0ade04ceb641a22b

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: