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 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.