RU2403682C2 - Способ и устройство для выполнения криптографического вычисления - Google Patents

Способ и устройство для выполнения криптографического вычисления Download PDF

Info

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
Application number
RU2007127908/09A
Other languages
English (en)
Other versions
RU2007127908A (ru
Inventor
Эмманюэлль ДОТТА (FR)
Эмманюэлль ДОТТА
Эрве ШАБАНН (FR)
Эрве ШАБАНН
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 Морфо
Publication of RU2007127908A publication Critical patent/RU2007127908A/ru
Application granted granted Critical
Publication of RU2403682C2 publication Critical patent/RU2403682C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/302Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3033Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing 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=(p12)*(p1'+р2')
где
Р=p12
и
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, отвечающее следующему уравнению:
Figure 00000001
После этого производят второй промежуточный расчет на числах m, p1 и p2 и получают число v, отвечающее следующему уравнению:
Figure 00000002
После этого проверяют, выполняется ли следующее уравнение:
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) в запоминающее устройство электронного компонента; в противном случае повторяют этапы /а/ и /б/.
2. Способ по п.1, в котором определяют первое целое число p1 и второе целое число р2 таким образом, чтобы хранящееся в памяти простое число Р было равно сумме определенных целых чисел p1 и р2; и в котором этап /б/ осуществляют на основании операций, осуществляемых на числах p1, p2, p1' и р2'.
3. Способ по любому из предыдущих пунктов, в котором первое и второе целые числа p1 и р2 определяют случайно.
4. Способ по п.1, в котором этап /б/ осуществляют при помощи теста на простоту, основанного на комбинации теста типа Соловея-Страссена и теста типа Миллера-Рабина.
5. Способ по п.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.
7. Способ по п.1, в котором генерируют, по меньшей мере, два простых числа последовательно путем повторения этапов /а/-/с/ для создания пары асимметричных ключей.
8. Способ по п.1, в котором криптографический алгоритм является алгоритмом типа RSA.
9. Электронный компонент (21) генерирования ключа для определенного криптографического алгоритма, при этом указанный компонент содержит:
блок (22) выбора, выполненный с возможностью случайного выбора двух целых чисел p1' и р2', сумма которых является числом р';
запоминающее устройство (23) для запоминания простого числа Р и для запоминания чисел p1' и р2', когда определяют, что сумма указанных чисел p1' и р2' является простым числом;
блок (24) решения, выполненный с возможностью решить, является ли число р' простым числом, на основании комбинации между хранящимся в памяти простым числом Р и указанными числами p1' и р2'.
10. Электронный компонент по п.9, в котором блок (22) выбора определяет первое целое число p1 и второе целое число р2 таким образом, чтобы хранящееся в памяти простое число Р было равно сумме указанных определенных целых чисел p1 и р2; и
в котором блок (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.
15. Электронный компонент по п.9, в котором последовательно генерируют несколько простых чисел р'.
16. Электронный компонент по п.9, в котором криптографический алгоритм является алгоритмом типа RSA.
RU2007127908/09A 2004-12-22 2005-12-22 Способ и устройство для выполнения криптографического вычисления RU2403682C2 (ru)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2703347C2 (ru) * 2015-05-13 2019-10-16 Жемальто Са Способ оптимизации выполнения функции, которая генерирует, по меньшей мере , один ключ в устройстве на интегральной схеме

Families Citing this family (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 松下电器产业株式会社 加密装置、解密装置和加密系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
«EFFICIENT GENERATION OF SHARED RSA KEYS», «JOURNAL OF THE ACM USA», 04.07.2001. *

Cited By (1)

* Cited by examiner, † Cited by third party
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