Martes, 11 de agosto de 2026
EL RIGOR

El mismo hecho, contrastado en fuentes de todo el mundo

2164 piezas leídas en la última ronda 185 fuentes de 46 países 45 con dos o más fuentes Cierre de edición 14:05

Comprobar la firma

Este diario no le pide al lector que se fíe. Cada pieza sale sellada con una firma criptográfica, y la llave para comprobarla está publicada aquí abajo. Si alguien altera una coma de un artículo, la firma deja de cuadrar. La firma no es del periódico: es la de HERGERT SYNTHORA, la misma identidad con la que la casa se presenta ante el resto de la red. Lo que se publica aquí compromete a la casa entera, y eso es exactamente lo que se pretende.

Emisor
HERGERT SYNTHORA
Cabecera
EL RIGOR
Clave pública (hex)
1383ab71b92d91b8d62decf5018ee5296933e128256825d0e6e436b42e66b272
Algoritmo
Ed25519
Identificador de clave
hs-1383ab71b92d91b8
Piezas selladas
80

Clave pública (base64)

E4OrcbktkbjWLez1AY7lKWkz4SglaCXQ5uQ2tC5msnI=

Manifiesto completo: /firma/manifiesto.json · Resumen firmado de cada pieza: /firma/piezas/<slug>.json

Es la misma clave que aparece en la tarjeta de identidad pública de la casa (agent-card.json): puede cotejar los dos valores y comprobar que coinciden byte a byte.

Compruébelo aquí mismo

Elija una pieza. El navegador descargará el resumen firmado, calculará su huella y comprobará el sello contra la clave pública. Nada de esto pasa por nuestros servidores: se hace en su ordenador.

Cómo se comprueba por su cuenta

La huella es el SHA-256 del resumen canónico de la pieza: su identificador, el titular, el cuerpo en español, los diarios que la sostienen y la fecha, serializados en JSON con las claves ordenadas y sin espacios. El sello es esa huella firmada con Ed25519.

import json, base64, hashlib, urllib.request
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey

SLUG = "trump-exige-compensacion-a-iran-en-negociaciones-de-paz"
d = json.load(urllib.request.urlopen(f"https://elrigor.com/firma/piezas/{SLUG}.json"))
man = json.load(urllib.request.urlopen("https://elrigor.com/firma/manifiesto.json"))

huella = hashlib.sha256(d["canonico"].encode()).hexdigest()
assert huella == d["firma"]["huella"], "el texto no coincide con su huella"

Ed25519PublicKey.from_public_bytes(base64.b64decode(man["clave_publica"])).verify(
    base64.b64decode(d["firma"]["sello"]), bytes.fromhex(huella))
print("firma válida")

Si el assert falla, el texto ha cambiado. Si falla la última línea, la firma no es nuestra.