El hash encadenado es una de las técnicas centrales del Sistema Informático de Facturación. La idea consiste en vincular criptográficamente cada factura emitida con la anterior, de manera que cualquier alteración posterior de la secuencia deje una huella detectable. La norma técnica del SIF impone el uso del algoritmo SHA-256 para esta función, y comprender cómo opera resulta útil tanto para confiar en el sistema como para detectar problemas cuando ocurren.
Qué es una función hash criptográfica
Una función hash criptográfica es un algoritmo que toma como entrada un conjunto de datos de cualquier tamaño y devuelve como salida un valor numérico de longitud fija, llamado resumen o huella. Las funciones hash criptográficas tienen tres propiedades fundamentales que las hacen útiles para garantizar la integridad de la información.
La primera propiedad es el determinismo: la misma entrada siempre produce la misma salida. La segunda es la sensibilidad: un cambio mínimo en la entrada —un solo carácter modificado— produce una salida completamente distinta, sin similitud aparente con la original. La tercera es la unidireccionalidad: a partir del resumen, no es computacionalmente factible reconstruir la entrada original ni encontrar otra entrada distinta que produzca el mismo resumen.
Estas tres propiedades, en combinación, hacen del hash una huella digital fiel del contenido al que se aplica. Si dos resúmenes son iguales, las entradas son las mismas; si los resúmenes son distintos, las entradas difieren. La función hash actúa como un certificado de integridad de cualquier conjunto de datos.
SHA-256 como estándar del SIF
El algoritmo SHA-256 forma parte de la familia SHA-2 desarrollada por el NIST estadounidense y adoptada como estándar internacional. Produce resúmenes de 256 bits —64 caracteres hexadecimales— y está considerado, en el estado actual de la criptografía pública, como una función robusta y segura para los usos habituales.
El SIF español impone el uso de SHA-256 para el cálculo del hash de cada factura emitida. La elección responde a la combinación de robustez técnica, eficiencia computacional y reconocimiento internacional. SHA-256 está implementado en todas las bibliotecas criptográficas estándar, lo que facilita su utilización por los desarrolladores de software de facturación, y no plantea problemas de rendimiento incluso en sistemas modestos.
La regulación contempla la posibilidad de que, en el futuro, el algoritmo pueda actualizarse —por ejemplo a SHA-3 o a otros estándares más recientes— si el avance de la criptografía o de la computación cuántica recomendase un refuerzo. De momento, SHA-256 es la elección obligatoria.
El encadenamiento entre facturas
El SIF no se limita a calcular el hash de cada factura por separado. Cada factura emitida incluye, además del hash de su propio contenido, el hash de la factura inmediatamente anterior emitida por el mismo SIF. Esta vinculación crea una cadena: la factura B referencia el hash de la factura A; la factura C referencia el hash de la factura B; y así sucesivamente.
La consecuencia del encadenamiento es que cualquier modificación de una factura altera su hash, y esa alteración rompe la cadena en todas las facturas posteriores. Si alguien intenta modificar la factura B después de su emisión, el hash de B cambia y deja de coincidir con la referencia que tiene la factura C. La inspección detecta la inconsistencia inmediatamente.
Para ocultar la modificación, habría que rehacer las cadenas posteriores, recalculando los hash de todas las facturas afectadas. Cada rehecho cambiaría a su vez los hash subsiguientes, en cascada hasta la última factura emitida. En un SIF con un volumen normal de facturación, esa operación es técnicamente costosa y deja, en cualquier caso, huellas detectables si la información se cruza con copias externas —por ejemplo, las facturas enviadas a los receptores o los registros de la AEAT en caso de VeriFactu—.
Por qué el encadenamiento se inspira en blockchain
La técnica del hash encadenado tiene relación conceptual con la tecnología blockchain, aunque su aplicación en el SIF no requiere una blockchain en el sentido habitual del término. Lo común entre ambos enfoques es el principio de inalterabilidad por vinculación criptográfica: cada elemento de la secuencia depende del anterior, de manera que la modificación de uno cualquiera obliga a rehacer todos los siguientes.
La diferencia es que el SIF no requiere consenso distribuido entre múltiples nodos ni un mecanismo de prueba de trabajo o de participación. El SIF mantiene la cadena dentro del sistema del propio contribuyente, y la integridad se garantiza mediante la firma electrónica de cada factura —que impide la modificación silenciosa— y, en el caso de VeriFactu, mediante el envío en tiempo real a la AEAT —que crea una copia externa con la que cualquier alteración posterior chocaría—.
El hash encadenado en el SIF es, por tanto, una técnica más ligera y eficiente que una blockchain completa, pero comparte con ella el objetivo y la lógica básica de la vinculación criptográfica para garantizar la trazabilidad.
La validación del hash en una factura concreta
Para validar el hash de una factura concreta, basta con repetir el cálculo del hash del contenido y compararlo con el valor incorporado en la factura. Si los dos coinciden, el contenido es íntegro; si difieren, ha habido modificación.
La validación de la cadena, en cambio, requiere acceso a las facturas adyacentes. Para comprobar que la factura B está correctamente encadenada, hay que disponer del hash de la factura A —que debería coincidir con la referencia incorporada en B— y verificar que el hash propio de B coincide con la referencia que figura en C. Esta validación de cadena es la que detecta la inserción, eliminación o reordenación de facturas dentro de la secuencia.
En la práctica, la validación se realiza automáticamente por las herramientas de inspección del SIF o por los procedimientos de exportación a la AEAT. El contribuyente normal no necesita realizar la validación manualmente, pero conviene entender el principio por el que el sistema detecta las inconsistencias.
La trazabilidad como objetivo central
El hash encadenado responde al objetivo central de la regulación del SIF: garantizar la trazabilidad de la facturación. Trazabilidad significa que, en cualquier momento posterior a la emisión, sea posible reconstruir con certeza el orden cronológico de las facturas, su contenido íntegro y la ausencia de modificaciones no documentadas.
Sin trazabilidad, la facturación pierde su valor probatorio y abre la puerta al fraude. Un sistema que permitiera modificar facturas a posteriori sin dejar rastro permitiría inflar gastos, ocultar ingresos o manipular cifras de cualquier manera que conviniese al contribuyente. La trazabilidad del SIF cierra esa vía, haciendo que cualquier intento de manipulación sea o bien imposible o bien detectable.
Para el contribuyente honesto, la trazabilidad no es una carga; es una garantía. Los registros de su facturación son resistentes a la manipulación tanto interna —errores, modificaciones no intencionadas, intervenciones de terceros con acceso al sistema— como externa.
El primer eslabón de la cadena
Una cuestión técnica interesante es cómo se inicia la cadena. La primera factura emitida por un SIF nuevo no tiene una factura anterior con cuyo hash encadenarse. La regulación establece que en ese caso se utilice un valor convencional —típicamente el hash de la cadena de texto vacía— como referencia. A partir de esa primera factura, la cadena se construye normalmente.
La iniciación de la cadena queda registrada en el SIF y forma parte de los datos exportables a la Administración. La AEAT puede, en su caso, verificar que la iniciación se ha realizado correctamente y que la cadena se ha mantenido íntegra desde ese primer eslabón.
En situaciones de migración de un SIF a otro —por ejemplo, cambio de proveedor de software—, el nuevo sistema debe iniciar su propia cadena. La continuidad con la cadena del sistema anterior se gestiona mediante los procedimientos de exportación e importación que la norma contempla.
Errores frecuentes en torno al hash encadenado
Tres errores se repiten en la comprensión del hash encadenado. El primero es asumir que el hash protege contra el borrado completo de facturas. No lo hace directamente: si se borran las facturas y se reinicia la cadena, el SIF puede operar técnicamente. Lo que detecta el borrado es la incoherencia entre los registros del SIF, las copias externas —enviadas a clientes, declaradas a la AEAT— y la cronología de la actividad económica.
El segundo error es confundir el hash con la firma electrónica. Son mecanismos distintos y complementarios. El hash garantiza la integridad del contenido y la trazabilidad de la secuencia. La firma electrónica garantiza la identidad del emisor y el no repudio. Ambos elementos juntos proporcionan la robustez completa del SIF.
El tercer error es preocuparse innecesariamente por la elección del algoritmo. SHA-256 es la opción impuesta por la regulación, y no se requiere ninguna decisión técnica por parte del usuario. La elección del algoritmo corresponde al proveedor del software, que debe implementar SHA-256 conforme a las especificaciones estándar.
La consulta profesional
La comprensión del hash encadenado no es estrictamente necesaria para el uso del SIF, pero ayuda a entender las garantías del sistema y a interpretar los informes técnicos cuando una inspección, una auditoría o una incidencia técnica los requieren.
Si estás preparando la adopción del SIF y quieres ver cómo Invoseal implementa el hash encadenado SHA-256, puedes consultar las funcionalidades y los planes en invoseal.es.
¿Quieres tenerlo resuelto hoy?
InvoSeal cumple el RD 1007/2023 en modalidad VeriFactu y No-VeriFactu desde el primer día. Declaración Responsable publicada.
Probar InvoSeal →