Поточният шифър

В криптографията поточният шифър е шифър със симетричен ключ, при който битовете на открития текст се комбинират с псевдослучаен поток от шифрови битове (ключов поток), като се използва операцията ексклузивен или (xor). При поточното шифриране цифрите на открития текст се шифроват една по една, като трансформацията на последователните цифри се променя по време на състоянието на шифриране. Алтернативно наименование е шифър на състоянията, тъй като криптирането на всяка цифра зависи от текущото състояние. На практика цифрите обикновено са единични битове или байтове.

Поточните шифри представляват различен подход към симетричното криптиране от блоковите шифри. Блоковите шифри работят с големи блокове с фиксирана дължина. Потоковите шифри обикновено се изпълняват с по-висока скорост от блоковите шифри и имат по-ниски хардуерни изисквания. Въпреки това, при неправилно използване на поточните шифри може да възникнат сериозни проблеми със сигурността; например, в частност, едно и също начално състояние никога не трябва да се използва два пъти.

Поточният шифър използва много по-малък и по-удобен криптографски ключ, например 128-битов ключ. Въз основа на този ключ той генерира псевдослучаен ключов поток, който може да се комбинира с цифрите на открития текст по начин, подобен на алгоритъма за еднократно криптиране. Въпреки това, тъй като ключовият поток е псевдослучаен, а не наистина случаен, сигурността, свързана с еднократната подложка, не може да бъде приложена и е напълно възможно един поточен шифър да бъде напълно несигурен.

Работата на генератора на ключови потоци в A5/1 - поточен шифър, базиран на LFSR, използван за криптиране на разговори по мобилни телефони.Zoom
Работата на генератора на ключови потоци в A5/1 - поточен шифър, базиран на LFSR, използван за криптиране на разговори по мобилни телефони.

Видове поточни шифри

Поточният шифър генерира последователни елементи на ключовия поток въз основа на вътрешно състояние. Това състояние се актуализира по два начина:

  1. Ако състоянието се променя независимо от съобщенията с открит или шифрован текст, шифърът се класифицира като синхронен поточен шифър.
  2. Ако състоянието се актуализира въз основа на предишни промени на цифрите на шифровия текст, шифърът се класифицира като самосинхронизиращ се поточен шифър.

Синхронни поточни шифри

При синхронния поточно-цифров шифър поток от псевдослучайни цифри се генерира независимо от съобщенията с открит и шифрован текст, след което се комбинира с открития текст (за криптиране) или с шифрования текст (за декриптиране). В най-разпространената форма се използват двоични цифри(битове), а потокът от ключове се комбинира с открития текст, като се използва операцията exclusive or (XOR). Това се нарича двоичен адитивен поточен шифър.

При синхронния поточен шифър изпращачът и получателят трябва да са в синхрон, за да бъде декриптирането успешно. Ако по време на предаването се добавят или премахват цифри от съобщението, синхронизацията се губи. За да се възстанови синхронизацията, могат систематично да се изпробват различни отмествания, за да се получи правилно декриптиране. Друг подход е да се маркира шифрованият текст с маркери в редовни точки на изхода.

Ако обаче дадена цифра е повредена при предаването, а не е добавена или изгубена, се засяга само една цифра в открития текст и грешката не се разпространява в други части на съобщението. Това свойство е полезно, когато честотата на грешките при предаване е висока; то обаче намалява вероятността грешката да бъде открита без допълнителни механизми. Освен това поради това свойство синхронните поточни шифри са много податливи на активниатаки - ако нападателят може да промени цифра в шифровия текст, той може да е в състояние да направи предвидими промени в съответния бит на обикновения текст; например обръщането на бит в шифровия текст води до обръщане(Toggled) на същия бит в обикновения текст.

Самосинхронизиращи се поточни шифри

Самосинхронизиращите се поточни шифри са друга техника, която използва част от предишните N цифри на шифровия текст за изчисляване на ключовия поток. Такива схеми са известни още като асинхронни поточни шифри или автоключ на шифротекста (CTAK). Идеята за самосинхронизация е патентована през 1946 г. и има предимството, че приемникът автоматично се синхронизира с генератора на ключовия поток след получаването на N цифри от шифровия текст, което улеснява възстановяването, ако цифрите са изпуснати или добавени към потока от съобщения. Единичните грешки са с ограничен ефект, като засягат само до N цифри от открития текст. Извършването на активни атаки срещу самосинхронизиращи се поточни шифри е малко по-трудно, отколкото срещу синхронни аналози.

Пример за самосинхронизиращ се поточен шифър е блоков шифър в режим на обратна връзка с шифъра (CFB).

