Lascia AppK la chiave dell'applicazione. La chiave della sessione dell'applicazione ( AppSKey ) e la chiave della sessione di rete ( NwkSKey ) vengono generate utilizzando solo l'algoritmo AES senza adottare il protocollo Diffie Hellman.
Supponiamo di avere un Device Node che genera una nonce pseudocasuale a 16 bit e cioè DevNonce . Questo nonce viene inviato al server delle applicazioni. Il server delle applicazioni genera un nonce pseudo casuale a 22 bit, ovvero AppNonce che viene inviato al Nodo dispositivo.
L'ID di rete, chiamato NetID è già condiviso tra le entità. Inoltre un codice standard a 32 bit (per NwkSKey questo è 0x01, per AppSKey questo è 0x02) viene utilizzato.
Infine il messaggio risultante viene riempito a 128 bit.
NwkSKey = aes128_encrypt(AppKey, 0x01 | AppNonce | NetID | DevNonce | pad16)
AppSKey = aes128_encrypt(AppKey, 0x02 | AppNonce | NetID | DevNonce | pad16)
Tuttavia ti consiglio questo link per approfondire LoraWan Security .