The time-slot refers to the TDMA aspect of GSM. Every frequency channel of 200KHz is divided into 8 timeslots. A single channel is therefore identified by its ARFCN (the frequency) and the time-slot (ranging from 0-7). The assigned time-slot does not change during frequency hopping!
I believe the index here refers to an off-set in the hopping sequence. Think of it this way, your phone receives a list of frequencies [f0,f1,f2,f3] and a HSN number which leads to a permutation of the frequency list (e.g. [f2,f1,f0,f3]), your phone will then `hop' accordingly between these frequencies on the assigned time-slot. Since the HSN and frequency list assigned are likely the same for every phone connected to this mast, they will all get the same sequence. To prevent a collision a mast also assigns the index (officially called MAIO I believe), which gives you the starting point in the sequence. So for example: Phone 1 receives MA:[f0,f1,f2,f3], HSN:42, TS:1, MAIO:0 --> [f2,f1,f0,f3] Phone 2 receives MA:[f0,f1,f2,f3], HSN:42, TS:1, MAIO:1 --> [f1,f0,f3,f2] Phone 3 receives MA:[f0,f1,f2,f3], HSN:42, TS:1, MAIO:3 --> [f3,f2,f1,f0] Phone 4 receives MA:[f0,f1,f2,f3], HSN:42, TS:4, MAIO:1 --> [f1,f0,f3,f2] *different TS so no collision* As for your other question; the index will be encrypted if the immediate assignment message is encrypted. Either a message is encrypted as a whole, or not, it can not be encrypted partially. Regards, Fabian On Mon, Mar 22, 2010 at 2:43 PM, Ronald <[email protected]> wrote: > Hi, > >> To know where to listen you need some parameters that are in the >> 'assignment' command : >> - The time slot (doesn't change during hopping) >> - The list of channels used by that cell and the subset used for hopping >> - Hopping Sequence Number (HSN) >> - The 'index' (integer between 0 and N-1) >> >> Some of theses are constant for a given cell (can't really be any other way >> if you want to avoid collisions, and observation on real network confirm >> this) : >> - HSN >> - subset of the list of channels used for hopping (usually all but C0) >> so if you place a call in that cell yourself, you can get theses easily >> before hand. The only remaining unknowns are the timeslot and the index. > > Just a question regarding the unknown timeslot and index. The timeslot > identifies which gsm call your listening to, and the index is needed > to know which plain-text is in the package. Or am I mistaken. The > index by itself is not encrypted right or is it? > > Best, Ronald > > 2010/1/5 Sylvain Munaut <[email protected]>: >> >> >> >> First some little reminders that should shed some light : >> >> The first channel is established something like this : >> * Paging request (BTS -> MS on PCH) >> * Req channel (MS -> BTS on RACH) >> * Assignement (BTS -> MS on CCCH) >> * Paging response (MS -> BTS on the assigned channel) >> * Cipher mode command (BTS -> MS) >> * Cipher mode complete (MS -> BTS [ciphered!]) >> * .... >> >> The first assignement command establish the first dedicated channel. >> * This _can_ be the TCH that will be used for the call (Very Early >> assignement). >> * Or this can be a SDCCH >> * This can already use hopping, but since the assignement is in clear, you >> have everything you need to 'follow' it. >> >> If a SDCCH was assigned and the phone needs a TCH (so for a voice call), >> then a new different assignement will be done and this one will take place >> on the ciphered channel so you can't see it ... >> >> >>> >>> > the computational complexity does not increase because of that. >>> > what happens is that you break the cipher with the few frames >>> > that are sent on the original SDCCH after encryption is switched >>> > on and before a new hopping sequence is negotiated. then you know >>> > which frames to decrypt with the now known key from the wideband >>> > capture. >>> >>> Hum, this contradicts with what I've heard from other people, but >>> I didn't read this part of specs by myself and can't judge. >> >> See above. >> >> yes you could break encryption with just the first few frames on the >> original SDCCH (which is known) but that _will_ need more computational >> complexity because you have less plain text -> less chance of finding the >> key. >> >> >>> > 5) You could try to 'brute force' the hopping parameters by just looking >>> > at >>> > the enery in each timeslot at given time. For a given cell, only the >>> > 'timeslot' & 'index' changes. But that would need FPGA code changes to >>> > just >>> > get the energy back and not the samples themselves. >>> >>> hum. I thought that hopping sequence is generated using encryption key >>> as a parameter. Am I wrong and sequence is the same, and only index in >>> the sequence is changed? >> >> The hopping has nothing to do with ciphering. It just happens that the >> second 'assignement' command that carries what you need to generate the >> sequence for the TCH is transfered ciphered. >> >> To know where to listen you need some parameters that are in the >> 'assignment' command : >> - The time slot (doesn't change during hopping) >> - The list of channels used by that cell and the subset used for hopping >> - Hopping Sequence Number (HSN) >> - The 'index' (integer between 0 and N-1) >> >> Some of theses are constant for a given cell (can't really be any other way >> if you want to avoid collisions, and observation on real network confirm >> this) : >> - HSN >> - subset of the list of channels used for hopping (usually all but C0) >> so if you place a call in that cell yourself, you can get theses easily >> before hand. The only remaining unknowns are the timeslot and the index. >> >>> >>> Also this will work only if at every point of time there is a single >>> active phone >> >> No, you can eliminate channels that had energy before hand. So you need a >> single 'new' phone at a time. But granted it's a little far fetched and >> would not be the best method for the usrp because the LO would take too much >> time to settle anyway. But if you can get the whole spectrum, you can >> bruteforce it to try and get more plaintext (the SI5/SI6 messages). This >> decouples the problem of getting plain text from getting the hopping >> sequence. >> >> >> Sylvain >> >> >> >> _______________________________________________ >> A51 mailing list >> [email protected] >> http://lists.lists.reflextor.com/cgi-bin/mailman/listinfo/a51 >> >> > _______________________________________________ > A51 mailing list > [email protected] > http://lists.lists.reflextor.com/cgi-bin/mailman/listinfo/a51 > _______________________________________________ A51 mailing list [email protected] http://lists.lists.reflextor.com/cgi-bin/mailman/listinfo/a51
