Als de elementen in het keyringbestand van het ETS-project buiten ETS worden gebruikt en buiten Falcon SDK, worden de volgende decryptie-algoritmes ('pseudocode') gebruikt, afhankelijk van het element dat wordt toegepast:
IP Backbone
- BackboneKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Project.BackboneKey
Tunnelinginterfaces
- Wachtwoord = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.BusAccess( IA ).Password, A32 ))
- Authentication = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
IP-apparaten
- ManagementPassword = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.ManagementPassword, A32 )
- Authentication = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
Busdeelnemers
- ToolKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Device.ToolKey
Groepsadressen
- Key = AES128-CBC( A1, A2, A3, A4 )
- A3 = GroupAddress.Key
Details
- A1 = PBKDF2( A11, A12, A13, A14, A15 )
- A11 = HMAC-SHA256 // 'PRF'
- A12 = keyring password
- A13 = "1.keyring.ets.knx.org" // 'salt'
- A14 = 65536 // aantal herhalingen
- A15 = 128 // bit-lengte van de afgeleide sleutel
- A2 = SHA256( A21, A22)
- A21 = keyring 'aanmaak'attribuut (uit het bestand)
- A22 = 128 // belangrijkste bits
- A3 = versleutelde data
- A31 = 8 // aantal willekeurige bytes
- A32 = 24 // aantal padding bytes
- A4 = SHA256