Traducido del English por IA ·
Dos preguntas distintas, así que dos respuestas.Por qué SPECK y SIMON son pequeños: ambos son diseños ARX (suma, rotación, XOR) sin S-cajas. AES necesita tablas de búsqueda o una sustitución de bytes bastante compleja, lo que consume memoria flash y RAM en un microcontrolador de 8 bits y filtra información de tiempos si se implementa con tablas. La ronda de SPECK son unas pocas sumas, rotaciones y XOR de 16/32/64 bits, por lo que una implementación completa cabe en unos cientos de bytes. Hay dos porque se ajustaron para objetivos distintos: SIMON para hardware (muy pocas puertas) y SPECK para software en microcontroladores. También existen en muchos tamaños de bloque y de clave (de 32/64 hasta 128/256), lo cual resulta útil para paquetes muy pequeños. Para tu tesis, la disputa sobre la estandarización ISO y la falta de justificación del diseño también merecen un capítulo.Por qué no puedes cambiar TLS por SPECK: un cifrado de bloque es solo un componente. TLS ofrece intercambio de claves, autenticación del servidor e integridad de los mensajes, y la plataforma comprueba tu credencial dentro de esa sesión. Si cifras una carga útil con SPECK y la envías, alguien aún tiene que acordar una clave contigo, y el broker vería un bloque opaco. En Hermetry, el lado del dispositivo requiere TLS 1.2 como mínimo (preferiblemente 1.3) con suites de secreto hacia adelante: AES-GCM o ChaCha20-Poly1305, sin intercambio de claves RSA y sin CBC. MQTT sin cifrar en el puerto 1883 solo funciona si un administrador activa MQTT sin cifrar para el perfil, y la documentación lo trata como una excepción para dispositivos que no pueden usar TLS en una red privada o una VPN. Por eso se rechazó tu prueba en el 1883. Todo está en la página de seguridad del transporte de dispositivos.Lado práctico: el ESP32 tiene hardware AES, TLS cuesta un poco de RAM y alrededor de un segundo de negociación por conexión, y después no se nota a las velocidades de los sensores. El ATmega es el problema real. O bien usas el enfoque ChaCha20-Poly1305 (también es ARX y rápido sin hardware dedicado), o dejas que el ATmega hable con una pasarela que mantenga la sesión TLS.
Two different questions, so two answers.
Why SPECK and SIMON are small: both are ARX designs (add, rotate, xor) with no S-boxes. AES needs lookup tables or a fairly involved byte substitution, which costs flash and RAM on an 8-bit part and leaks timing if you do it with tables. SPECK’s round is a handful of 16/32/64-bit adds, rotates and xors, so a full implementation fits in a few hundred bytes. There are two because they were tuned for different targets: SIMON for hardware (very few gates), SPECK for software on microcontrollers. They also come in many block and key sizes (32/64 up to 128/256), which is handy for tiny packets. For your thesis, the ISO standardisation fight and the missing design rationale are worth a chapter too.
Why you can’t swap TLS for SPECK: a block cipher is one building block. TLS gives you key exchange, server authentication and message integrity, and the platform checks your credential inside that session. If you encrypt a payload with SPECK and send it, someone still has to agree a key with you and the broker would see an opaque blob. On Hermetry the device side is TLS 1.2 minimum (1.3 preferred) with forward-secret suites: AES-GCM or ChaCha20-Poly1305, no RSA key exchange, no CBC. Plain MQTT on 1883 only works if an admin switches Plain MQTT on for the profile, and the docs treat that as an exception for devices that can’t do TLS on a private network or VPN. That’s why your 1883 test was refused. It’s all on the device transport security page.
Practical side: the ESP32 has AES hardware, TLS costs you a bit of RAM and a second or so of handshake per connection, and after that it’s nothing you’d notice at sensor rates. The ATmega is the honest problem. Either use ChaCha20-Poly1305 thinking (it’s ARX too and fast without hardware), or let the ATmega talk to a gateway that holds the TLS session.

