Натыкаясь на разные предложения о продаже генераторов PIN кодов для операторов сотовой,провайдеров рещил поковырять этот вопрос. Собственно любой код генерируется функцией, так почему не попробовать ее подобрать? К тому же их не так уж много. Проблема тут же уперлась в быстродействие, но ASM решил эту проблему. Тем не менее перебор наиболее ходовых(модульных конгруэнций например) результата не дал, хотя по закону тыка должно было сработать. Максимальное количество подобранных цифр 11, нужные 12 не сложились(что очень странно). Хотя если бы удалось взломать функцию генерации... Понятно, что методика генерации разрабатывается и хранится в большом сейфе Но все-таки она является производной от известных методов генерации псевдослучайных чисел(монетки никто не подбрасывает, да и открытий в этой области сделано не было). Интнресно кто-нибудь работал над подобной задачей?
даже если ты сгенеришь новый правильный pin, не факт, что он найдется в базе оператора сотовой связи. следовательно, ты никогда не узнаешь, что сгенерил верный pin ...
Естественно правильность пина проверяется не по некоей мифической функции (хотя для генерации она вполне может и применяться), а потому есть ли такой номер в базе данных оператора, а все выпущенные в продажу пины там явно хранятся, как минимум для статитики продаж по регионам и чтобу банить уже использованные номера. Так что проще ломануть базу провайдера, потому как если ты будешь вводить правильные но несуществующие номера тебя быстро попалят и накажут =)
Тот брелочек, что я ссылку привел - выдается лично в руки, после чего его нужно активировать - т.е. задать еще одну часть кода, которая используется в качестве дополнения к пину на брелочке при регистрации. А брелочек меняет циферки раз в минуту. )
Перед написанием проги немного пощупал базу статистикой. Слишком много коррелирууемых величин, да и распеределение далеко не равномерное, так что мне кажется криптографически стойкий алгоитм - это не здесь. Да даже если и так? Ломануть базу оператора - большой соблазн Но хочется сделать красиво и универально. За задницу возьмут если этим злоупотреблять.
Возможна ли такая ситуация: у провайдера есть таблица номер карты <-> пин-код. и все. и между ними совсем не обязательно должно быть функциональное соответствие. а вся проверка -- это один запрос к БД. Собственно ~год назад на одном из форумов было обсуждение этого вопроса, там, AFAIR, пришли приблизительно к такому выводу...
DaemoniacaL google on "cryptanalysis of SecurID" и увидишь результаты.. я давно эту тему зондировал, но, насколько помню, те 64 бита которые там используются, действительно _серьезной_ защиты не дают...
Запрос к базе идет по PIN коду(для операторов сотовой)->серийный номер. Номер карты -для бухгалтерской отчетности и для персонала. Фактически база имеет два ключевых поля PIN и серийники. Что касается таблицы. Возможно. Но судя по объемам продаж карт, это громоздко и неудобно + архив который нужно определенное время хранить для той же отчености и для разборов недоразумений (и все номера должны быть уникальными). Да и статтистический анализ старой базы показал уникальные вещи, не характерные для таблицы (там числа подчиняются законам распределений случайных величин, для этого таблицы и создаются). В моем же случае вероятность выпадания 4,6,8 была 0,5!!! Подобные вещи характерны для псевдогенераторов. Такое чувство что решение где-то рядом...