|
|
|
Компьютеры - ACE Encrypt - Схема шифрования30 апреля 2011
Оглавление: 1. ACE Encrypt 2. Безопасность 3. Схема шифрования 4. Схема цифровой подписи 5. Замечания
Пара ключей шифрования
В схеме шифрования ACE задействованы два типа ключей:
открытый ключ ACE: .
закрытый ключ ACE: .
Для заданного параметра размера , такого что , компоненты ключей определяются следующим образом:
256-битное простое число.
m-битное простое число, такое что .
элементы .
элементы .
элементы , для которых и , где и .
Генерация ключа
Алгоритм. Генерация ключа для схемы шифрования ACE.
Вход: параметра размера , такой что .
Выход: пара открытый/закрытый ключ.
- Сгенерировать случайное простое число
, такое что .
- Сгенерировать случайное простое число
, , такое что .
- Сгенерировать случайное целое число
, такое что .
- Сгенерировать случайные целые числа
и 
- Вычислить следующие целые числа в
:
,
,
,
,
.
- Сгенерировать случайные байтовые строки
и , где и .
- Вернуть пару открытый/закрытый ключ

Представление шифротекста
Шифротекст в схеме шифрования ACE имеет вид
,
где компоненты определяются следующим образом:
целые числа из .
элемент .
элемент .
назовём преамбулой, а криптограммой. Если текст строка из байт, то тогда длина равна .
Необходимо ввести функцию , которая представляет шифротекст в виде байтовой строки, а также обратную функцию . Для целого , символьной строки , целых , и байтовой строки ,
.
Для целого , байтовой строки , для которой ,
.
Процесс шифрования
Алгоритм. Ассимметричный процесс шифрования ACE.
Вход: открытый ключ и байтовая строка .
Выход: байтовая строка шифротекст , полученный из .
- Сгенерировать случайное
.
- Сгенерировать преамбулу шифротекста:
- Сгенерировать
.
- Вычислить
, .
- Вычислить
; заметим, что .
- Вычислить
.
- Вычислить ключ для операции симметричного шифрования:
, .
- Вычислить
.
- Вычислить криптограмму
.
- Закодировать шифротекст:
.
- Вернуть
.
Перед запуском процесса симметричного шифрования входное сообщение разбивается на блоки , где каждый блок кроме, возможно, последнего имеет 1024 байт. Каждый блок шифруется потоковым шифратором. Для каждого зашифрованного блока вычисляется 16-байтовый код аутентификации. Получаем криптограмму
.
. Заметим, что если , то .
Алгоритм. Симметричный процесс шифрования ACE.
Вход: 
Выход: , .
- Если
, тогда вернуть .
- Проинициализировать генератор псевдо-случайных чисел:

- Сгенерировать ключ
:
.
.
- Пока
, выполнять следующее:
.
- Сгенерировать значения масок для шифрования и MAC:
.
.
- Зашифровать текст:
.
- Сгенерировать аутентификационный код сообщения:
- Если
, тогда ; иначе .
.
- Обновить шифротекст:
.
.
- Вернуть
.
Процесс дешифрования
Алгоритм. Процесс дешифрования ACE.
Вход: открытый ключ и соответствующий закрытый ключ , байтовая строка .
Выход: Расшифрованное сообщение .
- Дешифровать шифротекст:
- Если
, тогда вернуть .
- Вычислить:
;
заметим, что , где .
- Подтвердить преамбулу шифротекста:
- Если
или или , тогда вернуть .
- Если
, тогда вернуть .
.
- Если
, тогда .
- Вычислить
; заметим, что .
- Если
, тогда .
- Если
, тогда вернуть .
- Вычислить ключ для процесс симметричного дешифрования:
, .
- Вычислить
.
- Вычислить
;заметим, что может вернуть .
- Вернуть
.
Алгоритм. Операция дешифрования .
Вход: 
Выход: Расшифрованное сообщение .
- Если
, тогда вернуть .
- Проинициализировать генератор псевдо-случайных чисел:

- Сгенерировать ключ
:
.
.
- Пока
, выполнять следующее:
.
- Если
, тогда вернуть .
- Сгенерировать значения масок для шифрования и MAC:
.
.
- Подтвердить аутентификационный код сообщения:
- Если
, тогда ; иначе .
.
- Если
, тогда вернуть .
- Обновить текст:
.
.
- Вернуть
.
Просмотров: 4663
|