Чтобы понять открытый и закрытый ключ одновременно, требуется всего 10 минут.
Чтобы понять открытый и закрытый ключ одновременно, требуется всего 10 минут.

О том, что такое Открытые и закрытые ключи, в Интернете есть очень классическая статья: http://www.youdzone.com/signature.html

Я обращаюсь к основному содержанию этой статьи, чтобы познакомить вас с тем, как работают Открытые и закрытые ключи.

Открытые и закрытые ключи

У Боба есть два ключа: один — открытый, а другой — закрытый.

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

Давайте сначала посмотрим на разницу между Открытыми и закрытыми ключами:

  • Открытый ключ: Открытый ключ используется для получения информации. Когда кто-то хочет отправить тебе сообщение шифрование,Они будут использовать ваш открытый ключ для шифрования.,Таким образом, только вы, имея соответствующий закрытый ключ, сможете расшифровать и прочитать информацию. Открытые ключи также можно использовать для проверки цифровой подписи. Если кто-то подписал сообщение своим секретным ключом,и утверждает, что эта подпись была создана им,Вы можете использовать его открытый ключ для проверки подписи.,Если проверка прошла успешно,Тогда эта подпись действительно была создана с использованием соответствующего закрытого ключа.
  • Закрытый ключ: закрытый ключ используется для расшифровки информации. Когда кто-то использует ваш открытый ключ для создания сообщения и отправляет его вам,Только ваш закрытый ключ может расшифровать это сообщение.,потому что это единственный,Только ты знаешь. также,Закрытые ключи также можно использовать для создания цифровой подписи. Когда вы подписываете документ или сообщение,На самом деле вы используете свой закрытый ключ для шифрования определенного представления информации (например, хеша информации).,Таким образом, получатель сможет использовать ваш открытый ключ для проверки действительности подписи.,Чтобы подтвердить, что информация действительно исходит от вас,и не подвергался манипуляциям.

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

Шифрование и дешифрование

Что должна сделать Сьюзен, если она хочет отправить Бобу зашифрованное сообщение?

  • Во-первых, Сьюзен сначала необходимо получить открытый ключ Боба. Поскольку открытый ключ является открытым, Сьюзен и любой другой человек могут легко его получить;
  • Затем,Сьюзан использует открытый ключ Боба для отправки сообщения шифрование.,Получить зашифрованный текст после фрагмента шифрования;
  • Затем Сьюзен отправляет зашифрованный текст Бобу;
  • Наконец, Боб использует свой закрытый ключ, чтобы расшифровать зашифрованный текст и получить исходный текст.

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

цифровая подпись

Интересно, нашли ли вы проблему?

Когда Боб получает сообщение, отправленное ему Сьюзен, как он узнает, что это сообщение является оригинальным сообщением, отправленным ему Сьюзен?

Мог ли кто-то подделать первоначальную информацию?

Может ли кто-нибудь притвориться Сьюзен и отправить сообщение?

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

Другими словами, как Сьюзен сможет доказать, что это сообщение было отправлено ею?

Для этого необходимо использовать цифровую подпись.

Хэш-функция

Процесс цифровой подписи обычно начинается с Хэш-функции.,Например, MD5, SHA, RIPEMD-160 и т. д. Особенностью Хэш-функции является то, что она может конвертировать данные любого размера в строку фиксированной длины (например, 32-битную, 64-битную).,Эта строка называется хешем или дайджестом. Важной особенностью Хэш-функции является то, что,Даже небольшое изменение данных приведет к созданию совершенно другого значения хеш-функции.

Даже если будет изменен только один символ, итог, сгенерированный Хэш-функцией, будет сильно отличаться.

Основные этапы цифровой подписи следующие:

  1. Создание подписи: Сьюзан сначала хеширует исходный документ (например, документ или сообщение), используя Хэш-функцию для генерации хэш-значения.
  1. Затем,Сьюзен использует свой закрытый ключ для хеширования хеш-значения.,Сгенерированный результат — цифровая подпись.
  1. Дополнительная подпись: цифровая подпись затем добавляется к исходным данным, и обе они отправляются Бобу.
  1. Проверка подписи: Боб получает цифровую подпись. После подписания данных будет использоваться пара открытых ключей Сьюзан. Подпись проверяется (открытый ключ Сьюзен также общедоступен и легко доступен) и получается хэш-значение. Боб может успешно проверить, используя открытый ключ Сьюзен, доказывая, что это сообщение действительно было отправлено Сьюзен, поскольку с использованием закрытого ключа Сьюзен была сгенерирована только цифровая версия. Подпись может успешно подтвердиться с использованием открытого ключа Сьюзен, а закрытый ключ Сьюзен принадлежит только самой Сьюзен. в то же время,Боб также выполнит такое же хеширование исходных данных.,Создайте другое хеш-значение. Если два хеша одинаковы,Это доказывает, что данные не были подделаны в процессе передачи. Если два хеша различны,Это означает, что данные были подделаны во время передачи.

Susanпроходитьцифровая подпись,Это может доказать, что документ выдан вами самостоятельно.,И он не был подделан во время передачи.

Центр сертификации (ЦС)

Наконец, есть еще один важный вопрос. Вы это обнаружили?

Поскольку открытые ключи являются общедоступными и могут быть легко получены кем угодно, как гарантировать, что открытые ключи не были подделаны?

Как Боб и Сьюзен определяют, что открытый ключ, находящийся в их руках, принадлежит друг другу?

