Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline aleks_pingvin  
#1 Оставлено : 9 сентября 2020 г. 11:07:26(UTC)
aleks_pingvin

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.09.2020(UTC)
Сообщений: 1

Добрый день, коллеги.

Правильно ли я понимаю, что средствами API КриптоПро нет ни какой возможность зашифровать блок данных при помощи публичного ключа и расшифровать его затем уже приватным, т.к. нет сертифицированной реализации ГОСТ-овского ассиметричного шифрования (типа RSA)?

Нам надо решить проблему безопасного хранения зашифрованных данных в недоверенном хранилище. Для этого мы хотим их хранить в зашифрованном симметричным алгоритмом виде. А т.к. симметричные ключи шифрования планируется менять с нужной периодичность, то их тоже надо хранить там же но закрыв публичным ключом тех, для кого они предназначены. Таким образом без приватного ключа мы не сможем узнать ключ шифрования данных симметричным шифром.
Offline two_oceans  
#2 Оставлено : 17 ноября 2020 г. 6:49:38(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Добрый день. Только увидел, на случай если еще актуально.

Алгоритм шифрования гост-89 (он же "магма" в гост-2015) поддерживает только симметричные ключи.
Поэтому при шифровании сообщений применяется схема обмена ключей, похоже это как раз то что Вам нужно:
1) генерируется сессионный ключ (симметричный) и им шифруются данные;
2) из закрытого ключа отправителя и открытого ключа получателя формируется ключ согласования (симметричный!);
3) ключом согласования шифруется сессионный ключ.
4) В сообщение включаются: стартовый вектор+зашифрованные данные (однократно), зашифрованный сессионный ключ (несколько, по числу получателей, так как для каждого получателя свой ключ согласования и получится свой вариант шифрования одного и того же сессионного ключа), сертификат/открытый ключ отправителя;
5) при расшифровке из открытого ключа отправителя и закрытого ключа получателя получается тот же ключ согласования, что и в пункте 2 (симметричный).
Фокус в том, что для любых двух разных пар одной схемы и длины гост: если взять открытый ключ первой пары и закрытый ключ второй пары можно получить симметричный ключ согласования, причем такой же как если бы взяли наоборот закрытый ключ первой и открытый второй.
6) зашифрованный сессионный ключ расшифровывается ключом согласования;
7) данные расшифровываются сессионным ключом из пункта 6.

Отправитель может использовать эфемерную (временную) ключевую пару - тогда вместо сертификата отправляет получателю открытый ключ эфемерной пары. В этом случае отправитель не сможет расшифровать данные после уничтожения эфемерной пары. От получателя же требуется постоянная ключевая пара.

Таким образом, блоки в недоверенном хранилище у вас это данные сообщения в схеме. А симметричные ключи у вас - это сессионные ключи в схеме, которые нужно закрыть ключом согласования, полученным из разных ключевых пар. Потребуется минимум 2 ключевые пары гост (постоянные): 1) у того кто меняет сессионные ключи и перешифрует данные на новые сессионные ключи (назовем сервис) 2) у каждого пользователя, которому нужно уметь расшифровывать сессионные ключи, чтобы расшифровать данные. Эфемерная не подойдет, так как сервису при смене ключей потребуется расшифровать данные и зашифровать снова.


RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.