Контакти

Що таке швидкість хешування. Що таке хеш і для чого він потрібен? На чому заснований процес Майнінг


Що таке хеш?Хеш-функцією називається математичне перетворення інформації в коротку, певної довжини рядок.

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

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

Якими характеристиками має володіти хеш-функція?

  • повинна вміти виконувати перетворення даних довільної довжини в фіксовану;
  • повинна мати відкритий алгоритм, щоб можна було дослідити її криптостойкость;
  • повинна бути односторонньою, тобто не повинно бути математичної можливості по результату визначити вихідні дані;
  • повинна «чинити опір» колізій, тобто не повинна видавати однакових значень при різних вхідних даних;
  • не повинна вимагати більших обчислювальних ресурсів;
  • при щонайменшій зміні вхідних даних результат повинен істотно змінюватися.

Які популярні алгоритми хешування?В даний час використовуються наступні хеш-функції:

  • CRC - циклічний надлишковий код або контрольна сума. Алгоритм досить простий, має велика кількість варіацій в залежності від необхідної вихідний довжини. Чи не є криптографічним!
  • MD 5 - дуже популярний алгоритм. Як і його попередня версія MD 4 є криптографічного функцією. Розмір хешу 128 біт.
  • SHA -1 - також дуже популярна кріптографіческаяфункція. Розмір хешу 160 біт.
  • ГОСТ Р 34.11-94 - російський криптографічний стандарт обчислення хеш-функції. Розмір хешу 256 біт.

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

Чим зручніше розраховувати хеш?Зараз існує велика кількість подібних утиліт як платних, так і вільних для використання. Мені особисто сподобалася HashTab. По-перше, утиліта при установці вбудовується у вигляді вкладки в властивості файлів, по-друге, дозволяє вибирати велику кількість алгоритмів хешування, а по-третє є безкоштовною для приватного некомерційного використання.

Що є російського?Як було сказано вище в Росії є стандарт хешування ГОСТ Р 34.11-94, який повсюдно використовується багатьма виробниками засобів захисту інформації. Одним з таких засобів є програма фіксації і контролю вихідного стану програмного комплексу «ФІКС». Ця програма є засобом контролю ефективності застосування СЗІ.

ФІКС (версія 2.0.1) для Windows 9x / NT / 2000 / XP

  • Обчислення контрольних сум заданих файлів по одному з 5 реалізованих алгоритмів.
  • Фіксація і подальший контроль вихідного стану програмного комплексу.
  • Порівняння версій програмного комплексу.
  • Фіксація і контроль каталогів.
  • Контроль змін в заданих файлах (каталогах).
  • Формування звітів в форматах TXT, HTML, SV.
  • виріб має сертифікат ФСТЕК по НДВ 3 № 913 до 01 червня 2013 р

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

В даний час багато програми електронної комерції дозволяють зберігати секретний ключ користувача в закритій області токена (ruToken, eToken) без технічної можливості вилучення його звідти. Сам токен має дуже обмежену область пам'яті, що вимірюється в кілобайтах. Для підписання документа немає ніякої можливості передати документ в сам токен, а ось передати хеш документа в токен і на виході отримати ЕЦП дуже просто.

Багато Майні, або Майніні, або збираються почати Майні, підбираючи собі обладнання по максимуму якихось там гігахешей. На що це за хеш-кодування такі?

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

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

Ось як він працює: процес хеширования отримує дані, наприклад, пароль, і обробляє ці вхідні дані через спеціальний алгоритм, який створює велике число, зване «хеш». Хеш має два ключових відмітних властивості.

  1. По-перше, одним і тим же вхідних даних завжди відповідає одне і те ж число. Тобто, якщо ви кожен раз будете вводити один і той же пароль, хешування буде генерувати одне і те ж число на виході, яке йому відповідає.
  2. По-друге, хешування - це односпрямований процес. Практично неможливо взяти значення хешу і за допомогою зворотного розробки розкрити, що було на вході. Таким чином неможливо піти від зворотного, і ввівши значення хешу, тобто те саме велике число, Визначити пароль. Саме завдяки цим двом пунктам хеш і використовується як самостійний метод обробки даних. Якби процес був звернемо, він називався б не хешированием, а старим добрим шифруванням / дешифрованием, що в сучасному світі є малоефективним.

Тепер як це працює на ще більш простому прикладі. Ви реєструєтеся на сайті, вводите свій пароль. Система обробляє його і генерує хеш, який відповідає вашому паролю. При цьому сам пароль в базі не зберігається. І тепер, коли ви будете заходити на цей сайт і вводити цей пароль, система буде генерувати хеш, порівнювати його з зберігаються значенням, і схвалювати доступ при збігу. А хакери, зламавши систему, отримають тільки набір хешів, абсолютно непотрібних для отримання пароля.


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

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

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

Хеш оновлюється кожні 10 хвилин, і перший комп'ютер, який вирішив задачу, отримує винагороду. Але на сьогоднішній день діапазон чисел, з яких потрібно знайти вірне - величезний. Все біткоіни-Майнер світу спільно обробляють за хвилину приблизно 50 000 000 000 000 000 вхідних значень в секунду в спробі підібрати ключик до заданого хешу.

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

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

Нерідко при скачуванні торрентів або безпосередньо самих файлів в описі варто щось на зразок «ad33e486d0578a892b8vbd8b19e28754» (наприклад, в ex.ua), нерідко з припискою «md5». Це хеш-код - результат, який видає хеш-функція після обробки вхідних даних. У перекладі з англійської хеш позначає плутанину, марихуану, травичку або блюдо з дрібно нарізаного м'яса і овочів. дуже і дуже складно, можна сказати, що практично неможливо. Тоді виникає питання: «Навіщо взагалі потрібні всі ці вони видають незрозумілу абракадабру, яка ще й не піддається розшифровці?». Про це і піде мова в даній статті.

