Українська

Інструменти розробника · SHA калькулятор хешу

З'єднання-Дамгруд Експлуатована: Будівництво за SHA-1 і SHA-2

· Підземелля

Опубліковано ToolAcre · Редакція журналу

шемале256 криптографія веб-сайт

Діаграма показує вхідні блоки живлення в функції стиснення, що використовуються спільно з наповнювачем
Головна ToolAcre векторна ілюстрація

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

Вхідний, фіксований вихід — проблема, що має функцію, повинна вирішити першу

Функція має малювати довільний вхід для фіксованого виходу. Повідомлення про три байти і повідомлення про три мегабайти повинні одночасно виробляти 256 bits виходу для SHA-256. У хеші необхідно детермінувати, тому той же вхід завжди виробляє однаковий вихід. Вихід повинен виглядати випадковим чином; змінити один біт вводу слід грубо половину вихідного біта.

Вони є суперечливими вимогами першого погляду, тому що один швидкий алгоритм не може обробляти повідомлення про довільну довжину і виробляти рівномірний вихід фіксованої ширини. Конструкція Merkle-Damgård вирішує це, використовуючи функцію стиснення фіксованого розміру, багаторазово годуючи вихід кожного додатка в введення наступного. Ця конструкція використовується за допомогою SHA-1 і всі SHA-2 (SHA-256, SHA-384 і SHA-512).

Функція стиснення — фіксований міксер, який займає стан і блок і повертає новий стан

Функція стиснення є ядром криптографічного примітиву, що живлення Merkle-Damgård хеш. Він займає фіксовану величину стану, як правило 256 bits для SHA-256 або 512 bits для SHA-512, і фіксований розмір блоку введення, як правило 512 bits для SHA-256 або 1024 bits для SHA-512. Функція стиснення перемішує їх разом з використанням бітумних операцій, обертань і настільних зображень, що виробляє новий стан одного розміру. Ця функція повинна бути стійкий до зіткнення: знайти дві різні (держава, блок) пари, які виробляють однаковий вихід, повинні бути твердими.

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

Ланцюговий і ініціалізаційний вектор — як блоки харчуються між собою від фіксованого початкового стану

Вектор ініціалізації - фіксований початковий стан, підібраний ретельно, щоб уникнути симптомів або слабких сторін. Для SHA-256, IV вісім 32-розрядні слова, отримані з дробових частин квадратних коренів перших восьми основних чисел. Ці значення є довільними, але детерміністичними, тому кожна реалізація виробляє той же результат. Перший блок повідомлень змішується з ІV за допомогою функції стиснення, що виробляє новий стан. Другий блок повідомлень змішується з цією державою, виробляє інший новий стан, і так далі через кожен блок повідомлення.

Ця ланцюжок є важливою частиною: вихід одного блоку залежить від всіх попередніх блоків, тому зміна будь-якого біту будь-якого попереднього блоку змінює всі наступні блоки. За час обробки фінального блоку, держава містить інформацію про кожного біту входу. Падінг є трюком, що робить цей звук будівництва. Повідомлення не завжди ділиться рівномірно на блоки. Конструкція Merkle-Damgård використовує MD-strengthening: застосуйте один трохи до повідомлення, після чого застосуйте нулі до тих пір, поки не залишається повного блоку, після чого застосуйте початкову довжину повідомлення.

Накладка з довжиною повідомлення — чому MD-strengthening це те, що робить конструкцію звуком

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

Відкриті за часом, навіть якщо базова конструкція звучить. Розширення довжини є одним: атакуючий, який бачить перетравлення повідомлення, може продовжити повідомлення і обчислити дійсний дайджест для більш тривалого повідомлення, не знаючи нічого про вхід. Другі атаки попереднього зображення є ще одним: враховуючи повідомлення, з'ясувати інше повідомлення з тим же хешом легше, ніж це повинно бути для деяких видів повідомлень. Ці слабкості мотивували дизайн SHA-3, який використовує різний підхід, який називається конструюванням губок.

