KOMP128
Algorytmy COMP128 są implementacjami funkcji A3 i A8 zdefiniowanych w standardzie GSM . A3 służy do uwierzytelnienia stacji mobilnej w sieci. A8 służy do generowania klucza sesyjnego używanego przez A5 do szyfrowania danych przesyłanych między stacją mobilną a BTS .
Istnieją trzy wersje COMP128. Pierwotnie były one poufne. Częściowy opis pierwszej wersji wyciekł w 1997 roku i został ukończony poprzez inżynierię wsteczną . Doprowadziło to do pełnej publikacji w 1998 roku. Drugą i trzecią wersję uzyskano poprzez inżynierię wsteczną oprogramowania weryfikującego zgodność kart SIM.
Wstęp
Aby uzyskać szczegółowe informacje na temat sposobu używania A3 i A8, patrz Centrum uwierzytelniania .
A3 i A8 pobierają 128-bitowy klucz ( Ki ) i 128-bitowe wyzwanie ( RAND ) jako dane wejściowe. A3 generuje Kc 32 -bitową odpowiedź ( SRES ), a A8 generuje 64-bitowy klucz sesji ( ). A3/A8 to funkcja połączona z K i i RAND jako wejściami oraz SRES i K c jako wyjściami.
Ponieważ A3 i A8 nie są dalej określone, operatorzy mogą swobodnie wybierać konkretne algorytmy używane dla A3 i A8.
algorytmy COMP128
Algorytmy COMP128 realizują funkcję A3/A8. Jest ich trzech:
- COMP128-1 – oryginalny algorytm ze znanymi słabościami
- Kc , który nadal usuwa 10 skrajnych prawych bitów
- COMP128-3 – ten sam algorytm co COMP128-2 z wygenerowanymi wszystkimi 64 bitami Kc
Wszystkie są zbudowane wokół funkcji kompresji z dwoma 128-bitowymi wejściami i jednym 128-bitowym wyjściem, stąd ich nazwy. K i i RAND są używane jako dane wejściowe funkcji kompresji. Bity z Kc jego wyjścia są następnie używane do wypełnienia SRES i .
COMP128-1 opis
COMP128-1 wykorzystuje funkcję kompresji z ośmioma rundami, która jest oparta na strukturze motyla z pięcioma etapami. SRES jest wypełniany pierwszymi 32 bitami danych wyjściowych. K c jest wypełnione ostatnimi 54 bitami danych wyjściowych, po których następuje dziesięć zer.
Pełny opis algorytmu można znaleźć w implementacji OsmocomBB .
Opis COMP128-2/3
Implementacja COMP128-2 i COMP128-3 jest zauważalnie bardziej złożona niż COMP128-1. Aby zapoznać się z pełnym opisem algorytmu, czytelnik może zapoznać się z implementacją OsmocomBB lub implementacją FreeRADIUS , obie oparte na kodzie Pythona z artykułu Secrets of Sim. COMP128-2 Kc jest identyczny z COMP128-3, z wyjątkiem faktu, że na końcu usuwa 10 skrajnych prawych bitów .
Bezpieczeństwo
Funkcja skrótu COMP128-1 jest uważana za słabą, ponieważ nie ma wystarczającej dyfuzji małych zmian na wejściu. Wykazano praktyczne ataki, które mogą odzyskać klucz abonencki z karty SIM.
Klucze sesyjne tworzone przez COMP128-1 i COMP128-2 celowo mają tylko 54 bity entropii. To znacznie osłabia szyfrowanie A5 lub A6.
- ^ Briceno, Marc; Goldberg, Ian; Wagner, David (1998), Implementation of COMP128 , zarchiwizowane z oryginału w dniu 18.03.2009
- ^ a b Tamas, Jos (2013), Secrets of the SIM , zarchiwizowane z oryginału w dniu 24.12.2014 , pobrane 24.12.2014
- ^ Brumley, Billy (2004), A3 / A8 i COMP128 (PDF)
Linki zewnętrzne
- Briceno, Marc; Goldberg, Ian (1998), Klonowanie GSM
- Handschuh, Helena; Paillier, Pascal (2000), Zmniejszenie prawdopodobieństwa kolizji domniemanego Comp128 , CiteSeerX 10.1.1.141.1033