Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

«Выглядит похоже». Как работает перцептивный хэш

Обработка изображений
Перевод
За последние несколько месяцев несколько человек спросили меня, как работает TinEye и как в принципе работает поиск похожих картинок.

По правде говоря, я не знаю, как работает поисковик TinEye. Он не раскрывает деталей используемого алгоритма(-ов). Но глядя на поисковую выдачу, я могу сделать вывод о работе какой-то формы перцептивного хэш-алгоритма.
Читать дальше →
Всего голосов 149: ↑145 и ↓4 +141
Просмотры102.3K
Комментарии 43

Жизненный цикл криптографических хэш-алгоритмов

Криптография


У каждой технологии есть свой жизненный цикл, не исключением являются и хэш-функции. Программист и писатель Валери Аврора (в прошлом она работала ведущим программистом в Red Hat, сейчас — директор The Ada Initiative и журналист-фрилансер) составила небольшую табличку. Судя по всему, у владельцев веб-сервисов не остаётся другого выхода, кроме как менять хэш-алгоритм каждые пару лет в поисках оптимального соотношения производительности и защищённости (в смысле, защищённости хотя бы на несколько лет вперёд).
Читать дальше →
Всего голосов 89: ↑85 и ↓4 +81
Просмотры3.1K
Комментарии 50

Хранение паролей без их сохранения (развитие темы)

Информационная безопасность
Сегодня залез в песочницу и наткнулся на статью о хранении паролей без их сохранения (больше нету, сохранённая копия здесь). Не знаю, как вам, но мне идея показалась интересной.

Мне часто приходится придумывать, запоминать и хранить множество паролей…
Но, увы, для меня использование консольной утилиты для «нахождения» нужного пароля не всегда удобно.

Для себя я сделал онлайн-аналог утилиты автора статьи. Даже сохранил с ней обратную совместимость (используется такой же алгоритм хэширования и «алфавит»).
Читать дальше →
Всего голосов 35: ↑30 и ↓5 +25
Просмотры4.3K
Комментарии 58

Хранение паролей без их сохранения

Информационная безопасностьКриптографияПрограммирование
Из песочницы
Здравствуйте. Примерно два года назад на Хабрахабре я из некого комментария познакомился с интересным способом хранения паролей без их сохранения. Фраза выглядит странно, но более точно описать род этой программы мне не получилось. Способ заключается в том, что для получения пароля к конкретной учетной записи на конкретном сайте необходимо загнать в хэш-функцию строку, «склеенную» из мастер-пароля, адреса сайта, и логина на сайте.
keyword+sitename+login
В данной строке keyword – это мастер-пароль, используемый для «хранения» паролей ко всем сайтам. Далее идет адрес сайта, затем логин. Загнав в хэш-функцию данную строку, мы получим на выходе строку символов, которую полностью или частично можно использовать в качестве пароля к данной учетной записи на данном сайте. Ключевое слово в начале строки обеспечивает невозможность узнать пароль, если известны адрес сайта и логин. Длина результата хэш-функции более чем предостаточна для пароля. Но надежность пароля все равно оставляет желать лучшего. Каждый символ такого пароля может принимать только одно 16-ти значений, так как результатом хэш-функции является строка чисел в шестнадцатеричном представлении.
Я попытался исправить этот недостаток. Далее расскажу как.
Читать дальше →
Всего голосов 50: ↑18 и ↓32 -14
Просмотры9.6K
Комментарии 74

Немного о хэшах и безопасном хранении паролей

Информационная безопасностьPHP
Из песочницы
Upd. Если вы знаете, что такое BCrypt, можете дальше не читать. Если вы используете PHP 5.5+ то можете прочитать эту статью. Ниже же я изобрел свой велосипед, рабочий, но с двумя рулями, задний запасной. Молод был, горяч.

Привет, хабр! Сегодня, в процессе разработки системы аутентификации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:

  • Хранить пароли в БД в открытом виде.
  • Использовать обычные хэши crc32, md5, sha1
  • Использовать функцию crypt()
  • Использовать статическую «соль», конструкции вида md5(md5($pass))
  • Использовать уникальную «соль» для каждого пользователя.

Читать дальше →
Всего голосов 71: ↑57 и ↓14 +43
Просмотры64.1K
Комментарии 100

NIST принял решение: SHA-3 будет использовать алгоритм Keccak

Информационная безопасностьКриптографияАлгоритмы
Национальный институт стандартов и технологий США (NIST) выбрал победителя в конкурсе криптографических хэш-алгоритмов для стандарта SHA-3. В нём участвовало 64 претендента. Пять финалистов конкурса определились почти два года назад. Победителем стал алгоритм Keccak (читается «кэтчэк» или «кетчак» — устоявшегося варианта русского написания и произношения пока нет), созданный командой криптологов из Италии и Бельгии.
Читать дальше →
Всего голосов 27: ↑24 и ↓3 +21
Просмотры10.4K
Комментарии 40

Как работают одноразовые пароли

