Lompat ke isi

COMP128

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Revisi sejak 15 September 2013 08.53 oleh Danu Widjajanto (bicara | kontrib) (hapus tag yang sembarangan ditambahkan)

COMP128 merupakan implementasi dari algoritma A3 dan A8 yang didefinisikan dalam standar GSM.

A3 digunakan untuk otentikasi Stasiun 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, dimana Authentication centre (AuC) berisi parameter authentikasi pelanggan untuk mengakses jaringan GSM [2]

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.[3]

Selain kunci sesi dihasilkan oleh COMP128 hanya memiliki 54 bit entropi. Hal ini secara signifikan melemahkan A5.

Referensi

  1. ^ Briceno, Marc; Goldberg, Ian; Wagner, David (1998), Implementation of COMP128, diarsipkan dari versi asli tanggal 2009-03-18 
  2. ^ Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AuC
  3. ^ Brumley, Billy (2004), A3/A8 & COMP128 (PDF) 

Pranala luar