Post-Quantum Secure Telemetry Signing for Industrial IoT
"Produce data that can be proven — not trusted."
Foritech Edge Agent runs on industrial IoT devices and signs telemetry data using ML-DSA-65 — a post-quantum cryptographic signature algorithm.
Every telemetry message becomes a cryptographically verifiable container.
Verification happens on the Foritech server — proving the data is real and untampered.
Device (IoT2050, PLC, sensor)
↓
Foritech Edge Agent
↓ ML-DSA-65 signature
Signed .ftech container
↓ HTTP / MQTT
Foritech Verification Server → VERIFIED / REJECTED
curl -fsSL https://edge.forisec.eu/install.sh | bashTested on:
- Siemens IoT2050 (ARM64, Debian)
- Ubuntu 22.04 / 24.04 (x86_64)
- Raspberry Pi (ARM)
/opt/foritech-edge/
foritech_edge_agent.py ← standalone agent
venv/ ← Python environment
config.json ← device configuration
/etc/foritech/keys/
ml_dsa_priv.bin ← ML-DSA-65 private key (stays on device)
ml_dsa_pub.bin ← ML-DSA-65 public key
kyber768_pub.bin ← ML-KEM-768 key
/etc/systemd/system/
foritech-edge.service ← auto-start on boot
- Python 3.11+
- liboqs-python (installed automatically)
- 50MB disk space
- Network access to verification endpoint
Edit /opt/foritech-edge/config.json:
{
"device_id": "my-device-001",
"verify_endpoint": "https://verify.foritech.bg/verify",
"interval": 30,
"transport": "http"
}| Field | Default | Description |
|---|---|---|
device_id |
auto (machine-id) | Unique device identifier |
verify_endpoint |
https://verify.foritech.bg/verify | Foritech verification server |
interval |
30 | Seconds between telemetry cycles |
transport |
http | http or file |
# Start
sudo systemctl start foritech-edge
# Status
sudo systemctl status foritech-edge
# Logs
journalctl -u foritech-edge -f
# Stop
sudo systemctl stop foritech-edge╔══════════════════════════════════════════════════════╗
║ FORITECH EDGE AGENT v0.8 ║
║ Post-Quantum Secure Telemetry Signing ║
╚══════════════════════════════════════════════════════╝
[..] Device ID : 6acd1ccb24c44a5ea287620e80a5c237
[..] Transport : http
[..] Endpoint : https://verify.foritech.bg/verify
[..] Interval : 30s
[OK-FORITECH] liboqs (PQC) available
[OK-FORITECH] ML-DSA-65 keys loaded (kid: 6e669d49c371bdad...)
[OK-FORITECH] Edge Agent ready — starting telemetry loop
──────────────────────────────────────────────────
[..] Cycle 1 — signing telemetry...
[OK-FORITECH] Signed (6282 bytes)
[OK-FORITECH] Verified → https://verify.foritech.bg/verify [200]
- Private key never leaves the device
- Every message is signed with ML-DSA-65 (post-quantum)
- Verification happens server-side — edge agent cannot verify itself
- Replay protection via nonce + timestamp
- KID derived from public key:
SHA256(pub_key).hex()
Edit the collect_telemetry() function in foritech_edge_agent.py:
def collect_telemetry(device_id: str) -> dict:
return {
"device_id": device_id,
"timestamp": int(time.time()),
"temperature": read_modbus_register(1), # your sensor
"pressure": read_modbus_register(2), # your sensor
"status": "ok",
}| Device | Architecture | Status |
|---|---|---|
| Siemens IoT2050 | ARM64 | ✅ Tested |
| Raspberry Pi 4 | ARM64 | ✅ Compatible |
| Ubuntu Server | x86_64 | ✅ Tested |
| Docker container | any | ✅ Compatible |
Foritech Secure System is a post-quantum cryptographic verification platform for telemetry and machine data.
In a world where AI can fake anything, Foritech proves what is real.
- Website: foritech.bg
- Verification API: verify.foritech.bg
- Edge installer: edge.forisec.eu
Edge Agent is open source.
Foritech Verification Engine is proprietary — contact us for licensing.