Save the P2P encryption and delivery slide prompt

This commit is contained in:
evgeny committed 2026-11-03 14:32:19 +01:00
1 parent d5915aec80
commit 9c9f6f3440
1 file changed
+129
+129
View File
@@ -0,0 +1,129 @@
Создай один иллюстративный слайд 16:9, 3840×2160, на русском языке.
Тема: «P2P: шифрование и доставка сообщений и медиа».
Стиль: чистая техническая инфографика, светлый фон, крупные подписи, простые пиктограммы устройств, конвертов, файлов и ключей. Смысл должен читаться по схемам и стрелкам. Не превращай слайд в текстовый документ: инструкции ниже описывают содержание, на слайд выноси только короткие подписи.
Цвета:
— синий: мои устройства, сторона A;
— зелёный: устройства собеседника, сторона B;
— серый: серверы и недоступные устройства;
— золотой: ключи и шифрование.
Тонкие стрелки — запросы и подтверждения; толстые — передача контента; пунктир — резервный путь.
КОМПОЗИЦИЯ
Верхняя полоса — два режима беседы рядом.
Ниже — три пронумерованных блока слева направо:
1. Шифруем.
2. Доставляем сообщение.
3. Получаем медиа.
Внизу — компактная полоса подтверждений и хранения.
ДВА РЕЖИМА
Слева: «Без подгрупп».
Покажи устройство A1 ↔ устройство B1.
Подпись: «Только два выбранных устройства».
Ключи сторон — личные пары ключей A1 и B1.
Маленькое примечание: «В том числе между своими устройствами».
Справа: «С подгруппами».
Две явно разделённые области:
«Мои устройства»: A1, A2.
«Устройства собеседника»: B1, B2.
A1 — отправитель. B2 первоначально offline.
Каждая сторона использует свою общую пару ключей подгруппы.
Примечание: «Нет подгруппы → сторона представлена одним устройством и его ключами».
1. ШИФРУЕМ
Раздели сообщение и файл.
Сообщение:
Пары ключей сторон A и B → «Общий ключ PM: X25519 → SHA-256» → закрытый конверт.
Приватные ключи остаются у участников.
Подпись конверта: «E2E + подпись устройства-автора».
Подпись автора — Ed25519; ключ подгруппы не подменяет личную подпись устройства.
Файл:
«Новая пара ключей F для каждого файла» → «HPKE → ключ файла» → один зашифрованный файл.
Сам файл шифруется AES-256-CCM.
От приватного ключа F проведи две независимые ветви:
— «Упаковка для A: публичным ключом стороны A»;
— «Упаковка для B: публичным ключом стороны B».
Обе упаковки помести ВНУТРИ зашифрованного сообщения вместе с описанием файла.
Не изображай последовательное двойное шифрование ключа: это две отдельные упаковки.
Любая сторона раскрывает свою упаковку своим приватным ключом.
Подпись возле файла: «Один шифротекст для всех копий».
2. ДОСТАВЛЯЕМ СООБЩЕНИЕ
Используй пример A1/A2/B1/B2.
От A1 идут прямые стрелки конверта к доступным A2 и B1.
Рядом покажи фиксируемый при отправке список:
A1 — локальная копия;
A2 — ✓ доставлено;
B1 — ✓ доставлено;
B2 — ожидает.
Подпись: «Все известные устройства обеих сторон, включая offline».
Для режима без подгрупп адресат только B1.
Для недоступного B2 покажи резервный путь:
A1 → S → B2.
S обозначь «Сервер сообщений / mailbox».
Подпись: «Нет прямой доставки или ACK → через S».
При появлении B2 онлайн сервер передаёт ему тот же зашифрованный конверт.
От получающих устройств покажи тонкие обратные стрелки ACK:
«Подтверждение после сохранения».
Принятие сервером S не обозначай как доставку устройству.
3. ПОЛУЧАЕМ МЕДИА
Сначала покажи отдельное условие хранения:
«Сначала P2P».
«Остались устройства без файла: offline или автозагрузка выключена → хранение на M».
Уточни, что это относится и к собственным устройствам.
S координирует хранение. M обозначь «Сервер хранения медиа».
Покажи передачу на M только зашифрованной копии файла.
Затем покажи B2, появившийся онлайн и запросивший вложение.
От B2 одновременно идут тонкие стрелки HAVE:
к A1, A2, B1 и M.
Подпись: «Параллельный запрос всем известным онлайн-источникам».
На ответах укажи пример RTT:
A1 — 30 мс, A2 — 45 мс, B1 — 12 мс, M — 60 мс.
Выдели B1 как лучший ответивший источник.
От B1 к B2 проведи ОДНУ толстую стрелку файла:
«Минимальный RTT → скачивание → проверка → расшифровка».
Маленькая подпись: «Ошибка источника → следующий».
Не изображай одновременное скачивание файла со всех источников.
Отметь: «Автозагрузка — по настройкам устройства».
Проверенные копии на устройствах могут служить источниками для остальных участников.
НИЖНЯЯ ПОЛОСА
Три отдельных значка:
«Сообщение сохранено» ≠ «Файл скачан и проверен» ≠ «Пользователь открыл файл».
Возле M — две настройки удаления:
— «При открытии: первый “забран” от собеседника или TTL»;
— «Без удаления при открытии: скачали все устройства получателя или TTL».
Короткое примечание:
«Свои устройства отправителя не задерживают удаление M».
Удаление серверной копии не удаляет уже скачанные копии участников.
Общая подпись:
«Серверам не передаются открытый контент и секретные ключи».
Небольшое пояснение: «S и M — роли; они могут находиться на одном узле».
Не показывай форматы пакетов, таблицы БД, размеры ключей и служебные таймеры. Сохрани ясную последовательность: кто участвует → чем шифруем → кому доставляем сообщение → откуда скачиваем файл.