🦊 CipherMsg
Шифрование для мессенджеров
AES-256-GCM ML-KEM-768 X25519-ECDH PBKDF2-SHA-512 No Cookies No Network WebCrypto API
📖 О проекте
💬 Текст
🤝 Рукопожатие
🔑 Пароли
🖼 Фото
📁 Файлы
ℹ Справка

🦊 CipherMsg

Инструмент для безопасной передачи сообщений, изображений и секретов через любые мессенджеры — Telegram, WhatsApp, Signal, ВКонтакте и другие.

💬
Шифрование текста
AES-256-GCM с ключом на основе парольной фразы. Зашифруй сообщение и отправь Base62-строку — только тот, кто знает пароль, сможет его прочитать.
🔐
Рукопожатие
ML-KEM-768 + X25519. Безопасно договорись об общем секрете с кем угодно — даже по открытому каналу. Защита от квантовых компьютеров.
🖼
Шифрование фотографий
ChaCha20-Poly1305 шифрование изображений на уровне пикселей. Метаданные KDF встроены в PNG. Отправляй как файл, не как фото.
🔑
Генератор паролей
Base62-генератор на crypto.getRandomValues — только A-Z a-z 0-9. Без спецсимволов, которые ломаются в мессенджерах. Настраиваемая длина, пакетная генерация, метрика энтропии.
🛡
100% локально
Всё шифрование происходит прямо в твоём браузере. Никакие данные не покидают устройство. Нет серверов, нет логов, нет аналитики.

🚀 Как пользоваться CipherMsg

💬 Симметричное шифрование (текст и фото)

1
Договорись с собеседником о парольной фразе — лично, по телефону или голосовым звонком.
2
Открой вкладку «Текст», введи парольную фразу и своё сообщение, нажми «Зашифровать».
3
Скопируй Base62-строку и отправь её в любом мессенджере — она выглядит как бессмысленный набор символов.
4
Получатель вставляет строку в поле расшифровки, вводит ту же парольную фразу — и видит исходный текст.

🔑 Генератор паролей

1
Открой вкладку «Пароли», выбери длину (рекомендуется 32+ символа) и нажми «Сгенерировать».
2
Скопируй понравившийся пароль и используй его как парольную фразу в «Текст» или «Фото».
3
Для передачи парольной фразы собеседнику используй вкладку «Рукопожатие».

🤝 Рукопожатие — обмен секретом

1
Получатель открывает вкладку «Постквантовый» и нажимает «Сгенерировать ключи». Приватный ключ хранится только в браузере.
2
Получатель нажимает «Скопировать публичные ключи» и отправляет их тебе — через любой канал, хоть публично.
3
Ты вставляешь публичные ключи, вводишь парольную фразу (которую хочешь безопасно передать) и нажимаешь «Зашифровать».
4
Отправляешь зашифрованный пакет получателю. Только он сможет расшифровать его — своим приватным ключом.
5
Получатель нажимает «Расшифровать» — видит парольную фразу и теперь может читать все твои симметрично зашифрованные сообщения.
Зачем это нужно? Постквантовый режим решает главную проблему симметричного шифрования — как безопасно передать пароль? Теперь это можно сделать по открытому каналу, не боясь перехвата.
// Зашифровать текст
— введите пароль
Вычисление KDF...
Base62 — скопируй и отправь
детали пакета
// Расшифровать текст
Вычисление KDF...
Расшифрованное сообщение
метаданные пакета

🔒 Примечание о безопасности

🛡
Всё шифрование и расшифрование происходит локально в твоём браузере. Никакие данные — ни парольная фраза, ни сообщение, ни зашифрованный текст — не отправляются на сервер и не покидают твоё устройство.

Алгоритм шифрования

Используется AES-256-GCM — симметричное шифрование с аутентификацией. Ключ выводится из парольной фразы через PBKDF2-SHA-512 с солью и случайным числом итераций. Каждое шифрование уникально — одно и то же сообщение даст разный зашифрованный текст.

