RU2471300C2 - Способ и устройство генерации сжатого rsa модуля - Google Patents
Способ и устройство генерации сжатого rsa модуля Download PDFInfo
- Publication number
- RU2471300C2 RU2471300C2 RU2009135795/08A RU2009135795A RU2471300C2 RU 2471300 C2 RU2471300 C2 RU 2471300C2 RU 2009135795/08 A RU2009135795/08 A RU 2009135795/08A RU 2009135795 A RU2009135795 A RU 2009135795A RU 2471300 C2 RU2471300 C2 RU 2471300C2
- Authority
- RU
- Russia
- Prior art keywords
- module
- rsa
- prime
- gcd
- interval
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Measuring Fluid Pressure (AREA)
Abstract
Изобретение относится к защите информации, а именно к алгоритмам шифрования с открытым ключом. Техническим результатом является повышение быстродействия. Технический результат достигается тем, что в способе генерации множителей RSA модуля N с заранее определенной частью Nh и заранее неопределенной частью N1 RSA модуль содержит, по меньшей мере, два множителя, при этом способ содержит этапы, на которых: генерируют первое простое число p в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p; получают значение Nh, которое образует часть N; генерируют второе простое число q в интервале таким образом, что gcd(q-1,e)=1 и N=Nh || N1, где N1=(pq)mod 2n-k; и выдают по меньшей мере сжатое без потерь представление N, что позволяет однозначно восстановить N; при этом q случайным образом генерируется в заранее определенном интервале, зависящем от p и Nh так, чтобы pq было RSA модулем, частью которого является Nh, которое содержит k бит и возглавляет RSA модуль, который является n-битным модулем. 4 н. и 2 з.п. ф-лы, 1 ил.
Description
ОБЛАСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение, в общем, относится к алгоритмам шифрования с открытым ключом, а более определенно к сжатым представлениям RSA модулей (Rivest-Shamir-Adleman).
Область техники, к которой относится изобретение
Этот раздел предназначен для ознакомления читателя с различными аспектами уровня техники, которые имеют отношение к различным аспектам настоящего изобретения, которые описаны и/или приведены в формуле изобретения ниже. Предполагается, что данное описание будет полезно, так как оно дает читателю основополагающую информацию, способствующую лучшему пониманию различных аспектов настоящего изобретения. Соответственно, должно быть понятно, что эти аспекты следует воспринимать в упомянутом смысле, а не как признание предшествующего уровня техники.
Пусть N=pq - это произведение двух больших простых чисел. Обозначим через e и d открытый и секретный показатели, удовлетворяющие ed=1 (mod λ(N)), при этом gcd(e,λ(N))=1, где λ - это функция Кармикаэля (Carmichael). Так как N=pq, получаем, что λ(N)=lcm(p-1,q-1). Для данного x<N открытая операция (например, шифрование сообщения или проверка подписи) состоит в возведении числа x в степень e по модулю N, то есть в вычислении y=x e mod N. Тогда, имея y, соответствующая секретная операция (расшифровка зашифрованного текста или генерация подписи) состоит в вычислении y d mod N. Из определения e и d, очевидно, получаем, что y d ≡x(mod N). Эта секретная операция может быть осуществлена с высокой скоростью посредством китайских остатков (режим CRT - Chinese Remainder Theorem). Производятся независимые вычисления по модулю p и q, которые затем объединяются. В данном случае, секретными параметрами являются {p,q, d p , d q , i q }, где d p =d mod(p-1), d q =d mod(q-1), а iq=q -1 mod p. После этого мы получаем y d mod N как CRT(x p, x q )=x q +q [i q (x p -x q )mod p], где x p =y dp mod p и x q =y dq mod q.
Подводя итог, (двухфакторный) RSA модуль N=pq является произведением двух больших простых чисел p и q, удовлетворяющих gcd(λ(N),e)=1. Если n представляет собой размер числа N в битах, то для некоторого 1<n0<n p должно лежать в интервале , а q - в интервале , так что 2 n-1 <N=pq<2 n. Из соображений безопасности, как правило, предпочитают использовать так называемые сбалансированные модули, что означает, что n=2n 0.
Типичный диапазон RSA модуля находится в пределах от 1024 до 4096 битов. Для традиционных приложений обычно требуются модули по меньшей мере 2048 битов. Однако программы и/или устройства, выполняющие RSA приложения, могут быть созданы лишь для поддержки 1024-битных модулей. Идея заключается в сжатии модулей для того, чтобы они помешались в более короткие буферы или полосы пропускания: вместо того, чтобы хранить/передавать полные RSA модули, используют их сжатое представление без потерь. Это заодно решает проблему совместимости между различными версиями программ и/или устройств. Самостоятельный интерес имеет и использование такого сжатия для улучшения эффективности: экономия памяти и/или полосы пропускания.
Arjen K. Lenstra (Generating RSA moduli with a predetermined portion. Advances in Cryptology -ASIACRYPT '98, volume 1514 of Lecture Notes in Computer Science, pages 1-10. Springer, 1998) предложил способ генерации, но этот способ не годится для устройств с ограниченными ресурсами, типа пластиковых карт c микросхемами (смарткарты), так как второе простое число q создается с приращениями, что может привести к недопустимо большому времени выполнения.
Настоящее изобретение преодолевает проблемы, возникавшие у предшествующего уровня техники, путем использования генерации сжатых RSA модулей с помощью генерации двух простых чисел в предопределенном интервале. В результате выгодным может быть использование эффективных алгоритмов генерации простых чисел, такие как алгоритмы, предложенные Marc Joye, Pascal Paillier и Serge Vaudenay (Efficient generation of prime numbers. Cryptographic Hardware and Embedded Systems -CHES 2000, volume 1965 of Lecture Notes in Computer Science, pages 340-354. Springer, 2000) и усовершенствованные Marc Joye и Pascal Paillier (Fast generation of prime numbers on portable devices: An update. Cryptographic Hardware and Embedded Systems -CHES 2006, volume 4249 of Lecture Notes in Computer Science, pages 160-173, Springer, 2006). В частности, они хорошо приспособлены для использования в ситуациях, где необходима генерация 2048 битного RSA модуля N (то есть n=2048) с фиксированным открытым показателем e=216 +1, так как для хранения или представления N требуется (намного) меньше чем 2048 бит.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В первом аспекте изобретение направлено на способ генерации множителей RSA модуля N с предопределенной частью N h. RSA модуль содержит, по меньшей мере, два множителя. Сначала генерируется первое простое число p, получается число N h , которое формирует часть модуля N, генерируется второе простое число q, а на выходе получаем, по меньшей мере, сжатое представление модуля N без потерь, причем сжатое представление без потерь позволяет однозначно восстановить модуль N. Второе простое число q генерируется в некотором интервале, зависящем от p и N h, таким образом, что pq представляет собой RSA модуль, который «совместно использует» N h.
В первом предпочтительном варианте воплощения эта предопределенная часть N h возглавляет RSA модуль. Преимуществом является то, что RSA модуль - это n-битный модуль, и предопределенная часть N h содержит k бит, а первое простое число p генерируется в интервале так, чтобы gcd(p-1,e)=1; второе простое число q генерируется в интервале так, чтобы gcd(q-1,e)=1; а N=N h||N 1, где N 1 =(pq)mod 2 n-k.
Во втором предпочтительном варианте воплощения эта предопределенная часть N h завершает RSA модуль. Преимуществом является то, что первое простое число p генерируется в интервале так, чтобы gcd(p-1,e)=1; второе простое число q генерируется вычислением q=C+q'2 k , где , а q' генерируется в интервале так, чтобы gcd(q-1,e)=1, определяется и на выходе получаем Ñ={N 1 , s 0 [k,n]}.
В третьем предпочтительном варианте воплощения модуль N h получается посредством зашифровывания, по меньшей мере, части первого простого числа p.
Во втором аспекте изобретение посвящено устройству для генерации множителей RSA модуля N с предопределенной частью N h, где RSA модуль состоит, по меньшей мере, из двух множителей. Данное устройство включает в себя процессор для генерации первого простого числа p, получения значения N h, которое формирует часть модуля N, и генерации второго простого числа q в интервале, зависящем от p и N h, таким образом, чтобы pq представлял собой RSA модуль, который (совместно) использует N h. Кроме того, это устройство также содержит интерфейс для вывода, по меньшей мере, сжатого представления модуля N без потерь, что позволяет осуществить однозначное восстановление модуля N.
В первом предпочтительном варианте воплощения это устройство является пластиковой картой с микросхемой (смарткартой).
Термин «совместно использует» интерпретируется как имеющее одинаковое значение в той части, которая совместно используется. Например, десятичные представления чисел 1234567890abcdef и 123456789abcdef0 совместно используют (содержат как часть) число 123456789 в начале этих чисел.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Различные признаки и преимущества данного изобретения и предпочтительных вариантов воплощения будут теперь описаны со ссылками на сопроводительные чертежи, которые приведены только для иллюстрации, но не ограничивают объем настоящего изобретения, среди которых на фиг.1 показано устройство для генерации RSA модулей, согласно предпочтительному варианту воплощения данного изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ВОПЛОЩЕНИЙ
Общая идея
Общая идея изобретения состоит в фиксации большой части RSA модуля N (например, вплоть до его передней половины предпочтительного варианта воплощения), в результате чего простые числа, образующие N, могут быть произвольным образом взяты из некоторого интервала (а не перебираются с некоторым шагом, как это предлагалось ранее). Эта большая часть RSA модуля либо вычисляется генератором (открытого) псевдослучайного числа из короткого случайного начального числа или же совместно используется среди пользователей.
Это приводит к более быстрой (и более легкой для осуществления) технике сжатия RSA модулей. Более того, совместно произведенные таким образом RSA модули неотличимы от обычных RSA модулей (то есть нет различий в распределении выходных данных). И, наконец, они совместимы с самой современной техникой генерации простых чисел (и это не приводит к дополнительным расходам).
Предпочтительный вариант воплощения
Пусть 1<k≤n 0. RSA модуль N размера n-бит, являющийся произведением двух больших простых чисел, может быть сгенерирован следующим образом.
1. Используя генератор псевдослучайных чисел, производится k-битное целое число N h, исходя из случайного начального числа s0:
Отметим, что применение операции ИЛИ c числом 2 k-1 обеспечивает то, что старшим битом числа N h является 1.
Специалист в данной области техники должен оценить и то, что, естественно, также возможен и выбор значения N h.
3. Генерируется случайное простое число q:
такое, что gcd(q-1,e)=1. Если такое простое число q найти не удалось, процесс повторяется.
4. Определяется N 1 =(pq)mod 2 n-k , и на выходе получаем Ñ={N 1 ,s 0 ,[k,n]}.
Имея данное представление Ñ, теперь легко открыто восстановить соответствующий n-битный RSA модуль N, а именно N= N h ||N l, где N h представляет собой k-битное целое число, получаемое как .
Следует заметить, что если 2n-k <p, то диапазон, из которого выбирается число q, может оказаться пустым. Именно поэтому число k должно быть равно, самое большее, n 0 . Следовательно, в самом лучшем случае, данный способ сжимает n-битные RSA модули вплоть до n0 бит. Самый плохой случай - это сбалансированные RSA модули (то есть n=2n 0), позволяющие получить (в самом лучшем случае) только коэффициент сжатия 1:2.
Первый альтернативный вариант воплощения
В этом альтернативном варианте фиксируются хвостовые биты модуля N.
Важным является то, что не нужно включать старший бит числа N 1 в Ñ, так как он гарантированно равен 1.
Более того, можно также фиксировать несколько начальных битов и несколько битов в хвостовой части модуля N.
Второй альтернативный вариант воплощения
Предлагаемые способы могут быть адаптированы для адаптации RSA модулей, состоящих не только из двух, но и из большего числа множителей, например, 3-факторные RSA модули (с тремя простыми множителями) или RSA модули вида N=p r q. Для дальнейшего описания этого полезно обратиться к статье Tsuyoshi Takagi (Fast RSA-type cryptosystem modulo p k q. Advances in Cryptology -CRYPTO'98, volume 1462 of Lecture Notes in Computer Science, pages 318-326. Springer, 1998).
Третий альтернативный вариант воплощения
Предлагаемые нами способы применимы также и в случае, когда общая часть RSA модуля N, скажем Nh, совместно используется среди пользователей или является общей для всех пользователей для данного приложения. В этом случае нет необходимости пересылать случайное начальное число s 0 (также как и значения k и n).
Устройство
На Фиг.1 показано устройство для генерации RSA модулей в представленном варианте воплощения изобретения. Устройство 100 для генерации содержит, по меньшей мере, один процессор 110, по меньшей мере, одну память 120, средства 130 коммуникации, которые могут содержать отдельные блоки ввода и вывода, и, вероятно, пользовательский интерфейс 140. Обрабатывающее средство выполнено с возможностью осуществления любого из способов, описанных выше.
Депонирование ключей
Важным является и то, что данное изобретение с успехом может применяться для целей депонирования ключей. В случае RSA модулей N=pq знание примерно половины бит у числа p (или q) позволяет восстановить секретный ключ, например, путем использования техники сокращения базиса решетки (lattice reduction). Следовательно, если около половины (или больше) бит числа p зашифрованы с использованием секретного ключа K и вложены в представление открытого RSA модуля N, тогда «авторитетный специалист», знающий K, может восстановить число p по числу N и, таким образом, вычислить соответствующий секретный RSA ключ. Зашифрованные биты числа p могут содержаться в предопределенной заранее части RSA модуля.
Еще более важным является то, что способ настоящего изобретения особенно выгоден для использования в смарткартах и других устройствах с ограниченными ресурсами, так как этот способ использует относительно мало ресурсов.
Каждый из признаков, раскрытых в данном описании изобретения, а также (если это приемлемо) в формуле изобретения и чертежах может быть представлен как по отдельности, так и в подходящей комбинации. При необходимости признаки могут быть реализованы как в оборудовании, так и в программном обеспечении или в их комбинации.
При этом всюду ссылка на "один конкретный вариант воплощения" или на "вариант воплощения" означает, что тот или иной признак, структура или характеристика, описанная в связи с этим вариантом воплощения, может быть включена, по меньшей мере, в одну из реализаций данного изобретения. Любые появления фразы "в варианте воплощения" в различных местах данного текста не обязательно все ссылаются на один и тот же вариант воплощения, также как отдельные или альтернативные варианты воплощений не обязательно взаимно исключают другие варианты воплощения.
Ссылочные позиции, приведенные в формуле изобретения, предназначены лишь для иллюстрации и не накладывают какого-либо ограничения на объем формулы изобретения.
Claims (6)
1. Способ генерации множителей RSA модуля N с заранее определенной частью Nl и заранее неопределенной частью N1, причем RSA модуль содержит, по меньшей мере, два множителя, при этом способ содержит этапы, на которых:
генерируют первое простое число p;
получают значение Nh, которое образует часть модуля N;
генерируют второе простое число q; и
выдают по меньшей мере сжатое без потерь представление RSA модуля N, что позволяет однозначно восстановить RSA модуль N;
при этом второе простое число q случайным образом генерируется в заранее определенном интервале, зависящем от р и Nh так, чтобы произведение pq было RSA модулем, частью которого является Nh; причем заранее определенная часть Nh возглавляет RSA модуль; причем способ, отличающийся тем, что RSA модуль является n-битным модулем, а заранее определенная часть Nh содержит k бит, и первое простое число p генерируется в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p;
второе простое число q генерируется в интервале таким образом, что gcd(q-1,e)=1; и N=Nh || Nl, где Nl=(pq)mod 2n-k.
генерируют первое простое число p;
получают значение Nh, которое образует часть модуля N;
генерируют второе простое число q; и
выдают по меньшей мере сжатое без потерь представление RSA модуля N, что позволяет однозначно восстановить RSA модуль N;
при этом второе простое число q случайным образом генерируется в заранее определенном интервале, зависящем от р и Nh так, чтобы произведение pq было RSA модулем, частью которого является Nh; причем заранее определенная часть Nh возглавляет RSA модуль; причем способ, отличающийся тем, что RSA модуль является n-битным модулем, а заранее определенная часть Nh содержит k бит, и первое простое число p генерируется в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p;
второе простое число q генерируется в интервале таким образом, что gcd(q-1,e)=1; и N=Nh || Nl, где Nl=(pq)mod 2n-k.
2. Способ генерации множителей RSA модуля N с заранее определенной частью Nh и заранее неопределенной частью N1, причем RSA модуль содержит, по меньшей мере, два множителя, при этом способ содержит этапы, на которых:
генерируют первое простое число p в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p;
получают значение Nh, которое образует часть модуля N;
генерируют второе простое число q посредством вычисления q=C+q'2k, где а q' генерируется в интервале так, чтобы gcd(q-1,e)=1; определяют заранее неопределенную часть Nl как и
выдают по меньшей мере сжатое без потерь представление Ñ RSA модуля N, что позволяет однозначно восстановить RSA модуль N, где Ñ={Nl,s0,[k,n]}; причем второе простое число q случайным образом генерируется в заранее определенном интервале, зависящем от р и Nh так, чтобы произведение pq было RSA модулем, частью которого является Nh; и причем заранее определенная часть Nh завершает RSA модуль.
генерируют первое простое число p в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p;
получают значение Nh, которое образует часть модуля N;
генерируют второе простое число q посредством вычисления q=C+q'2k, где а q' генерируется в интервале так, чтобы gcd(q-1,e)=1; определяют заранее неопределенную часть Nl как и
выдают по меньшей мере сжатое без потерь представление Ñ RSA модуля N, что позволяет однозначно восстановить RSA модуль N, где Ñ={Nl,s0,[k,n]}; причем второе простое число q случайным образом генерируется в заранее определенном интервале, зависящем от р и Nh так, чтобы произведение pq было RSA модулем, частью которого является Nh; и причем заранее определенная часть Nh завершает RSA модуль.
3. Способ по п.1 или 2, в котором Nh получают шифрованием, по меньшей мере, части первого простого числа р.
4. Устройство для генерации множителей RSA модуля N с заранее определенной частью Nh и заранее неопределенной частью Nl, причем RSA модуль содержит, по меньшей мере, два множителя, при этом упомянутое устройство содержит: процессор (110) сконфигурированный с возможностью:
генерировать первое простое число p;
получать значение Nh, которое образует часть модуля N; и
случайным образом генерировать второе простое число q в заранее определенном интервале, зависящем от р и Nh так, чтобы число pq было RSA модулем, частью которого является Nh; и интерфейс, сконфигурированный с возможностью выводить, по меньшей мере, сжатое без потерь представление RSA модуля N, что делает возможным однозначное восстановление RSA модуля N; причем заранее определенная часть Nh возглавляет RSA модуль; причем RSA модуль является n-битным модулем, а заранее определенная часть Nh содержит k бит, и первое простое число p генерируется в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p; второе простое число q генерируется в интервале таким образом, что gcd(q-1,e)=1; и N=Nh || Nl, где Nl=(pq)mod 2n-k.
генерировать первое простое число p;
получать значение Nh, которое образует часть модуля N; и
случайным образом генерировать второе простое число q в заранее определенном интервале, зависящем от р и Nh так, чтобы число pq было RSA модулем, частью которого является Nh; и интерфейс, сконфигурированный с возможностью выводить, по меньшей мере, сжатое без потерь представление RSA модуля N, что делает возможным однозначное восстановление RSA модуля N; причем заранее определенная часть Nh возглавляет RSA модуль; причем RSA модуль является n-битным модулем, а заранее определенная часть Nh содержит k бит, и первое простое число p генерируется в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p; второе простое число q генерируется в интервале таким образом, что gcd(q-1,e)=1; и N=Nh || Nl, где Nl=(pq)mod 2n-k.
5. Устройство для генерации множителей RSA модуля N с заранее определенной частью Nh и заранее неопределенной частью Nl, причем RSA модуль содержит, по меньшей мере, два множителя, при этом упомянутое устройство содержит: процессор (110), сконфигурированный с возможностью:
генерировать первое простое число p в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p;
получать значение Nh, которое образует часть RSA модуля N; и
генерировать второе простое число q посредством вычисления q=C+q'2k, где a q' генерируется в интервале так, чтобы gcd(q-1,e)=1; определять заранее неопределенную часть Nl как и интерфейс, сконфигурированный с возможностью:
выдавать по меньшей мере сжатое без потерь представление Ñ RSA модуля N, что позволяет однозначно восстановить RSA модуль N, где Ñ={Nl, s0, [k,n]}; причем второе простое число q случайным образом генерируется в заранее определенном интервале, зависящем от p и Nh так, чтобы произведение pq было RSA модулем, частью которого является Nh; и причем заранее определенная часть Nh завершает RSA модуль.
генерировать первое простое число p в интервале таким образом, что gcd(p-1,e)=1, где е является открытым показателем и (n-n0) является битовой длиной p;
получать значение Nh, которое образует часть RSA модуля N; и
генерировать второе простое число q посредством вычисления q=C+q'2k, где a q' генерируется в интервале так, чтобы gcd(q-1,e)=1; определять заранее неопределенную часть Nl как и интерфейс, сконфигурированный с возможностью:
выдавать по меньшей мере сжатое без потерь представление Ñ RSA модуля N, что позволяет однозначно восстановить RSA модуль N, где Ñ={Nl, s0, [k,n]}; причем второе простое число q случайным образом генерируется в заранее определенном интервале, зависящем от p и Nh так, чтобы произведение pq было RSA модулем, частью которого является Nh; и причем заранее определенная часть Nh завершает RSA модуль.
6. Устройство по п.4 или 5, в котором устройство является смарткартой.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07300830.2 | 2007-02-27 | ||
EP07300830 | 2007-02-27 | ||
PCT/EP2008/052017 WO2008104482A2 (en) | 2007-02-27 | 2008-02-19 | A method and a device for generating compressed rsa moduli |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009135795A RU2009135795A (ru) | 2011-04-10 |
RU2471300C2 true RU2471300C2 (ru) | 2012-12-27 |
Family
ID=39563487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009135795/08A RU2471300C2 (ru) | 2007-02-27 | 2008-02-19 | Способ и устройство генерации сжатого rsa модуля |
Country Status (8)
Country | Link |
---|---|
US (1) | US8218760B2 (ru) |
EP (1) | EP2115933A2 (ru) |
JP (1) | JP5291637B2 (ru) |
KR (1) | KR101491681B1 (ru) |
CN (1) | CN101622817B (ru) |
BR (1) | BRPI0807485A2 (ru) |
RU (1) | RU2471300C2 (ru) |
WO (1) | WO2008104482A2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MD4511C1 (ru) * | 2016-04-20 | 2018-03-31 | Анатолий БАЛАБАНОВ | Устройство и способ криптографической защиты двоичной информации (варианты) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008046291B4 (de) * | 2008-09-08 | 2012-02-23 | Siemens Aktiengesellschaft | Effiziente Speicherung kryptographischer Parameter |
US8971530B2 (en) | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
US9594765B2 (en) | 2014-12-27 | 2017-03-14 | Ascava, Inc. | Performing keyword-based search and retrieval on data that has been losslessly reduced using a prime data sieve |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330332B1 (en) * | 1997-07-30 | 2001-12-11 | Fujitsu Limited | Prime number generation apparatus B-smoothness judgement apparatus and computer memory product |
WO2002011360A2 (en) * | 2000-07-28 | 2002-02-07 | Atmel Corporation | Cryptography private key storage and recovery method and apparatus |
EP1251654A2 (en) * | 2001-04-17 | 2002-10-23 | Matsushita Electric Industrial Co., Ltd. | Information security device, prime number generation device, and prime number generation method |
US20020154768A1 (en) * | 1998-04-08 | 2002-10-24 | Lenstra Arjen K. | Generating RSA moduli including a predetermined portion |
RU2276465C2 (ru) * | 2000-05-17 | 2006-05-10 | Гизеке Унд Девриент Гмбх | Криптографический способ и чип-карта для его осуществления |
RU2280896C1 (ru) * | 2005-01-24 | 2006-07-27 | Николай Андреевич Молдовян | Способ проверки подлинности электронной цифровой подписи, заверяющей электронный документ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9410337D0 (en) * | 1994-05-24 | 1994-07-13 | Cryptech Systems Inc | Key transmission system |
EP0933695B1 (en) * | 1998-01-28 | 2006-03-15 | Hitachi, Ltd. | IC card equipped with elliptic curve encryption processing facility |
US6928163B1 (en) * | 1999-07-20 | 2005-08-09 | International Business Machines Corporation | Methods, systems and computer program products for generating user-dependent RSA values without storing seeds |
FR2811442B1 (fr) * | 2000-07-10 | 2002-09-13 | Gemplus Card Int | Procede de generation d'une cle electronique a partir d'un nombre premier compris dans un intervalle determine et dispositif de mise en oeuvre du procede |
US7149763B2 (en) * | 2002-09-09 | 2006-12-12 | Gemplus | Method for generating a random prime number within a predetermined interval |
US20040264702A1 (en) * | 2003-06-30 | 2004-12-30 | Eastlake Donald E. | Method and apparatus for producing cryptographic keys |
-
2008
- 2008-02-19 US US12/449,654 patent/US8218760B2/en not_active Expired - Fee Related
- 2008-02-19 JP JP2009551172A patent/JP5291637B2/ja not_active Expired - Fee Related
- 2008-02-19 KR KR1020097016766A patent/KR101491681B1/ko not_active IP Right Cessation
- 2008-02-19 WO PCT/EP2008/052017 patent/WO2008104482A2/en active Application Filing
- 2008-02-19 CN CN2008800060999A patent/CN101622817B/zh not_active Expired - Fee Related
- 2008-02-19 EP EP08709108A patent/EP2115933A2/en not_active Withdrawn
- 2008-02-19 RU RU2009135795/08A patent/RU2471300C2/ru not_active IP Right Cessation
- 2008-02-19 BR BRPI0807485-2A2A patent/BRPI0807485A2/pt not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330332B1 (en) * | 1997-07-30 | 2001-12-11 | Fujitsu Limited | Prime number generation apparatus B-smoothness judgement apparatus and computer memory product |
US20020154768A1 (en) * | 1998-04-08 | 2002-10-24 | Lenstra Arjen K. | Generating RSA moduli including a predetermined portion |
RU2276465C2 (ru) * | 2000-05-17 | 2006-05-10 | Гизеке Унд Девриент Гмбх | Криптографический способ и чип-карта для его осуществления |
WO2002011360A2 (en) * | 2000-07-28 | 2002-02-07 | Atmel Corporation | Cryptography private key storage and recovery method and apparatus |
EP1251654A2 (en) * | 2001-04-17 | 2002-10-23 | Matsushita Electric Industrial Co., Ltd. | Information security device, prime number generation device, and prime number generation method |
RU2280896C1 (ru) * | 2005-01-24 | 2006-07-27 | Николай Андреевич Молдовян | Способ проверки подлинности электронной цифровой подписи, заверяющей электронный документ |
Non-Patent Citations (1)
Title |
---|
Arjen K. Lenstra, "Generating RSA moduli with a Predetermined Portion", Lecture notes in computer science, Springer Verlag, Berlin, 01.10.1998, найдено в Интернете 23.01.2012 по адресу: "http://infoscience.epfl.ch/record/149484/files/EPFL-CONF-149484.pdf". * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MD4511C1 (ru) * | 2016-04-20 | 2018-03-31 | Анатолий БАЛАБАНОВ | Устройство и способ криптографической защиты двоичной информации (варианты) |
Also Published As
Publication number | Publication date |
---|---|
CN101622817A (zh) | 2010-01-06 |
WO2008104482A2 (en) | 2008-09-04 |
JP5291637B2 (ja) | 2013-09-18 |
RU2009135795A (ru) | 2011-04-10 |
US8218760B2 (en) | 2012-07-10 |
WO2008104482A4 (en) | 2009-01-29 |
EP2115933A2 (en) | 2009-11-11 |
KR20090119759A (ko) | 2009-11-19 |
BRPI0807485A2 (pt) | 2014-05-13 |
KR101491681B1 (ko) | 2015-02-09 |
WO2008104482A3 (en) | 2008-11-20 |
US20100091983A1 (en) | 2010-04-15 |
CN101622817B (zh) | 2012-03-28 |
JP2010519598A (ja) | 2010-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pietrzak | Simple verifiable delay functions | |
Coron et al. | On the security of RSA padding | |
Menezes | Elliptic curve public key cryptosystems | |
EP0949563A2 (en) | A method for generating pseudo-random numbers | |
Sander | Efficient accumulators without trapdoor extended abstract | |
KR20000071078A (ko) | 유한 필드상의 이산 대수 암호시스템의 원분 다항식 구조 | |
JP4137385B2 (ja) | 公開鍵および秘密鍵による暗号化方法 | |
RU2471300C2 (ru) | Способ и устройство генерации сжатого rsa модуля | |
Barreto et al. | Efficient computation of roots in finite fields | |
US20050063548A1 (en) | Method and apparatus for exponentiation in an RSA cryptosystem | |
Howe et al. | Compact and provably secure lattice-based signatures in hardware | |
Vasco et al. | A survey of hard core functions | |
Joye | RSA moduli with a predetermined portion: Techniques and applications | |
JP4765108B2 (ja) | 公開鍵暗号化方法のための電子鍵を生成するための方法およびこの方法を使用するセキュア・ポータブル・オブジェクト | |
US20030165238A1 (en) | A method for encoding long messages for electronic signature schemes based on rsa | |
Brennan et al. | Analysis of iterated modular exponentiation: the orbits of xα mod N | |
Jung | Implementing the RSA cryptosystem | |
US8135131B2 (en) | Method for calculating compressed RSA moduli | |
RU2409903C2 (ru) | Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ | |
JP3796867B2 (ja) | 素数判定方法および装置 | |
Campagna et al. | Key recovery method for CRT implementation of rsa | |
WO2018176122A1 (en) | Method and system for selecting a secure prime for finite field diffie-hellman | |
KR20020003059A (ko) | 정수 또는 다항식 행열을 이용한 공개키 암호시스템 | |
Boneh | Review of SEC1: Elliptic Curve Cryptography | |
JIANG | Applications of Number Theory in Cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20170220 |