У деяких випадках квантові комп'ютери можуть мати певну перевагу перед класичними. Найбільш чудовим прикладом є Алгоритм Шор, який може множити велику кількість за багаточлен (хоча класично найкращий алгоритм займає експоненціальний час). Це повністю розбиває схеми типу RSA, засновані на твердості факторизації.
Це не обов'язково стосується хеш-функцій. Спочатку нам потрібно визначити, що означає зламати хеш-функцію. Один із способів розірвати це називається попередньою атакою зображення : ви даєте мені значення хеша , і мені потрібно знайти повідомлення m таке, що хеш ( m ) = v . Інша атака - це атака зіткнення , в якій ви нічого не даєте, і мені потрібно придумати два різні повідомлення m 1 , m 2, які мають однаковий хеш- хеш ( m 1 ) = хеш ( m 2 )vмхеш( m ) = vм1, м2хеш( м1) = хеш( м2). Це простіше, ніж знайти преймідж, оскільки я не пов'язаний з конкретним .v
Що можуть робити квантові комп'ютери? Основний результат - алгоритм пошуку Гровера : метод для квантового комп'ютера для пошуку в несортованій базі даних розміром з часом O ( √N(у той час як класично це очікуватиме часуN/2).O ( N--√)N/ 2
За допомогою алгоритму Гровера, пошук переваги хеш-функції, вихід якої -бітів, займає час O ( 2 k / 2 ) , а не O ( 2 k ) .кО ( 2к / 2)О ( 2к)
Це проблема ? Не обов'язково. Функції хешу розроблені так, що час вважається "безпечним" (іншими словами, хеш-дизайнери завжди подвоюють k ). Це пов’язано з парадоксом Дня народження, з яким можна знайти зіткнення за часом O ( 2 к / 2 ) класичним комп’ютером.2к / 2кО ( 2к / 2)
Приємно в алгоритмі Гровера, що він є оптимальним - кожен інший квантовий алгоритм для пошуку елемента в несортованій базі даних буде працювати за час .Ω ( N--√)
Чи можуть квантові комп'ютери виконувати кращі атаки зіткнення ? Насправді я не впевнений у цьому. Алгоритм Гроувера може бути розширений таким чином, що якщо є елементів (тобто попередніх зображень), час його пошуку скорочується до O ( √т. Але це не дає зіткнення - запуск алгоритму знову може повернути той самий преймідж. З іншого боку, якщо ми вибрамоm1навмання, а потім використаємо Алгоритм Гровера, цілком ймовірно, що він поверне інше повідомлення. Я не впевнений, чи це дає кращі атаки.O ( N/ т----√)м1
(це дає відповідь на більш загальне питання, не обмежуючи комп'ютер 20 кубітами, що буде недостатньо для того, щоб зламати поточні 1024-бітні хеші).