— Ну хорошо, сейчас подправлю, это недолго. Структура данных там во входящем файла какая?
— Да такая же, только за первой группой значений в строке идет вторая. И про единичку в конце строки при совпадении не забудьте, а если не совпадет, так поставьте ноль.
— Сейчас сделаю.
Через четверть часа свет уже привычно слегка притух, когда суперкомпьютер стал разгоняться во весь опор. За прошедшее с момента его запуска время он таки упал на пару позиций вниз в TOP-500, технический прогресс в мире совсем не дремал. Но вычислительной мощности Семену хватало с головой, хотя на сей раз задача и будет вдвое посложнее — надо же будет с двумя группами данных оперировать… Прошло около двух часов и на экране побежали строки, которые дублировались в исходящий файл. После того, как все сработало, Семен нетерпеливо импортировал файл в OpenOffice, посмотрел для проверки общее количество строк, затем включил фильтр по нулю в последней колонке. Пустота на экране была совершенно красноречивой. Отрубив фильтр, Семен стал проматывать таблицу вниз кнопкой PgDn. В конце каждой строки беспощадно значилась единица, иные значения, которые могли попасть в итоговые данные по очень маловероятной ошибке, отсутствовали. Эх, Семен, Семен, старый ты дурень, вот он в последней колонке кол тебе по математике, да еще и десять с небольшим тыщ раз! Немудрено, что Серега усмехался! Кстати, о Сереге! Он-то к Маше ушел, не стал дожидаться результатов. Семен рванулся к телевизору и увидел молчаливо сидящую спинами к нему пару, как всегда, устроившуюся, тесно прижавшись боками друг к другу.
— Серега, иди давай ко мне и расскажи, как это у тебя получилось!
— Иду!
Семен успел краем глаза поймать восхищенный взгляд Маши, направленный на парня. Да, вообще-то, восхищаться явно есть чем! А ты-то сам, совсем дубина и дурень старый! Хорош, нечего сказать!!! Второй раз тебя уделывает человек, более, чем вдвое моложе…
— Давай-ка, Серега, рассказывай, как же это тебе так удалось преловко данные подготовить!
— А Вы на них сами-то гляньте…
Семен присмотрелся к тому, что было в строках подготовленного парнем исходного файла. Там действительно повторялись и номера карт и подстрока с CVV на полосе, СТОП! Срок действия был во второй колонке записан наоборот — если в первой колонке исходных данных значился месяц-год, то во второй — год-месяц, и наоборот. Черт возьми!!!
— Как ты додумался!?
— Да очень просто. Карту свою в руках повертел, посмотрел на срок действия, гляжу, а на многих магнитных полосах все даты наоборот стоят. Решил это дело переставить и посмотреть, что получится. Оно ж там в книге не стандартизировано.
— И точно…
— Смотрю, у Вас все единички стоят! Стало быть, все сходится, не зря 25 лет работали!
Семен только сейчас понял, что именно произошло! И ведь у него же стопроцентно все сошлось, алгоритм действительно верный! Теперь уж точно никаких сомнений быть не может! Он сел на стул, дыхание у него стало прерывистым, на лице появилась блаженная улыбка… Семен пришел в себя от подтащенной Серегой водки с закуской.
— Ну, как и в прошлый раз, это не повредит. Повод, правда, намного более приятный.
— Э нет, погоди, себе не лей! Давай-ка чуток попозже Машу позовем, а то она еще на тебя за выпивку обидится!
— И то верно! Учитывая ее папашу со специфическими привычками, это очень даже правильно! Спасибо, Семен Васильевич!
— Уж тебе-то тыщу раз спасибо, а то я бы над всем этим думал, ох, как долго. Давай-ка, Серега, присоветуй мне еще что… Тут практический совет нужен, ты, я вижу, в практике соображаешь намного лучше меня.
— Какой именно совет?
— Надо бы нагенерить этих самых номеров карт с CVV2. Какие подводные камни видишь?
— Ну, зная полученные Вами ключи шифрования, нагенерить много чего можно. Однако… я бы это делал так. Нашел бы несколько карт одного банка и типа с одинаковым сроком действия. Один номер, очевидно, будет больше, один — меньше. Как раз между ними сгенерил бы номеров карт, так, чтобы они точно в этот самый интервал попадали. Алгоритм расчета номера в книге вон есть. А дальше, если знать правильный ключ шифрования — дело техники. Только, Семен Васильевич, важные моменты есть!
— Говори!
— Не надо использовать те номера, которые у Вас были. Я так понял, что полтинник Вы мне за реализацию этой идеи переслали? Спасибо!
— Ну, мне еще кое-чего перепало — усмехнулся Семен.
— Вот то-то и оно, что эти номера карт, от которых перепало, уже засветились и наверняка заблокированы. Толку от них — по нулям, поэтому их выкинуть надо. По ходу, при расчете надо учитывать, как они дату используют — год-месяц или месяц-год. И еще…
— Правильно ты, Серега, мыслишь, молодцом! Чего сказать-то хотел? Что-то ты резко оборвался
— Ох, Семен Васильевич, если я Вам скажу то, что думаю по этому поводу, Вы ж мне в ухо дадите…
— Серега! Даю слово — не дам! Особо после твоей помощи. Говори…
— Вы ж по образованию — математик и мыслите слишком абстрактно, хоть и чрезвычайно глубоко — куда мне до Вас по математике. Однако, все математические теории и формулы рано или поздно попадают к инженерам, которые, без всякой ложной скромности, с практическим воплощением самых дерзких математических теорий справляются лучше. В том числе и с косяками и с особенностями в исходных данных разберутся…
— Эх, Серега… В ухо не дам, обещал же, но… Неужто я настолько абстрактный? Ладно, не отвечай, и так понятно… Зови давай Машу.
Девушка быстро пришла на громкий призывный клич Сереги. Хорошо, что он, слегка выйдя в коридор, успел ей шепнуть, что Семену Васильевичу сейчас очень требуется выпить, а один он пить не хочет.
— Молодые люди! Сегодня, с неоценимой помощью Сереги, математическая проблема, решение которой я разрабатывал двадцать пять лет, семь месяцев и шестнадцать дней, была решена! Все проверено экспериментально и результаты идеально сошлись! Глаза у Маши изрядно расширились
— Больше двадцати пяти лет!?
— Да, хозяюшка, больше — усмехнулся Семен.
— Однако… я бы на Вашем месте тоже захотела бы отметить…
— Давайте нам символически, по 50, больше не надо…
— Правильно, Сережа! Хотя водка и намного получше, чем та, которую папаша хлещет, но все же… Да и закусить не забудь.
— Ну, за математика!
— Дельный тост, Серега! Хотя и не совсем — надо за математика и за инженера! Хотя, формально, пока и будущего, но, сдается мне, уже совсем настоящего! По мне, ты в настоящие даже сейчас годен вполне, без твоих инженерных навыков у меня точно бы ничего не вышло.
В отличие от Машиного отца, говорить «дзынь» собравшимся не требовалось, так как рюмки зазвенели естественным стеклянным звуком…
Потом, когда Серега с Машей уже лежали в постели, девушка обняла парня и прижалась к нему намного сильнее обычного, хотя это и казалось совершенно невозможным
— Машутка…
— Сережа! Ты у меня точно самый умный!
— Ну, это вряд ли… У меня ж просто ум другой, куда мне до Семена Васильевича… Такую забористую штуку, как он, мне бы и за 130 лет не решить!
— Все равно ты самый умный! Не только потому, что он бы без тебя не справился, но и потому, что признаешь наличие людей умнее себя! В своем возрасте ты уж точно самый умный, а если будешь хорошо учиться у тех, кто постарше и поумнее, так всегда будешь первым в нашем поколении!
Сергей всмотрелся в лицо Маши, освещенное ночником и подумал, что лучше, пожалуй, не продолжать спорить со столь красивой и восхищенной девушкой. Вместо этого он жадно поцеловал ее и вскоре пара вновь занялась занятием, для которого совершенно не требовался ни математический, ни инженерный ум…
Глава 69
Проводив Серегу с Машей, Семен стал продумывать свои дальнейшие действия. Он попробовал воспользоваться методом, подсказанным Серегой любое чисто карт генерировалось без запинки даже без суперкомпьютера. Семен позвонил Профессору
— Здравствуйте, Профессор! Говорить удобно?
— Вполне!
— Ну, скажем так… То, о чем мы говорили во время нашей последней встречи, у меня получилось.
— Поня-я-я-я-тно… Ну, с нужными людьми я где-то в начале зимы сконтачу, и то, если повезет. Сам понимаешь, забугорье и все такое, мосты туда наводить долго. Так что время у тебя явно терпит, можешь не спешить.
— Ясненько!
— Ну, ты держи меня в курсе, если что! Да и подготовься как следует. Но помни, что доход на этот раз будет намного поменьше.
— Помню я это, помню. Ну бывай, не буду отвлекать!
— Пока. Звони в случае чего!
Семен, в принципе, был готов сгенерить достаточно много номеров карт с кодами CVV2, однако, поразмыслив, решил сделать последнюю экспериментальную проверку. На некоторых видеофайлах, которые были переданы ему вместе с данными по ПИН, мелькали и сами карты, во всяком случае, логотип банка и тип карты различить было вполне возможно. А сейчас-то как раз начало месяца! Просмотрев множество видеофайлов, Семен запланировал поездку в Москву завтра. Следовало заказать себе несколько карт различных банков, по которым никогда не будут проведены операции…
В отличии от тех карт, которые планировал заказать Семен, при выполнении завершающей сертификацию банка процедуры тестирования новых карт на рабочей системе операции еще как проводились. Ростецкий прыгнул выше головы и сумел таки доделать все необходимое в кратчайшие строки, несколько дней назад подготовленные карты уже были отправлены DHL в Бельгию. Городок Ватерлоо неподалеку от Брюсселя известен «картежникам» не только, как место окончательного разгрома Наполеона — там же и европейская штаб-квартира MasterCard располагается. Скоро по этим чиповым картам будут проведены (или, в худшем случае, не проведены) операции в настоящих устройствах приема карт — банкомате и торговом POS-терминале. Даже если все пройдет успешно, нужно будет дождаться прихода клирингового файла от платежной системы с данными по проведенным операциям, успешно его принять и отправить в MasterCard подтверждение успешного проведения клиринга. Только после этого московское представительство платежной системы выписывает бумагу о том, что сертификация успешно пройдена и банк может выпускать чиповые карты. Бумага обиходно называлась по-западному go-live letter. Николай иронично подумал над тем, что один из буквальных переводов э