Реферат: Арифметика на службе защиты

Шаг

42. 42x42 = 1746 1746x2916 = 5091336 5091336+805895 = 5949719

...

"Лишняя" пятерка сразу показывает, что не с всеми шагами все "чисто". А именно - например, на последнем шаге складывается произведение 1746x2916 не с результатом предидущего сложения (4805895), а с его частью (805895). Теперь выясняется примерный алгоритм:

SUM=1

LOOP I=1 TO 42

SUM+= I^2 x S[i]

IF I = STEP_LEVEL THEN ... ; Откусить старшие разряды

END LOOP

; Где S[i] - добавка на каждом I-м шаге

Вот зачем нужен был код форматирования нецелых чисел! Программист не нашел ничего лучшего, чем переформатировать real-число в строку и контекстным поиском выяснять, не нужно ли отбросить старшие разряды! :)

Остается выяснить, что такое эти S[i]. Вот их список:

Шаг S[i]

1. 2401

2. 2500

3. 2601

4. 2704

...

Что же это за числа? Мы возводим индекс в квадрат, нет ли и тут чего-то похожего? Действительно:

Шаг S[i]

1. 2401 = 49^2

2. 2500 = 50^2

3. 2601 = 51^2

4. 2704 = 52^2

...

Ага, понятно, что это за числа! Да это же байты ИНН: "12345...". А что дальше? ИНН длиной 10 символов, первые 10 шагов понятны. Но далее S[i] становятся загадочными:

Шаг S[i]

11. 16641 = 129^2

12. 25600 = 160^2

К-во Просмотров: 1817
Бесплатно скачать Реферат: Арифметика на службе защиты