Newsgroup: it.tlc.cellulari
Titolo: Algoritmo COMP128

Salve,
qualcuno per caso sa se TIM e/o OMNITEL usano l'algoritmo COMP128
nella procedura di autenticazione dell'utente?
Ho letto che l'algoritmo non e' molto sicuro e consente di fatto 
la clonazione della SIM dell'utente.
Thanx
--
Posted from 
mailmo.ascom.it
 [151.99.193.50]
via Mailgate.ORG Server - 
http://www.mailgate.org


               (Remove is not in your replies)
 
As easy as 3.14159265358979323846264338327950288419716
 




originale e "sondandola" con milioni di RAND ed analizzando milioni di SRES.
Auguri e figli maschi, tenendo conto che COMP128 è solo un algoritmo,
che se mi ricordo bene è composto da quattro generatori pseudorandom,
il cui quarto fa da clock agli altri 3 la cui uscita con una serie di
formula da l'uscita reale. Questo è l'algoritmo forse, ma poi i
Polinomi sono a libera scelta.
Saluti
Isi.
---- La probabilità di perire colpiti da una scheggia di un satellite
non è di una su 980 milioni, è sfiga!!.

comunicazioni e' crittografata (appunto da A5/Kc).
E l'arrivo di SMS incomprensibili non può essere dovuto al fatto che durante
la ricezione, a causa del segnale che salta, il cell si riallaccia alla rete
e cambia il kc?