Информационная безопасностьКриптография
Tutorial

Вступление


Как показывает практика, существует определенное непонимание принципов работы одноразовых паролей (это те самые, которые используются в GMail, в спец. токенах платежных систем и так далее).

Прочитав эту небольшую статью, Вы разберетесь в принципе работы одноразовых паролей на основе хэшей, а заодно напишете на Python небольшую программу, которая умеет вычислять пароли для двухэтапной аутентификации Google.
Читать дальше →
Всего голосов 130: ↑126 и ↓4 +122
Просмотры105.4K
Комментарии 72

Сортировка вставкой в хэш-таблицу

Алгоритмы
Из песочницы
Предлагаю вашему вниманию новый (как я думаю) алгоритм сортировки. Пытался искать похожее, но аналогов не увидел. Дайте знать, если видели что-то подобное.
Суть сортировки в том, что хэш-функция и разрешение коллизий построены таким образом, что в хэш-таблице данные оказываются уже в отсортированном виде. Остаётся только пробежаться по массиву хэш-таблицы и собрать непустые отсортированные данные.

Кому интересно – прошу под кат.

Читать дальше →
Всего голосов 20: ↑11 и ↓9 +2
Просмотры13.1K
Комментарии 19

Поиск кропнутых дубликатов изображений с помощью перцептуальных хешей

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



Читать дальше →
Всего голосов 129: ↑118 и ↓11 +107
Просмотры67K
Комментарии 39

Криптоанализ хэш-функции ГОСТ Р 34.11-2012

Информационная безопасностьКриптография
Перевод
В конце 2013 г. Технический комитет по стандартизации «Криптографическая защита информации» (ТК 26), Академия криптографии Российской Федерации и ОАО «ИнфоТеКС» объявили о проведении конкурса по криптоанализу отечественного стандарта хэширования ГОСТ Р 34.11-2012. Подробное описание условий конкурса опубликовано на сайте www.streebog.info. Таким образом, можно считать, что существующие работы по анализу данного криптостандарта стали предметом повышенного интереса криптоаналитиков, поскольку они являются отправной точкой для дальнейших исследований алгоритма ГОСТ Р 34.11-2012.
На текущий момент известно несколько работ, посвященных криптоанализу ГОСТ Р 34.11-2012. Но именно в работе Zongyue Wang, Hongbo Yu и Xiaoyun Wang «Cryptanalysis of GOST R Hash Function» предложены наиболее эффективные атаки на данный алгоритм. Поэтому, на мой взгляд, именно эта работа представляет наибольший интерес среди работ по данной теме; ее перевод я и предлагаю вашему вниманию.
В переводе сохранены авторские названия стандартов хэширования: под названием «ГОСТ» имеется в виду стандарт 1994 года ГОСТ Р 34.11-94, а «ГОСТ Р» обозначает исследуемый в работе алгоритм ГОСТ Р 34.11-2012.
Работа переведена и публикуется на русском языке с разрешения ее авторов.

Перевод здесь
Всего голосов 83: ↑79 и ↓4 +75
Просмотры51K
Комментарии 29

Как надо хешировать пароли и как не надо

Информационная безопасность
image

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

Постараюсь очень лаконично и быстро обрисовать ситуацию с хэшами.

Сразу определю какую задачу применения хешей буду рассматривать — аутентификация пользователей. Не токены восстановления паролей, не аутентификация запросов, не что-то еще. Это также не статья про защиту канала передачи данных, так что комментарии по challenge-response и SSL неуместны!

Читать дальше →
Всего голосов 135: ↑117 и ↓18 +99
Просмотры217.6K
Комментарии 331

Как бороться с репостами или пара слов о перцептивных хешах

ПрограммированиеОбработка изображений
Из песочницы
В этой публикации речь пойдет о подходах к построению перцептивный хешей изображения и возможностях их использования (например, поиск дубликатов).

перцептивный хэш-алгоритмы описывают класс функций для генерации сравнимых хэшей. Они используют различные свойства изображения для построения индивидуального «отпечатка». В дальнейшем эти «отпечатки» можно сравнивать друг с другом.

Если хэши отличаются, значит, данные разные. Если хэши совпадают, то данные, скорее всего, одинаковые (поскольку существует вероятность коллизий, то одинаковые хэши не гарантируют совпадения данных). В этой статье речь пойдет о нескольких популярных методах построения перцептивный хешей изображения, а также о простом способе борьбы с коллизиями. Всем кому интересно, прошу под кат.
Читать дальше →
Всего голосов 55: ↑54 и ↓1 +53
Просмотры27K
Комментарии 26

Как написать фильтр Блума в C ++

ua-hosting.companyПрограммированиеC++
Фильтр Блума представляет собой структуру данных, которая может эффективно определить является ли элемент возможным элементом набора или определенно не относится к нему. Эта статья продемонстрирует простую реализацию фильтра Блума в C++.

