Performance TLS sull'unità CRYPTO Infineon XMC7200

L'XMC7200 ha due core Arm Cortex-M7 per l'elaborazione principale e un core Cortex-M0+ per l'elaborazione periferica e di sicurezza, con un'unità CRYPTO per l'accelerazione hardware. Che l'unità sia sul die non significa che TLS sia più veloce. La libreria deve usarla davvero, e la configurazione di default di solito non lo fa.

Il risultato documentato

Le prestazioni del flusso TLS sull'unità CRYPTO XMC7200 sono state migliorate di +33 % rispetto alla libreria del produttore, mantenendo la piena compatibilità. La misura e la discussione sono documentate nel post originale sulla Infineon Developer Community:

https://community.infineon.com/t5/XMC/XMC7000-CRYPTO-unit-performance/td-p/1024565

Dove la performance si perde davvero

L'accelerazione hardware non è un interruttore che si accende. Le perdite misurabili vengono da questi punti:

  • La libreria non raggiunge l'unità. mbedTLS è per default un'implementazione software. Senza uno layer di accelerazione esplicito, l'unità CRYPTO resta inattiva mentre la CPU fa il lavoro.
  • Dimensione dei record. Record TLS piccoli moltiplicano l'overhead per record. Il throughput è funzione della dimensione dei record quanto della velocità crittografica.
  • Crypto dell'handshake vs. crypto dei dati. L'handshake è dominato da operazioni asimmetriche, il flusso di dati da operazioni simmetriche. Accelerare quella sbagliata non cambia nulla di misurabile.
  • Scelta del cipher. ECC rispetto a RSA cambia il costo dell'handshake di un ordine di grandezza. È una decisione di design, non una regolazione runtime.
  • Session resumption. Connessioni ripetute senza resumption pagano l'handshake completo ogni volta, su un collegamento embedded spesso il costo dominante.
  • Comportamento di buffer e allineamento. DMA e allineamento dei buffer sul percorso periferico è il punto dove un'unità hardware smette silenziosamente di essere usata.

Cosa significa per una decisione architetturale

Su un dispositivo limitato, la performance TLS è una proprietà architetturale, non un'impostazione di libreria. Dimensione dei record, scelta del cipher, strategia di resumption e percorso crittografico si decidono in fase di design. Modificarli quando il collegamento è già in produzione trasforma una questione di performance in un problema sul campo.

FAQ

L'unità CRYPTO è più veloce della CPU per ogni operazione?

No. Il vantaggio dipende dall'operazione e dalla dimensione del blocco. Per alcune operazioni il percorso software è competitivo, e l'overhead della chiamata all'unità può superare il beneficio.

Perché la libreria del produttore mostra un valore più basso di quello che l'hardware può fare?

Perché il percorso di default della libreria è quello software. Lo layer di accelerazione deve essere integrato esplicitamente, e l'integrazione deve corrispondere alla struttura di buffer e record che l'applicazione usa davvero.

Questo vale fuori dall'XMC7200?

Il ragionamento vale per ogni MCU con unità crittografica. I numeri specifici non si trasferiscono.

Correlati