1 / 11

Генератори на псевдослучайни последователности и потокови шифри

Генератори на псевдослучайни последователности и потокови шифри. 1 . Генератори с линейно съответствие/сходство Linear congruential generators са генератори на псевдослучайни последователности (ГПСП) от вида X n = ( aX n-1 + b ) mod m ,

steve
Download Presentation

Генератори на псевдослучайни последователности и потокови шифри

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Генератори на псевдослучайни последователности и потокови шифри 1. Генератори с линейно съответствие/сходство Linear congruential generators са генератори на псевдослучайни последователности (ГПСП) от вида Xn = (aXn-1 + b) mod m , където Xn е n-тия номер в последователността и Xn-1 – предишният. Променливите a, b, и m са константи: a е multiplier, b е increment, и m е модул. Ключът или семето е стойността X0. Квадратичните генераториXn = (aXn-12 + bXn-1 + c) mod m Кубичните генераториXn = (aXn-13 + bXn-12 + cXn-1 + d) mod m Table 1Constants for Linear Congruential Generators Overflow At: abm 220 106 1283 6075 221 211 1663 7875 222 421 1663 7875 Комбинирани линейни конгруентни генератори

  2. Генератори на псевдослучайни последователности и потокови шифриПродължение 2. Линейни с обратна връзка изместващи регистри Последователности на изместващ регистър се употребяват в криптографията и в теория на кодирането и има голямо изобилие от теория за тях. Потоковите шифри се основават на изместващи регистри. Един изместващ регистър с обратна връзка - feedback shift register е направен от две части: един изместващ регистър и една функция на обратна връзка. Изместващият регистър е последователност от битове. • Дължината на изместващия регистър - length е определена в битове, ако той е n бита дълъг се нарича n-битов изместващ регистър. Във всеки момент един бит е необходим, всички битове в един изместващ регистър са изместени 1 бит надясно. Новият най-ляв бит е изчислен като една функция на другите битове в регистъра. Изходът на регистъра е един бит, най-често последния по значимост бит. • Периодът - period на изм. регистър е дължината на изходната последователност преди да се започне повторението. Най-простият вид на изместващ регистър е линейния изместващ регистър с о.в. - linear feedback shift register или LFSR. Фукцията на о.в. е просто XOR на определени битове в регистъра. Списъкът на тези битове се нарича tap sequence. Понякога се нарича конфигурация на Фибоначи - Fibonacci configuration.

  3. Генератори на псевдослучайни последователности и потокови шифриПродължение На фигурата е показан един 4-битов LFSR разклонен на първия и четвъртия бит. Ако се инициализира със стойност 1111, той дава следната последователност на вътрешни състояния преди да започне повторението им: 1 1 1 1 0 1 1 1 1 0 1 1 0 1 0 1 ... 1 1 1 0 Изходната последователност е стринг за най-младшия бит: 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0.... Един n-битов LFSR може да бъде в едно от 2n - 1 вътрешни състояния. Това означава, че той може, на теория, да генерира 2n - 1-бита дълга псевдослучайна последователност преди тя да се повтори.Резултантната изходна последователност се нарича m-последователност - m-sequence. За да бъде за един практически LFSR един максимален период на LFSR, полиномът формиран от една разклонена последователност плюс константа 1 трябва да бъде примитивен полином mod 2. Степента - degree на полинома е дължината на изместващия регистър. Един основен полином на степен n е един несъкратим полином, който се дели на x2n-1 + 1, но не на xd + 1 за някакво d , което дели 2n - 1 . Таблица 2 посочва, но не всички, примитивни полиноми mod 2 за различна степен. Например, списъкът (32, 7, 5, 3, 2, 1, 0) означава, че следният полином е примитивен mod 2: x32 + x7 + x5 + x3 + x2 + x + 1

  4. Генератори на псевдослучайни последователности и потокови шифриПродължение Table 2 Some Primitive Plynomials Mod 2 (1, 0) (36, 11, 0) (68, 9, 0) (97, 6, 0) (2, 1, 0) (36, 6, 5, 4, 2, 1, 0) (68, 7, 5, 1, 0) (98, 11, 0) (3, 1, 0) (37, 6, 4, 1, 0) (69, 6, 5, 2, 0) (98, 7, 4, 3, 1, 0) (4, 1, 0) (37, 5, 4, 3, 2, 1, 0) (70, 5, 3, 1, 0) (99, 7, 5, 4, 0) (5, 2, 0) (38, 6, 5, 1, 0) (71, 6, 0) (100, 37, 0) (6, 1, 0) (39, 4, 0) (71, 5, 3, 1, 0) (100, 8, 7, 2, 0) . . . . . . За да продължи примера, списъкът (32, 7, 5, 3, 2, 1, 0) означава, че ако се вземе 32-битов регистър и се генерира нов бит с XOR на битове 32-ри, 7-ми, 5-ти, 3-ти, 2-ри и 1-ви заедно (фиг. 16.4), резултантният LFSR ще бъде с максимална дължина - ще прави цикъл през 232 - 1 стойности преди да повтори. Ако p(x) е примитив, тогава такъв е и xnp(1/x). Всеки вход в таблицата е действително два примитивни полинома. Например, ако (a, b, 0) е примитив, тогава (a, a - b, 0) е също примитив. Ако (a, b, c, d, 0) е примитив, тогава (a, a - d, a - c, a - b, 0) е също примитив. Математически: • Ако xa + xb + 1 е примитив, такъв е xa + xa-b + 1 • Ако xa + xb + xc + xd+ 1 е примитив, такъв е xa + xa-d + xa-c + xa-b + 1

  5. Генератори на псевдослучайни последователности и потокови шифри Продължение Примитивните триноми са най-бързи в софтуера, защото само два бита на изм.регистър са подложени на XOR за да генерират един нов бит. Действително, всички о.в. на полиномите посочени в табл. 2 са редки - sparse, означавайки, че те само имат малко коефициенти. Редкостта е източник на слабост, понякога достатъчна за да се разбие алгоритъма. Тогава е далеч по-добре да се употребят за криптографски приложения компактни - dense примитивни полиноми, които имат много коефициенти. Генерирането на компактни примитивни полиноми modulo 2 не е лесно. Най-общо, за да се генерира примитивен полином на степен k е необходимо да знае разделянето на множители на 2k - 1. LFSR-те и софтуер Вместо да се употребяват битове в разклоняваща последователност, за да се генерира нов най-ляв бит, всеки бит в тап последователността е подложен на XOR с изхода на генератора и заместен, тогава изходът на генератора става нов най-ляв бит. Това се нарича Galois configuration. В обобщение: • ако се използва хардуер, което е добро за изместване, да се употребява конфигурация на Фибоначи - Fibonacci configuration; • ако може да се използва паралелизъм е добре да се използва Galois configuration.

  6. Генератори на псевдослучайни последователности и потокови шифриПродължение 3. Проектиране и анализ на потокови шифри. Линейна сложност (linear complexity) Анализирането на потоковите шифри е често по-лесно от това на блоковите шифри. Например, една важна метрична величина употребявана за анализ на LFSR-базирани генератори е линейната сложност - linear complexity, или линейно пространство (span). Тя се определя от дължината n, на най-късия LFSR, която може да се имитира на изхода на генератора. Всяка последователност генерирана от една машина с краен брой състояния върху крайно поле има крайна линейна сложност. Корелационна неприкосновеност (Correlation Immunity) Криптографите се опитват да получат висока линейна сложност с комбиниране на изхода за различни изходни последователности по някакъв нелинеен маниер. Това понякога дава корелация.Thomas Siegenthaler е показал тази корелационна неприкосновенност / имунитет - correlation immunity може да бъде точно определен и че има разлика между корелационния имунитет и линейната сложност. Други атаки Има други общи атаки срещу генераторите на потокови ключове. Тестът за линейна плътност / постоянство / съвместимост - linear consistency test се опитва да идентифицира някакво подмножество на шифриращия ключ, употребявайки матрични техники. Има различни атаки: • meet-in-the-middle consistency attack • Линейният синдромен алгоритъм - linear syndrome algorithm се осланя на способността да се напише един фрагмент от изходната последователност като линейно уравнение. • Най-афинната апроксимация - best affine approximation attack • derived sequence attack.

  7. Генератори на псевдослучайни последователности и потокови шифриПродължение 4. Потоков шифър, употребяващ LFSR-и Ключът е с началното състояние на LFSRи. По всяко време се иска бит - изместване на LFSR-и веднъж. Това се нарича понякога тактуване - clocking. Изходният бит е една функция, предпочитана е една нелинейна функция, на някои битове на LFSR-те. Тази функция се нарича обединяваща/комбинираща - combining function, и целият генератор се нарича комбиниращ генератор - combination generator. Ако един изходен бит е една функция на отделен LFSR, генераторът се нарича филтър генератор - filter generator. • часовников управляем генератор - clock-controlled generator Geffe генератор Този генератор употребява три LFSR-и, обединени по нелинеен начин. Два от LFSR-те са входове на мултиплексор и третият LFSR управлява изхода на мултиплексора. Ако a1, a2, и a3 са изходите на трите LFSR-и, изходът на Geffe генератора може да се опише със: b = (a1 ^ a2) ⊕ ((¬ a1) ^ a3) Ако LFSR-те имат дължини n1, n2, и n3 респективно, тогава линейната сложност на генератора е (n1 + 1)n2 + n1n3

  8. Генератори на псевдослучайни последователности и потокови шифриПродължение Обобщен Geffe генератор Вместо да се избират един от двата LFSR-и, тази схема избира един от k LFSR-и, толкова дълго колкото k е степен на 2. Има k + 1 LFSR-и общо. LFSR-1 трябва да бъде тактуван log2k пъти по-бързо от останалите k LFSR-и. Jennings генератор Тази схема използва мултиплексор за да обедини два LFSR-и. Мултиплексорът се управлява от LFSR-1, избира един бит на LFSR-2 на всеки изходен бит. Има също една функция, която подрежда по таблица изходите на LFSR-2 към входа на мултиплексора

  9. Генератори на псевдослучайни последователности и потокови шифриПродължение Beth-Piper Stop-and-Go Generator Този генератор употребява изхода на един LFSR за да управлява часовника на друг LFSR. Часовниковият вход на LFSR-2 е уравляван от изхода на LFSR-1, така че LFSR-2 може да променя състоянието си в момент t само ако изходът на LFSR-1 е бил 1 в момент t - 1. Двустранен стоп-старт генератор (Bilateral Stop-and-Go Generator) Този генератор използва два LFSR-и, и двата с дължина n . Изходът на генератора е XOR на изходите на всеки LFSR. Ако изходът на LFSR-2 в момент t – 1 е 0 и изходът в момент t – 2 е 1, тогава LFSR-2 не се тактува във момент t. Обратно, ако изходът на LFSR-1 в момент t – 1 е 0 и в t – 2 е 0 – се тактува. Каскада на Gollmann Каскадата наGollmann е разширена версия на stop-and-go generator. Той съдържа една серия от LFSR-и, с часовник управляван от предния LFSR. Ако изходът на LFSR-1 е 1 в момент t - 1, тогава LFSR-2 е тактуван. Ако изходът на LFSR-2 е 1 в момент t - 1, тогава LFSR-3 работи и т.н. изходът на последния LFSR е изход на генератора. Ако всички LFSR-и имат еднаква дължина, n, линейната сложност на системата с k LFSR-а е n(2n - 1)k-1 Намаляващ се/свиващ се генератор (Shrinking Generator) Свиващият се генератор употребява различна форма на управление на часовника от предишните генератори. Вземат се два LFSR-и: LFSR-1 и LFSR-2. Тактуват се и двата. Ако изходът на LFSR-1 е 1, тогава изходът на генератора е LFSR-2. Ако изходът на LFSR-1 е 0, се зачеркват двата бита, тактуват се двата LFSR-а и се опитва отново.

  10. Генератори на псевдослучайни последователности и потокови шифриПродължение Самосвиваши се генератори (Self-Shrinking Generator) Самосвиващият се генератор е един вариант на свиващия се генератор. Вместо да се използват два LFSR-а, се употребяват двойки битове от единствен LFSR. Тактуването на LFSR е двукратно. Ако първият бит в двойката е 1, изходът на генератора е втория бит. Ако първият бит е 0 се зачекват и двата бита и се опитва отново. Докато самосвиващият се генератор изисква около половината пространство на паметта, необходима за реализацията на свиващия се генератор, той има също и половината на скоростта му. 5. Адитивни генератори Additive generator, понякога го наричат генератор на Фибоначи, е много ефективен защото използва случайни думи, а не случайни битове. Началното състояние на генератора е матрица от n-битови думи: X1, X2, X3,..., Xm i–тата дума на генератора е Xi = (Xi-a + Xi-b + Xi-c +...+ Xi-m) mod 2n Ако коефициентите a, b, c,..., m са избрани правилно, периодът на генератора е поне 2n - 1. едно от изискванията за коефициентите е най-младшия бит да определя максималната дължина на LFSR. Например, (55,24,0) е един примитивен полином по mod 2. Това означава, че следният адаптивен генератор е с максимална дължина: Xi = (Xi-55 + Xi-24) mod 2n

  11. Генератори на псевдослучайни последователности и потокови шифриПродължение Fish • Начално състояние Ai = (Ai-55 + Ai-24) mod 232 Bi = (Bi-52 + Bi-19) mod 232 • Свиване като се използва Bi • Последователности от думиCj и Dj • Изходни думи K2j и K2j+1 E2j = C2j ⊕ (D2j ^ D2j+1) F2j = D2j+1 ^ (E2j ^ C2j+1) K2j = E2j ⊕ F2j K2i+1 = C2i+1 ⊕ F2j

More Related