e NON puo' essere estratta per alcun motivo.
Non esistono lettori di Sim?
Ma all'estero non ci sono gestori che ammettono SIM "gemelle"?

 
Appendice al post di Rosoni...
al fine di chiarire meglio il "tuo" processo evidenzio alcune acronimi
SIM (Subscriber Identity Module)
AuC(Authentication Center)
MSC(Mobile Switching Center)
VLR(Visitor Location Register)
MS(Mobile Station)
inoltre i sottosistemi principali del Network GSM so 4
1 Mobile Station = Mobile Equipment + Subscriber Identity Module
(MS=ME+SIM) in pratica cellulare equipaggiato
2 Base Station Sub-System=Base Station Controller+Base Transceiver
Station (BSS=BSC+BTS) gli impianti trasmissivi che gestiscono le celle
sul canale radio e centrali di commutazione
3 Network Sub-System=Mobile Switching Center+Home Location
Register+Visitor Location Register+Authentication Center+Equipment
Identity Register (NSS=MSC+HLR+VLR+AUC+EIR) è il sistema che governa
lefunzioni di commutazione con gli altri abbonati o altre reti
interconnesse utilizzando il database distribuito sui 4 nodi
4 Network Management Center=Operation and Maintenance Center (NMC=OMC)
è il cuore della gestione centrale : accede remotamente a gli altri 3
sottosistemi e raccoglie tutti i dati di traffico e addebito (da qui
si conosce anche la posizione del sottosistema MS all'interno
dell'area coperta)
Nota a margine
IMSI non va confuso con IMEI
IMEI=International Mobile Equipment Identity 
IMEI=TAC+FAC+SNR+SP  
TAC=Type Approval Code (6 cifre) GSM
FAC=Final Assembly Code (2 cifre) Constructor
SNR=Serial Number (6 cifre)
SP=Supplement (1 cifra)
IMSI=International Mobile Subscriber Identity 
IMSI=MCC+MNC+MSIN
MCC = Mobile Country Code (3 cifre) Italy 39
MNC = Mobile Network Code (2 cifre)  01=TIM 10=OPI
MSIN = Mobile Station Identification Number (13 cifre)
...spero di non aver causato traumi mentali !
Ciao.


               (Remove is not in your replies)
 
I gatti servono a dimostrare che in Natura non tutto ha uno scopo. (Garfield)
 


               (Remove is not in your replies)
 
Due rette parallele si incontrano all'infinito, quando ormai non gliene frega piu` niente.
 

Un caloroso grazie a tutti voi per aver trattato l'argomento in modo
semplice e efficace.
pi-chan!
enr...@nospam.geocities.com

e cambia il kc?
Lo escluderei .. ci sono dei controlli di errore a redundancy,
definiti credo nel MAC.
         Ciao
                         Tommy
          (togliere KEEPAWAY dall'indirizzo)

...penso di no....ma cmq non attive "contemporaneamente"....
Non e' questione di esteri o Italiani .. vale comunque .. la rete GSM
e' globale ... non e' possibile che ci siano due SIM gemelle .. una
qui e una in Indonesia.


Spero di non essere stato troppo oscuro o vago.
Al contrario ! Certi post ci voglio, di tanto in tanto.
Comunque quelli su i pro e contro dell'8700! :-))
Ciao!
Simone


...bravo però non dimenticare che per noi in Italia la rete GSM ha
solo una banda di 9 Mhz in up link e down link rispetto ai 35 della
Extended GSM a causa dell'occupazione di rete ETACS nella banda....
(880-915 Up e 925-960 down)
Ciao.


               (Remove is not in your replies)
 
Solve the problems of the world: Vote anarchist.
 


               (Remove is not in your replies)
 
Se un gatto cammina gatton gattoni... un coyote come cammina?
 


 */
void A3A8(/* in */ Byte rand[16], /* in */ Byte key[16],
	/* out */ Byte simoutput[12]);
/* The compression tables. */
static const Byte table_0[512] = {
        102,177,186,162,  2,156,112, 75, 55, 25,  8,
12,251,193,246,188,
        109,213,151, 53, 42,
79,191,115,233,242,164,223,209,148,108,161,
        252, 37,244, 47, 64,211,  6,237,185,160,139,113, 76,138, 59,
70,
         67, 26, 13,157, 63,179,221, 30,214, 36,166,
69,152,124,207,116,
        247,194, 41, 84, 71,  1, 49, 14, 95, 35,169, 21, 96,
78,215,225,
        182,243, 28, 92,201,118,  4, 74,248,128, 17, 11,146,132,245,
48,
        149, 90,120, 39, 87,230,106,232,175,
19,126,190,202,141,137,176,
        250, 27,101, 40,219,227, 58, 20, 51,178, 98,216,140, 22,
32,121,
         61,103,203, 72, 29,110, 85,212,180,204,150,183, 15,
66,172,196,
         56,197,158,  0,100, 45,153,  7,144,222,163,167,
60,135,210,231,
        174,165, 38,249,224, 34,220,229,217,208,241,
68,206,189,125,255,
        239, 54,168, 89,123,122, 73,145,117,234,143, 99,129,200,192,
82,
        104,170,136,235, 93, 81,205,173,236, 94,105, 52, 46,228,198,
5,
         57,254, 97,155,142,133,199,171,187, 50,
65,181,127,107,147,226,
        184,218,131, 33, 77, 86, 31, 44, 88, 62,238, 18, 24, 43,154,
23,
         80,159,134,111,  9,114,  3, 91, 16,130, 83,
10,195,240,253,119,
        177,102,162,186,156,  2, 75,112, 25, 55, 12,
8,193,251,188,246,
        213,109, 53,151, 79,
42,115,191,242,233,223,164,148,209,161,108,
         37,252, 47,244,211, 64,237,  6,160,185,113,139,138, 76, 70,
59,
         26, 67,157, 13,179, 63, 30,221, 36,214,
69,166,124,152,116,207,
        194,247, 84, 41,  1, 71, 14, 49, 35, 95, 21,169, 78,
96,225,215,
        243,182, 92, 28,118,201, 74,  4,128,248, 11, 17,132,146,
48,245,
         90,149, 39,120,230, 87,232,106,
19,175,190,126,141,202,176,137,
         27,250, 40,101,227,219, 20, 58,178, 51,216, 98, 22,140,121,
32,
        103, 61, 72,203,110, 29,212, 85,204,180,183,150, 66,
15,196,172,
        197, 56,  0,158, 45,100,  7,153,222,144,167,163,135,
60,231,210,
        165,174,249, 38, 34,224,229,220,208,217,
68,241,189,206,255,125,
         54,239, 89,168,122,123,145, 73,234,117, 99,143,200,129,
82,192,
        170,104,235,136, 81, 93,173,205, 94,236, 52,105,228, 46,
5,198,
        254, 57,155, 97,133,142,171,199, 50,187,181,
65,107,127,226,147,
        218,184, 33,131, 86, 77, 44, 31, 62, 88, 18,238, 43, 24,
23,154,
        159, 80,111,134,114,  9, 91,  3,130, 16, 10,
83,240,195,119,253
    }, table_1[256] = {
         19, 11, 80,114, 43,  1, 69, 94, 39, 18,127,117, 97,  3, 85,
43,
         27,124, 70, 83, 47, 71, 63, 10, 47, 89, 79,  4, 14, 59, 11,
5,
         35,107,103, 68, 21, 86, 36, 91, 85,126, 32, 50,109, 94,120,
6,
         53, 79, 28, 45, 99, 95, 41, 34, 88, 68, 93, 55,110,125,105,
20,
         90, 80, 76, 96, 23, 60, 89, 64,121, 56, 14, 74,101,  8, 19,
78,
         76, 66,104, 46,111, 50, 32,  3, 39,  0, 58, 25, 92, 22, 18,
51,
         57, 65,119,116, 22,109,  7, 86, 59, 93, 62,110, 78, 99, 77,
67,
         12,113, 87, 98,102,  5, 88, 33, 38, 56, 23,  8, 75, 45, 13,
75,
         95, 63, 28, 49,123,120, 20,112, 44, 30, 15, 98,106,  2,103,
29,
         82,107, 42,124, 24, 30, 41, 16,108,100,117, 40, 73, 40,
7,114,
         82,115, 36,112, 12,102,100, 84, 92, 48, 72, 97,  9, 54, 55,
74,
        113,123, 17, 26, 53, 58,  4,  9, 69,122, 21,118, 42, 60, 27,
73,
        118,125, 34, 15, 65,115, 84, 64, 62, 81, 70,  1, 24,111,121,
83,
        104, 81, 49,127, 48,105, 31, 10,  6, 91, 87, 37, 16,
54,116,126,
         31, 38, 13,  0, 72,106, 77, 61, 26, 67, 46, 29, 96, 37, 61,
52,
        101, 17, 44,108, 71, 52, 66, 57, 33, 51, 25, 90,  2,119,122,
35
    }, table_2[128] = {
         52, 50, 44,  6, 21, 49, 41, 59, 39, 51, 25, 32, 51, 47, 52,
43,
         37,  4, 40, 34, 61, 12, 28,  4, 58, 23,  8, 15, 12, 22,  9,
18,
         55, 10, 33, 35, 50,  1, 43,  3, 57, 13, 62, 14,  7, 42, 44,
59,
         62, 57, 27,  6,  8, 31, 26, 54, 41, 22, 45, 20, 39,  3, 16,
56,
         48,  2, 21, 28, 36, 42, 60, 33, 34, 18,  0, 11, 24, 10, 17,
61,
         29, 14, 45, 26, 55, 46, 11, 17, 54, 46,  9, 24, 30, 60, 32,
0,
         20, 38,  2, 30, 58, 35,  1, 16, 56, 40, 23, 48, 13, 19, 19,
27,
         31, 53, 47, 38, 63, 15, 49,  5, 37, 53, 25, 36, 63, 29,  5,
7
    }, table_3[64] = {
          1,  5, 29,  6, 25,  1, 18, 23, 17, 19,  0,  9, 24, 25,  6,
31,
         28, 20, 24, 30,  4, 27,  3, 13, 15, 16, 14, 18,  4,  3,  8,
9,
         20,  0, 12, 26, 21,  8, 28,  2, 29,  2, 15,  7, 11, 22, 14,
10,
         17, 21, 12, 30, 26, 27, 16, 31, 11,  7, 13, 23, 10,  5, 22,
19
    }, table_4[32] = {
         15, 12, 10,  4,  1, 14, 11,  7,  5,  0, 14,  7,  1,  2, 13,
8,
         10,  3,  4,  9,  6,  0,  3,  2,  5,  6,  8,  9, 11, 13, 15,
12
    }, *table[5] = { table_0, table_1, table_2, table_3, table_4 };
/*
 * This code derived from a leaked document from the GSM standards.
 * Some missing pieces were filled in by reverse-engineering a working
SIM.
 * We have verified that this is the correct COMP128 algorithm.
 * 
 * The first page of the document identifies it as
 * 	_Technical Information: GSM System Security Study_.
 * 	10-1617-01, 10th June 1988.
 * The bottom of the title page is marked
 * 	Racal Research Ltd.
 * 	Worton Drive, Worton Grange Industrial Estate,
 * 	Reading, Berks. RG2 0SB, England.
 * 	Telephone: Reading (0734) 868601   Telex: 847152
 * The relevant bits are in Part I, Section 20 (pages 66--67).  Enjoy!
 * 
 * Note: There are three typos in the spec (discovered by
 * reverse-engineering).
 * First, "z = (2 * x[n] + x[n]) mod 2^(9-j)" should clearly read
 * "z = (2 * x[m] + x[n]) mod 2^(9-j)".
 * Second, the "k" loop in the "Form bits from bytes" section is
severely
 * botched: the k index should run only from 0 to 3, and clearly the
range
 * on "the (8-k)th bit of byte j" is also off (should be 0..7, not
1..8,
 * to be consistent with the subsequent section).
 * Third, SRES is taken from the first 8 nibbles of x[], not the last
8 as
 * claimed in the document.  (And the document doesn't specify how Kc
is
 * derived, but that was also easily discovered with reverse
engineering.)
 * All of these typos have been corrected in the following code.
 */
void A3A8(/* in */ Byte rand[16], /* in */ Byte key[16],
	/* out */ Byte simoutput[12])
{
	Byte x[32], bit[128];
	int i, j, k, l, m, n, y, z, next_bit;
	/* ( Load RAND into last 16 bytes of input ) */
	for (i=16; i<32; i++)
		x[i] = rand[i-16];
	/* ( Loop eight times ) */
	for (i=1; i<9; i++) {
		/* ( Load key into first 16 bytes of input ) */
		for (j=0; j<16; j++)
			x[j] = key[j];
		/* ( Perform substitutions ) */
		for (j=0; j<5; j++)
			for (k=0; k<(1<<j); k++)
				for (l=0; l<(1<<(4-j)); l++) {
					m = l + k*(1<<(5-j));
					n = m + (1<<(4-j));
					y = (x[m]+2*x[n]) %
(1<<(9-j));
					z = (2*x[m]+x[n]) %
(1<<(9-j));
					x[m] = table[j][y];
					x[n] = table[j][z];
				}
		/* ( Form bits from bytes ) */
		for (j=0; j<32; j++)
			for (k=0; k<4; k++)
				bit[4*j+k] = (x[j]>>(3-k)) & 1;
		/* ( Permutation but not on the last loop ) */
		if (i < 8)
			for (j=0; j<16; j++) {
				x[j+16] = 0;
				for (k=0; k<8; k++) {
					next_bit = ((8*j + k)*17) %
128;
					x[j+16] |= bit[next_bit] <<
(7-k);
				}
			}
	}
	/*
	 * ( At this stage the vector x[] consists of 32 nibbles.
	 *   The first 8 of these are taken as the output SRES. )
	 */
	/* The remainder of the code is not given explicitly in the
	 * standard, but was derived by reverse-engineering.
	 */
	for (i=0; i<4; i++)
		simoutput[i] = (x[2*i]<<4) | x[2*i+1];
	for (i=0; i<6; i++)
		simoutput[4+i] = (x[2*i+18]<<6) | (x[2*i+18+1]<<2)
				| (x[2*i+18+2]>>2);
	simoutput[4+6] = (x[2*6+18]<<6) | (x[2*6+18+1]<<2);
	simoutput[4+7] = 0;
}
#ifdef TEST
int hextoint(char x)
{
	x = toupper(x);
	if (x >= 'A' && x <= 'F')
		return x-'A'+10;
	else if (x >= '0' && x <= '9')
		return x-'0';
	fprintf(stderr, "bad input.\n");
	exit(1);
}
int main(int argc, char **argv)
{
	Byte rand[16], key [16], simoutput[12];
	int i;
	if (argc != 3 || strlen(argv[1]) != 34 || strlen(argv[2]) !=
34
			|| strncmp(argv[1], "0x", 2) != 0
			|| strncmp(argv[2], "0x", 2) != 0) {
		fprintf(stderr, "Usage: %s 0x<key> 0x<rand>\n",
argv[0]);
		exit(1);
	}
	for (i=0; i<16; i++)
		key[i] = (hextoint(argv[1][2*i+2])<<4)
			| hextoint(argv[1][2*i+3]);
	for (i=0; i<16; i++)
		rand[i] = (hextoint(argv[2][2*i+2])<<4)
			 | hextoint(argv[2][2*i+3]);
	A3A8(key, rand, simoutput);
	printf("simoutput: ");
	for (i=0; i<12; i++)
		printf("%02X", simoutput[i]);
	printf("\n");
	return 0;
}
#endif

e cambia il kc?
No, non credo proprio. Anche perche' tutto il sistema GSM
e' stato sviluppato sotto ipotesi di collegamenti non impeccabili...
st.

...penso di no....ma cmq non attive "contemporaneamente"....
Diciamo meglio. Di SIM "gemelle" non ne esistono e MAI esisteranno.
Certo, il gestore puo' fare quello che vuole, ma di SIM gemelle
non ne esistono. 
Sim

tubetto, una volta estratto dallo stesso) "interpretare" il contenuto della
...
Guarda che se il tubetto e' di quelli di plastica puoi girarlo,
premere lentamente avendo l'accortezza di fare uscire solo aria e poi
aspirare il dentifricio che e' uscito!
:-)))))))))))))))))))
nulla e' impossibile :-)
ciao
d.

 */
