Ответы пользователя по тегу Алгоритмы
  • [Алгоритм] генерация случайной квадратной 2D карты из N стран

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    Вспомните формулу Пика (площадь многоугольника на плоскости, чьи вершины лежат в узлах координатной сетки). Вот подборка задачек для разминки: zaba.ru/cgi-bin/tasks.cgi?tour=books.sms700.fpika&solution=1
    Исходя из формулы Пика формулируем инвариант (площадь любых двух стран в любой момент времени равна). Любое преобразование границ должно сохранять инвариант. Начальное разбиение строим случайным образом, исходя из максимальной или минимальной возможной длины границ между странами.
    Ответ написан
  • Шифрование в базе данных на сервере?

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    del
    Ответ написан
    Комментировать
  • Шифрование в базе данных на сервере?

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    Если набор менеджеров фиксирован с момента зашифрования данных пользователем, то задача решается тривиально, схема будет аналогична PGP.
    У каждого пользователя и менеджера будем в БД хранить пару открытый-закрытый ключ, а каждый закрытый ключ будет зашифрован на производной от пароля, вводимого пользователем в веб-интерфейс (это уже реализовано в стандарте).

    Если же менеджеры могут добавляться по ходу игры, то несколько сложнее:
    Вариант №0: нагенерируем 100 ключей заранее. Избыточно, и со сменой паролей придется попариться, зато просто.
    Вариант №1: один закрытый ключ для всех менеджеров и промежуточный код, который может получать доступ к паролю этого закрытого ключа, и который сам расшифровывает данные и отдает их на веб-интерфейс.
    Ответ написан
    Комментировать
  • Алгоритм входа с защитой авторизационных данных от использования при их перехвате на канале?

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    Используйте HTTPS + аутентификацию при помощи SRP-6, как подсказывают коллеги выше.
    1. Правильно настроенный HTTPS обеспечит приемлемую защиту канала обмена данными (если пользователи будут минимально сознательны).
    2. SRP-6 не дает использовать перехваченные данные повторно и не дает подобрать изначальный пароль на их основе.
    Даже если атакующий обойдет SSL, например, получит доступ к закрытому ключу от Вашего серверного сертификата, или от более высокого в цепочке сертификатов, вплоть до корневых, и проведет MITM-атаку, используя легитимный с точки зрения клиентского браузера поддельный SSL-сертификат, то перехваченной информации атакующему будет все равно недостаточно, чтобы аутентифицироваться вместо пользователя.

    Вместо SRP-6 можно использовать более слабые стандарты типа htdigest (HTTP digest authentication, rfc2617, есть в апаче из коробки, правда, в самом простом варианте использования это будет для клиента выглядеть как некрасивое стандартное pop-up окно в браузере).
    Ответ написан
  • Лучшая первая книга об алгоритмах?

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    Попробуйте Вирта — книжка небольшая и более чем доступная, по ней можно спокойно преподавать программирование старшеклассникам в профильных школах/кружках.
    Ответ написан
    Комментировать