RU2549129C1 - Способ тестирования чисел на простоту - Google Patents

Способ тестирования чисел на простоту Download PDF

Info

Publication number
RU2549129C1
RU2549129C1 RU2014106622/08A RU2014106622A RU2549129C1 RU 2549129 C1 RU2549129 C1 RU 2549129C1 RU 2014106622/08 A RU2014106622/08 A RU 2014106622/08A RU 2014106622 A RU2014106622 A RU 2014106622A RU 2549129 C1 RU2549129 C1 RU 2549129C1
Authority
RU
Russia
Prior art keywords
tested
numbers
input
composite
computing system
Prior art date
Application number
RU2014106622/08A
Other languages
English (en)
Inventor
Кирилл Николаевич Шихаев
Виктор Александрович Анохин
Original Assignee
Кирилл Николаевич Шихаев
Виктор Александрович Анохин
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Кирилл Николаевич Шихаев, Виктор Александрович Анохин filed Critical Кирилл Николаевич Шихаев
Priority to RU2014106622/08A priority Critical patent/RU2549129C1/ru
Application granted granted Critical
Publication of RU2549129C1 publication Critical patent/RU2549129C1/ru

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)

Abstract

Изобретение относится к области цифровых вычислений и может быть использовано в криптографии. Техническим результатом является повышение достоверности и производительности. Способ содержит этапы, на которых: подают тестируемое число n на вход вычислительной системы, вычисляют Nn=(n2-n)/2. Передают данные в блок деления и вычисляют величину Nn/n. Затем подают численный результат на вход блока проверки числа на целость-дробность. Если число является дробным, то делают вывод, что тестируемое число является составным. В противном случае вычисляют Nn+1. В блоке деления вычисляют Nn+1/n и Nn+1/5. После чего проверяют Nn+1 и Nn+1/5 в блоке проверки числа на целость-дробность. Nn+1 проверяют в блоке проверки числа на четность-нечетность. Если Nn+1/n является целым числом, а Nn+1 является четным или Nn+1/5 является целым числом, то делают вывод, что тестируемое число является простым. 1 з.п. ф-лы, 2 ил, 1 табл.

Description

