LINUX.ORG.RU

Реализация SHA1 на С от Торвальдса обогнала реализацию на ассемблере от OpenSSL

 ,


0

0

В своём блоге небезызвестный программист Линус Торвальдс сообщает, что на его рабочей станции с процессором на ядре Nehalem его реализация SHA1 для git работает быстрее SHA1 из библиотек OpenSSL. Он отмечает, что это позволило отказаться от привязки к libcrypt и на несколько секунд увеличить результаты прохождения тестов. Причём он выделяет, что он писал на «почти кросс-платформенном ассемблере» С, в отличие от разработчиков OpenSSL, писавших на ассемблере.

В своей обычной манере Торвальдс отзывается о компиляторах ("...it turns out that getting good results from SHA1 really is mostly about trying to fight the compilers tendency to try to be clever" - "...ясно, что чтобы получить хорошую реализацию SHA1, надо бороться с тенденцией компиляторов быть самыми умными"), процессорных архитектурах («On my Nehalem machine (but not Netburst or Atom - poor fragile micro-architectures that they are)...» - «На моей машине с Nehalem (ни в коем случае не с Netburst или Atom - убогие хрупкие микро-архитектуры)...») и даже бибилиотеках, к которым привязывался git ("...I get rid of two silly runtime loadable libraries that git no longer needs" - "...Я избавился от двух глупых загружаемых библиотек времени исполнения, которые больше не нужны git")

>>> Подробности



Проверено: Shaman007 ()
Ждём ответного хода — компиляции OpenSSL на Clang.
iZEN ★★★★★
()
Молодец какой, надо взять с полки булочку. :-) Скоро ядро будет как Емакс. Есть все, кроме самой ОС.
Deleted
()
Ответ на: комментарий от Deleted
> Скоро ядро будет как Емакс. Есть все, кроме самой ОС.

да-да, ведь все знают, что git входит в состав ядра

П.С. поскорей-бы 1 сентября и школьники вернулись за парты
lester ★★★★
()
Ответ на: комментарий от lester
> П.С. поскорей-бы 1 сентября и школьники вернулись за парты lester *** (*) (10.08.2009 9:48:22)

Не пугай так, мне за парту в декабре.

Deleted
()
Ответ на: комментарий от lester
> поскорей-бы 1 сентября и школьники вернулись за парты

нынче в школах интернеты, не поможет

а Линус-таки молодец.
jcd ★★★★★
()
> Он отмечает, что это позволило отказаться от привязки к libcrypt и на несколько секунд увеличить результаты прохождения тестов.

Увеличить? Может лучше было написать ускорить?

askh ★★★★
()
Ответ на: комментарий от askh
> Увеличить? Может лучше было написать ускорить?

Все правильно, теперь линусовский sha1 длиннее.

Werehuman ★★
()

Оно дыряво?

А что с дырявостью и устойчивостью реализации от Линуса? А то был тут один, заявил что его веб-сервер на Lisp'е рвёт Apache с nginx'ом вместе взятые, а потом оказалось, что сервер работает не более чем с одним запросом одновременно.
Camel ★★★★★
()
Реализация не чисто сишная. На x86 и x86_64 используется сильно растиражированная ассемблерная вставка из одной команды rol или ror.
AEP ★★★★★
()
Ответ на: комментарий от AEP
So here is the current result of me trying to get gcc (well, arguably of it is mostly the C pre-processor, rather than the compiler proper ) to generate good assembly code.
lester ★★★★
()
Ответ на: комментарий от lester
ну да, о них. я помню разговор несколько тем назад, GCC и libc оказались основным препятствием на пути освобождения от GNU =)
CryAngel
()
Ответ на: комментарий от CryAngel
> помню разговор несколько тем назад, GCC и libc оказались основным препятствием на пути освобождения от GNU =)

слова то какие - "освобождения" :), я тогда писал, что очень маловероятно, что в будущем понадобится искать альтернативу GNU, а весь разговор состоял из того, что кто-то сказал, что без GNU Linux не выжил бы, я же указал, что есть и другие варианты
lester ★★★★
()
FYI: под SHA1 существуют атаки нахождения коллизий, и уже несколько лет она считается небезопасной. Вот свежий линк на блог Брюса Шнаера: http://www.schneier.com/blog/archives/2009/06/ever_better_cry.html

Народ, проснитесь, скоро 2010 год, люди уже стандарт SHA3 принимают, а у вас линукс на SHA1. Почему не на CRC32?

