Обзор Java 21 KEM API | Инкапсуляция ключей с демонстрацией AES
LearningFromExperience
0:00 / 0:00
Обзор Java 21 KEM API | Инкапсуляция ключей с демонстрацией AES
57 просмотров · 2 месяца назад
LearningFromExperience
4,24 тыс. подписчиков
57 просмотров · 2 месяца назад
Как современные приложения безопасно устанавливают ключ шифрования AES без прямой передачи этого ключа?
В Java 21 представлен API механизма инкапсуляции ключей (KEM) в рамках JEP 452. В этом продвинутом уроке по криптографии на Java мы рассмотрим концепции с нуля, а затем реализуем полный рабочий процесс шифрования KEM + AES.
Вы сначала поймете симметричное шифрование, асимметричное шифрование и гибридную модель шифрования, используемую в современных защищенных системах. Затем мы сравним традиционную передачу ключей RSA с KEM и рассмотрим, почему инкапсуляция ключей обеспечивает более чистую основу для современной и постквантовой криптографии.
Что вы узнаете:
• Что такое шифрование и какие проблемы оно решает
• Симметричное шифрование и общие секретные ключи
• Асимметричное шифрование с использованием открытого и закрытого ключей
• Почему реальные системы сочетают асимметричное и симметричное шифрование
• Как работает гибридная модель шифрования
• Что такое механизм инкапсуляции ключей (KEM)
• Передача ключа RSA против KEM
• Почему KEM передает инкапсулированный материал, а не секретный ключ
• API Java 21 javax.crypto.KEM
• KEM, KEM.Encapsulator и KEM.Decapsulator
• Как отправитель инкапсулирует ключ AES
• Как получатель декапсулирует тот же ключ AES
• Как AES шифрует и дешифрует данные приложения
• Почему KEM важен для постквантовой миграции
Практическая демонстрация реализует полный рабочий процесс:
1. Генерация пары открытого и закрытого ключей получателя
2. Создание инкапсулятора KEM с использованием открытого ключа
3. Генерация общего секрета и инкапсуляции сообщение
4. Получение ключа AES из общего секрета
5. Шифрование данных приложения с использованием AES
6. Отправка зашифрованного текста, вектора инициализации и сообщения инкапсуляции
7. Создание декапсулятора KEM с использованием закрытого ключа
8. Восстановление того же общего секрета
9. Воссоздание ключа AES
10. Расшифровка и проверка исходных данных
⏱️ Разделы:
00:00 Введение — Что такое KEM и почему он был добавлен в Java 21
01:15 Основы криптографии: шифрование, открытый текст, ключ, шифр
03:30 Симметричное шифрование (AES) — преимущества и проблема распределения ключей
06:00 Асимметричное шифрование (RSA) — решает проблему распределения, но слишком медленное
08:30 Гибридная модель шифрования — как на самом деле работают TLS/HTTPS
10:45 Передача ключа RSA — 5-шаговый процесс и три возникающие проблемы
14:20 KEM (механизм инкапсуляции ключа) — современный 4-шаговый процесс решение
18:00 Сравнительный анализ RSA и KEM
20:30 API KEM в Java 21 — три основных класса (KEM, инкапсулятор, декапсулятор)
22:15 Сквозной поток KEM + AES-GCM
27:00 Практическая демонстрация кода: инкапсуляция и декапсуляция KEM
33:00 Практическая демонстрация кода: шифрование AES-GCM с общим секретом
37:00 Сравнение кода RSA и KEM — одно и то же сообщение, разные подходы
43:00 Будете ли вы использовать KEM напрямую? (Когда и почему)
44:15 Постквантовое будущее: гибкость алгоритма ML-KEM
45:30 Резюме и рекомендации по курсам
47:00 Заключение
🎓 Углубленный анализ возможностей Java 21: виртуальные потоки и Spring Boot
https://www.udemy.com/course/java-21-...
💻 Исходный код
https://github.com/j2eeexpert2015/jav...
📚 Посмотреть все курсы
https://j2eeexpert2015.github.io/lear...
#Java21 #JavaSecurity #Cryptography #KEM #JavaProgramming #JavaTutorial