Можно ли использовать одну пару ключей и для шифрования и для ЭЦП?
Здравствуйте!
Заранее прошу прощения за тупой вопрос, но ответа в гугле не нашел (или не так искал).
У нас есть одна пара ключей открытый и закрытый.
Отдаем открытый Бобу, он шифрует им сообщение, которое можно расшифровать только имея закрытый (т.е. сделать это можем только мы).
Если нам нужно поставить ЭЦП, мы должны зашифровать хэш закрытым ключом, а расшифровать может кто-угодно открытым, т.е. наоборот (зарытый становится открытым, а открытый закрытым).
Следовательно, используя одну пару ключей и для ЭЦП и для шифрования сообщений, оба ключа будут доступны широкой общественности, что не есть хорошо.
Вопрос в следующем:
Если у нас только одна пара ключей, можно ли пользоваться и ЭЦП и шифровать сообщения, которые сможем прочитать только мы, имея закрытый ключ?
Взаимозаменяемы ли ключи в односторонней функции с секретом? (т.е. если использовать для зашифрования ключ А, а для расшифрования ключ Б, можно ли использовать то же ключ Б для зашифрования, а ключ А для расшифрования?)
Например:
Для RSA будет справедливо следующее:
У Алисы есть пара ключей e (публичный) и d (секретный). Публичный она отдаст Бобу (естественно безопасным образом).
Ситуация 1.
Бобу нужно отправить сообщение конфиденциального содержания Алисе. Он просто берет сообщение, шифрует его на открытом ключе Алисы и полученную криптограмму отправляет Алисе.
Алиса получает криптограмму и с помощью своего секретного ключа, который известен только ей, расшифровывает сообщение.
Ситуация 2.
Алиса решила сказать на весь мир, что она - самая красивая. И чтобы никто не сомневался, что эти слова принадлежат именно ей, она сделала ЭП (электронную подпись) с помощью своего секретного ключа.
Боб решил удостовериться, что слова действительно принадлежат именно Алисе. Мы помним, что у него есть ее публичный ключ, с помощью которого он может верифицировать подпись Алисы.
Возможность применить вот так легко секретный и публичный ключи сразу в двух ситуациях предоставляется не всегда. Например, алгоритмы, основанные на эллиптических кривых могут пока что использоваться только в протоколах ЭП.
Непонятно почему вы считаете что при ЭЦП приватный ключ становится публичным: подписывание должно производится только одним человеком с использованием приватного ключа, а проверка подписи производится всем и каждым у кого есть публичный ключ. Аналогично и с шифрованием: закрытый ключ есть только у получателя.
Но ведь подпись это ЗАшифрование хэша сообщения своим закрытым ключом (т.е. закрытый ключ у того, кто шифрует, у отправителя), а в случае с шифрованием сообщения РАСшифрование производится закрытым ключом (закрытый ключ у получателя, т.е. у того, кто РАСшифровывает). Или это не так?
То есть закрытым ключом можно И зашифровать И расшифровать, таким образом, что бы обратную операцию можно было проделать только с использованием парного ему открытого?
Владимир Мартьянов: есть шифрущий ключ и дешифрующий, а какой их них приватный и открытый зависит от того кто шифрует и кто читает , если шифрует один а читают все то это эцп и шифрующий становится приватный ключом, если шифруют все а читает один то дешифрующий становится приватным, ( это для RSA)
Василий: Я уже написал по поводу наличия в общем доступе приватных ключей что при шифровании, что при ЭЦП. Без приватных ключей невозможна ни подпись, ни расшифровка.
Женя: есть несколько алгоритмов ассиметричного шифрования, в RSA/DSA приватный ключ можно использовать как шифрующий с расшифровкой открытым (эцп), и как дешифрующий с шифриванием открытым ключом -присылать письма или ключ сеанса.
Когда вы шифруете сообщение, то шифруете его на открытом ключе получателя.
А в случае ЭЦП используется ваш закрытый ключ, т.к. вы ставите свою ЭЦП. Получатель при этом для проверки ЭЦП использует ваш открытый ключ.
В любом случае, обычно для обмена двух людей, должна быть пара ключей у одного и у другого. Хотя в вырожденном случае - отправка сообщений самому себе, можно обойтись и одним ключом.
Некоторые СКЗИ имеют разные ключи для ЭЦП и шифрования. Например Верба.