###Как это работает:
- Клиент регистрируется на сервере:
- Генерирует асимметричные ключи
- Делает пост в Фрф с публичным ключом
- Отсылает на сервер ID поста.
- Сервер берет пост и связывает юзера с ключом
- Сервер отправляет клиенту зашифрованный токен на запись
- Клиент удаляет пост и отправляет на сервер приватный ключ в зашифрованном виде. Для шифрования используется пароль, который пользователь должен помнить.
- Алиса создает приватную группу и приглашает Вову
- Алиса на клиенте генерирует набор симметричных ключей
- Алиса получает публичный ключ Вовы и кодирует им набор симметричных ключей
- Алиса отправляет Вове закодированное приглашение
- Вова декодирует на клиенте приглашение, добавляет ключи в коллекцию.
- Вова шифрует коллекцию паролем и отправляет на сервер.
- Алиса пишет в группу
- Алиса получает с сервера свою коллекцию ключей
- Дешифрует из паролем
- Кодирует ключом от привата пост
- Отправляет его на сервер
- Вова получает все посты
- Выбирает из них те, к которым у него есть ключи
- Дешифрует и читает
###Алгоритмы
- Асимметричный RSA
- Симметричный AES
- Хеш sha256