Изобретение относится к области цифровых вычислений, а именно к техническим средствам для тестирования чисел большой разрядности на простоту, и предназначено, в частности, для применения в качестве ускорителя вычислений суперкомпьютера, а также в генераторах простых и псевдослучайных чисел, хэшей, устройствах кодирования данных.
Из международной патентной заявки WO 2004/001595 A1 известен способ для тестирования чисел на простоту в криптографии, включающий предварительный тест с малыми простыми числами. Однако известный способ тестирования чисел на простоту оказывается недостаточно эффективным в случае необходимости получения однозначного ответа относительно простоты числа, проходящего простые проверки.
Наиболее близким аналогом настоящего изобретения является способ, известный из патента US 7346637 B2, включающий в себя ряд вычислительных операций и проверок, связанных с тестируемым числом. Однако данный известный способ требует больших вычислительных мощностей, что ограничивает производительность реализующей его вычислительной системы.
Задачей является повышение достоверности алгоритма тестирования чисел на простоту и повышение при этом общей эффективности процесса обработки чисел большой разрядности.
Обеспечиваемый настоящим изобретением технический результат заключается в повышении достоверности и производительности при тестировании чисел на простоту.
Технический результат достигается благодаря тому, что в способе тестирования чисел на простоту делают вывод относительно простоты тестируемого числа исходя из критериев: а) числа Nn=(n2-n)/2, где n - тестируемое число, от тестируемого простого числа и Nn+1 от последующего составного числа всегда нацело делятся на тестируемые числа, если они простые; б) все числа N, получаемые от составных чисел, кроме составных, следующих за простыми, неделимы нацело тестируемыми числами, если они простые; в) число Nn+1, следующее за тестируемым числом, является всегда четным или делящимся на число 5. Для чего подают данные, характеризующие тестируемое число, на вход вычислительной системы, связанный с входом блока вычисления N, и вычисляют Nn. После чего передают данные в блок деления и вычисляют величину Nn/n. Затем подают данные, характеризующие численный результат, на вход блока проверки числа на целость-дробность, причем если число является дробным, то делают вывод, что тестируемое число является составным, и устанавливают выходной логический уровень вычислительной системы в состояние «0», в противном случае в блоке вычисления N вычисляют Nn+1, а в блоке деления вычисляют Nn+1/n и Nn+1/5. После чего проверяют Nn+1/n и Nn+1/5 в блоке проверки числа на целость-дробность, a Nn+1 проверяют в блоке проверки числа на четность-нечетность. Если Nn+1/n является целым числом, а Nn+1 является четным или Nn+1/5 является целым числом, то делают вывод, что тестируемое число является простым, и устанавливают выходной логический уровень вычислительной системы в состояние «1». В противном случае делают вывод, что тестируемое число является составным, и устанавливают выходной логический уровень вычислительной системы в состояние «0».
В частном случае вход вычислительной системы связывают с входом блока проверки числа на четность-нечетность, причем к вычислению Nn переходят, если проверка тестируемого числа показала нечетность данного числа. В противном случае делают вывод, что тестируемое число является составным и устанавливают выходной логический уровень вычислительной системы в состояние «0».
Изобретение поясняется следующими графическими материалами.
Фиг.1 - блок-схема алгоритма тестирования чисел на простоту.
Фиг.2 - структурная схема вычислительной системы.
Способ тестирования чисел на простоту (фиг.1) основан на закономерности Шихаева-Анохина, согласно которой: а) числа, получаемые по формуле Nn=(n2-n)/2, где n - тестируемое число, от тестируемого простого числа (и от составного числа, следующего за ним), всегда нацело делятся на тестируемые числа, если они простые; б) все числа N получаемые от составных чисел, кроме составных, следующих за простыми, неделимы нацело тестируемыми числами, если они простые;
в) число Nn+1, следующее за тестируемым числом, является всегда четным или делящимся без остатка на число 5.
Закономерность Шихаева-Апохина иллюстрируется на примере нескольких малых простых чисел, отмеченных в таблице знаком «*».
Figure 00000001
Так, при проверке является ли число 3 простым числом, исходят из следующего: n=3, N3=(32-3)/2=3, N4=(42-4)/2=6. При этом N3/n=3/3=1, a N4/n=6/3=2, то есть производные от тестируемого числа 3 числа N3 и N4 делятся на тестируемое число без остатка. Причем N4 является четным числом. Следовательно, число 3 является простым числом.
Закономерность Шихаева-Анохина справедлива и для больших чисел, что позволяет строить на ее основе производительные технические решения, обеспечивающие высокую достоверность тестирования чисел на простоту.
Тестирование чисел большой разрядности на простоту проводят при помощи вычислительной системы 1, содержащей технические средства для реализации проверки условий закономерности Шихаева-Анохина. На вход вычислительной системы 1 подают тестируемое число в виде цифровых данных. Выход вычислительной системы 1 способен принимать одно из двух возможных состояний в виде логической «1» или «0», соответствующих тому, является ли тестируемое число простым или нет.
Вычислительная система 1 включает в себя запоминающее устройство 2, инкрементор 3, блок 4 вычисления N, блок 5 деления, блок 6 проверки числа на целость-дробность, блок 7 проверки числа на четность-нечетность и устройство управления 8.
Запоминающее устройство 2 выполнено с возможностью хранения тестируемого числа, а блок 4 вычисления N выполнен с возможностью вычисления выражения Nn=(n2-n)/2, где n - тестируемое число. Устройство управления 8 выполнено с возможностью управления работой элементов вычислительной системы 1 для осуществления вычислительного процесса.
Вход вычислительной системы 1 связан с входом запоминающего устройства 2. Выход запоминающего устройства 2 связан с входом инкрементора 3, блока 4 вычисления N и блока 7 проверки числа на четность-нечетность. Выход инкрементора 3 связан с входом блока 4 вычисления N. Выход блока 4 вычисления N связан с входом блока 6 проверки числа на целость-дробность через блок 5 деления и с входом блока 7 проверки числа на четность-нечетность. Выходы блока 6 проверки числа на целость-дробность и блока 7 проверки числа на четность-нечетность связаны с информационным входом устройства управления 8, выполненного с возможностью установки выходного сигнала вычислительной системы 1 в логическое состояние «1» или «0». Управляющие выходы устройства управления 8 связаны с цепями коммутации, задающими поступление данных на вход блока 4 вычисления N и блока 7 проверки числа на четность-нечетность.
Все блоки вычислительной системы 1 являются аппаратными и выполнены на основе элементной базы цифровой микроэлектроники.
Вычислительная система 1 работает следующим образом.
На вход вычислительной системы 1 подают число для тестирования в виде цифровых данных, записываемых в запоминающее устройство 2.
Если в процессе работы допускается возможность поступления на вход вычислительной системы 1 чисел малой разрядности, то сначала производят предварительный отсев путем сравнения тестируемых чисел с рядом известных простых чисел малой разрядности для исключения основных проверок, что дополнительно повышает производительность системы.
Тестирование случайных чисел на простоту предпочтительно начинают с проверки их нечетности, для чего вход вычислительной системы 1 связывают через запоминающее устройство 2 с входом блока 7 проверки числа на четность-нечетность, связанного в свою очередь с устройством управления 8. К вычислению Nn переходят, если проверка тестируемого числа в блоке 7 показала нечетность данного числа, в противном случае делают вывод, что тестируемое число является составным, и устанавливают выходной логический уровень вычислительной системы 1 в состояние «0» при помощи устройства управления 8.
Для проведения проверки условий закономерности Шихаева-Анохина извлекают данные, характеризующие тестируемое число n, из запоминающего устройства 2 и подают их на вход блока вычисления N для вычисления текущего значения Nn, после чего передают данные в блок 5 деления и вычисляют величину Nn/n. Затем подают данные, характеризующие данный промежуточный результат, на вход блока 6 проверки числа на целость-дробность. Если число является дробным, то делают вывод, что тестируемое число n является составным, и устанавливают выходной логический уровень вычислительной системы в состояние «0». В противном случае увеличивают тестируемое число на единицу посредством инкрементора 3 и вычисляют Nn+1 в блоке 4. Затем в блоке 5 деления вычисляют Nn+1/n и Nn+1/5. После чего проверяют Nn+1 и Nn+1/5 в блоке 6 проверки числа на целость-дробность, а Nn+1 проверяют в блоке 7 проверки числа на четность-нечетность. Если Nn+1/n является целым числом, а Nn+1 является четным или Nn+1/5 является целым числом, то делают вывод, что тестируемое число является простым, и устанавливают выходной логический уровень вычислительной системы 1 в состояние «1», в противном случае делают вывод, что тестируемое число является составным, и устанавливают выходной логический уровень вычислительной системы 1 в состояние «0».
По окончании тестирования числа на простоту вычислительный процесс завершается и система 1 переходит в режим ожидания поступления на ее информационный вход следующего числа.