Поточни шифри, базирани на регистър за преместване с линейна обратна връзка

Двоичните поточни шифри често се конструират с помощта на регистри с линейна обратна връзка (LFSR), тъй като могат лесно да се реализират хардуерно и бързо да се анализират математически. Използването само на LFSR обаче е недостатъчно за осигуряване на добра сигурност. Разработени са различни схеми за повишаване на сигурността на LFSR.

Нелинейни функции за комбиниране

Тъй като LFSR са линейни по своята същност, една от техниките за премахване на линейността е да се подадат изходите на група паралелни LFSR към нелинейна булева функция, за да се формира генератор на комбинации. Различни свойства на такава комбинираща функция са важни за гарантиране на сигурността на получената схема, например за да се избегнат корелационни атаки.

Генератори с тактово управление

Обикновено LFSRs се стъпват редовно. Един от начините за въвеждане на нелинейност е LFSR да се тактува неравномерно, като се контролира от изхода на втори LFSR. Такива генератори са генераторът "стоп и ход", генераторът с променлива стъпка и генераторът за свиване.

Генераторът "stop-and-go" (Beth and Piper, 1984) се състои от два LFSR. Единият LFSR се тактува, ако изходът на втория е "1", в противен случай той повтаря предишния си изход. След това този изход (в някои версии) се комбинира с изхода на трети LFSR, който се тактува с постоянна скорост.

Генераторът за свиване използва различна техника. Използват се два LFSR, като и двата се тактуват редовно по следния начин:

  1. Ако изходът на първия LFSR е "1", изходът на втория LFSR става изход на генератора.
  2. Ако изходът на първия LFSR е "0", изходът на втория се изхвърля и генераторът не извежда никакъв бит.

Тази техника страда от атаки по отношение на времето на втория генератор, тъй като скоростта на изхода се променя по начин, който зависи от състоянието на втория генератор. Това може да се подобри чрез буфериране на изхода.

Генератор на филтри

Друг подход за подобряване на сигурността на LFSR е да се предаде цялото състояние на един LFSR в нелинейна филтрираща функция.

Други дизайни

Вместо линейно управляващо устройство може да се използва нелинейна функция за актуализация. Например Климов и Шамир предлагат триъгълни функции (Т-функции) с един цикъл върху n битови думи.

Сигурност

За да бъде сигурен, периодът на ключовия поток (броят на цифрите, които се извеждат, преди потокът да се повтори) трябва да бъде достатъчно голям. Ако поредицата се повтаря, тогава припокриващите се шифротекстове могат да бъдат подравнени един спрямо друг "в дълбочина" и съществуват техники, които позволяват извличането на обикновен текст от шифротекстове, генерирани по тези методи.

Употреба

Потоковите шифри често се използват в приложения, в които откритият текст е с неизвестна дължина, като например при сигурни безжични връзки. Ако блоков шифър се използва в такъв тип приложение, дизайнерът ще трябва да избере или ефективността на предаване, или сложността на изпълнение, тъй като блоковите шифри не могат да работят директно с блокове, по-къси от техния размер. Например, ако 128-битов блоков шифър получи отделни 32-битови серии от открит текст, три четвърти от предаваните данни се нуждаят от подложка. За да се избегне подплънка, блоковите шифри трябва да се използват в режим на кражба на шифротекст или прекратяване на остатъчен блок, докато поточните шифри елиминират този проблем, като работят с най-малката предавана единица (обикновено байтове).

Друго предимство на поточното шифриране във военната криптография е, че поточното шифриране може да се генерира от устройство за шифриране, което подлежи на строги мерки за сигурност, след което да се подаде към други устройства, например радиоприемник, които ще изпълняват операцията xor като част от своята функция. Другото устройство може да бъде предназначено за използване в среда с по-ниска степен на сигурност.

RC4 е най-широко използваният в софтуера поточен шифър; други включват: A5/1, A5/2, Chameleon, FISH, Helix, ISAAC, MUGI, Panama, Phelix, Pike, SEAL, SOBER, SOBER-128 и WAKE.

RC4 е един от най-широко използваните поточни шифри.Zoom
RC4 е един от най-широко използваните поточни шифри.

Сравнение на поточни шифри

StreamCipher

CreationDate

Скорост
(цикли/байт)

(битове)

Атака

Ефективен
Дължина на ключа

Вектор за инициализация

InternalState

Най-известните

Изчислителна сложност

A5/1

1989

Глас (Wphone)

54

114

64

Активен KPA OR
Компромис между времето и паметта на
KPA

~2 секунди OR239.91

A5/2

1989

Глас (Wphone)

54

114

64?

Активен

4,6 милисекунди

РИБИ

