Main menu

Криптография на эллиптических кривых (ECC): Математика нового века

На протяжении десятилетий алгоритм RSA обеспечивал безопасность интернета. Его надежность базируется на сложности факторизации больших целых чисел. Но с ростом вычислительных мощностей математикам приходилось постоянно увеличивать размер RSA-ключей. Сегодня безопасный ключ RSA должен иметь длину 2048 или даже 3072 бита. Такие ключи требуют много памяти и сильно замедляют процессоры смартфонов и IoT-устройств. Спасение пришло из абстрактной алгебраической геометрии — криптография на эллиптических кривых (ECC).

Подробнее

Алгоритм Кнута-Морриса-Пратта: Быстрый поиск в тексте

Задача поиска слова (паттерна) внутри большого текста (строки) — одна из самых частых в компьютерных науках. Наивный алгоритм, который мы бы написали интуитивно, прикладывает паттерн к началу текста, сравнивает символы, и при несовпадении сдвигает паттерн ровно на одну позицию вправо, начиная проверку с нуля. В худшем случае (например, поиск паттерна "ААААВ" в строке "АААААААААВ") этот метод работает за время O(N*M), что неприемлемо. Алгоритм КМП решает эту проблему за строго линейное время O(N+M).

Подробнее

Алгоритм A* (А-звездочка): Интеллектуальный поиск пути

Алгоритм Дейкстры гарантированно находит кратчайший путь на графе, но он делает это "вслепую". Дейкстра исследует все возможные направления во все стороны (подобно кругам на воде), пока случайно не наткнется на финишную точку. Это крайне неэффективно для навигационных систем и компьютерных игр, где персонажу нужно дойти из точки А в точку Б на огромной карте. В 1968 году Питер Харт, Нильс Нильсон и Бертрам Рафаэль разработали алгоритм A* — вершину эволюции алгоритмов поиска пути.

Подробнее

Соц. сети