만약 ETS 프로젝트 키링(keyring) 파일에 포함된 요소를 ETS 외부 및 Falcon SDK 외부에서 사용해야 하는 경우, 요소에 따라 다음과 같은 복호화 알고리즘('유사 부호(pseudo code)') 을 적용해야 합니다:
IP 백본
- 백본 키(BackboneKey) = AES128-CBC( A1, A2, A3, A4 )
- A3 = Project.BackboneKey
터널링 인터페이스
- 비밀번호(Password) = 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
그룹 주소(Group Address)
- 키(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 // number of iterations (반복 횟수)
- A15 = 128 // bit-length of the derived key (파생된 키의 비트 길이)
- A2 = SHA256( A21, A22)
- A21 = keyring 'creation' attribute (from the file) (파일의) 키링 '생성' 특성
- A22 = 128 // most significant bits (중요 비트)
- A3 = encrypted data
- A31 = 8 // number of random bytes (랜덤 바이트의 숫자)
- A32 = 24 // number of padding bytes (패딩 바이트의 숫자)
- A4 = SHA256