Що таке хеш-функція і як вона діє?

Ця функція призначена для перетворення вхідних даних як завгодно великого розміру в результат фіксованої довжини. Сам процес такого перетворення називається хешированием, а результат - хешем або хеш-кодом. Часом ще використовують слова «відбиток» або «дайджест повідомлення», але на практиці вони зустрічаються набагато рідше. Існує маса різних алгоритмів того, як можна перетворити будь-який масив даних в якусь послідовність символів певної довжини. Найбільшого поширення набув алгоритм під назвою md5, який був розроблений ще в 1991 році. Незважаючи на те, що на сьогоднішній день md5 є дещо застарілим і до використання не рекомендується, він до цих пір все ще в ходу і часто замість слова «хеш-код», на сайтах просто пишуть md5 і вказують сам код.

Навіщо потрібна хеш-функція?

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

Хеш-функції: якими вони бувают

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

1. Функція для перевірки цілісності інформації

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

2. Криптографічний функція

Використовується для захисту від (НД). Вони дозволяють перевірити, чи не відбулося спотворення даних в результаті НД під час передачі файлів по мережі. Істинний хеш в цьому випадку є загальнодоступним, а хеш отриманого файлу можна обчислити за допомогою безлічі різних програм. У таких функцій довгий і стабільний термін роботи, а пошук колізій (можливих збігів результату від різних вихідних даних) дуже ускладнений. Саме такі функції використовують для зберігання в БД паролів (SH1, SH2, MD5) та іншої цінної інформації.

3. Функція, призначена для створення ефективної структури даних

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

Давайте спробуємо зрозуміти що таке складність мережі, якою лякають всіх нових Майнер і що це за такий хешрейт мережі.

Зараз дуже багато чатів по Майнінг криптовалюта і по трейдингу. Кожне питання новачка «який ASIC купити або яку ферму зібрати» супроводжується відповіддю ... «Та ти подивися як росте складність мережі і не думай навіть сунутися в цю справу!»

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

У мережі кожної криптовалюта є такий параметр, як «час створення блоку». У випадку з Musicoin це 15 секунд. Кожен 15 секунд один з Майнер повинен знаходити рішення для створення блоку.

Як утримати цей параметр в 15 секунд, незалежно від кількості Майнер які підключені до мережі? Адже, якщо Майнер багато, вони будуть знаходити блоки занадто часто (ось приклад порожнього блоку в мережі UBIQ http://www.ubiq.cc/block/212214), а якщо Майнер мало, то блоки будуть перебувати рідко і транзакції мережі йтимуть дуже довго.

За перебування 1 блоку в мережі Musicoin майнер або пул (багато Майнер разом) отримують 309 монет Musicoin \u003d $ 13 за сьогоднішнім курсом.

Відступ. У мережі Ефіріум за перебування одного блоку платять 5 ETH \u003d $ 1900 в мережі Ефіріум класик 5 ETC \u003d $ 75. Але, на жаль, і складність і хешрейт мереж в цих монетах в рази більше.

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

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

Винагорода Майнер отримують в монетах самої мережі, але все Майнер люблять хороші машини, Їжу і ганчірки. Тому для них важливо скільки це в доларах США, адже якщо ціна монети виросла на біржі, то і цінність винагороди за перебування блока стала більше в горезвісних доларах США.

Днями, 27 серпня (див. Графік вище) ціна монетки musicoin виросла в рази, Майнер які були зайняті Майнінг монет Zcash, Ефіріум, Monero ... ахнули в передчутті більше прибутку і переключили свої ферми на монетку musicoin. При цьому сама мережа musicoin, зрозуміло, відреагувала різким зростанням складності.

Складність вимірюється в хешах (зазвичай террахешах TH), в застосуванні до Майнінг, це одиниця виконаної роботи. Потужність мережі (кількість Майнер) вимірюється в хешах в секунду (TH / s). Мережа сама підлаштовує складність таким чином, щоб Складність / потужність мережі \u003d час до наступного блоку (у випадку з Musicoin 15 секунд).

27 серпня до зльоту ціни Складність мережі була: 7.5 TH в середньому, а Хешрейт мережі: 500 GH / s (приблизно 16000 відеокарт), то після зльоту ціни Хешрейт мережі виріс до: 1.12 TH / s (1120 GH / s) (приблизно 35000 відеокарт), а складність при цьому злетіла до 16.728 TH.

У підсумку прибуток ферми, яка видобувала монету ДО зльоту ціни і ПІСЛЯ зльоту ціни не змінилася. Ферма стала видобувати менше монет, але за більшою ціною (не важливо ферма це або цілий пул ферм).

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

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

Власне, висновок: Давайте уявимо, що є тільки одна валюта Ефіріум. Хешрейт мережі Ефіріум постійно зростає, приходять все нові і нові Майнер. Якщо курс Ефіріум буде падати, а кількість Майнер буде незмінною (або ще гірше буде рости), Майнінг прийде до рівня розетки (скільки намайніл $, стільки заплатив за електрику $). У цій ситуації ферми почнуть вимикати і продавати, складність почне падати, а доходи знову зростати.

Виживає сильніший і той, у кого є гроші іноді чекати і Майн на розетку.



Сподобалася стаття? поділіться їй