hattahattahatta
()
Ответ на: комментарий от hattahattahatta
> Народ, проснитесь, скоро 2010 год, люди уже стандарт SHA3 принимают, а у вас линукс на SHA1. Почему не на CRC32?

Потому что в CRC32 слишком легко образуется коллизии и он лишь относительно пригоден даже для идентификации файлов.

Проснись, хеш может использоваться не только в криптографии.
atrus ★★★★★
()
>не нужны

Наш человек.
Sekai
()
Ответ на: комментарий от hattahattahatta
> Народ, проснитесь, скоро 2010 год, люди уже стандарт SHA3 принимают, а у вас линукс на SHA1. Почему не на CRC32?

А почитать ещё раз текст в топике? Речь идёт об использовании SHA1 в git. При чём тут атака коллизий?

cyberbobs
()
Ответ на: комментарий от lester
> ждем от Торвальдса свою реализацию libc и компилятор

Видимо, сначала придётся подождать реализацию клиента битторрент. Вон, SHA1 уже осилил :)

rocket
()
Ответ на: комментарий от name_no
>Торвальдс в своём репертуаре. Теперь бы его реализацию в отдельную либу... :-)

+100. кто там вхож - посоветуйте ему комитнуть патчик в libcrypt
k0l0b0k ★★
()
а вообще кризис, да. на работу не берут, вот Линус решил "поддать газку" в виде пиара себя как крутого программера.
k0l0b0k ★★
()
>что он писал на "почти кросс-платформенном ассемблере" С

>библиотек времени исполнения

ПРОМТ головного мозга.

heilnull ★★
()
Какая всё таки "кривая" реализация у OpenSSL
Boy_from_Jungle ★★★★
()
Ответ на: комментарий от hattahattahatta
> Народ, проснитесь, скоро 2010 год, люди уже стандарт SHA3 принимают, а у вас линукс на SHA1.

быдло не знает что такое git и для чего в нём используется sha1

а по теме: не надо отдельных либ, заменяющих что-то более-менее устоявшееся. не от торвальдза :)
rtk
()
и Линус конечно же отправил патчик в апстрим?
john_doe
()
Ответ на: комментарий от phasma
по-твоему лучше тянуть в зависимостях две либы чем написать небольшой кусок кода, который к тому-же быстрее работает?
lester ★★★★
()
Вот так сам Линус и показал, что, используя все более высокоуровневые ЯП, разработчик с мозгами будет достигать все более и более лучших результатов :)
impfp
()
Ответ на: комментарий от lester
> по-твоему лучше тянуть в зависимостях две либы чем написать небольшой кусок кода, который к тому-же быстрее работает?

не распарсил :)
phasma ★☆
()
Ответ на: комментарий от name_no
>Торвальдс в своём репертуаре. Теперь бы его реализацию в отдельную либу... :-)

libnomonkeys.so?
Pavval ★★★★★
()
Еще вчера читал. Линус - молодец.
madgnu ★★★★★
()
Ответ на: комментарий от lester
> извини, варианта для даунов не будет :)

ты понимаешь разницу в реализации на C и на Ассемблере ? Понимаешь, что это архитектурозависимо ?
phasma ★☆
()
Ответ на: комментарий от phasma
> ты понимаешь разницу в реализации на C и на Ассемблере ? Понимаешь, что это архитектурозависимо ?

и в OpenSSL и в коде Торвальдса используется ассемблер, и что?
lester ★★★★
()
А вот бы замутить реализацию на LLVM, интересно, что же получится?
Macil ★★★★★
()
Ответ на: комментарий от impfp
толи я резко поумнел( что врядли ), толи мне попадаются такие собеседники, смотри содержимое этого блока:

#define SHA_ASM(op, x, n) ({ unsigned int __res; __asm__(op " %1,%0":"=r" (__res):"i" (n), "0" (x)); __res; })
#define SHA_ROL(x,n) SHA_ASM("rol", x, n)
#define SHA_ROR(x,n) SHA_ASM("ror", x, n)

lester ★★★★
()
Ответ на: комментарий от lester
Ладно, уел :) (я больше на втором блоке дефайнов, которые T_x_y(),  задержал внимание)
impfp
()
Ответ на: комментарий от lester
>кто-то сказал, что без GNU Linux не выжил бы, я же указал, что есть и другие варианты

Ага, "сказал"... в лужу

Led ★★★☆☆
()
Ну и новости пошли. На моно написали hello, world, торвальдс написал sha1, что же будет дальше?
ikm ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.