RU2403682C2 - Способ и устройство для выполнения криптографического вычисления - Google Patents
Способ и устройство для выполнения криптографического вычисления Download PDFInfo
- Publication number
- RU2403682C2 RU2403682C2 RU2007127908/09A RU2007127908A RU2403682C2 RU 2403682 C2 RU2403682 C2 RU 2403682C2 RU 2007127908/09 A RU2007127908/09 A RU 2007127908/09A RU 2007127908 A RU2007127908 A RU 2007127908A RU 2403682 C2 RU2403682 C2 RU 2403682C2
- Authority
- RU
- Russia
- Prior art keywords
- numbers
- integers
- prime number
- electronic component
- integer
- Prior art date
Links
Images
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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/3033—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 details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
Изобретение относится к криптографии, а именно к защите секретности ключей, используемых в криптографических алгоритмах. Техническим результатом является повышение эффективности способа генерирования ключа. Технический результат достигается тем, что производят генерирование ключа в электронном компоненте для определенного криптографического алгоритма. Для этого в запоминающее устройство электронного компонента вводят простое число Р и генерируют, по меньшей мере, одно секретное простое число. Для генерирования секретного простого числа на этапе /а/ случайно выбирают два целых числа p1' и р2', сумма которых равна числу р'; на этапе /б/ решают (12), является ли указанное число р' простым числом, на основании комбинирования хранящегося в памяти простого числа Р с числами p1' и р2', таким образом, чтобы сохранить секретность указанного числа р'; на этапе /в/, если решают, что число р' является простым числом, числа p1' и р2' вводят (14) в запоминающее устройство электронного компонента, в противном случае повторяют этапы /а/ и /б/. 2 н. и 14 з.п. ф-лы, 2 ил.
Description
Настоящее изобретение относится к области криптографии и, в частности, к защите секретности ключей, используемых в криптографических алгоритмах.
Криптографические алгоритмы позволяют, в частности, шифровать данные и/или дешифровать данные. Такие алгоритмы можно также использовать для многих других целей. Действительно, они могут также служить для выполнения подписи или для аутентификации определенной информации. Они могут также использоваться в области установки даты и времени при начальной загрузке компьютерных устройств.
Как правило, такие алгоритмы содержит последовательность из нескольких операций или расчетов, которые применяют последовательно для одной шифруемой данной с целью получения зашифрованной данной или для зашифрованной данной с целью получения дешифрованной данной.
Среди этих алгоритмов некоторые основаны на использовании секретных ключей, тогда как другие основаны на смешанном использовании ключей общего пользования или открытых ключей и секретных ключей.
Например, следующие разделы иллюстрируют применения этих алгоритмов для шифрования и дешифрования данных.
Согласно общему принципу таких вариантов применения криптографических алгоритмов с открытым ключом открытые ключи доступны для всех, и любой желающий может отправить данные, зашифрованные при помощи открытых ключей; однако только обладатель соответствующих секретных ключей может дешифровать эти данные.
Защита криптографического алгоритма с открытым ключом основана на том, что знание открытых ключей не позволяет найти соответствующие секретные ключи и поэтому не позволяет дешифровать данные.
Так, известен метод шифрования с открытым ключом, называемый RSA по первым буквам фамилий его создателей Ривеста, Шамира, Адельмана. Этот метод является самым старым и самым распространенным в этой области.
Согласно этому методу выбирают четыре числа, обозначаемые р, q, e и d. Числа р и q являются двумя разными простыми числами. Их генерируют случайно.
Числа d и e проверяют следующее уравнение:
e*d=1 modulo(p-1)(q-1).
В этом случае можно использовать алгоритм Евклида для генерирования d на основании е, р и q при помощи расчетов, хорошо известных специалистам.
Затем число, полученное от произведения чисел р и q, обозначают n (модуль).
Таким образом, пара чисел n и е образует ключ общего пользования, тогда как пара чисел n и d образует ключ индивидуального пользования.
После этого для отправки данной, соответствующей целому числу М, находящемуся в пределах от 0 до n-1, вычисляют предназначенное для отправки соответствующее закодированное число С при помощи следующего уравнения:
С=Me modulo n
По получении кодированного сообщения С обладатель секретного ключа вычисляет промежуточное значение числа D:
D=Cd modulo n
После этого получают оригинальное незашифрованное сообщение М при помощи следующего уравнения:
D=Mde=М modulo n
Таким образом, с учетом всего вышеизложенного можно отметить, что такие алгоритмы с открытым ключом основаны на генерировании простых чисел. В частности, алгоритмы с открытым ключом, такие как RSA, могут потребовать генерирования очень больших простых чисел. Так, может потребоваться генерировать простые числа, содержащие около 500 цифр.
В алгоритмах типа RSA отмечается, что модуль n принадлежит открытому ключу и может, таким образом, быть известен всем; тогда как число d должно оставаться секретным для обеспечения защиты алгоритма. Однако число d получают из чисел р и q. Следовательно, для защиты таких алгоритмов необходимо, чтобы числа р и q оставались секретными.
Как правило, для криптографической программы электронной платы генерирование этих ключей происходит в среде, защищенной от любых атак, например, такой как завод для изготовления электронного компонента, в котором выполняется криптографический алгоритм.
Следовательно, в таких условиях числами р и q можно манипулировать очень просто, не опасаясь каких-либо атак, целью которых может быть определение их значения и последующий взлом защиты алгоритма. Таким образом, как правило, различные способы генерирования ключей предполагают манипулирование этими числами р и q.
В этих условиях можно использовать разные способы, известные специалистам, для генерирования простых чисел.
Вместе с тем для выполнения некоторых задач может потребоваться генерировать такие ключи в незащищенной среде, где вполне возможны атаки с целью взлома секретности используемых ключей криптографического алгоритма.
В настоящее время известны многие типы атак.
Так, некоторые атаки основаны на утечках информации, обнаруживаемых во время выполнения некоторых этапов шифрования. Как правило, эти атаки основаны на корреляции между утечками информации, обнаруженными во время обработки криптографическим алгоритмом какой-либо данной и ключа или ключей (атаки путем анализа потребления тока, электромагнитных излучений, времени вычисления и т.д.).
В этих условиях чрезвычайно важно соблюдать соответствующие меры предосторожности для сохранения в секрете вышеупомянутых чисел р и q.
Известен метод генерирования чисел р и q, позволяющий сохранить эти числа в секрете. Действительно, в статье "Efficient Generation of Shared RSA keys", написанной Дэном Бонехом и Мэттью Франклином, предлагается генерировать числа р и q одновременно и секретно.
Одной из задач этого метода является раздельное генерирование простых чисел несколькими участниками. Так, эти участники выполняют расчеты, позволяющие им генерировать два простых числа, не зная этих простых чисел, при этом участники знают только произведение этих чисел.
Согласно этому методу числа р и q выбирают случайно и одновременно. Затем на основе их произведения решают, являются ли выбранные таким образом два числа простыми числами. Чтобы сохранить секретность чисел р и q, этими числами напрямую не манипулируют.
Действительно, в частности, случайно выбирают четыре целых числа ра, pb, qa и qb, при этом число р является результатом суммы числа ра и числа pb, а число q является результатом суммы числа qa и числа qb.
После этого проверяют, являются ли числа р и q простыми числами на основании их произведения, манипулируя числами ра, pb, qa и qb.
В случае, если числа р и q не являются простыми, повторяют случайный выбор двух других чисел р и q, пока выбранные числа р и q не будут определены как простые числа.
Такое решение может оказаться очень сложным при вычислениях и значительно снижает эффективность способов генерирования ключей.
Задачей настоящего изобретения является предложение решения, позволяющего устранить эти недостатки.
Первым объектом настоящего изобретения является способ генерирования ключа для криптографического алгоритма в электронном компоненте, в память которого вводят простое число Р.
Способ содержит операцию генерирования, по меньшей мере, одного секретного простого числа, причем эта операция содержит следующие последовательные этапы:
/а/ случайно выбирают два целых числа p1' и p2', сумма которых равна числу р';
/б/ определяют, является ли указанное число р' простым числом, на основании комбинирования хранящегося в памяти простого числа Р с указанными числами p1' и р2';
/в/ если решают, что число р' является простым числом, числа p1' и р2' вводят в запоминающее устройство электронного компонента; в противном случае повторяют этапы /а/ и /б/.
Благодаря этому отличительному признаку, можно секретно и эффективно генерировать простое число р'.
Действительно, генерированным таким образом числом р' не манипулируют напрямую в ходе различных этапов способа, а манипулируют только целыми числами p1' и р2'. Следовательно, исключается возможность взлома секрета числа р' путем атак на алгоритм во время этапа генерирования этого простого числа р'.
Кроме того, это генерирование простого числа является эффективным, так как оно позволяет последовательно генерировать несколько простых чисел. При этом более вероятным является случайный выбор одного простого числа, чем случайный выбор нескольких простых чисел одновременно, как это предлагается в статье "Efficient Generation of Shared RSA keys".
Такой способ в соответствии с настоящим изобретением предпочтительно можно применять к любому способу генерирования ключа для определенного криптографического алгоритма в электронном компоненте, если такой алгоритм требует генерирования секретного простого числа или даже нескольких секретных простых чисел.
Этап /б/ можно осуществлять, применяя любой тип теста на простоту, позволяющего определить простоту целого числа на основании комбинирования этого целого числа с простым числом.
Как правило, такие тесты на простоту являются вероятностными алгоритмами. Они позволяют определить, является ли целое число простым числом, с очень высокой степенью вероятности.
В варианте выполнения настоящего изобретения определяют первое целое число p1 и второе целое число р2 таким образом, чтобы хранящееся в памяти простое число Р было равно сумме определенных целых чисел p1 и p2. В этом случае этап /б/ осуществляют на основании операций, осуществляемых на числах p1, p2, p1' и p2'.
Так, во время генерирования секретного простого числа р' в фазе теста на простоту числа р' предпочтительно не манипулируют ни простым числом Р, ни числом р', что сводит на нет потенциальные атаки на секретность числа р' во время этого этапа генерирования.
Можно случайно определять первое и второе целые числа p1 и p2.
Этап /б/ можно осуществлять при помощи теста на простоту, основанного на комбинации теста типа Соловея-Страссена и теста типа Миллера-Рабина. Так, например, тест на простоту может быть основан на тесте на простоту, описанном в статье "Efficient Generation of Shared RSA keys" Дэна Бонеха и Мэттью Франклина в разделе 3 "Distributed Primality Test". Действительно, этот тест на простоту основан, с одной стороны, на тесте на простоту Соловея-Страссена и, с другой стороны, на тесте на простоту Рабина-Миллера. Тест на простоту Соловея-Страссена описан в документе Р.Соловея и В.Страссена "A fast monte carlo test for primality", 1977. Тест на простоту Рабина-Миллера описан в документе М.Рабина "Probabilistic algorithm for testing primality", 1980.
В варианте выполнения настоящего изобретения эффективность такого способа повышают, включая перед этапом /б/ следующий этап:
/а1/ на основании операций, осуществленных с числами p1' и p2', проверяют, чтобы число р' не делилось на одно или несколько определенных простых чисел.
В этом случае повторяют этапы /а/ и /а1/, если число р' делится на одно из определенных простых чисел.
Этот этап /а1/ представляет особый интерес, когда требуется генерировать большие простые числа. Действительно, такой этап позволяет достаточно просто исключить некоторые числа перед осуществлением этапа /б/, который является более сложным в осуществлении.
В варианте выполнения настоящего изобретения этап /а1/ содержит следующие этапы для простого числа у, строго превышающего 1:
- случайно выбирают первое целое число с из целых чисел в диапазоне от 0 до y-1 и второе целое число d среди целых чисел в диапазоне от 1 до y-1;
- определяют число u при помощи следующего уравнения:
u=c+dp1' modulo y;
- определяют число v при помощи следующего уравнения:
v=c-dp2' modulo y;
- определяют, делится ли р на y, в зависимости от разности между числом u и числом v.
Некоторые криптографические алгоритмы требует генерирования нескольких секретных простых чисел. В этом случае можно легко применить способ согласно варианту выполнения изобретения столько раз, сколько потребуется для генерирования простого числа. Таким образом, можно генерировать, по меньшей мере, два простых числа последовательно путем повторения этапов /а/-/с/ для создания пары асимметричных ключей.
Вторым объектом настоящего изобретения является электронный компонент генерирования ключа для определенного криптографического алгоритма.
Компонент содержит:
- блок выбора, выполненный с возможностью случайного выбора двух целых чисел p1' и р2', сумма которых является числом р';
- запоминающее устройство для запоминания простого числа Р и для запоминания чисел p1' и р2', когда определяют, что сумма указанных чисел p1' и p2' является простым числом;
- блок решения, выполненный с возможностью решить, является ли число р' простым числом, на основании комбинации между хранящимся в памяти простым числом Р и указанными числами p1' и р2'.
Блок выбора может определить первое целое число p1 и второе целое число р2 таким образом, чтобы хранящееся в памяти простое число Р было равно сумме указанных определенных целых чисел p1 и р2; и блок решения может решить, является ли число р' целым числом на основании операций, осуществленных на числах p1, р2, p1' и р2'.
В варианте выполнения настоящего изобретения блок выбора определяет первое и второе целые числа p1 и р2 случайно.
Предпочтительно блок решения применяет тест на простоту, основанный на комбинации теста типа Соловея-Страссена и теста типа Миллера-Рабина и предложенный в статье "Efficient Generation of Shared RSA keys".
Предпочтительно блок выбора производит предварительный контроль на основании операций, осуществленных на числах p1' и р2', чтобы проверить, что число р' не делится на одно или несколько определенных простых чисел.
В этом случае блок выбора повторяет случайный выбор двух целых чисел p1' и р2', если р' делится на определенное простое число.
В варианте выполнения настоящего изобретения для осуществления предварительного контроля относительно простого числа y, строго превышающего 1, блок выбора дополнительно содержит:
- средства, выполненные с возможностью случайного выбора первого числа с среди целых чисел в диапазоне от 0 до y-1 и второго целого числа d среди целых чисел в диапазоне от 1 до y-1;
- средства, выполненные с возможностью определения числа и при помощи следующего уравнения:
u=c+dp1' modulo y;
- средства, выполненные с возможностью определения числа v при помощи следующего уравнения:
v=c-dp2' modulo y;
- средства, выполненные с возможностью определения, делится ли р на y, в зависимости от разности между числом u и числом v.
Другие отличительные признаки, задачи и преимущества настоящего изобретения будут более очевидны из нижеследующего описания одного из вариантов его выполнения.
Это описание представлено со ссылками на следующие прилагаемые чертежи:
Фиг.1 - основные этапы способа генерирования ключа согласно варианту выполнения настоящего изобретения.
Фиг.2 - схема электронного компонента согласно варианту выполнения настоящего изобретения.
В варианте выполнения настоящего изобретения способ генерирования ключа для криптографического алгоритма предназначен для его применения в электронном компоненте.
Предварительно электронный компонент вводит в запоминающее устройство первое число, обозначенное Р.
На фиг.1 показаны основные этапы способа согласно варианту выполнения изобретения.
На этапе 11 производят случайный выбор двух целых чисел, обозначаемых p1' и р2'. Затем на этапе 12 решают, является ли простым числом сумма, обозначенная р', этих двух выбранных чисел. Этот этап осуществляют таким образом, чтобы сохранять в секрете число р'. Так, предпочтительно на этом этапе числом р' как таковым не манипулируют. Определение простоты числа р' осуществляют при помощи операций, производимых на числах p1' и р2'.
После этого на этапе 13, если определено, что число р' не является простым числом, повторяют предыдущие этапы 11 и 12.
Если же, наоборот, обнаруживается, что это число является простым числом, то в этом случае числа p1' и р2' вводятся в память.
Такой способ можно повторять всякий раз, когда потребуется генерирование секретного простого числа.
На этапе 12 можно применить любой тест на простоту, который позволяет решить, является ли число комбинацией из двух простых чисел, поскольку этот тест не содержит операций, которые могут поставить под угрозу секретность одного из этих двух чисел произведения. Такие тесты на простоту хорошо известны и легко доступны специалистам. Предпочтительно эти тесты на простоту могут позволить решить на основании произведения n простого числа Р и числа р', являющегося результатом суммы случайно выбранных чисел p1' и р2', является ли число р' простым числом. Этот тест содержит операции на числах p1' и р2', но не содержит операций, производимых непосредственно на числе р'.
Так, например, тест на простоту может быть основан на комбинации теста типа Соловея-Страссена и теста типа Миллера-Рабина, как было предложено в статье "Efficient Generation of Shared RSA keys".
В этом случае Р представляют в виде двух чисел, обозначаемых p1 и р2. Это разложение можно осуществить случайно или произвольно.
Этот тест позволяет решить, является ли число m произведением двух простых чисел Р и р', где m отвечает уравнению:
m=(p1+р2)*(p1'+р2')
где
Р=p1+р2
и
p'=p1'+р2'.
Таким образом, не производя непосредственного манипулирования с числами Р и р', можно решить, являются ли эти числа Р и р' простыми числами.
Отмечается, что в таком варианте числом m можно манипулировать без всякого опасения, так как оно не является секретным.
Как детально описано в статье "Efficient Generation of Shared RSA keys", в этом тесте предполагается, что различные числа отвечают следующим характеристикам:
p1=3 mod 4
и
p1'=3 mod 4
затем
р2=0 mod 4
и
р2'=0 mod 4
Чтобы не допустить атаки на секретность числа р' во время этого этапа, предпочтительно на числах p1, р2, p1' и p1' производят следующие операции.
В первую очередь, случайно выбирают числа а среди целых чисел от 1 до m-1.
После этого вычисляют символ Якоби относительно выбранного таким образом числа m, обозначаемый (a/m).
Затем, если вычисленный таким образом символ Якоби отличается от 1, повторяют этап случайного выбора числа а.
Если символ Якоби равен 1, переходят в следующему этапу,
В этом случае производят первый промежуточный расчет на числах m, p1 и p2' и получают число u, отвечающее следующему уравнению:
После этого производят второй промежуточный расчет на числах m, p1 и p2 и получают число v, отвечающее следующему уравнению:
После этого проверяют, выполняется ли следующее уравнение:
u=+/-v mod m
Если это уравнение верно, делают вывод, что m является произведением двух целых чисел Р и р' с определенной вероятностью.
В варианте выполнения настоящего изобретения Р является простым числом, предварительно введенным в запоминающее устройство электронного компонента. Следовательно, применяя этот тип теста, можно решить, является ли число р' простым числом, не прибегая к операциям непосредственно на числе р'.
В варианте выполнения настоящего изобретения, чтобы повысить вероятность реализации этапа 12 на числах p1' и р2', для которых сумма является целым числом, перед этапом 12 можно осуществить этап, предварительно позволяющий просто и эффективно исключить некоторые числа.
Таким образом, можно рассмотреть набор простых чисел. Затем перед этапом 12 требуется определить, делится ли число р' на простое число, обозначенное у. Для этого случайно выбирают целое число с среди целых чисел от 0 до у-1 и целое число d среди целых чисел от 1 до у-1.
После этого производят два следующих промежуточных вычисления:
u=с+dp1' modulo y
v=с-dp2' modulo y
В этом случае можно проверить, выполняется ли следующее уравнение:
u-v=0 modulo y
Если это уравнение верно, делают вывод, что число р' делится на у.
На фиг.2 показана схема электронного компонента согласно варианту выполнения настоящего изобретения.
Такой компонент 21 содержит блок 22 выбора, выполненный с возможностью случайного выбора двух целых чисел p1' и p2', суммой которых является число р'.
Он дополнительно содержит запоминающее устройство 23 для введения в память простого числа Р и чисел p1' и p2', если решают, что сумма этих чисел p1' и p2' является простым числом.
Он содержит также блок решения, выполненный с возможностью решения, является ли число р' простым числом на основании комбинации введенного в память простого числа Р с числами p1' и p2'.
Таким образом, получают способ генерирования ключа, предназначенный для эффективного и секретного последовательного генерирования простого числа или нескольких простых чисел.
Claims (16)
1. Способ генерирования ключа для криптографического алгоритма в электронном компоненте (21), в котором в запоминающее устройство указанного электронного компонента вводят простое число Р, при этом указанный способ содержит операцию генерирования, по меньшей мере, одного секретного простого числа, при этом указанная операция содержит следующие последовательные этапы:
/а/ случайно выбирают (11) два целых числа p1' и p2', сумма которых равна числу р';
/б/ решают (12), является ли указанное число р' простым числом, на основании комбинирования хранящегося в памяти простого числа Р с указанными числами p1' и p2';
/в/ если решают, что число р' является простым числом, числа p1' и р2' вводят (14) в запоминающее устройство электронного компонента; в противном случае повторяют этапы /а/ и /б/.
/а/ случайно выбирают (11) два целых числа p1' и p2', сумма которых равна числу р';
/б/ решают (12), является ли указанное число р' простым числом, на основании комбинирования хранящегося в памяти простого числа Р с указанными числами p1' и p2';
/в/ если решают, что число р' является простым числом, числа p1' и р2' вводят (14) в запоминающее устройство электронного компонента; в противном случае повторяют этапы /а/ и /б/.
2. Способ по п.1, в котором определяют первое целое число p1 и второе целое число р2 таким образом, чтобы хранящееся в памяти простое число Р было равно сумме определенных целых чисел p1 и р2; и в котором этап /б/ осуществляют на основании операций, осуществляемых на числах p1, p2, p1' и р2'.
3. Способ по любому из предыдущих пунктов, в котором первое и второе целые числа p1 и р2 определяют случайно.
4. Способ по п.1, в котором этап /б/ осуществляют при помощи теста на простоту, основанного на комбинации теста типа Соловея-Страссена и теста типа Миллера-Рабина.
5. Способ по п.1, дополнительно содержащий перед этапом /б/ следующий этап:
/а1/ на основании операций, осуществленных с числами p1' и р2', проверяют, чтобы число р' не делилось на одно или несколько определенных простых чисел,
в котором повторяют этапы /а/ и /а1/, если число р' делится на одно из указанных определенных простых чисел.
/а1/ на основании операций, осуществленных с числами p1' и р2', проверяют, чтобы число р' не делилось на одно или несколько определенных простых чисел,
в котором повторяют этапы /а/ и /а1/, если число р' делится на одно из указанных определенных простых чисел.
6. Способ по п.5, в котором этап /а1/ содержит следующие этапы для простого числа у, строго превышающего 1:
случайно выбирают первое целое число с из целых чисел в диапазоне от 0 до y-1 и второе целое число d среди целых чисел в диапазоне от 1 до y-1;
определяют число u при помощи следующего уравнения:
u=c+dp1'modulo y;
определяют число v при помощи следующего уравнения:
v=c-dp2'modulo y;
определяют, делится ли р на y, в зависимости от разности между числом u и числом v.
случайно выбирают первое целое число с из целых чисел в диапазоне от 0 до y-1 и второе целое число d среди целых чисел в диапазоне от 1 до y-1;
определяют число u при помощи следующего уравнения:
u=c+dp1'modulo y;
определяют число v при помощи следующего уравнения:
v=c-dp2'modulo y;
определяют, делится ли р на y, в зависимости от разности между числом u и числом v.
7. Способ по п.1, в котором генерируют, по меньшей мере, два простых числа последовательно путем повторения этапов /а/-/с/ для создания пары асимметричных ключей.
8. Способ по п.1, в котором криптографический алгоритм является алгоритмом типа RSA.
9. Электронный компонент (21) генерирования ключа для определенного криптографического алгоритма, при этом указанный компонент содержит:
блок (22) выбора, выполненный с возможностью случайного выбора двух целых чисел p1' и р2', сумма которых является числом р';
запоминающее устройство (23) для запоминания простого числа Р и для запоминания чисел p1' и р2', когда определяют, что сумма указанных чисел p1' и р2' является простым числом;
блок (24) решения, выполненный с возможностью решить, является ли число р' простым числом, на основании комбинации между хранящимся в памяти простым числом Р и указанными числами p1' и р2'.
блок (22) выбора, выполненный с возможностью случайного выбора двух целых чисел p1' и р2', сумма которых является числом р';
запоминающее устройство (23) для запоминания простого числа Р и для запоминания чисел p1' и р2', когда определяют, что сумма указанных чисел p1' и р2' является простым числом;
блок (24) решения, выполненный с возможностью решить, является ли число р' простым числом, на основании комбинации между хранящимся в памяти простым числом Р и указанными числами p1' и р2'.
10. Электронный компонент по п.9, в котором блок (22) выбора определяет первое целое число p1 и второе целое число р2 таким образом, чтобы хранящееся в памяти простое число Р было равно сумме указанных определенных целых чисел p1 и р2; и
в котором блок (23) решения может решить, является ли число р' целым числом, на основании операций, осуществленных на числах p1, р2, p1' и p2'.
в котором блок (23) решения может решить, является ли число р' целым числом, на основании операций, осуществленных на числах p1, р2, p1' и p2'.
11. Электронный компонент по п.10, в котором блок (22) выбора определяет первое и второе целые числа p1 и р2 случайно.
12. Электронный компонент по п.9, в котором блок (23) решения применяет тест на простоту, основанный на комбинации теста типа Соловея-Страссена и теста типа Миллера-Рабина.
13. Электронный компонент по п.9, в котором блок (22) выбора производит предварительный контроль на основании операций, осуществленных на числах p1' и р2', чтобы проверить, что число р' не делится на одно или несколько определенных простых чисел; и в котором блок (22) выбора повторяет случайный выбор двух целых чисел p1' и р2', если р' делится на определенное простое число.
14. Электронный компонент по п.9, в котором для осуществления предварительного контроля для простого числа у, строго превышающего 1, блок (22) выбора дополнительно содержит:
средства, выполненные с возможностью случайного выбора первого числа с среди целых чисел в диапазоне от 0 до y-1 и второго целого числа d среди целых чисел в диапазоне от 1 до y-1;
средства, выполненные с возможностью определения числа и при помощи следующего уравнения:
u=c+dp1'modulo y;
средства, выполненные с возможностью определения числа v при помощи следующего уравнения:
v=c-dp2'modulo y;
средства, выполненные с возможностью определения, делится ли р на y, в зависимости от разности между числом u и числом v.
средства, выполненные с возможностью случайного выбора первого числа с среди целых чисел в диапазоне от 0 до y-1 и второго целого числа d среди целых чисел в диапазоне от 1 до y-1;
средства, выполненные с возможностью определения числа и при помощи следующего уравнения:
u=c+dp1'modulo y;
средства, выполненные с возможностью определения числа v при помощи следующего уравнения:
v=c-dp2'modulo y;
средства, выполненные с возможностью определения, делится ли р на y, в зависимости от разности между числом u и числом v.
15. Электронный компонент по п.9, в котором последовательно генерируют несколько простых чисел р'.
16. Электронный компонент по п.9, в котором криптографический алгоритм является алгоритмом типа RSA.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0413749 | 2004-12-22 | ||
FR0413749A FR2879866B1 (fr) | 2004-12-22 | 2004-12-22 | Procede et dispositif d'execution d'un calcul cryptographique |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007127908A RU2007127908A (ru) | 2009-01-27 |
RU2403682C2 true RU2403682C2 (ru) | 2010-11-10 |
Family
ID=34954117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007127908/09A RU2403682C2 (ru) | 2004-12-22 | 2005-12-22 | Способ и устройство для выполнения криптографического вычисления |
Country Status (10)
Country | Link |
---|---|
US (1) | US20100128869A1 (ru) |
EP (1) | EP1829279B1 (ru) |
JP (1) | JP2008525835A (ru) |
CN (1) | CN101107807B (ru) |
AT (1) | ATE498258T1 (ru) |
BR (1) | BRPI0519736A2 (ru) |
DE (1) | DE602005026320D1 (ru) |
FR (1) | FR2879866B1 (ru) |
RU (1) | RU2403682C2 (ru) |
WO (1) | WO2006070120A2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2703347C2 (ru) * | 2015-05-13 | 2019-10-16 | Жемальто Са | Способ оптимизации выполнения функции, которая генерирует, по меньшей мере , один ключ в устройстве на интегральной схеме |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2841411B1 (fr) * | 2002-06-19 | 2004-10-29 | Gemplus Card Int | Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede |
FR2946207A1 (fr) * | 2009-05-28 | 2010-12-03 | Proton World Internat Nv | Protection d'une generation de nombres premiers pour algorithme rsa |
EP2791784A1 (fr) * | 2011-12-15 | 2014-10-22 | Inside Secure | Procede de generation de nombres premiers prouves adapte aux cartes a puce |
EP3364592A1 (en) * | 2017-02-21 | 2018-08-22 | Gemalto Sa | Method for generating a prime number for a cryptographic application |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3835896B2 (ja) * | 1997-07-30 | 2006-10-18 | 富士通株式会社 | 素数生成装置,B−smooth性判定装置及び記録媒体 |
WO1999035782A1 (en) * | 1998-01-02 | 1999-07-15 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
US6404890B1 (en) * | 1998-04-08 | 2002-06-11 | Citibank, Na | Generating RSA moduli including a predetermined portion |
JPH11338852A (ja) * | 1998-05-26 | 1999-12-10 | Murata Mach Ltd | 素数生成方法及び素数生成装置並びに暗号システム |
FR2788650B1 (fr) * | 1999-01-14 | 2001-02-16 | Gemplus Card Int | Procede cryptographique a cles publique et privee |
TW548940B (en) * | 1999-11-29 | 2003-08-21 | Gen Instrument Corp | Generation of a mathematically constrained key using a one-way function |
US7016494B2 (en) * | 2001-03-26 | 2006-03-21 | Hewlett-Packard Development Company, L.P. | Multiple cryptographic key precompute and store |
US7120248B2 (en) * | 2001-03-26 | 2006-10-10 | Hewlett-Packard Development Company, L.P. | Multiple prime number generation using a parallel prime number search algorithm |
TWI244610B (en) * | 2001-04-17 | 2005-12-01 | Matsushita Electric Ind Co Ltd | Information security device, prime number generation device, and prime number generation method |
EP1454260B1 (de) * | 2001-10-17 | 2005-06-01 | Infineon Technologies AG | Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt) |
GB2384403B (en) * | 2002-01-17 | 2004-04-28 | Toshiba Res Europ Ltd | Data transmission links |
CA2369304A1 (en) * | 2002-01-30 | 2003-07-30 | Cloakware Corporation | A protocol to hide cryptographic private keys |
CN1692600A (zh) * | 2002-10-09 | 2005-11-02 | 松下电器产业株式会社 | 加密装置、解密装置和加密系统 |
-
2004
- 2004-12-22 FR FR0413749A patent/FR2879866B1/fr not_active Expired - Fee Related
-
2005
- 2005-12-22 RU RU2007127908/09A patent/RU2403682C2/ru not_active IP Right Cessation
- 2005-12-22 EP EP05850590A patent/EP1829279B1/fr not_active Not-in-force
- 2005-12-22 BR BRPI0519736-8A patent/BRPI0519736A2/pt not_active IP Right Cessation
- 2005-12-22 CN CN2005800439554A patent/CN101107807B/zh not_active Expired - Fee Related
- 2005-12-22 AT AT05850590T patent/ATE498258T1/de not_active IP Right Cessation
- 2005-12-22 DE DE602005026320T patent/DE602005026320D1/de active Active
- 2005-12-22 US US11/722,179 patent/US20100128869A1/en not_active Abandoned
- 2005-12-22 WO PCT/FR2005/003250 patent/WO2006070120A2/fr active Application Filing
- 2005-12-22 JP JP2007547576A patent/JP2008525835A/ja active Pending
Non-Patent Citations (1)
Title |
---|
«EFFICIENT GENERATION OF SHARED RSA KEYS», «JOURNAL OF THE ACM USA», 04.07.2001. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2703347C2 (ru) * | 2015-05-13 | 2019-10-16 | Жемальто Са | Способ оптимизации выполнения функции, которая генерирует, по меньшей мере , один ключ в устройстве на интегральной схеме |
Also Published As
Publication number | Publication date |
---|---|
EP1829279A2 (fr) | 2007-09-05 |
DE602005026320D1 (de) | 2011-03-24 |
WO2006070120A2 (fr) | 2006-07-06 |
ATE498258T1 (de) | 2011-02-15 |
US20100128869A1 (en) | 2010-05-27 |
FR2879866A1 (fr) | 2006-06-23 |
BRPI0519736A2 (pt) | 2009-03-10 |
JP2008525835A (ja) | 2008-07-17 |
RU2007127908A (ru) | 2009-01-27 |
WO2006070120A3 (fr) | 2006-09-21 |
FR2879866B1 (fr) | 2007-07-20 |
CN101107807B (zh) | 2011-07-06 |
EP1829279B1 (fr) | 2011-02-09 |
CN101107807A (zh) | 2008-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ghebleh et al. | An image encryption scheme based on irregularly decimated chaotic maps | |
US9596080B2 (en) | Method of generating prime numbers proven suitable for chip cards | |
US20080240443A1 (en) | Method and apparatus for securely processing secret data | |
Abdeldaym et al. | Modified RSA algorithm using two public key and Chinese remainder theorem | |
US9680647B2 (en) | Method of using a token in cryptography | |
Ambedkar et al. | A new factorization method to factorize rsa public key encryption | |
US20110200186A1 (en) | Method of cipher block chaining using elliptic curve cryptography | |
EP3698262B1 (en) | Protecting modular inversion operation from external monitoring attacks | |
RU2403682C2 (ru) | Способ и устройство для выполнения криптографического вычисления | |
EP2742644A1 (en) | Encryption and decryption method | |
Vybornova | Password-based key derivation function as one of Blum-Blum-Shub pseudo-random generator applications | |
JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
Slimane et al. | Hash key-based image cryptosystem using chaotic maps and cellular automata | |
Paar et al. | The RSA cryptosystem | |
Charalampidis et al. | A novel piecewise chaotic map for image encryption | |
Berlin et al. | An overview of cryptanalysis of RSA public key system | |
US20010036267A1 (en) | Method for generating electronic keys from integer numbers prime with each other and a device for implementing the method | |
WO2001091368A2 (en) | Encryption system based on crossed inverse quasigroups | |
Hafsa et al. | Hybrid encryption model based on advanced encryption standard and elliptic curve pseudo random | |
Fu et al. | Medical image protection using hyperchaos-based encryption | |
Munjal et al. | Analysing RSA and PAILLIER homomorphic Property for security in Cloud | |
Ngendahimana et al. | RSA Cryptosystem Speed Security Enhancement (Hybrid and Parallel Domain Approach) | |
Siahaan | Factorization Hack of RSA Secret Numbers | |
EP2605444A1 (en) | Method for signing or deciphering a message using CRT RSA resisting Differential Side-Channel Analysis | |
Haraty et al. | Attacking ElGamal based cryptographic algorithms using Pollard's rho algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20111223 |