Формат пакета: [1 байт KDF ID] + [32 байта соль] + [4 байта итерации] + [12 байт nonce] + [N байт AES-GCM шифротекст]
// Генерация постквантовых ключей
🔒 Приватный ключ хранится только в браузере и никогда не показывается
// Зашифровать парольную фразу для получателя
Зашифрованный пакет — скопируй и отправь
детали пакета
// Расшифровать пакет (только для владельца ключей)
Расшифрованная парольная фраза

🔐 Постквантовое шифрование: ML-KEM-768 + X25519

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

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

1
Получатель генерирует ключевую пару: ML-KEM-768 (1184 байт публичный ключ, постквантовый) + X25519 (32 байта). Приватные ключи никуда не уходят.
2
Публичные ключи передаются открыто в формате ML-KEM:BASE64|X25519:BASE64. Даже если перехватить — расшифровать невозможно.
3
Отправитель шифрует: ML-KEM encapsulate → KEM-шифротекст + общий секрет; эфемерный X25519 ECDH; оба секрета комбинируются → AES-256-GCM.
4
Получатель расшифровывает: ML-KEM decapsulate → KEM-секрет; X25519 ECDH → ECDH-секрет; комбинирует → AES-ключ; расшифровывает.

Почему постквантовый?

Квантовые компьютеры смогут сломать RSA и классический ECDH. ML-KEM (CRYSTALS-Kyber) — стандарт NIST 2024 года (FIPS 203), постквантовый механизм инкапсуляции ключей. X25519 добавляет классическую защиту для гибридной схемы.

Формат пакета

Бинарный: [4 байта magic] [1088 байт ML-KEM ciphertext] [32 байта eph.X25519 PK] [12 байт AES nonce] [N байт AES-256-GCM шифротекст] → Base62

Важно: Каждый раз генерируй новую ключевую пару для новой сессии. Ключи хранятся только в памяти браузера — при перезагрузке страницы они исчезают.
// Параметры генерации
Алфавит: A-Z a-z 0-9 — 62 символа (Base62)  ·  ~5.95 бит на символ  ·  без спецсимволов, без пробелов  ·  безопасен для любого мессенджера и поля ввода
// Основной пароль
— нажми «Сгенерировать»
// Список паролей — выбери любой
Нажми «Сгенерировать» чтобы заполнить список

🔑 Почему именно этот генератор стоит использовать для парольных фраз CipherMsg

Base62 — идеальный компромисс между безопасностью и совместимостью

