Читаем Математические головоломки профессора Стюарта полностью

Некоторые вычеты возникают один раз, некоторые дважды, некоторые четырежды. Те, которые встречаются в списке меньше четырех раз, являются квадратами чисел, кратных либо 3, либо 5, то есть простым множителям 15. Все остальные числа возникают группами по четыре, где квадраты всех четырех равны.

Это общая закономерность для любого модуля вида pq, где p и q – различные нечетные простые числа. Числа от 0 до pq – 1, не кратные ни p, ни q, разделяются на четверки с равными квадратами. (Это не работает, если одно из простых чисел равно 2: к примеру, 10 = 2 × 5, но мы уже видели, что в этом случае квадраты либо одиноки, либо стоят парами.)

В алгебре мы привыкаем к мысли, что у каждого положительного числа имеется два квадратных корня: один положительный, другой отрицательный. Но в арифметике по модулю pq большая часть чисел (те, что не делятся ни на p, ни на q) имеет по четыре различных квадратных корня.

Этот любопытный факт имеет замечательное приложение, к которому мы и перейдем.

Бросание монетки по телефону

Предположим, что Алиса и Боб хотят сыграть в бросание монетки с вероятностью того или иного результата 50:50. Как мы уже знаем, Алиса находится в Алис-Спрингс, а Боб – в Боббингтоне. Могут ли они бросать монетку по телефону? Главная загвоздка – та же, что при игре в покер. Если бросает монетку (или проделывает любую другую операцию с равновероятным исходом) Алиса и она же сообщает результат Бобу, то тот никак не может быть уверен, что она говорит правду. Конечно, в наше время они могли бы делать это во время общения по скайпу и наблюдать за бросанием монетки, но даже в этом случае результат можно подделать, сняв заранее несколько бросков и показав собеседнику запись вместо онлайн-трансляции.

Бросание монетки – то же, что игра в покер колодой из двух карт, так что игроки вполне могут воспользоваться методикой, описанной выше. Однако существует и другой элегантный способ достичь того же результата с использованием квадратичных вычетов. Вот как это можно сделать.

Алиса выбирает два больших простых числа p и q. Она держит их в секрете, но отправляет Бобу их произведение n = pq. Вы скажете, что Боб мог бы найти p и q путем разложения n на простые множители, но на сегодняшний день, насколько известно, не существует практичного способа сделать это, если числа p и q достаточно велики – скажем, по 100 знаков в каждом. Даже самым быстрым компьютерам, использующим самые быстрые алгоритмы, понадобилось бы на это время, превышающее время жизни Вселенной. Так что Боб останется в неведении.

Однако существуют очень быстрые способы проверить 100-значное число и узнать, является ли оно простым. Так что Алиса сможет подобрать себе p и q методом проб и ошибок.

Боб выбирает произвольное целое x (mod n), которое держит в секрете.

Если он необычайно педантичен, то может быстро проверить, не является ли x произведением p и q: он не будет делить его на эти числа, поскольку их не знает, но найдет наибольший общий делитель (НОД) чисел x и n через алгоритм Евклида. Если результат окажется не равным 1, то получится, что он знает либо p, либо q, и процесс нужно будет начинать заново с новым x. Но на практике можно особо не беспокоиться, поскольку при p и q, содержащих по 100 знаков каждое, вероятность того, что одно из этих чисел окажется делителем произвольно выбранного x, составит 2 × 10–100.

Далее Боб вычисляет x² (mod n), что тоже можно сделать быстро, и отправляет результат Алисе. Они договорились, что если Алиса сможет правильно назвать x или – x, то она выиграет (это будет «орел»). В противном случае – проиграет («решка»).

Из предыдущей главы Алиса знает, что целые числа по модулю pq, не кратные ни p, ни q, имеют ровно по четыре квадратных корня. Поскольку x и – x при возведении в квадрат дают одно и то же, квадратные корни имеют вид a, – a, b, – b для подходящих a и b. Алиса знает p, q и x², из чего следует, что она может быстро вычислить четыре нужных корня. Два из них должны быть равны x и – x; два других – не равны. Так что вероятность угадать ± x верно у Алисы на 50 % – что эквивалентно честному бросанию монетки. Она выбирает одно из четырех чисел, скажем b, и отправляет его Бобу.

Боб сообщает Алисе, действительно b = ± x или нет; то есть права она или нет.

Ах, но как сделать так, чтобы Боб тоже не мог смошенничать? И откуда Бобу знать, что Алиса сделала все так, как должна была сделать?

В любом случае (верно b = ± x или нет) Боб может легко убедиться, что Алиса играла честно, если вычислит b² (mod n). Результат должен совпасть с x².

Перейти на страницу:

Похожие книги

Для юных математиков
Для юных математиков

Вниманию юного, и не очень, читателя предлагается книжная серия, составленная из некогда широко известных произведений талантливого отечественного популяризатора науки Якова Исидоровича Перельмана.Начинающая серию книга, которую Вы сейчас держите в руках, написана автором в 20-х годах прошлого столетия. Сразу ставшая чрезвычайно популярной, она с тех пор практически не издавалась и ныне является очень редкой. Книга посвящена вопросам математики. Здесь собраны разнообразные математические головоломки, из которых многие облечены в форму маленьких рассказов. Книга эта, как сказал Я. И. Перельман, «предназначается не для тех, кто знает все общеизвестное, а для тех, кому это еще должно стать известным».Все книги серии написаны в форме непринужденной беседы, включающей в себя оригинальные расчеты, удачные сопоставления с целью побудить к научному творчеству, иллюстрируемые пестрым рядом головоломок, замысловатых вопросов, занимательных историй, забавных задач, парадоксов и неожиданных параллелей.Авторская стилистика письма сохранена без изменений; приведенные в книге статистические данные соответствуют 20-м годам двадцатого века.

Яков Исидорович Перельман

Развлечения / Детская образовательная литература / Математика / Книги Для Детей / Дом и досуг