Читать полный перевод
Всего голосов 23: ↑22 и ↓1 +21
Просмотры18.8K
Комментарии 31

CTCrypt 2016 — криптография на любой вкус

Исследования и прогнозы в IT
Через неделю, с 06 по 08 июня, в г. Ярославле пройдет V международный симпозиум «Современные тенденции в криптографии» (Current Trends in Cryptology – CTCrypt 2016). Симпозиум организован Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации», Академией криптографии Российской Федерации и Математическим институтом им. В.А. Стеклова РАН.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры4.5K
Комментарии 0

Свободный менеджер паролей LessPass работает на чистой функции

Софт


Хранение уникальных паролей для всех сайтов и приложений — целое искусство. Невозможно запомнить сотню длинных паролей с высокой энтропией. Может быть, в мире есть десяток высокоразвитых аутистов, способных на такое, не больше. Остальным людям приходится использовать технические трюки. Самый распространённый вариант — записать все пароли в один файл, который защищён мастер-паролем. По такому принципу работает большинство парольных менеджеров.

У этого способа много преимуществ, но есть два главных недостатка: 1) трудно синхронизировать пароли между устройствами; 2) нужно всегда иметь в распоряжении сам файл с паролями. То есть потерял файл с паролями — и до свидания.
Читать дальше →
Всего голосов 38: ↑34 и ↓4 +30
Просмотры25.4K
Комментарии 38

Что связывает парадокс дней рождения и уязвимости электронных подписей?

КриптографияМатематика
Перевод

Введение


Допустим, я спрошу вас, сколько человек должно быть в комнате, чтобы у двух из них день рождения с вероятностью 50% приходился на один день. Каким будет ответ? Именно это и называется парадоксом дней рождения.

Парадокс гласит:

Если в комнате есть 23 человека, то с вероятностью 50% двое из них родились в один день.

В некоторых версиях парадокса делаются ещё более сильные заявления:

Если в комнате 70 человек, то с вероятностью 99% двое из них родились в один день.

Поначалу это казалось мне удивительным и контринтуитивным. Давайте выясним, почему же это правда. Чтобы упростить задачу, мы сделаем следующие допущения:

  1. Будем считать, что все люди в комнате родились не в високосный год. Мы делаем это допущение, чтобы нам не пришлось анализировать два разных случая.
  2. В комнате нет близнецов. При наличии пары близнецов решение будет тривиальным.
  3. Мы предполагаем, что люди рождаются равномерно и случайно. Что это значит? Люди с равной вероятностью могут рождаться в любой день года. Если немного это формализовать, то вероятность рождения в любой выбранный день равна $\frac{1}{365}$.
  4. Люди рождаются независимо друг от друга. Это значит, что дата рождения любого человека не влияет на дату рождения другого.

Стоит заметить, что эти условия необязательно соблюдаются в реальном мире. В частности, в реальном мире люди не рождаются с равномерной случайностью. По этой ссылке есть статистика по дням, в которые рождаются люди. Хотя наша модель не является точным отражением реального мира, её простота позволяет значительно облегчить анализ задачи.
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Просмотры9.9K
Комментарии 28

Ханс Петер Лун и рождение алгоритма хеширования

CloudMTSАлгоритмыИстория ITБиографии гиков
Перевод
Алгоритм хеширования инженера IBM дал компьютерам возможность быстрого поиска документов, ДНК и баз данных


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

В ноябре 1958, во время шестидневной международной конференции, посвященной научной информации, изобретатель Ханс Петер Лун продемонстрировал несколько электромеханических машин. Выглядели они весьма заурядно. Как и все прочие вычислительные устройства того времени, они были угловатыми, практичными и предназначались для приема и сортировки стопок перфокарт в слотах и корзинах.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры7.1K
Комментарии 1

«Привет, мир»: разбираем каждый шаг хэш-алгоритма SHA-256

SelectelКриптографияАлгоритмы
Перевод

SHA-2 (Secure Hash Algorithm), в семейство которого входит SHA-256, — это один самых известных и часто используемых алгоритмов хэширования. В тексте подробно покажем каждый шаг работы этого алгоритма на реальном примере. SHA-2 отличается безопасностью (его тяжелее взломать, чем SHA-1) и скоростью.
Читать дальше →
Всего голосов 32: ↑29 и ↓3 +26
Просмотры20K
Комментарии 6

CubeHash

Информационная безопасностьКриптография
Из песочницы

Криптографическая хэш функция представляет собой набор шагов, позволяющих преобразовать произвольный блок данных в последовательность фиксированной длины. Любое изменение входных данных ведёт к изменению значения функции. Хэш функции используются для вычисления контрольных сумм, при выработке электронной подписи, при сохранении паролей в системах защиты в виде хеш-кода и т.д.

В качестве нового стандарта SHA-3 в конкурсе хэш-функций, проводимых Национальным институтом стандартов и технологий(NIST) в 2009 году было предложено семейство хеш-функций CubeHash.

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

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Просмотры1.5K
Комментарии 4