Що особливого у криптографії


12

В алгоритмі крихітного шифрування :

Для запобігання простих атак, заснованих на симетрії раундів, використовуються різні кратні магічні константи. Чарівна константа, 2654435769 або 9E3779B9 16 , вибрана як , де ϕ золоте співвідношення.232/ϕ

Які властивості мають є , що робить його корисним в цьому контексті?232/ϕ


1
Можливо, відповідні: en.wikipedia.org/wiki/Nothing_up_my_sleeve_number
Карл

Відповіді:


11

AFAIK, такі "магічні" значення мають такі дві властивості:

  1. Вони якось унікальні, і виглядають випадково.
  2. Вони можуть брати участь в алгебраїчних операціях неодноразово; тобто навіть після застосування певної конкретної операції (скажімо, множення чи експоненції) багато разів, "магічне" значення все ще здатне генерувати нові значення.

Ви можете знайти подібний випадок у MD5 . Розглянемо наступний рядок:

k[i] := floor(abs(sin(i + 1)) × (2 pow 32))

Тут sin(i + 1)покликаний генерувати магічні значення; які є унікальними, випадковими на вигляд, і можуть працювати багато людей i. (Власне, це iдіапазон від 0..63).

Редагувати: Читаючи оригінальний документ про TEA , ви розумієте, що відповідь, подана "Стівеном Стадницьким", є правильною. Зауважте, що магічна константа - це ім'я дельта:

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

Оскільки використовується лише 32 кратні дельти (по одному на кожен раунд), не дивно, що алгоритм не дуже чутливий до будь-якої конкретної дельти. (Див. Відповідь Стівена Стадницького для отримання додаткової інформації.)

Редагувати 2: Між іншим, MD4 використовує квадратні корені 2 (0x5a827999) та 3 (0x6ed9eba1) як "магічні" константи у своїх операціях. Розділ 5.4.4 книги Мережева безпека: приватне спілкування в суспільному світі це добре пояснює:

Щоб показати, що дизайнери навмисно не обирали діаболічне значення константи, константа базується на квадратному корені 2.

Це пояснення те саме, що було сказано нижче в коментарі Жиля.


Звучить розумно. Тоді б 2 ^ 32 / pi або 2 ^ 32 / sqrt (2) спрацювали так само добре?

@Tim: Я думаю, що так, але важливо подвоїти перевірку нових магічних чисел у контексті внутрішніх операцій TEA.
MS Dousti

5
Крім того, причиною вибору математичної константи на зразок 2 ^ 32 / phi, а не випадковим чином генерованого значення з прийнятними властивостями, є надання шаблону впевненості, що це не значення, вибране для додаткових нерозкритих властивостей - значення, що знаходиться в задньому плані .
Жиль "ТАК - перестань бути злим"

2
@Gilles, насправді, їх навіть називають "нічого до мого рукаву" з цієї причини, див. En.wikipedia.org/wiki/Nothing_up_my_sleeve_number
Henno Brandsma

12

φnφφ{nφ}{nα}α

Cπ=232/π=1367130551(355Cπ)mod232=41157Cφ=232/φ=2654435769n|(nCφ)mod232|216n=28657XnXn+k лінійного генератора конгрурентних випадкових чисел для деякого невеликого ; Здебільшого, це фольклорна чорна магія, що базується більше на інтуїції, що "малі кратні з цього числа малі мода будуть поганими", ніж на будь-яких конкретних теоретичних результатах.k232


1
Sadeq: "mod 1" відноситься до дробової частини кратних - у цьому випадку це були б [.62, .24, .85, .47, .09, .71, .33, .94, .56,. 18]. Рівнорозподіл в межах означає, що будь-який підінтервал [a, b] з [0, 1] містить очікувану частку (ba) цих значень; в той час як виявляється, що дробові частини кратних будь-якого ірраціонального числа рівномірно розподіляються на [0, 1], ті, що мають відношення золотого відношення, наближаються до того, що розподіляється навіть швидше, ніж будь-яке інше число; вони не «збиваються» на одиничному інтервалі.
Стівен Стадницький

8
πНаприклад, близьке наближення до 355/113 означає, що буде набагато ближче до цілого числа, ніж "повинно бути", і це відображається як кластеризація дробових частин його значень; буде винятково близьким до . Золоте співвідношення не має таких гарних наближень; всі його наближення "максимально далекі" від нього. ( en.wikipedia.org/wiki/… висвітлює це)113π{(n+113)π}{nπ}
Стівен Стадницький

8
це дуже акуратне властивість золотого співвідношення
Суреш Венкат

2
Дякую за чудовий опис. Це було справді чудово! Чи є у вас коментарі k[i], як визначено в MD5? (Дивіться мою відповідь вище.)
MS Dousti

2
На жаль, я цього не роблю; - єдине, що спадає на думку, - це те, що вони можуть бути обрані для наближеної лінійної незалежності, оскільки функції лінійно незалежні через - але я не знаю жодної причини вважати, що саме цей набір значень повинен привести до відносно великих значень для в будь-якому лінійному відношенні . sin(nx)xaiΣaik[i]=0
Стівен Стадницький
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.