The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Дэниэл Бернштейн опубликовал новую библиотеку djbsort"
Отправлено opennews, 11-Июл-18 22:08 
Дэниэл Бернштейн (Daniel J. Bernstein), известный эксперт в области криптографии и создания защищённого ПО, разработавший такие проекты, как qmail, djbdns,  NaCl, Ed25519, Curve25519 и ChaCha20-Poly1305, опубликовал новую библиотеку djbsort (https://sorting.cr.yp.to/) с реализацией высокопроизводительного алгоритма сортировки массивов целых чисел.

Библиотека демонстрирует рекордные (https://sorting.cr.yp.to/speed.html) показатели в скорости сортировки в памяти, заметно опережая по производительности существующие аналоги. Например, djbsort при сортировке 1024 32-разрядных знаковых целых чисел расходует 2.5 цикла CPU на байт данных, независимо от содержимого массива, в то время как библиотека Intel IPP (Integrated Performance Primitives)  с оптимизациями на базе инструкций AVX  расходует около 32 циклов на байт.


Кроме того, библиотека djbsort изначально написана с оглядкой на безопасность и использование в криптографических системах, в том числе может применяться в основанных на применении сортировки реализациях алгоритмов шифрования, стойких (https://www.opennet.ru/opennews/art.shtml?num=44748)  к подбору на квантовом компьютере. В частности, djbsort обеспечивает постоянное время сортировки независимо от обрабатываемого содержимого массива, что позволяет исключить применение методов анализа содержимого по сторонним каналам, учитывающих разницу во времени обработки для определения характера данных. В djbsort  используются только простые арифметические инструкции без применения условного ветвления.


Третьим достоинством djbsort является предоставление инструментов, позволяющих верифицировать корректность выполненной сортировки для всех возможных вариантов массивов заданного размера. Инструментарий для верификации включает три утилиты: unroller для раскрутки программы сортировки для массивов заданного размера; minmax для преобразования раскрученной программы  в набор операторов "min" и "max"; decompose для подтверждения корректности программы min-max.

Ограничения текущей реализации djbsort:


-  Наличие оптимизаций только для CPU с поддержкой инструкций AVX2 ( оптимизации могут быть легко портированы для других CPU);
-  Поддержка только сортировки знаковых 32-разрядных целых чисел (реализация может быть адаптирована для сортировки 16 и 64-разрядных целых, а также для чисел с плавающей запятой, любых записей фиксированного размера и указателей на записи переменного размера с отсортированными ключами);
-  Размер сортируемого массива ограничивается имеющимся размером памяти - размер массива должен вмещаться в ОЗУ, но при желании библиотека может быть адаптирована для сортировки данных на диске с оптимизациями для минимизации обращений к диску;
-  При сортировке используется только одно ядро CPU (алгоритм может быть изменён для параллельной обработки на разных ядрах или для распределённой сортировки на нескольких компьютерах);

-  При верификации не выполняется проверка целостности данных в памяти;

-  Процесс верификации запускается отдельно для массивов разного размера, а скорость верификации уменьшается при увеличении размера массива. Данное ограничение не особо значимо, так как верификация важна для применения в криптографии, а для криптографии используются только специфичные размеры массивов.

URL: https://news.ycombinator.com/item?id=17505357
Новость: https://www.opennet.ru/opennews/art.shtml?num=48952

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру