В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
TWINKLE ( The Weizmann Institute Key Locating Engine ) — гипотетическое устройство факторизации целых чисел, описанное в 1999 году Ади Шамиром [1] и предположительно способное факторизовать 512-битные целые числа. [2] Это также игра слов на тему мерцающих светодиодов, используемых в устройстве. Шамир подсчитал, что стоимость TWINKLE может составить всего 5000 долларов за единицу при массовом производстве. У TWINKLE есть преемник под названием TWIRL [3], который более эффективен.
Целью TWINKLE является реализация шага просеивания алгоритма Number Field Sieve , который является самым быстрым из известных алгоритмов факторизации больших целых чисел. Шаг просеивания, по крайней мере для 512-битных и более больших целых чисел, является самым трудоемким шагом NFS. Он включает в себя проверку большого набора чисел на B-'гладкость', т. е. отсутствие простого множителя, большего , чем указанная граница B.
Что примечательно в TWINKLE, так это то, что это не чисто цифровое устройство. Его эффективность достигается за счет отказа от двоичной арифметики в пользу «оптического» сумматора, который может складывать сотни тысяч величин за один такт.
Ключевая идея, используемая в NFS, — это «инверсия времени и пространства». Обычное просеивание NFS выполняется по одному простому числу за раз. Для каждого простого числа все числа, которые необходимо проверить на гладкость в рассматриваемом диапазоне, которые делятся на это простое число, увеличивают свой счетчик на логарифм простого числа (аналогично решету Эратосфена ). TWINKLE, с другой стороны, обрабатывает одно потенциальное гладкое число (назовем его X) за раз. Каждому простому числу, меньшему B, соответствует один светодиод. В момент времени, соответствующий X, набор светящихся светодиодов соответствует набору простых чисел, которые делят X. Этого можно добиться, если светодиод, связанный с простым числом p, будет светиться один раз каждые p моментов времени. Кроме того, интенсивность каждого светодиода пропорциональна логарифму соответствующего простого числа. Таким образом, общая интенсивность равна сумме логарифмов всех простых множителей X, меньших B. Эта интенсивность равна логарифму X тогда и только тогда, когда X является B-гладким.
Даже в реализациях на базе ПК это обычная оптимизация для ускорения просеивания путем сложения приблизительных логарифмов малых простых чисел. Аналогично, TWINKLE имеет много места для ошибок в своих измерениях света; пока интенсивность находится на правильном уровне, число, скорее всего, будет достаточно гладким для целей известных алгоритмов факторизации. Существование даже одного большого множителя означало бы, что логарифм большого числа отсутствует, что приводит к очень низкой интенсивности; поскольку большинство чисел обладают этим свойством, выход устройства, как правило, будет состоять из отрезков выходного сигнала низкой интенсивности с короткими всплесками выходного сигнала высокой интенсивности.
В приведенном выше примере предполагается, что X является свободным от квадратов, т. е. не делится на квадрат любого простого числа. Это приемлемо, поскольку алгоритмы факторизации требуют только «достаточно много» гладких чисел, а «выход» уменьшается только на небольшой постоянный множитель из-за предположения о свободности от квадратов . Также существует проблема ложных срабатываний из-за неточности оптоэлектронного оборудования, но она легко решается путем добавления этапа постобработки на базе ПК для проверки гладкости чисел, идентифицированных TWINKLE.