Сначала мы должны предположить, что Ева только пассивна. Под этим я подразумеваю, что она правдиво отправляет открытку Бобу, и то, что она возвращает Алисе, действительно является ответом Боба. Если Ева может изменить данные в одном или обоих направлениях (и ее действие остается незамеченным), тогда все идет.
(Чтобы почтить давние традиции, две честные стороны, участвующие в разговоре, называются Алиса и Боб. В своем тексте вы сказали «вы». Мое настоящее имя не «Алиса», но я отвечу так же, как если бы вы написали что Алиса хочет проверить номер телефона Боба.)
Простой (но слабый) ответ - использовать хеш-функцию. Алиса пишет на карточке: «верните мне хэш SHA-256 вашего номера телефона». SHA-256 - это криптографическая хеш-функция, которая считается безопасной в отношении хеш-функций. Вычислять его вручную было бы утомительно, но все же выполнимо (это примерно 2500 32-битных операций, где каждая операция представляет собой сложение, сдвиг или поворот слова или битовую комбинацию битов; Боб должен быть в состоянии сделать это за день или так).
Что в этом слабого? SHA-256, являющаяся криптографической хеш-функцией, устойчива к «прообразам»: это означает, что при хеш-выходе очень трудно восстановить соответствующий вход (с этой проблемой сталкивается Ева). Однако «очень сложно» означает «самый простой метод - грубая сила: пробовать возможные входные данные, пока не будет найдено совпадение». Проблема в том, что грубая сила здесь проста: возможных телефонных номеров не так много (в Северной Америке это 10 цифр, то есть всего 10 миллиардов). Боб хочет делать что-то вручную, но мы не можем предположить, что Ева так ограничена. Базовый ПК может пробовать несколько миллионов хэшей SHA-256 в секунду, поэтому Ева будет выполнена менее чем за один час (менее 5 минут, если она использует графический процессор).
Это общая проблема: если Боб является детерминированным (то есть для данного сообщения от Алисы, он всегда будет возвращать один и тот же ответ), Ева может смоделировать его. А именно, Ева знает все о Бобе, кроме номера телефона, поэтому она фактически управляет 10 миллиардами Бобов, которые отличаются только предполагаемым номером телефона; и она ждет, пока один из виртуальных Бобов вернет то, что на самом деле вернул настоящий Боб. Недостаток затрагивает многие виды «умных» решений, включающих случайные одноразовые номера и симметричное шифрование и тому подобное. Это сильный недостаток, и его корень лежит в огромной разницы в вычислительной мощности между Евой и Бобом (теперь, если Боб также был компьютер как большой , как Ева, то он мог бы использовать медленныйхеш-функция за счет использования множества итераций; в этом и заключается суть хеширования пароля с помощью номера телефона вместо пароля; см. bcrypt, а также этот ответ ).
e=3
Для вычислений Алисы потребуется компьютер (то, что делает компьютер, всегда элементарно и выполнимо вручную, но компьютер чертовски быстр в этом, поэтому на практике «выполнимость» может занять слишком много времени; расшифровка RSA вручную займет много времени). недель).
(На самом деле мы могли бы ускорить вычисления вручную, используя шифрование McEliece , но тогда открытый ключ - то, что Алиса пишет на карте - был бы огромным, а карта - просто не годилась бы; Еве пришлось бы перевозить полную книгу цифр.)