Криптосистема Бенало — модификация криптосистемы Гольдвассер — Микали. Основное их отличие состоит в том, что криптосистема позволяет зашифровывать блок данных единовременно, в то время как в схеме Гольдвассера и Микали каждый бит данных шифруется отдельно[1].
Система является частично гомоморфной. Как и во многих криптосистемах с открытым ключом, эта система работает в группе , где — произведение двух простых чисел.
Выбираются блок размера и два больших различных простых числа и , удовлетворяющие следующим условиям:
и — взаимно простые ;
и — взаимно простые.
Вычисляется , ;
Выбирается так, что . Замечание: если составное, то вышеуказанные условия не являются достаточными для обеспечения правильной расшифровки[3], то есть для того, чтобы всегда выполнялось . Чтобы избежать подобного, предлагается выполнять следующую проверку: пусть . Тогда выбирается таким образом, чтобы для каждого выполнялось .
Таким образом, чтобы вычислить , зная , проводится операция дискретного логарифмирования из по основанию . Если число небольшое, возможно нахождение через исчерпывающий перебор, то есть проверкой выполнения равенства для всех . При больших значениях , нахождение можно проводить с помощью алгоритма Гельфонда — Шенкса (алгоритм больших и малых шагов), получив временную сложность расшифрования .
Стойкость криптосистемы Бенало основана на труднорешаемой задаче о вычетах высокой степени. Зная размер блока , модуль и шифртекст , где разложение на множители числа неизвестно, — определить открытый текст вычислительно сложно.