COMP128

COMP128 ist eine Implementierung der für das GSM-Netz spezifizierten Algorithmen A3 und A8. A3 wird zur Authentifikation der Mobilstation am Netz bzw. AuC (Authentication Center) benötigt, während A8 dazu dient, einen Session Key für die verschlüsselte Übertragung zwischen Mobilstation/Handy und der BTS (bei Sprachverbindungen) resp. SGSN (bei GPRS) zu generieren.

Technische Details der ursprünglich vertraulichen Implementierung gelangten 1998 durch Reverse Engineering an die Öffentlichkeit.

COMP128 arbeitet mit 9 Runden, wobei der zentrale Kern des Algorithmus eine Hashfunktion ist. Diese Hash-Funktion liefert einen 128-Bit-Hashwert für 256 Bit Eingabe. Sie basiert auf einer Butterfly-Struktur. Die Ausgabe des Algorithmus enthält die für die Authentisierung verwendete Antwort und den Session Key für die A5-Stromchiffrierung, welche zur Verschlüsselung des Sprachtransfers eingesetzt wird.

Sei X[0..31] die 32 Byte große Eingabe der Hash-Funktion, mit K := X[0..15] dem Schlüssel der Ziel-SIM-Karte und X[16..31] die durch die Station gesendete Challenge. Seien weiterhin die Tabellen T0[0..511], T1[0..255], T2[0..127], T3[0..63] und T4[0..31] die geheimen Permutationstabellen. Dann durchläuft die Eingabe zunächst 8 Mal die folgende Kompression (nach [HP00], siehe Weblinks):

For i=0 to 4 do:
  For j=0 to 2i-1 do:
    For k=0 to 24-i-1 do:
      s = k + j*25-i
      t = s + 24-i
      x = (X[s] + 2X[t]) mod 29-i
      y = (2X[s] + X[t]) mod 29-i
      X[s] = Ti[x]
      X[t] = Ti[y]

Nach jeder Permutation werden die 16 Bytes Ausgabe in X[16..31] und K erneut in X[0..15] gespeichert.

COMP128 gilt als unsicher, da der Hash kleine Veränderungen in der Eingabe nicht hinreichend streut. Aufgrund des Geburtstagsparadoxons lässt sich dies in einem Kollisionsangriff dergestalt ausnutzen, dass innerhalb von Abfragen der SIM-Karte der gesamte Schlüssel extrahiert werden kann.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.