E che cappero ci voleva tanto ad inviare due righe di C.
Comunque GRAZIE.
Saluti
Isi.


               (Remove is not in your replies)
 
Jury: A group chosen to decide who has the best lawyer.
 

(incluso di linker) per la mia SIM Omnitel? 
...bhè fortunato che hai la TUA SIM Omnitel ....
perchè se nò dovevi "rifarti" tutto il binario da 7 ad 8
bit.......(prima di iniziare a compilare..ehehehe...)
...a te !!


(880-915 Up e 925-960 down)
E allora?
         Ciao


riesci a "percepire" i bit che viaggiano su di esso.
Ti sei convertito ai paragoni :-))


aspirare il dentifricio che e' uscito!
Adesso ci provo :-)


(incluso di linker) per la mia SIM Omnitel? 
Ma solo con una sim di fase 3 ... quelle che ha pronte Wind, tra
l'altro permetteranno un semplicissimo SW di gestione di posta
elettronica epr mandare e ricevere e-ail direttamente dal cell. :-)
La mia di prova per beta tester non aveva ancora implementata questa
funzione e non so ancora come saranno i dettagli.


caso che entrambi sono "International".
 hehehe


rete SS7
Non si chiamava CCS #7? Oppure stiamo parlando di cose diverse?
Bye,
  Dario
