COMP128
COMP128 merupakan implementasi dari algoritma A3 dan A8 yang didefinisikan dalam standar GSM.
A3 digunakan untuk otentikasi Sstasiun Bergerak (Mobile Station)ke jaringan. A8 digunakan untuk menghasilkan kunci sesi yang digunakan oleh algoritma A5 untuk mengenkripsi data yang dikirimkan antara stasiun bergerak dan BTS.
Algoritma awalnya bersifat rahasia. Penjelasan parsial bocor pada tahun 1997 dan diselesaikan melalui reverse engineering. Hal ini menyebabkan publikasi sepenuhnya pada tahun 1998.[1]
Pengantar
Untuk rincian tentang cara A3 dan A8 digunakan lihat Authentication Center.
A3 dan A8 keduanya mengambil kunci 128 bit (Ki) dan 128 bits challenge (RAND) sebagai masukan. A3 menghasilkan respon 32 bit (SRES) dan A8 menghasilkan 64 bit kunci sesi (Kc).
COMP128 menggabungkan fungsi A3 dan A8. COMP128-1 dibangun di sekitar fungsi kompresi dengan dua masukan 128 bit dan satu keluaran 128 bit. Fungsi ini memiliki delapan putaran dan didasarkan pada struktur kupu-kupu dengan lima tahap.
Algoritma COMP128
Beberapa algoritma COMP128 yang dirancang:
- COMP128-1 algoritma pertama yang dikenal lemah
- COMP128-2 menggantikan COMP128-1, tapi masih menetapkan 10 bit paling kanan dari Kc ke 0), sengaja melemahkan pengacakan A5
- COMP128-3 sama dengan algoritma COMP128-2, tetapi semua 64-bit dari Kc di generat
- COMP128-4 didasarkan atas algoritma 3GPP (3rd Generation Partnership Project) ("Milenage"), yang menggunakan AES
Deskripsi COMP128-1
T0[512], T1[256], T2[128], T3[64] and T4[32] are compression tables.
comp128 : RAND, Ki -> SRES, Kc
{
x[32]: array of bytes
bit[128]: array of bits
m, n, y, z: integers
x[16..31] := RAND
for i := 1 to 8
x[0..15] := Ki
for j := 0 to 4
for k := 0 to 2j-1
for l := 0 to 24-j-1
m := l + k * 25-j
n := m + 24-j
y := (x[m] + 2 * x[n]) mod 29-j
z := (2 * x[m] + x[n]) mod 29-j
x[m] := Tj[y]
x[n] := Tj[z]
for j := 0 to 31
for k := 0 to 3
bit[4 * j + k] := x[j]3-k
if i < 8
for j := 0 to 15
for k := 0 to 7
x[j + 16]7-k := bit[((8 * j + k) * 17) mod 128]
SRES := bit[0..31]
Kc := bit[74..127] 00000000002
}
Keamanan
Fungsi hash COMP128-1 dianggap lemah karena tidak cukup diffusion perubahan kecil di masukan.
Serangan praktis telah membuktikan bahwa dapat memulihkan kunci pelanggan dari SIM. Penggantian algoritma sudah sejak dikembangkan.[2]
Selain kunci sesi dihasilkan oleh COMP128 hanya memiliki 54 bit entropi. Hal ini secara signifikan melemahkan A5.
Referensi
- ^ Briceno, Marc; Goldberg, Ian; Wagner, David (1998), Implementation of COMP128, diarsipkan dari versi asli tanggal 2009-03-18
- ^ Brumley, Billy (2004), A3/A8 & COMP128 (PDF)
Pranala luar
- Briceno, Marc; Goldberg, Ian (1998), GSM Cloning
- Handschuh, Helena; Paillier, Pascal (2000), Reducing the Collision Probability of Alleged Comp128, CiteSeerX: 10.1.1.141.1033