ETSプロジェクトのキーリングファイルに含まれる要素がETS外とFalcon SDK外で使用される場合、要素に応じて、以下の復号アルゴリズム('擬似コード') が適用されます。
IPバックボーン
- BackboneKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Project.BackboneKey
トンネリングインターフェイス
- パスワード = 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デバイス
- 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 )
デバイス
- ToolKey = AES128-CBC( A1, A2, A3, A4 )
- A3 = Device.ToolKey
グループアドレス
- Key = AES128-CBC( A1, A2, A3, A4 )
- A3 = GroupAddress.Key
詳細
- A1 = PBKDF2( A11, A12, A13, A14, A15 )
- A11 = HMAC-SHA256 // 'PRF'
- A12 = keyring password
- A13 = "1.keyring.ets.knx.org" // 'salt'
- A14 = 65536 // 繰り返しの数
- A15 = 128 // ビット長 (派生キー)
- A2 = SHA256( A21, A22)
- A21 = keyring 'creation' attribute (ファイルから)
- A22 = 128 // 最上位ビット
- A3 = 暗号化されたデータ
- A31 = 8 // ランダムバイト数
- A32 = 24 // パディングバイト数
- A4 = SHA256