X_1 = AES128(49B819000015E2620400000000000000, 3DDA31AD44767AE3CE56DCE2B3CE2ABB) X_1 =
dc8d685f968e795b23f4370b3091f33f
X_1A = XOR(X_1, B_1)
X_1A = XOR(dc8d685f968e795b23f4370b3091f33f, 000A0DFFDA0362040000101200000000) X_1A =
dc8765a04c8d1b5f23f427193091f33f
X_2 = AES128(X1A, Key)
X_2 = AES128(dc8765a04c8d1b5f23f427193091f33f, 3DDA31AD44767AE3CE56DCE2B3CE2ABB)
X_2 = 231be2ff54ca62fb38d32eaaaf1b447d
S_0 = AES128(A0, Key)
S_0 = AES128(01B819000015E2620400000000000000, 3DDA31AD44767AE3CE56DCE2B3CE2ABB) S_0 =
9ae54e3e95de9f91a0c279537bc25b00
T_0 = XOR(X_2, S_0)
T_0 = XOR(231be2ff54ca62fb38d32eaaaf1b447d, 9ae54e3e95de9f91a0c279537bc25b00) T_0 =
b9feacc1c114fd6a981157f9d4d91f7d
The calculated signature is formed by the first four bytes of T_0, i.e. it is B9 FE AC C1.
C.3.3 Data telegram with 2 byte optional data
For this example, we consider the following telegram payload received from a SR-SBP2801-BLE-E
with the source address E2801000019B8 and security key 3DDA31AD44767AE3CE56DCE2B3CE2ABB:
0E FF DA 03 63 04 00 00 11 12 34 52 E0 51 16
The last four bytes of this payload (52 E0 51 16) are the sender-provided signature which has to be
authenticated. The variable input parameters are therefore the following:
Parameter
Source Address
Input Data
Input Length
Sequence Counter
Security Key
In this example
B819000015E2 (little endian representation of E2801000019B8)
0EFFDA0363040000111234
0x000B
62040000
3DDA31AD44767AE3CE56DCE2B3CE2ABB
Based on variable input data and constant internal algorithm parameters, we can now de- rive the following
variable internal parameters:
Parameter
Nonce
A0
B0
B1
In this example
B819000015E263040000000000
01B819000015E2630400000000000000
49B819000015E2630400000000000000
000B0EFFDA0363040000111234000000
X_2 = AES128(ab55ccb430bffedaeb73640e4334cc64, 3DDA31AD44767AE3CE56DCE2B3CE2ABB)
X_2 = d33e96d7a105c4e8543207f9e75e6cfe
S_0 = AES128(A0, Key)
S_0 = AES128(01B819000015E2630400000000000000, 3DDA31AD44767AE3CE56DCE2B3CE2ABB)
S_0 = 81dec7c16915c6647d92b0668f65e9c9
The execution sequence would then be as follows:
X_1 = AES128(B0, Key)
X_1 = AES128(49B819000015E2630400000000000000, 3DDA31AD44767AE3CE56DCE2B3CE2ABB)
X_1 = ab5ec24beabc9ddeeb73751c7734cc64
X_1A = XOR(X_1, B_1)
X_1A = XOR(ab5ec24beabc9ddeeb73751c7734cc64, 000B0EFFDA0363040000111234000000) X_1A =
ab55ccb430bffedaeb73640e4334cc64
X_2 = AES128(X1A, Key)
T_0 = XOR(X_2, S_0)
T_0 = XOR(d33e96d7a105c4e8543207f9e75e6cfe, 81dec7c16915c6647d92b0668f65e9c9) T_0 =
52e05116c810028c29a0b79f683b8537
The calculated signature is formed by the first four bytes of T_0, i.e. it is 52 E5 11 16.
C.3.4 Data telegram with 4 byte optional data
For this example, we consider the following telegram payload received from a SR-SBP2801-BLE-E
with the source address E2801000019B8 and security key 3DDA31AD44767AE3CE56DCE2B3CE2ABB:
10 FF DA 03 6A 04 00 00 10 12 34 56 78 2C 9E 10 95
The last four bytes of this payload (2C 9E 10 95) are the sender-provided signature which has to be
authenticated. The variable input parameters are therefore the following:
Parameter
Nonce
A0
B0
B1
In this example
B819000015E26A040000000000
01B819000015E26A0400000000000000
49B819000015E26A0400000000000000
000D10FFDA036A040000101234567800
Parameter
Source Address
Input Data
Input Length
Sequence Counter
Security Key
In this example
B819000015E2 (little endian representation of E2801000019B8)
10FFDA036A0400001012345678
0x000D
6A040000
3DDA31AD44767AE3CE56DCE2B3CE2ABB
Based on variable input data and constant internal algorithm parameters, we can now de- rive the following
variable internal parameters:
The execution sequence would then be as follows:
X_1 = AES128(B0, Key)
X_1 = AES128(49B819000015E26A0400000000000000, 3DDA31AD44767AE3CE56DCE2B3CE2ABB) X_1 =
434fa5855b8a8a8ae99bf1cb114a51b7
X_1A = XOR(X_1, B_1)
X_1A = XOR(434fa5855b8a8a8ae99bf1cb114a51b7, 000D10FFDA036A040000101234567800)
X_1A = 4342b57a8189e08ee99be1d9251c29b7
X_2 = AES128(X1A, Key)
X_2 = AES128(4344b57a8189e08ee99be1d9251c29b7, 3DDA31AD44767AE3CE56DCE2B3CE2ABB)
X_2 = 12c78b85a4ecb6f34daff7651db8e386
S_0 = AES128(A0, Key)
S_0 = AES128(01B819000015E2630400000000000000, 3DDA31AD44767AE3CE56DCE2B3CE2ABB) S_0 =
3e599b103f33447e6b46eec4a042d0bc
T_0 = XOR(X_2, S_0)
T_0 = XOR(12c78b85a4ecb6f34daff7651db8e386, 3e599b103f33447e6b46eec4a042d0bc) T_0 =
2c9e10959bdff28d26e919a1bdfa333a
The calculated signature is formed by the first four bytes of T_0, i.e. it is 2C 9E 10 95.