The OpenNET Project / Index page

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



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

Оглавление

Выпуск криптографической библиотеки LibreSSL 3.9.0, opennews (?), 10-Мрт-24, (0) [смотреть все]

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


26. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +1 +/
Сообщение от Аноним (26), 10-Мрт-24, 15:58 
Не жаль.

In 2015 Biryukov, Perrin and Udovenko reverse engineered the unpublished S-box generation structure (which was earlier claimed to be generated randomly) and concluded that the underlying components are cryptographically weak.[13]

https://en.wikipedia.org/wiki/Streebog

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

28. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Аноним (26), 10-Мрт-24, 16:13 
И немного подробнее, на русском:

На конференции Crypto-2015 Алекс Бирюков, Лео Перрин и Алексей Удовенко представили доклад, в котором говорится о том, что значения S-блока шифра «Кузнечик» и хеш-функции Стрибог не являются (псевдо)случайными числами, а сгенерированы на основе скрытого алгоритма, который докладчикам удалось восстановить методами обратного проектирования[12][13].

29 января 2019 года была опубликовано исследование «Partitions in the S-Box of Streebog and Kuznyechik»[14], которое опровергает заявление авторов о случайном выборе параметров таблиц замен в алгоритмах Стрибог и Кузнечик[15].

https://ru.wikipedia.org/wiki/Стрибог_(хеш-функция)

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

30. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Аноним (30), 10-Мрт-24, 17:09 
На мой взгляд, достаточно хорошим аргументом является то, что у этой крипты много "идейных" ненавистников, но пока только раз за разом обнаруживаются уязвимости в насаждаемых СГА стандартах. Если проблемы алгоритмов и в самом деле такие значительные, как утверждается, хотелось бы увидеть обоснованные подтверждения и какие бы то ни было результаты. А вот в низкое качество реализаций я легко верю, нет культуры.
Ответить | Правка | Наверх | Cообщить модератору

36. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 10-Мрт-24, 18:14 
> А вот в низкое качество реализаций я легко верю, нет культуры.

Что же делать с культурой? Математик, по совместительству умеющий кодить, публикует эталонную реализацию, к которой основное требование - изложить на понятном для программистов языке. Каждый может её посмотреть, а не просто верить.

Вот, например:

#if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
#  define c2l(c,l)    ((l)=*((const unsigned int *)(c)), (c)+=4)
#  define l2c(l,c)    (*((unsigned int *)(c))=(l), (c)+=4)
#else

Как видно, даже обошлось без злой шутки с bswap, которую программисты слепо накопировали из референса AES в свои оптимизированные варианты.

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

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

40. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 10-Мрт-24, 22:03 
Не.
Всратый математик головного мозга, у всех крипто стандартов РФ проблема с тем что их пишут чокнутые математики для чокнутых математиков.
Людям у которых математика не родной единственный язык общения (считай программерам-имплементаторам) ихняя писанина не понятна от слова совсем.

И кодить они тоже не умеют, только формулы на бумажке писать.


> Как видно, даже обошлось без злой шутки с bswap

Это не про bswap, это htonl(), ntohl().

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

53. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  –1 +/
Сообщение от 128557 (?), 11-Мрт-24, 01:19 
Из описания выше следует, что всратый в этой истории имеет Вы, Иван83.
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 03:14 
Я пограмист самоучка.
У меня не было проблем с имплементацией иностранных крипто алгоритмов, и даже ECDSA я умудрился реализовать на С с нуля, те математику длинных чисел, математику для элиптических кривых и уже поверх этого сам ECDSA.

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

И как показывает практика ничего хорошего родить не могут.
- ассиметричная крипта в РФ всегда была не своя, RSA а теперь ECDSA со своими параметрами, тут претензий нет, как и вклада
- симметричная - древний гост89, у которого было непонятное описание, 100500 разных параметров и который под конец переименовали в магму оставив только один набор параметров и заодно зачем то зарвенув порядок следования байтов.
Про ихний новый алгоримт (кузнечик) уже писали - они там какие то подозрительные SBox нафигачили, говорили что рандомные но явно нет.
- хэш (стрибог) - огромный стыд! взяли израильскую хайфу, не правильно посмотрели на картинку и накосячили с реализацией так что из 512 бит она стала ~260. И это так и оставили в стандартах.

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

61. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 11-Мрт-24, 08:33 
Ну в принципе он пересказал слова автора EnRUPT, только тот их писал про западную школу.
Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

60. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 11-Мрт-24, 08:14 
>> Как видно, даже обошлось без злой шутки с bswap
> Это не про bswap, это htonl(), ntohl().

Не вижу никаких htonl() или ntohl() в FIPS 197. Вижу какой-то язык от математиков для математиков:

01: procedure CIPHER(in, Nr, w)
02:   state ← in
03:   state ← ADD_ROUND K EY(state, w[0..3])
04:   for round from 1 to Nr − 1 do
05:     state ← SUB_BYTES(state)
06:     state ← SHIFT_ROWS(state)
07:     state ← MIX_COLUMNS(state)
08:     state ← ADD_ROUND_KEY(state, w[4 ∗ round..4 ∗ round + 3])
09:   end for
10:   state ← SUB_BYTES(state)
11:   state ← SHIFT_ROWS(state)
12:   state ← ADD_ROUND_KEY(state, w[4 ∗ Nr..4 ∗ Nr + 3])
13:   return state
14: end procedure

Зато bswap видел в товарных количествах, поскольку htonl() почему-то объявлена без inline и хотевшим быстрых вычислений приходилось кодить на ассемблере. Кто-то догадывался заменить bswap более быстрой на то время последовательностью команд, кто-то нет. А вот уйти вообще от необходимости менять порядок байт в двойном слове - это не типичная для программистов задача вроде длинной арифметики с учётом флага переноса, а требующая хотя бы приблизительного понимания, чем отличаются поля Галуа от Елисейских - не удивительно, что не догадывались. Зато если бы программистам дали reference implementation - наверняка некоторые точно так же тыкали бы в неё пальчиком и ухохатывались.

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

77. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 23:14 
Порядок следования байт - это машино зависимое.
Одно дело юзать bswap() там где нужно по алгоритму миксовать байты и другое дело htonl()/ntohl()  которые используются для конвертации данных на входе/выходе, и на архитектурах отличных по big-endian от х64 они могут вообще отбрасыватся при компиляции потому что перестановки не требуется.
Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 12-Мрт-24, 19:36 
Rijndael описан в расчёте на BigEndian. Поскольку оперирует 32-х разрядными значениями, программистам приходится менять порядок байт при чтении-записи памяти на LitteEndian. Эта операция достаточно дорогая. Однако, существует другой алгоритм, дающий тот же побочный эффект, но не требующий смены порядка байт на LitteEndian. Такой алгоритм, реализованный на С++, обгоняет оптимизированные ассемблерные реализации. Практика показала, что программисты в большинстве своём не могут создать такой алгоритм.
Ответить | Правка | Наверх | Cообщить модератору

90. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 12-Мрт-24, 23:17 
Да, только роботы его могут создать!
Слава роботам!
Ответить | Правка | Наверх | Cообщить модератору

94. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 13-Мрт-24, 09:13 
Это шутка? И над чем смеяться? Когда программисты тыкают пальчиком в математиков, но при этом не могут проделать очевидные для математиков преобразования, мне почему-то грустно.
Ответить | Правка | Наверх | Cообщить модератору

97. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 13-Мрт-24, 22:06 
Потому что пограмисты програмировают для компуктера и оно работает, а математики должны написать для пограмистов понятное и тут как раз фейл.

А касательно оптимизаций - там see и simd версии уже есть, пофиг на такую мелочёвку.
Кроме того я не умерен что нынче компилятор сам такое не преобразует автоматом.

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

101. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 14-Мрт-24, 11:19 
> Потому что пограмисты програмировают для компуктера и оно работает, а математики должны
> написать для пограмистов понятное и тут как раз фейл.

Для меня математики вполне понятно написали.

> А касательно оптимизаций - там see и simd версии уже есть, пофиг
> на такую мелочёвку.

Угу, когда программисты не справились, на помощь пришли инженеры из Intel и AMD.

> Кроме того я не умерен что нынче компилятор сам такое не преобразует
> автоматом.

Я уверен, что и завтра не сможет.

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

49. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Аноним (49), 11-Мрт-24, 00:02 
> Если проблемы алгоритмов и в самом деле такие значительные, как утверждается, хотелось бы увидеть обоснованные подтверждения и какие бы то ни было результаты.

Товарищ майор, там по ссылке выше уже всё объяснили и обосновали. Доверять алгоритмам, разработанным при участии спецслужб какой-либо страны категорически нельзя.

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

51. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +2 +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 00:53 
А других алгоритмов практически и нет, либо вы плохо искали связь.
Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 10-Мрт-24, 22:06 
Задача прикто либы - быть криптолибой, те сборником разных крипто алгоритмов, не важно нравятся они кому то или нет, соотвествуют требованиям или нет.
Чтобы вы понимали там до сих пор везде начиная с md2 и 3des всё есть.

Вот это фанбойство: "давайте оставим полтора алгоритма самых лучших в мире" - это архи тупо.
Ну оставляйте вы их где то в дефолтах TLS, но удалять имплементации самих алгоритмов просто нельзя.

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

46. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +1 +/
Сообщение от нах. (?), 10-Мрт-24, 22:42 
> Чтобы вы понимали там до сих пор везде начиная с md2 и 3des всё есть.

тебе уже удалось хотя бы в лабораторных условиях расшифровать 3des?

А вот single-des и dss auth - уже лет пять как нету в принципе (в openssl можно, помучавшись, включить, хотя уже и не факт что соберется), как и много чего другого.

Не то чтобы от чего помогло, конечно, но во всяком случае освободило разработчиков от необходимости исправлять баги еще и в таком коде (а их там вполне могло быть).

> но удалять имплементации самих алгоритмов просто нельзя.

тебя спросить забыли, какая жалость.

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

56. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 03:33 
Что там исправлять!?
Открываешь RFC с эталонной реализацией md5 на Си из 199х годов от Ривеста, копипастишь это в .c .h файлы и оно до сих пор собирается и работает.
Но может быть компелятор тебя немного обругает и потребуются косметические правки.

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


Моя позиция как у авторов bounce caste крипто либы - все алгоритмы собрать в одном месте и сделать удобными к использованию.
Потому что БИБЛИОТЕКА это собрание, чем больше всего - тем лучше.
То что вы на практике 95% использовать не будете потому что оно слабое/устарвшее/тп - дело ваше, я не прошу DSS, md2, des юзать, только чтобы алгоритмы были доступны в либе.
Меня больше заботит чтобы как со старыми форматами - всегда было чем обработать любой давности любой файл.

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

63. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от нах. (?), 11-Мрт-24, 09:10 
> Но может быть компелятор тебя немного обругает и потребуются косметические правки.

А может не обругает, и будет опять - "fixed RCE bug which standed for 20+ years".

Если ты не знал или забыл - вся идея libreфорка была именно в том чтобы выбросить тонны уже неактуального (или во всяком случае - неактуального для применения в openbsd в качестве штатного механизма) кода и тем избавиться от вызванных им ошибок и уязвимостей, сократив кодовую базу до обозримой. Не получилось, но они - пытались. А задача сделать мегауниверсальный набор всех возможных алгоритмов - не ставилась вообще.

> Меня больше заботит чтобы как со старыми форматами - всегда было чем обработать любой давности
> любой файл.

или файл внезапно - сам тебе что-нибудь "обработает". С файлами слишком большой давности - или нарочно подброшенными - это бывает.

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

69. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Аноним (30), 11-Мрт-24, 10:03 
Теперь же это идея сделать невозможным использование в "несвободных"®™ странах. Или всегда была?
Ответить | Правка | Наверх | Cообщить модератору

73. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Аноним (-), 11-Мрт-24, 11:56 
> Или всегда была?

Да и сейчас ее нет.
Там же написали:
"While we would be open for GOST support, it needs to be significantly better than what we have had and it also needs a maintainer."
Т.е. у них даже ментейнера нет.

Эти алгоритмы нужны где-то за пределами этой страны?
Нет.

А кто из местных решится мейнтейнить криптографию для зарубежного НКО без опасений набутыливания?
Скорее всего никто.

А если найдется, то можно ли ему будет доверять?
Тоже нет, на него будут влиять местные спецы.

Т.е. у тебя есть некачественный код без ментейнера.
Который ты и основные разрабы не используют.
Ну и нафига это счастье libssl'цам?

Но конечно проще всего все списать "Кругом враги!!111"

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

79. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 23:19 
Скулёж для нищих разумом.

Не нужен ни меинтейнер ни доверие.
Достаточно прогнать тест и убедится что оно выдаёт то что должно.
Тестовые векторы даже ущербные математики-криптографы РФ сообразили что надо писать.

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

78. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 23:17 
Они взялись не выбрасывать алгоритмы а переписать код с учётом современных принципов, типа там strlen() и всякий подобный мусор выкинуть и почистить всякое другое непотребство.

RCE в крипто алгоритмах - это надо постаратся очень сильно.
Максимум можно не очень красиво обрабатывать поддинг base64 и где то там падать.

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

83. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от нах. (?), 12-Мрт-24, 18:44 
Напоминаю - за двадцать лет в ssh1 нашлась ОДНА ошибка в strlen. НЕ эксплуатируемая, поскольку off-by-one обычно крайне сложно как-то применить. (да, считали вручную и после редактирования строчки на единичку сбились)

А несколько remote root - это вот умельцы из прожекта. Щас-то вот они точно тебе почистят.

> RCE в крипто алгоритмах - это надо постаратся очень сильно.

rce там как обычно будет не в алгоритме (он если и будет - в openssl) а на стадии разбора параметров.
Я в них верю, они смогут.

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

89. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 12-Мрт-24, 23:16 
Охх.
Дело в том, что я работал с оригинальным кодом от ssh конторы, код там тот ещё.
Подозреваю что все эти конюшни не дочистили до сих пор, как минимум пару лет назад я развлекался с кнвертацией закрытого ключа в ssh2 формате и ssh-keygen банально падал.
Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от нах. (?), 12-Мрт-24, 23:37 
> Подозреваю что все эти конюшни не дочистили до сих пор, как минимум
> пару лет назад я развлекался с кнвертацией закрытого ключа в ssh2
> формате и ssh-keygen банально падал.

это вот - целиком и полностью код опенбсдшников.

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

96. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 13-Мрт-24, 22:03 
Нет, читайте копирайты в исходниках.
Ответить | Правка | Наверх | Cообщить модератору

100. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от нах. (?), 14-Мрт-24, 11:04 
> Нет, читайте копирайты в исходниках.

те исходники от которых копирайты - все еще доступны в оригинале. Нет там фичи преобразования ключей.

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

47. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +1 +/
Сообщение от Аноним (-), 10-Мрт-24, 22:49 
> Задача прикто либы - быть криптолибой, те сборником разных крипто алгоритмов, не
> важно нравятся они кому то или нет, соотвествуют требованиям или нет.

Т.е если криптоалгоритм созданн с уязвимостями (или бекдорами), то нужно его радостно жавать пользователю?
Тут же не получится выкинуть на экран предупреждение "алгоритм написан в шарашке по заказу кровавой гебни".

> Вот это фанбойство: "давайте оставим полтора алгоритма самых лучших в мире" - это архи тупо.
> Ну оставляйте вы их где то в дефолтах TLS, но удалять имплементации самих алгоритмов просто нельзя.

Их либа, что хотят то и делают.
Можешь форкнуть и пихать туда все что душа пожелает.


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

50. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +2 +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 00:51 
Это примерно как из публичной библиотеки выкидывать книжки которые тебе не нравятся или устарели.

И чтобы вы понимали, некоторые алгоритмы прибиты на гвозди к актуальному софту и не смотря ни на что они будут продолжать использоватся.

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

76. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Аноним (-), 11-Мрт-24, 16:55 
> из публичной библиотеки выкидывать книжки которые тебе не нравятся или устарели

Ну во-первых такое уже было и не раз. И у нас, и в европах и в штатах.
Вон сочинения самого известного австрийского художника выкинули почти отовсюду и никто не умер.

Во-вторых сфигали эта библиотека 'публичная'?
Они что финансируются государством?
Ты можешь посмотреть на их сайт. Сомневаюсь что они вообще какие-то деньги получают)
Так что имеют полное право прееставлять кровати как хотят.

> И чтобы вы понимали, некоторые алгоритмы прибиты на гвозди к актуальному софту и не смотря ни на что они будут продолжать использоватся.

А это уже не проблемы разработчиков либы.
Вам что-то не нравится? можете скачать BoringSSL/GnuTLS/MatrixSSL/OpenSSL тысячи их!

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

80. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 11-Мрт-24, 23:21 
Тео живёт на пожертвования проекту.
Даже одного этого достаточно чтобы принать его публичной библиотекой, а то что туда несут код все кому не лень только усиливает позицию публичности.

Вот у меня на гитхубе моя liblcb - это пока моё личное, что хочу то и ворочу там, ибо пишу один и за свой счёт.

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

82. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Аноним (-), 12-Мрт-24, 13:46 
> Даже одного этого достаточно чтобы принать его публичной библиотекой

У вас какое-то особое понимание публичности.

> LibreSSL is supported financially by the OpenBSD Foundation and the OpenBSD Project.

Первая Canada Not-For-Profit Corporations, вторая "volunteer-driven software group funded by donations".

Ни одно, ни другое не значит что они должны выполнять чьи-то хотелки. Тем более в контексте "публичности".
Все что они обязаны делать - прописано в их уставе openbsdfoundation.org/foundation/bylaws.html
Если что-то не нравится или переставайте донатить, или подавайте в суд.

> а то что туда несут код все кому не лень только усиливает позицию публичности.

Абсолютно нет. Люди коммитят по конкретной лицензией.
На этом всё. Не нравится - иди форкай, код свободный.

> Вот у меня на гитхубе моя liblcb - это пока моё личное, что хочу то и ворочу там, ибо пишу один и за свой счёт.

Так и они что хотят то и воротят.

Вы пытаетесь так сильно натянуть сову на глобус, что она скоро треснет.

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

85. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 12-Мрт-24, 19:55 
> Вот у меня на гитхубе моя liblcb

#define SHA1_Ch(__x, __y, __z)    (((__x) & (__y)) | ((~(__x)) & (__z)))
#define SHA1_Maj(__x, __y, __z)    (((__x) & (__y)) | ((__x) & (__z)) | ((__y) & (__z)))

SHA1_Ch упрощается первой строкой, а SHA1_Maj - третьей.


    static inline uint32_t f(unsigned const t, uint32_t b,
                                  uint32_t c, uint32_t d)
    {
      return  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;
    }

Про такие фокусы советую «Алгоритмические трюки для программистов» Генри Уоррен, мл.
Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

86. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 12-Мрт-24, 20:01 
Вы добавили ветвления, нафиг не нужны такие упрощения.
Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 12-Мрт-24, 20:08 
Я не публикую код, если не проверял, потому не стал вытаскивать ветки и писать макросы. Надеялся, что и так будет понятно, что получится что-то вроде этого (скобочки не пишу)

#define SHA1_Ch(__x, __y, __z)    (((__x) & (__y)) | ((~(__x)) & (__z)))

#define SHA1_Ch(b, c, d)    ((c ^ d) & b ^ d)

Тут на одну операцию меньше.

Что касается ветвлений, то при инлайне они вряд ли будут, это компиляторы и 20 лет назад разруливали.

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

88. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 12-Мрт-24, 23:13 
Я когда то этим развлекался и бенчил, по тем временам оставил лучший результат.
Сейчас там или SSE/AVX или сразу нужный SIMD который делает внутри всю магию.
Ответить | Правка | Наверх | Cообщить модератору

93. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 13-Мрт-24, 09:07 
> Я когда то этим развлекался и бенчил, по тем временам оставил лучший
> результат.

Потому что упрощённый вариант в сравнении не участвовал.

А вообще я это привёл не как заявку на быстрейший вариант, а как пример оптимизаций очевидных, но не для всех. Ну и книжку всё же советую полистать. Оригинальное её название Hacker's Delight.

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

95. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Ivan_83 (ok), 13-Мрт-24, 22:02 
https://github.com/rozhuk-im/liblcb/blob/f254da703bb01bf089c...
Вот что было, может что то ещё.

Это всё низовые оптимизации, я когда ECDSA оптимизировал то там сильно роялит алгоритмическая оптимизация, так сказать сверху-середины.

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

102. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от n00by (ok), 14-Мрт-24, 11:22 
> Это всё низовые оптимизации

В математике это называется - упростить выражение. И некоторые такое пишут на автомате, просто потому, что иначе не могут.

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

67. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от aname (?), 11-Мрт-24, 09:54 
> Т.е если криптоалгоритм созданн с уязвимостями (или бекдорами), то нужно его радостно жавать пользователю?

С одной стороны таки да, пусть пользователь сам там с этим всем. Другое дело, что это условный ты пишешь либу и тебе претит, то как разраб, ты можешь выкинуть на мороз это. А пользователь, в случае опенсурса, пусть сам, ручками.

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

75. "Выпуск криптографической библиотеки LibreSSL 3.9.0"  +/
Сообщение от Минона (ok), 11-Мрт-24, 14:31 
Зачем сборник?
1 алгоритм = 1 либа.
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

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

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




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

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