90 likes | 257 Views
Други потокови шифри и реални генератори на случайни последователности. 1. RC4
E N D
Други потокови шифри и реални генератори на случайни последователности 1. RC4 Ключовият поток е независим от явния текст. Има 8 * 8 S-бокс: S0, S1,..., S255. входовете са една пермутация на числа от 0 до 255, като пермутацията е една функция на един променлив по дължина ключ. Има два брояча i и j, инициализирани от 0. За да се генерира случаен байт се прави следното: i = (i + 1) mod 256 j = (j + Si) mod 256 swap Si and Sj t = (Si + Sj) mod 256 K = St Байтът K се подлага на XOR с явния текст за да се получи шифрования текст. Шифрирането е 10 пъти по-бързо от това на DES. Инициализацията на S-бокса е също лесна: изпълва се линейно : S0 = 0, S1 = 1,..., S255 = 255. Изпълва се 256-байта матрица с ключ, повтаряйки ключа за да се запълни матрицата : K0, K1,..., K255. прави се j =0; тогава for i = 0 to 255: j = (j + Si + Ki) mod 256 swap Si and Sj
Други потокови шифри и реални генератори на случайни последователностиПродължение 2. SEAL Алгоритъмът е оптимизиран за 32—битови процесори и са необходими 32-битови регистри и cache от няколко колобайта. Pseudo-random Function Family Една нова особеност на SEAL е че не е традиционен потоков шифър, а pseudo-random function family. Даден е 160-bit ключ k, и едно 32-bit n, SEAL разтегля n до L-bit стринг k(n). L може да бъде коя и да е стойност по-малка от 64 кВ. SEAL се предполага, че е има отличително качество при k избрано случайно, тогава k(n) ще бъде изчислително неразличима от една случайна L-bit функция от n. Описание на SEAL Три таблици за получаване на ключ - R, S и T, задвижват алгоритъма.Предварителна стъпка определя ключа k, от таблиците. Таблица T е един 9 * 32 bit S-box. SEAL също употребява 32-битови регистри A, B, C и D, чиито начални стойности са определени от n и k- изведено от таблици R и T. Тези регистри могат да се модифицират през различните итерации - всяка една включва по 8 рунда. На всеки рунд 9 бита от първите регистри (или A, B, C или D) се употребяват за да индексират в таблица T. Стойността, получена от T се прибавя или подлага на XOR със съдържанието на втория регистър : отново един от A, B, C или D. Първият регистър се ротира на 9 позиции. В същия рунд вторият регистър се подлага на сумиране или на XOR (сега изместен) първи регистър. След 8 рунда като този A, B, C и D се прибавят към потока на ключа, всеки маскиран отначало чрез прибавяне или XOR с дума от S. Итерацията завършва с прибавяне към A и C допълнителни стойности зависими от n, n1, n2, n3, n4 – по-точно които зависят от номера на итерацията.
Други потокови шифри и реални генератори на случайни последователностиПродължение 3. WAKE WAKE е алгоритъм за автоматично шифриране на дума. Той произвежда поток от 32-битови думи, които се подлагат на XOR с потока на явния текст, за да се получи шифрирания текст или се подлага на XOR с потока на шифрования текст за да даде явния текст. WAKE използва предишната шифрована дума за да генерира следващ. Използва се също един S-box със 256 32-bit стойности. S-box има специални свойства: най- старшият байт от всички части/единици е една пермутация на всички възможни байтове и трите най-младши байта са случайни. Първо се генерират S-box входовете - Si от ключа. След това се инициализират 4 регистъра с ключа или с друг ключ: a0, b0, c0, and d0. За да се генерира 32-bit поток от ключови думи Ki: Ki = di Шифрованата дума Ci е получена от явния текст Pi е подложена на XOR с Ki. Тогава се обновяват 4-те регистъра: ai+1 = M(ai,di) bi+1 = M(bi,ai+1) ci+1 = M(ci,bi+1) di+1 = M(di,ci+1) Функцията M е M(x,y) = (x + y) >> 8 ⊕ S(x+y) ^ 255
Други потокови шифри и реални генератори на случайни последователностиПродължение Схемата на WAKE е показана по-долу. 4. Обратна връзка с Carry изместващи регистри (FCSR ) FCSR е подобен на LFSR. И двата имат изместващи регистри и функция на о.в., но разликата е, че FCSR има също един carry – регистър. Вместо употреба на XOR всички битове в тап-последователността събират битовете заедно и добавят съдържанието в carry-регистър. Резултатът по mod 2 става нов бит. Резултатът разделен на две става ново съдържание на carry-регистъра.
Други потокови шифри и реални генератори на случайни последователностиПродължение Shift Register Carry Register 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 Максималният период на FCSR не е 2n - 1, където n е дължината на изместващия регистър. Максималният период е q - 1, където q се нарича connection integer. Това число дава тап-последователността и се определя от: q = 2q1 + 22q2 + 24q4 +...+ 2nqn - 1 . В горния пример q = 2*0 + 4*1 + 8*1 - 1 = 11. И 11 е просто число на 2 като примитивен корен. Максималният период е 10. 5. Потокови шифри, употребяващи FCSR Cascade Generators Има два на чина на употреба на FCSR в каскадните генератори: — FCSR каскада - Gollmann каскада с FCSR вмести LFSR; — LFSR/FCSR каскада - Gollmann каскада с редуващи се в генератора LFSR и FCSR.
Други потокови шифри и реални генератори на случайни последователностиПродължение FCSR комбинирани генератори — FCSR Parity Generator. — LFSR/FCSR Parity Generator. — FCSR Threshold Generator. — LFSR/FCSR Threshold Generator. — FCSR Summation Generator. — LFSR/FCSR Summation Generator. LFSR/FCSR Summation/Parity каскади Редуващи се Stop-and-Go генератори
Други потокови шифри и реални генератори на случайни последователностиПродължение 6. Изместващи регистри с нелинейни о.в. 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 Изходната последователност е 0 1 1 0 1 0 0 0 0 0 0 0.... 7. Други потокови шифри. Pless генератор Клетъчен автоматичен генератор Обновяваща функция на едномерната матрицаa1, a2, a3,..., ak,..., an a‘k = ak-1 ⊕ (ak ⊦ ak+1)
Други потокови шифри и реални генератори на случайни последователностиПродължение 1/p генератор xt+1 = bxt mod p , където b е примитивен корен на mod p, когато p е просто число. 8. Системно-теоретичен подход в проектирането на потокови шифри. Има 4 подхода за проектирането: • System-theoretic approach; • Information-theoretic approach; • Complexity-theoretic approach; • Randomized approach. Критериите за проектирането са: • Long period • Linear complexity criteria • Statistical criteria • Diffusion • Nonlinearity criteria
Други потокови шифри и реални генератори на случайни последователностиПродължение 9. Подход на теория на сложността в проектирането на потокови шифри. Blum-Micali генератор Базира се трудно изчисляване на дискретните логаритми. Нека g е просто число и p да е също просто, но нечетно число. Един ключ x0, стартира процеса: xi+1 = gxi mod p Изходът на генератора е 1, ако xi < (p - 1)/2, и 0 – в обратния случай. Ако p е достатъчно голямо, такова че е невъзможно да се определят дискретните логаритми mod p, тогава генераторът е секретен.