YouTube
Promo
banner
Promo
banner

Криптографско хеширане: Ръководство за начинаещи

Криптографското хеширане е неразделна част от спектъра на киберсигурността. Всъщност той се използва широко в различни технологии, включително биткойн и други протоколи за криптовалута.

В тази статия ще преминем през хеширане в криптовалута, където ще научим за криптографските хешове, техните примери, история и т.н..

Статията е насочена към тези, които искат да научат по-технически възгледи по темата. Не се страхувайте обаче, ако не сте технически, тъй като ние ще се опитаме да опростим концепцията по възможно най-добрия начин.

Криптографията винаги е била в основата на компютърните науки. Без него никога няма да можем да имаме сигурна комуникация или споделяне на информация. Най-добре се определя като метод за защита на информацията.

 

Какво е криптографско хеширане?

В криптографията хеширането е метод, който се използва за преобразуване на данни в уникален низ от текст. Данните се трансформират в много ефективен метод, при който данните се хешират за секунди. Освен това няма ограничение за типа данни или техния размер – хеширането работи върху всички тях.

И така, какво прави хеширането толкова популярно и уникално? Това е така, защото не може да се обърне!

Да, това е еднопосочна функция (криптографска хеш функция) и е проектирана да работи само така.

В еднопосочна функция данните, след като бъдат въведени в алгоритъма за хеширане, извеждат уникален низ. Уникалният низ обаче не може да се използва за дешифриране на оригиналните данни, като ги върне обратно към функцията за хеширане. Този вид полезност и функция прави криптографското хеширане толкова полезно за защита на информация и данни.

Също така, проверете

  • Как да изградим блокчейн в Python
  • Ръководство за начинаещи: Използване на криптография в криптовалута

Има още една функция, която се прилага за хеш метода. Всяко дадено парче данни ще даде същия хеш изход.

Тези функции го правят много полезен в криптовалути като биткойн. 

 

Как работи хеширането?

За да разберем по-добре хеширането, трябва да научим и как работи. Хеширането е математическа операция, която отнема по-малко изчислителна мощност. Въпреки това, изчислителната мощност, необходима за обръщане, е скъпа и следователно не може да бъде направена от настоящото поколение компютри.

Квантовите компютри обаче могат да обърнат компютърното хеширане. Но вече има методи за хеширане, които са квантово устойчиви.

За целите на хеширането има много използвани алгоритми. Това включва следното.

  • Съобщение директно (MD5)
  • Функция за сигурно хеширане (SHA1)
  • Функция за защитено хеширане (SHA-256)

Не всички функции за хеширане са 100% сигурни. Например, SHA1 е лесен за разбиване и следователно не се препоръчва за практическа употреба. Една от най-често използваните хеширащи функции включва MD5 и SHA-256.

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

 

Къде се използва най-вече хеширането?

Хеширането се използва най-вече за пароли. Нека вземем пример, за да го разберем.

Когато създавате имейл акаунт, вашият доставчик на електронна поща ще ви попита имейл адреса и паролата. Ясно е, че те не запазват имейла и паролата в обикновен обикновен текст. Ако го направят, те компрометират поверителността и сигурността на вашата информация. За да се уверят, че е трудно да се дешифрира тази информация, те използват хеш функцията на вашата парола, така че дори всеки вътрешно работещ при доставчика на имейли да не може да я дешифрира. 

Така че, ако се опитате да влезете следващия път, хеш функцията го дешифрира и съвпада със запазения и по този начин ви дава достъп до вашия имейл.

Други употреби включват генериране и проверка на подписи и проверки на целостта на файловете.

Разбира се, има и други приложения за хеширане. Друго най-популярно използване на хеширане са криптовалутите, които обсъждаме по-долу.

 

Как се използва хеширането в криптовалути

Хеширането се използва най-вече в криптовалути за добивни цели. Така че, в Bitcoin, добивът е процес на проверка на хеширащите функции на SHA-256. Това означава, че хеширането може да се използва за записване на нови транзакции, връщането им към предишния блок и маркирането им по време

Казва се, че мрежата постига консенсус, когато към блокчейна се добави нов блок. По този начин той потвърждава транзакциите, съдържащи се в блока. Освен това добавянето прави невъзможно някой да го обърне. Всичко това е възможно поради хеширане и затова се използва за поддържане на целостта на блокчейна.

Биткойн използва метода на консенсус Proof-of-Work, който в замяна използва еднопосочна хеш функция SHA-256.

 

Пример за функция на хеширане

Сега, нека да разгледаме пример за криптографска хеш функция.

За да улесним нас и вас, ще използваме наличните онлайн SHA-256 инструменти.

Ето линка за него: SHA256 Онлайн

Сега, ако въведете 101Blockchains като вход, той ще даде следния изход.

Вход: 101Blockchains.com

Изход: fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Използване на хеш функция SHA256

Сега, ако поставите прост „Hello World“ като вход, той ще даде следния изход.

Вход: Здравей свят

Изход: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Сред двата изхода ще видите, че и двете изходни стойности са с една и съща дължина, т.е. 256 бита, т.е..

Сега, нека въведем 101blockchain във входа. Забележете, че премахнахме „s“ от 101Blockchains, който беше използван за генериране на първия хеш.

Вход: 101 Блокчейн

Изход: c4d67db72f3d18eaca2e8e8498271de353d25874e4448be4887f2563576c6fe8

Ако го сравните с първия ни хеш изход, ще видите огромна разлика, дори когато премахнахме само една буква от входа.

И така, какво научихме от примера? Нека обобщим по-долу.

  • Всички изходи са с еднаква дължина
  • Малките промени във входа водят до напълно различни изходи
  • Не е възможно да се обърнат изходите към входове.

Свойства на криптографската хеш функция

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

Детерминистичен

Известно е, че криптографските хеш функции са детерминирани. Това означава, че за даден вход изходът ще бъде същият. С по-прости думи, ако поставите един и същ вход чрез хеш функцията за стотен път, изходът ще бъде еднакъв във всички случаи. 

Детерминираното свойство е важно, тъй като дава възможност за концепцията за еднопосочна функция. Ако не работи по този начин, тогава би било невъзможно да се използва за хеширане на информация. Също така произволен изход за същия вход може да направи целия процес безполезен.

 

Устойчив на изображения

Криптографската хеш функция е устойчива на предварително изображение, което означава, че веднъж генерираната хеш стойност не разкрива нищо за входа.

Това е важна характеристика, тъй като дава много важното.

 

Ефективна в изчисление

Хеш функциите са изчислително ефективни. Това означава, че независимо от това колко дълъг и сложен е входът, той бързо ще генерира хеш изхода. Ефективността е добре дошла за услуги, които искат да използват хеш функция за съхраняване на чувствителна информация. Въпреки това, той е изчислително ефективен само по един начин, т.е.от вход към изход. Тъй като той не е обратим, не е възможно нито един компютър да го проектира обратно.

Но ако искате да говорите за числа, може да отнеме всяка съвременна компютърна година, за да отгатнете входа от дадена хеш стойност. Освен това, с модерните компютри, които стават мощни с всеки изминал ден, хеш функциите стават по-ефективни от всякога.

 

Не може да бъде обърнато проектирано

Хеш функциите не могат да бъдат обърнати. Това означава, че е сигурен. Както трябва да знаете, че криптографските хеш функции се създават с предпоставка за необратими функции. Математическите уравнения и процес, които се използват за създаване на изхода, са опростени и не могат да бъдат обърнати. В техническо отношение хеш функцията не поддържа обратната операция.

 

Устойчив на сблъсък

Устойчивостта на сблъсък е последното свойство, което ще обсъдим. Това свойство гарантира, че няма два различни входа да произвеждат еднакви изходи.

Както вече трябваше да знаете, че входът може да бъде с всякаква дължина. По тази дефиниция входът може да бъде от безкрайни числа. Сега изходът, който е с фиксирана дължина, трябва да бъде различен всеки път. Ограничението на фиксирана дължина също означава, че изходите са с крайни числа – въпреки че крайното число е с огромна стойност. Това представлява математическо предизвикателство да се разделят изходите за всеки вход там. 

Добрата новина е, че повечето от популярните хеш функции са устойчиви на сблъсък.

 

Популярни класове хеш – Списък на алгоритми за хеширане

Това ни води към следващия раздел, където обсъждаме популярни класове хеш. Ще изброим три хеш класа, които са доста популярни сред сферата на криптографията.

  • Дайджест на съобщението (MD)
  • Функция за сигурно хеширане (SHF)
  • RIPE Message Direct (RIPEMD)

Да ги разгледаме един по един.

Дайджест на съобщенията (MD)

Message Digest е семейство от хеш функции, които се използват през цялата история на интернет.

Семейството се състои от хеш функции като MD2, MD4, MD6 и най-популярните MD5. Всички MD хеш функции са 128-битови хеш функции, което означава, че размерите на дайджест са 128 бита.

Както обсъждахме по-рано, хеш функциите на MD5 дайджест се използват от доставчиците на софтуер, за да проверят целостта на файловете, изтеглени от потребителите чрез файлови сървъри. За да работи, доставчикът дава на изтеглящия достъп до MD5 контролна сума за файловете. За да се провери целостта на файла, се използва контролна сума MD5, която изчислява контролната сума и след това се проверява с предоставената хеш стойност. Ако стойността е различна от проверката на целостта на споменатия файл, е неуспешно и потребителят трябва да изтегли целия или част от файла.

MD5 не е толкова сигурен, колкото другите хеширащи функции. През 2004 г. беше извършена аналитична атака върху хеш функцията, която беше извършена само за един час. Това беше направено с помощта на компютърен клъстер. Това направи MD не толкова полезен за осигуряване на информация и следователно се използва за задачи като проверка на целостта на файла.

Ако се интересувате да научите повече за MD5, разгледайте страницата на Wiki за MD5 – MD5.

 

Функция за защитено хеширане (SHA)

Функциите Secure Hash са друго семейство хеш функции, които са доста популярни. Той е разработен и публикуван от Националния институт за стандарти и технологии (NIST). Те пуснаха четири версии на SHA, включително SHA-0, SHA-1, SHA-2 и SHA-3.

Както трябваше да се досетите, по-късните версии коригират някои проблеми или слабости при по-старите версии на SHA. Например SHA-1 беше пуснат, след като бе открита слабостта на SHA-0. SHA-1 е издаден през 1995г.

SHA-1 направи собственото си име, след като беше пуснат. По това време се използва от различни приложения, включително Secure Socket Layer (SSL).

С течение на времето обаче експлоататорите откриват и сблъсъци SHA-1, които го правят безполезен. NIST излезе със семейството си защитени хеш функции SHA-2, които използваха четири SHA варианта, включително SHA-256, SHA-224, SHA-512 и SHA-384. В тези четири варианта два бяха ядрото, включително SHA-256 и SHA-512. Разликата между тях е, че SHA-512 използва 64-байтови думи, докато SHA-256 използва само 32-байтови думи. 

Семейството хеш-функции на SHA-2 все още се използва широко. Имаше обаче и SHA-3, който беше разработен и пуснат от дизайнери, които не са от NSA, по време на публично състезание през 2012 г. По-рано беше известен като Keccak. Предимствата на Keccak включват по-добра устойчивост на атака и ефективна производителност.

 

RIPE Message Direct (RIPEMD)

RIPE Message Direct (RIPEMD) е семейство хеш функции, пуснати през 1992 г. Също така, RIPE означава RACE Integrity Primitive Evaluations.

Той е проектиран и управляван от отворената изследователска общност. Сред семейството има пет функции, включително RIPEMD, RIPEMD-160, RIPEMD-128, RIPEMD-320 и RIPEMD-256. Най-често използваната функция обаче е RIPEMD-160.

Дизайнът на RIPEMD се основава на Message Direct.

 

Разлика между хеширане, криптиране и осоляване

В този раздел ще разгледаме накратко разликата между хеширане, криптиране и осоляване.

Нека започнем с криптирането.

Шифроването е процес на кодиране на оригиналната информация с помощта на публичния ключ и след това отключването й с помощта на частен ключ. Това е двупосочна функция.

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

Последният термин е „осоляване“.

Осоляването е подобно на хеширането, но тук към паролата се добавя уникална стойност, за да се направи различна хеш стойност. Тук стойността на солта трябва да бъде уникална и да остане скрита. 

 

Заключение

Това ни води до края на нашето хеширане в криптографията. Опитахме се да разберем хеширането, като първо научихме какво предлага, а след това бързо научихме как работи, неговите видове и т.н.!

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

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

И така, какво мислите за хеширането? Коментирайте по-долу и ни уведомете.