Специальные символы (!@#$%^&*) часто теряются при копировании в мессенджерах, обрезаются CMS-системами или не принимаются отдельными сервисами. Base62 использует только A-Z a-z 0-9 — символы, которые корректно проходят через любой канал связи, не ломаются при URL-кодировании и всегда отображаются одинаково.

Количественная безопасность

32
символа → ~190 бит энтропии. Взлом перебором невозможен даже теоретически при любых будущих вычислительных мощностях. Рекомендуемая длина для долгосрочного хранения.
24
символа → ~143 бита энтропии. Достаточно для любого практического применения сегодня и в обозримом будущем.
16
символа → ~95 бит энтропии. Минимально рекомендуемый уровень для симметричного шифрования AES-256.

Важно: PBKDF2 здесь не компенсирует слабый пароль

PBKDF2 в CipherMsg не предназначен для защиты слабых паролей методом растягивания ключа. Это лишь дополнительная обфускация и добавление соли для уже сильной парольной фразы из этого генератора. Если использовать слабый пароль типа 123456 — никакое количество итераций PBKDF2 не сделает его безопасным. Генерируй здесь — шифруй уверенно.

Криптографическая случайность

Пароли генерируются через crypto.getRandomValues() — криптографически стойкий ГСЧ браузера (CSPRNG). Используется rejection sampling для устранения модульного смещения. Никакого Math.random().

Рабочий процесс: Сгенерируй пароль здесь → скопируй → вставь в поле «Парольная фраза» вкладки «Текст» → зашифруй сообщение → передай пароль получателю через вкладку «Рукопожатие» (постквантовое шифрование).
⚠ Важно — отправляй зашифрованный файл только через «Прикрепить файл», а не как фотографию.
Мессенджеры пережимают изображения и стирают метаданные — это сломает шифротекст и потеряет ключевые параметры KDF.
// Зашифровать изображение
— введите пароль
🖼
Перетащи или выбери файл
PNG · JPEG
Шифрование пикселей...
Зашифрованный PNG
// Расшифровать изображение
🔐
Выбери зашифрованный PNG
Только PNG с метаданными CipherMsg
Расшифровка пикселей...
Расшифрованное изображение

🖼 Примечание — шифрование фотографий

🛡
Шифрование пикселей происходит локально в твоём браузере с использованием алгоритма ChaCha20-Poly1305 (RFC 8439). Ключ выводится через PBKDF2-SHA-512. Все параметры KDF зашиты в метаданные PNG (tEXt-чанк).
Важно: отправляй файл через «Прикрепить файл» — мессенджеры пережимают изображения и уничтожат шифрование.
⚠ Важно — отправляй .foxmsg файл только как «Прикрепить файл».
Любой тип файла поддерживается — документы, архивы, видео и т.д.
// Зашифровать файл
📁
Перетащи или выбери файл
Любой формат
Сжатие и шифрование...
Зашифрованный .foxmsg
// Расшифровать файл
🔐
Выбери .foxmsg файл
Только .foxmsg
Расшифровка и распаковка...
Расшифрованный файл

📁 Примечание — шифрование файлов

🛡
Файл сжимается через gzip, дополняется PKCS7-паддингом (кратно 16 байтам — размер блока AES) и шифруется AES-256-GCM. Ключ выводится через PBKDF2.
Формат: CryptoFoxMSG|DataCrypto| + [KDF ID][соль][итерации][nonce][AES-GCM шифротекст]

📚 Полная справка по CipherMsg

Что такое CipherMsg?

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

Зачем нужно шифрование в мессенджерах?

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

Симметричное шифрование (вкладка «Текст»)

Подходит для регулярного общения. Оба собеседника знают одну парольную фразу. Шифруй сообщение → отправляй Base62-строку → получатель расшифровывает. Алгоритм: AES-256-GCM, ключ: PBKDF2-SHA-512.

Рукопожатие (вкладка «Рукопожатие»)

Решает проблему безопасной передачи парольной фразы. Получатель публикует публичные ключи, ты шифруешь парольную фразу и отправляешь — только получатель сможет её расшифровать. Алгоритмы: ML-KEM-768 (NIST FIPS 203, постквантовый KEM) + X25519 (классический ECDH для гибридности).

Шифрование изображений (вкладка «Фото»)

Шифрует каждый пиксель изображения. Результат — визуально случайный шум, сохранённый как PNG с зашитыми параметрами KDF. Алгоритм: ChaCha20-Poly1305.

Насколько это безопасно?

Все используемые алгоритмы — актуальные стандарты NIST и IETF. AES-256-GCM используется в TLS 1.3 и военных коммуникациях. ML-KEM-768 — стандарт NIST 2024 года (FIPS 203), постквантовый KEM. Вся криптография реализована через WebCrypto API или библиотеку @noble/post-quantum (MIT license).

Ограничения: безопасность зависит от стойкости парольной фразы. Слабый пароль сводит на нет все алгоритмы. Используй длинные, случайные фразы (минимум 16 символов, цифры, спецсимволы).
Открытый исходный код: CipherMsg не имеет скрытых бэкдоров. Ты можешь проверить весь код прямо в браузере (F12 → Sources).