Si continua...

Dopo tanto che non faccio aggiornamenti, mi è già stato chiesto due volte se il progetto è defunto.
Ebbene, NO! Non è defunto e si preparano grosse novità.
Un grosso halt è stato provocato da un "piccolo" problema teorico (il ben noto problema dei generali bizantini in cui due dei generali sono le due centraline ed il terzo è il nodo).
Sto cercando di percorrere varie strade, in particolare cerco un microcontrollore che sia abbastanza economico, moderatamente sicuro (a livello dei PIC) e discretamente veloce (tanto da poter gestire RSA 2048)... Sto attendendo l'arrivo di varie spedizioni, poi dovrò trovare il tempo di implementare il tutto...
Quindi, anche se non c'è da trattenere il fiato, le cose si muovono (anche se molto più piano di quel che speravo quando mi ci sono cimentato...).

Piccolo aggiornamento

Purtroppo la vita lascia sempre meno tempo da decicare al progetto, ma essendo l'inizio del nuovo anno, tra i buoni propositi ho messo anche quello di portare avanti OA malgrado l'aumento degli impegni.

La "svolta" che attendevo sono le CPU ARM a 32 bit. Economiche, potenti, ben documentate, discreta dotazione di periferiche, facilmente approvvigionabili, e a ridotto lock-in (ovvero è possibile cambiare la CPU con quella di un altro produttore con modifiche molto ridotte). Questo permette di gestire "facilmente" almeno crittografia a curve ellittiche (p.e. la curva 25519 fornisce sicurezza analoga ad AES 128 e richiede calcoli molto più veloci che non RSA2048!).

In realtà il risultato più

In realtà il risultato più promettente non sono state le CPU ARM, ma il super economico ESP8266!

Pro:
- economicità (meno di 2€ per avere un nodo capace di fare da AP e/o client WIFI)
- estrema versatilità (si gestisce bene dall'IDE di Arduino)
- buona velocità (la CPU riesce a gestire una generazione di chiave condivisa con curve25519-donna in circa 250ms)
- dimensioni ridottissime (poco più grande di un connettore USB)

Contro:
- sicurezza limitata (tutto il codice è su una memoria esterna al micro, facilmente accessibile ad un attaccante)
- non supporta nativamente ethernet cablata

Quello che mi ha stoppato è stato l'avviso della NSA di abbandonare la crittografia a curve ellittiche, probabilmente perché non resiste ad attacchi con computer quantici. Visto che già si vocifera di computer quantici commerciali a 1000 qubit, una chiave EC da 255 bit sarebbe già craccabile facilmente.

Devo quindi trovare il tempo di convertire (o "Arduinizzare") il sorgente di NTRU (resistente ai computer quantici), che seppur con chiavi relativamente molto grandi (~6.5kB contro 32 byte di curve25519 e ~512byte di RSA2048), dovrebbe risultare più veloce di EC e più sicura di RSA. Il sorgente è disponibile sia sotto licenza GPL che sotto licenza commerciale, ed io ovviamente scelgo di usare la GPL!