Arbil
@Arbil

Шифрование с открытым ключом. Что такое ключ?

Здрасте
Думаю все вы знаете что такое шифрование с открытым ключом, объяснять нет смысла.
Так вот, что такое ключ?
Это программа шифрования?
Или что это?
  • Вопрос задан
  • 1451 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
Я просто оставлю это здесь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Эта асимметричная система шифрования получила название криптографии с открытым ключом.

Работает эта система так:

Генерируется случайный закрытый (приватный) ключ (напомним, что ключ или шифр — это последовательность символов) и по определенному алгоритму подбирается к нему другой — открытый (публичный) ключ. При этом, для любого закрытого ключа существует только один вариант открытого. Т.е. эти ключи (приватный и публичный) всегда работают в паре (связке).
Далее полученный открытый (публичный) ключ пересылается по любым открытым каналам связи отправителю тайного сообщения.
Получив открытый (публичный) ключ, отправитель при помощи него зашифровывает сообщение и отправляет его получателю у которого есть соответствующий закрытый (приватный) ключ.
Получатель расшифровывает секретное сообщение, используя свой закрытый (приватный) ключ из пары с открытым (публичным), которым было зашифровано сообщение.

Следует отметить, что открытым (публичным) ключом можно только зашифровать сообщение, но расшифровать его уже этим ключом не получится. Для дешифрования нужен только закрытый (приватный) ключ из пары. Так работает алгоритм с асимметричным шифрованием.

https://www.intuit.ru/studies/courses/28/28/lectur...
https://intsystem.org/security/asymmetric-encrypti...
Ответ написан
Комментировать
Radjah
@Radjah
Погугли про асимметричное шифрование. Там как раз для кодирования и декодирования используются разные ключи. Там и про ключ будет.
Ответ написан
Комментировать
tsarevfs
@tsarevfs
C++ developer
Отличная визуализация принципа ассиметричного шифрования https://www.youtube.com/watch?v=vFjq9pID4-E
Ответ написан
Комментировать
pazukdev
@pazukdev
Java Dev
Вы можете безопасно обмениваться данными с кем-то только в том случае, если у Вас обоих есть общий ключ для их шифровки и расшифровки, о котором больше никто не знает. Проблема в том, как сделать так, чтобы он оказался у вас обоих, но при этом никто не узнал. Т.е. как передать ключ по открытому каналу не скомпроментировав его. Ассиметричное шифрование как раз вот про это.

Алгоритм этой операции такой:

1. Сервер передает клиенту публичный ключ по незащищенному соединению.

2. На основе публичного ключа сервера клиент создает разделяемый (общий) ключ, сохраняет его у себя.

3. Клиент шифрует свой разделяемый ключ и в зашифрованном виде передает серверу.

4. Сервер расшифровывает зашифрованный разделяемый ключ c помощью своего приватного ключа и получает разделяемый ключ у себя.

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

Войдите, чтобы написать ответ

Похожие вопросы