• To anyone looking to acquire commercial radio programming software:

    Please do not make requests for copies of radio programming software which is sold (or was sold) by the manufacturer for any monetary value. All requests will be deleted and a forum infraction issued. Making a request such as this is attempting to engage in software piracy and this forum cannot be involved or associated with this activity. The same goes for any private transaction via Private Message. Even if you attempt to engage in this activity in PM's we will still enforce the forum rules. Your PM's are not private and the administration has the right to read them if there's a hint to criminal activity.

    If you are having trouble legally obtaining software please state so. We do not want any hurt feelings when your vague post is mistaken for a free request. It is YOUR responsibility to properly word your request.

    To obtain Motorola software see the Sticky in the Motorola forum.

    The various other vendors often permit their dealers to sell the software online (i.e., Kenwood). Please use Google or some other search engine to find a dealer that sells the software. Typically each series or individual radio requires its own software package. Often the Kenwood software is less than $100 so don't be a cheapskate; just purchase it.

    For M/A Com/Harris/GE, etc: there are two software packages that program all current and past radios. One package is for conventional programming and the other for trunked programming. The trunked package is in upwards of $2,500. The conventional package is more reasonable though is still several hundred dollars. The benefit is you do not need multiple versions for each radio (unlike Motorola).

    This is a large and very visible forum. We cannot jeopardize the ability to provide the RadioReference services by allowing this activity to occur. Please respect this.

Motorola IV Calculation

EI9BAB

Member
Joined
Sep 3, 2021
Messages
55
There was a previous discussion on this forum regarding the generation of IVs with Enhanced Privacy which fell into the usual trap of discussing how to decrypt encrypted comms and people looking for keys which is NOT what this question is about. The question is that somewhere in the standards or patents I seem to recall a specification for how to generate IVs (Initialisation Vectors) or "Message Indicators" as Motorola refers to them. I am not looking to decrypt anything but just looking to confirm how these publicly broadcast values are calculated in commercial Motorola radios from an educational perspective. IVs can be known or even predicatable and just need to be as unique as possible. Understandign where they come from should not jeapordise the associated encryption algorithm. Some systems just use a straightforward rolling counter and that is fine for many use cases but Motorola apparently use some form of Linear Forward Shift Register for this purpose.

I have seen this mechanism referenced in a couple of different places as using an LFSR with a specifically cited generator polynomial of x^32 + x^4 + x^2 + 1 and I have seen code projects that implement this. However, when looking at actual IVs that are calculated in the real-world, they do not seem to follow this pattern at all. In fact, visual examination of the sequence of bits does not appear to be consistent with the use of any form of LFSR, although I may be missing something obvious. However, the DMR encryption parameter patent does refer to using an LFSR without going into any detail about how that functions. (Although it does explicitly detail a different generator polynomial of X^ 4 + X + 1 for the CRC calculation.)

The only other factor might be a reference to concatanating the CRC and adding the FEC parity bits but I took that to be more in the context of CRC validation rather than IV generation. Also, you would still expect to see some of the input bits retained from this process and that doesn't seem to be the case.

So, without entertaining any discussions about encryption algorithms or decryption technologies, can anyone shed any light on how this IV cycling/LFSR actually works please?

For reference, here are some IVs I have observed in a single continuous transmission from a single radio as an example:

HEX:-
CB269A79
1D995981
8E52FE0E
D69C3148
4233F2D1
16E49C15
0740B9F7
98F35AE1
F92B20DA
ECD2A265
C0E59C8E
8AF72731
EFF53A15

BINARY:-
11001011001001101001101001111001
00011101100110010101100110000001
10001110010100101111111000001110
11010110100111000011000101001000
01000010001100111111001011010001
00010110111001001001110000010101
00000111010000001011100111110111
10011000111100110101101011100001
11111001001010110010000011011010
11101100110100101010001001100101
11000000111001011001110010001110
10001010111101110010011100110001
11101111111101010011101000010101

I have checked more than one installation and noted the same inconsistencies so I don't think I am capturing these incorrectly...

Many thanks
 

EI9BAB

Member
Joined
Sep 3, 2021
Messages
55
It's okay. I figured out the problem.

Firstly I was not properly transforming the polynomial into the proper set of bitwise XORs and ANDs in order to give the correct value for the new feedback bit. (So in the example above, CB269A79 should give 964D34F2 but sometimes I was getting this wrong.)

And, secondly, you have to iterate this process 32 times (for 32 bits) and not just once to generate the next IV/MI. Probably that is obvious to anyone who knows how to actually use an LFSR but I hadn't really looked at these before so there you go.

Anyway, I'm just posting the answer in case anyone was curious or it might even help someone else down the line. Here is the full worked example verifying the first of the observed results above.

Observed MIs in Hex:-
CB269A79
1D995981
8E52FE0E
D69C3148
....

Round #InputLFSR Output(Binary Output)
1CB269A79964D34F211001011001001101001101001111001
2964D34F22C9A69E410010110010011010011010011110010
32C9A69E45934D3C800101100100110100110100111100100
45934D3C8B269A79101011001001101001101001111001000
5B269A79164D34F2310110010011010011010011110010001
664D34F23C9A69E4701100100110100110100111100100011
7C9A69E47934D3C8E11001001101001101001111001000111
8934D3C8E269A791D10010011010011010011110010001110
9269A791D4D34F23B00100110100110100111100100011101
104D34F23B9A69E47601001101001101001111001000111011
119A69E47634D3C8EC10011010011010011110010001110110
1234D3C8EC69A791D900110100110100111100100011101100
1369A791D9D34F23B301101001101001111001000111011001
14D34F23B3A69E476611010011010011110010001110110011
15A69E47664D3C8ECC10100110100111100100011101100110
164D3C8ECC9A791D9901001101001111001000111011001100
179A791D9934F23B3210011010011110010001110110011001
1834F23B3269E4766500110100111100100011101100110010
1969E47665D3C8ECCA01101001111001000111011001100101
20D3C8ECCAA791D99511010011110010001110110011001010
21A791D9954F23B32B10100111100100011101100110010101
224F23B32B9E47665601001111001000111011001100101011
239E4766563C8ECCAC10011110010001110110011001010110
243C8ECCAC791D995900111100100011101100110010101100
25791D9959F23B32B301111001000111011001100101011001
26F23B32B3E476656611110010001110110011001010110011
27E4766566C8ECCACC11100100011101100110010101100110
28C8ECCACC91D9959811001000111011001100101011001100
2991D9959823B32B3010010001110110011001010110011000
3023B32B304766566000100011101100110010101100110000
31476656608ECCACC001000111011001100101011001100000
328ECCACC01D99598110001110110011001010110011000000
 

avkghost

Member
Joined
Sep 4, 2020
Messages
7
Hi EI9BAB.
Thanks for the information.

It's interesting.
I can confirm that nearby Motorola networks use the algorithm mentioned above. I tried on a lot of voice frames and got the same result as I got from the network.
 

MUTNAV

Active Member
Premium Subscriber
Joined
Jul 27, 2018
Messages
1,289
I didn't understand any of that...

But I do like how the groups of 1's and 0's form nice little (reverse) diagonal patterns.


:)


I've been told I'm easily amused.


Thanks
Joel
 
Top