Se gli elementi contenuti nel file del keyring del progetto ETS sono usati al di fuori di ETS e al di fuori del Falcon SDK, si applicano i seguenti algoritmi di decrittazione ('pseudo codice') in funzione dell’elemento:
IP Backbone
- BackboneKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Project.BackboneKey
Interfacce di tunneling
- Password = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.BusAccess( IA ).Password, A32 ))
- Autenticazione = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
Dispositivi IP
- ManagementPassword = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.ManagementPassword, A32 )
- Autenticazione = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
Dispositivi
- ToolKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Device.ToolKey
Indirizzi di Gruppo
- Key = AES128-CBC( A1, A2, A3, A4 )
- A3 = GroupAddress.Key
Dettagli
- A1 = PBKDF2( A11, A12, A13, A14, A15 )
- A11 = HMAC-SHA256 // 'PRF'
- A12 = password keyring
- A13 = "1.keyring.ets.knx.org" // 'salt'
- A14 = 65536 // numero di iterazioni
- A15 = 128 // lunghezza in bit della chiave derivata
- A2 = SHA256( A21, A22)
- A21 = attributo di 'creazione' keyring (dal file)
- A22 = 128 // bit più significativi
- A3 = dati criptati
- A31 = 8 // numero di byte casuali
- A32 = 24 // numero di byte di riempimento
- A4 = SHA256