Pull to refresh
  • by relevance
  • by date
  • by rating

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

Image processing
Translation
За последние несколько месяцев несколько человек спросили меня, как работает TinEye и как в принципе работает поиск похожих картинок.

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

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

Cryptography


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

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

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

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

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

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

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

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

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

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

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

Читать дальше →
Total votes 71: ↑57 and ↓14 +43
Views63.9K
Comments 100

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

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

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

Information SecurityCryptography
Tutorial

Вступление


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

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

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

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

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

Читать дальше →
Total votes 20: ↑11 and ↓9 +2
Views13K
Comments 19

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

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



Читать дальше →
Total votes 129: ↑118 and ↓11 +107
Views66.8K
Comments 39

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

Information SecurityCryptography
Translation
В конце 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.
Работа переведена и публикуется на русском языке с разрешения ее авторов.

Перевод здесь
Total votes 83: ↑79 and ↓4 +75
Views50.6K
Comments 29

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

Information Security
image

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

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

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

Читать дальше →
Total votes 135: ↑117 and ↓18 +99
Views215.1K
Comments 331

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

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

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

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

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

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

Читать полный перевод
Total votes 23: ↑22 and ↓1 +21
Views18.8K
Comments 31

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

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

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

Software


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

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

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

CryptographyMathematics
Translation

Введение


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

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

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

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

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

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

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

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

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

IT-GRAD corporate blogAlgorithmsHistory of ITBiography of geeks
Translation
Алгоритм хеширования инженера IBM дал компьютерам возможность быстрого поиска документов, ДНК и баз данных


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

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

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

Selectel corporate blogCryptographyAlgorithms
Translation

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

CubeHash

Information SecurityCryptography
Sandbox

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

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

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

Читать далее
Total votes 20: ↑19 and ↓1 +18
Views1.5K
Comments 4