BLAKE3 1.0 криптографиялық хэш-функциясының анықтамалық іске асырылуының шығарылымы

BLAKE3 1.0 криптографиялық хэш функциясының анықтамалық іске асырылуы шығарылды, ол SHA-3 деңгейінде сенімділікті қамтамасыз ете отырып, хэшті есептеудің өте жоғары өнімділігімен ерекшеленеді. 16 КБ файл үшін хэш генерациялау сынағы кезінде 3 биттік кілті бар BLAKE256 SHA3-256-дан 17 есеге, SHA-256-дан 14 есеге, SHA-512-ден 9 есеге, SHA-1-ден 6 есеге және BLAKE2b - 5 рет. Деректердің өте үлкен көлемін өңдеу кезінде айтарлықтай бос орын қалады, мысалы, 3 ГБ кездейсоқ деректерге хэшті есептеу кезінде BLAKE256 SHA-8 қарағанда 1 есе жылдамырақ болды. BLAKE3 анықтамалық іске асыру коды C және Rust нұсқаларында қос қоғамдық домен (CC0) және Apache 2.0 лицензиясы бойынша қол жетімді.

BLAKE3 1.0 криптографиялық хэш-функциясының анықтамалық іске асырылуының шығарылымы

Хэш функциясы файлдардың тұтастығын тексеру, хабардың аутентификациясы және криптографиялық цифрлық қолтаңбалар үшін деректерді жасау сияқты қолданбаларға арналған. BLAKE3 парольдерді хэштеуге арналмаған, себебі ол хэштерді мүмкіндігінше тез есептеуге бағытталған (парольдер үшін yescrypt, bcrypt, scrypt немесе Argon2 баяу хэш функцияларын пайдалану ұсынылады). Қарастырылып отырған хэш функциясы хэштелген деректердің өлшеміне сезімтал емес және соқтығысты таңдау мен алдын ала кескінді табу шабуылдарынан қорғалған.

Алгоритмді криптографияның белгілі сарапшылары (Джек О'Коннор, Жан-Филипп Аумассон, Сэмюэл Невес, Зооко Вилкокс-О'Херн) әзірледі және BLAKE2 алгоритмін әзірлеуді жалғастыруда және блоктық тізбек ағашын кодтау үшін Bao механизмін пайдаланады. . BLAKE2 (BLAKE2b, BLAKE2s) айырмашылығы, BLAKE3 бит тереңдігі мен хэш өлшеміне байланысты емес, барлық платформалар үшін бір алгоритмді ұсынады.

Жоғары өнімділікке раундтардың санын 10-нан 7-ге дейін азайту және блоктарды 1 КБ бөліктерінде бөлек хэштеу арқылы қол жеткізілді. Жасаушылардың айтуынша, олар сенімділіктің бірдей деңгейін сақтай отырып, 7-ның орнына 10 айналыммен өтуге болатынына сенімді математикалық дәлел тапты (анық болу үшін жемістерді араластырғышта араластыру арқылы мысал келтіруге болады - 7 секундтан кейін). жеміс толығымен араластырылған және қосымша 3 секунд қоспаның консистенциясына әсер етпейді). Дегенмен, кейбір зерттеушілер хэштерге барлық белгілі шабуылдарға қарсы тұру үшін қазіргі уақытта 7 раунд жеткілікті болса да, болашақта жаңа шабуылдар анықталған жағдайда қосымша 3 раунд пайдалы болуы мүмкін деп санайды.

Блоктарға бөлуге келетін болсақ, BLAKE3-те ағын 1 КБ бөліктерге бөлінеді және әрбір бөлік дербес хэштелген. Бөлшектердің хэштерінің негізінде екілік Merkle ағашының негізінде бір үлкен хэш құрылады. Бұл бөлім хэштерді есептеу кезінде деректерді өңдеуді параллельдеу мәселесін шешуге мүмкіндік береді - мысалы, 4 блоктың хэштерін бір уақытта есептеу үшін 4 ағынды SIMD нұсқауларын пайдалануға болады. Дәстүрлі SHA-* хэш функциялары деректерді дәйекті түрде өңдейді.

BLAKE3 мүмкіндіктері:

  • Жоғары өнімділік, BLAKE3 MD5, SHA-1, SHA-2, SHA-3 және BLAKE2 қарағанда айтарлықтай жылдамырақ.
  • Қауіпсіздік, оның ішінде SHA-2 сезімтал хабарды ұзарту шабуылдарына қарсы тұру;
  • SSE2, SSE4.1, AVX2, AVX-512 және NEON нұсқаулары үшін оңтайландырылған Rust нұсқасында қол жетімді.
  • Жіптердің және SIMD арналарының кез келген саны бойынша есептеулерді параллельизациялауды қамтамасыз ету.
  • Ағындарды біртіндеп жаңарту және тексерілген өңдеу мүмкіндігі;
  • PRF, MAC, KDF, XOF режимдерінде және кәдімгі хэш ретінде пайдалану;
  • Барлық архитектуралар үшін x86-64 жүйелерінде де, 32-биттік ARM процессорларында да жылдам жұмыс істейтін жалғыз алгоритм.

BLAKE3 пен BLAKE2 арасындағы негізгі айырмашылықтар:

  • Хэш есептеулерінде шексіз параллелизмге мүмкіндік беретін екілік ағаш құрылымын пайдалану.
  • Раундтардың санын 10-нан 7-ге дейін азайту.
  • Жұмыстың үш режимі: хэштеу, кілтпен хэштеу (HMAC) және кілтті генерациялау (KDF).
  • Кілтпен хэштеу кезінде негізгі параметрлер блогы бұрын алып жатқан аумақты пайдалануға байланысты қосымша шығын болмайды.
  • Параллельизацияға және позициялауға (іздеу) мүмкіндік беретін кеңейтілген нәтиже (XOF, Extendable Output Function) бар функция түріндегі кірістірілген жұмыс механизмі.

Ақпарат көзі: opennet.ru

пікір қалдыру