Claims (2)

1. Способ тестирования чисел на простоту, характеризующийся тем, что делают вывод относительно простоты тестируемого числа исходя из критериев: а) числа Nn=(n2-n)/2, где n - тестируемое число, от тестируемого простого числа и Nn+1 от последующего составного числа всегда нацело делятся на тестируемые числа, если они простые; б) все числа N, получаемые от составных чисел, кроме составных, следующих за простыми, неделимы нацело тестируемыми числами, если они простые; в) число Nn+1, следующее за тестируемым числом, является всегда четным или делящимся на число 5; для чего подают данные, характеризующие тестируемое число, на вход вычислительной системы, связанный с входом блока вычисления N, и вычисляют Nn, после чего передают данные в блок деления и вычисляют величину Nn/n, затем подают данные, характеризующие численный результат, на вход блока проверки числа на целость-дробность, причем если число является дробным, то делают вывод, что тестируемое число является составным, и устанавливают выходной логический уровень вычислительной системы в состояние «0», в противном случае в блоке вычисления N вычисляют Nn+1, а в блоке деления вычисляют Nn+1/n и Nn+1/5, после чего проверяют данные числа в блоке проверки числа на целость-дробность, a Nn+1 проверяют в блоке проверки числа на четность-нечетность, и если Nn+1/n является целым числом, a Nn+1 является четным или Nn+1/5 является целым числом, то делают вывод, что тестируемое число является простым, и устанавливают выходной логический уровень вычислительной системы в состояние «1», в противном случае делают вывод, что тестируемое число является составным, и устанавливают выходной логический уровень вычислительной системы в состояние «0».
2. Способ по п.1, в котором вход вычислительной системы связывают с входом проверки числа на четность-нечетность, а к вычислению Nn переходят, если проверка тестируемого числа показала нечетность данного числа, в противном случае делают вывод, что тестируемое число является составным, и устанавливают выходной логический уровень вычислительной системы в состояние «0».
RU2014106622/08A 2014-02-21 2014-02-21 Способ тестирования чисел на простоту RU2549129C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014106622/08A RU2549129C1 (ru) 2014-02-21 2014-02-21 Способ тестирования чисел на простоту

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014106622/08A RU2549129C1 (ru) 2014-02-21 2014-02-21 Способ тестирования чисел на простоту

