Проблема именования открытого и закрытого ключа

Я слышал, что вы можете использовать закрытый ключ для шифрования данных в качестве метода цифровой подписи. Другими словами, вы можете зашифровать сообщение своим закрытым ключом.

В тексте они всегда говорят, что только открытый ключ может зашифровать, а закрытый ключ может расшифровать текст.

Я предполагаю, что это плохой выбор слов. Правда ли, что один экземпляр ключа может делать только одно или другое, но вопрос о том, какой ключ является открытым или закрытым, зависит не от его функции, а от его распространения или его отсутствия.


person rubixibuc    schedule 14.09.2011    source источник


Ответы (4)


Для новичка терминология сбивает с толку. RSA можно использовать для двух различных криптографических функций: шифрования данных и цифровых подписей.

При шифровании данных вы шифруете данные с помощью открытого ключа получателя; они расшифровывают его, используя свой закрытый ключ. Обратите внимание, что из-за различных ограничений RSA «данные», которые шифруются и дешифруются, обычно являются просто ключом для симметричного алгоритма.

В случае цифровых подписей вы подписываете данные, используя свой закрытый ключ; они проверяют подпись над данными, используя ваш открытый ключ. Опять же, различные ограничения RSA означают, что то, с чем на самом деле работает алгоритм RSA, обычно является безопасным хэшем данных.

Иногда операцию подписи называют «шифрованием с помощью закрытого ключа», а операцию проверки — «дешифрованием с помощью открытого ключа». Я думаю, что это просто сбивает людей с толку, поэтому я всегда предпочитаю термины «подписание» и «проверка» в этом контексте. Кроме того, «шифрование» и «дешифрование» не имеют смысла для других алгоритмов подписи, таких как DSA и ECDSA.

person President James K. Polk    schedule 15.09.2011
comment
Быстрый вопрос: когда вы говорите «зашифровать с помощью своего закрытого ключа», это тот же самый ключ, который вы только что расшифровали? Или это просто шифрование, которое было сгенерировано и сохранено в тайне, а не обнародовано? В принципе, можете ли вы использовать клавишу кажется для двух разных целей, если обе клавиши меняют роли? - person rubixibuc; 16.09.2011

Вы МОЖЕТЕ сгенерировать открытый ключ из закрытого ключа.

Вы НЕ МОЖЕТЕ генерировать закрытый ключ из открытого ключа (ну, вы можете, но это чрезвычайно затратно в вычислительном отношении).

В этом разница между ними. Они НЕ взаимозаменяемы (так, например, вам НЕ СЛЕДУЕТ публиковать свой закрытый ключ и хранить открытый ключ при себе) из-за того, как работают алгоритмы.

Возьмем, к примеру, RSA. В основе алгоритма лежит задача целочисленной факторизации. Вы выбираете два больших целых числа p и q и перемножаете их, чтобы получить n = p*q. Затем вы создаете открытый и закрытый ключ:

  • Открытый ключ: (n, e)
  • Закрытый ключ: (p, q, d)

Затем:

  • Открытый ключ легко вычислить из закрытого ключа:

    n = p*q

    e = d^(-1) mod φ(n), где φ(n) = (p-1)(q-1)

  • Трудно вычислить закрытый ключ из открытого ключа — требуется факторизация n, чтобы получить p и q, что чрезвычайно сложно, если p и q достаточно велики.
person jakub.g    schedule 14.09.2011
comment
На самом деле, в первом предложении должно быть указано большинство алгоритмов или что-то подобное — это не является необходимой истиной для криптографии с открытым ключом. Могут быть алгоритмы, в которых оба ключа взаимозаменяемы, но в целом ваш совет правильный. - person Paŭlo Ebermann; 14.09.2011

Вы публикуете свой ключ шифрования, а ключ дешифрования держите в секрете. Таким образом, любой может отправить вам зашифрованные данные, которые только вы можете расшифровать.

Если бы вы сделали это наоборот, то вы были бы единственным, кто смог бы зашифровать ваши данные, но любой мог бы их расшифровать. Это бессмысленно. Если каждый может расшифровать ваше сообщение, вы можете отправить его незашифрованным. Нет смысла шифровать сообщение, а затем делать ключ дешифрования общедоступным.

person Paul    schedule 14.09.2011
comment
Тем не менее, это ядро ​​того, как работают схемы асимметричной подписи. - person Paŭlo Ebermann; 14.09.2011

Существует два типа шифрования: один симметричный, другой асимметричный. В симметричном ключ, используемый для шифрования и дешифрования, один и тот же. в асимметричном ключе, используемом для шифрования, является открытым ключом, а для расшифровки - закрытым ключом.

все работает по принципу секретности ключа. В цифровой подписи, обычно используемой как часть протоколов SSL / TLS, используется асимметричное шифрование для аутентификации и совместного использования главного ключа, который в дальнейшем используется для шифрования линии связи.

person Simal Haneef    schedule 14.09.2011