ICQ: 
http://wwp.mirabilis.com/11871099
Remove anti-spam from e-mail address

Non si chiamava CCS #7? Oppure stiamo parlando di cose diverse?
Parliamo della stessa cosa.
Saluti
Isi.
---
Newsgroup Posting is like CDMA.

Newsgroup Posting is like CDMA.
Allora continuo! ;-) Non č che ti riferisci a CSMA/CD?


l'altro permetteranno un semplicissimo SW di gestione di posta
....mmmmm mi sembra che OPI abbia già una gestione SMS ad 8 bit anche
adesso per le ricaricabili......(ricordi il ring tome receive from
SMSC ?????)
bravOO!!! ...ho visto che hai fatto una "bella cosa" e allora ....
http://users.iol.it/luigi.girardi/mailing.html
 
for SIM !!!!
......
anch'io voglio "esprimermi" un pò come te.....
"se fossi foco....brucerei, se fossi acqua ....bagnerei, se fossi
andato....Ciao!"

andato....Ciao!"
Questa parafrasi di Ceccho Angiolieri e' proprio carina! :-))
(I saccenti devono avere una cultura che copre tutte le branche dello
scibile umano! :-)


Allora continuo! ;-) Non č che ti riferisci a CSMA/CD?
??? non era CDMA/CA dell'ethernet ???? ( qui ho forse ho detto la
cazzata, non tocco piů un progetto ethernet da almeno otto anni ).
Comunque:
CDMA : Code Division Multiple Access.
L'analogia con l'NG č che tu č il tuo corrispondente buttate tutto in
un calderone  dove tutti parlano contemporaneamente senza regole di
tempo o frequenze.
Ma tutti e due conoscono un codice da seguire per ricostruire il
segnale. Come le briciole nel bosco. Come le sale della Borsa anni
addietro.
Praticamente la cosa che mi affascina č anche dal CAOS si possono
estrarre cose buone, ed in questo l'analogia con l'NG mi č sembrata
perfetta, anche qui nel marasma generale si possono estrarre cose
giuste senza l'intervento di nessun moderatore.
----
CDMA is anarchy.
--
Err 34: Keyboard error, press F1 to Continue

