Om elementen i ETS-projektets nyckelring ska användas utanför ETS och Falcon SDK så ska följande dekrypteringsalgoritmer ('pseudokod') beroende på element tillämpas:
IP backbone
- BackboneKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Project.BackboneKey
Gränssnitt för tunnlade
- Lösenord = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.BusAccess( IA ).Password, A32 ))
- Autentisering = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
IP-enhet
- ManagementPassword = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.ManagementPassword, A32 )
- Autentisering = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
Apparater
- Verktygsnyckel = AES128-CBC( A1, A2, A3, A4 )
- A3 = Device.ToolKey
Gruppadresser
- Nyckel = AES128-CBC( A1, A2, A3, A4 )
- A3 = GroupAddress.Key
Detaljer
- A1 = PBKDF2( A11, A12, A13, A14, A15 )
- A11 = HMAC-SHA256 // 'PRF'
- A12 = nyckelringslösenord
- A13 = "1.keyring.ets.knx.org" // 'salt'
- A14 = 65536 // antal iterationer
- A15 = 128 // bitlängden hos den härledda nyckeln
- A2 = SHA256( A21, A22)
- A21 = nyckelringattribut ”skapa” (från filen)
- A22 = 128 // mest betydelsefulla bitar
- A3 = krypterad data
- A31 = 8 // number of random data
- A32 = 24 // antal utfyllnads-bytes
- A4 = SHA256