ГОМОМОРФНОЕ ШИФРОВАНИЕ ДЛЯ ПРОВЕРКИ ПОДЛИННОСТИ С ПОМОЩЬЮ ПАРОЛЯ

1. Серверное устройство (200) для проверки пользователя с клиентского устройства (100), причем пользователь имеет доступ к строке (326) проверки подлинности, строка проверки подлинности имеет множество символов во множестве позиций (410), а символы выбраны из набора (420) символов, при этом серверное устройство содержит:
p
- запоминающее устройство (110), хранящее первое проверочное число (340, ) вычисленное из подмножества (320) набора (310) данных символа/позиции, причем упомянутое подмножество указано строкой (325, ) проверки подлинности, а набор данных (310, ) символа/позиции содержит число (430) для каждой комбинации из символа из набора символов и позиции в строке проверки подлинности,
- процессорную схему, выполненную с возможностью:
- шифрования набора данных символа/позиции в соответствии с алгоритмом гомоморфного шифрования и отправки зашифрованного набора (350) клиентскому устройству,
- приема от клиентского устройства второго проверочного числа (380), получаемого гомоморфным вычислением зашифрованного второго проверочного числа из подмножества зашифрованного набора, при этом упомянутое подмножество указано строкой проверки подлинности, и
- проверки соответствия между первым проверочным числом и зашифрованным вторым проверочным числом для проверки подлинности пользователя.
2. Серверное устройство по п. 1, в котором процессорная схема выполнена с возможностью:
- формирования перестановки (500) набора символов,
- получения данных (510, 511) отображения для символов в наборе символов и связывания данных отображения с зашифрованными данными (530, 520-529) символа/позиции, соответствующими упомянутому символу,
- отправки данных отображения клиентскому устройству, связанному зашифрованными данными символа/позиции, и в порядке в соответствии со сформированной перестановкой.
3. Серверное устройство по п. 1, в котором:
- для всех позиций использованы одни и те же данные отображения, или
- по меньшей мере для двух разных позиций использованы разные данные отображения.
4. Серверное устройство по п. 2, в котором клиентскому устройству не отправляют данные отображения для последующей проверки подлинности, причем в клиентском устройстве использованы кэшированные данные отображения.
5. Серверное устройство по любому из предыдущих пунктов, в котором первое проверочное число ослеплено с помощью ослепляющего числа (), а вычисление второго проверочного числа включает ослепление с помощью ослепляющего числа.
6. Серверное устройство по любому из предыдущих пунктов, в котором по меньшей мере некоторые из данных символа/позиции являются случайными числами.
7. Серверное устройство по любому из предыдущих пунктов, в котором:
- по меньшей мере некоторые из данных символа/позиции вычислены как значения, кратные степеням основания степени,
- по меньшей мере некоторые из данных символа/позиции вычислены как степени, причем показатели степени являются значениями, кратными степеням основания степени.
8. Серверное устройство по любому из предыдущих пунктов, в котором проверка соответствия включает расшифрование второго проверочного числа.
9. Серверное устройство по любому из предыдущих пунктов, в котором алгоритм гомоморфного шифрования является алгоритмом вероятностного гомоморфного шифрования.
10. Серверное устройство по любому из предыдущих пунктов, в котором проверочное число является обязательством Педерсена, и/или в котором шифрование является шифрованием Эль-Гамаля.
11. Клиентское устройство для проверки пользователя для серверного устройства, причем пользователь имеет доступ к строке проверки подлинности, строка проверки подлинности имеет множество символов во множестве позиций, а символы выбраны из набора символов, при этом клиентское устройство содержит:
- процессорную схему, выполненную с возможностью:
- приема набора данных символа/позиции, зашифрованных в соответствии с алгоритмом гомоморфного шифрования, причем зашифрованный набор () данных символа/позиции содержит число для каждой комбинации из символа из набора символов и позиции в строке проверки подлинности,
p
- гомоморфного вычисления зашифрованного второго проверочного числа () из подмножества упомянутого зашифрованного набора данных символа/позиции, причем упомянутое подмножество указано строкой () проверки подлинности,
- отправки зашифрованного второго проверочного числа серверному устройству.
12. Клиентское устройство по п. 11, в котором процессорная схема выполнена с возможностью:
- приема данных отображения от серверного устройства, связанного с зашифрованными данными символа/позиции,
- отображения принятых данных отображения для каждой позиции строки проверки подлинности;
- приема пользовательского ввода, выбирающего данные отображения из отображаемых данных отображения,
- выбора упомянутого подмножества в соответствии с выбранными данными отображения.
13. Клиентское устройство по любому из пп. 11, 12, содержащее запоминающее устройство для хранения ослепляющего числа, причем процессорная схема выполнена с возможностью ослепления зашифрованного второго проверочного числа с помощью ослепляющего числа ().
14. Способ (600) для сервера для проверки пользователя с клиентского устройства (100), причем пользователь имеет доступ к строке (326) проверки подлинности, строка проверки подлинности имеет множество символов во множестве позиций (410), а символы выбирают из набора (420) символов, при этом способ для сервера включает:
p
- сохранение (610) первого проверочного числа (340, ), вычисленного из подмножества (320) набора (310) данных символа/позиции, причем упомянутое подмножество указано строкой (325, ) проверки подлинности, а набор данных (310, ) символа/позиции содержит число (430) для комбинаций из символа из набора символов и позиции в строке проверки подлинности,
- шифрование (620) набора данных символа/позиции в соответствии с алгоритмом гомоморфного шифрования и отправку зашифрованного набора (350) клиентскому устройству,
- прием (630) от клиентского устройства второго проверочного числа (380), получаемого гомоморфным вычислением зашифрованного второго проверочного числа из подмножества зашифрованного набора, при этом подмножество указывают посредством упомянутой строки проверки подлинности, и
- проверку (640) соответствия между первым проверочным числом и зашифрованным вторым проверочным числом для проверки подлинности пользователя.
15. Способ (700) для клиента для проверки пользователя для серверного устройства, причем пользователь имеет доступ к строке проверки подлинности, строка проверки подлинности имеет множество символов во множестве позиций, а символы выбирают из набора символов, при этом способ для клиента включает:
- прием (710) набора данных символа/позиции, зашифрованных в соответствии с алгоритмом гомоморфного шифрования, причем зашифрованный набор () данных символа/позиции содержит число для каждой комбинации из символа из набора символов и позиции в строке проверки подлинности,
p
- гомоморфное вычисление (720) зашифрованного второго проверочного числа () из подмножества зашифрованного набора данных символа/позиции, причем подмножество указывают посредством упомянутой строки () проверки подлинности,
- отправку (730) зашифрованного второго проверочного числа серверному устройству.
16. Компьютерочитаемый носитель (1000) информации, содержащий кратковременные и некратковременные данные (1020), представляющие инструкции, выполнение которых процессорной системой приводит к осуществлению ею способа по п. 14 или 15.