хэш

хэш


Хеширование или хэширование (англ. hashing) — преобразование массива входных данных произвольной длины в (выходную) битовую строку установленной длины, выполняемое определённым алгоритмом. Функция, воплощающая алгоритм и выполняющая преобразование, называется «хеш-функцией» или «функцией свёртки». Исходные данные называются входным массивом, «ключом» или «сообщением». Результат преобразования (выходные данные) называется «хешем», «хеш-кодом», «хеш-суммой», «сводкой сообщения».

Например, мы можем подать на вход 128-битной хеш-функции роман Льва Толстого в шестнадцатеричном виде или число 1. В результате на выходе мы в обоих случаях получим разные наборы псевдослучайных шестнадцатеричных цифр вида: «c4ca4238a0b923820dcc509a6f75849b».

При изменении исходного текста даже на один знак, полностью меняется результат хеш-функции.

Это свойcтво хеш-функций позволяет применять их в следующих случаях:

  • при построении ассоциативных массивов;
  • при поиске дубликатов в сериях наборов данных;
  • при построении уникальных идентификаторов для наборов данных;
  • при вычислении контрольных сумм от данных (сигнала) для последующего обнаружения в них ошибок (возникших случайно или внесённых намеренно), возникающих при хранении и/или передаче данных;
  • при сохранении паролей в системах защиты в виде хеш-кода (для восстановления пароля по хеш-коду требуется функция, являющаяся обратной по отношению к использованной хеш-функции);
  • при выработке электронной подписи (на практике часто подписывается не само сообщение, а его «хеш-образ»);
  • и др.

В общем случае (согласно принципу Дирихле) нет однозначного соответствия между исходными (входными) данными и хеш-кодом (выходными данными). Возвращаемые хеш-функцией значения (выходные данные) менее разнообразны, чем значения входного массива (входные данные). Случай, при котором хеш-функция преобразует несколько разных сообщений в одинаковые сводки называется «коллизией». Вероятность возникновения коллизий используется для оценки качества хеш-функций.

Существует множество алгоритмов хеширования, отличающихся различными свойствами. Примеры свойств:

Выбор той или иной хеш-функции определяется спецификой решаемой задачи. Простейшим примером хеш-функции может служить «обрамление» данных циклическим избыточным кодом (англ. CRC, cyclic redundancy code).

Хешування застосовується для порівняння даних: якщо у двох масивах хеш-коди різні, масиви гарантовано розрізняються; якщо однакові - масиви, швидше за все, однакові. У загальному випадку однозначної відповідності між вихідними даними і хеш-кодом немає в силу того, що кількість значень хеш-функцій менше, ніж варіантів вхідного масиву; існує безліч масивів, які дають однакові хеш-коди - так звані колізії. Ймовірність виникнення колізій відіграє важливу роль в оцінці якості хеш-функцій.

Існує безліч алгоритмів хешування з різними характеристиками (розрядність, обчислювальна складність, крипостійкість і т. п.). Вибір тієї чи іншої хеш-функції визначається специфікою розв'язуваної задачі. Найпростішими прикладами хеш-функцій може служити контрольна сума або CRC.

Контрольні суми

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

Платою за таку високу швидкість є відсутність криптостійкості - легка можливість підігнати повідомлення під заздалегідь відому суму. Також зазвичай розрядність контрольних сум (типове число: 32 біта) нижче, ніж криптографічних хешей (типові числа: 128, 160 і 256 біт), що означає можливість виникнення ненавмисних колізій.

Найпростішим випадком такого алгоритму є розподіл повідомлення на 32 - або 16 - бітні слова і їх підсумовування, що застосовується, наприклад, в TCP/IP.

Як правило, до такого алгоритму пред'являються вимоги відстеження типових апаратних помилок, таких, як кілька поспіль помилкових біт до заданої довжини. Сімейство алгоритмів та ін. «Циклічні надлишкові коди» задовольняють цим вимогам. До них відноситься, наприклад, CRC32, застосовуваний в апаратурі Ethernet і у форматі упакованих файлів ZIP.

Криптографічні хеш-функції

Серед безлічі існуючих хеш-функцій прийнято виділяти криптографічно стійкі, які застосовуються в криптографії. Для того, щоб хеш-функція H вважалася криптографічно стійкою, вона повинна задовольняти трьом основним вимогам, на яких засновано більшість застосувань хеш-функцій в криптографії:

  1. Незворотність: для заданого значення хеш-функції m повинно бути обчислювально нездійсненно знайти блок даних X, для якого H (X) = m.
  2. Стійкість до колізій першого роду: для заданого повідомлення M повинно бути обчислювально нездійсненно підібрати інше повідомлення N, для якого H (N) = H (M).
  3. Стійкість до колізій другого роду: має бути обчислювально нездійсненно підібрати пару повідомлень (M, M'), що мають однаковий хеш.

Дані вимоги не є незалежними:

  1. Оборотна функція нестійка до колізій першого і другого роду.
  2. Функція, нестійка до колізій першого роду, нестійка до колізій другого роду; зворотне невірно.

Варто зазначити, що не доведено існування необоротних хеш-функцій, для яких обчислення будь-якого прообразу заданого значення хеш-функції теоретично неможливо. Зазвичай знаходження зворотного значення є лише обчислювально складним завданням.

Атака «днів народження» дозволяє знаходити колізії для хеш-функції з довжиною значень n бітів в середньому за приблизно 2n/2 обчислень хеш-функції. Тому n-бітова хеш-функція вважається криптостійкою, якщо обчислювальна складність перебування колізій для неї близька до 2n/2 .

Для криптографічних хеш-функцій також важливо, щоб при найменшій зміні аргументу значення функції сильно змінювалося (лавинний ефект). Зокрема, значення хешу не повинно давати витоку інформації навіть для окремих бітів аргументу. Ця вимога є запорукою криптостійкості алгоритмів хешування, які хешують пароль користувача для отримання ключа.

Застосування хеш-функцій

Хеш-функції також використовуються в деяких структурах даних - хеш-таблицяx, фільтрах Блума і декартових деревах. Вимоги до хеш-функції в цьому разі інші:

  • хороша перемішуваність даних
  • швидкий алгоритм обчислення

Перевірка даних

У загальному випадку це застосування можна описати, як перевірка деякою інформацією на ідентичність оригіналу, без використання оригіналу. Для звірки використовується хеш-значення перевіреній інформації. Розрізняють два основні напрямки цього застосування:

  • Перевірка на наявність помилок

Наприклад, контрольна сума може бути передана каналом зв'язку разом з основним текстом. На приймальному кінці контрольна сума може бути розрахована наново і її можна порівняти з переданим значенням. Якщо буде виявлена розбіжність, то це означає, що при передачі виникли спотворення і можна запросити повтор.

Data onboarding is one of those many processes in digital marketing that is, essentially, a black box.

To help shed light into this particular black box, management consulting firm Winterberry Group has released its first report on data onboarding in the US, “The State of Consumer Data Onboarding: Identity Resolution in an Omnichannel Environment.”

Winterberry says this is the first such report outside of onboarding providers themselves, which include Acxiom’s LiveRamp, Experian and Lotame.

The study addresses at some length the definition of data onboarding. Many people, including me, had considered it is more or less how Wikipedia characterizes the practice: “the process of transferring offline data to an online environment for marketing needs.”

Offline data, such as a retailer’s purchasing records, is matched with online data, like online purchasing, social posts or site visits. The match is made through a “match key,” which is an identifier common to both, such as an email address. Then the combined profile — this customer’s offline record, married with her online patterns — is anonymized and given an ID.

In fact, that’s how the report first defines consumer data onboarding:

“Consumer data onboarding (hereafter referred to as ‘onboarding’) refers to the process of linking offline data with online attributes.”

But then the report adds:

“More specifically, it is the matching of two audience (B2B or B2C) data sets: one, a first-party CRM data set belonging to a marketer and the other, a digital data set belonging to a data provider. The match process uses a common identifier or match key to link the records.”

But, Winterberry Senior Managing Director and report co-author Bruce Biegel told me, data onboarding is really about matching personally identifiable information (PII) with non-PII data. Here’s another definition in the report that is more consistent with his explanation:

“Consumer Data Onboarding: The process of matching (temporarily linking) owned consumer data (PII) with consumers’ corresponding digital attributes (such as cookies, IP addresses, device IDs and other identifiers) to create a cohesive and comprehensive identity for more actionable marketing.”

The term doesn’t necessarily mean that one dataset is from offline, he said, nor that the onboarding necessarily matches offline to online. It’s primarily about PII with non-PII. It’s just that most brands have more of their PII data in offline data like sales, where customers use credit cards or sign up to receive a catalog.

After the linkage is made between datasets, the onboarder generates segments for targeting. Data management platforms (DMPs) can also onboard diverse data, but some vendors, like Acxiom’s LiveRail, specialize in onboarding and can provide certain additional functions, like generating offline segments from the matched data.

From the Winterberry Group's report

From the Winterberry Group’s report

In any case, digital marketers need to have a good sense of what onboarding involves, since it is becoming an essential part of data-oriented targeting.

Person-based marketing, where the profile of a specific and identified person (later anonymized) is filled out by other matching datasets, is the gold standard for targeting ads and marketing. This can be particularly useful when you want to reach the same person across different channels and devices. And it can be a critical part of attributing sales, especially since people commonly move between their online and offline selves.

Winterberry, which queried nearly 20 “senior industry experts” and reviewed related financial and other data sources for the report, noted that this part of the marketing industry was around $30 million in total revenues in 2012. This year, it’s expected to reach $250 million and is on target to hit $1 billion by 2020.

In addition to definitions and growth rates, the report covers a brief history, data onboarding’s value to marketers, various kinds of dataset matching, pricing structures and predictions about where data onboarding is heading.


Report Page