giuste senza l'intervento di nessun moderatore.
Se la morale dev'essere questa, posso pure accettare un CDMA! :-D



               (Remove is not in your replies)
 
Non mi iscriverei mai ad un Club che accetti tra i soci uno come me. (G. Marx)
 

 
Bellissimi questi paragoni :-) Bravi entrambi :-)


(Pronuncia: Carrier Sense, Multiple Access with Collision Detection)
Allora fermi tutti siamo OT, qui si parla di cellulari non di
Ethernet.
Anche se con un PC, collegato con un Cellulare via qualsivoglia
sistema. Telefono all'ISP. Mando un pacchetto che via Rs232 o altro,
via Radio, via ISDN arriva all'ISP che ha sua volta lo rimanda su
ISDN, arriva al modem dell'azienda, collegato al router, che lo manda
su ethernet che.....
Okay ragazzi siamo di nuovo in tema, cellulare = ethernet.
Saluti
Isi.
----
Tutto è relativo, un natale senza tacchino è triste ma non per il
tacchino.


In realta' .. lo standard delle Ethernet e' l'IEEE 802.3 mentre per le
reti Wireless (non ancora per i cellulari che sono un po' obosleti) e'
la 802.11 :-)


la 802.11 :-)
Mentre ero dal mio dentista, mi sono messo a leggere una rivista di
IEEE che aveva sul tavolino e tutto fu Chiaro.
CSMA/CD è un metodo di accesso utilizzato sia in ethernet 802.3 che in
Wireless Lan 802.11.
Ma vedi tu le combinazioni della vita.
Saluti
Isi.
P.S.: Chi mi da la definizione di MASCARA ( solo per Wireless ATM ).

P.S.: Chi mi da la definizione di MASCARA ( solo per Wireless ATM ).
Si tratta di reti wireless che funzionano con gli IR perche' si
comunica solo "a vista" :-)
         Ciao
                         Tommy
          (togliere KEEPAWAY dall'indirizzo)
"Intelligenti pauca"