Довжина-пригода, що складається з накладних повідомлень; повне підтвердження безпеки поза репозиторійними доказами

Функція стиснення для SHA-256 бере на себе 256-бітний стан 32-бітні слова) і 512-блок. Використання операції 64 округи, кожен змішування стану з постійним і словом з блоку. Використання бітумних операцій: XOR, AND, NOT. Він використовує обертання і зсуви, які рухаються біти навколо без зміни, які встановлюють біти. Використовуються столики, які забезпечують нелінійне змішування, що XOR не можна досягнути.

SHA-512 використовує однакові конструкції, як SHA-256 але з 64-розрядні операції замість 32-розрядні операції. Стан 512 bits (висока) 64-бітні слова, і розмір блоку 1024 bits. Функція стиснення має 80 турів замість 64, і постійні і настільні образи відрізняються. Для SHA-384, функція стану та стиснення є такою ж, як SHA-512, але тільки перший 384 bits виводу кінцевого стану. Останні 128 bits викинути. Саме тому SHA-384 стійкий до розширення довжини.

Розширення довжини - перевірена межа з будівництвом; багатоколірність і SHA-3 мотиваційні вимоги

Безпека Merkle-Damgård hash залежить від декількох властивостей холдингу. Функція стиснення повинна бути стійкий до зіткнень, тому атакуючи його безпосередньо нездатний. Схема набивання повинна забезпечити, що різні повідомлення виробляють різні форми, тому кожен зіткнення у хеші повинен передбачати зіткнення функції стиснення. Розмір блоку і розмір держави повинні бути досить великими, що сила брюта нездатна. Широкий стан збільшує загальний простір пошуку, але ця стаття не прикріплює час підрахунку або дату техніко-економіки без інлайн-зниження та рецензованого джерела.

Якщо нападник знаходить слабкість в функції стиснення, або якщо квантові комп'ютери стають практичними і можуть шукати неструктурований простір в квадраті(2^п) час замість 2^n час, потім запаси безпеки erode. Слабість, яка мотивована SHA-3 не було перерви в функції стиснення, але питання про розширення довжини та інших структурних вразливостей. Складання губок дозволяє не публікувати повністю внутрішній стан.

Що це не криється — конкретні круглі функції SHA-256, вкрита окремою поштою

Як ручка по конструкції Merkle-Damgård кожен розмір введення є практичним наслідком його дизайну. Розділіть повідомлення в 512-розрядні блоки, накладка останнього блоку, процес кожного блоку через функцію стиснення в послідовності і виведення кінцевого стану. Для одноразового введення, наповнювач виробляє 512-розрядний блок (одна байт повідомлення, один біт наповнювача, 447 bits нулів, і 64 bits для довжини. Кількість компресій є числом 512-розрядні блоки, які пропорційно довжині повідомлення.

Кожен дайджест ToolAcre SHA має калькулятор виробництва. Про нас 64-характер SHA-256 травлення є остаточним 256-роздрукована держава в шістнадцятому. Про нас 128-характер SHA-512 травлення є остаточним 512-роздрукована держава в шістнадцятому. Про нас 96-характер SHA-384 дайджест перший 384 bits фіналу 512-бітний стан. За лаштунками забезпечує те, що кожен можливим повідомлення виробляє саме потрібну кількість блоків і потрібну ширину травлення. Це стандартний Merkle-Damgård будівництво, що працює в браузері.

Поспішайте: однаковий скелет за чотири алгоритми — кожен засвоюється ToolAcre SHA hh калькулятор виробництва поставляється з цієї конструкції

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

За останні роки компанія Merkle-Damgård використовує і формує фундамент найширших функцій хеш. SHA-1 і SHA-2 побудовані на цій конструкції, і багато розгорнутих систем спираються на їх виходи. Будівельна споруда, а не експериментальна, але історія не робить кожного використання безпечними; подовження довжини є одним документобігом. Розуміння цієї конструкції допомагає розробникам зрозуміти, чому існують певні властивості безпеки і чому існують певні вектори атаки.