The OpenNET Project / Index page

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

Представлена реализация алгоритма хэширования Skein на Bash

14.09.2011 13:06

В рамках проекта Skein-Bash создана реализация алгоритма хэширования Skein 512-512, выполненная полностью на языке командного интерпретатора Bash. Код уложился в около 500 строк.

Skein отличается неплохой производительностью, например, на 64-разрядных платформах эталонная реализация Skein опережает по скорости SHA-512 примерно в два раза. В отличие от вариантов, оптимизированных для современных CPU, версия на Bash работает очень медленно - на расчет одного хэша тратится около 10 секунд. Работа выполнена с целью популяризации алгоритма Skein, который в следующем году будет бороться за звание стандарта SHA-3. В частности, было показано, что Skein может быть легко реализован с использованием различных языков программирования.

  1. Главная ссылка к новости (http://matt16060936.blogspot.c...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/31745-Skein
Ключевые слова: Skein, hash, bash, shell
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 13:14, 14/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Прекрасная пурпуляризация! Ещё бы на брэйнфаке написали бы - вообще народ ломился бы!
     
     
  • 2.28, Аноним (-), 16:18, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Прекрасная пурпуляризация! Ещё бы на брэйнфаке написали бы - вообще народ ломился бы!

    Модный тренд сегодняшнего дня - яваскрипт. Если поднапрячь моск - даже можно представить себе какую-то пользу от таковой. В отличие от баша. Ну, можно например браузеры на скорость JS бенчмаркать. Пустячок, а приятно :)

     
     
  • 3.29, Xasd (ok), 17:19, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Модный тренд сегодняшнего дня - яваскрипт.

    пока не стандартизируют функции связанные с двоичными данными в Javascript

        ( всё что витает около [нестандартизирвоанного, кстате] https://developer.mozilla.org/en/DOM/Blob )

    -- ябы ОЧЕНЬ ОПАСАЛСЯ появления Javascript-библиотек связанных с двоичными данными :-) ..

    в интернетах и так существует куча быдлокодерских javascript-поделок которые запихивают двоичные данные внутрь ТЕКСТОВОЙ СТРОКИ... на это без ужаса даже поглядеть в исходный код нельзя!

     
     
  • 4.39, Аноним (-), 12:20, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > пока не стандартизируют функции связанные с двоичными данными в Javascript

    Типизированные массивы уже сделали. В принципе можно и без них, хоть и изврат.

    > -- ябы ОЧЕНЬ ОПАСАЛСЯ появления Javascript-библиотек связанных с двоичными данными :-)

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

    > в интернетах и так существует куча быдлокодерских javascript-поделок которые запихивают
    > двоичные данные внутрь ТЕКСТОВОЙ СТРОКИ... на это без ужаса даже поглядеть
    > в исходный код нельзя!

    Да я и не сомневаюсь что поделок масса :P. Тем не менее, как вы могли заметить, какойнить jslinux или doom на js вполне себе грузят бинарные файлы, декомпрессят данные и прочая.

     

  • 1.2, Аноним (-), 13:21, 14/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Хорошая тенденция - переход с традиционных компилируемых языков на сценарии оболочки.

    Еще бы всякие coreutils и util-linux на шелле переписать. А то ведь, если захочешь поправить код, надо пересобирать - неудобно же.

     
     
  • 2.3, Аноним (-), 13:35, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    zip.zip? :)
     
     
  • 3.22, Аноним (-), 16:05, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > zip.zip? :)

    (pk)unizip.zip забавнее :P


     
  • 3.34, Аноним (-), 18:17, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Насколько я помню, штатный бинарник программы upx, предназначенной для сжатия бинарного кода, сам является upx-сжатым =)
     
     
  • 4.40, Аноним (-), 12:21, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Насколько я помню, штатный бинарник программы upx, предназначенной для сжатия бинарного
    > кода, сам является upx-сжатым =)

    А gcc версии N сам собран gcc, версии N :). Это наш ответ барону Мюнхаухену :D.

     
  • 2.4, Аноним (-), 13:42, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    и скорость торможения сразу вырастет в 200 раз
     
     
  • 3.5, Аноним (-), 13:46, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >и скорость торможения сразу вырастет в 200 раз

    Зато удобство возрастет в 100500 раз, очевидно же! А лишняя пара секунд - кого она беспокоит?

     
     
  • 4.7, Аноним (-), 14:06, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    два чаю этому адеквету. а еще надо бы переписать ядро на whitespace
     
  • 4.25, Аноним (-), 16:11, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Зато удобство возрастет в 100500 раз, очевидно же! А лишняя пара секунд
    > - кого она беспокоит?

    Капитан сообщает что пара секунд на маленьком файле легко станет парой часов на большом файле. А хешируют зачастую допустим ISO-sized файлы. Сколько бнопня на баше будет жевать стандартное DVD-ISO на 4.7 гига? Всего несколько суток, да? А скачаный дистр дебиана - будет проверяться примерно месяц? :)))

     
     
  • 5.31, Аноним (-), 18:02, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Всего несколько суток, да? А скачаный дистр дебиана - будет проверяться примерно месяц? :)))

    Но зато какой выигрыш по гибкости и удобству модификации!

     
     
  • 6.41, Аноним (-), 12:23, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Но зато какой выигрыш по гибкости и удобству модификации!

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

     
     
  • 7.53, Аноним (-), 12:59, 20/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    по поводу удобства модификации - это был сарказм. КО.
     
  • 4.35, Аноним (-), 19:38, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Что очевидно же? Удобство возрастет? Если вам стиральную машинку сделать без корпуса и с ручным приводом удобство возрастет. Ее ведь так легко будет ремонтировать. Да и вообще она гораздо реже будет ломаться, т.к. обороты отжима будут гораздо меньше 10 тыс. Очевидно же.
     
     
  • 5.36, Аноним (-), 19:48, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кстати, и все остальные бытовые приборы нужно сделать тоже с ручным приводом и без корпуса. Удобство возрастет в 100500 раз! Представляете как легко будет домохозяйкам ремонтировать эти приборы. Да и электричество не нужно совсем. Нужно просто бегать по квартире и крутить ручки. Кого беспокоят задержки в несколько секунд?
     
     
  • 6.52, Yakov Markovitch (?), 00:43, 18/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы не правы - ручной привод тоже не нужен, равно и приборы - достаточно одних хозяек!
     
  • 2.6, Аноним (-), 14:01, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И как часто ты поправлял код cd или ls?
     
     
  • 3.14, Аноним (-), 14:44, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > И как часто ты поправлял код cd или ls?

    К сожалению, очень часто не получается - не всегда есть время и силы валандаться с пересборкой.

     
     
  • 4.24, AHAHAC (ok), 16:10, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Напиши хоть один недостаток cd или ls
     
     
  • 5.50, Аноним (-), 23:38, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В ls -l нет поддержки вывода различных хешей для файлов, например.
     
  • 3.33, Аноним (-), 18:14, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > И как часто ты поправлял код cd или ls?

    С каких это пор встроенная команда оболочки cd стала отдельной программой?
    Пытаться переписать cd на шелле - это все равно что переписывать сишные кейворды на сях.

     
  • 2.10, maxkit (ok), 14:30, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Еще бы всякие coreutils и util-linux на шелле переписать. А то ведь, если захочешь поправить код, надо пересобирать - неудобно же.

    Что-то я прям усомнился, что Ваш код есть в coreutils.

     
     
  • 3.12, Аноним (-), 14:42, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Что-то я прям усомнился, что Ваш код есть в coreutils.

    А кто сказал, что я разрабатываю его в мейнстриме? Речь идет о модификациях под конкретные задачи, возникающие при администрировании отдельных систем.

     
     
  • 4.27, Аноним (-), 16:15, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > модификациях под конкретные задачи, возникающие при администрировании отдельных систем.

    Нормальный unix-way это
    1) Набор быстрых и эффективных утилит на сях
    2) Скрипты, ака glue logic, объединяющая их между собой так, как этого требуют задачи администрирования систем.

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


     
     
  • 5.30, Аноним (-), 18:01, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это не маразм, а всего лишь попытка трезво оценить размер "кирпичика" (гранулярность). Чем меньше кирпичики (т.е., чем точнее и конкретнее определены функции программных модулей), тем более гибкие решения можно из них строить.

    Так что unix-way, если исходить из того, что glue logic должна быть именно интерпретируемая, в конечном счете ведет к тому, что практически вся система должна быть написана на шелле.

     
     
  • 6.37, Аноним (-), 19:56, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы не сильно быстрый, вернее вы сильно медленный, ну вы поняли.
     
  • 6.42, Аноним (-), 12:29, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Несомненно, дома из отдельных атомов - могут быть более произвольной формы и кон... большой текст свёрнут, показать
     
     
  • 7.47, Аноним (-), 18:59, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Несомненно, дома из отдельных атомов - могут быть более произвольной формы и конструкции чем из отдельных кирпичей. Просто их такие строить раскладывая атомы по одному - долго. Очень долго.

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

     
  • 7.48, Аноним (-), 19:03, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Любое начинание можно довести до маразма.

    Поясняю: стремление сделать _всю_ glue logic обязательно интерпретируемой - автоматически превращает unix way в маразм. Потому что такая логика требуется на разных уровнях, и не всегда интепретируемость является оптимальным решением.

     
  • 2.11, СуперАноним (?), 14:39, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так перлисты собирались уже делать свой дистр, где замена coreutils и util-linux иключительно на Perl.
     
     
  • 3.20, Аноним (-), 15:48, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Скорее бы башисты свой дистр сделали. И чтобы это был единственный дистр с конфигурацией init на баше.
     
  • 2.23, Аноним (-), 16:08, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > если захочешь поправить код, надо пересобирать - неудобно же.

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

     
     
  • 3.32, Аноним (-), 18:12, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Правда подозреваю что вы будете единственным придурком который использует столь тормознутую хешилку всерьез.

    Вот уж вряд ли. Я неоднократно видел, как люди чуть ли не рубаху на груди рвали, доказывая, что им пофигу на скорость загрузки компа (почитайте скептические комменты в любой новости про upstart или systemd). А если им пофигу на время загрузки компа - почему их должно беспокоить время хеширования файла? Ведь необходимость в этом действии возникает сравнительно редко, его можно запускать в фоне и т.д. В итоге получаем, что сомнительный выигрыш в скорости вовсе не заменяет полной прозрачности и простоты модификации.

     
     
  • 4.43, Аноним (-), 12:32, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А если им пофигу на время загрузки компа - почему их
    > должно беспокоить время хеширования файла?

    Может, потому что люди не живут вечно? И если файл хешируется месяц - ну так этот месяц вы не сможете использовать слитый дистр, не зная корректно ли он скачался. При том, качается он сильно быстрее. Так что по этом поводу предлагаю переписать ядро и TCP/IP на bash. Пусть как максимум выжимает скорость диалапа, для симметрии. А то не порядок когда хешируется медленнее чем качается.

    >  В итоге получаем, что сомнительный выигрыш в скорости вовсе не заменяет полной
    > прозрачности и простоты модификации.

    А зачем нужна простота модификации хешировалки файлов? Сколько раз в жизни у вас зудело запатчить md5sum, например?

     
     
  • 5.49, Аноним (-), 19:07, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Может, потому что люди не живут вечно? И если файл хешируется месяц

    А кто сказал, что md5sum на баше будет хешировать DVD-образ именно месяц? Возможно, даже на слабом компе оно уложится в несколько часов. До проведения бенчмарков подобные заявления не могут служить аргументом.

    > А зачем нужна простота модификации хешировалки файлов? Сколько раз в жизни у
    > вас зудело запатчить md5sum, например?

    Речь идет не только об md5sum, но вообще о базовом наборе системных утилит. Если считать их все - такая необходимость возникает регулярно.

     

  • 1.8, жабабыдлокодер (ok), 14:11, 14/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Ну, а что тут такого? Проводят же чемпионаты по плеванию вишневыми косточками - пользы ничуть не больше. Когда человек пишет хеширование на баше, он в это время не грабит, не убивает, не насилует и не пытается свергнуть правительство. Запретить ему писать, чтобы он этим всем занялся?
     
     
  • 2.9, ononom (?), 14:22, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +6 +/
    как будто грабить, убивать, насиловать и пытается свергнуть правительство это что-то плохое
     
     
  • 3.13, Аноним (-), 14:43, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > как будто грабить, убивать, насиловать и пытается свергнуть правительство это что-то плохое

    С точки зрения правительства - да, последнее нехорошо.

     
  • 2.18, brzm (?), 15:33, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Уж лучше воровать, убивать и сношаться с гусями нежели писать хеш на баше.

    Если серьезно, то как тут заметил один индивид: написали бы _понятно_ на брейнфаке, вайтспейсе или яве - вот тогда бы народ зауважал.

     
     
  • 3.19, Аноним (-), 15:39, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Уж лучше воровать, убивать и сношаться с гусями нежели писать хеш на баше.

    Слово "хеш" здесь немного лишнее.

     

  • 1.15, Sem (??), 15:08, 14/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну вы даете! Реализация алгоритма на bash показывает простоту алгоритма. Не более того. Никто не требует использовать именно эту реализацию.
     
     
  • 2.16, Аноним (-), 15:27, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, лучше всего простоту алгоритма показывает его реализация на брейнфаке. Как посмотришь на двадцать страниц точек и плюсиков, сразу понимаешь - алгоритм предельно прост и прозрачен.
    А 500 строчек кода на баше такой наглядностью не обладают.
     
  • 2.17, BratSinot (?), 15:33, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Знаешь, можно и мега-сложные алгоритмы на Bash'e написать, только толку от этого ноль.
     
  • 2.44, Аноним (-), 12:36, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вы даете! Реализация алгоритма на bash показывает простоту алгоритма.

    Каким хреном? Баш - тоже полный по Тюрингу, поэтому теоретически на нем реализуем _любой_ алгоритм.

     
     
  • 3.46, Crazy Alex (??), 14:02, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А на практике видно, что никаких извращений особых нет даже на баше, который хоть и тьюринг-полный, но примитивный до ужаса. ЧТо и даёт простоту алгоритма.
     
     
  • 4.51, Аноним (-), 23:40, 15/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А на практике видно, что никаких извращений особых нет даже на баше,
    > который хоть и тьюринг-полный, но примитивный до ужаса.

    Если у вас баш "примитивный до ужаса" - вы явно не видели брейнфака и уайтспейса.

     

  • 1.21, Аноним (-), 16:05, 14/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > выполненная полностью на языке командного интерпретатора Bash

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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