Архитектура приложения - lanit-tercom-school/grouplock GitHub Wiki

Архитектура приложения. Схема:

Архитектура приложения. Схема

Описание:

Так как реализация приложения подразумевается под несколько платформ, то все общие алгоритмы вынесены под общий язык - С++. А именно:

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

  • Шифр Цезаря
  • ГОСТ
  • DES и пр.

2. Разделение секрета

  • При шифровании
  • При дешифровании

3. Тип файла для шифрования

  • jpg
  • txt
  • pdf и пр.

При разработке на Android все алгоритмы будут связаны с приложением через JNI.

Точки связывания:

  • Шифрование файла - средствами JNI файл передается в С++ вместе с параметрами. Параметрами в данном случае служит алгоритм шифрования и тип файла.
  • Разделение секрета - средствами JNI в С++ передается (возможно два варианта):
  1. Ключ, k, n из пороговой схемы (k,n) и на выходе получаем разделенный секрет
  2. Ключи, степень полинома, модуль и на выходе получаем восстановленный ключ-секрет, если это возможно.
  • Шифрование - средствами JNI передается в С++ информация, которую нужно зашифровать с параметром - типом алгоритма шифрования.

Таким образом, средствами JNI с помощью методов-оберток на языке Java будет осуществлено связывание работы основных алгоритмов (С++) с приложением.