Если злоумышленник выдает себя за Боба и отправляет Сьюзен свой открытый ключ, заставляя Сьюзан думать, что она болтала с Бобом, как его взломать?

В это время необходимо представитьцентр сертификации .

Центр сертификации (CA) можно понимать как «центр проверки личности» в сетевой безопасности, аналогичный паспортному инспектору в онлайн-мире. Его основная задача — предоставить цифровые сертификаты участникам цифровых коммуникаций (таким как веб-сайты, приложения и т. д.) для обеспечения подлинности их личности, конфиденциальности и целостности передачи данных.

Центры сертификации работают следующим образом:

  1. Аутентификация. Если вы хотите получить цифровой сертификат, вам необходимо обратиться в центр сертификации. Центр сертификации подтвердит вашу личность посредством ряда процессов проверки. Например, если вы представляете компанию, ЦС может запросить вашу бизнес-лицензию и другие юридические документы.
  2. Генерация сертификата: после подтверждения личности,Центр сертификации создаст для вас цифровой сертификат. Этот сертификат содержит ваш открытый ключ (ключ, используемый для отправки сообщений) и некоторую идентификационную информацию.,Например, ваше имя, название компании или адрес веб-сайта.
  3. Подписание сертификата. Чтобы другие могли доверять этому сертификату, центр сертификации подпишет сертификат своим собственным секретным ключом. Эта подпись является своего рода гарантией CA подлинности сертификата.
  4. Распространение сертификатов: цифровой сертификат, который вы получите, будет установлен на вашем сервере или веб-сайте. Когда пользователь посещает ваш веб-сайт,Их браузер проверит этот сертификат. В браузере уже есть встроенный список доверенных центров сертификации.,Таким образом, он может проверить подпись ЦС.
  5. Связь по безопасности: если проверка сертификата пройдена,Браузер пользователя поверит, что ваш веб-сайт является безопасным.,Затем вы можете начать общение с Безопасностью.,Информация, введенная пользователем, будет использоваться компьютером пользователя с использованием открытого ключа шифрования.,Затем Безопасностьотправлено всервер。толькосервериспользовать себяиз Закрытый ключ может расшифровать эту информацию.。

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

Применение алгоритма асимметричного шифрования

Симметричное шифрование и асимметричное шифрование

Симметричное шифрование

Симметричное шифрование,Также известно как шифрование секретного ключа.,Относится к методам шифрования и дешифрования с использованием одного и того же ключа. Этот метод шифрования отличается высокой эффективностью.,Поскольку алгоритм относительно прост,Быстрая скорость расчета,Подходит для больших объемовданныеизшифрование。

Нет Симметричное шифрование

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

Симметричное Алгоритм шифрования прост и быстр, подходит для передачи больших объемов данных, а не симметрично. шифрование Алгоритм сложный,Скорость медленнее,Подходит только для передачи важной информации.

Например, когда мы обычно пользуемся Интернетом,Необходимость передачи больших объемов данных,Очень подходит для использования алгоритма симметричного шифрования.,Но секретный ключ, используемый в алгоритме Симметричное шифрование и для дешифрования, один и тот же.,Здесь есть трудность,Как беспрепятственно передать секретный ключ другой стороне?

На самом деле, эта проблема прекрасно решена. Это протокол HTTPS. Давайте посмотрим, как реализован протокол HTTPS.

Как работает HTTPS

  1. Установление соединения: когда вы вводите URL-адрес в браузере, использующем HTTPS.,Клиент инициирует запрос на соединение с сервером.
  2. Возврат цифрового сертификата: сервер после получения запроса,Вернет цифровой сертификат, выданный ЦС.,Он содержит такую ​​информацию, как открытые ключи.
  3. Проверка сертификата: клиент проверит действительность сертификата сервера.,Включая проверку центра сертификации, срока действия и т.д.,После подтверждения того, что личность сервера в порядке.,Будет получен открытый ключ сервера.
  4. Отправить симметричный ключ: клиент сгенерирует Симметричное Симметричный ключ, необходимый для шифрования (сессионный key),Затем используйте открытый ключ сервиса шифрование.,Отправить на сервер.
  5. Расшифруйте сообщение: После получения симметричного ключа шифрования.,Будет использовать свой собственный закрытый ключ для расшифровки,Таким образом сервер получает симметричный ключ.
  6. Установление канала безопасности: как только сервер получит симметричный ключ,Установлен «Канал Безопасности» между клиентом и сервером.,Все последующие сообщения будут передаваться через этот канал.,Обеспечить плавность процесса передачи.

(Источник изображения: https://github.com/ByteByteGoHq/system-design-101)

HTTPS с использованием несимметричного шифрование(Открытые и закрытые ключи)доставить Симметричное Симметричный ключ, необходимый для шифрования (сессионный ключ), как только сервер получит симметричный секретный ключ, все последующие коммуникации будут использовать Симметричное шифрованиепередача инфекции,Это гарантирует, что передача информации между веб-сайтом и пользователем осуществляется в шифровании, Безопасность. так,Даже если информация будет перехвачена во время передачи,Хакеры также не могут прочитать эту информацию,Потому что у них нет секретного ключа для его расшифровки.

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

Такой дизайн потрясающий~

Ссылки:

http://www.youdzone.com/signature.html

https://time.geekbang.org/column/article/99636?utm_source=u_nav_web&utm_medium=u_nav_web&utm_term=pc_interstitial_1413

https://github.com/ByteByteGoHq/system-design-101

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose