След казуса с машините за гласуване решихме да разясним на прост език какво аджеба е хеш код и защо не е опасно да е публичен.
Какво е хеш функция?
Хеш функция е всяка функция, която може да се използва за съпоставяне на данни с произволен размер към стойности с фиксиран размер. Стойностите, върнати от хеш функция, се наричат хеш стойности, хеш кодове, дайджести или просто хешове. Стойностите обикновено се използват за индексиране на таблица с фиксиран размер, наречена хеш таблица. Използването на хеш функция за индексиране на хеш таблица се нарича хеширане или разпръснато адресиране на паметта.
Казано на обикновен език, един променлив по размер текст може да бъде пресъздаден като едно строго определено, съответстващо на текста число, наречено хеш (дроб), хеш стойност или извлечение (digest). Прилагането на хеш функция се нарича накратко „хеширане“. Или начин за представяне на огромно количество данни чрез уникален за тях код.
Хеш функциите и свързаните с тях хеш таблици се използват в приложения за съхранение и извличане на данни за достъп до данни за малко и почти постоянно време на извличане. Те изискват пространство за съхранение, само малко по-голямо от общото пространство, необходимо за самите данни или записи. Хеширането е ефективна от изчислителна гледна точка и място за съхранение форма на достъп до данни, която избягва непостоянното време за достъп на подредени и неподредени списъци и структурирани дървета, както и често експоненциалните изисквания за съхранение на директен достъп до пространствата на състоянието на големи или ключове с променлива дължина.
Пример от "живия" живот
Например, когато теглите файлове от интернет, заедно с тях човекът, който ги е качил, предоставя и публичен хеш код. Когато свърши изтеглянето, вие хеширате файла и програмата за хеширане изплюва хеш кода му. След това сравнявате този, който сте хеширали с публично предоставения, и така разбирате, че сте изтеглили точно същия файл, който е предоставил автора. А ако вашият хеш и публичният се разминават, значи някъде "по пътя", докато сте теглили файла, е имало външна намеса или е станала грешка и файлът, който сте изтеглили, не е същият, който авторът е качил.
По този начин например се проверяват .iso файлове (дискови изображения), когато теглите напълно безплатната операционна система Linux. В сайта до всеки линк за изтегляне има и публичен линк с хеш стойността на всеки от дисковете, за да можете да проверите дали сте изтеглили правилния файл, а не някой вирус или някой "бъгнат" файл.
И сега за казуса с машините
Относно хеш кодовете на машините за гласуване, техният генериран код служи за достоверно инсталиране на софтуера на машините, а също така се изписва на контролната разписка на машината и на всяка бюлетина. Софтуерът е заключен с ключ, който е генериран с паролите на трима от членовете на ЦИК. С други думи, кодът служи за проверка дали машината е инсталирана правилно и даже няма нужда да се проверява при всяко гласуване. След като веднъж е инсталирана правилно и на самата машина няма физическо устройство за свързване с интернет, съответно е невъзможно да бъде свързана към интернет, следователно този код може да бъде проверен веднъж и след това дори да го дадете на най-добрия хакер на света, единственото, което той ще успее да направи след доста време на декриптиране на ключа, е да види оригиналното съобщение за правилна инсталация на машината. Това е все едно да успеете да видите, че нещо работи добре и да получите листче хартия, на което пише „Инсталирана правилно“. Нито ще съдържа кодове за достъп, нито ако дори машината е свързана към интернет, ще получите достъп до нея.
С други думи - ако ще да започнете да раздавате хеш кода, изписан с огромни букви на опаковки от мляко, вафли и антифриз, дори да го излъчвате на всеки половин час по радиото и телевизията, няма никакво значение. Той е вид проверка дали всичко работи както трябва, която по никакъв начин не може да бъде експлоатирана.
Слушайте и гледайте новия подкаст на darik.bg „В тренда“ в YouTube, Instagram и TikTok
Най-интересните разговори от ефира на Дарик слушайте в подкаста на радиото в Soundcloud, Spotify, Apple Podcasts и Google Podcasts