EPOC
(
англ.
Efficient Probabilistic Public Key Encryption
;
эффективное вероятностное шифрование
с открытым ключом) — это
схема
шифрования
с открытым ключом
.
EPOC был разработан в ноябре 1998 г. Т. Окамото (англ. T. Okamoto), С. Учияма (англ. S. Uchiyama) и Э. Фудзисаки (англ. E. Fujisaki) из
NTT
Laboratories в
Японии
. Он основан на модели
случайного оракула
, в которой функция шифрования с открытым ключом преобразуется в безопасную схему шифрования с использованием (действительно) случайной хеш-функции; результирующая схема разработана так, чтобы быть
семантически защищённой
от
атак на основе подобранного шифротекста
.
Содержание
Виды схем
Функция шифрования EPOC — это функция OU (англ. Okamoto-Uchiyama), которую инвертировать так же сложно, как
факторизировать
составной целочисленный открытый ключ. Существует три версии EPOC
:
EPOC-1, использующий
одностороннюю функцию
(англ. trapdoor function) и случайную функцию (хеш-функцию)
.;
EPOC-2, использующий
одностороннюю функцию
, две случайные функции (хеш-функции) и шифрование с симметричным ключом (например, одноразовый блокнот и блочные шифры)
;
EPOC-3 использует
одностороннюю функцию
OU (англ. Okamoto-Uchiyama) и две случайные функции (хеш-функции), а также любую симметричную схему шифрования, такую как одноразовые блокноты (англ. one-time pad) или
блочный шифр
.
Диффи
и
Хеллман
предложили концепцию
криптосистемы с открытым ключом
(или
односторонней функции
) в 1976 году. Хотя многое криптографы и математики провели обширные исследования, чтобы реализовать концепцию криптосистем с открытым ключом в течение более чем 20 лет, было найдено очень мало конкретных методов, которые являются безопасными
.
Окамото и Учияма, предложили
одностороннюю функцию
, названную OU (англ. Okamoto-Uchiyama), которая практична, доказуемо безопасна и обладает некоторыми другими интересными свойствами
.
Неразличимость шифротекста
:
Даже тот, кто не знает секретного ключа, может изменить зашифрованный текст,
, на другой зашифрованный текст,
, сохраняя при этом открытый текст m (то есть
), и связь между
и
может быть скрыта (то есть
и
неразличимы). Такое свойство полезно для протоколов защиты конфиденциальности).
Схема шифрования с открытым ключом
EPOC, которая задаётся триплетом
, где
-операция генерации ключа,
-операция шифрования и
-операция дешифрования.
Схемы EPOC: EPOC-1 и EPOC-2.
EPOC-1 предназначен для распределения ключей, а EPOC-2 предназначен для распределения ключей и передачи зашифрованных данных, а также распределения более длинного ключа при ограниченном размере открытого ключа.
Типы ключей
Существует два типа ключей: открытый ключ OU и закрытый ключ OU, оба из которых используются в криптографических схемах шифрования EPOC-1, EPOC-2
.
OU открытый ключ
Открытый ключ OU — это набор
, компоненты которого имеют следующие значения:
— неотрицательное целое число
— неотрицательное целое число
— неотрицательное целое число
— секретный параметр, неотрицательное целое число
На практике в открытом ключе OU модуль
принимает вид
, где
и
— два различных нечётных простых числа, а битовая длина
и
равна
.
-элемент в
такой, что порядок
в
равен
, где
.
-элемент в
.
OU закрытый ключ
Закрытый ключ OU — это набор
, компоненты которого имеют следующие значения:
Примечание:
является дополнительным параметром, повышающим эффективность дешифрования, и может быть вычислен из
и
.
, когда
(
-константа
).
может быть зафиксирован системой и совместно использован многими пользователями.
Шифрование: E
Ввод и вывод
следующие:
[Входные данные]:
Открытый текст
вместе с открытым ключом
.
[Выходные данные]:
Шифротекст С.
Операция
со входами
,
выглядит следующим образом:
Выберем
и вычислим
. Здесь
обозначает конкатенацию
и
.
Вычислить
:
Дешифрование: D
Ввод и вывод
следующие:
[Входные данные]:
Шифротекст
наряду с открытым ключом
и секретным ключом
.
[Выходные данные]:
Открытый текст
или нулевая строка.
Операция
со входами
,
и
выглядит следующим образом:
Вычислим
, а
, где
.
Проверим, верно ли следующее уравнение:
.
Если выражение верно, то выведем
как расшифрованный открытый текст, где
обозначает наиболее значимые
биты в
. В противном случае выведем нулевую строку.
EPOC-2
Создание Ключа: G
Ввод и вывод
следующие:
[Входные данные]:
Секретный параметр
(
).
[Выходные данные]:
Пара открытого ключа
и секретного ключа
.
Операция
со входом
выглядит следующим образом:
Выберем два простых числа
,
(
) и вычислим
. Здесь
и
такое, что
и
— простые числа, а
и
такие, что
.
Выберем
случайным образом так, чтобы порядок
был равен
.
Выберем
из
случайным образом и независимо от
. Вычислим
.
Примечание:
является дополнительным параметром, повышающим эффективность дешифрования, и может быть вычислено из
и
.
, когда
(
-константа
).
и
могут быть зафиксированы системой и совместно использованы многими пользователями.
Шифрование: E
Пусть
— пара алгоритмов шифрования и дешифрования с симметричным ключом
, где длина
равна
. Алгоритм шифрования
принимает ключ
и открытый текст
и возвращает зашифрованный текст
. Алгоритм расшифровки
принимает ключ
и зашифрованный текст
и возвращает открытый текст
.
Ввод и вывод
следующие:
[Входные данные]:
Открытый текст
вместе с открытым ключом
и
.
[Выходные данные]:
Зашифрованный текст
.
Операция
со входами
,
и
выглядит следующим образом:
Bellare, M., Desai, A., Pointcheval, D., and Rogaway, P.
Relations Among Notions of Security for Public-Key Encryption Schemes, Proc. of Crypto’98, LNCS 1462, Springer- Verlag,
(англ.)
. — 1998. —
P. 26–45
.
Katja Schmidt-Samoa.
(англ.)
. — 2006. —
P. 86–88
.