Ой хлопче, з чого почати.
Великий - це, безумовно, чорні коробки. Дослідники криптовалюти метушаться про такі речі, як проблема незрозумілості моделі Random Oracle Model. Дослідники з безпеки знаходяться в іншому крайньому плані і хотіли б, щоб усе було корисно як чорний ящик, а не лише хеш-функції. Це постійне джерело напруги.
Для ілюстрації, якщо ви подивитеся на формальний аналіз протоколів безпеки, наприклад, логіку BAN , ви побачите, що симетричне шифрування трактується як "ідеальний блок-шифр". Тут є тонка відмінність - логіка BAN (та інші методи аналізу протоколів) не претендує на підтвердження безпеки; скоріше, це прийоми пошуку недоліків. Тому не зовсім вірно, що тут задіяна ідеальна модель шифру. Однак емпірично вірно, що більша частина аналізу безпеки має тенденцію обмежуватися формальною моделлю, тому ефект той самий.
Ми ще навіть не говорили про практикуючих. Ці хлопці, як правило, навіть не здогадуються, що криптовалюти не мають бути чорними скриньками, і я сумніваюся, що це колись зміниться - десятиліття спроб бити це в голову не змінило жодного значення.
Щоб побачити, наскільки погана проблема, розгляньте цю рекомендацію щодо безпеки щодо підробки підписів API. Помилка частково пов’язана з атакою подовження довжини в конструкції Merkle-Damgard (яка є дійсно базовою) і впливає на Flickr, DivShare, iContact, Mindmeister, Myxer, RememberTheMilk, Scribd, Vimeo, Voxel, Wizehhive та Zoomr. Автори відзначають, що це не повний перелік.
Я думаю, що практикуючі заслуговують на левову частку вини за цей сумний стан справ. З іншого боку, можливо, теоретикам криптовалют потрібно також переосмислити свою позицію. Їх лінія полягає в тому, що "чорні скриньки неможливо побудувати; ми навіть не збираємося намагатися". На що я кажу, оскільки очевидно, що ваші конструкції все-таки будуть використовуватись (неправильно) як чорні скриньки, чому б принаймні не спробувати зробити їх максимально наближеними до чорних коробок?
Стаття, яку Меркле-Дамгард переглянув, - чудовий приклад того, про що я говорю. Вони вивчають поняття безпеки, що "хеш-функція довільної довжини H повинна поводитись як випадковий оракул, коли будівельний блок фіксованої довжини розглядається як випадковий оракул або ідеальний блок-шифр". Цей вид теоретичних досліджень може бути надзвичайно корисним на практиці.
Тепер перейдемо до вашого прикладу оцінки схеми. Я прошу не погодитися з вашими міркуваннями. Це не так, як ви б взяли складений двійковий файл і сліпо перетворили його на ланцюг. Швидше, ви застосовуєте оцінку ланцюга лише до основної функції порівняння, яка зазвичай досить проста. Fairplay - це реалізація схеми оцінки. Мій колега, який працював з цим, каже мені, що це дивно швидко. Хоча це правда, що ефективність - це проблема з оцінкою ланцюга (і я не знаю реальних випадків, коли це було відхилено з цієї причини), це далеко не показник зупинки.
Друга причина, з якою я не погоджуюся з вами, полягає в тому, що якщо ви задумаєтесь про деякі типові сценарії реального життя, в яких, можливо, ви хочете здійснити необачне оцінювання ланцюга - наприклад, коли дві компанії розбираються, чи слід об'єднувати - обчислювальні витрати залучені тривіально порівняно із загальними зусиллями та бюджетом людини.
То чому тоді ніхто не використовує загальну оцінку безпечної функції на практиці? Чудове запитання. Це підводить мене до моєї другої різниці між теорією та практикою: довіра насправді існує на практиці! Не все потрібно робити в параноїдальній моделі. Набір проблем, які люди насправді хочуть вирішити за допомогою криптовалют, набагато, набагато менший, ніж те, що собі уявляють криптографи.
Я знаю когось, хто створив компанію, що намагається продавати захищені послуги з багатопартійних обчислень для корпоративних клієнтів. Вгадайте, що - ніхто цього не хотів. Те, як вони підходять до цих проблем, полягає в тому, щоб підписати контракт із зазначенням того, що ви можете, а що не можете зробити з даними, і що ви знищите дані після того, як будете використати їх за призначенням. Здебільшого це працює просто чудово.
Моє остаточне значення різниці між теорією та практикою - це щодо PKI. Криптовалюти часто скріплюють речення десь кажучи: "ми припускаємо PKI". На жаль, цифрові сертифікати для кінцевих користувачів (на відміну від веб-сайтів чи службовців у корпоративному контексті, де існує природна ієрархія) ніколи не реалізувалися. Цей класичний документ описує веселість, яка виникає, коли ви просите нормальних людей використовувати PGP. Мені кажуть, що з цього часу програмне забезпечення значно покращилося, але основні проблеми дизайну та архітектури та людські обмеження сьогодні сильно не відрізняються.
Я не думаю, що криптографи не повинні робити щось інакше як наслідок відсутності PKI у реальному світі, за винятком того, щоб усвідомлювати той факт, що це обмежує застосовність криптографічних протоколів у реальному світі. Я кинув це, бо це щось, що я намагаюся виправити.