Publications (1)

Publication Number Publication Date
RU2549129C1 true RU2549129C1 (ru) 2015-04-20

Family

ID=53289594

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014106622/08A RU2549129C1 (ru) 2014-02-21 2014-02-21 Способ тестирования чисел на простоту

Country Status (1)

Country Link
RU (1) RU2549129C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2619527C1 (ru) * 2016-05-18 2017-05-16 Кирилл Николаевич Шихаев Способ потокового генерирования последовательности фигурных чисел, используемой при обучении решению уравнения Ферма

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004001595A1 (en) * 2002-06-21 2003-12-31 Atmel Corporation Testing probable prime numbers for cryptographic applications
DE10326057A1 (de) * 2003-06-11 2005-01-13 Cv Cryptovision Gmbh Gegen Seitenkanalangriffe geschütztes Verfahren zum Testen einer natürlichen Zahl auf Primalität
US7043018B1 (en) * 1998-11-27 2006-05-09 Murata Kikai Kabushiki Kaisha Prime number generation method, prime number generation apparatus, and cryptographic system
US7346637B2 (en) * 2003-07-31 2008-03-18 Indian Institute Of Technology Polynomial time deterministic method for testing primality of numbers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043018B1 (en) * 1998-11-27 2006-05-09 Murata Kikai Kabushiki Kaisha Prime number generation method, prime number generation apparatus, and cryptographic system
WO2004001595A1 (en) * 2002-06-21 2003-12-31 Atmel Corporation Testing probable prime numbers for cryptographic applications
DE10326057A1 (de) * 2003-06-11 2005-01-13 Cv Cryptovision Gmbh Gegen Seitenkanalangriffe geschütztes Verfahren zum Testen einer natürlichen Zahl auf Primalität
US7346637B2 (en) * 2003-07-31 2008-03-18 Indian Institute Of Technology Polynomial time deterministic method for testing primality of numbers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ВАСИЛЕНКО О.Н. ТЕОРЕТИКО-ЧИСЛОВЫЕ АЛГОРИТМЫ В КРИПТОГРАФИИ. Москва, МЦНМО, 2003, с. 12-56. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2619527C1 (ru) * 2016-05-18 2017-05-16 Кирилл Николаевич Шихаев Способ потокового генерирования последовательности фигурных чисел, используемой при обучении решению уравнения Ферма

Similar Documents

Publication Publication Date Title
EP3246899A1 (en) Random number expanding device, random number expanding method, and random number expanding program
Bos et al. Solving a 112-bit prime elliptic curve discrete logarithm problem on game consoles using sloppy reduction
CY1123629T1 (el) Μεθοδοι και συσκευη για μια κατανεμημενη βαση δεδομενων σε ενα δικτυο
WO2017020590A1 (zh) 一种芯片验证方法和装置、设备、存储介质
RU2016129943A (ru) Настройка дескриптора каждого признака в режиме онлайн
JP2007155715A (ja) 計測処理中にメタデータの検証を実施する為のシステム及び方法
JP2013113978A (ja) 半導体装置及びicカード
JP2010531018A5 (ru)
Güldal et al. N-Queens solving algorithm by sets and backtracking
CN113342671B (zh) 对运算模块进行验证的方法、装置、电子设备和介质
RU2549129C1 (ru) Способ тестирования чисел на простоту
JP5526284B2 (ja) 代理計算システム、方法、依頼装置及びプログラム
JP6246239B2 (ja) 素数生成のための方法およびデバイス
CN103929305A (zh) Sm2签名算法的实现方法
CN110495133B (zh) 用于生成用于密码应用的素数的方法
Koundinya Performance Analysis of Parallel Pollard's Rho Algorithm
RU2666303C1 (ru) Способ и устройство для вычисления хэш-функции
CN105912834A (zh) 用于检查随机数序列的熵的装置和方法
RU142633U1 (ru) Вычислительная система для тестирования чисел на простоту
US9419793B2 (en) Method for generating large prime number in embedded system
Mandrona et al. Comparative analysis of pseudorandom bit sequence generators
Uno et al. Chosen-message electromagnetic analysis against cryptographic software on embedded OS
CN107003903B (zh) 使用多个不同且独立的分支来执行敏感计算的方法
RU2016146739A (ru) Способ выполнения отказоустойчивых вычислений
JP2018195274A (ja) Cpuのアーキテクチャを上手く使った、自然数を素因数分解する方法

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170222