The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Ричарда Столлман опубликовал книгу по языку Си и расширениям GNU, opennews (ok), 07-Сен-22, (0) [смотреть все] –1

Сообщения [Сортировка по времени | RSS]


203. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от аНОНИМ (?), 07-Сен-22, 18:34 
Далеко не любой (точнее никакой не) компилятор умеет оптимизировать лучше человека. Пишем ну например реализацию какого-нить sha1 или sha256 на си на интринсиках из SHA-NI, и получается у нас медленнее чем ручно-асмовый код в openssl. Ручными (!) унроллами циклов и перестановками операций можно чуть поднять быстродействие, но всё равно будет медленнее openssl. Из той же оперы и какой-нить ffmpeg, где практически все иннерлупы жатия видео -- на асме.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

278. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (277), 08-Сен-22, 10:23 
Как бы это сказать? Какой-нибудь LTO иногда глобальным анализом может такое навернуть, что человек бы вообще не додумался бы. Возьмет и аннулирует 80% функции доказав что эта часть никогда не вызывается при использовании как тут. Да еще смержит с 2 похожими наполовину. Вручную так делать мало кто захочет - "хакерский" мегаоптимизнутый код читать будет невозможно. Но в кодогенераторе при оптимизации все это не проблемы человека уже.

Но да, в локальных горячих кусках компилер может и хрень сделать, асм или интринсики в этом сильно предсказуемее и зачастую лучше.

Ответить | Правка | Наверх | Cообщить модератору

286. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от n00by (ok), 08-Сен-22, 11:36 
sha1 оптимизируется вот так:

         t < 20 ?  (c ^ d) & b ^ d      // b & c | ~b & d
       : t < 40 ?  b ^ c ^ d
       : t < 60 ?  (c | d) & b | c & d  // b & c | b & d | c & d
       :/* < 80 */ b ^ c ^ d;

но почему-то не везде.

Ответить | Правка | К родителю #203 | Наверх | Cообщить модератору

303. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 08-Сен-22, 20:21 
А эта конструкция точно имеет постоянное время выполнения, не зависящая от входных данных?

Если нет - оно будет дико течь тайминги, давая зеленый свет тайминг атакам всех мастей и направлений. Учитывая что SHA1 и так то на ладан дышит (коллизию на заказ подогнать стоит примерно ~$30k) - это такое знание древних которое уже не очень актуально стало. Ладно бы еще SHA256 оптимизили..

Ответить | Правка | Наверх | Cообщить модератору

331. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от n00by (ok), 09-Сен-22, 09:47 
Эта конструкция при прочих равных исполняется быстрее эталонной из FIPS, поскольку уменьшено количество операций. Писалась она во времена, когда sha1 ещё считался приемлемым и повсюду работали варианты из комментария.
Ответить | Правка | Наверх | Cообщить модератору

358. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 10-Сен-22, 12:36 
> Эта конструкция при прочих равных исполняется быстрее эталонной из FIPS, поскольку уменьшено
> количество операций. Писалась она во времена, когда sha1 ещё считался приемлемым
> и повсюду работали варианты из комментария.

В крипто "быстрее" не единственный критерий успеха алгоритмов и его реализации. А по состоянию на сейчас вы занимаетесь тем что учите народ плохому, как делать не надо. Это ведет к "опенсорсу который вы заслужили" так то.

Ответить | Правка | Наверх | Cообщить модератору

368. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от n00by (ok), 10-Сен-22, 13:37 
Если кто забыл начало ветки - так она началась с «зачем нужен Си, когда компиляторы умнее людей», а подветка - с оптимизаций sha1 путём раскрутки циклов и ещё какой-то механической по сути работы. А там выше я написал то, что каждый из экспертов по оптимизации мог бы прочесть например у Генри С.Уоррена. Может ли компилятор произвести такое преобразование? Вот что имеет смысл по теме. Насколько понимаю, sha1 не считается стойким криптопреобразованием более десяти лет, так что и говорить об алгоритме в этом контексте не приходится.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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