From 9c9f6f3440db19fe8b7882cdb401b47f30a45b16 Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 3 Nov 2026 14:32:19 +0100 Subject: [PATCH] Save the P2P encryption and delivery slide prompt --- doc/p2p_slide_prompt.txt | 129 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 doc/p2p_slide_prompt.txt diff --git a/doc/p2p_slide_prompt.txt b/doc/p2p_slide_prompt.txt new file mode 100644 index 000000000..9abdf0ce5 --- /dev/null +++ b/doc/p2p_slide_prompt.txt @@ -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 — роли; они могут находиться на одном узле». + +Не показывай форматы пакетов, таблицы БД, размеры ключей и служебные таймеры. Сохрани ясную последовательность: кто участвует → чем шифруем → кому доставляем сообщение → откуда скачиваем файл.