СИСТЕМА ШИФРОВАНИЯ С ОТКРЫТЫМ КЛЮЧОМ

1. Устройство (100) генерирования ключей, сконфигурированное с возможностью генерировать открытый ключ (126) для использования в устройстве шифрования с открытым ключом и соответствующий закрытый ключ (114) для использования в устройстве дешифрования с закрытым ключом, при этом устройство генерирования ключей содержит
- генератор (110) закрытых ключей, сконфигурированный для
- получения в электронной форме закрытого случайного значения (112, ), и
- генерирования закрытого ключа (114), при этом закрытый ключ содержит закрытое случайное значение (112), и
- генератор (120) открытых ключей, сконфигурированный для
- получения в электронной форме открытого набора двумерных полиномов (122, ), при этом разное коммутативное кольцо ассоциировано с каждым полиномом из открытого набора двумерных полиномов,
- вычисления открытого одномерного полинома (124) посредством суммирования одномерных полиномов, полученных посредством подстановки закрытого случайного значения (112, ) в полиномы из открытого набора (122, ), при этом одномерный полином, полученный посредством подстановки закрытого случайного значения () в конкретный полином из открытого набора (), приводится к канонической форме в коммутативном кольце, ассоциированном с конкретным одномерным полиномом, и
- генерирования открытого ключа (126), при этом открытый ключ содержит открытый одномерный полином (124) и открытый набор (122).
2. Устройство (200) шифрования с открытым ключом для шифрования электронного сообщения (410) с использованием открытого ключа, при этом открытый ключ содержит открытый одномерный полином и открытый набор двумерных полиномов (), при этом разное коммутативное кольцо ассоциировано с каждым полиномом из открытого набора двумерных полиномов, при этом устройство шифрования с открытым ключом содержит
- модуль (210) получения симметричного ключа, сконфигурированный для
- получения в электронной форме случайного значения шифрования (212, ), и
- вычисления симметричного ключа (214, K) посредством подстановки случайного значения шифрования (212, r) в открытый одномерный полином,
- генератор (220) информации дешифрования, сконфигурированный для
- вычисления одномерного полинома (222) дешифрования посредством осуществления суммирования над одномерными полиномами, полученными посредством подстановки случайного значения шифрования () в полиномы из открытого набора (122, ), одномерный полином, полученный посредством подстановки случайного значения шифрования () в конкретные полиномы из открытого набора (), приводится к канонической форме в коммутативном кольце, ассоциированном с конкретным одномерным полиномом, и
- генерирования информации (424) дешифрования, при этом информация дешифрования содержит одномерный полином (222) дешифрования, и
- блок (230) шифрования, сконфигурированный для
- шифрования сообщения (410) с помощью симметричного ключа (214) и ассоциирования упомянутого зашифрованного сообщения (422) с информацией (424) дешифрования.
3. Устройство (300) дешифрования с закрытым ключом для дешифрования зашифрованного сообщения (422) с использованием информации (424) дешифрования, получаемой посредством устройства шифрования с открытым ключом по п. 2, и закрытого ключа (114),
- при этом информация дешифрования содержит одномерный полином (222) дешифрования, при этом закрытый ключ содержит закрытое случайное значение (112, ),
при этом устройство дешифрования с закрытым ключом содержит
- модуль (310) получения симметричного ключа, сконфигурированный для
- восстановления симметричного ключа (312, K') посредством подстановки закрытого случайного значения () в одномерный полином (222) дешифрования,
- блок (320) дешифрования, сконфигурированный для
- дешифрования зашифрованного сообщения с помощью упомянутого восстановленного симметричного ключа (312, K').
4. Устройство шифрования с открытым ключом по п. 2, в котором
- открытый набор двумерных полиномов () содержит только симметричные двумерные полиномы, и/или
- открытый набор двумерных полиномов () содержит, по меньшей мере, два разных двумерных полинома, и/или
- по меньшей мере, один полином из открытого набора имеет степень, по меньшей мере, два по одной из двух переменных упомянутого, по меньшей мере, одного полинома.
5. Устройство шифрования с открытым ключом по п. 2, в котором
- открытый одномерный полином представляется как список коэффициентов открытого одномерного полинома в канонической форме, и
- одномерный полином дешифрования представляется как список коэффициентов одномерного полинома дешифрования в канонической форме.
6. Устройство шифрования с открытым ключом по п. 2, в котором
- открытое глобальное целое число приведения () ассоциировано с открытым набором и открытое индивидуальное целое число приведения () с каждым полиномом из открытого набора,
- закрытое случайное значение и случайное значение шифрования () являются целыми числами, каждый полином в открытом наборе является двумерным полиномом с целочисленными коэффициентами (), открытый одномерный полином и одномерный полином дешифрования являются одномерными полиномами с целочисленными коэффициентами,
- и при этом
- вычисление симметричного ключа () содержит подстановку случайного значения шифрования () в открытый одномерный полином и приведение по модулю глобального целого числа приведения (),
- вычисление одномерного полинома дешифрования содержит
- получение набора одномерных полиномов посредством
- для каждого полинома из открытого набора подстановки закрытого значения шифрования () в полином () и приведения по модулю открытого индивидуального целого числа приведения (), ассоциированного с упомянутым полиномом, и
- суммирование набора одномерных полиномов и приведение по модулю глобального целого числа приведения ().
7. Устройство шифрования с открытым ключом по п. 6, в котором
- открытое глобальное целое число приведения () является нечетным числом, более большим, чем  и/или более малым, чем , при этом  представляет наивысшую степень по одной из двух переменных полиномов в открытом наборе, и  представляет длину ключа, и
- для каждого открытого индивидуального целого числа приведения (), открытое глобальное целое число приведения () минус упомянутое открытое индивидуальное целое число приведения () является кратным 2 в степени длины ключа (, ) и меньше, чем 2 в степени удвоенной длины ключа,
- и при этом вычисление симметричного ключа () дополнительно содержит приведение по модулю 2 в степени длины ключа ().
8. Устройство дешифрования с закрытым ключом по п. 3, в котором информация дешифрования содержит данные подтверждения ключа, вычисленные из симметричного ключа (), для верификации того, равняется ли восстановленный ключ (') упомянутому симметричному ключу (), при этом информация дешифрования содержит данные подтверждения ключа, и при этом
- восстановление симметричного ключа () содержит
- извлечение первого восстановленного ключа () из результата подстановки закрытого случайного значения () в одномерный полином дешифрования и приведение по модулю открытого глобального целого числа приведения (),
- определение из данных подтверждения ключа того, равняется ли первый восстановленный ключ () симметричному ключу (), и если нет, извлечение дополнительного восстановленного ключа из первого восстановленного ключа ().
9. Устройство дешифрования с закрытым ключом по п. 8, в котором восстановление симметричного ключа () содержит подстановку закрытого случайного значения () в одномерный полином дешифрования и приведение по модулю открытого глобального целого числа приведения (), при этом извлечение дополнительного восстановленного ключа содержит добавление открытого глобального целого числа приведения () или кратного открытого глобального целого числа приведения () к первому восстановленному ключу () и приведение по модулю 2 в степени длины ключа ().
10. Устройство шифрования с открытым ключом по п. 2, в котором
- открытый глобальный полином приведения () ассоциирован с открытым набором и открытые индивидуальные полиномы приведения () с каждым полиномом из открытого набора,
- закрытое случайное значение () и случайное значение шифрования () являются полиномами, каждый конкретный полином () в открытом наборе является двумерным полиномом с коэффициентами (), взятыми из полиномиального кольца по модулю открытого индивидуального полинома приведения (), ассоциированного с конкретным полиномом (),
- открытый одномерный полином и одномерный полином дешифрования имеют полиномиальные коэффициенты,
- и при этом
- вычисление симметричного ключа () содержит подстановку случайного значения шифрования () в открытый одномерный полином и приведение по модулю глобального полинома приведения (),
- вычисление одномерного полинома дешифрования содержит
- получение набора одномерных полиномов посредством
- для каждого полинома из открытого набора подстановки закрытого значения шифрования () в полином () и приведения по модулю открытого индивидуального полинома приведения (), ассоциированного с упомянутым полиномом, и
- суммирование набора одномерных полиномов.
11. Способ генерирования ключей, сконфигурированный с возможностью генерировать открытый ключ для использования в способе шифрования с открытым ключом и соответствующий закрытый ключ для использования в способе дешифрования с закрытым ключом, при этом способ генерирования ключей содержит
- получение в электронной форме закрытого случайного значения (), при этом разное коммутативное кольцо ассоциировано с каждым полиномом из открытого набора двумерных полиномов, и
- генерирование закрытого ключа, при этом закрытый ключ содержит закрытое случайное значение, и
- получение в электронной форме открытого набора двумерных полиномов (),
- вычисление открытого одномерного полинома посредством осуществления суммирования над одномерными полиномами, полученными посредством подстановки закрытого случайного значения () в полиномы из открытого набора (), одномерный полином, полученный посредством подстановки закрытого случайного значения () в конкретный полином из открытого набора (), приводится к канонической форме в коммутативном кольце, ассоциированном с конкретным одномерным полиномом, и
- генерирование открытого ключа, при этом открытый ключ содержит открытый одномерный полином и открытый набор.
12. Способ шифрования с открытым ключом для шифрования электронного сообщения с использованием открытого ключа, при этом открытый ключ содержит открытый одномерный полином и открытый набор двумерных полиномов (), при этом разное коммутативное кольцо ассоциировано с каждым полиномом из открытого набора двумерных полиномов,
- получение в электронной форме случайного значения шифрования (), и
- вычисление симметричного ключа () посредством подстановки случайного значения шифрования () в открытый одномерный полином,
- вычисление одномерного полинома дешифрования посредством осуществления суммирования над одномерными полиномами, полученными посредством подстановки случайного значения шифрования () в полиномы из открытого набора (), одномерный полином, полученный посредством подстановки случайного значения шифрования () в конкретные полиномы из открытого набора (), приводится к канонической форме в коммутативном кольце, ассоциированном с конкретным одномерным полиномом, и
- генерирование информации дешифрования, при этом информация дешифрования содержит одномерный полином дешифрования, и
- шифрование сообщения с помощью симметричного ключа и ассоциирование упомянутого зашифрованного сообщения с информацией дешифрования.
13. Способ дешифрования с закрытым ключом для дешифрования зашифрованного сообщения с использованием информации дешифрования, получаемой посредством способа по п. 12, и закрытого ключа,
- при этом информация дешифрования содержит одномерный полином дешифрования, при этом закрытый ключ содержит закрытое случайное значение (),
- восстановление симметричного ключа () посредством подстановки закрытого случайного значения () в одномерный полином дешифрования,
- дешифрование сообщения с помощью симметричного ключа ().
14. Компьютерная программа, содержащая средство компьютерного программного кода, выполненное с возможностью выполнять все этапы по любому из п.п. 11, 12 и 13, когда компьютерная программа исполняется на компьютере.
15. Компьютерная программа по п. 14, осуществленная на считываемом компьютером носителе.