Информационная безопасность



              

К вопросу защиты карточек пополнения счета мобильных операторов связи - часть 2


В основном используются MD4 и MD5, обладающие высоким быстродействием и хорошими размешивающими характеристиками (MD4 в 3 раза быстрее MD5).

Далее будем полагать, что используется хэш-функция с 128 битным выходом

m=128.

Нулевая итерация (начальное заполнение) примет вид:

Г0 = Hash(NomSeria, GodenDo, Nominal, SecretKey). (1)

На выходе (1) получим фиксированную m - битную строку хэш - суммы.

В итоге возможно ? 2m начальных состояний генератора, вне зависимости от того, какой длины секретный ключ вводится и какой массив данных туда вводится.

Для получения остальных бит используется рекуррентное выражение:

Гi+1 = Hash(Гi)

, (2)

где N – количество карточек в выпускаемой серии, L – длина кода пополнения счета в битах, [ ] – округление до большего целого.

Полученные по формуле (2) биты не является равновероятными, из-за существования запрещенных значений (к примеру, данное значение было уже ранее сгенерировано, получена инверсия ранее сгенерированных бит и т.д.).

Свойством (2) является возможность однозначного определения через любой выход хэш-суммы Гk всех последующих хэш-сумм Гk+1.

Данный механизм идеален для получения секретных ключей криптоалгоритмов или вычисления (1), но совершенно непригоден для получения кодов пополнения счета, так как они «публикуются» на карточках.

Приведем один из возможных механизмов подделки кодов пополнения счета.

Количество карточек в выпускаемой серии N несложно определить по серийным номерам карточек.

По номеру карточки можно вычислить номер m - битного блока бит и смещение кода пополнения счета в этом блоке.

Длина кода пополнения счета L подбирается из анализа кодов пополнения счета.

Для определения типа хэш-функции достаточно взять

карточек пополнения счета, идущих подряд. Тогда мы получаем 3 пары вход/выход хэш-функции. Нахождение хэш-функции осуществляется прямым подбором различных типов хэш-функций при известном входе и выходе.

После определения типа хэш-функции необходимо будет взять

карточек. В итоге будет получен m - битный блок и над ним можно проводить преобразования для получения последующих блоков по (2).




Содержание  Назад  Вперед