Si les éléments contenus dans le jeu de clés de projet ETS doivent être utilisés en dehors d'ETS et en dehors de Falcon SDK, les algorithmes de codage suivants ('pseudo code') seront appliqués en fonction de l'élément :
IP Backbone
- BackboneKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Project.BackboneKey
Interfaces de tunnelisation
- Mot de passe = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.BusAccess( IA ). Mot de passe , A32 ))
- Authentification = AES128-CBC( A1, A2, A3, A4 )
- A3 = RandomBytes( A31 ) + PKCS#7( Device.AuthenticationCode, A32 )
IP Devices
- 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 )
Appareils
- ToolKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Device.ToolKey
Adresses du groupe
- Clé = AES128-CBC( A1, A2, A3, A4 )
- A3 = GroupAddress.Key
Détails
- A1 = PBKDF2( A11, A12, A13, A14, A15 )
- A11 = HMAC-SHA256 // 'PRF'
- A12 = Mot de passe jeu de clés
- A13 = "1.keyring.ets.knx.org" // 'salt'
- A14 = 65536 // nombre d'itérations
- A15 = 128 // longueur de bits du code dérivé
- A2 = SHA256( A21, A22)
- A21 = attribut de création du jeu de clés (depuis le fichier)
- A22 = 128 // bits les plus significatifs
- A3 = données cryptées
- A31 = 8 // nombre d'octets aléatoires
- A32 = 24 // nombre d'octets de padding
- A4 = SHA256