Так как алгоритмы A3 и А8 реализованы внутри SIM-карты, то оператор связи может

Телефонный разговор в формате GSM передается в виде последовательности кадров каждые 4.6 миллисекунды. Каждый кадр содержит 114 бит информации от А к В и 114 бит информации от В к А, где А и В — базовая и мобильная станции. Каждый кадр передаваемой информации фактически шифруется своим ключом шифрования. Шифрование обеспечивается поточным шифром А5. Для шифрования каждого кадра (228 бит) алгоритм А5 инициализируется ключом Кс, полученным обычно на стадии аутентификации алгоритмом A8, и последовательным номером передаваемого кадра. Последовательный номер кадра является открытой информацией и может быть использован криптоаналитиком, т.е. для расшифрования разговора достаточно знать ключ шифрования Кс. Ключ Кс используется до следующей аутентификации абонента, а обычно это происходит через несколько дней. Таким образом, аутентификация мобильной станции проводится не перед каждым разговором. Стоит отметить, что разговор шифруется только на этапе передачи информации между MS и BTS.

Для установки режима шифрования сеть передает подвижной станции команду CMC (Ciphering Mode Command) на переход в режим шифрования. После получения команды CMC подвижная станция, используя имеющийся у нее ключ, приступает к зашифрованию и расшифрованию сообщений.

Описание алгоритмов

В данном разделе приводится описание алгоритмов, используемых для обеспечения безопасности в системах GSM:

· алгоритма аутентификации A3;

· алгоритма генерации ключа A8;

· алгоритма шифрования А5.

Следует отметить, что описание алгоритмов не было открыто опубликовано консорциумом GSM. Часть исходного кода алгоритмов стала известна из-за юридической оплошности при передаче алгоритмов одному из научно-исследовательских институтов США. Другая часть исходного кода была получена с помощью инженерного анализа группой американских ученых. По их заверению, полученный таким образом исходный код алгоритмов был проверен на соответствие реальным алгоритмам. Таким образом, нельзя полностью гарантировать подлинность описанных далее алгоритмов.

Алгоритмы A3 и А8. Хеш-функция СОМР128

Так как алгоритмы A3 и А8 реализованы внутри SIM-карты, то оператор связи может использовать различные алгоритмы аутентификации и генерации ключа. Другим операторам вовсе не нужно использовать тот же алгоритм, так как при роуминге им передаются только значения RAND, SRES и Кс. Значения SRES и Кс можно получать любыми способами, и, значит, можно использовать любые алгоритмы без серьезной замены оборудования операторов связи. В данном разделе рассматриваются алгоритмы на основе хеш-функции СОМР128, которую использует абсолютное большинство операторов как для аутентификации, так и для генерации ключа шифрования.

Алгоритмы A3 и А8 рассматриваются вместе, так как по сути они представляют собой один алгоритм, который одновременно проводит аутентификацию абонента и генерацию ключа шифрования. Оба алгоритма используют одну и ту же хеш-функцию СОМP128, на вход которой поступают значения RAND и Кi а на выходе получаются значения SRES и Кс.

Алгоритмы аутентификации A3 и генерации ключа A8 основаны на разделении секрета мобильной станцией и базовой станцией, т. е. обеим сторонам известно значение секретного ключа Ki.

Рассмотрим процесс аутентификации с помощью алгоритма A3 (рис. 9.1).

1. Базовая станция с помощью генератора псевдослучайных кодов формирует случайное число RAND, которое передается на мобильную станцию.

2. Из 128-разрядного числа RAND и 128-разрядного секретного ключа Ki мобильная станция формирует 256-разрядное входное значение для хеш-функции СОМР128, а именно число RAND составляет старшие биты входного значения, а секретный ключ Ki — младшие. Затем хеш-функция СОМР128 формирует выходное 128-разрядное значение, но реально используются только 96 разрядов. Старшие 32 разряда суть значение отклика SRES, а младшие 54 разряда — значение ключа шифрования Кс. Отклик SRES пересылается базовой станции.

3. Базовая станция проводит такие же операции и сравнивает свое значение отклика со значением, принятым от мобильной станции; если значения совпали, то считается, что мобильной станции известен секретный ключ Ki, и, значит, аутентификация прошла удачно. После этого можно начать шифрование информации, так как обе стороны будут использовать один ключ шифрования.

Таким образом, в результате аутентификации получается ключ шифрования
Кс, который могут использовать для шифрования как мобильная, так и базовой
станции.

Хеш-функция СОМР128 принимает 256-разрядное значение и выдает 128- разрядное. Старшие 32 разряда выходного значения образуют отклик SRES, 54 младших разряда — ключ шифрования Кс. Работа этой функции основана на пяти таблицах различного размера, а именно Т0[512], Т1[256], Т2[128], Т3[64] и Т4[32]. Выходные значения этих таблиц имеют размер 8, 7, 6, 5 и 4 бит соответственно.

Фактически таблицы обеспечивают сжатие информации. Заполнение этих таблиц было получено с помощью инженерного анализа.

Рис. 9.1. Схема аутентификации с помощью алгоритма А3

Алгоритм получения хеш-значения

1. Формируется массив байт Х[32].

Х[0 … 15] = Ki; X[16… 31] = RAND.

2. Далее реализуется следующий псевдокод:

for (i=l;i<9;i++)

{

for (j=0;j<5;j++)

{

for (k=0;k<2j-l;k++)

{

for (l=0;1<24-j-1; l + + )

{

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;j<32;j++)

{

for (k=0;k<4;k++)

{

bit[4*j+k] = (x[j]>>(3-k))&1;

}

}

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)mod 128;

X[j + 16]=X[j + 16] |bit[next_bit]<<(7-k);

}

}

}

}

После этих преобразований в массиве X оказывается 32 полубайта. Следующий фрагмент кода был получен в результате инженерного анализа. Первые 8 полубайт образуют четырехбайтный отклик SRES:

а последние 14 полубайт образуют 54-разрядное значение ключа шифрования Кс (в последней строке кода два старших бита первого аргумента теряются в результате сдвига):

С помощью инженерного анализа было обнаружено, что размер ключа шифрования равен не 64 битам, что обеспечивает максимальную стойкость алгоритма A5, а 54 битам, что значительно уменьшает стойкость алгоритма шифрования А5. Это используется во всех реализациях SIМ-карт, даже в тех, которые для алгоритмов A3 и A8 не используют хеш-функцию COMP128.

Алгоритм А5

Алгоритм шифрования А5 реализуется в самой мобильной станции, а не в SIМ-карте, где реализуются алгоритмы A3 и А8. Таким образом, в отличие от алгоритмов А3 и А8, алгоритм A8 зависит от производителей оборудования 6азовых и мобильных станций. Тем не менее консорциум GSM решил, что версия алгоритма, известная как А5/1, является слишком стойкой для экспорта в некоторые страны, и был создан намеренно ослабленный вариант алгоритма A5 -алгоритм А5/2, который используют в странах Ближнего востока, России и США.

Алгоритм A5/1

Стоит напомнить, что стандарт GSM обеспечивает шифрование информации на уровне базовая — мобильная станции, а не между мобильными станциям. Каждый кадр шифруется с помощью секретного ключа шифрования Кс и сквозного порядкового номера очередного кадра. Генератор ПСП А5/1 состоит из трех коротких LFSR (рис. 9.2), обозначаемых как LFSRl, LFSR2 и LFSR3. Образующие многочлены этих регистров имеют вид:

+ 1.

Ссылка на основную публикацию
Adblock detector
x