1993

Доста бързо (Wsoft)

Огромен

Атака с познат текст (Known-plaintext attack)

211

Зърно

Преди 2004 г.

Бърз

80

64

160

Деривация на ключове

243

HC-256

Преди 2004 г.

4 (WP4)

256

256

65536

ISAAC

1996

2.375 (W64-bit)
-4.6875
(W32-bit)

8-8288обикновено
40-256

N/A

8288

(2006 г.) Първи кръг-Слаба вътрешна държава-Деривация

4.67×101240 (2001)

MUGI

1998-2002

128

128

1216

N/A (2002 Г.)

~282

PANAMA

1998

2

256

128?

1216?

Сблъсъци на хеш-памети (2001)

282

Феликс

Преди 2004 г.

до 8 (Wx86)

256 + 128-битов Nonce

128?

Диференциал (2006 г.)

237

Pike

1994

0,9 x FISH (Wsoft)

Огромен

N/A (2004 Г.)

N/A (2004 Г.)

Py

Преди 2004 г.

2.6

8-2048?
обикновено 40-256?

64

8320

Криптоаналитична теория (2006)

275

Заек

2003-февруари

3,7 (WP3) - 9,7 (WARM7)

128

64

512

N/A (2006 Г.)

N/A (2006 Г.)

RC4

1987

Впечатляващ

8-2048обикновено
40-256

8

2064

Шамир Първоначално байтно разделяне на ключове OR KPA

213 OR 233

Салса20

Преди 2004 г.

4,24 (WG4) -11
,84
(WP4)

128 + 64-битов Nonce

512

512 + 384 (ключ+IV+индекс)

Диференциал (2005 г.)

N/A (2005 Г.)

Scream

2002

4 - 5 (Wsoft)

128 + 128-битов Nonce

32?

64-битова функция за закръгляне

SEAL

1997

Много бързо (W32-битова версия)

32?

SNOW

Преди 2003 г.

Много добър (W32-bit)

128 ИЛИ 256

32

SOBER-128

2003

до 128

Съобщение Forge

2−6

SOSEMANUK

Преди 2004 г.

Много добър (W32-bit)

128

128

Trivium

Преди 2004 г.

4 (Wx86) - 8 (WLG)

80

80

288

Атака с груба сила (2006 г.)

2135

Turing

2000-2003

5.5 (Wx86)

160

VEST

2005

42 (WASIC) -64 (WFPGA)

Променлива обикновено
80-256

Променлива обикновено
80-256

256 - 800

N/A (2006 Г.)

N/A (2006 Г.)

WAKE

1993

Бърз

8192

CPA И CCA

Уязвим

StreamCipher

CreationDate

Скорост
(цикли/байт)

(битове)

Атака

Ефективно
Дължина на ключа

Вектор за инициализация

InternalState

Най-известните

Изчислителна сложност

Свързани страници

  • eSTREAM

Въпроси и отговори

В: Какво представлява поточният шифър?


О: Поточният шифър е шифър със симетричен ключ, при който битовете на открития текст се комбинират с псевдослучаен поток от битове на шифъра (ключов поток), като се използва операцията ексклузивен или (xor).

В: По какво се различава от блоковите шифри?


О: Поточните шифри обикновено се изпълняват с по-висока скорост от блоковите шифри и имат по-ниски хардуерни изисквания. Блоковите шифри работят с големи блокове с фиксирана дължина, докато поточните шифри криптират цифрите една по една и трансформацията на последователните цифри се променя по време на състоянието на криптиране.

Въпрос: Какъв тип ключове се използват?


О: Поточните шифри използват много по-малки и по-удобни криптографски ключове, например 128-битови ключове.

В: Как се генерира потокът от ключове?


О: Потокът от ключове се генерира въз основа на използвания криптографски ключ, подобно на алгоритъма за криптиране с еднократна подложка. Тъй като обаче ключовият поток е псевдослучаен, а не наистина случаен, не може да се приложи сигурността, свързана с еднократната подложка.

Въпрос: Защо никога не трябва да използвате едно и също начално състояние два пъти?


О: Използването на едно и също начално състояние два пъти може да доведе до сериозни проблеми със сигурността, тъй като улеснява нападателите да декриптират данни, без да знаят или да имат достъп до вашия криптографски ключ.

Въпрос: Има ли някакъв риск, свързан с използването на поточни шифри?


О: Да, ако се използват неправилно или без да се вземат подходящи предпазни мерки, съществува риск, свързан с използването на поточни шифри, тъй като те могат да бъдат напълно несигурни, ако не се работи правилно с тях.

AlegsaOnline.com - 2020 / 2023 - License CC3